@nextcloud/vue 9.0.0-alpha.3 → 9.0.0-alpha.5

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 (586) hide show
  1. package/CHANGELOG.md +68 -2
  2. package/README.md +5 -0
  3. package/dist/Components/NcActionButton.mjs +1 -1
  4. package/dist/Components/NcActionButtonGroup.mjs +1 -1
  5. package/dist/Components/NcActionCaption.mjs +1 -1
  6. package/dist/Components/NcActionCheckbox.mjs +1 -1
  7. package/dist/Components/NcActionInput.mjs +1 -1
  8. package/dist/Components/NcActionLink.mjs +1 -1
  9. package/dist/Components/NcActionRadio.mjs +1 -1
  10. package/dist/Components/NcActionRouter.mjs +1 -1
  11. package/dist/Components/NcActionSeparator.mjs +1 -1
  12. package/dist/Components/NcActionText.mjs +1 -1
  13. package/dist/Components/NcActionTextEditable.mjs +1 -1
  14. package/dist/Components/NcActions.mjs +1 -1
  15. package/dist/Components/NcAppContent.mjs +1 -1
  16. package/dist/Components/NcAppNavigation.mjs +1 -1
  17. package/dist/Components/NcAppNavigationCaption.mjs +1 -1
  18. package/dist/Components/NcAppNavigationIconBullet.mjs +1 -1
  19. package/dist/Components/NcAppNavigationItem.mjs +1 -1
  20. package/dist/Components/NcAppNavigationList.mjs +1 -1
  21. package/dist/Components/NcAppNavigationNew.mjs +1 -1
  22. package/dist/Components/NcAppNavigationNewItem.mjs +1 -1
  23. package/dist/Components/NcAppNavigationSettings.mjs +1 -1
  24. package/dist/Components/NcAppNavigationSpacer.mjs +1 -1
  25. package/dist/Components/NcAppNavigationToggle.mjs +1 -21
  26. package/dist/Components/NcAppNavigationToggle.mjs.map +1 -1
  27. package/dist/Components/NcAppSettingsDialog.mjs +1 -1
  28. package/dist/Components/NcAppSettingsSection.mjs +1 -1
  29. package/dist/Components/NcAppSidebar.mjs +1 -1
  30. package/dist/Components/NcAppSidebarTab.mjs +1 -1
  31. package/dist/Components/NcAvatar.mjs +1 -1
  32. package/dist/Components/NcBreadcrumb.mjs +1 -1
  33. package/dist/Components/NcBreadcrumbs.mjs +1 -1
  34. package/dist/Components/NcButton.mjs +4 -1
  35. package/dist/Components/NcCheckboxRadioSwitch.mjs +1 -1
  36. package/dist/Components/NcChip.mjs +4 -0
  37. package/dist/Components/NcChip.mjs.map +1 -0
  38. package/dist/Components/NcCollectionList.mjs +4 -0
  39. package/dist/Components/NcCollectionList.mjs.map +1 -0
  40. package/dist/Components/NcColorPicker.mjs +1 -1
  41. package/dist/Components/NcContent.mjs +1 -1
  42. package/dist/Components/NcCounterBubble.mjs +1 -1
  43. package/dist/Components/NcDashboardWidget.mjs +1 -1
  44. package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
  45. package/dist/Components/NcDateTime.mjs +1 -1
  46. package/dist/Components/NcDateTimePicker.mjs +1 -1
  47. package/dist/Components/NcDateTimePickerNative.mjs +1 -1
  48. package/dist/Components/NcDialog.mjs +1 -1
  49. package/dist/Components/NcDialogButton.mjs +1 -1
  50. package/dist/Components/NcEllipsisedOption.mjs +1 -1
  51. package/dist/Components/NcEmojiPicker.mjs +1 -1
  52. package/dist/Components/NcEmptyContent.mjs +1 -1
  53. package/dist/Components/NcGuestContent.mjs +1 -1
  54. package/dist/Components/NcHeaderMenu.mjs +1 -1
  55. package/dist/Components/NcHighlight.mjs +1 -1
  56. package/dist/Components/NcIconSvgWrapper.mjs +1 -1
  57. package/dist/Components/NcInputField.mjs +1 -1
  58. package/dist/Components/NcListItem.mjs +1 -1
  59. package/dist/Components/NcListItemIcon.mjs +1 -1
  60. package/dist/Components/NcLoadingIcon.mjs +1 -1
  61. package/dist/Components/NcModal.mjs +36 -58
  62. package/dist/Components/NcModal.mjs.map +1 -1
  63. package/dist/Components/NcNoteCard.mjs +1 -1
  64. package/dist/Components/NcPasswordField.mjs +1 -1
  65. package/dist/Components/NcPopover.mjs +1 -1
  66. package/dist/Components/NcProgressBar.mjs +1 -1
  67. package/dist/Components/NcRelatedResourcesPanel.mjs +1 -1
  68. package/dist/Components/NcRichContenteditable.mjs +2 -2
  69. package/dist/Components/NcRichText.mjs +3 -24
  70. package/dist/Components/NcRichText.mjs.map +1 -1
  71. package/dist/Components/NcSelect.mjs +1 -1
  72. package/dist/Components/NcSelectTags.mjs +1 -1
  73. package/dist/Components/NcSettingsInputText.mjs +1 -1
  74. package/dist/Components/NcSettingsSection.mjs +1 -1
  75. package/dist/Components/NcSettingsSelectGroup.mjs +1 -22
  76. package/dist/Components/NcSettingsSelectGroup.mjs.map +1 -1
  77. package/dist/Components/NcTextArea.mjs +1 -1
  78. package/dist/Components/NcTextField.mjs +1 -1
  79. package/dist/Components/NcTimezonePicker.mjs +1 -1
  80. package/dist/Components/NcUserBubble.mjs +1 -1
  81. package/dist/Components/NcUserStatusIcon.mjs +1 -1
  82. package/dist/Components/NcVNodes.mjs.map +1 -1
  83. package/dist/Composables/useIsFullscreen.mjs +0 -21
  84. package/dist/Composables/useIsFullscreen.mjs.map +1 -1
  85. package/dist/Composables/useIsMobile.mjs +0 -21
  86. package/dist/Composables/useIsMobile.mjs.map +1 -1
  87. package/dist/Directives/Focus.mjs +0 -21
  88. package/dist/Directives/Focus.mjs.map +1 -1
  89. package/dist/Directives/Linkify.mjs +1 -1
  90. package/dist/Directives/Linkify.mjs.map +1 -1
  91. package/dist/Directives/Tooltip.mjs +1 -23
  92. package/dist/Directives/Tooltip.mjs.map +1 -1
  93. package/dist/Functions/a11y.mjs +0 -21
  94. package/dist/Functions/a11y.mjs.map +1 -1
  95. package/dist/Functions/emoji.mjs +1 -1
  96. package/dist/Functions/reference.mjs +1 -1
  97. package/dist/Functions/usernameToColor.mjs +1 -1
  98. package/dist/Mixins/clickOutsideOptions.mjs +0 -21
  99. package/dist/Mixins/clickOutsideOptions.mjs.map +1 -1
  100. package/dist/Mixins/richEditor.mjs +2 -2
  101. package/dist/assets/NcActionButton-tvMk0Dz-.css +107 -0
  102. package/dist/assets/{NcActionButtonGroup-CvloX35s.css → NcActionButtonGroup-CQxLn2fv.css} +6 -20
  103. package/dist/assets/NcActionCaption-D-VXTPLI.css +32 -0
  104. package/dist/assets/NcActionCheckbox-DzmNTqwC.css +78 -0
  105. package/dist/assets/NcActionInput-4qR5N5lV.css +222 -0
  106. package/dist/assets/NcActionLink-Djp7wPGg.css +92 -0
  107. package/dist/assets/NcActionRadio-ZRQheAZT.css +78 -0
  108. package/dist/assets/NcActionRouter-B0l-dISs.css +103 -0
  109. package/dist/assets/NcActionSeparator-CEbb5P6P.css +24 -0
  110. package/dist/assets/NcActionText-Ip9hRt85.css +107 -0
  111. package/dist/assets/NcActionTextEditable-1JPkW_4o.css +238 -0
  112. package/dist/assets/NcActions-pRTZ3RyK.css +83 -0
  113. package/dist/assets/NcAppContent-CK9aL637.css +125 -0
  114. package/dist/assets/NcAppNavigation-BjnW8PQn.css +103 -0
  115. package/dist/assets/NcAppNavigationCaption-CWeMjjhD.css +48 -0
  116. package/dist/assets/NcAppNavigationIconBullet-EfIZU7x-.css +30 -0
  117. package/dist/assets/{NcAppNavigationItem-DBjQubbD.css → NcAppNavigationItem-wQ3n8jc-.css} +50 -74
  118. package/dist/assets/NcAppNavigationList-BIbyyT7b.css +29 -0
  119. package/dist/assets/NcAppNavigationNew-R0QcGqvG.css +27 -0
  120. package/dist/assets/{NcAppNavigationNewItem-wTDYmQmA.css → NcAppNavigationNewItem-CO3GnR26.css} +42 -52
  121. package/dist/assets/NcAppNavigationSettings-TYqL_3Eu.css +79 -0
  122. package/dist/assets/NcAppNavigationSpacer-DiE3sVy0.css +6 -0
  123. package/dist/assets/NcAppNavigationToggle-CNPQvWtG.css +27 -0
  124. package/dist/assets/NcAppSettingsDialog-ksK-DMgk.css +74 -0
  125. package/dist/assets/NcAppSettingsSection-C_QldGnW.css +30 -0
  126. package/dist/assets/{NcAppSidebar-v-H-37nV.css → NcAppSidebar-B7CgUHLX.css} +98 -149
  127. package/dist/assets/NcAppSidebarTab-Cp0hG2NU.css +34 -0
  128. package/dist/assets/NcAvatar-BnHiRwVr.css +129 -0
  129. package/dist/assets/NcBreadcrumb-CJ7KeSKQ.css +68 -0
  130. package/dist/assets/NcBreadcrumbs-C05lySw_.css +37 -0
  131. package/dist/assets/NcButton-B62D9Gft.css +210 -0
  132. package/dist/assets/{NcCheckboxRadioSwitch-BrP8x4oD.css → NcCheckboxRadioSwitch-ChIIElUW.css} +53 -81
  133. package/dist/assets/NcChip-Cho4h_Kr.css +61 -0
  134. package/dist/assets/NcCollectionList-BT2L4guq.css +221 -0
  135. package/dist/assets/NcColorPicker-vEZb9dRS.css +122 -0
  136. package/dist/assets/NcContent-DljiVMLl.css +80 -0
  137. package/dist/assets/NcCounterBubble-DT16e2bg.css +53 -0
  138. package/dist/assets/NcDashboardWidget-CvGZT_xf.css +73 -0
  139. package/dist/assets/NcDashboardWidgetItem-JCtQhwhS.css +85 -0
  140. package/dist/assets/{NcDateTimePicker-DBxgtJoU.css → NcDateTimePicker-DHWLpzCH.css} +38 -76
  141. package/dist/assets/NcDateTimePickerNative-DLch-JRA.css +47 -0
  142. package/dist/assets/NcDialog-DXX2MKxJ.css +132 -0
  143. package/dist/assets/NcEllipsisedOption-DZK2vWD1.css +34 -0
  144. package/dist/assets/{NcEmojiPicker-DPDnLnba.css → NcEmojiPicker-C18M6LHu.css} +16 -44
  145. package/dist/assets/NcEmptyContent-C-nruaFh.css +65 -0
  146. package/dist/assets/NcGuestContent-Dh5z5Dgm.css +50 -0
  147. package/dist/assets/NcHeaderMenu-Cb5YSERm.css +77 -0
  148. package/dist/assets/NcIconSvgWrapper-CtTf2c7f.css +39 -0
  149. package/dist/assets/NcInputConfirmCancel-DBjIHKvN.css +39 -0
  150. package/dist/assets/{NcInputField-CSuJUlgW.css → NcInputField-CZnSCalG.css} +43 -56
  151. package/dist/assets/NcListItem-Cs-R5Xpu.css +156 -0
  152. package/dist/assets/NcListItemIcon-C2zhDUEr.css +64 -0
  153. package/dist/assets/NcLoadingIcon-BSONDy7x.css +21 -0
  154. package/dist/assets/NcMentionBubble-C6t8od-_.css +73 -0
  155. package/dist/assets/{NcModal-JZMyM8zO.css → NcModal-Cr_CG7O3.css} +70 -87
  156. package/dist/assets/NcNoteCard-BLPU1den.css +50 -0
  157. package/dist/assets/{NcPopover-BwI1hPzy.css → NcPopover-BDlL00qZ.css} +6 -20
  158. package/dist/assets/NcProgressBar-BsqdCn-x.css +56 -0
  159. package/dist/assets/NcRelatedResourcesPanel-C56aj2M3.css +158 -0
  160. package/dist/assets/{NcRichContenteditable-C9Sikuur.css → NcRichContenteditable-Cf8PvtvB.css} +55 -97
  161. package/dist/assets/NcRichText-yXgN8zvG.css +217 -0
  162. package/dist/assets/{NcSelect-Fmyu7qyl.css → NcSelect-9AZOhTlS.css} +9 -21
  163. package/dist/assets/NcSettingsInputText-C3j73xA0.css +35 -0
  164. package/dist/assets/NcSettingsSection-CFKAEs4p.css +52 -0
  165. package/dist/assets/NcSettingsSelectGroup-CGfaysRv.css +23 -0
  166. package/dist/assets/{NcTextArea-n0qdPImB.css → NcTextArea-BjB_qSH0.css} +30 -42
  167. package/dist/assets/NcUserBubble-CIfQjmmP.css +48 -0
  168. package/dist/assets/NcUserStatusIcon-FLA1tQpD.css +30 -0
  169. package/dist/assets/{Tooltip-jHgt4m-W.css → Tooltip-4CSl8xev.css} +10 -30
  170. package/dist/assets/referencePickerModal-G4uFPuyg.css +413 -0
  171. package/dist/chunks/{GenColors-BjorWIgA.mjs → GenColors-AKX06ocD.mjs} +1 -23
  172. package/dist/chunks/GenColors-AKX06ocD.mjs.map +1 -0
  173. package/dist/chunks/GenRandomId-CMooMQt0.mjs +6 -0
  174. package/dist/chunks/GenRandomId-CMooMQt0.mjs.map +1 -0
  175. package/dist/chunks/Linkify-BtgR-dXX.mjs +14 -0
  176. package/dist/chunks/Linkify-BtgR-dXX.mjs.map +1 -0
  177. package/dist/chunks/{NcActionButton-BFQnlisT.mjs → NcActionButton-Bqkgltcz.mjs} +4 -4
  178. package/dist/chunks/NcActionButton-Bqkgltcz.mjs.map +1 -0
  179. package/dist/chunks/{NcActionButtonGroup-D-8C3HSO.mjs → NcActionButtonGroup-QSxR0BLf.mjs} +3 -3
  180. package/dist/chunks/NcActionButtonGroup-QSxR0BLf.mjs.map +1 -0
  181. package/dist/chunks/{NcActionCaption-CV_zDfFg.mjs → NcActionCaption-Cb_uvgZc.mjs} +2 -2
  182. package/dist/chunks/{NcActionCaption-CV_zDfFg.mjs.map → NcActionCaption-Cb_uvgZc.mjs.map} +1 -1
  183. package/dist/chunks/{NcActionCheckbox-CjZH6kjg.mjs → NcActionCheckbox-A6JNjini.mjs} +4 -4
  184. package/dist/chunks/NcActionCheckbox-A6JNjini.mjs.map +1 -0
  185. package/dist/chunks/{NcActionInput-ClUviDGB.mjs → NcActionInput-DY8dxchc.mjs} +11 -11
  186. package/dist/chunks/NcActionInput-DY8dxchc.mjs.map +1 -0
  187. package/dist/chunks/{NcActionLink-CQEzoS_a.mjs → NcActionLink-C0mINC5i.mjs} +4 -4
  188. package/dist/chunks/NcActionLink-C0mINC5i.mjs.map +1 -0
  189. package/dist/chunks/{NcActionRadio-D6VrxjcX.mjs → NcActionRadio-BqAyH2zq.mjs} +4 -4
  190. package/dist/chunks/NcActionRadio-BqAyH2zq.mjs.map +1 -0
  191. package/dist/chunks/{NcActionRouter-DmrWV-q1.mjs → NcActionRouter-Dr-j-IUI.mjs} +4 -4
  192. package/dist/chunks/NcActionRouter-Dr-j-IUI.mjs.map +1 -0
  193. package/dist/chunks/{NcActionSeparator-ib21YUAE.mjs → NcActionSeparator-DKFXmIJ5.mjs} +2 -2
  194. package/dist/chunks/NcActionSeparator-DKFXmIJ5.mjs.map +1 -0
  195. package/dist/chunks/{NcActionText-dj38IHk6.mjs → NcActionText-C5ZPI56c.mjs} +4 -4
  196. package/dist/chunks/NcActionText-C5ZPI56c.mjs.map +1 -0
  197. package/dist/chunks/{NcActionTextEditable-W1wFQ9dc.mjs → NcActionTextEditable-CLXTDGjr.mjs} +4 -4
  198. package/dist/chunks/NcActionTextEditable-CLXTDGjr.mjs.map +1 -0
  199. package/dist/chunks/{NcActions-B6QL_4DD.mjs → NcActions-DqMOvrbN.mjs} +7 -7
  200. package/dist/chunks/NcActions-DqMOvrbN.mjs.map +1 -0
  201. package/dist/chunks/{NcAppContent-jvz75P8O.mjs → NcAppContent-xtfi9kNO.mjs} +6 -6
  202. package/dist/chunks/NcAppContent-xtfi9kNO.mjs.map +1 -0
  203. package/dist/chunks/NcAppContentDetails-Ch6NJvAl.mjs.map +1 -1
  204. package/dist/chunks/NcAppContentList-DGwk3AvB.mjs.map +1 -1
  205. package/dist/chunks/{NcAppNavigation-D0RINQda.mjs → NcAppNavigation-C9Ku9eb2.mjs} +5 -5
  206. package/dist/chunks/NcAppNavigation-C9Ku9eb2.mjs.map +1 -0
  207. package/dist/chunks/{NcAppNavigationCaption-BnhoAPkJ.mjs → NcAppNavigationCaption-BysnsczC.mjs} +10 -6
  208. package/dist/chunks/NcAppNavigationCaption-BysnsczC.mjs.map +1 -0
  209. package/dist/chunks/{NcAppNavigationIconBullet-JoIYov5C.mjs → NcAppNavigationIconBullet-DuqQFciH.mjs} +2 -2
  210. package/dist/chunks/NcAppNavigationIconBullet-DuqQFciH.mjs.map +1 -0
  211. package/dist/chunks/{NcAppNavigationItem-s0czI8KR.mjs → NcAppNavigationItem--znMc-4G.mjs} +12 -12
  212. package/dist/chunks/NcAppNavigationItem--znMc-4G.mjs.map +1 -0
  213. package/dist/chunks/{NcAppNavigationList-DzTic3Q7.mjs → NcAppNavigationList-DCmrqe9N.mjs} +2 -2
  214. package/dist/chunks/NcAppNavigationList-DCmrqe9N.mjs.map +1 -0
  215. package/dist/chunks/{NcAppNavigationNew-RBp5Nk-2.mjs → NcAppNavigationNew-xPVyvfza.mjs} +3 -3
  216. package/dist/chunks/NcAppNavigationNew-xPVyvfza.mjs.map +1 -0
  217. package/dist/chunks/{NcAppNavigationNewItem-u85Ffz-V.mjs → NcAppNavigationNewItem-DS1hIl6W.mjs} +4 -4
  218. package/dist/chunks/NcAppNavigationNewItem-DS1hIl6W.mjs.map +1 -0
  219. package/dist/chunks/{NcAppNavigationSettings-D_4gHC9H.mjs → NcAppNavigationSettings-CekHqqk0.mjs} +5 -5
  220. package/dist/chunks/NcAppNavigationSettings-CekHqqk0.mjs.map +1 -0
  221. package/dist/chunks/{NcAppNavigationSpacer-Ctbl-q5I.mjs → NcAppNavigationSpacer-BQFYpMbq.mjs} +2 -2
  222. package/dist/chunks/NcAppNavigationSpacer-BQFYpMbq.mjs.map +1 -0
  223. package/dist/chunks/{NcAppNavigationToggle-BtC5hBww.mjs → NcAppNavigationToggle-DfX9dazn.mjs} +5 -5
  224. package/dist/chunks/NcAppNavigationToggle-DfX9dazn.mjs.map +1 -0
  225. package/dist/chunks/{NcAppSettingsDialog-DXpamfEo.mjs → NcAppSettingsDialog-ChTLtlsE.mjs} +5 -5
  226. package/dist/chunks/NcAppSettingsDialog-ChTLtlsE.mjs.map +1 -0
  227. package/dist/chunks/{NcAppSettingsSection-PG8OLRbP.mjs → NcAppSettingsSection-CJff2xNR.mjs} +10 -6
  228. package/dist/chunks/NcAppSettingsSection-CJff2xNR.mjs.map +1 -0
  229. package/dist/chunks/{NcAppSidebar-B0pjWsoI.mjs → NcAppSidebar-C9frc6kG.mjs} +252 -202
  230. package/dist/chunks/NcAppSidebar-C9frc6kG.mjs.map +1 -0
  231. package/dist/chunks/{NcAppSidebarTab-BTuuQoW5.mjs → NcAppSidebarTab-zBqyKIgn.mjs} +2 -2
  232. package/dist/chunks/NcAppSidebarTab-zBqyKIgn.mjs.map +1 -0
  233. package/dist/chunks/{NcAvatar-BKmfsBcY.mjs → NcAvatar-BjooMt8H.mjs} +16 -37
  234. package/dist/chunks/NcAvatar-BjooMt8H.mjs.map +1 -0
  235. package/dist/chunks/{NcBreadcrumb-C3k6T3Bj.mjs → NcBreadcrumb-Btbcn1IT.mjs} +5 -5
  236. package/dist/chunks/NcBreadcrumb-Btbcn1IT.mjs.map +1 -0
  237. package/dist/chunks/{NcBreadcrumbs-Crc4BkfA.mjs → NcBreadcrumbs-BFR0zNov.mjs} +12 -16
  238. package/dist/chunks/NcBreadcrumbs-BFR0zNov.mjs.map +1 -0
  239. package/dist/chunks/{NcButton-B27fpd1m.mjs → NcButton-Bhuckhtj.mjs} +57 -43
  240. package/dist/chunks/NcButton-Bhuckhtj.mjs.map +1 -0
  241. package/dist/chunks/{NcCheckboxRadioSwitch-DdG8AL_h.mjs → NcCheckboxRadioSwitch-fsQs5UG3.mjs} +49 -31
  242. package/dist/chunks/NcCheckboxRadioSwitch-fsQs5UG3.mjs.map +1 -0
  243. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_266d05fb_lang-8iSIJ9Oz.mjs +3 -0
  244. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_266d05fb_lang-8iSIJ9Oz.mjs.map +1 -0
  245. package/dist/chunks/NcChip-Z436j_vb.mjs +143 -0
  246. package/dist/chunks/NcChip-Z436j_vb.mjs.map +1 -0
  247. package/dist/chunks/NcCollectionList-B8r2GWp5.mjs +589 -0
  248. package/dist/chunks/NcCollectionList-B8r2GWp5.mjs.map +1 -0
  249. package/dist/chunks/{NcColorPicker-D4IB1shI.mjs → NcColorPicker-ChOP5UKN.mjs} +7 -7
  250. package/dist/chunks/NcColorPicker-ChOP5UKN.mjs.map +1 -0
  251. package/dist/chunks/NcContent-BTRh5byh.mjs +130 -0
  252. package/dist/chunks/NcContent-BTRh5byh.mjs.map +1 -0
  253. package/dist/chunks/{NcCounterBubble-BVDNwJiw.mjs → NcCounterBubble-B0Sk58x_.mjs} +2 -2
  254. package/dist/chunks/NcCounterBubble-B0Sk58x_.mjs.map +1 -0
  255. package/dist/chunks/{NcDashboardWidget-B5H6n5qG.mjs → NcDashboardWidget-CyEJLxAR.mjs} +8 -8
  256. package/dist/chunks/NcDashboardWidget-CyEJLxAR.mjs.map +1 -0
  257. package/dist/chunks/{NcDashboardWidgetItem-BbgZpZ-D.mjs → NcDashboardWidgetItem-DfP6DwdF.mjs} +5 -5
  258. package/dist/chunks/NcDashboardWidgetItem-DfP6DwdF.mjs.map +1 -0
  259. package/dist/chunks/{NcDateTime-p5872lEX.mjs → NcDateTime-DX34z7Lo.mjs} +1 -22
  260. package/dist/chunks/NcDateTime-DX34z7Lo.mjs.map +1 -0
  261. package/dist/chunks/{NcDateTimePicker-C1gBl-W0.mjs → NcDateTimePicker-D9gDwRl4.mjs} +8 -8
  262. package/dist/chunks/NcDateTimePicker-D9gDwRl4.mjs.map +1 -0
  263. package/dist/chunks/{NcDateTimePickerNative-CyCL5Ovh.mjs → NcDateTimePickerNative-d04KsMAl.mjs} +3 -3
  264. package/dist/chunks/NcDateTimePickerNative-d04KsMAl.mjs.map +1 -0
  265. package/dist/chunks/{NcDialog-Dq3Qnbke.mjs → NcDialog-D5IAHMrC.mjs} +13 -9
  266. package/dist/chunks/NcDialog-D5IAHMrC.mjs.map +1 -0
  267. package/dist/chunks/{NcDialogButton-C6SudZTq.mjs → NcDialogButton-BkFODtad.mjs} +15 -5
  268. package/dist/chunks/NcDialogButton-BkFODtad.mjs.map +1 -0
  269. package/dist/chunks/{NcEllipsisedOption-DsCFqgUF.mjs → NcEllipsisedOption-CufdpPBu.mjs} +9 -3
  270. package/dist/chunks/NcEllipsisedOption-CufdpPBu.mjs.map +1 -0
  271. package/dist/chunks/{NcEmojiPicker-BwQ8VxQZ.mjs → NcEmojiPicker-Dtc8dnSp.mjs} +10 -10
  272. package/dist/chunks/NcEmojiPicker-Dtc8dnSp.mjs.map +1 -0
  273. package/dist/chunks/{NcEmptyContent-CdgacgQe.mjs → NcEmptyContent-BoGB3vFC.mjs} +2 -2
  274. package/dist/chunks/NcEmptyContent-BoGB3vFC.mjs.map +1 -0
  275. package/dist/chunks/{NcGuestContent-DfnVEtGM.mjs → NcGuestContent-DVqg5Bq4.mjs} +2 -2
  276. package/dist/chunks/NcGuestContent-DVqg5Bq4.mjs.map +1 -0
  277. package/dist/chunks/{NcHeaderMenu-CJVtnKpb.mjs → NcHeaderMenu-CKynqFZZ.mjs} +7 -6
  278. package/dist/chunks/NcHeaderMenu-CKynqFZZ.mjs.map +1 -0
  279. package/dist/chunks/{NcHighlight-CR5kySMp.mjs → NcHighlight-BHtRIzqk.mjs} +0 -21
  280. package/dist/chunks/NcHighlight-BHtRIzqk.mjs.map +1 -0
  281. package/dist/chunks/{NcIconSvgWrapper-C0csZ9zg.mjs → NcIconSvgWrapper-DbL6OP85.mjs} +3 -3
  282. package/dist/chunks/NcIconSvgWrapper-DbL6OP85.mjs.map +1 -0
  283. package/dist/chunks/{NcInputConfirmCancel-Rk8B1Q0j.mjs → NcInputConfirmCancel-DkOh9UP_.mjs} +5 -5
  284. package/dist/chunks/NcInputConfirmCancel-DkOh9UP_.mjs.map +1 -0
  285. package/dist/chunks/{NcInputField-DX0Brmlk.mjs → NcInputField-hpiI0X9L.mjs} +4 -4
  286. package/dist/chunks/NcInputField-hpiI0X9L.mjs.map +1 -0
  287. package/dist/chunks/{NcListItem-CgZoQEIf.mjs → NcListItem-DX-yKrou.mjs} +5 -5
  288. package/dist/chunks/{NcListItem-CgZoQEIf.mjs.map → NcListItem-DX-yKrou.mjs.map} +1 -1
  289. package/dist/chunks/{NcListItemIcon-A5o8HkQv.mjs → NcListItemIcon-Bgd2w_Ug.mjs} +6 -6
  290. package/dist/chunks/NcListItemIcon-Bgd2w_Ug.mjs.map +1 -0
  291. package/dist/chunks/{NcLoadingIcon-DwbO7gAy.mjs → NcLoadingIcon-DREmHXr2.mjs} +2 -2
  292. package/dist/chunks/NcLoadingIcon-DREmHXr2.mjs.map +1 -0
  293. package/dist/chunks/{NcNoteCard-CdZRsd8-.mjs → NcNoteCard-CQgzjr2r.mjs} +2 -2
  294. package/dist/chunks/NcNoteCard-CQgzjr2r.mjs.map +1 -0
  295. package/dist/chunks/{NcPasswordField-B7CiEElO.mjs → NcPasswordField-Vfr9wcwj.mjs} +5 -4
  296. package/dist/chunks/NcPasswordField-Vfr9wcwj.mjs.map +1 -0
  297. package/dist/chunks/{NcPopover-B9UbiGTv.mjs → NcPopover-BXfbq-Vs.mjs} +2 -2
  298. package/dist/chunks/NcPopover-BXfbq-Vs.mjs.map +1 -0
  299. package/dist/chunks/{NcProgressBar-CAXfza4R.mjs → NcProgressBar-C2r8oqsv.mjs} +3 -3
  300. package/dist/chunks/NcProgressBar-C2r8oqsv.mjs.map +1 -0
  301. package/dist/chunks/{NcRelatedResourcesPanel-Dr4jL2gw.mjs → NcRelatedResourcesPanel-DXQ9WHF5.mjs} +11 -11
  302. package/dist/chunks/NcRelatedResourcesPanel-DXQ9WHF5.mjs.map +1 -0
  303. package/dist/chunks/{NcRichContenteditable-P06ORHyg.mjs → NcRichContenteditable-Bf9Kg4hl.mjs} +53 -30
  304. package/dist/chunks/NcRichContenteditable-Bf9Kg4hl.mjs.map +1 -0
  305. package/dist/chunks/{NcRichText-BfreYq5m.mjs → NcRichText-COi8Ex6O.mjs} +11 -10
  306. package/dist/chunks/NcRichText-COi8Ex6O.mjs.map +1 -0
  307. package/dist/chunks/NcSavingIndicatorIcon-BiGAtlKQ.mjs.map +1 -1
  308. package/dist/chunks/{NcSelect-Dt3JJc9b.mjs → NcSelect-uOkQ9CdB.mjs} +7 -7
  309. package/dist/chunks/NcSelect-uOkQ9CdB.mjs.map +1 -0
  310. package/dist/chunks/{NcSelectTags-F8Z_SdXE.mjs → NcSelectTags-1hIEJsvj.mjs} +3 -24
  311. package/dist/chunks/NcSelectTags-1hIEJsvj.mjs.map +1 -0
  312. package/dist/chunks/{NcSettingsInputText-BtDwhhX0.mjs → NcSettingsInputText-DO40BQ3B.mjs} +5 -5
  313. package/dist/chunks/NcSettingsInputText-DO40BQ3B.mjs.map +1 -0
  314. package/dist/chunks/{NcSettingsSection-BN98AV4b.mjs → NcSettingsSection-BDI1fNYG.mjs} +4 -4
  315. package/dist/chunks/NcSettingsSection-BDI1fNYG.mjs.map +1 -0
  316. package/dist/chunks/{NcSettingsSelectGroup-61ylzaOo.mjs → NcSettingsSelectGroup-OQVMB2G-.mjs} +6 -6
  317. package/dist/chunks/NcSettingsSelectGroup-OQVMB2G-.mjs.map +1 -0
  318. package/dist/chunks/{NcTextArea-DOXp3B2R.mjs → NcTextArea-qvR02aYz.mjs} +3 -3
  319. package/dist/chunks/NcTextArea-qvR02aYz.mjs.map +1 -0
  320. package/dist/chunks/{NcTextField-5CbWAUlw.mjs → NcTextField-DctsarIL.mjs} +3 -3
  321. package/dist/chunks/NcTextField-DctsarIL.mjs.map +1 -0
  322. package/dist/chunks/NcTimezonePicker-CGW5Q2gI.mjs +187 -0
  323. package/dist/chunks/NcTimezonePicker-CGW5Q2gI.mjs.map +1 -0
  324. package/dist/chunks/{NcUserBubble-B1nO-OgL.mjs → NcUserBubble-CsVyJK3C.mjs} +4 -4
  325. package/dist/chunks/NcUserBubble-CsVyJK3C.mjs.map +1 -0
  326. package/dist/chunks/{NcUserStatusIcon-DXxHWiO9.mjs → NcUserStatusIcon-CLYI768S.mjs} +10 -36
  327. package/dist/chunks/NcUserStatusIcon-CLYI768S.mjs.map +1 -0
  328. package/dist/chunks/ScopeComponent-59SnWk9S.mjs +14 -0
  329. package/dist/chunks/ScopeComponent-59SnWk9S.mjs.map +1 -0
  330. package/dist/chunks/_l10n-6dsjYig_.mjs +126 -0
  331. package/dist/chunks/_l10n-6dsjYig_.mjs.map +1 -0
  332. package/dist/chunks/actionGlobal-BZFdtdJL.mjs +25 -0
  333. package/dist/chunks/actionGlobal-BZFdtdJL.mjs.map +1 -0
  334. package/dist/chunks/{actionText-CBxkao_8.mjs → actionText-aI0owku1.mjs} +1 -43
  335. package/dist/chunks/actionText-aI0owku1.mjs.map +1 -0
  336. package/dist/chunks/{autolink-CuPhRJIL.mjs → autolink-CKPk5rzg.mjs} +7 -24
  337. package/dist/chunks/autolink-CKPk5rzg.mjs.map +1 -0
  338. package/dist/chunks/{emoji-BjUFGMrw.mjs → emoji-Ba55f8iV.mjs} +0 -21
  339. package/dist/chunks/emoji-Ba55f8iV.mjs.map +1 -0
  340. package/dist/chunks/focusTrap-Cecv_gjR.mjs +7 -0
  341. package/dist/chunks/focusTrap-Cecv_gjR.mjs.map +1 -0
  342. package/dist/chunks/getAvatarUrl-DxvUjKMi.mjs +11 -0
  343. package/dist/chunks/getAvatarUrl-DxvUjKMi.mjs.map +1 -0
  344. package/dist/chunks/index-CtoB4eIp.mjs.map +1 -1
  345. package/dist/chunks/{index-5AsHlmYO.mjs → index-CyNq54HS.mjs} +4 -25
  346. package/dist/chunks/index-CyNq54HS.mjs.map +1 -0
  347. package/dist/chunks/{referencePickerModal-Tr-vmVPW.mjs → referencePickerModal-BwzqUWFA.mjs} +27 -246
  348. package/dist/chunks/referencePickerModal-BwzqUWFA.mjs.map +1 -0
  349. package/dist/chunks/usernameToColor-CEyHwgy-.mjs +26 -0
  350. package/dist/chunks/usernameToColor-CEyHwgy-.mjs.map +1 -0
  351. package/dist/components/NcActionButton/NcActionButton.vue.d.ts +3 -7
  352. package/dist/components/NcActionButtonGroup/NcActionButtonGroup.vue.d.ts +1 -1
  353. package/dist/components/NcActionCheckbox/NcActionCheckbox.vue.d.ts +4 -4
  354. package/dist/components/NcActionInput/NcActionInput.vue.d.ts +11 -11
  355. package/dist/components/NcActionRadio/NcActionRadio.vue.d.ts +4 -4
  356. package/dist/components/NcActionTextEditable/NcActionTextEditable.vue.d.ts +4 -4
  357. package/dist/components/NcActions/NcActions.vue.d.ts +6 -6
  358. package/dist/components/NcAppContent/NcAppContent.vue.d.ts +1 -1
  359. package/dist/components/NcAppNavigationCaption/NcAppNavigationCaption.vue.d.ts +6 -69
  360. package/dist/components/NcAppNavigationItem/NcAppNavigationItem.vue.d.ts +6 -6
  361. package/dist/components/NcAppNavigationItem/NcInputConfirmCancel.vue.d.ts +3 -3
  362. package/dist/components/NcAppNavigationSettings/NcAppNavigationSettings.vue.d.ts +3 -3
  363. package/dist/components/NcAppSidebar/NcAppSidebar.vue.d.ts +62 -15
  364. package/dist/components/NcAppSidebar/NcAppSidebarTabs.vue.d.ts +16 -0
  365. package/dist/components/NcAvatar/NcAvatar.vue.d.ts +4 -4
  366. package/dist/components/NcBreadcrumb/NcBreadcrumb.vue.d.ts +5 -5
  367. package/dist/components/NcButton/NcButton.vue.d.ts +47 -25
  368. package/dist/components/NcButton/index.d.ts +3 -19
  369. package/dist/components/NcButton/types.d.ts +30 -0
  370. package/dist/components/NcChip/NcChip.vue.d.ts +113 -0
  371. package/dist/components/NcChip/index.d.ts +5 -0
  372. package/dist/components/NcCollectionList/NcCollectionList.vue.d.ts +126 -0
  373. package/dist/components/NcCollectionList/NcCollectionListItem.vue.d.ts +50 -0
  374. package/dist/components/NcCollectionList/index.d.ts +1 -0
  375. package/dist/components/NcCollectionList/service.d.ts +47 -0
  376. package/dist/components/NcCollectionList/useCollections.d.ts +31 -0
  377. package/dist/components/NcContent/NcContent.vue.d.ts +1 -1
  378. package/dist/components/NcDashboardWidgetItem/NcDashboardWidgetItem.vue.d.ts +1 -1
  379. package/dist/components/NcDialog/NcDialog.vue.d.ts +359 -1
  380. package/dist/components/NcDialogButton/NcDialogButton.vue.d.ts +94 -1
  381. package/dist/components/NcDialogButton/index.d.ts +4 -0
  382. package/dist/components/NcEllipsisedOption/NcEllipsisedOption.vue.d.ts +12 -0
  383. package/dist/components/NcEmojiPicker/NcEmojiPicker.vue.d.ts +2 -2
  384. package/dist/components/NcHeaderMenu/NcHeaderMenu.vue.d.ts +3 -3
  385. package/dist/components/NcHighlight/NcHighlight.vue.d.ts +1 -1
  386. package/dist/components/NcIconSvgWrapper/NcIconSvgWrapper.vue.d.ts +4 -4
  387. package/dist/components/NcInputField/NcInputField.vue.d.ts +6 -6
  388. package/dist/components/NcListItem/NcListItem.vue.d.ts +1 -1
  389. package/dist/components/NcListItemIcon/NcListItemIcon.vue.d.ts +3 -3
  390. package/dist/components/NcLoadingIcon/NcLoadingIcon.vue.d.ts +1 -1
  391. package/dist/components/NcNoteCard/NcNoteCard.vue.d.ts +1 -1
  392. package/dist/components/NcRelatedResourcesPanel/NcRelatedResourcesPanel.vue.d.ts +3 -3
  393. package/dist/components/NcRelatedResourcesPanel/NcResource.vue.d.ts +1 -1
  394. package/dist/components/NcRelatedResourcesPanel/NcTeamResources.vue.d.ts +1 -1
  395. package/dist/components/NcRichContenteditable/NcAutoCompleteResult.vue.d.ts +4 -4
  396. package/dist/components/NcRichContenteditable/NcRichContenteditable.vue.d.ts +22 -10
  397. package/dist/components/NcRichText/NcReferencePicker/NcSearch.vue.d.ts +1 -1
  398. package/dist/components/NcRichText/NcReferenceWidget.vue.d.ts +1 -1
  399. package/dist/components/NcRichText/NcRichText.vue.d.ts +2 -2
  400. package/dist/components/NcRichText/helpers.d.ts +4 -0
  401. package/dist/components/NcSavingIndicatorIcon/NcSavingIndicatorIcon.vue.d.ts +3 -3
  402. package/dist/components/NcSelect/NcSelect.vue.d.ts +2 -2
  403. package/dist/components/NcSelectTags/NcSelectTags.vue.d.ts +1 -1
  404. package/dist/components/NcSettingsInputText/NcSettingsInputText.vue.d.ts +4 -4
  405. package/dist/components/NcSettingsSelectGroup/NcSettingsSelectGroup.vue.d.ts +5 -5
  406. package/dist/components/NcTextArea/NcTextArea.vue.d.ts +3 -3
  407. package/dist/components/NcTimezonePicker/NcTimezonePicker.vue.d.ts +1 -1
  408. package/dist/components/NcUserBubble/NcUserBubble.vue.d.ts +4 -4
  409. package/dist/components/NcVNodes/NcVNodes.vue.d.ts +3 -3
  410. package/dist/components/index.d.ts +7 -19
  411. package/dist/composables/useFormatDateTime.d.ts +5 -5
  412. package/dist/directives/index.d.ts +2 -19
  413. package/dist/functions/a11y/index.d.ts +2 -19
  414. package/dist/functions/emoji/emoji.d.ts +2 -19
  415. package/dist/functions/emoji/index.d.ts +2 -19
  416. package/dist/functions/reference/widgets.d.ts +4 -0
  417. package/dist/index.d.ts +2 -19
  418. package/dist/index.mjs +93 -119
  419. package/dist/index.mjs.map +1 -1
  420. package/dist/l10n.d.ts +2 -2
  421. package/dist/mixins/clickOutsideOptions/index.d.ts +1 -1
  422. package/dist/mixins/richEditor/index.d.ts +1 -1
  423. package/dist/utils/FindRanges.d.ts +2 -19
  424. package/dist/utils/GenRandomId.d.ts +2 -19
  425. package/dist/utils/GetChildren.d.ts +2 -19
  426. package/dist/utils/GetParent.d.ts +2 -19
  427. package/dist/utils/ScopeComponent.d.ts +2 -19
  428. package/dist/utils/Timer.d.ts +4 -38
  429. package/dist/utils/UserStatus.d.ts +2 -19
  430. package/dist/utils/VueTypes.d.ts +3 -0
  431. package/dist/utils/getAvatarUrl.d.ts +2 -19
  432. package/dist/vendor.LICENSE.txt +4 -4
  433. package/package.json +32 -33
  434. package/LICENSE +0 -661
  435. package/dist/assets/NcActionButton-DilAGmID.css +0 -139
  436. package/dist/assets/NcActionCaption-sfcjBZnu.css +0 -46
  437. package/dist/assets/NcActionCheckbox-BPTe8v7j.css +0 -110
  438. package/dist/assets/NcActionInput-BCm3Bb6i.css +0 -271
  439. package/dist/assets/NcActionLink-ufhOZDI9.css +0 -124
  440. package/dist/assets/NcActionRadio-BgKkAdF8.css +0 -110
  441. package/dist/assets/NcActionRouter-DJDXSMeq.css +0 -135
  442. package/dist/assets/NcActionSeparator-CB59y4di.css +0 -38
  443. package/dist/assets/NcActionText-FrsQgrnA.css +0 -139
  444. package/dist/assets/NcActionTextEditable-pgsRQJ7l.css +0 -287
  445. package/dist/assets/NcActions-6uFGQVJQ.css +0 -111
  446. package/dist/assets/NcAppContent-CVWf32qC.css +0 -153
  447. package/dist/assets/NcAppNavigation-B_aG01bd.css +0 -131
  448. package/dist/assets/NcAppNavigationCaption-B32FjjW3.css +0 -62
  449. package/dist/assets/NcAppNavigationIconBullet-B8q3pUL5.css +0 -44
  450. package/dist/assets/NcAppNavigationList-DnIxrbVX.css +0 -43
  451. package/dist/assets/NcAppNavigationNew-B29SvI0s.css +0 -41
  452. package/dist/assets/NcAppNavigationSettings-RpFZX7Hx.css +0 -93
  453. package/dist/assets/NcAppNavigationSpacer-C12GX5n6.css +0 -6
  454. package/dist/assets/NcAppNavigationToggle-Bb19ZkjT.css +0 -41
  455. package/dist/assets/NcAppSettingsDialog-CQY4VVRw.css +0 -88
  456. package/dist/assets/NcAppSettingsSection-BUxPrhYB.css +0 -44
  457. package/dist/assets/NcAppSidebarTab-WhMYMxlI.css +0 -48
  458. package/dist/assets/NcAvatar-xxyc0_S6.css +0 -143
  459. package/dist/assets/NcBreadcrumb-BKgJHxzd.css +0 -82
  460. package/dist/assets/NcBreadcrumbs-Dq8VnSzJ.css +0 -51
  461. package/dist/assets/NcButton-BqOBMPBj.css +0 -204
  462. package/dist/assets/NcColorPicker-q8nVYCvu.css +0 -136
  463. package/dist/assets/NcContent-CQqz6KXD.css +0 -108
  464. package/dist/assets/NcCounterBubble-CWi_P1Tb.css +0 -67
  465. package/dist/assets/NcDashboardWidget-DzDAv3ER.css +0 -87
  466. package/dist/assets/NcDashboardWidgetItem-BevETFRF.css +0 -99
  467. package/dist/assets/NcDateTimePickerNative-DHZcOvOf.css +0 -61
  468. package/dist/assets/NcDialog-CvmjNcgn.css +0 -160
  469. package/dist/assets/NcEllipsisedOption-ClDzkIX6.css +0 -48
  470. package/dist/assets/NcEmptyContent-CMM4BKRc.css +0 -79
  471. package/dist/assets/NcGuestContent-BTahASdv.css +0 -78
  472. package/dist/assets/NcHeaderMenu-fYpidmuR.css +0 -91
  473. package/dist/assets/NcIconSvgWrapper-C95UOHYS.css +0 -53
  474. package/dist/assets/NcInputConfirmCancel-dYsxq6pH.css +0 -53
  475. package/dist/assets/NcListItem-CJa4SoZs.css +0 -170
  476. package/dist/assets/NcListItemIcon-KqKY7_tj.css +0 -78
  477. package/dist/assets/NcLoadingIcon-gxK0ujO0.css +0 -35
  478. package/dist/assets/NcMentionBubble-DmzU72Mw.css +0 -84
  479. package/dist/assets/NcNoteCard-e7-Bxio8.css +0 -64
  480. package/dist/assets/NcProgressBar-D5VftcJm.css +0 -70
  481. package/dist/assets/NcRelatedResourcesPanel-CbFY3Cdm.css +0 -200
  482. package/dist/assets/NcRichText-Cc65tYYs.css +0 -240
  483. package/dist/assets/NcSettingsInputText-DR4Wv2XP.css +0 -49
  484. package/dist/assets/NcSettingsSection-DrlA06-W.css +0 -66
  485. package/dist/assets/NcSettingsSelectGroup-Ba_9qqBq.css +0 -37
  486. package/dist/assets/NcUserBubble-a6zTGwWG.css +0 -62
  487. package/dist/assets/NcUserStatusIcon-DYNzsng_.css +0 -44
  488. package/dist/assets/referencePickerModal-4K_FZwca.css +0 -539
  489. package/dist/chunks/GenColors-BjorWIgA.mjs.map +0 -1
  490. package/dist/chunks/GenRandomId-CXkjMlAT.mjs +0 -27
  491. package/dist/chunks/GenRandomId-CXkjMlAT.mjs.map +0 -1
  492. package/dist/chunks/Linkify-BBPJHBma.mjs +0 -35
  493. package/dist/chunks/Linkify-BBPJHBma.mjs.map +0 -1
  494. package/dist/chunks/NcActionButton-BFQnlisT.mjs.map +0 -1
  495. package/dist/chunks/NcActionButtonGroup-D-8C3HSO.mjs.map +0 -1
  496. package/dist/chunks/NcActionCheckbox-CjZH6kjg.mjs.map +0 -1
  497. package/dist/chunks/NcActionInput-ClUviDGB.mjs.map +0 -1
  498. package/dist/chunks/NcActionLink-CQEzoS_a.mjs.map +0 -1
  499. package/dist/chunks/NcActionRadio-D6VrxjcX.mjs.map +0 -1
  500. package/dist/chunks/NcActionRouter-DmrWV-q1.mjs.map +0 -1
  501. package/dist/chunks/NcActionSeparator-ib21YUAE.mjs.map +0 -1
  502. package/dist/chunks/NcActionText-dj38IHk6.mjs.map +0 -1
  503. package/dist/chunks/NcActionTextEditable-W1wFQ9dc.mjs.map +0 -1
  504. package/dist/chunks/NcActions-B6QL_4DD.mjs.map +0 -1
  505. package/dist/chunks/NcAppContent-jvz75P8O.mjs.map +0 -1
  506. package/dist/chunks/NcAppNavigation-D0RINQda.mjs.map +0 -1
  507. package/dist/chunks/NcAppNavigationCaption-BnhoAPkJ.mjs.map +0 -1
  508. package/dist/chunks/NcAppNavigationIconBullet-JoIYov5C.mjs.map +0 -1
  509. package/dist/chunks/NcAppNavigationItem-s0czI8KR.mjs.map +0 -1
  510. package/dist/chunks/NcAppNavigationList-DzTic3Q7.mjs.map +0 -1
  511. package/dist/chunks/NcAppNavigationNew-RBp5Nk-2.mjs.map +0 -1
  512. package/dist/chunks/NcAppNavigationNewItem-u85Ffz-V.mjs.map +0 -1
  513. package/dist/chunks/NcAppNavigationSettings-D_4gHC9H.mjs.map +0 -1
  514. package/dist/chunks/NcAppNavigationSpacer-Ctbl-q5I.mjs.map +0 -1
  515. package/dist/chunks/NcAppNavigationToggle-BtC5hBww.mjs.map +0 -1
  516. package/dist/chunks/NcAppSettingsDialog-DXpamfEo.mjs.map +0 -1
  517. package/dist/chunks/NcAppSettingsSection-PG8OLRbP.mjs.map +0 -1
  518. package/dist/chunks/NcAppSidebar-B0pjWsoI.mjs.map +0 -1
  519. package/dist/chunks/NcAppSidebarTab-BTuuQoW5.mjs.map +0 -1
  520. package/dist/chunks/NcAvatar-BKmfsBcY.mjs.map +0 -1
  521. package/dist/chunks/NcBreadcrumb-C3k6T3Bj.mjs.map +0 -1
  522. package/dist/chunks/NcBreadcrumbs-Crc4BkfA.mjs.map +0 -1
  523. package/dist/chunks/NcButton-B27fpd1m.mjs.map +0 -1
  524. package/dist/chunks/NcCheckboxRadioSwitch-DdG8AL_h.mjs.map +0 -1
  525. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_9bdeea42_lang-C9ptCbXx.mjs +0 -3
  526. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_9bdeea42_lang-C9ptCbXx.mjs.map +0 -1
  527. package/dist/chunks/NcColorPicker-D4IB1shI.mjs.map +0 -1
  528. package/dist/chunks/NcContent-CMQytlSd.mjs +0 -129
  529. package/dist/chunks/NcContent-CMQytlSd.mjs.map +0 -1
  530. package/dist/chunks/NcCounterBubble-BVDNwJiw.mjs.map +0 -1
  531. package/dist/chunks/NcDashboardWidget-B5H6n5qG.mjs.map +0 -1
  532. package/dist/chunks/NcDashboardWidgetItem-BbgZpZ-D.mjs.map +0 -1
  533. package/dist/chunks/NcDateTime-p5872lEX.mjs.map +0 -1
  534. package/dist/chunks/NcDateTimePicker-C1gBl-W0.mjs.map +0 -1
  535. package/dist/chunks/NcDateTimePickerNative-CyCL5Ovh.mjs.map +0 -1
  536. package/dist/chunks/NcDialog-Dq3Qnbke.mjs.map +0 -1
  537. package/dist/chunks/NcDialogButton-C6SudZTq.mjs.map +0 -1
  538. package/dist/chunks/NcEllipsisedOption-DsCFqgUF.mjs.map +0 -1
  539. package/dist/chunks/NcEmojiPicker-BwQ8VxQZ.mjs.map +0 -1
  540. package/dist/chunks/NcEmptyContent-CdgacgQe.mjs.map +0 -1
  541. package/dist/chunks/NcGuestContent-DfnVEtGM.mjs.map +0 -1
  542. package/dist/chunks/NcHeaderMenu-CJVtnKpb.mjs.map +0 -1
  543. package/dist/chunks/NcHighlight-CR5kySMp.mjs.map +0 -1
  544. package/dist/chunks/NcIconSvgWrapper-C0csZ9zg.mjs.map +0 -1
  545. package/dist/chunks/NcInputConfirmCancel-Rk8B1Q0j.mjs.map +0 -1
  546. package/dist/chunks/NcInputField-DX0Brmlk.mjs.map +0 -1
  547. package/dist/chunks/NcListItemIcon-A5o8HkQv.mjs.map +0 -1
  548. package/dist/chunks/NcLoadingIcon-DwbO7gAy.mjs.map +0 -1
  549. package/dist/chunks/NcNoteCard-CdZRsd8-.mjs.map +0 -1
  550. package/dist/chunks/NcPasswordField-B7CiEElO.mjs.map +0 -1
  551. package/dist/chunks/NcPopover-B9UbiGTv.mjs.map +0 -1
  552. package/dist/chunks/NcProgressBar-CAXfza4R.mjs.map +0 -1
  553. package/dist/chunks/NcRelatedResourcesPanel-Dr4jL2gw.mjs.map +0 -1
  554. package/dist/chunks/NcRichContenteditable-P06ORHyg.mjs.map +0 -1
  555. package/dist/chunks/NcRichText-BfreYq5m.mjs.map +0 -1
  556. package/dist/chunks/NcSelect-Dt3JJc9b.mjs.map +0 -1
  557. package/dist/chunks/NcSelectTags-F8Z_SdXE.mjs.map +0 -1
  558. package/dist/chunks/NcSettingsInputText-BtDwhhX0.mjs.map +0 -1
  559. package/dist/chunks/NcSettingsSection-BN98AV4b.mjs.map +0 -1
  560. package/dist/chunks/NcSettingsSelectGroup-61ylzaOo.mjs.map +0 -1
  561. package/dist/chunks/NcTextArea-DOXp3B2R.mjs.map +0 -1
  562. package/dist/chunks/NcTextField-5CbWAUlw.mjs.map +0 -1
  563. package/dist/chunks/NcTimezonePicker-Cs2arCUX.mjs +0 -4051
  564. package/dist/chunks/NcTimezonePicker-Cs2arCUX.mjs.map +0 -1
  565. package/dist/chunks/NcUserBubble-B1nO-OgL.mjs.map +0 -1
  566. package/dist/chunks/NcUserStatusIcon-DXxHWiO9.mjs.map +0 -1
  567. package/dist/chunks/ScopeComponent-B2OE7k3z.mjs +0 -35
  568. package/dist/chunks/ScopeComponent-B2OE7k3z.mjs.map +0 -1
  569. package/dist/chunks/_l10n-ipRV_dfs.mjs +0 -122
  570. package/dist/chunks/_l10n-ipRV_dfs.mjs.map +0 -1
  571. package/dist/chunks/actionGlobal-BIN1Dngv.mjs +0 -46
  572. package/dist/chunks/actionGlobal-BIN1Dngv.mjs.map +0 -1
  573. package/dist/chunks/actionText-CBxkao_8.mjs.map +0 -1
  574. package/dist/chunks/autolink-CuPhRJIL.mjs.map +0 -1
  575. package/dist/chunks/emoji-BjUFGMrw.mjs.map +0 -1
  576. package/dist/chunks/focusTrap-hWDNhn4t.mjs +0 -28
  577. package/dist/chunks/focusTrap-hWDNhn4t.mjs.map +0 -1
  578. package/dist/chunks/getAvatarUrl-BBvqBOJD.mjs +0 -32
  579. package/dist/chunks/getAvatarUrl-BBvqBOJD.mjs.map +0 -1
  580. package/dist/chunks/index-5AsHlmYO.mjs.map +0 -1
  581. package/dist/chunks/logger-C7ZZ6zFQ.mjs +0 -25
  582. package/dist/chunks/logger-C7ZZ6zFQ.mjs.map +0 -1
  583. package/dist/chunks/referencePickerModal-Tr-vmVPW.mjs.map +0 -1
  584. package/dist/chunks/usernameToColor-BpeOvoed.mjs +0 -47
  585. package/dist/chunks/usernameToColor-BpeOvoed.mjs.map +0 -1
  586. package/dist/utils/IsOutOfViewport.d.ts +0 -8
