@nextcloud/vue 8.3.0 → 8.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (662) hide show
  1. package/CHANGELOG.md +95 -3
  2. package/dist/Components/NcActionButton.cjs +85 -23
  3. package/dist/Components/NcActionButton.cjs.map +1 -1
  4. package/dist/Components/NcActionButton.mjs +88 -24
  5. package/dist/Components/NcActionButton.mjs.map +1 -1
  6. package/dist/Components/NcActionButtonGroup.cjs +3 -41
  7. package/dist/Components/NcActionButtonGroup.cjs.map +1 -1
  8. package/dist/Components/NcActionButtonGroup.mjs +2 -43
  9. package/dist/Components/NcActionButtonGroup.mjs.map +1 -1
  10. package/dist/Components/NcActionCaption.cjs +8 -9
  11. package/dist/Components/NcActionCaption.cjs.map +1 -1
  12. package/dist/Components/NcActionCaption.mjs +8 -8
  13. package/dist/Components/NcActionCheckbox.cjs +4 -5
  14. package/dist/Components/NcActionCheckbox.cjs.map +1 -1
  15. package/dist/Components/NcActionCheckbox.mjs +13 -13
  16. package/dist/Components/NcActionInput.cjs +3 -233
  17. package/dist/Components/NcActionInput.cjs.map +1 -1
  18. package/dist/Components/NcActionInput.mjs +2 -241
  19. package/dist/Components/NcActionInput.mjs.map +1 -1
  20. package/dist/Components/NcActionLink.cjs +2 -3
  21. package/dist/Components/NcActionLink.cjs.map +1 -1
  22. package/dist/Components/NcActionLink.mjs +3 -3
  23. package/dist/Components/NcActionRadio.cjs +12 -13
  24. package/dist/Components/NcActionRadio.cjs.map +1 -1
  25. package/dist/Components/NcActionRadio.mjs +11 -11
  26. package/dist/Components/NcActionRouter.cjs +5 -6
  27. package/dist/Components/NcActionRouter.cjs.map +1 -1
  28. package/dist/Components/NcActionRouter.mjs +6 -6
  29. package/dist/Components/NcActionSeparator.cjs +6 -7
  30. package/dist/Components/NcActionSeparator.cjs.map +1 -1
  31. package/dist/Components/NcActionSeparator.mjs +9 -9
  32. package/dist/Components/NcActionText.cjs +7 -8
  33. package/dist/Components/NcActionText.cjs.map +1 -1
  34. package/dist/Components/NcActionText.mjs +10 -10
  35. package/dist/Components/NcActionTextEditable.cjs +4 -5
  36. package/dist/Components/NcActionTextEditable.cjs.map +1 -1
  37. package/dist/Components/NcActionTextEditable.mjs +5 -5
  38. package/dist/Components/NcActions.cjs +3 -483
  39. package/dist/Components/NcActions.cjs.map +1 -1
  40. package/dist/Components/NcActions.mjs +2 -489
  41. package/dist/Components/NcActions.mjs.map +1 -1
  42. package/dist/Components/NcAppContent.cjs +3 -221
  43. package/dist/Components/NcAppContent.cjs.map +1 -1
  44. package/dist/Components/NcAppContent.mjs +2 -229
  45. package/dist/Components/NcAppContent.mjs.map +1 -1
  46. package/dist/Components/NcAppContentDetails.cjs +1 -1
  47. package/dist/Components/NcAppContentDetails.mjs +1 -1
  48. package/dist/Components/NcAppContentList.cjs +1 -1
  49. package/dist/Components/NcAppContentList.mjs +1 -1
  50. package/dist/Components/NcAppNavigation.cjs +3 -101
  51. package/dist/Components/NcAppNavigation.cjs.map +1 -1
  52. package/dist/Components/NcAppNavigation.mjs +2 -106
  53. package/dist/Components/NcAppNavigation.mjs.map +1 -1
  54. package/dist/Components/NcAppNavigationCaption.cjs +3 -44
  55. package/dist/Components/NcAppNavigationCaption.cjs.map +1 -1
  56. package/dist/Components/NcAppNavigationCaption.mjs +2 -45
  57. package/dist/Components/NcAppNavigationCaption.mjs.map +1 -1
  58. package/dist/Components/NcAppNavigationIconBullet.cjs +5 -6
  59. package/dist/Components/NcAppNavigationIconBullet.cjs.map +1 -1
  60. package/dist/Components/NcAppNavigationIconBullet.mjs +8 -8
  61. package/dist/Components/NcAppNavigationItem.cjs +3 -494
  62. package/dist/Components/NcAppNavigationItem.cjs.map +1 -1
  63. package/dist/Components/NcAppNavigationItem.mjs +2 -505
  64. package/dist/Components/NcAppNavigationItem.mjs.map +1 -1
  65. package/dist/Components/NcAppNavigationNew.cjs +14 -15
  66. package/dist/Components/NcAppNavigationNew.cjs.map +1 -1
  67. package/dist/Components/NcAppNavigationNew.mjs +6 -6
  68. package/dist/Components/NcAppNavigationNewItem.cjs +3 -87
  69. package/dist/Components/NcAppNavigationNewItem.cjs.map +1 -1
  70. package/dist/Components/NcAppNavigationNewItem.mjs +2 -89
  71. package/dist/Components/NcAppNavigationNewItem.mjs.map +1 -1
  72. package/dist/Components/NcAppNavigationSettings.cjs +3 -103
  73. package/dist/Components/NcAppNavigationSettings.cjs.map +1 -1
  74. package/dist/Components/NcAppNavigationSettings.mjs +2 -105
  75. package/dist/Components/NcAppNavigationSettings.mjs.map +1 -1
  76. package/dist/Components/NcAppNavigationSpacer.cjs +10 -11
  77. package/dist/Components/NcAppNavigationSpacer.cjs.map +1 -1
  78. package/dist/Components/NcAppNavigationSpacer.mjs +10 -10
  79. package/dist/Components/NcAppNavigationToggle.cjs +1 -1
  80. package/dist/Components/NcAppNavigationToggle.mjs +1 -1
  81. package/dist/Components/NcAppSettingsDialog.cjs +3 -181
  82. package/dist/Components/NcAppSettingsDialog.cjs.map +1 -1
  83. package/dist/Components/NcAppSettingsDialog.mjs +2 -187
  84. package/dist/Components/NcAppSettingsDialog.mjs.map +1 -1
  85. package/dist/Components/NcAppSettingsSection.cjs +7 -11
  86. package/dist/Components/NcAppSettingsSection.cjs.map +1 -1
  87. package/dist/Components/NcAppSettingsSection.mjs +7 -10
  88. package/dist/Components/NcAppSettingsSection.mjs.map +1 -1
  89. package/dist/Components/NcAppSidebar.cjs +3 -509
  90. package/dist/Components/NcAppSidebar.cjs.map +1 -1
  91. package/dist/Components/NcAppSidebar.mjs +2 -521
  92. package/dist/Components/NcAppSidebar.mjs.map +1 -1
  93. package/dist/Components/NcAppSidebarTab.cjs +5 -7
  94. package/dist/Components/NcAppSidebarTab.cjs.map +1 -1
  95. package/dist/Components/NcAppSidebarTab.mjs +3 -4
  96. package/dist/Components/NcAppSidebarTab.mjs.map +1 -1
  97. package/dist/Components/NcAvatar.cjs +2 -2
  98. package/dist/Components/NcAvatar.mjs +1 -1
  99. package/dist/Components/NcBreadcrumb.cjs +3 -175
  100. package/dist/Components/NcBreadcrumb.cjs.map +1 -1
  101. package/dist/Components/NcBreadcrumb.mjs +2 -178
  102. package/dist/Components/NcBreadcrumb.mjs.map +1 -1
  103. package/dist/Components/NcBreadcrumbs.cjs +3 -404
  104. package/dist/Components/NcBreadcrumbs.cjs.map +1 -1
  105. package/dist/Components/NcBreadcrumbs.mjs +2 -413
  106. package/dist/Components/NcBreadcrumbs.mjs.map +1 -1
  107. package/dist/Components/NcButton.cjs +37 -28
  108. package/dist/Components/NcButton.cjs.map +1 -1
  109. package/dist/Components/NcButton.mjs +37 -27
  110. package/dist/Components/NcButton.mjs.map +1 -1
  111. package/dist/Components/NcCheckboxRadioSwitch.cjs +3 -590
  112. package/dist/Components/NcCheckboxRadioSwitch.cjs.map +1 -1
  113. package/dist/Components/NcCheckboxRadioSwitch.mjs +2 -594
  114. package/dist/Components/NcCheckboxRadioSwitch.mjs.map +1 -1
  115. package/dist/Components/NcColorPicker.cjs +3 -135
  116. package/dist/Components/NcColorPicker.cjs.map +1 -1
  117. package/dist/Components/NcColorPicker.mjs +2 -144
  118. package/dist/Components/NcColorPicker.mjs.map +1 -1
  119. package/dist/Components/NcContent.cjs +3 -25
  120. package/dist/Components/NcContent.cjs.map +1 -1
  121. package/dist/Components/NcContent.mjs +2 -25
  122. package/dist/Components/NcContent.mjs.map +1 -1
  123. package/dist/Components/NcCounterBubble.cjs +4 -5
  124. package/dist/Components/NcCounterBubble.cjs.map +1 -1
  125. package/dist/Components/NcCounterBubble.mjs +4 -4
  126. package/dist/Components/NcDashboardWidget.cjs +3 -133
  127. package/dist/Components/NcDashboardWidget.cjs.map +1 -1
  128. package/dist/Components/NcDashboardWidget.mjs +2 -138
  129. package/dist/Components/NcDashboardWidget.mjs.map +1 -1
  130. package/dist/Components/NcDashboardWidgetItem.cjs +3 -138
  131. package/dist/Components/NcDashboardWidgetItem.cjs.map +1 -1
  132. package/dist/Components/NcDashboardWidgetItem.mjs +2 -141
  133. package/dist/Components/NcDashboardWidgetItem.mjs.map +1 -1
  134. package/dist/Components/NcDateTime.cjs +2 -127
  135. package/dist/Components/NcDateTime.cjs.map +1 -1
  136. package/dist/Components/NcDateTime.mjs +2 -130
  137. package/dist/Components/NcDateTime.mjs.map +1 -1
  138. package/dist/Components/NcDateTimePicker.cjs +70 -51
  139. package/dist/Components/NcDateTimePicker.cjs.map +1 -1
  140. package/dist/Components/NcDateTimePicker.mjs +77 -58
  141. package/dist/Components/NcDateTimePicker.mjs.map +1 -1
  142. package/dist/Components/NcDateTimePickerNative.cjs +9 -10
  143. package/dist/Components/NcDateTimePickerNative.cjs.map +1 -1
  144. package/dist/Components/NcDateTimePickerNative.mjs +8 -8
  145. package/dist/Components/NcDateTimePickerNative.mjs.map +1 -1
  146. package/dist/Components/NcDialog.cjs +3 -171
  147. package/dist/Components/NcDialog.cjs.map +1 -1
  148. package/dist/Components/NcDialog.mjs +2 -175
  149. package/dist/Components/NcDialog.mjs.map +1 -1
  150. package/dist/Components/NcDialogButton.cjs +2 -68
  151. package/dist/Components/NcDialogButton.cjs.map +1 -1
  152. package/dist/Components/NcDialogButton.mjs +2 -72
  153. package/dist/Components/NcDialogButton.mjs.map +1 -1
  154. package/dist/Components/NcEllipsisedOption.cjs +4 -5
  155. package/dist/Components/NcEllipsisedOption.cjs.map +1 -1
  156. package/dist/Components/NcEllipsisedOption.mjs +14 -14
  157. package/dist/Components/NcEmojiPicker.cjs +3 -175
  158. package/dist/Components/NcEmojiPicker.cjs.map +1 -1
  159. package/dist/Components/NcEmojiPicker.mjs +2 -180
  160. package/dist/Components/NcEmojiPicker.mjs.map +1 -1
  161. package/dist/Components/NcEmptyContent.cjs +14 -16
  162. package/dist/Components/NcEmptyContent.cjs.map +1 -1
  163. package/dist/Components/NcEmptyContent.mjs +8 -9
  164. package/dist/Components/NcEmptyContent.mjs.map +1 -1
  165. package/dist/Components/NcGuestContent.cjs +8 -9
  166. package/dist/Components/NcGuestContent.cjs.map +1 -1
  167. package/dist/Components/NcGuestContent.mjs +7 -7
  168. package/dist/Components/NcHeaderMenu.cjs +3 -169
  169. package/dist/Components/NcHeaderMenu.cjs.map +1 -1
  170. package/dist/Components/NcHeaderMenu.mjs +2 -172
  171. package/dist/Components/NcHeaderMenu.mjs.map +1 -1
  172. package/dist/Components/NcHighlight.cjs +1 -1
  173. package/dist/Components/NcHighlight.mjs +1 -1
  174. package/dist/Components/NcIconSvgWrapper.cjs +3 -59
  175. package/dist/Components/NcIconSvgWrapper.cjs.map +1 -1
  176. package/dist/Components/NcIconSvgWrapper.mjs +2 -61
  177. package/dist/Components/NcIconSvgWrapper.mjs.map +1 -1
  178. package/dist/Components/NcInputField.cjs +7 -7
  179. package/dist/Components/NcInputField.cjs.map +1 -1
  180. package/dist/Components/NcInputField.mjs +10 -9
  181. package/dist/Components/NcInputField.mjs.map +1 -1
  182. package/dist/Components/NcListItem.cjs +3 -237
  183. package/dist/Components/NcListItem.cjs.map +1 -1
  184. package/dist/Components/NcListItem.mjs +2 -241
  185. package/dist/Components/NcListItem.mjs.map +1 -1
  186. package/dist/Components/NcListItemIcon.cjs +3 -160
  187. package/dist/Components/NcListItemIcon.cjs.map +1 -1
  188. package/dist/Components/NcListItemIcon.mjs +2 -162
  189. package/dist/Components/NcListItemIcon.mjs.map +1 -1
  190. package/dist/Components/NcLoadingIcon.cjs +9 -10
  191. package/dist/Components/NcLoadingIcon.cjs.map +1 -1
  192. package/dist/Components/NcLoadingIcon.mjs +10 -10
  193. package/dist/Components/NcModal.cjs +61 -49
  194. package/dist/Components/NcModal.cjs.map +1 -1
  195. package/dist/Components/NcModal.mjs +79 -68
  196. package/dist/Components/NcModal.mjs.map +1 -1
  197. package/dist/Components/NcNoteCard.cjs +8 -9
  198. package/dist/Components/NcNoteCard.cjs.map +1 -1
  199. package/dist/Components/NcNoteCard.mjs +8 -9
  200. package/dist/Components/NcNoteCard.mjs.map +1 -1
  201. package/dist/Components/NcPasswordField.cjs +2 -226
  202. package/dist/Components/NcPasswordField.cjs.map +1 -1
  203. package/dist/Components/NcPasswordField.mjs +2 -234
  204. package/dist/Components/NcPasswordField.mjs.map +1 -1
  205. package/dist/Components/NcPopover.cjs +3 -125
  206. package/dist/Components/NcPopover.cjs.map +1 -1
  207. package/dist/Components/NcPopover.mjs +2 -128
  208. package/dist/Components/NcPopover.mjs.map +1 -1
  209. package/dist/Components/NcProgressBar.cjs +3 -57
  210. package/dist/Components/NcProgressBar.cjs.map +1 -1
  211. package/dist/Components/NcProgressBar.mjs +2 -57
  212. package/dist/Components/NcProgressBar.mjs.map +1 -1
  213. package/dist/Components/NcRelatedResourcesPanel.cjs +3 -201
  214. package/dist/Components/NcRelatedResourcesPanel.cjs.map +1 -1
  215. package/dist/Components/NcRelatedResourcesPanel.mjs +2 -205
  216. package/dist/Components/NcRelatedResourcesPanel.mjs.map +1 -1
  217. package/dist/Components/NcRichContenteditable.cjs +5 -481
  218. package/dist/Components/NcRichContenteditable.cjs.map +1 -1
  219. package/dist/Components/NcRichContenteditable.mjs +5 -489
  220. package/dist/Components/NcRichContenteditable.mjs.map +1 -1
  221. package/dist/Components/NcRichText.cjs +1 -1
  222. package/dist/Components/NcRichText.mjs +3 -3
  223. package/dist/Components/NcSavingIndicatorIcon.cjs +2 -58
  224. package/dist/Components/NcSavingIndicatorIcon.cjs.map +1 -1
  225. package/dist/Components/NcSavingIndicatorIcon.mjs +2 -60
  226. package/dist/Components/NcSavingIndicatorIcon.mjs.map +1 -1
  227. package/dist/Components/NcSelect.cjs +3 -434
  228. package/dist/Components/NcSelect.cjs.map +1 -1
  229. package/dist/Components/NcSelect.mjs +2 -444
  230. package/dist/Components/NcSelect.mjs.map +1 -1
  231. package/dist/Components/NcSelectTags.cjs +2 -258
  232. package/dist/Components/NcSelectTags.cjs.map +1 -1
  233. package/dist/Components/NcSelectTags.mjs +2 -263
  234. package/dist/Components/NcSelectTags.mjs.map +1 -1
  235. package/dist/Components/NcSettingsInputText.cjs +3 -90
  236. package/dist/Components/NcSettingsInputText.cjs.map +1 -1
  237. package/dist/Components/NcSettingsInputText.mjs +2 -92
  238. package/dist/Components/NcSettingsInputText.mjs.map +1 -1
  239. package/dist/Components/NcSettingsSection.cjs +3 -94
  240. package/dist/Components/NcSettingsSection.cjs.map +1 -1
  241. package/dist/Components/NcSettingsSection.mjs +2 -96
  242. package/dist/Components/NcSettingsSection.mjs.map +1 -1
  243. package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
  244. package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
  245. package/dist/Components/NcTextArea.cjs +3 -4
  246. package/dist/Components/NcTextArea.cjs.map +1 -1
  247. package/dist/Components/NcTextArea.mjs +6 -6
  248. package/dist/Components/NcTextArea.mjs.map +1 -1
  249. package/dist/Components/NcTextField.cjs +2 -137
  250. package/dist/Components/NcTextField.cjs.map +1 -1
  251. package/dist/Components/NcTextField.mjs +2 -142
  252. package/dist/Components/NcTextField.mjs.map +1 -1
  253. package/dist/Components/NcTimezonePicker.cjs +2 -7196
  254. package/dist/Components/NcTimezonePicker.cjs.map +1 -1
  255. package/dist/Components/NcTimezonePicker.mjs +1 -7200
  256. package/dist/Components/NcTimezonePicker.mjs.map +1 -1
  257. package/dist/Components/NcUserBubble.cjs +3 -193
  258. package/dist/Components/NcUserBubble.cjs.map +1 -1
  259. package/dist/Components/NcUserBubble.mjs +2 -197
  260. package/dist/Components/NcUserBubble.mjs.map +1 -1
  261. package/dist/Components/NcUserStatusIcon.cjs +3 -0
  262. package/dist/Components/NcUserStatusIcon.cjs.map +1 -0
  263. package/dist/Components/NcUserStatusIcon.mjs +4 -0
  264. package/dist/Components/NcUserStatusIcon.mjs.map +1 -0
  265. package/dist/Components/NcVNodes.cjs +10 -11
  266. package/dist/Components/NcVNodes.cjs.map +1 -1
  267. package/dist/Components/NcVNodes.mjs +11 -12
  268. package/dist/Components/NcVNodes.mjs.map +1 -1
  269. package/dist/Composables/useIsMobile.cjs +13 -8
  270. package/dist/Composables/useIsMobile.cjs.map +1 -1
  271. package/dist/Composables/useIsMobile.mjs +15 -10
  272. package/dist/Composables/useIsMobile.mjs.map +1 -1
  273. package/dist/Directives/Linkify.cjs +4 -5
  274. package/dist/Directives/Linkify.cjs.map +1 -1
  275. package/dist/Directives/Linkify.mjs +5 -6
  276. package/dist/Directives/Linkify.mjs.map +1 -1
  277. package/dist/Directives/Tooltip.cjs +1 -1
  278. package/dist/Directives/Tooltip.mjs +3 -3
  279. package/dist/Functions/usernameToColor.cjs +2 -38
  280. package/dist/Functions/usernameToColor.cjs.map +1 -1
  281. package/dist/Functions/usernameToColor.mjs +2 -39
  282. package/dist/Functions/usernameToColor.mjs.map +1 -1
  283. package/dist/Mixins/richEditor.cjs +2 -2
  284. package/dist/Mixins/richEditor.mjs +2 -2
  285. package/dist/assets/{index-7868494b.css → NcActionButton-YVkNHN_x.css} +17 -16
  286. package/dist/assets/{index-5fa0ac5a.css → NcActionButtonGroup-oXobVIqQ.css} +14 -0
  287. package/dist/assets/{index-e0e6bab6.css → NcActionCheckbox-6Pvlr1E7.css} +1 -1
  288. package/dist/assets/{index-9020d9ca.css → NcActionInput-4zSvDkWm.css} +67 -67
  289. package/dist/assets/{index-4ba699a1.css → NcActionLink-zdzQgwtH.css} +1 -1
  290. package/dist/assets/{index-542cf50a.css → NcActionRadio-eOr9Sp-D.css} +1 -1
  291. package/dist/assets/{index-7fac55ed.css → NcActionRouter-MFTD6tYI.css} +1 -1
  292. package/dist/assets/{index-00012a4c.css → NcActionText-GJYwsw_U.css} +1 -1
  293. package/dist/assets/{index-93ad846c.css → NcActionTextEditable-JrYuWEDd.css} +1 -1
  294. package/dist/assets/{index-b0a8a48c.css → NcActions-nAi2TA1m.css} +16 -11
  295. package/dist/assets/{index-4596132f.css → NcAppContent-SZz3PTd8.css} +0 -1
  296. package/dist/assets/{index-5784183b.css → NcAppNavigation-vjqOL-kR.css} +8 -8
  297. package/dist/assets/{index-f72cef5d.css → NcAppNavigationCaption-l5yRGXZx.css} +6 -5
  298. package/dist/assets/{index-5e4bf286.css → NcAppNavigationItem-n-wauJE7.css} +43 -41
  299. package/dist/assets/{index-93bc89ef.css → NcAppNavigationNewItem-MQBvffq9.css} +14 -12
  300. package/dist/assets/{index-34dfc54e.css → NcAppNavigationSettings-Jx_6RpSn.css} +13 -13
  301. package/dist/assets/{NcAppNavigationToggle-2bc73ee8.css → NcAppNavigationToggle-upUgYNtL.css} +4 -2
  302. package/dist/assets/{index-810b8984.css → NcAppSettingsDialog-8K8FduDk.css} +11 -11
  303. package/dist/assets/{index-3d1ccc15.css → NcAppSidebar-iU8Zp4Qk.css} +45 -45
  304. package/dist/assets/NcAvatar-Vg6Mi1TD.css +144 -0
  305. package/dist/assets/{index-b991895f.css → NcBreadcrumb-M3hqCbqS.css} +26 -33
  306. package/dist/assets/{index-4611417f.css → NcBreadcrumbs-KBV0Jccv.css} +7 -8
  307. package/dist/assets/{index-f091e784.css → NcButton-DTnreNJ5.css} +43 -43
  308. package/dist/assets/{index-e6a91529.css → NcCheckboxRadioSwitch-IKpLtz9k.css} +50 -47
  309. package/dist/assets/{index-7157aefa.css → NcColorPicker-CNX9fj56.css} +24 -24
  310. package/dist/assets/{index-a9e4fe04.css → NcContent-LWR23l9i.css} +42 -4
  311. package/dist/assets/{index-50dc154e.css → NcDateTimePicker-J_kGHwdu.css} +20 -20
  312. package/dist/assets/NcDateTimePickerNative-2pQS5L0H.css +46 -0
  313. package/dist/assets/{index-9941f384.css → NcDialog-2V180xdm.css} +13 -13
  314. package/dist/assets/{index-2a8e4ca1.css → NcEmojiPicker-lBXbC6Jd.css} +36 -26
  315. package/dist/assets/{index-3764a447.css → NcHeaderMenu-P0OkK9WN.css} +18 -25
  316. package/dist/assets/{index-2d4de2fc.css → NcIconSvgWrapper-arqrq5Bj.css} +13 -7
  317. package/dist/assets/{index-2a1ec06b.css → NcInputField-Y-Qp3D_b.css} +40 -40
  318. package/dist/assets/{index-4e03d941.css → NcListItem-xcW2PRrk.css} +49 -48
  319. package/dist/assets/{index-73ded07b.css → NcModal-QzDLeQrW.css} +63 -63
  320. package/dist/assets/{index-61b63a8f.css → NcProgressBar-w4-G5gQR.css} +19 -9
  321. package/dist/assets/{index-ab715d82.css → NcRelatedResourcesPanel-m3uf_nvH.css} +4 -4
  322. package/dist/assets/{index-ffa6d11c.css → NcRichContenteditable-xiQ4y2Z6.css} +64 -31
  323. package/dist/assets/{index-f9bfa317.css → NcSelect-GsLmwj9w.css} +13 -2
  324. package/dist/assets/{index-76a58945.css → NcSettingsSection-PEWm0eeL.css} +13 -13
  325. package/dist/assets/{NcSettingsSelectGroup-6ddb63a6.css → NcSettingsSelectGroup-_Jpb8yE3.css} +2 -2
  326. package/dist/assets/{index-30ca9574.css → NcTextArea-K-KVPiMp.css} +27 -40
  327. package/dist/assets/{index-c221fe05.css → NcUserBubble-jjzI5imn.css} +9 -9
  328. package/dist/assets/{index-57b305d3.css → NcUserStatusIcon-62u43_6P.css} +7 -10
  329. package/dist/assets/{referencePickerModal-3a127978.css → referencePickerModal-VxSowpb5.css} +84 -57
  330. package/dist/chunks/{AlertCircleOutline-7085c10f.cjs → AlertCircleOutline-VgVvRWpm.cjs} +1 -1
  331. package/dist/chunks/{AlertCircleOutline-7085c10f.cjs.map → AlertCircleOutline-VgVvRWpm.cjs.map} +1 -1
  332. package/dist/chunks/{AlertCircleOutline-b73838e0.mjs → AlertCircleOutline-lwSRucNO.mjs} +1 -1
  333. package/dist/chunks/{AlertCircleOutline-b73838e0.mjs.map → AlertCircleOutline-lwSRucNO.mjs.map} +1 -1
  334. package/dist/chunks/{ArrowLeft-2f9b9323.cjs → ArrowLeft-3KC2k3tR.cjs} +1 -1
  335. package/dist/chunks/{ArrowLeft-2f9b9323.cjs.map → ArrowLeft-3KC2k3tR.cjs.map} +1 -1
  336. package/dist/chunks/{ArrowLeft-3779ba88.mjs → ArrowLeft-buaCjhfr.mjs} +1 -1
  337. package/dist/chunks/{ArrowLeft-3779ba88.mjs.map → ArrowLeft-buaCjhfr.mjs.map} +1 -1
  338. package/dist/chunks/{ArrowRight-74a9fcb2.mjs → ArrowRight-4p6gv-9o.mjs} +1 -1
  339. package/dist/chunks/{ArrowRight-74a9fcb2.mjs.map → ArrowRight-4p6gv-9o.mjs.map} +1 -1
  340. package/dist/chunks/{ArrowRight-7315f6c1.cjs → ArrowRight-uEMed4kl.cjs} +1 -1
  341. package/dist/chunks/{ArrowRight-7315f6c1.cjs.map → ArrowRight-uEMed4kl.cjs.map} +1 -1
  342. package/dist/chunks/{Check-be8cd6af.cjs → Check-5uKO4aXx.cjs} +1 -1
  343. package/dist/chunks/{Check-be8cd6af.cjs.map → Check-5uKO4aXx.cjs.map} +1 -1
  344. package/dist/chunks/{Check-2ea0a88a.mjs → Check-FObi_cEO.mjs} +1 -1
  345. package/dist/chunks/{Check-2ea0a88a.mjs.map → Check-FObi_cEO.mjs.map} +1 -1
  346. package/dist/chunks/{ChevronDown-a72d365d.mjs → ChevronDown-TbRvziNU.mjs} +1 -1
  347. package/dist/chunks/{ChevronDown-a72d365d.mjs.map → ChevronDown-TbRvziNU.mjs.map} +1 -1
  348. package/dist/chunks/{ChevronDown-dc32e51d.cjs → ChevronDown-rdCNNu7u.cjs} +1 -1
  349. package/dist/chunks/{ChevronDown-dc32e51d.cjs.map → ChevronDown-rdCNNu7u.cjs.map} +1 -1
  350. package/dist/chunks/{ChevronRight-1a6a6cf2.mjs → ChevronRight-XOmSMmxA.mjs} +1 -1
  351. package/dist/chunks/{ChevronRight-1a6a6cf2.mjs.map → ChevronRight-XOmSMmxA.mjs.map} +1 -1
  352. package/dist/chunks/{ChevronRight-a4c1e0d3.cjs → ChevronRight-bp7fT1r7.cjs} +1 -1
  353. package/dist/chunks/{ChevronRight-a4c1e0d3.cjs.map → ChevronRight-bp7fT1r7.cjs.map} +1 -1
  354. package/dist/chunks/{Close-271f72e2.mjs → Close-5Hzp7J3v.mjs} +1 -1
  355. package/dist/chunks/{Close-271f72e2.mjs.map → Close-5Hzp7J3v.mjs.map} +1 -1
  356. package/dist/chunks/{Close-98cb6f12.cjs → Close-QFLrdRdG.cjs} +1 -1
  357. package/dist/chunks/{Close-98cb6f12.cjs.map → Close-QFLrdRdG.cjs.map} +1 -1
  358. package/dist/chunks/{DotsHorizontal-0ee7d901.mjs → DotsHorizontal-NssXDZGM.mjs} +1 -1
  359. package/dist/chunks/{DotsHorizontal-0ee7d901.mjs.map → DotsHorizontal-NssXDZGM.mjs.map} +1 -1
  360. package/dist/chunks/{DotsHorizontal-ac96129a.cjs → DotsHorizontal-dlN1WvqM.cjs} +1 -1
  361. package/dist/chunks/{DotsHorizontal-ac96129a.cjs.map → DotsHorizontal-dlN1WvqM.cjs.map} +1 -1
  362. package/dist/chunks/GenColors-6mrcK1J2.cjs +141 -0
  363. package/dist/chunks/GenColors-6mrcK1J2.cjs.map +1 -0
  364. package/dist/chunks/GenColors-ZwEj275X.mjs +142 -0
  365. package/dist/chunks/GenColors-ZwEj275X.mjs.map +1 -0
  366. package/dist/chunks/{GenRandomId-c214d235.cjs.map → GenRandomId-ULxaMkkr.cjs.map} +1 -1
  367. package/dist/chunks/{GenRandomId-cb9ccebe.mjs.map → GenRandomId-VodkdWbp.mjs.map} +1 -1
  368. package/dist/chunks/{Linkify-39f20c9a.mjs.map → Linkify-V7PfCeZ8.mjs.map} +1 -1
  369. package/dist/chunks/{Linkify-40cdd635.cjs.map → Linkify-f3s3nAe_.cjs.map} +1 -1
  370. package/dist/chunks/NcActionButtonGroup-3W6tc8gZ.mjs +50 -0
  371. package/dist/chunks/NcActionButtonGroup-3W6tc8gZ.mjs.map +1 -0
  372. package/dist/chunks/NcActionButtonGroup-IEaXhYp3.cjs +45 -0
  373. package/dist/chunks/NcActionButtonGroup-IEaXhYp3.cjs.map +1 -0
  374. package/dist/chunks/NcActionInput-bLRYLx45.cjs +234 -0
  375. package/dist/chunks/NcActionInput-bLRYLx45.cjs.map +1 -0
  376. package/dist/chunks/NcActionInput-v8cC8WD4.mjs +244 -0
  377. package/dist/chunks/NcActionInput-v8cC8WD4.mjs.map +1 -0
  378. package/dist/chunks/NcActions-7ytNFRBJ.cjs +493 -0
  379. package/dist/chunks/NcActions-7ytNFRBJ.cjs.map +1 -0
  380. package/dist/chunks/NcActions-CNDgnRLf.mjs +501 -0
  381. package/dist/chunks/NcActions-CNDgnRLf.mjs.map +1 -0
  382. package/dist/chunks/NcAppContent-XBosilQH.mjs +231 -0
  383. package/dist/chunks/NcAppContent-XBosilQH.mjs.map +1 -0
  384. package/dist/chunks/NcAppContent-f3dNUfhO.cjs +221 -0
  385. package/dist/chunks/NcAppContent-f3dNUfhO.cjs.map +1 -0
  386. package/dist/chunks/NcAppNavigation-oke9RxP6.cjs +113 -0
  387. package/dist/chunks/NcAppNavigation-oke9RxP6.cjs.map +1 -0
  388. package/dist/chunks/NcAppNavigation-qUXaV47L.mjs +122 -0
  389. package/dist/chunks/NcAppNavigation-qUXaV47L.mjs.map +1 -0
  390. package/dist/chunks/NcAppNavigationCaption-M-KZKijE.mjs +47 -0
  391. package/dist/chunks/NcAppNavigationCaption-M-KZKijE.mjs.map +1 -0
  392. package/dist/chunks/NcAppNavigationCaption-hVmjPz-2.cjs +43 -0
  393. package/dist/chunks/NcAppNavigationCaption-hVmjPz-2.cjs.map +1 -0
  394. package/dist/chunks/NcAppNavigationItem-GNnDmUq5.mjs +508 -0
  395. package/dist/chunks/NcAppNavigationItem-GNnDmUq5.mjs.map +1 -0
  396. package/dist/chunks/NcAppNavigationItem-YYoh37Ky.cjs +496 -0
  397. package/dist/chunks/NcAppNavigationItem-YYoh37Ky.cjs.map +1 -0
  398. package/dist/chunks/NcAppNavigationNewItem-3l4mRRsI.cjs +86 -0
  399. package/dist/chunks/NcAppNavigationNewItem-3l4mRRsI.cjs.map +1 -0
  400. package/dist/chunks/NcAppNavigationNewItem-pBHgj8Es.mjs +91 -0
  401. package/dist/chunks/NcAppNavigationNewItem-pBHgj8Es.mjs.map +1 -0
  402. package/dist/chunks/NcAppNavigationSettings-IkF_z_xt.cjs +102 -0
  403. package/dist/chunks/NcAppNavigationSettings-IkF_z_xt.cjs.map +1 -0
  404. package/dist/chunks/NcAppNavigationSettings-c_S9UbSU.mjs +105 -0
  405. package/dist/chunks/NcAppNavigationSettings-c_S9UbSU.mjs.map +1 -0
  406. package/dist/chunks/{NcAppNavigationToggle-f5591773.mjs → NcAppNavigationToggle-S4YTmnky.mjs} +30 -30
  407. package/dist/chunks/{NcAppNavigationToggle-6a975868.cjs.map → NcAppNavigationToggle-S4YTmnky.mjs.map} +1 -1
  408. package/dist/chunks/NcAppNavigationToggle-Tvz9copM.cjs +109 -0
  409. package/dist/chunks/{NcAppNavigationToggle-f5591773.mjs.map → NcAppNavigationToggle-Tvz9copM.cjs.map} +1 -1
  410. package/dist/chunks/NcAppSettingsDialog-CQtmRXyZ.mjs +184 -0
  411. package/dist/chunks/NcAppSettingsDialog-CQtmRXyZ.mjs.map +1 -0
  412. package/dist/chunks/NcAppSettingsDialog-L6IvAL_I.cjs +176 -0
  413. package/dist/chunks/NcAppSettingsDialog-L6IvAL_I.cjs.map +1 -0
  414. package/dist/chunks/NcAppSidebar-GCbKi7Tk.cjs +547 -0
  415. package/dist/chunks/NcAppSidebar-GCbKi7Tk.cjs.map +1 -0
  416. package/dist/chunks/NcAppSidebar-nHbqU8Wl.mjs +565 -0
  417. package/dist/chunks/NcAppSidebar-nHbqU8Wl.mjs.map +1 -0
  418. package/dist/chunks/{index-efb07851.mjs → NcAvatar-1gX-bnpd.mjs} +68 -93
  419. package/dist/chunks/NcAvatar-1gX-bnpd.mjs.map +1 -0
  420. package/dist/chunks/{index-32c8b581.cjs → NcAvatar-8NgbtiTN.cjs} +40 -66
  421. package/dist/chunks/NcAvatar-8NgbtiTN.cjs.map +1 -0
  422. package/dist/chunks/NcBreadcrumb-3vNer4Fs.cjs +172 -0
  423. package/dist/chunks/NcBreadcrumb-3vNer4Fs.cjs.map +1 -0
  424. package/dist/chunks/NcBreadcrumb-VlYks8Vu.mjs +179 -0
  425. package/dist/chunks/NcBreadcrumb-VlYks8Vu.mjs.map +1 -0
  426. package/dist/chunks/NcBreadcrumbs-GhYBmcix.cjs +407 -0
  427. package/dist/chunks/NcBreadcrumbs-GhYBmcix.cjs.map +1 -0
  428. package/dist/chunks/NcBreadcrumbs-UCJPNjZg.mjs +418 -0
  429. package/dist/chunks/NcBreadcrumbs-UCJPNjZg.mjs.map +1 -0
  430. package/dist/chunks/NcCheckboxRadioSwitch-3sa_9DpY.mjs +607 -0
  431. package/dist/chunks/NcCheckboxRadioSwitch-3sa_9DpY.mjs.map +1 -0
  432. package/dist/chunks/NcCheckboxRadioSwitch-s5C7ZGB_.cjs +603 -0
  433. package/dist/chunks/NcCheckboxRadioSwitch-s5C7ZGB_.cjs.map +1 -0
  434. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_835b7036_lang-2l55YbP4.cjs +3 -0
  435. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_835b7036_lang-2l55YbP4.cjs.map +1 -0
  436. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_835b7036_lang-4V3NxICZ.mjs +3 -0
  437. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_835b7036_lang-4V3NxICZ.mjs.map +1 -0
  438. package/dist/chunks/NcColorPicker-4qA0UWdA.cjs +161 -0
  439. package/dist/chunks/NcColorPicker-4qA0UWdA.cjs.map +1 -0
  440. package/dist/chunks/NcColorPicker-aNJDKf-I.mjs +172 -0
  441. package/dist/chunks/NcColorPicker-aNJDKf-I.mjs.map +1 -0
  442. package/dist/chunks/NcContent-V1PRVhsU.mjs +131 -0
  443. package/dist/chunks/NcContent-V1PRVhsU.mjs.map +1 -0
  444. package/dist/chunks/NcContent-x5KPSopo.cjs +123 -0
  445. package/dist/chunks/NcContent-x5KPSopo.cjs.map +1 -0
  446. package/dist/chunks/NcDashboardWidget-pzCvVb_0.mjs +141 -0
  447. package/dist/chunks/NcDashboardWidget-pzCvVb_0.mjs.map +1 -0
  448. package/dist/chunks/NcDashboardWidget-w15LYpmC.cjs +134 -0
  449. package/dist/chunks/NcDashboardWidget-w15LYpmC.cjs.map +1 -0
  450. package/dist/chunks/NcDashboardWidgetItem-FNmPTAuj.mjs +143 -0
  451. package/dist/chunks/NcDashboardWidgetItem-FNmPTAuj.mjs.map +1 -0
  452. package/dist/chunks/NcDashboardWidgetItem-YJerQyu5.cjs +137 -0
  453. package/dist/chunks/NcDashboardWidgetItem-YJerQyu5.cjs.map +1 -0
  454. package/dist/chunks/NcDateTime-22ULCxg8.mjs +146 -0
  455. package/dist/chunks/NcDateTime-22ULCxg8.mjs.map +1 -0
  456. package/dist/chunks/NcDateTime-eHTrKYG4.cjs +142 -0
  457. package/dist/chunks/NcDateTime-eHTrKYG4.cjs.map +1 -0
  458. package/dist/chunks/NcDialog-KlvRL7k1.cjs +209 -0
  459. package/dist/chunks/NcDialog-KlvRL7k1.cjs.map +1 -0
  460. package/dist/chunks/NcDialog-b2LjzZB8.mjs +217 -0
  461. package/dist/chunks/NcDialog-b2LjzZB8.mjs.map +1 -0
  462. package/dist/chunks/NcDialogButton-37xKCh_l.cjs +68 -0
  463. package/dist/chunks/NcDialogButton-37xKCh_l.cjs.map +1 -0
  464. package/dist/chunks/NcDialogButton-O4JZ53Dj.mjs +73 -0
  465. package/dist/chunks/NcDialogButton-O4JZ53Dj.mjs.map +1 -0
  466. package/dist/chunks/NcEmojiPicker-H_YmCt4L.mjs +249 -0
  467. package/dist/chunks/NcEmojiPicker-H_YmCt4L.mjs.map +1 -0
  468. package/dist/chunks/NcEmojiPicker-o1VRXxQO.cjs +238 -0
  469. package/dist/chunks/NcEmojiPicker-o1VRXxQO.cjs.map +1 -0
  470. package/dist/chunks/NcHeaderMenu-CIYGCufy.cjs +183 -0
  471. package/dist/chunks/NcHeaderMenu-CIYGCufy.cjs.map +1 -0
  472. package/dist/chunks/NcHeaderMenu-CfEUQ0JV.mjs +190 -0
  473. package/dist/chunks/NcHeaderMenu-CfEUQ0JV.mjs.map +1 -0
  474. package/dist/chunks/NcIconSvgWrapper-P-GkSjTH.mjs +85 -0
  475. package/dist/chunks/NcIconSvgWrapper-P-GkSjTH.mjs.map +1 -0
  476. package/dist/chunks/NcIconSvgWrapper-_lgitSfS.cjs +80 -0
  477. package/dist/chunks/NcIconSvgWrapper-_lgitSfS.cjs.map +1 -0
  478. package/dist/chunks/NcInputConfirmCancel-YzEcukdc.cjs +91 -0
  479. package/dist/chunks/{NcInputConfirmCancel-790f5902.cjs.map → NcInputConfirmCancel-YzEcukdc.cjs.map} +1 -1
  480. package/dist/chunks/{NcInputConfirmCancel-7837eb4d.mjs → NcInputConfirmCancel-lUDtoN2O.mjs} +15 -14
  481. package/dist/chunks/{NcInputConfirmCancel-7837eb4d.mjs.map → NcInputConfirmCancel-lUDtoN2O.mjs.map} +1 -1
  482. package/dist/chunks/NcListItem-AZpInn_s.mjs +248 -0
  483. package/dist/chunks/NcListItem-AZpInn_s.mjs.map +1 -0
  484. package/dist/chunks/NcListItem-bBx6_yWw.cjs +242 -0
  485. package/dist/chunks/NcListItem-bBx6_yWw.cjs.map +1 -0
  486. package/dist/chunks/NcListItemIcon-1ZcwsrMT.mjs +164 -0
  487. package/dist/chunks/NcListItemIcon-1ZcwsrMT.mjs.map +1 -0
  488. package/dist/chunks/NcListItemIcon-uPc7p1KY.cjs +160 -0
  489. package/dist/chunks/NcListItemIcon-uPc7p1KY.cjs.map +1 -0
  490. package/dist/chunks/NcPasswordField-YvUbX2WS.cjs +229 -0
  491. package/dist/chunks/NcPasswordField-YvUbX2WS.cjs.map +1 -0
  492. package/dist/chunks/NcPasswordField-fNiTJMmG.mjs +238 -0
  493. package/dist/chunks/NcPasswordField-fNiTJMmG.mjs.map +1 -0
  494. package/dist/chunks/NcPopover-EXxv8Pzw.cjs +218 -0
  495. package/dist/chunks/NcPopover-EXxv8Pzw.cjs.map +1 -0
  496. package/dist/chunks/NcPopover-NyUZ2r7V.mjs +225 -0
  497. package/dist/chunks/NcPopover-NyUZ2r7V.mjs.map +1 -0
  498. package/dist/chunks/NcProgressBar-hQCFE5H3.mjs +99 -0
  499. package/dist/chunks/NcProgressBar-hQCFE5H3.mjs.map +1 -0
  500. package/dist/chunks/NcProgressBar-yrdD1jxU.cjs +95 -0
  501. package/dist/chunks/NcProgressBar-yrdD1jxU.cjs.map +1 -0
  502. package/dist/chunks/NcRelatedResourcesPanel-DCqlPqZc.cjs +199 -0
  503. package/dist/chunks/NcRelatedResourcesPanel-DCqlPqZc.cjs.map +1 -0
  504. package/dist/chunks/NcRelatedResourcesPanel-H2imJgxi.mjs +205 -0
  505. package/dist/chunks/NcRelatedResourcesPanel-H2imJgxi.mjs.map +1 -0
  506. package/dist/chunks/NcRichContenteditable-EZp-vrCT.mjs +515 -0
  507. package/dist/chunks/NcRichContenteditable-EZp-vrCT.mjs.map +1 -0
  508. package/dist/chunks/NcRichContenteditable-lPa8fqWG.cjs +504 -0
  509. package/dist/chunks/NcRichContenteditable-lPa8fqWG.cjs.map +1 -0
  510. package/dist/chunks/{NcRichText-0db09c78.mjs → NcRichText-7CHftQ4Z.mjs} +125 -81
  511. package/dist/chunks/NcRichText-7CHftQ4Z.mjs.map +1 -0
  512. package/dist/chunks/{NcRichText-0dd96aac.cjs → NcRichText-SPiEkcnt.cjs} +112 -71
  513. package/dist/chunks/NcRichText-SPiEkcnt.cjs.map +1 -0
  514. package/dist/chunks/NcSavingIndicatorIcon-IqoMFcDK.mjs +62 -0
  515. package/dist/chunks/NcSavingIndicatorIcon-IqoMFcDK.mjs.map +1 -0
  516. package/dist/chunks/NcSavingIndicatorIcon-wcQ0mBIL.cjs +59 -0
  517. package/dist/chunks/NcSavingIndicatorIcon-wcQ0mBIL.cjs.map +1 -0
  518. package/dist/chunks/NcSelect-c9-eF29z.cjs +462 -0
  519. package/dist/chunks/NcSelect-c9-eF29z.cjs.map +1 -0
  520. package/dist/chunks/NcSelect-zx9IspDS.mjs +474 -0
  521. package/dist/chunks/NcSelect-zx9IspDS.mjs.map +1 -0
  522. package/dist/chunks/NcSelectTags-WGdCwmRr.mjs +267 -0
  523. package/dist/chunks/NcSelectTags-WGdCwmRr.mjs.map +1 -0
  524. package/dist/chunks/NcSelectTags-doFIXNxC.cjs +261 -0
  525. package/dist/chunks/NcSelectTags-doFIXNxC.cjs.map +1 -0
  526. package/dist/chunks/NcSettingsInputText-YMRo6B3V.mjs +95 -0
  527. package/dist/chunks/NcSettingsInputText-YMRo6B3V.mjs.map +1 -0
  528. package/dist/chunks/NcSettingsInputText-sJarpoq-.cjs +91 -0
  529. package/dist/chunks/NcSettingsInputText-sJarpoq-.cjs.map +1 -0
  530. package/dist/chunks/NcSettingsSection-R_JKZdJk.cjs +95 -0
  531. package/dist/chunks/NcSettingsSection-R_JKZdJk.cjs.map +1 -0
  532. package/dist/chunks/NcSettingsSection-zdWzOqxk.mjs +98 -0
  533. package/dist/chunks/NcSettingsSection-zdWzOqxk.mjs.map +1 -0
  534. package/dist/chunks/{NcSettingsSelectGroup-cdd84895.mjs → NcSettingsSelectGroup-Ghgl6Y_d.mjs} +20 -20
  535. package/dist/chunks/NcSettingsSelectGroup-Ghgl6Y_d.mjs.map +1 -0
  536. package/dist/chunks/{NcSettingsSelectGroup-532ba813.cjs → NcSettingsSelectGroup-NhJyFPsw.cjs} +16 -15
  537. package/dist/chunks/NcSettingsSelectGroup-NhJyFPsw.cjs.map +1 -0
  538. package/dist/chunks/NcTextField-8ap5MAGr.cjs +140 -0
  539. package/dist/chunks/NcTextField-8ap5MAGr.cjs.map +1 -0
  540. package/dist/chunks/NcTextField-tIJ3fJ37.mjs +146 -0
  541. package/dist/chunks/NcTextField-tIJ3fJ37.mjs.map +1 -0
  542. package/dist/chunks/NcTimezonePicker-Ue_mc4jo.mjs +7205 -0
  543. package/dist/chunks/NcTimezonePicker-Ue_mc4jo.mjs.map +1 -0
  544. package/dist/chunks/NcTimezonePicker-ag-krDDP.cjs +7199 -0
  545. package/dist/chunks/NcTimezonePicker-ag-krDDP.cjs.map +1 -0
  546. package/dist/chunks/NcUserBubble-hfgJXqk2.cjs +191 -0
  547. package/dist/chunks/NcUserBubble-hfgJXqk2.cjs.map +1 -0
  548. package/dist/chunks/NcUserBubble-s30BQXdv.mjs +197 -0
  549. package/dist/chunks/NcUserBubble-s30BQXdv.mjs.map +1 -0
  550. package/dist/chunks/NcUserStatusIcon-H5b_e8YL.mjs +174 -0
  551. package/dist/chunks/NcUserStatusIcon-H5b_e8YL.mjs.map +1 -0
  552. package/dist/chunks/NcUserStatusIcon-PevYJx6w.cjs +166 -0
  553. package/dist/chunks/NcUserStatusIcon-PevYJx6w.cjs.map +1 -0
  554. package/dist/chunks/{ScopeComponent-ac5265f5.mjs → ScopeComponent-9XNLQCuu.mjs} +1 -1
  555. package/dist/chunks/{ScopeComponent-ac5265f5.mjs.map → ScopeComponent-9XNLQCuu.mjs.map} +1 -1
  556. package/dist/chunks/{ScopeComponent-92144d97.cjs → ScopeComponent-_Cg8ogL-.cjs} +1 -1
  557. package/dist/chunks/{ScopeComponent-92144d97.cjs.map → ScopeComponent-_Cg8ogL-.cjs.map} +1 -1
  558. package/dist/chunks/_l10n-juAR1Sua.cjs +64 -0
  559. package/dist/chunks/_l10n-juAR1Sua.cjs.map +1 -0
  560. package/dist/chunks/_l10n-tZEKUJRj.mjs +66 -0
  561. package/dist/chunks/_l10n-tZEKUJRj.mjs.map +1 -0
  562. package/dist/chunks/_plugin-vue2_normalizer-DCfUPqga.cjs.map +1 -0
  563. package/dist/chunks/_plugin-vue2_normalizer-u6G_3nkj.mjs.map +1 -0
  564. package/dist/chunks/{actionGlobal-9e29e11b.cjs → actionGlobal-_f-PhW84.cjs} +3 -7
  565. package/dist/chunks/actionGlobal-_f-PhW84.cjs.map +1 -0
  566. package/dist/chunks/{actionGlobal-8c1c28c9.mjs → actionGlobal-ejpd0zqm.mjs} +3 -7
  567. package/dist/chunks/actionGlobal-ejpd0zqm.mjs.map +1 -0
  568. package/dist/chunks/{actionText-60ff01d1.mjs → actionText-AoAs4kqP.mjs} +8 -4
  569. package/dist/chunks/{actionText-60ff01d1.mjs.map → actionText-AoAs4kqP.mjs.map} +1 -1
  570. package/dist/chunks/{actionText-9582810f.cjs → actionText-pGrMQtZ3.cjs} +10 -6
  571. package/dist/chunks/{actionText-9582810f.cjs.map → actionText-pGrMQtZ3.cjs.map} +1 -1
  572. package/dist/chunks/emoji-mJIuLpNR.cjs +58 -0
  573. package/dist/chunks/emoji-mJIuLpNR.cjs.map +1 -0
  574. package/dist/chunks/emoji-tllD0Rvt.mjs +61 -0
  575. package/dist/chunks/emoji-tllD0Rvt.mjs.map +1 -0
  576. package/dist/chunks/{focusTrap-5d0f71d4.mjs.map → focusTrap-Py2bQ9-r.mjs.map} +1 -1
  577. package/dist/chunks/{focusTrap-14985831.cjs.map → focusTrap-n3H52LOw.cjs.map} +1 -1
  578. package/dist/chunks/{index-20a9ace9.mjs → index-2phCrsSH.mjs} +1 -1
  579. package/dist/chunks/{index-20a9ace9.mjs.map → index-2phCrsSH.mjs.map} +1 -1
  580. package/dist/chunks/{index-4398f925.cjs → index-AX_b-FPF.cjs} +2 -1
  581. package/dist/chunks/{index-4398f925.cjs.map → index-AX_b-FPF.cjs.map} +1 -1
  582. package/dist/chunks/{index-e894376a.cjs → index-FO4BaGaF.cjs} +1 -1
  583. package/dist/chunks/{index-e894376a.cjs.map → index-FO4BaGaF.cjs.map} +1 -1
  584. package/dist/chunks/{index-5f2a5f57.mjs → index-KrMGGc7j.mjs} +3 -2
  585. package/dist/chunks/{index-5f2a5f57.mjs.map → index-KrMGGc7j.mjs.map} +1 -1
  586. package/dist/chunks/{logger-3612e664.mjs.map → logger-3m1eQsSo.mjs.map} +1 -1
  587. package/dist/chunks/{logger-4998b668.cjs.map → logger-G6OKp5ly.cjs.map} +1 -1
  588. package/dist/chunks/{referencePickerModal-ded8273d.mjs → referencePickerModal-jbqYHMmd.mjs} +202 -214
  589. package/dist/chunks/{referencePickerModal-ded8273d.mjs.map → referencePickerModal-jbqYHMmd.mjs.map} +1 -1
  590. package/dist/chunks/{referencePickerModal-90dac0d0.cjs → referencePickerModal-rHOAeK-a.cjs} +171 -183
  591. package/dist/chunks/{referencePickerModal-90dac0d0.cjs.map → referencePickerModal-rHOAeK-a.cjs.map} +1 -1
  592. package/dist/chunks/usernameToColor-fJ1S8Q2S.cjs +39 -0
  593. package/dist/chunks/usernameToColor-fJ1S8Q2S.cjs.map +1 -0
  594. package/dist/chunks/usernameToColor-pYptUj7i.mjs +41 -0
  595. package/dist/chunks/usernameToColor-pYptUj7i.mjs.map +1 -0
  596. package/dist/functions/emoji/emoji.d.ts +50 -0
  597. package/dist/{Functions/emoji.mjs → functions/emoji/index.d.ts} +1 -16
  598. package/dist/index.cjs +170 -164
  599. package/dist/index.cjs.map +1 -1
  600. package/dist/index.mjs +169 -160
  601. package/dist/index.mjs.map +1 -1
  602. package/dist/utils/UserStatus.d.ts +24 -0
  603. package/package.json +14 -6
  604. package/dist/Functions/emoji.cjs +0 -36
  605. package/dist/Functions/emoji.cjs.map +0 -1
  606. package/dist/Functions/emoji.mjs.map +0 -1
  607. package/dist/assets/index-2e5e3b55.css +0 -151
  608. package/dist/chunks/GenColors-12ec1caa.mjs +0 -56
  609. package/dist/chunks/GenColors-12ec1caa.mjs.map +0 -1
  610. package/dist/chunks/GenColors-a8d54566.cjs +0 -55
  611. package/dist/chunks/GenColors-a8d54566.cjs.map +0 -1
  612. package/dist/chunks/NcAppNavigationToggle-6a975868.cjs +0 -108
  613. package/dist/chunks/NcInputConfirmCancel-790f5902.cjs +0 -90
  614. package/dist/chunks/NcRichText-0db09c78.mjs.map +0 -1
  615. package/dist/chunks/NcRichText-0dd96aac.cjs.map +0 -1
  616. package/dist/chunks/NcSettingsSelectGroup-532ba813.cjs.map +0 -1
  617. package/dist/chunks/NcSettingsSelectGroup-cdd84895.mjs.map +0 -1
  618. package/dist/chunks/_plugin-vue2_normalizer-71e2aa87.mjs.map +0 -1
  619. package/dist/chunks/_plugin-vue2_normalizer-7f9efb60.cjs.map +0 -1
  620. package/dist/chunks/actionGlobal-8c1c28c9.mjs.map +0 -1
  621. package/dist/chunks/actionGlobal-9e29e11b.cjs.map +0 -1
  622. package/dist/chunks/index-32c8b581.cjs.map +0 -1
  623. package/dist/chunks/index-efb07851.mjs.map +0 -1
  624. package/dist/chunks/l10n-070da9ad.cjs +0 -29
  625. package/dist/chunks/l10n-070da9ad.cjs.map +0 -1
  626. package/dist/chunks/l10n-1b905a9a.mjs +0 -31
  627. package/dist/chunks/l10n-1b905a9a.mjs.map +0 -1
  628. package/dist/chunks/l10n-38626490.cjs +0 -8
  629. package/dist/chunks/l10n-38626490.cjs.map +0 -1
  630. package/dist/chunks/l10n-6cfc1200.mjs +0 -10
  631. package/dist/chunks/l10n-6cfc1200.mjs.map +0 -1
  632. /package/dist/assets/{index-418d4e87.css → NcActionCaption-afJqyJO6.css} +0 -0
  633. /package/dist/assets/{index-018895f7.css → NcActionSeparator-l98xWbiL.css} +0 -0
  634. /package/dist/assets/{index-fc61f2d8.css → NcAppNavigationIconBullet-Nf3ARMLv.css} +0 -0
  635. /package/dist/assets/{index-0ac09203.css → NcAppNavigationNew-joyd78FM.css} +0 -0
  636. /package/dist/assets/{index-76dd9f11.css → NcAppNavigationSpacer-MfL8GeCN.css} +0 -0
  637. /package/dist/assets/{index-1f25a3c0.css → NcAppSettingsSection-ahfdhix_.css} +0 -0
  638. /package/dist/assets/{index-77a548be.css → NcAppSidebarTab-Phau6edJ.css} +0 -0
  639. /package/dist/assets/{index-17673ea1.css → NcCounterBubble-rgkmqN46.css} +0 -0
  640. /package/dist/assets/{index-6416f636.css → NcDashboardWidget-01deRW9Z.css} +0 -0
  641. /package/dist/assets/{index-e7eadba7.css → NcDashboardWidgetItem-S7fELANA.css} +0 -0
  642. /package/dist/assets/{index-a2b51bce.css → NcEllipsisedOption-eoI10kvc.css} +0 -0
  643. /package/dist/assets/{index-c239a2fc.css → NcEmptyContent-pSz7F6Oe.css} +0 -0
  644. /package/dist/assets/{index-8aa4712e.css → NcGuestContent-mGGTzI2_.css} +0 -0
  645. /package/dist/assets/{NcInputConfirmCancel-45d1d76b.css → NcInputConfirmCancel-ks8z8dIn.css} +0 -0
  646. /package/dist/assets/{index-6f721577.css → NcListItemIcon-PQ2s6ZqX.css} +0 -0
  647. /package/dist/assets/{index-b8f13a1f.css → NcLoadingIcon-hZn7TJM8.css} +0 -0
  648. /package/dist/assets/{NcMentionBubble-6e887c5f.css → NcMentionBubble-2OXF_uEJ.css} +0 -0
  649. /package/dist/assets/{index-400b48a6.css → NcNoteCard-OTfZqVvP.css} +0 -0
  650. /package/dist/assets/{index-4ebacc78.css → NcPopover-MK4GcuPY.css} +0 -0
  651. /package/dist/assets/{index-6c47e88a.css → NcSettingsInputText-MPi6a3Yy.css} +0 -0
  652. /package/dist/assets/{index-d211cae8.css → Tooltip-wOLIuz0Q.css} +0 -0
  653. /package/dist/chunks/{GenRandomId-c214d235.cjs → GenRandomId-ULxaMkkr.cjs} +0 -0
  654. /package/dist/chunks/{GenRandomId-cb9ccebe.mjs → GenRandomId-VodkdWbp.mjs} +0 -0
  655. /package/dist/chunks/{Linkify-39f20c9a.mjs → Linkify-V7PfCeZ8.mjs} +0 -0
  656. /package/dist/chunks/{Linkify-40cdd635.cjs → Linkify-f3s3nAe_.cjs} +0 -0
  657. /package/dist/chunks/{_plugin-vue2_normalizer-7f9efb60.cjs → _plugin-vue2_normalizer-DCfUPqga.cjs} +0 -0
  658. /package/dist/chunks/{_plugin-vue2_normalizer-71e2aa87.mjs → _plugin-vue2_normalizer-u6G_3nkj.mjs} +0 -0
  659. /package/dist/chunks/{focusTrap-5d0f71d4.mjs → focusTrap-Py2bQ9-r.mjs} +0 -0
  660. /package/dist/chunks/{focusTrap-14985831.cjs → focusTrap-n3H52LOw.cjs} +0 -0
  661. /package/dist/chunks/{logger-3612e664.mjs → logger-3m1eQsSo.mjs} +0 -0
  662. /package/dist/chunks/{logger-4998b668.cjs → logger-G6OKp5ly.cjs} +0 -0
@@ -0,0 +1,134 @@
1
+ var _ = require("../assets/NcDashboardWidget-01deRW9Z.css");
2
+ const a = require("./NcAvatar-8NgbtiTN.cjs"), o = require("./NcDashboardWidgetItem-YJerQyu5.cjs"), i = require("../Components/NcEmptyContent.cjs"), m = require("./Check-5uKO4aXx.cjs"), r = require("./_l10n-juAR1Sua.cjs"), l = require("./_plugin-vue2_normalizer-DCfUPqga.cjs");
3
+ r.register(r.t28);
4
+ const c = {
5
+ name: "NcDashboardWidget",
6
+ components: {
7
+ NcAvatar: a.NcAvatar,
8
+ NcDashboardWidgetItem: o.NcDashboardWidgetItem,
9
+ NcEmptyContent: i,
10
+ Check: m.Check
11
+ },
12
+ props: {
13
+ /**
14
+ * An array containing the items to show (specific structure must be respected,
15
+ * except if you override item rendering in the default slot).
16
+ */
17
+ items: {
18
+ type: Array,
19
+ default: () => []
20
+ },
21
+ /**
22
+ * If this is set, a "show more" text is displayed on the widget's bottom.
23
+ * It's a link pointing to this URL.
24
+ */
25
+ showMoreUrl: {
26
+ type: String,
27
+ default: ""
28
+ },
29
+ /**
30
+ * The text of show more button.
31
+ *
32
+ * Expected to be in the form "More {itemName} …"
33
+ */
34
+ showMoreLabel: {
35
+ type: String,
36
+ default: r.t("More items …")
37
+ },
38
+ /**
39
+ * A boolean to put the widget in a loading state.
40
+ */
41
+ loading: {
42
+ type: Boolean,
43
+ default: !1
44
+ },
45
+ /**
46
+ * An object containing context menu entries that will be displayed for each item.
47
+ */
48
+ itemMenu: {
49
+ type: Object,
50
+ default: () => ({})
51
+ },
52
+ /**
53
+ * Whether both the items and the empty content message are shown.
54
+ * Usefull for e.g. showing "No mentions" and a list of elements.
55
+ */
56
+ showItemsAndEmptyContent: {
57
+ type: Boolean,
58
+ default: !1
59
+ },
60
+ /**
61
+ * The text to show in the empty content area.
62
+ */
63
+ emptyContentMessage: {
64
+ type: String,
65
+ default: ""
66
+ },
67
+ /**
68
+ * The text to show in the half empty content area.
69
+ */
70
+ halfEmptyContentMessage: {
71
+ type: String,
72
+ default: ""
73
+ }
74
+ },
75
+ computed: {
76
+ // forward menu events to my parent
77
+ handlers() {
78
+ const n = {};
79
+ for (const t in this.itemMenu)
80
+ n[t] = (e) => {
81
+ this.$emit(t, e);
82
+ };
83
+ return n;
84
+ },
85
+ displayedItems() {
86
+ const n = this.showMoreUrl && this.items.length >= this.maxItemNumber ? this.maxItemNumber - 1 : this.maxItemNumber;
87
+ return this.items.slice(0, n);
88
+ },
89
+ showHalfEmptyContentArea() {
90
+ return this.showItemsAndEmptyContent && this.halfEmptyContentString && this.items.length !== 0;
91
+ },
92
+ halfEmptyContentString() {
93
+ return this.halfEmptyContentMessage || this.emptyContentMessage;
94
+ },
95
+ maxItemNumber() {
96
+ return this.showItemsAndEmptyContent ? 5 : 7;
97
+ },
98
+ showMore() {
99
+ return this.showMoreUrl && this.items.length >= this.maxItemNumber;
100
+ }
101
+ }
102
+ };
103
+ var u = function() {
104
+ var t = this, e = t._self._c;
105
+ return e("div", { staticClass: "dashboard-widget" }, [t.showHalfEmptyContentArea ? e("NcEmptyContent", { staticClass: "half-screen", attrs: { description: t.halfEmptyContentString }, scopedSlots: t._u([{ key: "icon", fn: function() {
106
+ return [t._t("halfEmptyContentIcon", function() {
107
+ return [e("Check")];
108
+ })];
109
+ }, proxy: !0 }], null, !0) }) : t._e(), e("ul", t._l(t.displayedItems, function(s) {
110
+ return e("li", { key: s.id }, [t._t("default", function() {
111
+ return [e("NcDashboardWidgetItem", t._g(t._b({ attrs: { "item-menu": t.itemMenu } }, "NcDashboardWidgetItem", s, !1), t.handlers))];
112
+ }, { item: s })], 2);
113
+ }), 0), t.loading ? e("div", t._l(7, function(s) {
114
+ return e("div", { key: s, staticClass: "item-list__entry" }, [e("NcAvatar", { staticClass: "item-avatar", attrs: { size: 44 } }), t._m(0, !0)], 1);
115
+ }), 0) : t.items.length === 0 ? t._t("empty-content", function() {
116
+ return [t.emptyContentMessage ? e("NcEmptyContent", { attrs: { description: t.emptyContentMessage }, scopedSlots: t._u([{ key: "icon", fn: function() {
117
+ return [t._t("emptyContentIcon")];
118
+ }, proxy: !0 }], null, !0) }) : t._e()];
119
+ }) : t.showMore ? e("a", { staticClass: "more", attrs: { href: t.showMoreUrl, target: "_blank", tabindex: "0" } }, [t._v(" " + t._s(t.showMoreLabel) + " ")]) : t._e()], 2);
120
+ }, h = [function() {
121
+ var n = this, t = n._self._c;
122
+ return t("div", { staticClass: "item__details" }, [t("h3", [n._v(" ")]), t("p", { staticClass: "message" }, [n._v("   ")])]);
123
+ }], d = /* @__PURE__ */ l.normalizeComponent(
124
+ c,
125
+ u,
126
+ h,
127
+ !1,
128
+ null,
129
+ "1efcbeee",
130
+ null,
131
+ null
132
+ );
133
+ const p = d.exports;
134
+ exports.NcDashboardWidget = p;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcDashboardWidget-w15LYpmC.cjs","sources":["../../src/components/NcDashboardWidget/NcDashboardWidget.vue"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2020 Julien Veyssier <eneiluj@posteo.net>\n -\n - @author Julien Veyssier <eneiluj@posteo.net>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<docs>\n\n## Usage\n\n### Simplest example with custom item\n```vue\n<template>\n\t<NcDashboardWidget :items=\"items\">\n\t\t<template #default=\"{ item }\">\n\t\t\t{{ item.name }}\n\t\t</template>\n\t</NcDashboardWidget>\n</template>\n\n<script>\nconst myItems = [\n\t{\n\t\tname: 'first',\n\t\tcontent: 'blabla',\n\t},\n\t{\n\t\tname: 'second',\n\t\tcontent: 'fuzzfuzz',\n\t},\n]\nexport default {\n\tname: 'MyDashboardWidget',\n\tprops: [],\n\tdata() {\n\t\treturn {\n\t\t\titems: myItems\n\t\t}\n\t},\n}\n</script>\n```\n\n### Showing items and a half empty content message\n```vue\n<template>\n\t<NcDashboardWidget :items=\"items\"\n\t\t:show-items-and-empty-content=\"true\"\n\t\t:half-empty-content-message=\"'No unread items'\">\n\t\t<template #default=\"{ item }\">\n\t\t\t{{ item.name }}\n\t\t</template>\n\t</NcDashboardWidget>\n</template>\n\n<script>\nconst myItems = [\n\t{\n\t\tname: 'first',\n\t\tcontent: 'blabla',\n\t},\n\t{\n\t\tname: 'second',\n\t\tcontent: 'fuzzfuzz',\n\t},\n]\nexport default {\n\tname: 'MyDashboardWidget',\n\tprops: [],\n\tdata() {\n\t\treturn {\n\t\t\titems: myItems\n\t\t}\n\t},\n}\n</script>\n```\n\n### Complete example using NcDashboardWidgetItem\n\n```vue\n<template>\n\t<NcDashboardWidget :items=\"items\"\n\t\t:show-more-url=\"'https://nextcloud.com'\"\n\t\t:item-menu=\"itemMenu\"\n\t\t@hide=\"onHide\"\n\t\t@markDone=\"onMarkDone\">\n\n\t\t<template #empty-content>\n\t\t\tNothing to display\n\t\t</template>\n\t</NcDashboardWidget>\n</template>\n\n<script>\nconst myItems = [\n\t{\n\t\tid: '1',\n\t\ttargetUrl: 'https://target.org',\n\t\tavatarUrl: 'https://avatar.url/img.png',\n\t\tavatarUsername: 'Robert',\n\t\tavatarIsNoUser: true,\n\t\toverlayIconUrl: '/svg/core/actions/sound?color=000',\n\t\tmainText: 'First item text',\n\t\tsubText: 'First item subtext',\n\t},\n\t{\n\t\tid: '2',\n\t\ttargetUrl: 'https://other-target.org',\n\t\tavatarUrl: 'https://other-avatar.url/img.png',\n\t\toverlayIconUrl: '/svg/core/actions/add?color=000',\n\t\tmainText: 'Second item text',\n\t\tsubText: 'Second item subtext',\n\t},\n]\nconst myItemMenu = {\n\t// triggers an event named \"markDone\" when clicked\n\t'markDone': {\n\t\ttext: 'Mark as done',\n\t\ticon: 'icon-checkmark',\n\t},\n\t// triggers an event named \"hide\" when clicked\n\t'hide': {\n\t\ttext: 'Hide',\n\t\ticon: 'icon-toggle',\n\t}\n}\nexport default {\n\tname: 'MyDashboardWidget',\n\tprops: [],\n\tdata() {\n\t\treturn {\n\t\t\titems: myItems,\n\t\t\titemMenu: myItemMenu,\n\t\t\tloading: true,\n\t\t}\n\t},\n\tmethods: {\n\t\tonMoreClick() {\n\t\t\tconsole.log('more clicked')\n\t\t\tconst win = window.open('https://wherever.you.want', '_blank')\n\t\t\twin.focus()\n\t\t},\n\t\tonHide(item) {\n\t\t\tconsole.log('user wants to hide item ' + item.id)\n\t\t\t// do what you want\n\t\t},\n\t\tonMarkDone(item) {\n\t\t\tconsole.log('user wants to mark item ' + item.id + ' as done')\n\t\t\t// do what you want\n\t\t},\n\t},\n}\n</script>\n```\n\n</docs>\n\n<template>\n\t<div class=\"dashboard-widget\">\n\t\t<!-- This element is shown if we have items, but want to show a general message as well.\n\t\tCan be used e.g. to show \"No mentions\" on top of the item list. -->\n\t\t<NcEmptyContent v-if=\"showHalfEmptyContentArea\"\n\t\t\t:description=\"halfEmptyContentString\"\n\t\t\tclass=\"half-screen\">\n\t\t\t<template #icon>\n\t\t\t\t<!-- @slot The icon to show in the half empty content area. -->\n\t\t\t\t<slot name=\"halfEmptyContentIcon\">\n\t\t\t\t\t<Check />\n\t\t\t\t</slot>\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t\t<!-- The list of items to show. -->\n\t\t<ul>\n\t\t\t<li v-for=\"item in displayedItems\" :key=\"item.id\">\n\t\t\t\t<!-- @slot The default slot can be optionally overridden. It contains the template of one item. -->\n\t\t\t\t<slot name=\"default\" :item=\"item\">\n\t\t\t\t\t<NcDashboardWidgetItem v-bind=\"item\"\n\t\t\t\t\t\t:item-menu=\"itemMenu\"\n\t\t\t\t\t\tv-on=\"handlers\" />\n\t\t\t\t</slot>\n\t\t\t</li>\n\t\t</ul>\n\t\t<!-- While the widget is loading, we show a list of placeholder items. -->\n\t\t<div v-if=\"loading\">\n\t\t\t<div v-for=\"i in 7\" :key=\"i\" class=\"item-list__entry\">\n\t\t\t\t<NcAvatar class=\"item-avatar\" :size=\"44\" />\n\t\t\t\t<div class=\"item__details\">\n\t\t\t\t\t<h3>&nbsp;</h3>\n\t\t\t\t\t<p class=\"message\">\n&nbsp;\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<!-- @slot Slot for showing information in case of an empty item list. -->\n\t\t<slot v-else-if=\"items.length === 0\" name=\"empty-content\">\n\t\t\t<NcEmptyContent v-if=\"emptyContentMessage\"\n\t\t\t\t:description=\"emptyContentMessage\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<!-- @slot The icon to show in the empty content area. -->\n\t\t\t\t\t<slot name=\"emptyContentIcon\" />\n\t\t\t\t</template>\n\t\t\t</NcEmptyContent>\n\t\t</slot>\n\t\t<!-- A \"show more\" link, e.g. to navigate to the main app belonging to this widget. -->\n\t\t<a v-else-if=\"showMore\"\n\t\t\t:href=\"showMoreUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tclass=\"more\"\n\t\t\ttabindex=\"0\">\n\t\t\t{{ showMoreLabel }}\n\t\t</a>\n\t</div>\n</template>\n\n<script>\nimport NcAvatar from '../NcAvatar/index.js'\nimport NcDashboardWidgetItem from '../NcDashboardWidgetItem/index.js'\nimport NcEmptyContent from '../NcEmptyContent/index.js'\n\nimport Check from 'vue-material-design-icons/Check.vue'\n\nimport { t } from '../../l10n.js'\n\nexport default {\n\tname: 'NcDashboardWidget',\n\tcomponents: {\n\t\tNcAvatar,\n\t\tNcDashboardWidgetItem,\n\t\tNcEmptyContent,\n\t\tCheck,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * An array containing the items to show (specific structure must be respected,\n\t\t * except if you override item rendering in the default slot).\n\t\t */\n\t\titems: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => { return [] },\n\t\t},\n\t\t/**\n\t\t * If this is set, a \"show more\" text is displayed on the widget's bottom.\n\t\t * It's a link pointing to this URL.\n\t\t */\n\t\tshowMoreUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * The text of show more button.\n\t\t *\n\t\t * Expected to be in the form \"More {itemName} …\"\n\t\t */\n\t\tshowMoreLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: t('More items …'),\n\t\t},\n\t\t/**\n\t\t * A boolean to put the widget in a loading state.\n\t\t */\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * An object containing context menu entries that will be displayed for each item.\n\t\t */\n\t\titemMenu: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => { return {} },\n\t\t},\n\t\t/**\n\t\t * Whether both the items and the empty content message are shown.\n\t\t * Usefull for e.g. showing \"No mentions\" and a list of elements.\n\t\t */\n\t\tshowItemsAndEmptyContent: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * The text to show in the empty content area.\n\t\t */\n\t\temptyContentMessage: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * The text to show in the half empty content area.\n\t\t */\n\t\thalfEmptyContentMessage: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\tcomputed: {\n\t\t// forward menu events to my parent\n\t\thandlers() {\n\t\t\tconst h = {}\n\t\t\tfor (const evName in this.itemMenu) {\n\t\t\t\th[evName] = (it) => {\n\t\t\t\t\tthis.$emit(evName, it)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn h\n\t\t},\n\t\tdisplayedItems() {\n\t\t\tconst nbItems = (this.showMoreUrl && this.items.length >= this.maxItemNumber)\n\t\t\t\t? this.maxItemNumber - 1\n\t\t\t\t: this.maxItemNumber\n\t\t\treturn this.items.slice(0, nbItems)\n\t\t},\n\n\t\tshowHalfEmptyContentArea() {\n\t\t\treturn this.showItemsAndEmptyContent && this.halfEmptyContentString && this.items.length !== 0\n\t\t},\n\n\t\thalfEmptyContentString() {\n\t\t\treturn this.halfEmptyContentMessage || this.emptyContentMessage\n\t\t},\n\n\t\tmaxItemNumber() {\n\t\t\treturn this.showItemsAndEmptyContent ? 5 : 7\n\t\t},\n\n\t\tshowMore() {\n\t\t\treturn this.showMoreUrl && this.items.length >= this.maxItemNumber\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.dashboard-widget :deep(.empty-content) {\n\ttext-align: center;\n\tpadding-top: 5vh;\n\t&.half-screen {\n\t\tpadding-top: 0;\n\t\tmargin-bottom: 1vh;\n\t}\n}\n\n.more {\n\tdisplay: block;\n\ttext-align: center;\n\tcolor: var(--color-text-maxcontrast);\n\tline-height: 60px;\n\tcursor: pointer;\n\n\t&:hover,\n\t&:focus {\n\t\tbackground-color: var(--color-background-hover);\n\t\tborder-radius: var(--border-radius-large);\n\t\tcolor: var(--color-main-text);\n\t}\n}\n\n/* skeleton */\n.item-list__entry {\n\tdisplay: flex;\n\talign-items: flex-start;\n\tpadding: 8px;\n\n\t.item-avatar {\n\t\tposition: relative;\n\t\tmargin-top: auto;\n\t\tmargin-bottom: auto;\n\t\tbackground-color: var(--color-background-dark) !important;\n\t}\n\t.item__details {\n\t\tpadding-left: 8px;\n\t\tmax-height: 44px;\n\t\tflex-grow: 1;\n\t\toverflow: hidden;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\n\t\th3,\n\t\t.message {\n\t\t\twhite-space: nowrap;\n\t\t\tbackground-color: var(--color-background-dark);\n\t\t}\n\t\th3 {\n\t\t\tfont-size: 100%;\n\t\t\tmargin: 0;\n\t\t}\n\t\t.message {\n\t\t\twidth: 80%;\n\t\t\theight: 15px;\n\t\t\tmargin-top: 5px;\n\t\t}\n\t}\n}\n</style>\n"],"names":["_sfc_main","NcAvatar","NcDashboardWidgetItem","Components_NcEmptyContent","Check","_l10n","h","evName","it","nbItems"],"mappings":";;;AAgPA,MAAAA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA;AAAA,IACA,UAAAC,EAAA;AAAA,IACA,uBAAAC,EAAA;AAAA,IACA,gBAAAC;AAAA,IACA,OAAAC,EAAA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA,MAAA,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,eAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAAC,EAAA,EAAA,cAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,SAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA,OAAA,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,0BAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,qBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,yBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA;AAAA,IAEA,WAAA;AACA,YAAAC,IAAA,CAAA;AACA,iBAAAC,KAAA,KAAA;AACA,QAAAD,EAAAC,CAAA,IAAA,CAAAC,MAAA;AACA,eAAA,MAAAD,GAAAC,CAAA;AAAA,QACA;AAEA,aAAAF;AAAA,IACA;AAAA,IACA,iBAAA;AACA,YAAAG,IAAA,KAAA,eAAA,KAAA,MAAA,UAAA,KAAA,gBACA,KAAA,gBAAA,IACA,KAAA;AACA,aAAA,KAAA,MAAA,MAAA,GAAAA,CAAA;AAAA,IACA;AAAA,IAEA,2BAAA;AACA,aAAA,KAAA,4BAAA,KAAA,0BAAA,KAAA,MAAA,WAAA;AAAA,IACA;AAAA,IAEA,yBAAA;AACA,aAAA,KAAA,2BAAA,KAAA;AAAA,IACA;AAAA,IAEA,gBAAA;AACA,aAAA,KAAA,2BAAA,IAAA;AAAA,IACA;AAAA,IAEA,WAAA;AACA,aAAA,KAAA,eAAA,KAAA,MAAA,UAAA,KAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,143 @@
1
+ import "../assets/NcDashboardWidgetItem-S7fELANA.css";
2
+ import { N as i } from "./NcAvatar-1gX-bnpd.mjs";
3
+ import { N as o } from "./NcActions-CNDgnRLf.mjs";
4
+ import l from "../Components/NcActionButton.mjs";
5
+ import { n as u } from "./_plugin-vue2_normalizer-u6G_3nkj.mjs";
6
+ const c = {
7
+ name: "NcDashboardWidgetItem",
8
+ components: {
9
+ NcAvatar: i,
10
+ NcActions: o,
11
+ NcActionButton: l
12
+ },
13
+ props: {
14
+ /**
15
+ * The item id (optional)
16
+ */
17
+ id: {
18
+ type: [String, Number],
19
+ default: void 0
20
+ },
21
+ /**
22
+ * The item element is a link to this URL (optional)
23
+ */
24
+ targetUrl: {
25
+ type: String,
26
+ default: void 0
27
+ },
28
+ /**
29
+ * Where to get the avatar image. (optional) Used if avatarUsername is not defined.
30
+ */
31
+ avatarUrl: {
32
+ type: String,
33
+ default: void 0
34
+ },
35
+ /**
36
+ * Name to provide to the Avatar. (optional) Used if avatarUrl is not defined.
37
+ */
38
+ avatarUsername: {
39
+ type: String,
40
+ default: void 0
41
+ },
42
+ /**
43
+ * Is the avatarUsername not a user's name? (optional, false by default)
44
+ */
45
+ avatarIsNoUser: {
46
+ type: Boolean,
47
+ default: !1
48
+ },
49
+ /**
50
+ * Small icon to display on the bottom-right corner of the avatar (optional)
51
+ */
52
+ overlayIconUrl: {
53
+ type: String,
54
+ default: void 0
55
+ },
56
+ /**
57
+ * Item main text (mandatory)
58
+ */
59
+ mainText: {
60
+ type: String,
61
+ required: !0
62
+ },
63
+ /**
64
+ * Item subline text (optional)
65
+ */
66
+ subText: {
67
+ type: String,
68
+ default: ""
69
+ },
70
+ /**
71
+ * An object containing context menu entries that will be displayed for each items (optional)
72
+ */
73
+ itemMenu: {
74
+ type: Object,
75
+ default: () => ({})
76
+ },
77
+ /**
78
+ * Specify whether the 3 dot menu is forced when only one action is present
79
+ */
80
+ forceMenu: {
81
+ type: Boolean,
82
+ default: !0
83
+ }
84
+ },
85
+ data() {
86
+ return {
87
+ hovered: !1
88
+ };
89
+ },
90
+ computed: {
91
+ item() {
92
+ return {
93
+ id: this.id,
94
+ targetUrl: this.targetUrl,
95
+ avatarUrl: this.avatarUrl,
96
+ avatarUsername: this.avatarUsername,
97
+ overlayIconUrl: this.overlayIconUrl,
98
+ mainText: this.mainText,
99
+ subText: this.subText
100
+ };
101
+ },
102
+ gotMenu() {
103
+ return Object.keys(this.itemMenu).length !== 0 || !!this.$slots.actions;
104
+ },
105
+ gotOverlayIcon() {
106
+ return this.overlayIconUrl && this.overlayIconUrl !== "";
107
+ }
108
+ },
109
+ methods: {
110
+ onLinkClick(r) {
111
+ r.target.closest(".action-item") && r.preventDefault();
112
+ }
113
+ }
114
+ };
115
+ var m = function() {
116
+ var t = this, e = t._self._c;
117
+ return e("div", { on: { mouseover: function(a) {
118
+ t.hovered = !0;
119
+ }, mouseleave: function(a) {
120
+ t.hovered = !1;
121
+ } } }, [e(t.targetUrl ? "a" : "div", { tag: "component", class: { "item-list__entry": !0, "item-list__entry--has-actions-menu": t.gotMenu }, attrs: { href: t.targetUrl || void 0, target: t.targetUrl ? "_blank" : void 0 }, on: { click: t.onLinkClick } }, [t._t("avatar", function() {
122
+ return [e("NcAvatar", { staticClass: "item-avatar", attrs: { size: 44, url: t.avatarUrl, user: t.avatarUsername, "is-no-user": t.avatarIsNoUser, "show-user-status": !t.gotOverlayIcon } })];
123
+ }, { avatarUrl: t.avatarUrl, avatarUsername: t.avatarUsername }), t.overlayIconUrl ? e("img", { staticClass: "item-icon", attrs: { alt: "", src: t.overlayIconUrl } }) : t._e(), e("div", { staticClass: "item__details" }, [e("h3", { attrs: { title: t.mainText } }, [t._v(" " + t._s(t.mainText) + " ")]), e("span", { staticClass: "message", attrs: { title: t.subText } }, [t._v(" " + t._s(t.subText) + " ")])]), t.gotMenu ? e("NcActions", { attrs: { "force-menu": t.forceMenu } }, [t._t("actions", function() {
124
+ return t._l(t.itemMenu, function(a, n) {
125
+ return e("NcActionButton", { key: n, attrs: { icon: a.icon, "close-after-click": !0 }, on: { click: function(s) {
126
+ return s.preventDefault(), s.stopPropagation(), t.$emit(n, t.item);
127
+ } } }, [t._v(" " + t._s(a.text) + " ")]);
128
+ });
129
+ })], 2) : t._e()], 2)], 1);
130
+ }, v = [], f = /* @__PURE__ */ u(
131
+ c,
132
+ m,
133
+ v,
134
+ !1,
135
+ null,
136
+ "00e861ef",
137
+ null,
138
+ null
139
+ );
140
+ const h = f.exports;
141
+ export {
142
+ h as N
143
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcDashboardWidgetItem-FNmPTAuj.mjs","sources":["../../src/components/NcDashboardWidgetItem/NcDashboardWidgetItem.vue"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2020 Julien Veyssier <eneiluj@posteo.net>\n -\n - @author Julien Veyssier <eneiluj@posteo.net>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<docs>\n\n### General description\n\nThis component is meant to be used inside a DashboardWidget component.\n\n</docs>\n\n<template>\n\t<div @mouseover=\"hovered = true\" @mouseleave=\"hovered = false\">\n\t\t<component :is=\"targetUrl ? 'a' : 'div'\"\n\t\t\t:href=\"targetUrl || undefined\"\n\t\t\t:target=\"targetUrl ? '_blank' : undefined\"\n\t\t\t:class=\"{ 'item-list__entry': true, 'item-list__entry--has-actions-menu': gotMenu }\"\n\t\t\t@click=\"onLinkClick\">\n\t\t\t<!-- @slot Slot for passing a user avatar. -->\n\t\t\t<slot name=\"avatar\" :avatar-url=\"avatarUrl\" :avatar-username=\"avatarUsername\">\n\t\t\t\t<NcAvatar class=\"item-avatar\"\n\t\t\t\t\t:size=\"44\"\n\t\t\t\t\t:url=\"avatarUrl\"\n\t\t\t\t\t:user=\"avatarUsername\"\n\t\t\t\t\t:is-no-user=\"avatarIsNoUser\"\n\t\t\t\t\t:show-user-status=\"!gotOverlayIcon\" />\n\t\t\t</slot>\n\t\t\t<img v-if=\"overlayIconUrl\"\n\t\t\t\tclass=\"item-icon\"\n\t\t\t\talt=\"\"\n\t\t\t\t:src=\"overlayIconUrl\">\n\t\t\t<div class=\"item__details\">\n\t\t\t\t<h3 :title=\"mainText\">\n\t\t\t\t\t{{ mainText }}\n\t\t\t\t</h3>\n\t\t\t\t<span class=\"message\" :title=\"subText\">\n\t\t\t\t\t{{ subText }}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<NcActions v-if=\"gotMenu\" :force-menu=\"forceMenu\">\n\t\t\t\t<!-- @slot This slot can be used to provide actions for each dashboard widget item. -->\n\t\t\t\t<slot name=\"actions\">\n\t\t\t\t\t<NcActionButton v-for=\"(m, menuItemId) in itemMenu\"\n\t\t\t\t\t\t:key=\"menuItemId\"\n\t\t\t\t\t\t:icon=\"m.icon\"\n\t\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t\t@click.prevent.stop=\"$emit(menuItemId, item)\">\n\t\t\t\t\t\t{{ m.text }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</slot>\n\t\t\t</NcActions>\n\t\t</component>\n\t</div>\n</template>\n\n<script>\nimport NcAvatar from '../NcAvatar/index.js'\nimport NcActions from '../NcActions/index.js'\nimport NcActionButton from '../NcActionButton/index.js'\n\nexport default {\n\tname: 'NcDashboardWidgetItem',\n\tcomponents: {\n\t\tNcAvatar,\n\t\tNcActions,\n\t\tNcActionButton,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * The item id (optional)\n\t\t */\n\t\tid: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * The item element is a link to this URL (optional)\n\t\t */\n\t\ttargetUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Where to get the avatar image. (optional) Used if avatarUsername is not defined.\n\t\t */\n\t\tavatarUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Name to provide to the Avatar. (optional) Used if avatarUrl is not defined.\n\t\t */\n\t\tavatarUsername: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Is the avatarUsername not a user's name? (optional, false by default)\n\t\t */\n\t\tavatarIsNoUser: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Small icon to display on the bottom-right corner of the avatar (optional)\n\t\t */\n\t\toverlayIconUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Item main text (mandatory)\n\t\t */\n\t\tmainText: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * Item subline text (optional)\n\t\t */\n\t\tsubText: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * An object containing context menu entries that will be displayed for each items (optional)\n\t\t */\n\t\titemMenu: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => { return {} },\n\t\t},\n\n\t\t/**\n\t\t * Specify whether the 3 dot menu is forced when only one action is present\n\t\t */\n\t\tforceMenu: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\thovered: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\titem() {\n\t\t\treturn {\n\t\t\t\tid: this.id,\n\t\t\t\ttargetUrl: this.targetUrl,\n\t\t\t\tavatarUrl: this.avatarUrl,\n\t\t\t\tavatarUsername: this.avatarUsername,\n\t\t\t\toverlayIconUrl: this.overlayIconUrl,\n\t\t\t\tmainText: this.mainText,\n\t\t\t\tsubText: this.subText,\n\t\t\t}\n\t\t},\n\t\tgotMenu() {\n\t\t\treturn Object.keys(this.itemMenu).length !== 0 || !!this.$slots.actions\n\t\t},\n\t\tgotOverlayIcon() {\n\t\t\treturn this.overlayIconUrl && this.overlayIconUrl !== ''\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonLinkClick(event) {\n\t\t\tif (event.target.closest('.action-item')) {\n\t\t\t\tevent.preventDefault()\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.item-list__entry {\n\tdisplay: flex;\n\talign-items: flex-start;\n\tposition: relative;\n\tpadding: 8px;\n\n\t&:hover,\n\t&:focus {\n\t\tbackground-color: var(--color-background-hover);\n\t\tborder-radius: var(--border-radius-large);\n\t}\n\t.item-avatar {\n\t\tposition: relative;\n\t\tmargin-top: auto;\n\t\tmargin-bottom: auto;\n\t}\n\t.item__details {\n\t\tpadding-left: 8px;\n\t\tmax-height: 44px;\n\t\tflex-grow: 1;\n\t\toverflow: hidden;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\n\t\th3,\n\t\t.message {\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\t\t.message span {\n\t\t\twidth: 10px;\n\t\t\tdisplay: inline-block;\n\t\t\tmargin-bottom: -3px;\n\t\t}\n\t\th3 {\n\t\t\tfont-size: 100%;\n\t\t\tmargin: 0;\n\t\t}\n\t\t.message {\n\t\t\twidth: 100%;\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n\n\t.item-icon {\n\t\tposition: relative;\n\t\twidth: 14px;\n\t\theight: 14px;\n\t\tmargin: 27px -3px 0px -7px;\n\t}\n\n\tbutton.primary {\n\t\tpadding: 21px;\n\t\tmargin: 0;\n\t}\n}\n/*\n.content-popover {\n\theight: 0px;\n\twidth: 0px;\n\tmargin-left: auto;\n\tmargin-right: auto;\n}\n.popover-container {\n\twidth: 100%;\n\theight: 0px;\n}\n*/\n</style>\n"],"names":["_sfc_main","NcAvatar","NcActions","NcActionButton","event"],"mappings":";;;;;AA+EA,MAAAA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,IAAA;AAAA,MACA,MAAA,CAAA,QAAA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,gBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,gBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,gBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,SAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA,OAAA,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,OAAA;AACA,aAAA;AAAA,QACA,IAAA,KAAA;AAAA,QACA,WAAA,KAAA;AAAA,QACA,WAAA,KAAA;AAAA,QACA,gBAAA,KAAA;AAAA,QACA,gBAAA,KAAA;AAAA,QACA,UAAA,KAAA;AAAA,QACA,SAAA,KAAA;AAAA,MACA;AAAA,IACA;AAAA,IACA,UAAA;AACA,aAAA,OAAA,KAAA,KAAA,QAAA,EAAA,WAAA,KAAA,CAAA,CAAA,KAAA,OAAA;AAAA,IACA;AAAA,IACA,iBAAA;AACA,aAAA,KAAA,kBAAA,KAAA,mBAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA,IACA,YAAAC,GAAA;AACA,MAAAA,EAAA,OAAA,QAAA,cAAA,KACAA,EAAA,eAAA;AAAA,IAEA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,137 @@
1
+ var _ = require("../assets/NcDashboardWidgetItem-S7fELANA.css");
2
+ const i = require("./NcAvatar-8NgbtiTN.cjs"), o = require("./NcActions-7ytNFRBJ.cjs"), c = require("../Components/NcActionButton.cjs"), l = require("./_plugin-vue2_normalizer-DCfUPqga.cjs"), u = {
3
+ name: "NcDashboardWidgetItem",
4
+ components: {
5
+ NcAvatar: i.NcAvatar,
6
+ NcActions: o.NcActions,
7
+ NcActionButton: c
8
+ },
9
+ props: {
10
+ /**
11
+ * The item id (optional)
12
+ */
13
+ id: {
14
+ type: [String, Number],
15
+ default: void 0
16
+ },
17
+ /**
18
+ * The item element is a link to this URL (optional)
19
+ */
20
+ targetUrl: {
21
+ type: String,
22
+ default: void 0
23
+ },
24
+ /**
25
+ * Where to get the avatar image. (optional) Used if avatarUsername is not defined.
26
+ */
27
+ avatarUrl: {
28
+ type: String,
29
+ default: void 0
30
+ },
31
+ /**
32
+ * Name to provide to the Avatar. (optional) Used if avatarUrl is not defined.
33
+ */
34
+ avatarUsername: {
35
+ type: String,
36
+ default: void 0
37
+ },
38
+ /**
39
+ * Is the avatarUsername not a user's name? (optional, false by default)
40
+ */
41
+ avatarIsNoUser: {
42
+ type: Boolean,
43
+ default: !1
44
+ },
45
+ /**
46
+ * Small icon to display on the bottom-right corner of the avatar (optional)
47
+ */
48
+ overlayIconUrl: {
49
+ type: String,
50
+ default: void 0
51
+ },
52
+ /**
53
+ * Item main text (mandatory)
54
+ */
55
+ mainText: {
56
+ type: String,
57
+ required: !0
58
+ },
59
+ /**
60
+ * Item subline text (optional)
61
+ */
62
+ subText: {
63
+ type: String,
64
+ default: ""
65
+ },
66
+ /**
67
+ * An object containing context menu entries that will be displayed for each items (optional)
68
+ */
69
+ itemMenu: {
70
+ type: Object,
71
+ default: () => ({})
72
+ },
73
+ /**
74
+ * Specify whether the 3 dot menu is forced when only one action is present
75
+ */
76
+ forceMenu: {
77
+ type: Boolean,
78
+ default: !0
79
+ }
80
+ },
81
+ data() {
82
+ return {
83
+ hovered: !1
84
+ };
85
+ },
86
+ computed: {
87
+ item() {
88
+ return {
89
+ id: this.id,
90
+ targetUrl: this.targetUrl,
91
+ avatarUrl: this.avatarUrl,
92
+ avatarUsername: this.avatarUsername,
93
+ overlayIconUrl: this.overlayIconUrl,
94
+ mainText: this.mainText,
95
+ subText: this.subText
96
+ };
97
+ },
98
+ gotMenu() {
99
+ return Object.keys(this.itemMenu).length !== 0 || !!this.$slots.actions;
100
+ },
101
+ gotOverlayIcon() {
102
+ return this.overlayIconUrl && this.overlayIconUrl !== "";
103
+ }
104
+ },
105
+ methods: {
106
+ onLinkClick(a) {
107
+ a.target.closest(".action-item") && a.preventDefault();
108
+ }
109
+ }
110
+ };
111
+ var v = function() {
112
+ var t = this, e = t._self._c;
113
+ return e("div", { on: { mouseover: function(r) {
114
+ t.hovered = !0;
115
+ }, mouseleave: function(r) {
116
+ t.hovered = !1;
117
+ } } }, [e(t.targetUrl ? "a" : "div", { tag: "component", class: { "item-list__entry": !0, "item-list__entry--has-actions-menu": t.gotMenu }, attrs: { href: t.targetUrl || void 0, target: t.targetUrl ? "_blank" : void 0 }, on: { click: t.onLinkClick } }, [t._t("avatar", function() {
118
+ return [e("NcAvatar", { staticClass: "item-avatar", attrs: { size: 44, url: t.avatarUrl, user: t.avatarUsername, "is-no-user": t.avatarIsNoUser, "show-user-status": !t.gotOverlayIcon } })];
119
+ }, { avatarUrl: t.avatarUrl, avatarUsername: t.avatarUsername }), t.overlayIconUrl ? e("img", { staticClass: "item-icon", attrs: { alt: "", src: t.overlayIconUrl } }) : t._e(), e("div", { staticClass: "item__details" }, [e("h3", { attrs: { title: t.mainText } }, [t._v(" " + t._s(t.mainText) + " ")]), e("span", { staticClass: "message", attrs: { title: t.subText } }, [t._v(" " + t._s(t.subText) + " ")])]), t.gotMenu ? e("NcActions", { attrs: { "force-menu": t.forceMenu } }, [t._t("actions", function() {
120
+ return t._l(t.itemMenu, function(r, n) {
121
+ return e("NcActionButton", { key: n, attrs: { icon: r.icon, "close-after-click": !0 }, on: { click: function(s) {
122
+ return s.preventDefault(), s.stopPropagation(), t.$emit(n, t.item);
123
+ } } }, [t._v(" " + t._s(r.text) + " ")]);
124
+ });
125
+ })], 2) : t._e()], 2)], 1);
126
+ }, d = [], m = /* @__PURE__ */ l.normalizeComponent(
127
+ u,
128
+ v,
129
+ d,
130
+ !1,
131
+ null,
132
+ "00e861ef",
133
+ null,
134
+ null
135
+ );
136
+ const f = m.exports;
137
+ exports.NcDashboardWidgetItem = f;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcDashboardWidgetItem-YJerQyu5.cjs","sources":["../../src/components/NcDashboardWidgetItem/NcDashboardWidgetItem.vue"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2020 Julien Veyssier <eneiluj@posteo.net>\n -\n - @author Julien Veyssier <eneiluj@posteo.net>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<docs>\n\n### General description\n\nThis component is meant to be used inside a DashboardWidget component.\n\n</docs>\n\n<template>\n\t<div @mouseover=\"hovered = true\" @mouseleave=\"hovered = false\">\n\t\t<component :is=\"targetUrl ? 'a' : 'div'\"\n\t\t\t:href=\"targetUrl || undefined\"\n\t\t\t:target=\"targetUrl ? '_blank' : undefined\"\n\t\t\t:class=\"{ 'item-list__entry': true, 'item-list__entry--has-actions-menu': gotMenu }\"\n\t\t\t@click=\"onLinkClick\">\n\t\t\t<!-- @slot Slot for passing a user avatar. -->\n\t\t\t<slot name=\"avatar\" :avatar-url=\"avatarUrl\" :avatar-username=\"avatarUsername\">\n\t\t\t\t<NcAvatar class=\"item-avatar\"\n\t\t\t\t\t:size=\"44\"\n\t\t\t\t\t:url=\"avatarUrl\"\n\t\t\t\t\t:user=\"avatarUsername\"\n\t\t\t\t\t:is-no-user=\"avatarIsNoUser\"\n\t\t\t\t\t:show-user-status=\"!gotOverlayIcon\" />\n\t\t\t</slot>\n\t\t\t<img v-if=\"overlayIconUrl\"\n\t\t\t\tclass=\"item-icon\"\n\t\t\t\talt=\"\"\n\t\t\t\t:src=\"overlayIconUrl\">\n\t\t\t<div class=\"item__details\">\n\t\t\t\t<h3 :title=\"mainText\">\n\t\t\t\t\t{{ mainText }}\n\t\t\t\t</h3>\n\t\t\t\t<span class=\"message\" :title=\"subText\">\n\t\t\t\t\t{{ subText }}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<NcActions v-if=\"gotMenu\" :force-menu=\"forceMenu\">\n\t\t\t\t<!-- @slot This slot can be used to provide actions for each dashboard widget item. -->\n\t\t\t\t<slot name=\"actions\">\n\t\t\t\t\t<NcActionButton v-for=\"(m, menuItemId) in itemMenu\"\n\t\t\t\t\t\t:key=\"menuItemId\"\n\t\t\t\t\t\t:icon=\"m.icon\"\n\t\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t\t@click.prevent.stop=\"$emit(menuItemId, item)\">\n\t\t\t\t\t\t{{ m.text }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</slot>\n\t\t\t</NcActions>\n\t\t</component>\n\t</div>\n</template>\n\n<script>\nimport NcAvatar from '../NcAvatar/index.js'\nimport NcActions from '../NcActions/index.js'\nimport NcActionButton from '../NcActionButton/index.js'\n\nexport default {\n\tname: 'NcDashboardWidgetItem',\n\tcomponents: {\n\t\tNcAvatar,\n\t\tNcActions,\n\t\tNcActionButton,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * The item id (optional)\n\t\t */\n\t\tid: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * The item element is a link to this URL (optional)\n\t\t */\n\t\ttargetUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Where to get the avatar image. (optional) Used if avatarUsername is not defined.\n\t\t */\n\t\tavatarUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Name to provide to the Avatar. (optional) Used if avatarUrl is not defined.\n\t\t */\n\t\tavatarUsername: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Is the avatarUsername not a user's name? (optional, false by default)\n\t\t */\n\t\tavatarIsNoUser: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Small icon to display on the bottom-right corner of the avatar (optional)\n\t\t */\n\t\toverlayIconUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Item main text (mandatory)\n\t\t */\n\t\tmainText: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * Item subline text (optional)\n\t\t */\n\t\tsubText: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * An object containing context menu entries that will be displayed for each items (optional)\n\t\t */\n\t\titemMenu: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => { return {} },\n\t\t},\n\n\t\t/**\n\t\t * Specify whether the 3 dot menu is forced when only one action is present\n\t\t */\n\t\tforceMenu: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\thovered: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\titem() {\n\t\t\treturn {\n\t\t\t\tid: this.id,\n\t\t\t\ttargetUrl: this.targetUrl,\n\t\t\t\tavatarUrl: this.avatarUrl,\n\t\t\t\tavatarUsername: this.avatarUsername,\n\t\t\t\toverlayIconUrl: this.overlayIconUrl,\n\t\t\t\tmainText: this.mainText,\n\t\t\t\tsubText: this.subText,\n\t\t\t}\n\t\t},\n\t\tgotMenu() {\n\t\t\treturn Object.keys(this.itemMenu).length !== 0 || !!this.$slots.actions\n\t\t},\n\t\tgotOverlayIcon() {\n\t\t\treturn this.overlayIconUrl && this.overlayIconUrl !== ''\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonLinkClick(event) {\n\t\t\tif (event.target.closest('.action-item')) {\n\t\t\t\tevent.preventDefault()\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.item-list__entry {\n\tdisplay: flex;\n\talign-items: flex-start;\n\tposition: relative;\n\tpadding: 8px;\n\n\t&:hover,\n\t&:focus {\n\t\tbackground-color: var(--color-background-hover);\n\t\tborder-radius: var(--border-radius-large);\n\t}\n\t.item-avatar {\n\t\tposition: relative;\n\t\tmargin-top: auto;\n\t\tmargin-bottom: auto;\n\t}\n\t.item__details {\n\t\tpadding-left: 8px;\n\t\tmax-height: 44px;\n\t\tflex-grow: 1;\n\t\toverflow: hidden;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\n\t\th3,\n\t\t.message {\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\t\t.message span {\n\t\t\twidth: 10px;\n\t\t\tdisplay: inline-block;\n\t\t\tmargin-bottom: -3px;\n\t\t}\n\t\th3 {\n\t\t\tfont-size: 100%;\n\t\t\tmargin: 0;\n\t\t}\n\t\t.message {\n\t\t\twidth: 100%;\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n\n\t.item-icon {\n\t\tposition: relative;\n\t\twidth: 14px;\n\t\theight: 14px;\n\t\tmargin: 27px -3px 0px -7px;\n\t}\n\n\tbutton.primary {\n\t\tpadding: 21px;\n\t\tmargin: 0;\n\t}\n}\n/*\n.content-popover {\n\theight: 0px;\n\twidth: 0px;\n\tmargin-left: auto;\n\tmargin-right: auto;\n}\n.popover-container {\n\twidth: 100%;\n\theight: 0px;\n}\n*/\n</style>\n"],"names":["_sfc_main","NcAvatar","NcActions","Components_NcActionButton","event"],"mappings":";+LA+EAA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA;AAAA,IACA,UAAAC,EAAA;AAAA,IACA,WAAAC,EAAA;AAAA,IACA,gBAAAC;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,IAAA;AAAA,MACA,MAAA,CAAA,QAAA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,gBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,gBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,gBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,SAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA,OAAA,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,OAAA;AACA,aAAA;AAAA,QACA,IAAA,KAAA;AAAA,QACA,WAAA,KAAA;AAAA,QACA,WAAA,KAAA;AAAA,QACA,gBAAA,KAAA;AAAA,QACA,gBAAA,KAAA;AAAA,QACA,UAAA,KAAA;AAAA,QACA,SAAA,KAAA;AAAA,MACA;AAAA,IACA;AAAA,IACA,UAAA;AACA,aAAA,OAAA,KAAA,KAAA,QAAA,EAAA,WAAA,KAAA,CAAA,CAAA,KAAA,OAAA;AAAA,IACA;AAAA,IACA,iBAAA;AACA,aAAA,KAAA,kBAAA,KAAA,mBAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA,IACA,YAAAC,GAAA;AACA,MAAAA,EAAA,OAAA,QAAA,cAAA,KACAA,EAAA,eAAA;AAAA,IAEA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,146 @@
1
+ import { ref as T, unref as f, computed as i, watch as g, onMounted as y, onUnmounted as D } from "vue";
2
+ import { getCanonicalLocale as _ } from "@nextcloud/l10n";
3
+ import { r as S, j as b, a as c } from "./_l10n-tZEKUJRj.mjs";
4
+ import { n as F } from "./_plugin-vue2_normalizer-u6G_3nkj.mjs";
5
+ S(b);
6
+ /**
7
+ * @copyright Copyright (c) 2024 Ferdinand Thiessen <opensource@fthiessen.de>
8
+ *
9
+ * @author Ferdinand Thiessen <opensource@fthiessen.de>
10
+ *
11
+ * @license AGPL-3.0-or-later
12
+ *
13
+ * This program is free software: you can redistribute it and/or modify
14
+ * it under the terms of the GNU Affero General Public License as
15
+ * published by the Free Software Foundation, either version 3 of the
16
+ * License, or (at your option) any later version.
17
+ *
18
+ * This program is distributed in the hope that it will be useful,
19
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
20
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21
+ * GNU Affero General Public License for more details.
22
+ *
23
+ * You should have received a copy of the GNU Affero General Public License
24
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
25
+ *
26
+ */
27
+ const I = {
28
+ long: c("a few seconds ago"),
29
+ short: c("seconds ago"),
30
+ // FOR TRANSLATORS: Shorter version of 'a few seconds ago'
31
+ narrow: c("sec. ago")
32
+ // FOR TRANSLATORS: If possible in your language an even shorter version of 'a few seconds ago'
33
+ };
34
+ function N(a = Date.now(), e = {}) {
35
+ const r = T(Date.now());
36
+ let n = null;
37
+ const d = T({
38
+ timeStyle: "medium",
39
+ dateStyle: "short",
40
+ relativeTime: "long",
41
+ ignoreSeconds: !1,
42
+ ...f(e)
43
+ }), o = i(() => ({ ...f(e), ...d.value })), v = i(() => new Date(f(a))), h = i(() => new Intl.DateTimeFormat(_(), o.value.format).format(v.value)), M = i(() => {
44
+ if (o.value.relativeTime !== !1) {
45
+ const t = new Intl.RelativeTimeFormat(_(), { numeric: "auto", style: o.value.relativeTime }), m = (v.value - r.value) / 1e3;
46
+ if (Math.abs(m) <= 90)
47
+ return o.value.ignoreSeconds ? I[o.value.relativeTime] : t.format(Math.round(m), "second");
48
+ const l = m / 60;
49
+ if (Math.abs(l) <= 90)
50
+ return t.format(Math.round(l), "minute");
51
+ const u = l / 60;
52
+ if (Math.abs(u) <= 24)
53
+ return t.format(Math.round(u), "hour");
54
+ const s = u / 24;
55
+ if (Math.abs(s) <= 6)
56
+ return t.format(Math.round(s), "day");
57
+ const p = s / 7;
58
+ if (Math.abs(p) <= 4)
59
+ return t.format(Math.round(p), "week");
60
+ const w = s / 30;
61
+ return Math.abs(w) <= 12 ? t.format(Math.round(w), "month") : t.format(Math.round(s / 365), "year");
62
+ }
63
+ return h;
64
+ });
65
+ return g([o], (t) => {
66
+ window.clearInterval(n), n = void 0, t.relativeTime && (n = window.setInterval(() => {
67
+ r.value = /* @__PURE__ */ new Date();
68
+ }, 1e3));
69
+ }), y(() => {
70
+ o.value.relativeTime !== !1 && (n = window.setInterval(() => {
71
+ r.value = /* @__PURE__ */ new Date();
72
+ }, 1e3));
73
+ }), D(() => {
74
+ window.clearInterval(n);
75
+ }), {
76
+ formattedTime: M,
77
+ formattedFullTime: h,
78
+ options: d
79
+ };
80
+ }
81
+ const C = {
82
+ name: "NcDateTime",
83
+ props: {
84
+ /**
85
+ * The timestamp to display, either an unix timestamp (in milliseconds) or a Date object
86
+ */
87
+ timestamp: {
88
+ type: [Date, Number],
89
+ required: !0
90
+ },
91
+ /**
92
+ * The format used for displaying, or if relative time is used the format used for the title (optional)
93
+ *
94
+ * @type {Intl.DateTimeFormatOptions}
95
+ */
96
+ format: {
97
+ type: Object,
98
+ default: () => ({ timeStyle: "medium", dateStyle: "short" })
99
+ },
100
+ /**
101
+ * Wether to display the timestamp as time from now (optional)
102
+ *
103
+ * - `false`: Disable relative time
104
+ * - `'long'`: Long text, like *2 seconds ago* (default)
105
+ * - `'short'`: Short text, like *2 sec. ago*
106
+ * - `'narrow'`: Even shorter text (same as `'short'` on some languages)
107
+ */
108
+ relativeTime: {
109
+ type: [Boolean, String],
110
+ default: "long",
111
+ validator: (a) => a === !1 || ["long", "short", "narrow"].includes(a)
112
+ },
113
+ /**
114
+ * Ignore seconds when displaying the relative time and just show `a few seconds ago`
115
+ */
116
+ ignoreSeconds: {
117
+ type: Boolean,
118
+ default: !1
119
+ }
120
+ },
121
+ setup(a) {
122
+ const e = i(() => a.timestamp), { formattedTime: r, formattedFullTime: n } = N(e, a);
123
+ return {
124
+ formattedTime: r,
125
+ formattedFullTime: n
126
+ };
127
+ }
128
+ };
129
+ var O = function() {
130
+ var e = this, r = e._self._c;
131
+ return r("span", { staticClass: "nc-datetime", attrs: { "data-timestamp": e.timestamp, title: e.formattedFullTime } }, [e._v(e._s(e.formattedTime))]);
132
+ }, j = [], k = /* @__PURE__ */ F(
133
+ C,
134
+ O,
135
+ j,
136
+ !1,
137
+ null,
138
+ null,
139
+ null,
140
+ null
141
+ );
142
+ const z = k.exports;
143
+ export {
144
+ z as N,
145
+ N as u
146
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcDateTime-22ULCxg8.mjs","sources":["../../src/composables/useFormatDateTime.js","../../src/components/NcDateTime/NcDateTime.vue"],"sourcesContent":["/**\n * @copyright Copyright (c) 2024 Ferdinand Thiessen <opensource@fthiessen.de>\n *\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getCanonicalLocale } from '@nextcloud/l10n'\nimport { computed, onUnmounted, ref, onMounted, watch, unref } from 'vue'\nimport { t } from '../l10n.js'\n\nconst FEW_SECONDS_AGO = {\n\tlong: t('a few seconds ago'),\n\tshort: t('seconds ago'), // FOR TRANSLATORS: Shorter version of 'a few seconds ago'\n\tnarrow: t('sec. ago'), // FOR TRANSLATORS: If possible in your language an even shorter version of 'a few seconds ago'\n}\n\n/**\n * Composable for formatting time stamps using current users locale\n *\n * @param {Date | number | import('vue').Ref<Date> | import('vue').Ref<number>} timestamp Current timestamp\n * @param {object} opts Optional options\n * @param {Intl.DateTimeFormatOptions} opts.format The format used for displaying, or if relative time is used the format used for the title (optional)\n * @param {boolean} opts.ignoreSeconds Ignore seconds when displaying the relative time and just show `a few seconds ago`\n * @param {false | 'long' | 'short' | 'narrow'} opts.relativeTime Wether to display the timestamp as time from now (optional)\n */\nexport function useFormatDateTime(timestamp = Date.now(), opts = {}) {\n\t// Current time as Date.now is not reactive\n\tconst currentTime = ref(Date.now())\n\t// The interval ID for the window\n\tlet intervalId = null\n\n\tconst options = ref({\n\t\ttimeStyle: 'medium',\n\t\tdateStyle: 'short',\n\t\trelativeTime: 'long',\n\t\tignoreSeconds: false,\n\t\t...unref(opts),\n\t})\n\tconst wrappedOptions = computed(() => ({ ...unref(opts), ...options.value }))\n\n\t/** ECMA Date object of the timestamp */\n\tconst date = computed(() => new Date(unref(timestamp)))\n\n\tconst formattedFullTime = computed(() => {\n\t\tconst formatter = new Intl.DateTimeFormat(getCanonicalLocale(), wrappedOptions.value.format)\n\t\treturn formatter.format(date.value)\n\t})\n\n\t/** Time string formatted for main text */\n\tconst formattedTime = computed(() => {\n\t\tif (wrappedOptions.value.relativeTime !== false) {\n\t\t\tconst formatter = new Intl.RelativeTimeFormat(getCanonicalLocale(), { numeric: 'auto', style: wrappedOptions.value.relativeTime })\n\n\t\t\tconst diff = date.value - currentTime.value\n\t\t\tconst seconds = diff / 1000\n\t\t\tif (Math.abs(seconds) <= 90) {\n\t\t\t\tif (wrappedOptions.value.ignoreSeconds) {\n\t\t\t\t\treturn FEW_SECONDS_AGO[wrappedOptions.value.relativeTime]\n\t\t\t\t} else {\n\t\t\t\t\treturn formatter.format(Math.round(seconds), 'second')\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst minutes = seconds / 60\n\t\t\tif (Math.abs(minutes) <= 90) {\n\t\t\t\treturn formatter.format(Math.round(minutes), 'minute')\n\t\t\t}\n\t\t\tconst hours = minutes / 60\n\t\t\tif (Math.abs(hours) <= 24) {\n\t\t\t\treturn formatter.format(Math.round(hours), 'hour')\n\t\t\t}\n\t\t\tconst days = hours / 24\n\t\t\tif (Math.abs(days) <= 6) {\n\t\t\t\treturn formatter.format(Math.round(days), 'day')\n\t\t\t}\n\t\t\tconst weeks = days / 7\n\t\t\tif (Math.abs(weeks) <= 4) {\n\t\t\t\treturn formatter.format(Math.round(weeks), 'week')\n\t\t\t}\n\t\t\tconst months = days / 30\n\t\t\tif (Math.abs(months) <= 12) {\n\t\t\t\treturn formatter.format(Math.round(months), 'month')\n\t\t\t}\n\t\t\treturn formatter.format(Math.round(days / 365), 'year')\n\t\t}\n\t\treturn formattedFullTime\n\t})\n\n\t// Set or clear interval if relative time is dis/enabled\n\twatch([wrappedOptions], (opts) => {\n\t\twindow.clearInterval(intervalId)\n\t\tintervalId = undefined\n\t\tif (opts.relativeTime) {\n\t\t\tintervalId = window.setInterval(() => { currentTime.value = new Date() }, 1000)\n\t\t}\n\t})\n\n\t// Start the interval for setting the current time if relative time is enabled\n\tonMounted(() => {\n\t\tif (wrappedOptions.value.relativeTime !== false) {\n\t\t\tintervalId = window.setInterval(() => { currentTime.value = new Date() }, 1000)\n\t\t}\n\t})\n\n\t// ensure interval is cleared\n\tonUnmounted(() => {\n\t\twindow.clearInterval(intervalId)\n\t})\n\n\treturn {\n\t\tformattedTime,\n\t\tformattedFullTime,\n\t\toptions,\n\t}\n}\n","<!--\n - @copyright Copyright (c) 2023 Ferdinand Thiessen <opensource@fthiessen.de>\n -\n - @author Ferdinand Thiessen <opensource@fthiessen.de>\n -\n - @license AGPL-3.0-or-later\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<docs>\n\n### General description\n\nThis components purpose is to display a timestamp in the users local time format.\nIt also supports relative time, for examples *6 seconds ago*.\n\n#### Standard usage\n\nWithout any optional parameters the timestamp is displayed as a relative datetime and a title with the full date is added.\n\n```vue\n<template>\n\t<NcDateTime :timestamp=\"timestamp\" />\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t}\n\t\t},\n\t}\n</script>\n```\n\n#### Ignore seconds\n\nIf you do not want the seconds to be counted up until minutes are reached you can simply use the `ignore-seconds` property.\n\n```vue\n<template>\n\t<NcDateTime :timestamp=\"timestamp\" :ignore-seconds=\"true\" />\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t}\n\t\t},\n\t}\n</script>\n```\n\n#### Custom date or time format\n\nThe component allows to format the full date for the title by settings the `format` property.\nIt is also possible to disable relative time by setting the `relativeTime` property to `false`.\n\n```vue\n<template>\n\t<div>\n\t\t<h4>Short relative time</h4>\n\t\t<NcDateTime :timestamp=\"timestamp\" relative-time=\"short\" />\n\n\t\t<h4>Custom title format</h4>\n\t\t<NcDateTime :timestamp=\"timestamp\" :format=\"timeFormat\" />\n\n\t\t<h4>Without relative time</h4>\n\t\t<NcDateTime :timestamp=\"timestamp\" :format=\"timeFormat\" :relative-time=\"false\" />\n\t</div>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t/** For allowed formats see the Intl.DateTimeFormat options */\n\t\t\t\ttimeFormat: {\n\t\t\t\t\tdateStyle: 'short',\n\t\t\t\t\ttimeStyle: 'full'\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\t}\n</script>\n<style>\nh4 {\n\tfont-weight: bold;\n\tmargin-top: 12px;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<span class=\"nc-datetime\"\n\t\t:data-timestamp=\"timestamp\"\n\t\t:title=\"formattedFullTime\">{{ formattedTime }}</span>\n</template>\n\n<script>\nimport { computed } from 'vue'\nimport { useFormatDateTime } from '../../composables/useFormatDateTime.js'\n\nexport default {\n\tname: 'NcDateTime',\n\n\tprops: {\n\t\t/**\n\t\t * The timestamp to display, either an unix timestamp (in milliseconds) or a Date object\n\t\t */\n\t\ttimestamp: {\n\t\t\ttype: [Date, Number],\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * The format used for displaying, or if relative time is used the format used for the title (optional)\n\t\t *\n\t\t * @type {Intl.DateTimeFormatOptions}\n\t\t */\n\t\tformat: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({ timeStyle: 'medium', dateStyle: 'short' }),\n\t\t},\n\t\t/**\n\t\t * Wether to display the timestamp as time from now (optional)\n\t\t *\n\t\t * - `false`: Disable relative time\n\t\t * - `'long'`: Long text, like *2 seconds ago* (default)\n\t\t * - `'short'`: Short text, like *2 sec. ago*\n\t\t * - `'narrow'`: Even shorter text (same as `'short'` on some languages)\n\t\t */\n\t\trelativeTime: {\n\t\t\ttype: [Boolean, String],\n\t\t\tdefault: 'long',\n\t\t\tvalidator: (v) => v === false || ['long', 'short', 'narrow'].includes(v),\n\t\t},\n\t\t/**\n\t\t * Ignore seconds when displaying the relative time and just show `a few seconds ago`\n\t\t */\n\t\tignoreSeconds: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\tsetup(props) {\n\t\tconst timestamp = computed(() => props.timestamp)\n\t\tconst { formattedTime, formattedFullTime } = useFormatDateTime(timestamp, props)\n\t\treturn {\n\t\t\tformattedTime,\n\t\t\tformattedFullTime,\n\t\t}\n\t},\n}\n</script>\n"],"names":["FEW_SECONDS_AGO","t","useFormatDateTime","timestamp","opts","currentTime","ref","intervalId","options","unref","wrappedOptions","computed","date","formattedFullTime","getCanonicalLocale","formattedTime","formatter","seconds","minutes","hours","days","weeks","months","watch","onMounted","onUnmounted","_sfc_main","v","props"],"mappings":";;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0BA,MAAMA,IAAkB;AAAA,EACvB,MAAMC,EAAE,mBAAmB;AAAA,EAC3B,OAAOA,EAAE,aAAa;AAAA;AAAA,EACtB,QAAQA,EAAE,UAAU;AAAA;AACrB;AAWO,SAASC,EAAkBC,IAAY,KAAK,IAAG,GAAIC,IAAO,CAAA,GAAI;AAEpE,QAAMC,IAAcC,EAAI,KAAK,IAAG,CAAE;AAElC,MAAIC,IAAa;AAEjB,QAAMC,IAAUF,EAAI;AAAA,IACnB,WAAW;AAAA,IACX,WAAW;AAAA,IACX,cAAc;AAAA,IACd,eAAe;AAAA,IACf,GAAGG,EAAML,CAAI;AAAA,EACf,CAAE,GACKM,IAAiBC,EAAS,OAAO,EAAE,GAAGF,EAAML,CAAI,GAAG,GAAGI,EAAQ,MAAK,EAAG,GAGtEI,IAAOD,EAAS,MAAM,IAAI,KAAKF,EAAMN,CAAS,CAAC,CAAC,GAEhDU,IAAoBF,EAAS,MAChB,IAAI,KAAK,eAAeG,EAAkB,GAAIJ,EAAe,MAAM,MAAM,EAC1E,OAAOE,EAAK,KAAK,CAClC,GAGKG,IAAgBJ,EAAS,MAAM;AACpC,QAAID,EAAe,MAAM,iBAAiB,IAAO;AAChD,YAAMM,IAAY,IAAI,KAAK,mBAAmBF,EAAkB,GAAI,EAAE,SAAS,QAAQ,OAAOJ,EAAe,MAAM,aAAY,CAAE,GAG3HO,KADOL,EAAK,QAAQP,EAAY,SACf;AACvB,UAAI,KAAK,IAAIY,CAAO,KAAK;AACxB,eAAIP,EAAe,MAAM,gBACjBV,EAAgBU,EAAe,MAAM,YAAY,IAEjDM,EAAU,OAAO,KAAK,MAAMC,CAAO,GAAG,QAAQ;AAGvD,YAAMC,IAAUD,IAAU;AAC1B,UAAI,KAAK,IAAIC,CAAO,KAAK;AACxB,eAAOF,EAAU,OAAO,KAAK,MAAME,CAAO,GAAG,QAAQ;AAEtD,YAAMC,IAAQD,IAAU;AACxB,UAAI,KAAK,IAAIC,CAAK,KAAK;AACtB,eAAOH,EAAU,OAAO,KAAK,MAAMG,CAAK,GAAG,MAAM;AAElD,YAAMC,IAAOD,IAAQ;AACrB,UAAI,KAAK,IAAIC,CAAI,KAAK;AACrB,eAAOJ,EAAU,OAAO,KAAK,MAAMI,CAAI,GAAG,KAAK;AAEhD,YAAMC,IAAQD,IAAO;AACrB,UAAI,KAAK,IAAIC,CAAK,KAAK;AACtB,eAAOL,EAAU,OAAO,KAAK,MAAMK,CAAK,GAAG,MAAM;AAElD,YAAMC,IAASF,IAAO;AACtB,aAAI,KAAK,IAAIE,CAAM,KAAK,KAChBN,EAAU,OAAO,KAAK,MAAMM,CAAM,GAAG,OAAO,IAE7CN,EAAU,OAAO,KAAK,MAAMI,IAAO,GAAG,GAAG,MAAM;AAAA,IACtD;AACD,WAAOP;AAAA,EACT,CAAE;AAGD,SAAAU,EAAM,CAACb,CAAc,GAAG,CAACN,MAAS;AACjC,WAAO,cAAcG,CAAU,GAC/BA,IAAa,QACTH,EAAK,iBACRG,IAAa,OAAO,YAAY,MAAM;AAAE,MAAAF,EAAY,QAAQ,oBAAI;IAAQ,GAAE,GAAI;AAAA,EAEjF,CAAE,GAGDmB,EAAU,MAAM;AACf,IAAId,EAAe,MAAM,iBAAiB,OACzCH,IAAa,OAAO,YAAY,MAAM;AAAE,MAAAF,EAAY,QAAQ,oBAAI;IAAQ,GAAE,GAAI;AAAA,EAEjF,CAAE,GAGDoB,EAAY,MAAM;AACjB,WAAO,cAAclB,CAAU;AAAA,EACjC,CAAE,GAEM;AAAA,IACN,eAAAQ;AAAA,IACA,mBAAAF;AAAA,IACA,SAAAL;AAAA,EACA;AACF;ACXA,MAAAkB,IAAA;AAAA,EACA,MAAA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,WAAA;AAAA,MACA,MAAA,CAAA,MAAA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA,OAAA,EAAA,WAAA,UAAA,WAAA,QAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,cAAA;AAAA,MACA,MAAA,CAAA,SAAA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAAC,MAAAA,MAAA,MAAA,CAAA,QAAA,SAAA,QAAA,EAAA,SAAAA,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,eAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,MAAAC,GAAA;AACA,UAAAzB,IAAAQ,EAAA,MAAAiB,EAAA,SAAA,GACA,EAAA,eAAAb,GAAA,mBAAAF,EAAA,IAAAX,EAAAC,GAAAyB,CAAA;AACA,WAAA;AAAA,MACA,eAAAb;AAAA,MACA,mBAAAF;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;"}