@@ -0,0 +1,589 @@
1
+ import '../assets/NcCollectionList-BT2L4guq.css';
2
+ import debounce from "debounce";
3
+ import { resolveComponent, openBlock, createElementBlock, createVNode, toDisplayString, normalizeClass, withModifiers, withDirectives, createElementVNode, vModelText, Fragment, renderList, createBlock, resolveDynamicComponent, withCtx, createCommentVNode, createTextVNode, Transition, pushScopeId, popScopeId, ref } from "vue";
4
+ import { r as register, G as t7, H as t26, a as t } from "./_l10n-6dsjYig_.mjs";
5
+ import { N as NcAvatar } from "./NcAvatar-BjooMt8H.mjs";
6
+ import { N as NcSelect } from "./NcSelect-uOkQ9CdB.mjs";
7
+ import { g as getRoute } from "./autolink-CKPk5rzg.mjs";
8
+ import { N as NcActions } from "./NcActions-DqMOvrbN.mjs";
9
+ import { N as NcActionButton } from "./NcActionButton-Bqkgltcz.mjs";
10
+ import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
11
+ import axios from "@nextcloud/axios";
12
+ import { generateOcsUrl } from "@nextcloud/router";
13
+ register(t7);
14
+ register(t26);
15
+ const _sfc_main$1 = {
16
+ name: "NcCollectionListItem",
17
+ components: {
18
+ NcAvatar,
19
+ NcActions,
20
+ NcActionButton
21
+ },
22
+ props: {
23
+ collection: {
24
+ type: Object,
25
+ default: null
26
+ },
27
+ error: {
28
+ type: String,
29
+ default: void 0
30
+ }
31
+ },
32
+ emits: ["remove-resource", "rename-collection"],
33
+ data() {
34
+ return {
35
+ detailsOpen: false,
36
+ newName: null
37
+ };
38
+ },
39
+ computed: {
40
+ getIcon() {
41
+ return (resource) => [resource.iconClass];
42
+ },
43
+ typeClass() {
44
+ return (resource) => "resource-type-" + resource.type;
45
+ },
46
+ resources() {
47
+ return this.collection.resources?.filter((resource) => !Array.isArray(resource)) ?? [];
48
+ },
49
+ getComponent() {
50
+ return (resource) => {
51
+ const route = getRoute(this.$router, resource.link);
52
+ return route ? { component: "router-link", to: route, href: void 0 } : { component: "a", to: void 0, href: resource.link };
53
+ };
54
+ },
55
+ iconUrl() {
56
+ return (resource) => {
57
+ if (resource.mimetype) {
58
+ return OC.MimeType.getIconUrl(resource.mimetype);
59
+ }
60
+ if (resource.iconUrl) {
61
+ return resource.iconUrl;
62
+ }
63
+ return "";
64
+ };
65
+ }
66
+ },
67
+ methods: {
68
+ t,
69
+ toggleDetails() {
70
+ this.detailsOpen = !this.detailsOpen;
71
+ },
72
+ showDetails() {
73
+ this.detailsOpen = true;
74
+ },
75
+ removeResource(collection, resource) {
76
+ this.$emit("remove-resource", {
77
+ collectionId: collection.id,
78
+ resourceType: resource.type,
79
+ resourceId: resource.id
80
+ });
81
+ },
82
+ openRename() {
83
+ this.newName = this.collection.name;
84
+ },
85
+ renameCollection() {
86
+ if (this.newName) {
87
+ this.$emit("rename-collection", {
88
+ collectionId: this.collection.id,
89
+ name: this.newName
90
+ });
91
+ }
92
+ this.newName = null;
93
+ }
94
+ }
95
+ };
96
+ const _withScopeId$1 = (n) => (pushScopeId("data-v-76f66b8d"), n = n(), popScopeId(), n);
97
+ const _hoisted_1$1 = { class: "collection-list-item" };
98
+ const _hoisted_2$1 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createElementVNode("input", {
99
+ type: "submit",
100
+ value: "",
101
+ class: "icon-confirm"
102
+ }, null, -1));
103
+ const _hoisted_3$1 = {
104
+ key: 2,
105
+ class: "linked-icons"
106
+ };
107
+ const _hoisted_4$1 = ["src", "alt"];
108
+ const _hoisted_5$1 = {
109
+ key: 3,
110
+ class: "sharingOptionsGroup"
111
+ };
112
+ const _hoisted_6$1 = {
113
+ key: 0,
114
+ class: "error"
115
+ };
116
+ const _hoisted_7$1 = {
117
+ key: 0,
118
+ class: "resource-list-details"
119
+ };
120
+ const _hoisted_8$1 = ["src", "alt"];
121
+ const _hoisted_9$1 = { class: "resource-name" };
122
+ const _hoisted_10 = ["onClick"];
123
+ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
124
+ const _component_NcAvatar = resolveComponent("NcAvatar");
125
+ const _component_NcActionButton = resolveComponent("NcActionButton");
126
+ const _component_NcActions = resolveComponent("NcActions");
127
+ return openBlock(), createElementBlock("li", _hoisted_1$1, [
128
+ createVNode(_component_NcAvatar, {
129
+ "display-name": $props.collection.name,
130
+ "allow-placeholder": "",
131
+ class: "collection-avatar"
132
+ }, null, 8, ["display-name"]),
133
+ $data.newName === null ? (openBlock(), createElementBlock("span", {
134
+ key: 0,
135
+ class: "collection-item-name",
136
+ title: "",
137
+ onClick: _cache[0] || (_cache[0] = (...args) => $options.showDetails && $options.showDetails(...args))
138
+ }, toDisplayString($props.collection.name), 1)) : (openBlock(), createElementBlock("form", {
139
+ key: 1,
140
+ class: normalizeClass({ "should-shake": $props.error }),
141
+ onSubmit: _cache[2] || (_cache[2] = withModifiers((...args) => $options.renameCollection && $options.renameCollection(...args), ["prevent"]))
142
+ }, [
143
+ withDirectives(createElementVNode("input", {
144
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $data.newName = $event),
145
+ type: "text",
146
+ autocomplete: "off",
147
+ autocapitalize: "off"
148
+ }, null, 512), [
149
+ [vModelText, $data.newName]
150
+ ]),
151
+ _hoisted_2$1
152
+ ], 34)),
153
+ !$data.detailsOpen && $data.newName === null ? (openBlock(), createElementBlock("div", _hoisted_3$1, [
154
+ (openBlock(true), createElementBlock(Fragment, null, renderList($options.resources.slice(0, 2), (resource) => {
155
+ return openBlock(), createBlock(resolveDynamicComponent($options.getComponent(resource).component), {
156
+ key: resource.type + "|" + resource.id,
157
+ title: resource.name,
158
+ to: $options.getComponent(resource).to,
159
+ href: $options.getComponent(resource).href,
160
+ class: normalizeClass($options.typeClass(resource))
161
+ }, {
162
+ default: withCtx(() => [
163
+ createElementVNode("img", {
164
+ src: $options.iconUrl(resource),
165
+ alt: resource.name
166
+ }, null, 8, _hoisted_4$1)
167
+ ]),
168
+ _: 2
169
+ }, 1032, ["title", "to", "href", "class"]);
170
+ }), 128))
171
+ ])) : createCommentVNode("", true),
172
+ $data.newName === null ? (openBlock(), createElementBlock("span", _hoisted_5$1, [
173
+ createVNode(_component_NcActions, null, {
174
+ default: withCtx(() => [
175
+ createVNode(_component_NcActionButton, {
176
+ icon: "icon-info",
177
+ onClick: withModifiers($options.toggleDetails, ["prevent"])
178
+ }, {
179
+ default: withCtx(() => [
180
+ createTextVNode(toDisplayString($data.detailsOpen ? $options.t("Hide details") : $options.t("Show details")), 1)
181
+ ]),
182
+ _: 1
183
+ }, 8, ["onClick"]),
184
+ createVNode(_component_NcActionButton, {
185
+ icon: "icon-rename",
186
+ onClick: withModifiers($options.openRename, ["prevent"])
187
+ }, {
188
+ default: withCtx(() => [
189
+ createTextVNode(toDisplayString($options.t("Rename project")), 1)
190
+ ]),
191
+ _: 1
192
+ }, 8, ["onClick"])
193
+ ]),
194
+ _: 1
195
+ })
196
+ ])) : createCommentVNode("", true),
197
+ createVNode(Transition, { name: "fade" }, {
198
+ default: withCtx(() => [
199
+ $props.error ? (openBlock(), createElementBlock("div", _hoisted_6$1, toDisplayString($props.error), 1)) : createCommentVNode("", true)
200
+ ]),
201
+ _: 1
202
+ }),
203
+ createVNode(Transition, { name: "fade" }, {
204
+ default: withCtx(() => [
205
+ $data.detailsOpen ? (openBlock(), createElementBlock("ul", _hoisted_7$1, [
206
+ (openBlock(true), createElementBlock(Fragment, null, renderList($options.resources, (resource) => {
207
+ return openBlock(), createElementBlock("li", {
208
+ key: resource.type + "|" + resource.id,
209
+ class: normalizeClass($options.typeClass(resource))
210
+ }, [
211
+ (openBlock(), createBlock(resolveDynamicComponent($options.getComponent(resource).component), {
212
+ to: $options.getComponent(resource).to,
213
+ href: $options.getComponent(resource).href
214
+ }, {
215
+ default: withCtx(() => [
216
+ createElementVNode("img", {
217
+ src: $options.iconUrl(resource),
218
+ alt: resource.name
219
+ }, null, 8, _hoisted_8$1),
220
+ createElementVNode("span", _hoisted_9$1, toDisplayString(resource.name || ""), 1)
221
+ ]),
222
+ _: 2
223
+ }, 1032, ["to", "href"])),
224
+ createElementVNode("span", {
225
+ class: "icon-close",
226
+ onClick: ($event) => $options.removeResource($props.collection, resource)
227
+ }, null, 8, _hoisted_10)
228
+ ], 2);
229
+ }), 128))
230
+ ])) : createCommentVNode("", true)
231
+ ]),
232
+ _: 1
233
+ })
234
+ ]);
235
+ }
236
+ const NcCollectionListItem = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-76f66b8d"]]);
237
+ function extractOcsData(response) {
238
+ return response.data.ocs.data;
239
+ }
240
+ function renameCollectionService(collectionId, collectionName) {
241
+ return axios.put(generateOcsUrl("collaboration/resources/collections/{collectionId}", { collectionId }), { collectionName }).then(extractOcsData);
242
+ }
243
+ function getCollectionsByResourceService(resourceType, resourceId) {
244
+ return axios.get(generateOcsUrl("collaboration/resources/{resourceType}/{resourceId}", { resourceType, resourceId })).then(extractOcsData);
245
+ }
246
+ function createCollectionService(resourceType, resourceId, name) {
247
+ return axios.post(generateOcsUrl("collaboration/resources/{resourceType}/{resourceId}", { resourceType, resourceId }), { name }).then(extractOcsData);
248
+ }
249
+ function addResourceService(collectionId, resourceType, resourceId) {
250
+ return axios.post(generateOcsUrl("collaboration/resources/collections/{collectionId}", { collectionId }), { resourceType, resourceId }).then(extractOcsData);
251
+ }
252
+ function removeResourceService(collectionId, resourceType, resourceId) {
253
+ return axios.delete(generateOcsUrl("collaboration/resources/collections/{collectionId}", { collectionId }), { params: { resourceType, resourceId } }).then(extractOcsData);
254
+ }
255
+ function searchService(query) {
256
+ return axios.get(generateOcsUrl("collaboration/resources/collections/search/{query}", { query })).then(extractOcsData);
257
+ }
258
+ function useCollections() {
259
+ const storedCollections = ref([]);
260
+ const addCollections = (collections) => {
261
+ storedCollections.value = collections;
262
+ };
263
+ const addCollection = (collection) => {
264
+ storedCollections.value.push(collection);
265
+ };
266
+ const removeCollection = (collectionId) => {
267
+ storedCollections.value = storedCollections.value.filter((item) => item.id !== collectionId);
268
+ };
269
+ const updateCollection = (collection) => {
270
+ const index = storedCollections.value.findIndex((item) => item.id === collection.id);
271
+ if (index !== -1) {
272
+ storedCollections.value[index] = collection;
273
+ } else {
274
+ addCollection(collection);
275
+ }
276
+ };
277
+ const fetchCollectionsByResource = async ({ resourceType, resourceId }) => {
278
+ const collections = await getCollectionsByResourceService(resourceType, resourceId);
279
+ addCollections(collections);
280
+ };
281
+ const createCollection = async ({ baseResourceType, baseResourceId, resourceType, resourceId, name }) => {
282
+ const collection = await createCollectionService(baseResourceType, baseResourceId, name);
283
+ addCollection(collection);
284
+ await addResourceToCollection({
285
+ collectionId: collection.id,
286
+ resourceType,
287
+ resourceId
288
+ });
289
+ };
290
+ const renameCollection = async ({ collectionId, name }) => {
291
+ const collection = await renameCollectionService(collectionId, name);
292
+ updateCollection(collection);
293
+ };
294
+ const addResourceToCollection = async ({ collectionId, resourceType, resourceId }) => {
295
+ const collection = await addResourceService(collectionId, resourceType, String(resourceId));
296
+ updateCollection(collection);
297
+ };
298
+ const removeResourceFromCollection = async ({ collectionId, resourceType, resourceId }) => {
299
+ const collection = await removeResourceService(collectionId, resourceType, String(resourceId));
300
+ if (collection.resources.length > 0) {
301
+ updateCollection(collection);
302
+ } else {
303
+ removeCollection(collectionId);
304
+ }
305
+ };
306
+ return {
307
+ storedCollections,
308
+ fetchCollectionsByResource,
309
+ createCollection,
310
+ renameCollection,
311
+ addResourceToCollection,
312
+ removeResourceFromCollection
313
+ };
314
+ }
315
+ const METHOD_CREATE_COLLECTION = 0;
316
+ const METHOD_ADD_TO_COLLECTION = 1;
317
+ const _sfc_main = {
318
+ name: "NcCollectionList",
319
+ components: {
320
+ NcCollectionListItem,
321
+ NcAvatar,
322
+ NcSelect
323
+ },
324
+ props: {
325
+ /**
326
+ * Resource type identifier
327
+ */
328
+ type: {
329
+ type: String,
330
+ default: null
331
+ },
332
+ /**
333
+ * Unique id of the resource
334
+ */
335
+ id: {
336
+ type: String,
337
+ default: null
338
+ },
339
+ /**
340
+ * Name of the resource
341
+ */
342
+ name: {
343
+ type: String,
344
+ default: ""
345
+ },
346
+ /**
347
+ * Whether the component is active (to start fetch resources)
348
+ */
349
+ isActive: {
350
+ type: Boolean,
351
+ default: true
352
+ }
353
+ },
354
+ setup() {
355
+ const {
356
+ storedCollections,
357
+ fetchCollectionsByResource,
358
+ createCollection,
359
+ addResourceToCollection,
360
+ removeResourceFromCollection,
361
+ renameCollection
362
+ } = useCollections();
363
+ const searchCollections = ref([]);
364
+ const search = debounce(function(query, loading) {
365
+ if (query !== "") {
366
+ loading(true);
367
+ searchService(query).then((collections) => {
368
+ searchCollections.value = collections;
369
+ }).catch((e) => {
370
+ console.error("Failed to search for collections", e);
371
+ }).finally(() => {
372
+ loading(false);
373
+ });
374
+ }
375
+ }, 500);
376
+ return {
377
+ storedCollections,
378
+ fetchCollectionsByResource,
379
+ createCollection,
380
+ addResourceToCollection,
381
+ removeResourceFromCollection,
382
+ renameCollection,
383
+ searchCollections,
384
+ search
385
+ };
386
+ },
387
+ data() {
388
+ return {
389
+ selectIsOpen: false,
390
+ generatingCodes: false,
391
+ codes: void 0,
392
+ value: null,
393
+ model: {},
394
+ collectionsError: {},
395
+ error: null,
396
+ isSelectOpen: false
397
+ };
398
+ },
399
+ computed: {
400
+ collections() {
401
+ return this.storedCollections.filter(
402
+ (collection) => collection.resources.some((resource) => resource && resource.id === String(this.id) && resource.type === this.type)
403
+ );
404
+ },
405
+ placeholder() {
406
+ return this.isSelectOpen ? t("Type to search for existing projects") : t("Add to a project");
407
+ },
408
+ options() {
409
+ const options = [];
410
+ window.OCP.Collaboration.getTypes().sort().forEach((type) => {
411
+ options.push({
412
+ method: METHOD_CREATE_COLLECTION,
413
+ type,
414
+ title: window.OCP.Collaboration.getLabel(type),
415
+ class: window.OCP.Collaboration.getIcon(type),
416
+ action: () => window.OCP.Collaboration.trigger(type)
417
+ });
418
+ });
419
+ for (const index in this.searchCollections) {
420
+ if (!this.collections.find((collection) => collection.id === this.searchCollections[index].id)) {
421
+ options.push({
422
+ method: METHOD_ADD_TO_COLLECTION,
423
+ title: this.searchCollections[index].name,
424
+ collectionId: this.searchCollections[index].id
425
+ });
426
+ }
427
+ }
428
+ return options;
429
+ },
430
+ resourceIdentifier() {
431
+ return {
432
+ resourceType: this.type,
433
+ resourceId: this.id,
434
+ isActive: this.isActive
435
+ };
436
+ }
437
+ },
438
+ watch: {
439
+ resourceIdentifier: {
440
+ deep: true,
441
+ immediate: true,
442
+ handler(resourceIdentifier) {
443
+ if (!resourceIdentifier.isActive || !resourceIdentifier.resourceId || !resourceIdentifier.resourceType) {
444
+ return;
445
+ }
446
+ this.fetchCollectionsByResource(resourceIdentifier);
447
+ }
448
+ }
449
+ },
450
+ methods: {
451
+ t,
452
+ select(selectedOption) {
453
+ if (selectedOption.method === METHOD_CREATE_COLLECTION) {
454
+ selectedOption.action().then((resourceId) => {
455
+ this.createCollection({
456
+ baseResourceType: this.type,
457
+ baseResourceId: this.id,
458
+ resourceType: selectedOption.type,
459
+ resourceId,
460
+ name: this.name
461
+ }).catch((e) => {
462
+ this.setError(t("Failed to create a project"), e);
463
+ });
464
+ }).catch((e) => {
465
+ console.error("No resource selected", e);
466
+ });
467
+ }
468
+ if (selectedOption.method === METHOD_ADD_TO_COLLECTION) {
469
+ this.addResourceToCollection({
470
+ collectionId: selectedOption.collectionId,
471
+ resourceType: this.type,
472
+ resourceId: this.id
473
+ }).catch((e) => {
474
+ this.setError(t("Failed to add the item to the project"), e);
475
+ });
476
+ }
477
+ this.value = null;
478
+ },
479
+ showSelect() {
480
+ this.selectIsOpen = true;
481
+ this.$refs.select.$el.focus();
482
+ },
483
+ setError(error, e) {
484
+ console.error(error, e);
485
+ this.error = error;
486
+ setTimeout(() => {
487
+ this.error = null;
488
+ }, 5e3);
489
+ },
490
+ renameCollectionFromItem({ collectionId, name }) {
491
+ this.renameCollection({ collectionId, name }).catch((e) => {
492
+ console.error(t("Failed to rename the project"), e);
493
+ this.collectionsError[collectionId] = t("Failed to rename the project");
494
+ setTimeout(() => {
495
+ this.collectionsError[collectionId] = null;
496
+ }, 5e3);
497
+ });
498
+ }
499
+ }
500
+ };
501
+ const _withScopeId = (n) => (pushScopeId("data-v-efe8beb8"), n = n(), popScopeId(), n);
502
+ const _hoisted_1 = {
503
+ key: 0,
504
+ id: "collection-list",
505
+ class: "collection-list"
506
+ };
507
+ const _hoisted_2 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("div", { class: "avatar" }, [
508
+ /* @__PURE__ */ createElementVNode("span", { class: "icon-projects" })
509
+ ], -1));
510
+ const _hoisted_3 = { id: "collection-select-container" };
511
+ const _hoisted_4 = { class: "option__desc" };
512
+ const _hoisted_5 = { class: "option__title" };
513
+ const _hoisted_6 = { class: "option__wrapper" };
514
+ const _hoisted_7 = { class: "option__title" };
515
+ const _hoisted_8 = { class: "hint" };
516
+ const _hoisted_9 = {
517
+ key: 0,
518
+ class: "error"
519
+ };
520
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
521
+ const _component_NcAvatar = resolveComponent("NcAvatar");
522
+ const _component_NcSelect = resolveComponent("NcSelect");
523
+ const _component_NcCollectionListItem = resolveComponent("NcCollectionListItem");
524
+ return $options.collections && $props.type && $props.id ? (openBlock(), createElementBlock("ul", _hoisted_1, [
525
+ createElementVNode("li", {
526
+ onClick: _cache[3] || (_cache[3] = (...args) => $options.showSelect && $options.showSelect(...args))
527
+ }, [
528
+ _hoisted_2,
529
+ createElementVNode("div", _hoisted_3, [
530
+ createVNode(_component_NcSelect, {
531
+ ref: "select",
532
+ modelValue: $data.value,
533
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.value = $event),
534
+ "aria-label-combobox": $options.t("Add to a project"),
535
+ options: $options.options,
536
+ placeholder: $options.placeholder,
537
+ label: "title",
538
+ limit: 5,
539
+ onClose: _cache[1] || (_cache[1] = ($event) => $data.isSelectOpen = false),
540
+ onOpen: _cache[2] || (_cache[2] = ($event) => $data.isSelectOpen = true),
541
+ "onOption:selected": $options.select,
542
+ onSearch: $setup.search
543
+ }, {
544
+ "selected-option": withCtx((option) => [
545
+ createElementVNode("span", _hoisted_4, [
546
+ createElementVNode("span", _hoisted_5, toDisplayString(option.title), 1)
547
+ ])
548
+ ]),
549
+ option: withCtx((option) => [
550
+ createElementVNode("span", _hoisted_6, [
551
+ option.class ? (openBlock(), createElementBlock("span", {
552
+ key: 0,
553
+ class: normalizeClass([option.class, "avatar"])
554
+ }, null, 2)) : option.method !== 2 ? (openBlock(), createBlock(_component_NcAvatar, {
555
+ key: 1,
556
+ "allow-placeholder": "",
557
+ "display-name": option.title
558
+ }, null, 8, ["display-name"])) : createCommentVNode("", true),
559
+ createElementVNode("span", _hoisted_7, toDisplayString(option.title), 1)
560
+ ])
561
+ ]),
562
+ default: withCtx(() => [
563
+ createElementVNode("p", _hoisted_8, toDisplayString($options.t("Connect items to a project to make them easier to find")), 1)
564
+ ]),
565
+ _: 1
566
+ }, 8, ["modelValue", "aria-label-combobox", "options", "placeholder", "onOption:selected", "onSearch"])
567
+ ])
568
+ ]),
569
+ createVNode(Transition, { name: "fade" }, {
570
+ default: withCtx(() => [
571
+ $data.error ? (openBlock(), createElementBlock("li", _hoisted_9, toDisplayString($data.error), 1)) : createCommentVNode("", true)
572
+ ]),
573
+ _: 1
574
+ }),
575
+ (openBlock(true), createElementBlock(Fragment, null, renderList($options.collections, (collection) => {
576
+ return openBlock(), createBlock(_component_NcCollectionListItem, {
577
+ key: collection.id,
578
+ collection,
579
+ error: $data.collectionsError[collection.id],
580
+ onRenameCollection: $options.renameCollectionFromItem,
581
+ onRemoveResource: $setup.removeResourceFromCollection
582
+ }, null, 8, ["collection", "error", "onRenameCollection", "onRemoveResource"]);
583
+ }), 128))
584
+ ])) : createCommentVNode("", true);
585
+ }
586
+ const NcCollectionList = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-efe8beb8"]]);
587
+ export {
588
+ NcCollectionList as N
589
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcCollectionList-B8r2GWp5.mjs","sources":["../../src/components/NcCollectionList/NcCollectionListItem.vue","../../src/components/NcCollectionList/service.ts","../../src/components/NcCollectionList/useCollections.js","../../src/components/NcCollectionList/NcCollectionList.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<li class=\"collection-list-item\">\n\t\t<NcAvatar :display-name=\"collection.name\" allow-placeholder class=\"collection-avatar\" />\n\t\t<span v-if=\"newName === null\"\n\t\t\tclass=\"collection-item-name\"\n\t\t\ttitle=\"\"\n\t\t\t@click=\"showDetails\">{{ collection.name }}</span>\n\t\t<form v-else :class=\"{'should-shake': error }\" @submit.prevent=\"renameCollection\">\n\t\t\t<input v-model=\"newName\"\n\t\t\t\ttype=\"text\"\n\t\t\t\tautocomplete=\"off\"\n\t\t\t\tautocapitalize=\"off\">\n\t\t\t<input type=\"submit\" value=\"\" class=\"icon-confirm\">\n\t\t</form>\n\t\t<div v-if=\"!detailsOpen && newName === null\" class=\"linked-icons\">\n\t\t\t<component :is=\"getComponent(resource).component\"\n\t\t\t\tv-for=\"resource in resources.slice(0, 2)\"\n\t\t\t\t:key=\"resource.type + '|' + resource.id\"\n\t\t\t\t:title=\"resource.name\"\n\t\t\t\t:to=\"getComponent(resource).to\"\n\t\t\t\t:href=\"getComponent(resource).href\"\n\t\t\t\t:class=\"typeClass(resource)\">\n\t\t\t\t<img :src=\"iconUrl(resource)\" :alt=\"resource.name\">\n\t\t\t</component>\n\t\t</div>\n\n\t\t<span v-if=\"newName === null\" class=\"sharingOptionsGroup\">\n\t\t\t<NcActions>\n\t\t\t\t<NcActionButton icon=\"icon-info\"\n\t\t\t\t\t@click.prevent=\"toggleDetails\">\n\t\t\t\t\t{{ detailsOpen ? t('Hide details') : t('Show details') }}\n\t\t\t\t</NcActionButton>\n\t\t\t\t<NcActionButton icon=\"icon-rename\"\n\t\t\t\t\t@click.prevent=\"openRename\">\n\t\t\t\t\t{{ t('Rename project') }}\n\t\t\t\t</NcActionButton>\n\t\t\t</NcActions>\n\t\t</span>\n\n\t\t<transition name=\"fade\">\n\t\t\t<div v-if=\"error\" class=\"error\">\n\t\t\t\t{{ error }}\n\t\t\t</div>\n\t\t</transition>\n\t\t<transition name=\"fade\">\n\t\t\t<ul v-if=\"detailsOpen\" class=\"resource-list-details\">\n\t\t\t\t<li v-for=\"resource in resources\"\n\t\t\t\t\t:key=\"resource.type + '|' + resource.id\"\n\t\t\t\t\t:class=\"typeClass(resource)\">\n\t\t\t\t\t<component :is=\"getComponent(resource).component\"\n\t\t\t\t\t\t:to=\"getComponent(resource).to\"\n\t\t\t\t\t\t:href=\"getComponent(resource).href\">\n\t\t\t\t\t\t<img :src=\"iconUrl(resource)\" :alt=\"resource.name\">\n\t\t\t\t\t\t<span class=\"resource-name\">{{ resource.name || '' }}</span>\n\t\t\t\t\t</component>\n\t\t\t\t\t<span class=\"icon-close\" @click=\"removeResource(collection, resource)\" />\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</transition>\n\t</li>\n</template>\n\n<script>\nimport { t } from '../../l10n.js'\nimport { getRoute } from '../NcRichText/autolink.ts'\n\nimport NcActions from '../NcActions/index.js'\nimport NcActionButton from '../NcActionButton/index.js'\nimport NcAvatar from '../NcAvatar/index.js'\n\nexport default {\n\tname: 'NcCollectionListItem',\n\n\tcomponents: {\n\t\tNcAvatar,\n\t\tNcActions,\n\t\tNcActionButton,\n\t},\n\n\tprops: {\n\t\tcollection: {\n\t\t\ttype: Object,\n\t\t\tdefault: null,\n\t\t},\n\n\t\terror: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t},\n\n\temits: ['remove-resource', 'rename-collection'],\n\n\tdata() {\n\t\treturn {\n\t\t\tdetailsOpen: false,\n\t\t\tnewName: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tgetIcon() {\n\t\t\treturn (resource) => [resource.iconClass]\n\t\t},\n\n\t\ttypeClass() {\n\t\t\treturn (resource) => 'resource-type-' + resource.type\n\t\t},\n\n\t\tresources() {\n\t\t\t// invalid resources come from server as empty array ([]) and not an object\n\t\t\treturn this.collection.resources?.filter(resource => !Array.isArray(resource)) ?? []\n\t\t},\n\n\t\tgetComponent() {\n\t\t\treturn (resource) => {\n\t\t\t\tconst route = getRoute(this.$router, resource.link)\n\n\t\t\t\treturn route\n\t\t\t\t\t? { component: 'router-link', to: route, href: undefined }\n\t\t\t\t\t: { component: 'a', to: undefined, href: resource.link }\n\t\t\t}\n\t\t},\n\n\t\ticonUrl() {\n\t\t\treturn (resource) => {\n\t\t\t\tif (resource.mimetype) {\n\t\t\t\t\treturn OC.MimeType.getIconUrl(resource.mimetype)\n\t\t\t\t}\n\t\t\t\tif (resource.iconUrl) {\n\t\t\t\t\treturn resource.iconUrl\n\t\t\t\t}\n\t\t\t\treturn ''\n\t\t\t}\n\t\t},\n\t},\n\n\tmethods: {\n\t\tt,\n\n\t\ttoggleDetails() {\n\t\t\tthis.detailsOpen = !this.detailsOpen\n\t\t},\n\n\t\tshowDetails() {\n\t\t\tthis.detailsOpen = true\n\t\t},\n\n\t\tremoveResource(collection, resource) {\n\t\t\tthis.$emit('remove-resource', {\n\t\t\t\tcollectionId: collection.id,\n\t\t\t\tresourceType: resource.type,\n\t\t\t\tresourceId: resource.id,\n\t\t\t})\n\t\t},\n\n\t\topenRename() {\n\t\t\tthis.newName = this.collection.name\n\t\t},\n\n\t\trenameCollection() {\n\t\t\tif (this.newName) {\n\t\t\t\tthis.$emit('rename-collection', {\n\t\t\t\t\tcollectionId: this.collection.id,\n\t\t\t\t\tname: this.newName,\n\t\t\t\t})\n\t\t\t}\n\t\t\tthis.newName = null\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.fade-enter-active, .fade-leave-active {\n\ttransition: opacity .3s ease;\n}\n\n.fade-enter, .fade-leave-to\n\t/* .fade-leave-active below version 2.1.8 */\n{\n\topacity: 0;\n}\n\n.linked-icons {\n\tdisplay: flex;\n\n\timg {\n\t\tpadding: 12px;\n\t\theight: 44px;\n\t\tdisplay: block;\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center;\n\t\topacity: 0.7;\n\n\t\t&:hover {\n\t\t\topacity: 1;\n\t\t}\n\t}\n}\n\n.popovermenu {\n\tdisplay: none;\n\n\t&.open {\n\t\tdisplay: block;\n\t}\n}\n\nli.collection-list-item {\n\tflex-wrap: wrap;\n\theight: auto;\n\tcursor: pointer;\n\tmargin-bottom: 0 !important;\n\n\t.collection-avatar {\n\t\tmargin-top: 0;\n\t}\n\n\tform, .collection-item-name {\n\t\tflex-basis: 10%;\n\t\tflex-grow: 1;\n\t\tdisplay: flex;\n\t}\n\n\t.collection-item-name {\n\t\tpadding: 12px 9px;\n\t}\n\n\tinput {\n\t\tmargin-top: 4px;\n\t\tborder-color: var(--color-border-maxcontrast);\n\n\t\t&[type=text] {\n\t\t\tflex-grow: 1;\n\t\t}\n\t}\n\n\t.error {\n\t\tflex-basis: 100%;\n\t\twidth: 100%;\n\t}\n\n\t.resource-list-details {\n\t\tflex-basis: 100%;\n\t\twidth: 100%;\n\n\t\tli {\n\t\t\tdisplay: flex;\n\t\t\tmargin-left: 44px;\n\t\t\tborder-radius: 3px;\n\t\t\tcursor: pointer;\n\n\t\t\t&:hover {\n\t\t\t\tbackground-color: var(--color-background-dark);\n\t\t\t}\n\n\t\t\ta {\n\t\t\t\tflex-grow: 1;\n\t\t\t\tpadding: 3px;\n\t\t\t\tmax-width: calc(100% - 30px);\n\t\t\t\tdisplay: flex;\n\t\t\t}\n\t\t}\n\n\t\tspan {\n\t\t\tdisplay: inline-block;\n\t\t\tvertical-align: top;\n\t\t\tmargin-right: 10px;\n\t\t}\n\n\t\tspan.resource-name {\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\t\t\tposition: relative;\n\t\t\tvertical-align: top;\n\t\t\twhite-space: nowrap;\n\t\t\tflex-grow: 1;\n\t\t\tpadding: 4px;\n\t\t}\n\n\t\timg {\n\t\t\twidth: 24px;\n\t\t\theight: 24px;\n\t\t}\n\n\t\t.icon-close {\n\t\t\topacity: .7;\n\n\t\t\t&:hover, &:focus {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.should-shake {\n\tanimation: shake 0.6s 1 linear;\n}\n\n@keyframes shake {\n\t0% {\n\t\ttransform: translate(15px);\n\t}\n\t20% {\n\t\ttransform: translate(-15px);\n\t}\n\t40% {\n\t\ttransform: translate(7px);\n\t}\n\t60% {\n\t\ttransform: translate(-7px);\n\t}\n\t80% {\n\t\ttransform: translate(3px);\n\t}\n\t100% {\n\t\ttransform: translate(0px);\n\t}\n}\n</style>\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios, { type AxiosResponse } from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport type { OCSResponse } from '@nextcloud/typings/ocs'\n\n/**\n * Extracts the OCS data from a response\n * @param response OCS response\n */\nfunction extractOcsData(response: AxiosResponse<OCSResponse>) {\n\treturn response.data.ocs.data\n}\n\n/**\n * Lists all collections\n * @param collectionId Collection ID\n */\nexport function listCollectionService(collectionId: number) {\n\treturn axios.get(generateOcsUrl('collaboration/resources/collections/{collectionId}', { collectionId })).then(extractOcsData)\n}\n\n/**\n * Renames a collection\n * @param collectionId Collection ID\n * @param collectionName New collection name\n */\nexport function renameCollectionService(collectionId: number, collectionName: string) {\n\treturn axios.put(generateOcsUrl('collaboration/resources/collections/{collectionId}', { collectionId }), { collectionName }).then(extractOcsData)\n}\n\n/**\n * Lists all collections for a resource\n * @param resourceType Resource type\n * @param resourceId Resource ID\n */\nexport function getCollectionsByResourceService(resourceType: string, resourceId: string) {\n\treturn axios.get(generateOcsUrl('collaboration/resources/{resourceType}/{resourceId}', { resourceType, resourceId })).then(extractOcsData)\n}\n\n/**\n * Creates a collection\n * @param resourceType Resource type\n * @param resourceId Resource ID\n * @param name Collection name\n */\nexport function createCollectionService(resourceType: string, resourceId: string, name: string) {\n\treturn axios.post(generateOcsUrl('collaboration/resources/{resourceType}/{resourceId}', { resourceType, resourceId }), { name }).then(extractOcsData)\n}\n\n/**\n * Adds a resource to a collection\n * @param collectionId Collection ID\n * @param resourceType Resource type\n * @param resourceId Resource ID\n */\nexport function addResourceService(collectionId: number, resourceType: string, resourceId: string) {\n\treturn axios.post(generateOcsUrl('collaboration/resources/collections/{collectionId}', { collectionId }), { resourceType, resourceId }).then(extractOcsData)\n}\n\n/**\n * Removes a resource from a collection\n * @param collectionId Collection ID\n * @param resourceType Resource type\n * @param resourceId Resource ID\n */\nexport function removeResourceService(collectionId: number, resourceType: string, resourceId: string) {\n\treturn axios.delete(generateOcsUrl('collaboration/resources/collections/{collectionId}', { collectionId }), { params: { resourceType, resourceId } }).then(extractOcsData)\n}\n\n/**\n * Searches for collections\n * @param query Search query\n */\nexport function searchService(query: string) {\n\treturn axios.get(generateOcsUrl('collaboration/resources/collections/search/{query}', { query })).then(extractOcsData)\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { ref } from 'vue'\nimport {\n\trenameCollectionService,\n\tgetCollectionsByResourceService,\n\tcreateCollectionService,\n\taddResourceService,\n\tremoveResourceService,\n} from './service.ts'\n\n/**\n * Use collections composable\n */\nexport function useCollections() {\n\t// State\n\tconst storedCollections = ref([])\n\n\t// Mutations\n\tconst addCollections = (collections) => {\n\t\tstoredCollections.value = collections\n\t}\n\n\tconst addCollection = (collection) => {\n\t\tstoredCollections.value.push(collection)\n\t}\n\n\tconst removeCollection = (collectionId) => {\n\t\tstoredCollections.value = storedCollections.value.filter(item => item.id !== collectionId)\n\t}\n\n\tconst updateCollection = (collection) => {\n\t\tconst index = storedCollections.value.findIndex(item => item.id === collection.id)\n\t\tif (index !== -1) {\n\t\t\tstoredCollections.value[index] = collection\n\t\t} else {\n\t\t\taddCollection(collection)\n\t\t}\n\t}\n\n\t// Actions\n\tconst fetchCollectionsByResource = async ({ resourceType, resourceId }) => {\n\t\tconst collections = await getCollectionsByResourceService(resourceType, resourceId)\n\n\t\taddCollections(collections)\n\t}\n\n\tconst createCollection = async ({ baseResourceType, baseResourceId, resourceType, resourceId, name }) => {\n\t\tconst collection = await createCollectionService(baseResourceType, baseResourceId, name)\n\n\t\taddCollection(collection)\n\t\tawait addResourceToCollection({\n\t\t\tcollectionId: collection.id,\n\t\t\tresourceType,\n\t\t\tresourceId,\n\t\t})\n\t}\n\n\tconst renameCollection = async ({ collectionId, name }) => {\n\t\tconst collection = await renameCollectionService(collectionId, name)\n\n\t\tupdateCollection(collection)\n\t}\n\n\tconst addResourceToCollection = async ({ collectionId, resourceType, resourceId }) => {\n\t\tconst collection = await addResourceService(collectionId, resourceType, String(resourceId))\n\n\t\tupdateCollection(collection)\n\t}\n\n\tconst removeResourceFromCollection = async ({ collectionId, resourceType, resourceId }) => {\n\t\tconst collection = await removeResourceService(collectionId, resourceType, String(resourceId))\n\n\t\tif (collection.resources.length > 0) {\n\t\t\tupdateCollection(collection)\n\t\t} else {\n\t\t\tremoveCollection(collectionId)\n\t\t}\n\t}\n\n\treturn {\n\t\tstoredCollections,\n\t\tfetchCollectionsByResource,\n\t\tcreateCollection,\n\t\trenameCollection,\n\t\taddResourceToCollection,\n\t\tremoveResourceFromCollection,\n\t}\n}\n","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nProvides a Vue standalone component for Nextcloud Projects feature introduced in Nextcloud 16. Replaces deprecated `nextcloud-vue-collections` library.\n\nProjects feature is deprecated since Nextcloud 25, and superseded by Related resources. See [NcRelatedResourcesPanel](#/Components/NcRelatedResourcesPanel) documentation for more information.\n\n### Usage\n\nTo enable feature in Nextcloud, run following command:\n```sh\nocc config:system:set --value true 'projects.enabled'\n```\n</docs>\n\n<template>\n\t<ul v-if=\"collections && type && id\" id=\"collection-list\" class=\"collection-list\">\n\t\t<li @click=\"showSelect\">\n\t\t\t<div class=\"avatar\">\n\t\t\t\t<span class=\"icon-projects\" />\n\t\t\t</div>\n\t\t\t<div id=\"collection-select-container\">\n\t\t\t\t<NcSelect ref=\"select\"\n\t\t\t\t\tv-model=\"value\"\n\t\t\t\t\t:aria-label-combobox=\"t('Add to a project')\"\n\t\t\t\t\t:options=\"options\"\n\t\t\t\t\t:placeholder=\"placeholder\"\n\t\t\t\t\tlabel=\"title\"\n\t\t\t\t\t:limit=\"5\"\n\t\t\t\t\t@close=\"isSelectOpen = false\"\n\t\t\t\t\t@open=\"isSelectOpen = true\"\n\t\t\t\t\t@option:selected=\"select\"\n\t\t\t\t\t@search=\"search\">\n\t\t\t\t\t<template #selected-option=\"option\">\n\t\t\t\t\t\t<span class=\"option__desc\">\n\t\t\t\t\t\t\t<span class=\"option__title\">{{ option.title }}</span>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</template>\n\t\t\t\t\t<template #option=\"option\">\n\t\t\t\t\t\t<span class=\"option__wrapper\">\n\t\t\t\t\t\t\t<span v-if=\"option.class\" :class=\"option.class\" class=\"avatar\" />\n\t\t\t\t\t\t\t<NcAvatar v-else-if=\"option.method !== 2\" allow-placeholder :display-name=\"option.title\" />\n\t\t\t\t\t\t\t<span class=\"option__title\">{{ option.title }}</span>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</template>\n\t\t\t\t\t<p class=\"hint\">\n\t\t\t\t\t\t{{ t('Connect items to a project to make them easier to find') }}\n\t\t\t\t\t</p>\n\t\t\t\t</NcSelect>\n\t\t\t</div>\n\t\t</li>\n\t\t<transition name=\"fade\">\n\t\t\t<li v-if=\"error\" class=\"error\">\n\t\t\t\t{{ error }}\n\t\t\t</li>\n\t\t</transition>\n\t\t<NcCollectionListItem v-for=\"collection in collections\"\n\t\t\t:key=\"collection.id\"\n\t\t\t:collection=\"collection\"\n\t\t\t:error=\"collectionsError[collection.id]\"\n\t\t\t@rename-collection=\"renameCollectionFromItem\"\n\t\t\t@remove-resource=\"removeResourceFromCollection\" />\n\t</ul>\n</template>\n\n<script>\nimport debounce from 'debounce'\nimport { ref } from 'vue'\nimport { t } from '../../l10n.js'\n\nimport NcAvatar from '../NcAvatar/index.js'\nimport NcSelect from '../NcSelect/index.js'\nimport NcCollectionListItem from './NcCollectionListItem.vue'\n\nimport { useCollections } from './useCollections.js'\nimport { searchService } from './service.ts'\n\nconst METHOD_CREATE_COLLECTION = 0\nconst METHOD_ADD_TO_COLLECTION = 1\n\nexport default {\n\tname: 'NcCollectionList',\n\n\tcomponents: {\n\t\tNcCollectionListItem,\n\t\tNcAvatar,\n\t\tNcSelect,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Resource type identifier\n\t\t */\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * Unique id of the resource\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * Name of the resource\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * Whether the component is active (to start fetch resources)\n\t\t */\n\t\tisActive: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\n\tsetup() {\n\t\tconst {\n\t\t\tstoredCollections,\n\t\t\tfetchCollectionsByResource,\n\t\t\tcreateCollection,\n\t\t\taddResourceToCollection,\n\t\t\tremoveResourceFromCollection,\n\t\t\trenameCollection,\n\t\t} = useCollections()\n\n\t\tconst searchCollections = ref([])\n\t\tconst search = debounce(function(query, loading) {\n\t\t\tif (query !== '') {\n\t\t\t\tloading(true)\n\t\t\t\tsearchService(query).then(collections => {\n\t\t\t\t\tsearchCollections.value = collections\n\t\t\t\t}).catch(e => {\n\t\t\t\t\tconsole.error('Failed to search for collections', e)\n\t\t\t\t}).finally(() => {\n\t\t\t\t\tloading(false)\n\t\t\t\t})\n\t\t\t}\n\t\t}, 500)\n\n\t\treturn {\n\t\t\tstoredCollections,\n\t\t\tfetchCollectionsByResource,\n\t\t\tcreateCollection,\n\t\t\taddResourceToCollection,\n\t\t\tremoveResourceFromCollection,\n\t\t\trenameCollection,\n\t\t\tsearchCollections,\n\t\t\tsearch,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tselectIsOpen: false,\n\t\t\tgeneratingCodes: false,\n\t\t\tcodes: undefined,\n\t\t\tvalue: null,\n\t\t\tmodel: {},\n\t\t\tcollectionsError: {},\n\t\t\terror: null,\n\t\t\tisSelectOpen: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tcollections() {\n\t\t\treturn this.storedCollections.filter(collection => collection.resources\n\t\t\t\t.some(resource => resource && resource.id === String(this.id) && resource.type === this.type),\n\t\t\t)\n\t\t},\n\n\t\tplaceholder() {\n\t\t\treturn this.isSelectOpen\n\t\t\t\t? t('Type to search for existing projects')\n\t\t\t\t: t('Add to a project')\n\t\t},\n\n\t\toptions() {\n\t\t\tconst options = []\n\t\t\twindow.OCP.Collaboration.getTypes().sort().forEach(type => {\n\t\t\t\toptions.push({\n\t\t\t\t\tmethod: METHOD_CREATE_COLLECTION,\n\t\t\t\t\ttype,\n\t\t\t\t\ttitle: window.OCP.Collaboration.getLabel(type),\n\t\t\t\t\tclass: window.OCP.Collaboration.getIcon(type),\n\t\t\t\t\taction: () => window.OCP.Collaboration.trigger(type),\n\t\t\t\t})\n\t\t\t})\n\t\t\tfor (const index in this.searchCollections) {\n\t\t\t\tif (!this.collections.find(collection => collection.id === this.searchCollections[index].id)) {\n\t\t\t\t\toptions.push({\n\t\t\t\t\t\tmethod: METHOD_ADD_TO_COLLECTION,\n\t\t\t\t\t\ttitle: this.searchCollections[index].name,\n\t\t\t\t\t\tcollectionId: this.searchCollections[index].id,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn options\n\t\t},\n\n\t\tresourceIdentifier() {\n\t\t\treturn {\n\t\t\t\tresourceType: this.type,\n\t\t\t\tresourceId: this.id,\n\t\t\t\tisActive: this.isActive,\n\t\t\t}\n\t\t},\n\t},\n\n\twatch: {\n\t\tresourceIdentifier: {\n\t\t\tdeep: true,\n\t\t\timmediate: true,\n\t\t\thandler(resourceIdentifier) {\n\t\t\t\tif (!resourceIdentifier.isActive || !resourceIdentifier.resourceId || !resourceIdentifier.resourceType) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tthis.fetchCollectionsByResource(resourceIdentifier)\n\t\t\t},\n\t\t},\n\t},\n\n\tmethods: {\n\t\tt,\n\n\t\tselect(selectedOption) {\n\t\t\tif (selectedOption.method === METHOD_CREATE_COLLECTION) {\n\t\t\t\tselectedOption.action().then(resourceId => {\n\t\t\t\t\tthis.createCollection({\n\t\t\t\t\t\tbaseResourceType: this.type,\n\t\t\t\t\t\tbaseResourceId: this.id,\n\t\t\t\t\t\tresourceType: selectedOption.type,\n\t\t\t\t\t\tresourceId,\n\t\t\t\t\t\tname: this.name,\n\t\t\t\t\t}).catch((e) => {\n\t\t\t\t\t\tthis.setError(t('Failed to create a project'), e)\n\t\t\t\t\t})\n\t\t\t\t}).catch((e) => {\n\t\t\t\t\tconsole.error('No resource selected', e)\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (selectedOption.method === METHOD_ADD_TO_COLLECTION) {\n\t\t\t\tthis.addResourceToCollection({\n\t\t\t\t\tcollectionId: selectedOption.collectionId, resourceType: this.type, resourceId: this.id,\n\t\t\t\t}).catch((e) => {\n\t\t\t\t\tthis.setError(t('Failed to add the item to the project'), e)\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tthis.value = null\n\t\t},\n\n\t\tshowSelect() {\n\t\t\tthis.selectIsOpen = true\n\t\t\tthis.$refs.select.$el.focus()\n\t\t},\n\n\t\tsetError(error, e) {\n\t\t\tconsole.error(error, e)\n\t\t\tthis.error = error\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.error = null\n\t\t\t}, 5000)\n\t\t},\n\n\t\trenameCollectionFromItem({ collectionId, name }) {\n\t\t\tthis.renameCollection({ collectionId, name })\n\t\t\t\t.catch((e) => {\n\t\t\t\t\tconsole.error(t('Failed to rename the project'), e)\n\t\t\t\t\tthis.collectionsError[collectionId] = t('Failed to rename the project')\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tthis.collectionsError[collectionId] = null\n\t\t\t\t\t}, 5000)\n\t\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.collection-list * {\n\tbox-sizing: border-box;\n}\n\n.collection-list > li {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 12px;\n\n\t& > .avatar {\n\t\tmargin-top: 0;\n\t}\n}\n\n#collection-select-container {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.v-select {\n\t// NcAvatar in the dropdown\n\tspan.avatar {\n\t\tdisplay: block;\n\t\tpadding: 16px;\n\t\topacity: .7;\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center;\n\n\t\t&:hover {\n\t\t\topacity: 1;\n\t\t}\n\t}\n}\n\np.hint {\n\tz-index: 1;\n\t// fix alignment\n\tmargin-top: -16px;\n\tpadding: 8px 8px;\n\tcolor: var(--color-text-maxcontrast);\n\tline-height: normal;\n}\n\ndiv.avatar {\n\twidth: 32px;\n\theight: 32px;\n\tmargin: 0;\n\tpadding: 8px;\n\tbackground-color: var(--color-background-dark);\n\tmargin-top: 30px;\n}\n\n/** TODO provide white icon in core */\n.icon-projects {\n\tdisplay: block;\n\tpadding: 8px;\n\tbackground-repeat: no-repeat;\n\tbackground-position: center;\n}\n\n.option__wrapper {\n\tdisplay: flex;\n\n\t.avatar {\n\t\tdisplay: block;\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tbackground-color: var(--color-background-darker) !important;\n\t}\n\n\t.option__title {\n\t\tpadding: 4px;\n\t}\n}\n\n.fade-enter-active, .fade-leave-active {\n\ttransition: opacity .5s;\n}\n\n.fade-enter, .fade-leave-to {\n\topacity: 0;\n}\n\n</style>\n"],"names":["_sfc_main","_hoisted_1","_createElementVNode","_hoisted_4","_hoisted_8","_hoisted_9","_openBlock","_createElementBlock","_createVNode","_toDisplayString","_normalizeClass","_withModifiers","_hoisted_2","_hoisted_3","_Fragment","_renderList","_createBlock","_resolveDynamicComponent","_withCtx","_createCommentVNode","_hoisted_5","_createTextVNode","_Transition","_hoisted_6","_hoisted_7"],"mappings":"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"}