@nextcloud/vue 8.33.0 → 8.34.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 (461) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +2 -2
  3. package/dist/Components/NcActionButton.cjs +1 -1
  4. package/dist/Components/NcActionButton.mjs +1 -1
  5. package/dist/Components/NcActionButtonGroup.cjs +1 -1
  6. package/dist/Components/NcActionButtonGroup.mjs +1 -1
  7. package/dist/Components/NcActionInput.cjs +1 -1
  8. package/dist/Components/NcActionInput.mjs +1 -1
  9. package/dist/Components/NcActionTextEditable.cjs +1 -1
  10. package/dist/Components/NcActionTextEditable.mjs +1 -1
  11. package/dist/Components/NcActions.cjs +1 -1
  12. package/dist/Components/NcActions.mjs +1 -1
  13. package/dist/Components/NcAppContent.cjs +1 -1
  14. package/dist/Components/NcAppContent.mjs +1 -1
  15. package/dist/Components/NcAppNavigation.cjs +1 -1
  16. package/dist/Components/NcAppNavigation.mjs +1 -1
  17. package/dist/Components/NcAppNavigationCaption.cjs +1 -1
  18. package/dist/Components/NcAppNavigationCaption.mjs +1 -1
  19. package/dist/Components/NcAppNavigationItem.cjs +1 -1
  20. package/dist/Components/NcAppNavigationItem.mjs +1 -1
  21. package/dist/Components/NcAppNavigationNewItem.cjs +1 -1
  22. package/dist/Components/NcAppNavigationNewItem.mjs +1 -1
  23. package/dist/Components/NcAppNavigationSearch.cjs +1 -1
  24. package/dist/Components/NcAppNavigationSearch.mjs +1 -1
  25. package/dist/Components/NcAppNavigationSettings.cjs +1 -1
  26. package/dist/Components/NcAppNavigationSettings.mjs +1 -1
  27. package/dist/Components/NcAppNavigationToggle.cjs +1 -1
  28. package/dist/Components/NcAppNavigationToggle.mjs +1 -1
  29. package/dist/Components/NcAppSettingsDialog.cjs +1 -1
  30. package/dist/Components/NcAppSettingsDialog.mjs +1 -1
  31. package/dist/Components/NcAppSettingsSection.cjs +1 -1
  32. package/dist/Components/NcAppSettingsSection.mjs +1 -1
  33. package/dist/Components/NcAppSettingsSectionShortcuts.cjs +2 -2
  34. package/dist/Components/NcAppSettingsSectionShortcuts.mjs +1 -1
  35. package/dist/Components/NcAppSettingsShortcutsSection.cjs +4 -0
  36. package/dist/Components/NcAppSettingsShortcutsSection.cjs.map +1 -0
  37. package/dist/Components/NcAppSettingsShortcutsSection.mjs +5 -0
  38. package/dist/Components/NcAppSettingsShortcutsSection.mjs.map +1 -0
  39. package/dist/Components/NcAppSidebar.cjs +1 -1
  40. package/dist/Components/NcAppSidebar.mjs +1 -1
  41. package/dist/Components/NcAssistantButton.cjs +1 -1
  42. package/dist/Components/NcAssistantButton.mjs +1 -1
  43. package/dist/Components/NcAssistantIcon.cjs +1 -1
  44. package/dist/Components/NcAssistantIcon.mjs +1 -1
  45. package/dist/Components/NcAvatar.cjs +1 -1
  46. package/dist/Components/NcAvatar.mjs +1 -1
  47. package/dist/Components/NcBreadcrumb.cjs +1 -1
  48. package/dist/Components/NcBreadcrumb.mjs +1 -1
  49. package/dist/Components/NcBreadcrumbs.cjs +1 -1
  50. package/dist/Components/NcBreadcrumbs.mjs +1 -1
  51. package/dist/Components/NcCheckboxRadioSwitch.cjs +1 -1
  52. package/dist/Components/NcCheckboxRadioSwitch.mjs +1 -1
  53. package/dist/Components/NcChip.cjs +4 -4
  54. package/dist/Components/NcChip.mjs +4 -4
  55. package/dist/Components/NcCollectionList.cjs +1 -1
  56. package/dist/Components/NcCollectionList.mjs +1 -1
  57. package/dist/Components/NcColorPicker.cjs +1 -1
  58. package/dist/Components/NcColorPicker.mjs +1 -1
  59. package/dist/Components/NcContent.cjs +1 -1
  60. package/dist/Components/NcContent.mjs +1 -1
  61. package/dist/Components/NcDashboardWidget.cjs +1 -1
  62. package/dist/Components/NcDashboardWidget.mjs +1 -1
  63. package/dist/Components/NcDashboardWidgetItem.cjs +1 -1
  64. package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
  65. package/dist/Components/NcDateTimePicker.cjs +5 -5
  66. package/dist/Components/NcDateTimePicker.mjs +5 -5
  67. package/dist/Components/NcDateTimePickerNative.cjs +1 -1
  68. package/dist/Components/NcDateTimePickerNative.mjs +1 -1
  69. package/dist/Components/NcDialog.cjs +1 -1
  70. package/dist/Components/NcDialog.mjs +1 -1
  71. package/dist/Components/NcDialogButton.cjs +1 -1
  72. package/dist/Components/NcDialogButton.mjs +1 -1
  73. package/dist/Components/NcEmojiPicker.cjs +1 -1
  74. package/dist/Components/NcEmojiPicker.mjs +1 -1
  75. package/dist/Components/NcFormBox.cjs +4 -0
  76. package/dist/Components/NcFormBox.cjs.map +1 -0
  77. package/dist/Components/NcFormBox.mjs +5 -0
  78. package/dist/Components/NcFormBox.mjs.map +1 -0
  79. package/dist/Components/NcFormBoxButton.cjs +4 -0
  80. package/dist/Components/NcFormBoxButton.cjs.map +1 -0
  81. package/dist/Components/NcFormBoxButton.mjs +5 -0
  82. package/dist/Components/NcFormBoxButton.mjs.map +1 -0
  83. package/dist/Components/NcFormBoxCopyButton.cjs +4 -0
  84. package/dist/Components/NcFormBoxCopyButton.cjs.map +1 -0
  85. package/dist/Components/NcFormBoxCopyButton.mjs +5 -0
  86. package/dist/Components/NcFormBoxCopyButton.mjs.map +1 -0
  87. package/dist/Components/NcFormBoxSwitch.cjs +4 -0
  88. package/dist/Components/NcFormBoxSwitch.cjs.map +1 -0
  89. package/dist/Components/NcFormBoxSwitch.mjs +5 -0
  90. package/dist/Components/NcFormBoxSwitch.mjs.map +1 -0
  91. package/dist/Components/NcFormGroup.cjs +4 -0
  92. package/dist/Components/NcFormGroup.cjs.map +1 -0
  93. package/dist/Components/NcFormGroup.mjs +5 -0
  94. package/dist/Components/NcFormGroup.mjs.map +1 -0
  95. package/dist/Components/NcHotkey.cjs +1 -1
  96. package/dist/Components/NcHotkey.mjs +1 -1
  97. package/dist/Components/NcHotkeyList.cjs +1 -1
  98. package/dist/Components/NcHotkeyList.mjs +1 -1
  99. package/dist/Components/NcKbd.cjs +1 -1
  100. package/dist/Components/NcKbd.mjs +1 -1
  101. package/dist/Components/NcListItem.cjs +1 -1
  102. package/dist/Components/NcListItem.mjs +1 -1
  103. package/dist/Components/NcListItemIcon.cjs +1 -1
  104. package/dist/Components/NcListItemIcon.mjs +1 -1
  105. package/dist/Components/NcModal.cjs +5 -5
  106. package/dist/Components/NcModal.mjs +5 -5
  107. package/dist/Components/NcPasswordField.cjs +1 -1
  108. package/dist/Components/NcPasswordField.mjs +1 -1
  109. package/dist/Components/NcRadioGroup.cjs +1 -1
  110. package/dist/Components/NcRadioGroup.mjs +1 -1
  111. package/dist/Components/NcRadioGroupButton.cjs +1 -1
  112. package/dist/Components/NcRadioGroupButton.mjs +1 -1
  113. package/dist/Components/NcRelatedResourcesPanel.cjs +1 -1
  114. package/dist/Components/NcRelatedResourcesPanel.mjs +1 -1
  115. package/dist/Components/NcRichContenteditable.cjs +1 -1
  116. package/dist/Components/NcRichContenteditable.mjs +1 -1
  117. package/dist/Components/NcRichText.cjs +2 -2
  118. package/dist/Components/NcRichText.mjs +3 -3
  119. package/dist/Components/NcSelect.cjs +1 -1
  120. package/dist/Components/NcSelect.mjs +1 -1
  121. package/dist/Components/NcSelectTags.cjs +1 -1
  122. package/dist/Components/NcSelectTags.mjs +1 -1
  123. package/dist/Components/NcSelectUsers.cjs +1 -1
  124. package/dist/Components/NcSelectUsers.mjs +1 -1
  125. package/dist/Components/NcSettingsInputText.cjs +1 -1
  126. package/dist/Components/NcSettingsInputText.mjs +1 -1
  127. package/dist/Components/NcSettingsSection.cjs +1 -1
  128. package/dist/Components/NcSettingsSection.mjs +1 -1
  129. package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
  130. package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
  131. package/dist/Components/NcTextField.cjs +1 -1
  132. package/dist/Components/NcTextField.mjs +1 -1
  133. package/dist/Components/NcTimezonePicker.cjs +1 -1
  134. package/dist/Components/NcTimezonePicker.mjs +1 -1
  135. package/dist/Components/NcUserBubble.cjs +1 -1
  136. package/dist/Components/NcUserBubble.mjs +1 -1
  137. package/dist/Components/NcUserStatusIcon.cjs +1 -1
  138. package/dist/Components/NcUserStatusIcon.mjs +1 -1
  139. package/dist/Composables/useFormatDateTime.cjs +1 -1
  140. package/dist/Composables/useFormatDateTime.mjs +1 -1
  141. package/dist/Functions/reference.cjs +1 -1
  142. package/dist/Functions/reference.mjs +1 -1
  143. package/dist/Functions/usernameToColor.cjs +1 -1
  144. package/dist/Functions/usernameToColor.mjs +1 -1
  145. package/dist/assets/{NcActions-B4-9qwLn.css → NcActions-Dfs69WGA.css} +11 -11
  146. package/dist/assets/{NcAppSettingsDialog-2axspyf-.css → NcAppSettingsDialog-TJ3aaiJI.css} +10 -10
  147. package/dist/assets/NcAppSettingsSection-Yg4NYCih.css +46 -0
  148. package/dist/assets/{NcDateTimePicker-BmMuUpwr.css → NcDateTimePicker-uS5WikmF.css} +8 -8
  149. package/dist/assets/NcFormBox-D-kcijXp.css +54 -0
  150. package/dist/assets/{NcAppSettingsSection-CLSVNQzv.css → NcFormBoxButton-C6EvdLK4.css} +13 -11
  151. package/dist/assets/NcFormBoxItem-j2nGdOvd.css +88 -0
  152. package/dist/assets/NcFormBoxSwitch-BmyNQCbA.css +37 -0
  153. package/dist/assets/NcFormGroup-BrD0Scm7.css +43 -0
  154. package/dist/assets/{NcHotkey-QklVKSyr.css → NcHotkey-4yi1Hobg.css} +10 -9
  155. package/dist/assets/NcHotkeyList-gAZN0WIu.css +8 -0
  156. package/dist/assets/{NcListItem-rxOwDYE-.css → NcListItem-Czbi1F0Q.css} +44 -44
  157. package/dist/assets/NcRadioGroup-1zpSX8V5.css +21 -0
  158. package/dist/assets/{NcRadioGroupButton-qxDfssOp.css → NcRadioGroupButton-DRZ1_-yY.css} +11 -19
  159. package/dist/assets/{NcRichContenteditable-CO5ziuZO.css → NcRichContenteditable-BjQ4qHUO.css} +11 -11
  160. package/dist/assets/{NcRichText-BpXupu1n.css → NcRichText-Cr-HXxVi.css} +92 -86
  161. package/dist/chunks/{NcActionButton-DSq_luox.cjs → NcActionButton-BWM7FD0z.cjs} +2 -2
  162. package/dist/chunks/{NcActionButton-DSq_luox.cjs.map → NcActionButton-BWM7FD0z.cjs.map} +1 -1
  163. package/dist/chunks/{NcActionButton-CD1Z-o2Y.mjs → NcActionButton-DykQxmXJ.mjs} +2 -2
  164. package/dist/chunks/{NcActionButton-CD1Z-o2Y.mjs.map → NcActionButton-DykQxmXJ.mjs.map} +1 -1
  165. package/dist/chunks/{NcActionButtonGroup-DKVCsZhH.cjs → NcActionButtonGroup-Bqp4vRGy.cjs} +2 -2
  166. package/dist/chunks/{NcActionButtonGroup-DKVCsZhH.cjs.map → NcActionButtonGroup-Bqp4vRGy.cjs.map} +1 -1
  167. package/dist/chunks/{NcActionButtonGroup-Bd-SOAHU.mjs → NcActionButtonGroup-Uol_nwut.mjs} +2 -2
  168. package/dist/chunks/{NcActionButtonGroup-Bd-SOAHU.mjs.map → NcActionButtonGroup-Uol_nwut.mjs.map} +1 -1
  169. package/dist/chunks/{NcActionInput-BMUreHhp.cjs → NcActionInput-BZGP5m4T.cjs} +5 -5
  170. package/dist/chunks/{NcActionInput-BMUreHhp.cjs.map → NcActionInput-BZGP5m4T.cjs.map} +1 -1
  171. package/dist/chunks/{NcActionInput-D4MLI-0P.mjs → NcActionInput-pjhToEAw.mjs} +5 -5
  172. package/dist/chunks/{NcActionInput-D4MLI-0P.mjs.map → NcActionInput-pjhToEAw.mjs.map} +1 -1
  173. package/dist/chunks/{NcActionTextEditable-5mNFl7Jm.mjs → NcActionTextEditable-Bnt0-S7Y.mjs} +2 -2
  174. package/dist/chunks/{NcActionTextEditable-5mNFl7Jm.mjs.map → NcActionTextEditable-Bnt0-S7Y.mjs.map} +1 -1
  175. package/dist/chunks/{NcActionTextEditable-C8B1qqqe.cjs → NcActionTextEditable-JAg35gIb.cjs} +2 -2
  176. package/dist/chunks/{NcActionTextEditable-C8B1qqqe.cjs.map → NcActionTextEditable-JAg35gIb.cjs.map} +1 -1
  177. package/dist/chunks/{NcActions-BvFVkIzX.mjs → NcActions-CpdT2y6O.mjs} +29 -31
  178. package/dist/chunks/NcActions-CpdT2y6O.mjs.map +1 -0
  179. package/dist/chunks/{NcActions-CF9VxHHD.cjs → NcActions-ykoV9rRj.cjs} +28 -30
  180. package/dist/chunks/NcActions-ykoV9rRj.cjs.map +1 -0
  181. package/dist/chunks/{NcAppContent-C7hwN-sU.mjs → NcAppContent-CABHzKrx.mjs} +3 -3
  182. package/dist/chunks/{NcAppContent-C7hwN-sU.mjs.map → NcAppContent-CABHzKrx.mjs.map} +1 -1
  183. package/dist/chunks/{NcAppContent-BSyhjn2J.cjs → NcAppContent-D2h4xrfv.cjs} +3 -3
  184. package/dist/chunks/{NcAppContent-BSyhjn2J.cjs.map → NcAppContent-D2h4xrfv.cjs.map} +1 -1
  185. package/dist/chunks/{NcAppNavigation-B2cKVKBH.mjs → NcAppNavigation-BKgpMjQN.mjs} +2 -2
  186. package/dist/chunks/{NcAppNavigation-B2cKVKBH.mjs.map → NcAppNavigation-BKgpMjQN.mjs.map} +1 -1
  187. package/dist/chunks/{NcAppNavigation-DApCpI_F.cjs → NcAppNavigation-D_pDitZ1.cjs} +2 -2
  188. package/dist/chunks/{NcAppNavigation-DApCpI_F.cjs.map → NcAppNavigation-D_pDitZ1.cjs.map} +1 -1
  189. package/dist/chunks/{NcAppNavigationCaption-BOHmVyQb.cjs → NcAppNavigationCaption-CO99po3G.cjs} +2 -2
  190. package/dist/chunks/{NcAppNavigationCaption-BOHmVyQb.cjs.map → NcAppNavigationCaption-CO99po3G.cjs.map} +1 -1
  191. package/dist/chunks/{NcAppNavigationCaption-bTauZtcw.mjs → NcAppNavigationCaption-CcWZR8rN.mjs} +2 -2
  192. package/dist/chunks/{NcAppNavigationCaption-bTauZtcw.mjs.map → NcAppNavigationCaption-CcWZR8rN.mjs.map} +1 -1
  193. package/dist/chunks/{NcAppNavigationItem-geCwhCsd.mjs → NcAppNavigationItem-BYWvtSRw.mjs} +6 -6
  194. package/dist/chunks/{NcAppNavigationItem-geCwhCsd.mjs.map → NcAppNavigationItem-BYWvtSRw.mjs.map} +1 -1
  195. package/dist/chunks/{NcAppNavigationItem-DbtR6u7Y.cjs → NcAppNavigationItem-Ca9CAehR.cjs} +6 -6
  196. package/dist/chunks/{NcAppNavigationItem-DbtR6u7Y.cjs.map → NcAppNavigationItem-Ca9CAehR.cjs.map} +1 -1
  197. package/dist/chunks/{NcAppNavigationNewItem-Dqnwa8Gl.cjs → NcAppNavigationNewItem-CwhxGiXO.cjs} +2 -2
  198. package/dist/chunks/{NcAppNavigationNewItem-Dqnwa8Gl.cjs.map → NcAppNavigationNewItem-CwhxGiXO.cjs.map} +1 -1
  199. package/dist/chunks/{NcAppNavigationNewItem-Yy56yPrn.mjs → NcAppNavigationNewItem-DUNLtTs8.mjs} +2 -2
  200. package/dist/chunks/{NcAppNavigationNewItem-Yy56yPrn.mjs.map → NcAppNavigationNewItem-DUNLtTs8.mjs.map} +1 -1
  201. package/dist/chunks/{NcAppNavigationSearch-pMlFjm9w.cjs → NcAppNavigationSearch-BC3LfUdL.cjs} +3 -3
  202. package/dist/chunks/{NcAppNavigationSearch-pMlFjm9w.cjs.map → NcAppNavigationSearch-BC3LfUdL.cjs.map} +1 -1
  203. package/dist/chunks/{NcAppNavigationSearch-WfL4IPD8.mjs → NcAppNavigationSearch-Ci8jz_C2.mjs} +3 -3
  204. package/dist/chunks/{NcAppNavigationSearch-WfL4IPD8.mjs.map → NcAppNavigationSearch-Ci8jz_C2.mjs.map} +1 -1
  205. package/dist/chunks/{NcAppNavigationSettings-BhK7vlfP.mjs → NcAppNavigationSettings-B29zrNPr.mjs} +4 -4
  206. package/dist/chunks/{NcAppNavigationSettings-BhK7vlfP.mjs.map → NcAppNavigationSettings-B29zrNPr.mjs.map} +1 -1
  207. package/dist/chunks/{NcAppNavigationSettings-C6qjJ3hF.cjs → NcAppNavigationSettings-Dt15jIbU.cjs} +4 -4
  208. package/dist/chunks/{NcAppNavigationSettings-C6qjJ3hF.cjs.map → NcAppNavigationSettings-Dt15jIbU.cjs.map} +1 -1
  209. package/dist/chunks/{NcAppNavigationToggle-8lSuagjd.cjs → NcAppNavigationToggle-Bk99wJ65.cjs} +2 -2
  210. package/dist/chunks/{NcAppNavigationToggle-8lSuagjd.cjs.map → NcAppNavigationToggle-Bk99wJ65.cjs.map} +1 -1
  211. package/dist/chunks/{NcAppNavigationToggle-DlnxjlcH.mjs → NcAppNavigationToggle-DtNWDe9v.mjs} +2 -2
  212. package/dist/chunks/{NcAppNavigationToggle-DlnxjlcH.mjs.map → NcAppNavigationToggle-DtNWDe9v.mjs.map} +1 -1
  213. package/dist/chunks/{NcAppSettingsDialog--RlMIfbo.cjs → NcAppSettingsDialog-C1mtjsnj.cjs} +9 -7
  214. package/dist/chunks/NcAppSettingsDialog-C1mtjsnj.cjs.map +1 -0
  215. package/dist/chunks/{NcAppSettingsDialog-8YaW7ud3.mjs → NcAppSettingsDialog-CF-oMoP_.mjs} +10 -8
  216. package/dist/chunks/NcAppSettingsDialog-CF-oMoP_.mjs.map +1 -0
  217. package/dist/chunks/{NcAppSettingsSection-DVrBPuLD.mjs → NcAppSettingsSection-Cq1VIzMR.mjs} +9 -7
  218. package/dist/chunks/NcAppSettingsSection-Cq1VIzMR.mjs.map +1 -0
  219. package/dist/chunks/{NcAppSettingsSection-OPWPqi2Y.cjs → NcAppSettingsSection-Q5PB51ht.cjs} +8 -6
  220. package/dist/chunks/NcAppSettingsSection-Q5PB51ht.cjs.map +1 -0
  221. package/dist/chunks/{NcAppSettingsSectionShortcuts-CdP-4ktS.mjs → NcAppSettingsShortcutsSection-C089rPL6.mjs} +7 -7
  222. package/dist/chunks/NcAppSettingsShortcutsSection-C089rPL6.mjs.map +1 -0
  223. package/dist/chunks/{NcAppSettingsSectionShortcuts-CBYgfYGz.cjs → NcAppSettingsShortcutsSection-DG3FQlb5.cjs} +7 -7
  224. package/dist/chunks/NcAppSettingsShortcutsSection-DG3FQlb5.cjs.map +1 -0
  225. package/dist/chunks/{NcAppSidebar-f7tuofzM.mjs → NcAppSidebar-D5IUeKjd.mjs} +4 -4
  226. package/dist/chunks/{NcAppSidebar-f7tuofzM.mjs.map → NcAppSidebar-D5IUeKjd.mjs.map} +1 -1
  227. package/dist/chunks/{NcAppSidebar-DLb6ALHL.cjs → NcAppSidebar-DwLrcwGi.cjs} +4 -4
  228. package/dist/chunks/{NcAppSidebar-DLb6ALHL.cjs.map → NcAppSidebar-DwLrcwGi.cjs.map} +1 -1
  229. package/dist/chunks/{NcAssistantButton-BMzPE7WA.cjs → NcAssistantButton-DrYpawyR.cjs} +3 -3
  230. package/dist/chunks/{NcAssistantButton-BMzPE7WA.cjs.map → NcAssistantButton-DrYpawyR.cjs.map} +1 -1
  231. package/dist/chunks/{NcAssistantButton-enexPvoC.mjs → NcAssistantButton-lRXTGAwe.mjs} +3 -3
  232. package/dist/chunks/{NcAssistantButton-enexPvoC.mjs.map → NcAssistantButton-lRXTGAwe.mjs.map} +1 -1
  233. package/dist/chunks/{NcAssistantIcon-XwQFzBgA.mjs → NcAssistantIcon-B9L1Ih5x.mjs} +2 -2
  234. package/dist/chunks/{NcAssistantIcon-XwQFzBgA.mjs.map → NcAssistantIcon-B9L1Ih5x.mjs.map} +1 -1
  235. package/dist/chunks/{NcAssistantIcon-DfVd2zWt.cjs → NcAssistantIcon-jHDGZ_Bd.cjs} +2 -2
  236. package/dist/chunks/{NcAssistantIcon-DfVd2zWt.cjs.map → NcAssistantIcon-jHDGZ_Bd.cjs.map} +1 -1
  237. package/dist/chunks/{NcAvatar-BwioPrbY.cjs → NcAvatar-BXRgjNXy.cjs} +5 -5
  238. package/dist/chunks/{NcAvatar-BwioPrbY.cjs.map → NcAvatar-BXRgjNXy.cjs.map} +1 -1
  239. package/dist/chunks/{NcAvatar-DwUmx6Fg.mjs → NcAvatar-D5nljVEA.mjs} +5 -5
  240. package/dist/chunks/{NcAvatar-DwUmx6Fg.mjs.map → NcAvatar-D5nljVEA.mjs.map} +1 -1
  241. package/dist/chunks/{NcBreadcrumb-ljdZbX7p.mjs → NcBreadcrumb-BC6tmZfd.mjs} +2 -2
  242. package/dist/chunks/{NcBreadcrumb-ljdZbX7p.mjs.map → NcBreadcrumb-BC6tmZfd.mjs.map} +1 -1
  243. package/dist/chunks/{NcBreadcrumb-B-zWjBNp.cjs → NcBreadcrumb-DCq7akG2.cjs} +2 -2
  244. package/dist/chunks/{NcBreadcrumb-B-zWjBNp.cjs.map → NcBreadcrumb-DCq7akG2.cjs.map} +1 -1
  245. package/dist/chunks/{NcBreadcrumbs-B6tPEu9b.cjs → NcBreadcrumbs-7dWiGWqj.cjs} +4 -4
  246. package/dist/chunks/{NcBreadcrumbs-B6tPEu9b.cjs.map → NcBreadcrumbs-7dWiGWqj.cjs.map} +1 -1
  247. package/dist/chunks/{NcBreadcrumbs-D2DtX3XC.mjs → NcBreadcrumbs-BPfsSByZ.mjs} +4 -4
  248. package/dist/chunks/{NcBreadcrumbs-D2DtX3XC.mjs.map → NcBreadcrumbs-BPfsSByZ.mjs.map} +1 -1
  249. package/dist/chunks/{NcCheckboxRadioSwitch-wSD3hWxs.cjs → NcCheckboxRadioSwitch-CC2UI0kG.cjs} +2 -2
  250. package/dist/chunks/{NcCheckboxRadioSwitch-wSD3hWxs.cjs.map → NcCheckboxRadioSwitch-CC2UI0kG.cjs.map} +1 -1
  251. package/dist/chunks/{NcCheckboxRadioSwitch-NPJuwzqS.mjs → NcCheckboxRadioSwitch-DAPHFb0L.mjs} +2 -2
  252. package/dist/chunks/{NcCheckboxRadioSwitch-NPJuwzqS.mjs.map → NcCheckboxRadioSwitch-DAPHFb0L.mjs.map} +1 -1
  253. package/dist/chunks/{NcCollectionList-D85QdobI.mjs → NcCollectionList-B9weMM0Q.mjs} +7 -7
  254. package/dist/chunks/{NcCollectionList-D85QdobI.mjs.map → NcCollectionList-B9weMM0Q.mjs.map} +1 -1
  255. package/dist/chunks/{NcCollectionList-Br6V_EiM.cjs → NcCollectionList-DSugNziH.cjs} +7 -7
  256. package/dist/chunks/{NcCollectionList-Br6V_EiM.cjs.map → NcCollectionList-DSugNziH.cjs.map} +1 -1
  257. package/dist/chunks/{NcColorPicker-Dg3d5_aQ.cjs → NcColorPicker-Chrtrp3i.cjs} +4 -4
  258. package/dist/chunks/{NcColorPicker-Dg3d5_aQ.cjs.map → NcColorPicker-Chrtrp3i.cjs.map} +1 -1
  259. package/dist/chunks/{NcColorPicker-BoS26yac.mjs → NcColorPicker-DVkGUHxL.mjs} +4 -4
  260. package/dist/chunks/{NcColorPicker-BoS26yac.mjs.map → NcColorPicker-DVkGUHxL.mjs.map} +1 -1
  261. package/dist/chunks/{NcContent-D8OFKv52.mjs → NcContent-BPmE93Mq.mjs} +3 -3
  262. package/dist/chunks/{NcContent-D8OFKv52.mjs.map → NcContent-BPmE93Mq.mjs.map} +1 -1
  263. package/dist/chunks/{NcContent-BbPae-OV.cjs → NcContent-UoMpCfT3.cjs} +3 -3
  264. package/dist/chunks/{NcContent-BbPae-OV.cjs.map → NcContent-UoMpCfT3.cjs.map} +1 -1
  265. package/dist/chunks/{NcDashboardWidget-SSlGHcII.mjs → NcDashboardWidget-DpzjksBk.mjs} +5 -5
  266. package/dist/chunks/{NcDashboardWidget-SSlGHcII.mjs.map → NcDashboardWidget-DpzjksBk.mjs.map} +1 -1
  267. package/dist/chunks/{NcDashboardWidget-mEPmvuR0.cjs → NcDashboardWidget-k5_NmYYZ.cjs} +5 -5
  268. package/dist/chunks/{NcDashboardWidget-mEPmvuR0.cjs.map → NcDashboardWidget-k5_NmYYZ.cjs.map} +1 -1
  269. package/dist/chunks/{NcDashboardWidgetItem-C7AmqxH4.cjs → NcDashboardWidgetItem-CeA1eF60.cjs} +4 -4
  270. package/dist/chunks/{NcDashboardWidgetItem-C7AmqxH4.cjs.map → NcDashboardWidgetItem-CeA1eF60.cjs.map} +1 -1
  271. package/dist/chunks/{NcDashboardWidgetItem-BqlNJI6a.mjs → NcDashboardWidgetItem-DZ13sBtT.mjs} +4 -4
  272. package/dist/chunks/{NcDashboardWidgetItem-BqlNJI6a.mjs.map → NcDashboardWidgetItem-DZ13sBtT.mjs.map} +1 -1
  273. package/dist/chunks/{NcDialog-Bg0hY6TP.mjs → NcDialog-DDuqQeT-.mjs} +2 -2
  274. package/dist/chunks/{NcDialog-Bg0hY6TP.mjs.map → NcDialog-DDuqQeT-.mjs.map} +1 -1
  275. package/dist/chunks/{NcDialog-D020rlVy.cjs → NcDialog-DUTlKw4_.cjs} +2 -2
  276. package/dist/chunks/{NcDialog-D020rlVy.cjs.map → NcDialog-DUTlKw4_.cjs.map} +1 -1
  277. package/dist/chunks/{NcDialogButton-8JhFaC5X.cjs → NcDialogButton-DyWjiA1e.cjs} +3 -3
  278. package/dist/chunks/{NcDialogButton-8JhFaC5X.cjs.map → NcDialogButton-DyWjiA1e.cjs.map} +1 -1
  279. package/dist/chunks/{NcDialogButton-DSrC6lFd.mjs → NcDialogButton-P7Ryycqk.mjs} +3 -3
  280. package/dist/chunks/{NcDialogButton-DSrC6lFd.mjs.map → NcDialogButton-P7Ryycqk.mjs.map} +1 -1
  281. package/dist/chunks/{NcEmojiPicker-CAphjgaf.mjs → NcEmojiPicker-CpU37Ozq.mjs} +6 -6
  282. package/dist/chunks/{NcEmojiPicker-CAphjgaf.mjs.map → NcEmojiPicker-CpU37Ozq.mjs.map} +1 -1
  283. package/dist/chunks/{NcEmojiPicker-DwXhWYHY.cjs → NcEmojiPicker-D8d4iUUn.cjs} +6 -6
  284. package/dist/chunks/{NcEmojiPicker-DwXhWYHY.cjs.map → NcEmojiPicker-D8d4iUUn.cjs.map} +1 -1
  285. package/dist/chunks/NcFormBox-DL435pbV.mjs +56 -0
  286. package/dist/chunks/NcFormBox-DL435pbV.mjs.map +1 -0
  287. package/dist/chunks/NcFormBox-_JqkU_xn.cjs +55 -0
  288. package/dist/chunks/NcFormBox-_JqkU_xn.cjs.map +1 -0
  289. package/dist/chunks/NcFormBoxButton-D-s5mL0c.cjs +137 -0
  290. package/dist/chunks/NcFormBoxButton-D-s5mL0c.cjs.map +1 -0
  291. package/dist/chunks/NcFormBoxButton-DN0-J4yN.mjs +138 -0
  292. package/dist/chunks/NcFormBoxButton-DN0-J4yN.mjs.map +1 -0
  293. package/dist/chunks/NcFormBoxCopyButton-CTHelPkb.cjs +76 -0
  294. package/dist/chunks/NcFormBoxCopyButton-CTHelPkb.cjs.map +1 -0
  295. package/dist/chunks/NcFormBoxCopyButton-Dwrfiovz.mjs +77 -0
  296. package/dist/chunks/NcFormBoxCopyButton-Dwrfiovz.mjs.map +1 -0
  297. package/dist/chunks/NcFormBoxItem-CtrbGjnv.cjs +86 -0
  298. package/dist/chunks/NcFormBoxItem-CtrbGjnv.cjs.map +1 -0
  299. package/dist/chunks/NcFormBoxItem-DPBm3ZbJ.mjs +87 -0
  300. package/dist/chunks/NcFormBoxItem-DPBm3ZbJ.mjs.map +1 -0
  301. package/dist/chunks/NcFormBoxSwitch-CM3WaFkA.cjs +96 -0
  302. package/dist/chunks/NcFormBoxSwitch-CM3WaFkA.cjs.map +1 -0
  303. package/dist/chunks/NcFormBoxSwitch-aOCNeI-K.mjs +97 -0
  304. package/dist/chunks/NcFormBoxSwitch-aOCNeI-K.mjs.map +1 -0
  305. package/dist/chunks/NcFormGroup-BfsPo9aC.mjs +69 -0
  306. package/dist/chunks/NcFormGroup-BfsPo9aC.mjs.map +1 -0
  307. package/dist/chunks/NcFormGroup-CBMl_9_J.cjs +68 -0
  308. package/dist/chunks/NcFormGroup-CBMl_9_J.cjs.map +1 -0
  309. package/dist/chunks/{NcHotkey-CUPH5u09.cjs → NcHotkey-BMemJWSu.cjs} +7 -7
  310. package/dist/chunks/{NcHotkey-CUPH5u09.cjs.map → NcHotkey-BMemJWSu.cjs.map} +1 -1
  311. package/dist/chunks/{NcHotkey-BVMf1V89.mjs → NcHotkey-CzuMmIU9.mjs} +7 -7
  312. package/dist/chunks/{NcHotkey-BVMf1V89.mjs.map → NcHotkey-CzuMmIU9.mjs.map} +1 -1
  313. package/dist/chunks/{NcHotkeyList-jfSroQAQ.mjs → NcHotkeyList-Bm25Odp7.mjs} +5 -5
  314. package/dist/chunks/NcHotkeyList-Bm25Odp7.mjs.map +1 -0
  315. package/dist/chunks/{NcHotkeyList-CUjp1-hr.cjs → NcHotkeyList-DAJkKYNu.cjs} +5 -5
  316. package/dist/chunks/NcHotkeyList-DAJkKYNu.cjs.map +1 -0
  317. package/dist/chunks/{NcInputConfirmCancel-XPlRewAN.mjs → NcInputConfirmCancel-CtdWwDCo.mjs} +2 -2
  318. package/dist/chunks/{NcInputConfirmCancel-XPlRewAN.mjs.map → NcInputConfirmCancel-CtdWwDCo.mjs.map} +1 -1
  319. package/dist/chunks/{NcInputConfirmCancel-Bk_FQ5aA.cjs → NcInputConfirmCancel-vqVq5qKL.cjs} +2 -2
  320. package/dist/chunks/{NcInputConfirmCancel-Bk_FQ5aA.cjs.map → NcInputConfirmCancel-vqVq5qKL.cjs.map} +1 -1
  321. package/dist/chunks/{NcKbd-BdW5UbhW.mjs → NcKbd-CfVfr9CW.mjs} +2 -2
  322. package/dist/chunks/{NcKbd-BdW5UbhW.mjs.map → NcKbd-CfVfr9CW.mjs.map} +1 -1
  323. package/dist/chunks/{NcKbd-CVBh8nyU.cjs → NcKbd-ewuqi-PO.cjs} +2 -2
  324. package/dist/chunks/{NcKbd-CVBh8nyU.cjs.map → NcKbd-ewuqi-PO.cjs.map} +1 -1
  325. package/dist/chunks/{NcListItem-YVemqwZ_.mjs → NcListItem-BommrKRB.mjs} +6 -6
  326. package/dist/chunks/{NcListItem-D3HiK7ra.cjs.map → NcListItem-BommrKRB.mjs.map} +1 -1
  327. package/dist/chunks/{NcListItem-D3HiK7ra.cjs → NcListItem-DaRnEXN5.cjs} +6 -6
  328. package/dist/chunks/{NcListItem-YVemqwZ_.mjs.map → NcListItem-DaRnEXN5.cjs.map} +1 -1
  329. package/dist/chunks/{NcListItemIcon-DL1VwHvL.cjs → NcListItemIcon-2L14AYM5.cjs} +2 -2
  330. package/dist/chunks/{NcListItemIcon-DL1VwHvL.cjs.map → NcListItemIcon-2L14AYM5.cjs.map} +1 -1
  331. package/dist/chunks/{NcListItemIcon-BKwmcXnO.mjs → NcListItemIcon-DT7XMp5c.mjs} +2 -2
  332. package/dist/chunks/{NcListItemIcon-BKwmcXnO.mjs.map → NcListItemIcon-DT7XMp5c.mjs.map} +1 -1
  333. package/dist/chunks/{NcPasswordField-CujpFQHq.mjs → NcPasswordField-B91RnUSh.mjs} +3 -3
  334. package/dist/chunks/{NcPasswordField-CujpFQHq.mjs.map → NcPasswordField-B91RnUSh.mjs.map} +1 -1
  335. package/dist/chunks/{NcPasswordField-BeEYmL5N.cjs → NcPasswordField-BO0hL-T4.cjs} +3 -3
  336. package/dist/chunks/{NcPasswordField-BeEYmL5N.cjs.map → NcPasswordField-BO0hL-T4.cjs.map} +1 -1
  337. package/dist/chunks/{NcRadioGroup-VKZJ0Vnh.mjs → NcRadioGroup-D0rC63G8.mjs} +10 -19
  338. package/dist/chunks/NcRadioGroup-D0rC63G8.mjs.map +1 -0
  339. package/dist/chunks/{NcRadioGroup-BZ-humrK.cjs → NcRadioGroup-D59En1O3.cjs} +10 -19
  340. package/dist/chunks/NcRadioGroup-D59En1O3.cjs.map +1 -0
  341. package/dist/chunks/{NcRadioGroupButton-CD4tkF_s.mjs → NcRadioGroupButton-3Pu4Iqdf.mjs} +11 -9
  342. package/dist/chunks/NcRadioGroupButton-3Pu4Iqdf.mjs.map +1 -0
  343. package/dist/chunks/{NcRadioGroupButton-DrqgN-8C.cjs → NcRadioGroupButton-DoOf7cE1.cjs} +11 -9
  344. package/dist/chunks/NcRadioGroupButton-DoOf7cE1.cjs.map +1 -0
  345. package/dist/chunks/{NcRelatedResourcesPanel-CO6jajKF.cjs → NcRelatedResourcesPanel-CpXbcI3f.cjs} +4 -4
  346. package/dist/chunks/{NcRelatedResourcesPanel-CO6jajKF.cjs.map → NcRelatedResourcesPanel-CpXbcI3f.cjs.map} +1 -1
  347. package/dist/chunks/{NcRelatedResourcesPanel-BTyqVb_E.mjs → NcRelatedResourcesPanel-D9-wo_xr.mjs} +4 -4
  348. package/dist/chunks/{NcRelatedResourcesPanel-BTyqVb_E.mjs.map → NcRelatedResourcesPanel-D9-wo_xr.mjs.map} +1 -1
  349. package/dist/chunks/{NcRichContenteditable-BivvoSO5.mjs → NcRichContenteditable-BQNR-AeA.mjs} +13 -10
  350. package/dist/chunks/{NcRichContenteditable-BivvoSO5.mjs.map → NcRichContenteditable-BQNR-AeA.mjs.map} +1 -1
  351. package/dist/chunks/{NcRichContenteditable-BjxmdpS0.cjs → NcRichContenteditable-DsWbC4ZK.cjs} +13 -10
  352. package/dist/chunks/{NcRichContenteditable-BjxmdpS0.cjs.map → NcRichContenteditable-DsWbC4ZK.cjs.map} +1 -1
  353. package/dist/chunks/{NcRichText-Dy5By94Y.mjs → NcRichText-BfK6Ybyf.mjs} +8 -5
  354. package/dist/chunks/{NcRichText-Dy5By94Y.mjs.map → NcRichText-BfK6Ybyf.mjs.map} +1 -1
  355. package/dist/chunks/{NcRichText-DoQg3Lha.cjs → NcRichText-CSFIswpI.cjs} +8 -5
  356. package/dist/chunks/{NcRichText-DoQg3Lha.cjs.map → NcRichText-CSFIswpI.cjs.map} +1 -1
  357. package/dist/chunks/{NcSelect-Bw8EG_xU.cjs → NcSelect-CgLK3i8n.cjs} +4 -4
  358. package/dist/chunks/{NcSelect-Bw8EG_xU.cjs.map → NcSelect-CgLK3i8n.cjs.map} +1 -1
  359. package/dist/chunks/{NcSelect-QVd6uJPA.mjs → NcSelect-DTniMiUS.mjs} +4 -4
  360. package/dist/chunks/{NcSelect-QVd6uJPA.mjs.map → NcSelect-DTniMiUS.mjs.map} +1 -1
  361. package/dist/chunks/{NcSelectTags-D-22teKJ.mjs → NcSelectTags-CktuFsK3.mjs} +3 -3
  362. package/dist/chunks/{NcSelectTags-D-22teKJ.mjs.map → NcSelectTags-CktuFsK3.mjs.map} +1 -1
  363. package/dist/chunks/{NcSelectTags-aGwTgIM-.cjs → NcSelectTags-DRotL4u-.cjs} +3 -3
  364. package/dist/chunks/{NcSelectTags-aGwTgIM-.cjs.map → NcSelectTags-DRotL4u-.cjs.map} +1 -1
  365. package/dist/chunks/{NcSelectUsers-DR6-q1aK.mjs → NcSelectUsers-RyUVUaWQ.mjs} +5 -5
  366. package/dist/chunks/{NcSelectUsers-DR6-q1aK.mjs.map → NcSelectUsers-RyUVUaWQ.mjs.map} +1 -1
  367. package/dist/chunks/{NcSelectUsers-Qhrizan5.cjs → NcSelectUsers-Vy7qpE1b.cjs} +5 -5
  368. package/dist/chunks/{NcSelectUsers-Qhrizan5.cjs.map → NcSelectUsers-Vy7qpE1b.cjs.map} +1 -1
  369. package/dist/chunks/{NcSettingsInputText-O8870Grr.cjs → NcSettingsInputText-DJ1lsJ-4.cjs} +3 -3
  370. package/dist/chunks/{NcSettingsInputText-O8870Grr.cjs.map → NcSettingsInputText-DJ1lsJ-4.cjs.map} +1 -1
  371. package/dist/chunks/{NcSettingsInputText-Q8DDr-Yj.mjs → NcSettingsInputText-Dtr4Rn2b.mjs} +3 -3
  372. package/dist/chunks/{NcSettingsInputText-Q8DDr-Yj.mjs.map → NcSettingsInputText-Dtr4Rn2b.mjs.map} +1 -1
  373. package/dist/chunks/{NcSettingsSection-VxcVEF8L.mjs → NcSettingsSection-BniKad1K.mjs} +3 -3
  374. package/dist/chunks/{NcSettingsSection-VxcVEF8L.mjs.map → NcSettingsSection-BniKad1K.mjs.map} +1 -1
  375. package/dist/chunks/{NcSettingsSection-DKpzo7eI.cjs → NcSettingsSection-DGoocV82.cjs} +3 -3
  376. package/dist/chunks/{NcSettingsSection-DKpzo7eI.cjs.map → NcSettingsSection-DGoocV82.cjs.map} +1 -1
  377. package/dist/chunks/{NcSettingsSelectGroup-CZ0EjeJb.mjs → NcSettingsSelectGroup-D4_09H0F.mjs} +4 -4
  378. package/dist/chunks/{NcSettingsSelectGroup-CZ0EjeJb.mjs.map → NcSettingsSelectGroup-D4_09H0F.mjs.map} +1 -1
  379. package/dist/chunks/{NcSettingsSelectGroup-BQWwtSEb.cjs → NcSettingsSelectGroup-DRp_BpNb.cjs} +4 -4
  380. package/dist/chunks/{NcSettingsSelectGroup-BQWwtSEb.cjs.map → NcSettingsSelectGroup-DRp_BpNb.cjs.map} +1 -1
  381. package/dist/chunks/{NcTextField-CVfixgfj.mjs → NcTextField-CfZknuqx.mjs} +4 -4
  382. package/dist/chunks/{NcTextField-CVfixgfj.mjs.map → NcTextField-CfZknuqx.mjs.map} +1 -1
  383. package/dist/chunks/{NcTextField-52Fnd27A.cjs → NcTextField-YOwuZ0wq.cjs} +4 -4
  384. package/dist/chunks/{NcTextField-52Fnd27A.cjs.map → NcTextField-YOwuZ0wq.cjs.map} +1 -1
  385. package/dist/chunks/{NcTimezonePicker-CtFsF-jG.cjs → NcTimezonePicker-CuJzNsPZ.cjs} +5 -5
  386. package/dist/chunks/{NcTimezonePicker-CtFsF-jG.cjs.map → NcTimezonePicker-CuJzNsPZ.cjs.map} +1 -1
  387. package/dist/chunks/{NcTimezonePicker-BInLNCSt.mjs → NcTimezonePicker-DgoDpdHS.mjs} +5 -5
  388. package/dist/chunks/{NcTimezonePicker-BInLNCSt.mjs.map → NcTimezonePicker-DgoDpdHS.mjs.map} +1 -1
  389. package/dist/chunks/{NcUserBubble-ByvVV8jh.cjs → NcUserBubble-DwJgtybL.cjs} +2 -2
  390. package/dist/chunks/{NcUserBubble-ByvVV8jh.cjs.map → NcUserBubble-DwJgtybL.cjs.map} +1 -1
  391. package/dist/chunks/{NcUserBubble-sIUM-Rru.mjs → NcUserBubble-VLY4hn5K.mjs} +2 -2
  392. package/dist/chunks/{NcUserBubble-sIUM-Rru.mjs.map → NcUserBubble-VLY4hn5K.mjs.map} +1 -1
  393. package/dist/chunks/{NcUserStatusIcon-DZI9jlXE.mjs → NcUserStatusIcon-D_kxQky5.mjs} +3 -3
  394. package/dist/chunks/{NcUserStatusIcon-DZI9jlXE.mjs.map → NcUserStatusIcon-D_kxQky5.mjs.map} +1 -1
  395. package/dist/chunks/{NcUserStatusIcon-CYsrjxDh.cjs → NcUserStatusIcon-DaYZfl2J.cjs} +3 -3
  396. package/dist/chunks/{NcUserStatusIcon-CYsrjxDh.cjs.map → NcUserStatusIcon-DaYZfl2J.cjs.map} +1 -1
  397. package/dist/chunks/{ScopeComponent-CNZ_b7IG.mjs → ScopeComponent-B4ZR5mwH.mjs} +2 -2
  398. package/dist/chunks/{ScopeComponent-CNZ_b7IG.mjs.map → ScopeComponent-B4ZR5mwH.mjs.map} +1 -1
  399. package/dist/chunks/{ScopeComponent-BCznIxFT.cjs → ScopeComponent-B59v3zbZ.cjs} +2 -2
  400. package/dist/chunks/{ScopeComponent-BCznIxFT.cjs.map → ScopeComponent-B59v3zbZ.cjs.map} +1 -1
  401. package/dist/chunks/{_l10n-eOBJ3Dwl.cjs → _l10n-B4clLGwo.cjs} +34 -34
  402. package/dist/chunks/{_l10n-eOBJ3Dwl.cjs.map → _l10n-B4clLGwo.cjs.map} +1 -1
  403. package/dist/chunks/{_l10n-BWisB7-O.mjs → _l10n-BmKQgz1z.mjs} +61 -61
  404. package/dist/chunks/_l10n-BmKQgz1z.mjs.map +1 -0
  405. package/dist/chunks/{colors-D3xlq-id.mjs → colors-BwQwSDJi.mjs} +2 -2
  406. package/dist/chunks/{colors-D3xlq-id.mjs.map → colors-BwQwSDJi.mjs.map} +1 -1
  407. package/dist/chunks/{colors-BsDQ1Yz3.cjs → colors-FtmuYvMf.cjs} +2 -2
  408. package/dist/chunks/{colors-BsDQ1Yz3.cjs.map → colors-FtmuYvMf.cjs.map} +1 -1
  409. package/dist/chunks/{mdi-Nhb6SBw8.cjs → mdi-CVXTs58m.cjs} +11 -1
  410. package/dist/chunks/{mdi-CKSXwCsV.mjs.map → mdi-CVXTs58m.cjs.map} +1 -1
  411. package/dist/chunks/{mdi-CKSXwCsV.mjs → mdi-C_j0YT8c.mjs} +18 -8
  412. package/dist/chunks/{mdi-Nhb6SBw8.cjs.map → mdi-C_j0YT8c.mjs.map} +1 -1
  413. package/dist/chunks/{referencePickerModal-Cl3fIc9s.mjs → referencePickerModal-CHpUHrDL.mjs} +9 -9
  414. package/dist/chunks/{referencePickerModal-Cl3fIc9s.mjs.map → referencePickerModal-CHpUHrDL.mjs.map} +1 -1
  415. package/dist/chunks/{referencePickerModal-Dz1h1EHq.cjs → referencePickerModal-CJNn-fvp.cjs} +9 -9
  416. package/dist/chunks/{referencePickerModal-Dz1h1EHq.cjs.map → referencePickerModal-CJNn-fvp.cjs.map} +1 -1
  417. package/dist/chunks/{useAppSettingsDialog-CPqmms-u.cjs → useAppSettingsDialog-BfnyikIV.cjs} +3 -1
  418. package/dist/chunks/useAppSettingsDialog-BfnyikIV.cjs.map +1 -0
  419. package/dist/chunks/{useAppSettingsDialog-Dn48dw1k.mjs → useAppSettingsDialog-DbtEkXa4.mjs} +4 -2
  420. package/dist/chunks/useAppSettingsDialog-DbtEkXa4.mjs.map +1 -0
  421. package/dist/chunks/useNcFormBox-DA9iwXWY.mjs +13 -0
  422. package/dist/chunks/useNcFormBox-DA9iwXWY.mjs.map +1 -0
  423. package/dist/chunks/useNcFormBox-DQeOEuQp.cjs +12 -0
  424. package/dist/chunks/useNcFormBox-DQeOEuQp.cjs.map +1 -0
  425. package/dist/components/NcAppSettingsDialog/useAppSettingsDialog.d.ts +2 -1
  426. package/dist/components/NcAppSettingsSectionShortcuts/index.d.ts +8 -1
  427. package/dist/components/NcAppSettingsShortcutsSection/index.d.ts +5 -0
  428. package/dist/components/NcFormBox/index.d.ts +1 -0
  429. package/dist/components/NcFormBox/useNcFormBox.d.ts +19 -0
  430. package/dist/components/NcFormBoxButton/index.d.ts +5 -0
  431. package/dist/components/NcFormBoxCopyButton/index.d.ts +5 -0
  432. package/dist/components/NcFormBoxCopyButton/useCopy.d.ts +10 -0
  433. package/dist/components/NcFormBoxSwitch/index.d.ts +5 -0
  434. package/dist/components/NcFormGroup/index.d.ts +5 -0
  435. package/dist/composables/useButtonLink.d.ts +71 -0
  436. package/dist/index.cjs +70 -53
  437. package/dist/index.cjs.map +1 -1
  438. package/dist/index.mjs +71 -54
  439. package/dist/index.mjs.map +1 -1
  440. package/dist/utils/VueTypes.d.ts +7 -0
  441. package/package.json +10 -10
  442. package/dist/assets/NcHotkeyList-B42a0d8Z.css +0 -9
  443. package/dist/assets/NcRadioGroup-CNgjqqiP.css +0 -49
  444. package/dist/chunks/NcActions-BvFVkIzX.mjs.map +0 -1
  445. package/dist/chunks/NcActions-CF9VxHHD.cjs.map +0 -1
  446. package/dist/chunks/NcAppSettingsDialog--RlMIfbo.cjs.map +0 -1
  447. package/dist/chunks/NcAppSettingsDialog-8YaW7ud3.mjs.map +0 -1
  448. package/dist/chunks/NcAppSettingsSection-DVrBPuLD.mjs.map +0 -1
  449. package/dist/chunks/NcAppSettingsSection-OPWPqi2Y.cjs.map +0 -1
  450. package/dist/chunks/NcAppSettingsSectionShortcuts-CBYgfYGz.cjs.map +0 -1
  451. package/dist/chunks/NcAppSettingsSectionShortcuts-CdP-4ktS.mjs.map +0 -1
  452. package/dist/chunks/NcHotkeyList-CUjp1-hr.cjs.map +0 -1
  453. package/dist/chunks/NcHotkeyList-jfSroQAQ.mjs.map +0 -1
  454. package/dist/chunks/NcRadioGroup-BZ-humrK.cjs.map +0 -1
  455. package/dist/chunks/NcRadioGroup-VKZJ0Vnh.mjs.map +0 -1
  456. package/dist/chunks/NcRadioGroupButton-CD4tkF_s.mjs.map +0 -1
  457. package/dist/chunks/NcRadioGroupButton-DrqgN-8C.cjs.map +0 -1
  458. package/dist/chunks/_l10n-BWisB7-O.mjs.map +0 -1
  459. package/dist/chunks/useAppSettingsDialog-CPqmms-u.cjs.map +0 -1
  460. package/dist/chunks/useAppSettingsDialog-Dn48dw1k.mjs.map +0 -1
  461. /package/dist/assets/{NcAppSettingsSectionShortcuts-BuI-s4kd.css → NcAppSettingsShortcutsSection-BuI-s4kd.css} +0 -0
@@ -2,7 +2,7 @@ require('../assets/NcRelatedResourcesPanel-BgMc8bue.css');
2
2
  "use strict";
3
3
  const axios = require("@nextcloud/axios");
4
4
  const router = require("@nextcloud/router");
5
- const _l10n = require("./_l10n-eOBJ3Dwl.cjs");
5
+ const _l10n = require("./_l10n-B4clLGwo.cjs");
6
6
  const NcButton = require("./NcButton-CJBZrdiL.cjs");
7
7
  const autolink = require("./autolink-BPlRHRHR.cjs");
8
8
  const _pluginVue2_normalizer = require("./_plugin-vue2_normalizer-V0q-tHlQ.cjs");
@@ -13,7 +13,7 @@ const NcIconSvgWrapper = require("./NcIconSvgWrapper-D-aKMbf3.cjs");
13
13
  const logger = require("./logger-3HuiEIF6.cjs");
14
14
  const _interopDefault = (e2) => e2 && e2.__esModule ? e2 : { default: e2 };
15
15
  const axios__default = /* @__PURE__ */ _interopDefault(axios);
16
- _l10n.register(_l10n.t38);
16
+ _l10n.register(_l10n.t39);
17
17
  const _sfc_main$4 = {
18
18
  name: "NcResource",
19
19
  components: {
@@ -130,7 +130,7 @@ var __component__$2 = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
130
130
  null
131
131
  );
132
132
  const OpenInNew = __component__$2.exports;
133
- _l10n.register(_l10n.t41);
133
+ _l10n.register(_l10n.t42);
134
134
  const teamResourceProviders = capabilities.getCapabilities()?.circles?.teamResourceProviders ?? [];
135
135
  const _sfc_main$1 = {
136
136
  name: "NcTeamResources",
@@ -428,4 +428,4 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
428
428
  );
429
429
  const NcRelatedResourcesPanel = __component__.exports;
430
430
  exports.NcRelatedResourcesPanel = NcRelatedResourcesPanel;
431
- //# sourceMappingURL=NcRelatedResourcesPanel-CO6jajKF.cjs.map
431
+ //# sourceMappingURL=NcRelatedResourcesPanel-CpXbcI3f.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NcRelatedResourcesPanel-CO6jajKF.cjs","sources":["../../src/components/NcRelatedResourcesPanel/NcResource.vue","../../node_modules/vue-material-design-icons/AccountGroup.vue","../../node_modules/vue-material-design-icons/OpenInNew.vue","../../src/components/NcRelatedResourcesPanel/NcTeamResources.vue","../../src/components/NcRelatedResourcesPanel/NcRelatedResourcesPanel.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<li class=\"resource\">\n\t\t<NcButton\n\t\t\tclass=\"resource__button\"\n\t\t\t:aria-label=\"labelTranslated\"\n\t\t\t:to=\"route\"\n\t\t\t:href=\"route ? null : url\"\n\t\t\tvariant=\"tertiary\">\n\t\t\t<template #icon>\n\t\t\t\t<div class=\"resource__icon\">\n\t\t\t\t\t<img :src=\"icon\">\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t{{ name }}\n\t\t</NcButton>\n\t</li>\n</template>\n\n<script>\nimport { t } from '../../l10n.js'\nimport NcButton from '../NcButton/index.js'\nimport { getRoute } from '../NcRichText/autolink.js'\n\nexport default {\n\tname: 'NcResource',\n\n\tcomponents: {\n\t\tNcButton,\n\t},\n\n\t/* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n\tprops: {\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\turl: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tlabelTranslated: t('Open link to \"{resourceName}\"', { resourceName: this.name }),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\troute() {\n\t\t\treturn getRoute(this.$router, this.url)\n\t\t},\n\t},\n\n\tmethods: {\n\t\tt,\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.resource {\n\tdisplay: flex;\n\talign-items: center;\n\theight: var(--default-clickable-area);\n\n\t// Override default NcButton styles\n\t&__button {\n\t\twidth: 100% !important;\n\t\tjustify-content: flex-start !important;\n\t\tpadding: 0 !important;\n\n\t\t&:deep {\n\t\t\t.button-vue__wrapper {\n\t\t\t\tjustify-content: flex-start !important;\n\n\t\t\t\t.button-vue__text {\n\t\t\t\t\tfont-weight: normal !important;\n\t\t\t\t\tmargin-left: 2px !important;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t&__icon {\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t\tborder-radius: 50%;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\n\t\timg {\n\t\t\twidth: 16px;\n\t\t\theight: 16px;\n\t\t\tfilter: var(--background-invert-if-dark);\n\t\t}\n\t}\n}\n</style>\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon account-group-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"AccountGroupIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon open-in-new-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"OpenInNewIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<div v-if=\"appEnabled && isVisible\" class=\"team-resources\">\n\t\t<h5 class=\"team-resources__header\">\n\t\t\t{{ t('Related team resources') }}\n\t\t</h5>\n\t\t<details\n\t\t\tv-for=\"team in teamResources\"\n\t\t\t:key=\"team.teamId\"\n\t\t\tname=\"Team resources\"\n\t\t\tclass=\"related-team\"\n\t\t\t:open=\"open(team.teamId)\"\n\t\t\t@toggle=\"(event) => toggleOpen(team.teamId, event.target.open)\">\n\t\t\t<summary class=\"related-team__header\">\n\t\t\t\t<h5 class=\"related-team__name\">\n\t\t\t\t\t<AccountGroup :size=\"20\" />\n\t\t\t\t\t{{ team.displayName }}\n\t\t\t\t</h5>\n\t\t\t\t<NcButton\n\t\t\t\t\t:aria-label=\"t('View team')\"\n\t\t\t\t\t:href=\"team.link\"\n\t\t\t\t\t:title=\"t('View team')\"\n\t\t\t\t\tvariant=\"tertiary\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<OpenInNew :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\n\t\t\t\t<ChevronUp\n\t\t\t\t\tv-if=\"open(team.teamId)\"\n\t\t\t\t\t:size=\"20\" />\n\t\t\t\t<ChevronDown\n\t\t\t\t\tv-else\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</summary>\n\n\t\t\t<div>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"provider in teamProviders(team.teamId)\"\n\t\t\t\t\t:key=\"provider.id\"\n\t\t\t\t\tclass=\"related-team-provider\">\n\t\t\t\t\t<h6 v-if=\"provider.resources.length > 0\">\n\t\t\t\t\t\t{{ provider.name }}\n\t\t\t\t\t</h6>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li v-for=\"resource in provider.resources\" :key=\"resource.url\" class=\"related-team-resource\">\n\t\t\t\t\t\t\t<a :href=\"resource.url\" class=\"related-team-resource__link\">\n\t\t\t\t\t\t\t\t<span v-if=\"resource.iconEmoji\" class=\"resource__icon\">\n\t\t\t\t\t\t\t\t\t{{ resource.iconEmoji }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<NcIconSvgWrapper\n\t\t\t\t\t\t\t\t\tv-else-if=\"resource.iconSvg\"\n\t\t\t\t\t\t\t\t\tclass=\"resource__icon\"\n\t\t\t\t\t\t\t\t\t:svg=\"resource.iconSvg\"\n\t\t\t\t\t\t\t\t\t:size=\"20\" />\n\t\t\t\t\t\t\t\t<span v-else-if=\"resource.iconURL\" class=\"resource__icon\">\n\t\t\t\t\t\t\t\t\t<img :src=\"resource.iconURL\" alt=\"\">\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<span class=\"resource__name\">\n\t\t\t\t\t\t\t\t\t{{ resource.label }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</details>\n\t</div>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport AccountGroup from 'vue-material-design-icons/AccountGroup.vue'\nimport ChevronDown from 'vue-material-design-icons/ChevronDown.vue'\nimport ChevronUp from 'vue-material-design-icons/ChevronUp.vue'\nimport OpenInNew from 'vue-material-design-icons/OpenInNew.vue'\nimport NcButton from '../NcButton/NcButton.vue'\nimport NcIconSvgWrapper from '../NcIconSvgWrapper/NcIconSvgWrapper.vue'\nimport { t } from '../../l10n.js'\nimport { logger } from '../../utils/logger.ts'\n\nconst teamResourceProviders = getCapabilities()?.circles?.teamResourceProviders ?? []\n\nexport default {\n\tname: 'NcTeamResources',\n\n\tcomponents: {\n\t\tAccountGroup,\n\t\tChevronDown,\n\t\tChevronUp,\n\t\tOpenInNew,\n\t\tNcButton,\n\t\tNcIconSvgWrapper,\n\t},\n\n\t/* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n\tprops: {\n\t\tproviderId: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\titemId: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tappEnabled: OC?.appswebroots?.circles !== undefined && (OC.config.version.split('.')[0] ?? 0) >= 29,\n\t\t\tloading: false,\n\t\t\tteamResources: null,\n\t\t\tteamOpen: [],\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisVisible() {\n\t\t\treturn !this.loading && this.teamResources?.length > 0\n\t\t},\n\n\t\tteamProviders() {\n\t\t\treturn (teamId) => {\n\t\t\t\tconst team = this.teamResources.find((t) => t.teamId === teamId)\n\t\t\t\treturn team.resources?.reduce((acc, resource) => {\n\t\t\t\t\tif (resource.provider.id === this.providerId && resource.id === String(this.itemId)) {\n\t\t\t\t\t\treturn acc\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!acc[resource.provider.id]) {\n\t\t\t\t\t\tacc[resource.provider.id] = resource.provider\n\t\t\t\t\t\tacc[resource.provider.id].resources = []\n\t\t\t\t\t}\n\n\t\t\t\t\tif (resource.provider.id === this.providerId && resource.id === String(this.itemId)) {\n\t\t\t\t\t\treturn acc\n\t\t\t\t\t}\n\n\t\t\t\t\tacc[resource.provider.id].resources.push(resource)\n\t\t\t\t\treturn acc\n\t\t\t\t}, {})\n\t\t\t}\n\t\t},\n\n\t\topen() {\n\t\t\treturn (teamId) => {\n\t\t\t\treturn this.teamOpen.indexOf(teamId) !== -1\n\t\t\t}\n\t\t},\n\t},\n\n\twatch: {\n\t\tproviderId() {\n\t\t\tthis.fetchTeamResources()\n\t\t},\n\n\t\titemId() {\n\t\t\tthis.fetchTeamResources()\n\t\t},\n\t},\n\n\tcreated() {\n\t\tthis.fetchTeamResources()\n\t},\n\n\tmethods: {\n\t\tt,\n\t\tasync fetchTeamResources() {\n\t\t\tif (!teamResourceProviders.includes(this.providerId)) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tthis.loading = true\n\t\t\t\tconst response = await axios.get(generateOcsUrl(`/teams/resources/${this.providerId}/${this.itemId}`))\n\t\t\t\tthis.teamResources = response.data.ocs.data.teams\n\t\t\t\tthis.teamOpen = [this.teamResources[0]?.teamId]\n\t\t\t} catch (error) {\n\t\t\t\tthis.teamResources = null\n\t\t\t\tlogger.error('Could not fetch Teams resources', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\ttoggleOpen(teamId, open) {\n\t\t\tif (open) {\n\t\t\t\tthis.teamOpen.push(teamId)\n\t\t\t} else {\n\t\t\t\tthis.teamOpen.splice(this.teamOpen.indexOf(teamId), 1)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.team-resources__header {\n\tfont-weight: bold;\n\tmargin-bottom: 6px;\n}\n\n.related-team {\n\tborder-radius: var(--border-radius-rounded);\n\tborder: 2px solid var(--color-border-dark);\n\tmargin-bottom: 6px;\n\n\t&__open {\n\t\tborder-color: var(--color-primary-element);\n\t}\n\n\t&__header {\n\t\tpadding: 6px;\n\t\tpadding-right: 24px;\n\t\tdisplay: flex;\n\t\tgap: 12px;\n\t}\n\n\t&__name {\n\t\tdisplay: flex;\n\t\tflex-grow: 1;\n\t\talign-items: center;\n\t\tgap: 12px;\n\t\tpadding: 6px 12px;\n\t\tfont-weight: bold;\n\t\tmargin: 0;\n\t}\n\n\t.related-team-provider {\n\t\tpadding: 6px 12px;\n\n\t\t&__name {\n\t\t\tfont-weight: bold;\n\t\t\tmargin-bottom: 3px;\n\t\t}\n\n\t\t&__link {\n\t\t\tdisplay: flex;\n\t\t\tgap: 12px;\n\t\t\tpadding: 6px 12px;\n\t\t\tfont-weight: bold;\n\t\t}\n\t}\n\n\t.related-team-resource {\n\t\t&__link {\n\t\t\tdisplay: flex;\n\t\t\tgap: 12px;\n\t\t\theight: var(--default-clickable-area);\n\t\t\talign-items: center;\n\t\t\tborder-radius: var(--border-radius-large);\n\n\t\t\t&:hover {\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t}\n\t\t\t&:focus {\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t\toutline: 2px solid var(--color-primary-element);\n\t\t\t}\n\t\t}\n\t\t.resource__icon {\n\t\t\twidth: var(--default-clickable-area);\n\t\t\theight: var(--default-clickable-area);\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\ttext-align: center;\n\n\t\t\t& > img {\n\t\t\t\tborder-radius: var(--border-radius-pill);\n\t\t\t\toverflow: hidden;\n\t\t\t\twidth: 32px;\n\t\t\t\theight: 32px;\n\t\t\t}\n\t\t}\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Usage\n\nUse this component to display the related resources of a given item.\n\n```\n<template>\n\t<NcRelatedResourcesPanel provider-id=\"talk\"\n\t\theader=\"Related resources for talk\"\n\t\t:item-id=\"conversationId\" />\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tconversationId: 1,\n\t\t}\n\t},\n}\n</script>\n```\n</docs>\n\n<template>\n\t<div>\n\t\t<NcTeamResources\n\t\t\t:provider-id=\"providerId\"\n\t\t\t:item-id=\"itemId\" />\n\n\t\t<div v-if=\"appEnabled && isVisible\" class=\"related-resources\">\n\t\t\t<div class=\"related-resources__header\">\n\t\t\t\t<h5>{{ header }}</h5>\n\t\t\t\t<p>{{ subline }}</p>\n\t\t\t</div>\n\n\t\t\t<NcResource\n\t\t\t\tv-for=\"resource in resources\"\n\t\t\t\t:key=\"resource.itemId\"\n\t\t\t\tclass=\"related-resources__entry\"\n\t\t\t\t:icon=\"resource.icon\"\n\t\t\t\t:name=\"resource.title\"\n\t\t\t\t:url=\"resource.url\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport NcResource from './NcResource.vue'\nimport NcTeamResources from './NcTeamResources.vue'\nimport { t } from '../../l10n.js'\nimport { logger } from '../../utils/logger.ts'\n\nexport default {\n\tname: 'NcRelatedResourcesPanel',\n\n\tcomponents: {\n\t\tNcResource,\n\t\tNcTeamResources,\n\t},\n\n\t/* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n\tprops: {\n\t\t/**\n\t\t * The provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n\t\t */\n\t\tproviderId: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * The item id which uniquely identities the e.g. Calendar event, Deck board, file, Talk room, etc.\n\t\t */\n\t\titemId: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Limits to specific resource type. i.e. any provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n\t\t */\n\t\tresourceType: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Set the maximum number of resources to load\n\t\t */\n\t\tlimit: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0,\n\t\t},\n\n\t\t/**\n\t\t * Only used by the files sidebar\n\t\t *\n\t\t * File info is passed when registered with `OCA.Sharing.ShareTabSections.registerSection()`\n\t\t */\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Make the header name dynamic\n\t\t */\n\t\theader: {\n\t\t\ttype: String,\n\t\t\tdefault: t('Related resources'),\n\t\t},\n\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: t('Anything shared with the same group of people will show up here'),\n\t\t},\n\n\t\t/**\n\t\t * If this element is used on a primary element set to true for primary styling.\n\t\t */\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\temits: [\n\t\t'has-error',\n\t\t'has-resources',\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tappEnabled: OC?.appswebroots?.related_resources !== undefined,\n\t\t\tloading: false,\n\t\t\terror: null,\n\t\t\tresources: [],\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisVisible() {\n\t\t\tif (this.loading) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn this.error ?? this.resources.length > 0\n\t\t},\n\n\t\tsubline() {\n\t\t\tif (this.error) {\n\t\t\t\treturn t('Error getting related resources. Please contact your system administrator if you have any questions.')\n\t\t\t}\n\t\t\treturn this.description\n\t\t},\n\n\t\thasResourceInfo() {\n\t\t\tif (this.providerId !== null && this.itemId !== null) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (this.fileInfo !== null) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\n\t\tisFiles() {\n\t\t\treturn this.fileInfo?.id !== undefined\n\t\t},\n\n\t\turl() {\n\t\t\tlet providerId = null\n\t\t\tlet itemId = null\n\n\t\t\tif (this.isFiles) {\n\t\t\t\tproviderId = 'files'\n\t\t\t\titemId = this.fileInfo.id\n\t\t\t} else {\n\t\t\t\tproviderId = this.providerId\n\t\t\t\titemId = this.itemId\n\t\t\t}\n\n\t\t\treturn generateOcsUrl('/apps/related_resources/related/{providerId}?itemId={itemId}&resourceType={resourceType}&limit={limit}&format=json', {\n\t\t\t\tproviderId,\n\t\t\t\titemId,\n\t\t\t\tresourceType: this.resourceType,\n\t\t\t\tlimit: this.limit,\n\t\t\t})\n\t\t},\n\t},\n\n\twatch: {\n\t\tproviderId() {\n\t\t\tthis.fetchRelatedResources()\n\t\t},\n\n\t\titemId() {\n\t\t\tthis.fetchRelatedResources()\n\t\t},\n\n\t\tfileInfo() {\n\t\t\tthis.fetchRelatedResources()\n\t\t},\n\n\t\terror(error) {\n\t\t\t/**\n\t\t\t * Emitted when the error value changes\n\t\t\t *\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tthis.$emit('has-error', Boolean(error))\n\t\t},\n\n\t\tresources(resources) {\n\t\t\t/**\n\t\t\t * Emitted when the resources value changes\n\t\t\t *\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tthis.$emit('has-resources', resources.length > 0)\n\t\t},\n\t},\n\n\tcreated() {\n\t\tthis.fetchRelatedResources()\n\t},\n\n\tmethods: {\n\t\tt,\n\t\tasync fetchRelatedResources() {\n\t\t\tif (!this.appEnabled || !this.hasResourceInfo) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.loading = true\n\t\t\tthis.error = null\n\t\t\tthis.resources = []\n\t\t\ttry {\n\t\t\t\tconst response = await axios.get(this.url)\n\t\t\t\tthis.resources = response.data.ocs?.data\n\t\t\t} catch (error) {\n\t\t\t\tthis.error = e\n\t\t\t\tlogger.error('Could not fetch related resources', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.related-resources {\n\t&__header {\n\n\t\th5 {\n\t\t\tfont-weight: bold;\n\t\t\tmargin-bottom: 6px;\n\t\t}\n\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n}\n</style>\n"],"names":["_sfc_main","NcButton","t","getRoute","getCapabilities","ChevronDown","ChevronUp","NcIconSvgWrapper","axios","generateOcsUrl","logger"],"mappings":"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","x_google_ignoreList":[1,2]}
1
+ {"version":3,"file":"NcRelatedResourcesPanel-CpXbcI3f.cjs","sources":["../../src/components/NcRelatedResourcesPanel/NcResource.vue","../../node_modules/vue-material-design-icons/AccountGroup.vue","../../node_modules/vue-material-design-icons/OpenInNew.vue","../../src/components/NcRelatedResourcesPanel/NcTeamResources.vue","../../src/components/NcRelatedResourcesPanel/NcRelatedResourcesPanel.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<li class=\"resource\">\n\t\t<NcButton\n\t\t\tclass=\"resource__button\"\n\t\t\t:aria-label=\"labelTranslated\"\n\t\t\t:to=\"route\"\n\t\t\t:href=\"route ? null : url\"\n\t\t\tvariant=\"tertiary\">\n\t\t\t<template #icon>\n\t\t\t\t<div class=\"resource__icon\">\n\t\t\t\t\t<img :src=\"icon\">\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t{{ name }}\n\t\t</NcButton>\n\t</li>\n</template>\n\n<script>\nimport { t } from '../../l10n.js'\nimport NcButton from '../NcButton/index.js'\nimport { getRoute } from '../NcRichText/autolink.js'\n\nexport default {\n\tname: 'NcResource',\n\n\tcomponents: {\n\t\tNcButton,\n\t},\n\n\t/* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n\tprops: {\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\turl: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tlabelTranslated: t('Open link to \"{resourceName}\"', { resourceName: this.name }),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\troute() {\n\t\t\treturn getRoute(this.$router, this.url)\n\t\t},\n\t},\n\n\tmethods: {\n\t\tt,\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.resource {\n\tdisplay: flex;\n\talign-items: center;\n\theight: var(--default-clickable-area);\n\n\t// Override default NcButton styles\n\t&__button {\n\t\twidth: 100% !important;\n\t\tjustify-content: flex-start !important;\n\t\tpadding: 0 !important;\n\n\t\t&:deep {\n\t\t\t.button-vue__wrapper {\n\t\t\t\tjustify-content: flex-start !important;\n\n\t\t\t\t.button-vue__text {\n\t\t\t\t\tfont-weight: normal !important;\n\t\t\t\t\tmargin-left: 2px !important;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t&__icon {\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t\tborder-radius: 50%;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\n\t\timg {\n\t\t\twidth: 16px;\n\t\t\theight: 16px;\n\t\t\tfilter: var(--background-invert-if-dark);\n\t\t}\n\t}\n}\n</style>\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon account-group-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"AccountGroupIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon open-in-new-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"OpenInNewIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<div v-if=\"appEnabled && isVisible\" class=\"team-resources\">\n\t\t<h5 class=\"team-resources__header\">\n\t\t\t{{ t('Related team resources') }}\n\t\t</h5>\n\t\t<details\n\t\t\tv-for=\"team in teamResources\"\n\t\t\t:key=\"team.teamId\"\n\t\t\tname=\"Team resources\"\n\t\t\tclass=\"related-team\"\n\t\t\t:open=\"open(team.teamId)\"\n\t\t\t@toggle=\"(event) => toggleOpen(team.teamId, event.target.open)\">\n\t\t\t<summary class=\"related-team__header\">\n\t\t\t\t<h5 class=\"related-team__name\">\n\t\t\t\t\t<AccountGroup :size=\"20\" />\n\t\t\t\t\t{{ team.displayName }}\n\t\t\t\t</h5>\n\t\t\t\t<NcButton\n\t\t\t\t\t:aria-label=\"t('View team')\"\n\t\t\t\t\t:href=\"team.link\"\n\t\t\t\t\t:title=\"t('View team')\"\n\t\t\t\t\tvariant=\"tertiary\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<OpenInNew :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\n\t\t\t\t<ChevronUp\n\t\t\t\t\tv-if=\"open(team.teamId)\"\n\t\t\t\t\t:size=\"20\" />\n\t\t\t\t<ChevronDown\n\t\t\t\t\tv-else\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</summary>\n\n\t\t\t<div>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"provider in teamProviders(team.teamId)\"\n\t\t\t\t\t:key=\"provider.id\"\n\t\t\t\t\tclass=\"related-team-provider\">\n\t\t\t\t\t<h6 v-if=\"provider.resources.length > 0\">\n\t\t\t\t\t\t{{ provider.name }}\n\t\t\t\t\t</h6>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li v-for=\"resource in provider.resources\" :key=\"resource.url\" class=\"related-team-resource\">\n\t\t\t\t\t\t\t<a :href=\"resource.url\" class=\"related-team-resource__link\">\n\t\t\t\t\t\t\t\t<span v-if=\"resource.iconEmoji\" class=\"resource__icon\">\n\t\t\t\t\t\t\t\t\t{{ resource.iconEmoji }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<NcIconSvgWrapper\n\t\t\t\t\t\t\t\t\tv-else-if=\"resource.iconSvg\"\n\t\t\t\t\t\t\t\t\tclass=\"resource__icon\"\n\t\t\t\t\t\t\t\t\t:svg=\"resource.iconSvg\"\n\t\t\t\t\t\t\t\t\t:size=\"20\" />\n\t\t\t\t\t\t\t\t<span v-else-if=\"resource.iconURL\" class=\"resource__icon\">\n\t\t\t\t\t\t\t\t\t<img :src=\"resource.iconURL\" alt=\"\">\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<span class=\"resource__name\">\n\t\t\t\t\t\t\t\t\t{{ resource.label }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</details>\n\t</div>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport AccountGroup from 'vue-material-design-icons/AccountGroup.vue'\nimport ChevronDown from 'vue-material-design-icons/ChevronDown.vue'\nimport ChevronUp from 'vue-material-design-icons/ChevronUp.vue'\nimport OpenInNew from 'vue-material-design-icons/OpenInNew.vue'\nimport NcButton from '../NcButton/NcButton.vue'\nimport NcIconSvgWrapper from '../NcIconSvgWrapper/NcIconSvgWrapper.vue'\nimport { t } from '../../l10n.js'\nimport { logger } from '../../utils/logger.ts'\n\nconst teamResourceProviders = getCapabilities()?.circles?.teamResourceProviders ?? []\n\nexport default {\n\tname: 'NcTeamResources',\n\n\tcomponents: {\n\t\tAccountGroup,\n\t\tChevronDown,\n\t\tChevronUp,\n\t\tOpenInNew,\n\t\tNcButton,\n\t\tNcIconSvgWrapper,\n\t},\n\n\t/* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n\tprops: {\n\t\tproviderId: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\titemId: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tappEnabled: OC?.appswebroots?.circles !== undefined && (OC.config.version.split('.')[0] ?? 0) >= 29,\n\t\t\tloading: false,\n\t\t\tteamResources: null,\n\t\t\tteamOpen: [],\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisVisible() {\n\t\t\treturn !this.loading && this.teamResources?.length > 0\n\t\t},\n\n\t\tteamProviders() {\n\t\t\treturn (teamId) => {\n\t\t\t\tconst team = this.teamResources.find((t) => t.teamId === teamId)\n\t\t\t\treturn team.resources?.reduce((acc, resource) => {\n\t\t\t\t\tif (resource.provider.id === this.providerId && resource.id === String(this.itemId)) {\n\t\t\t\t\t\treturn acc\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!acc[resource.provider.id]) {\n\t\t\t\t\t\tacc[resource.provider.id] = resource.provider\n\t\t\t\t\t\tacc[resource.provider.id].resources = []\n\t\t\t\t\t}\n\n\t\t\t\t\tif (resource.provider.id === this.providerId && resource.id === String(this.itemId)) {\n\t\t\t\t\t\treturn acc\n\t\t\t\t\t}\n\n\t\t\t\t\tacc[resource.provider.id].resources.push(resource)\n\t\t\t\t\treturn acc\n\t\t\t\t}, {})\n\t\t\t}\n\t\t},\n\n\t\topen() {\n\t\t\treturn (teamId) => {\n\t\t\t\treturn this.teamOpen.indexOf(teamId) !== -1\n\t\t\t}\n\t\t},\n\t},\n\n\twatch: {\n\t\tproviderId() {\n\t\t\tthis.fetchTeamResources()\n\t\t},\n\n\t\titemId() {\n\t\t\tthis.fetchTeamResources()\n\t\t},\n\t},\n\n\tcreated() {\n\t\tthis.fetchTeamResources()\n\t},\n\n\tmethods: {\n\t\tt,\n\t\tasync fetchTeamResources() {\n\t\t\tif (!teamResourceProviders.includes(this.providerId)) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tthis.loading = true\n\t\t\t\tconst response = await axios.get(generateOcsUrl(`/teams/resources/${this.providerId}/${this.itemId}`))\n\t\t\t\tthis.teamResources = response.data.ocs.data.teams\n\t\t\t\tthis.teamOpen = [this.teamResources[0]?.teamId]\n\t\t\t} catch (error) {\n\t\t\t\tthis.teamResources = null\n\t\t\t\tlogger.error('Could not fetch Teams resources', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\ttoggleOpen(teamId, open) {\n\t\t\tif (open) {\n\t\t\t\tthis.teamOpen.push(teamId)\n\t\t\t} else {\n\t\t\t\tthis.teamOpen.splice(this.teamOpen.indexOf(teamId), 1)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.team-resources__header {\n\tfont-weight: bold;\n\tmargin-bottom: 6px;\n}\n\n.related-team {\n\tborder-radius: var(--border-radius-rounded);\n\tborder: 2px solid var(--color-border-dark);\n\tmargin-bottom: 6px;\n\n\t&__open {\n\t\tborder-color: var(--color-primary-element);\n\t}\n\n\t&__header {\n\t\tpadding: 6px;\n\t\tpadding-right: 24px;\n\t\tdisplay: flex;\n\t\tgap: 12px;\n\t}\n\n\t&__name {\n\t\tdisplay: flex;\n\t\tflex-grow: 1;\n\t\talign-items: center;\n\t\tgap: 12px;\n\t\tpadding: 6px 12px;\n\t\tfont-weight: bold;\n\t\tmargin: 0;\n\t}\n\n\t.related-team-provider {\n\t\tpadding: 6px 12px;\n\n\t\t&__name {\n\t\t\tfont-weight: bold;\n\t\t\tmargin-bottom: 3px;\n\t\t}\n\n\t\t&__link {\n\t\t\tdisplay: flex;\n\t\t\tgap: 12px;\n\t\t\tpadding: 6px 12px;\n\t\t\tfont-weight: bold;\n\t\t}\n\t}\n\n\t.related-team-resource {\n\t\t&__link {\n\t\t\tdisplay: flex;\n\t\t\tgap: 12px;\n\t\t\theight: var(--default-clickable-area);\n\t\t\talign-items: center;\n\t\t\tborder-radius: var(--border-radius-large);\n\n\t\t\t&:hover {\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t}\n\t\t\t&:focus {\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t\toutline: 2px solid var(--color-primary-element);\n\t\t\t}\n\t\t}\n\t\t.resource__icon {\n\t\t\twidth: var(--default-clickable-area);\n\t\t\theight: var(--default-clickable-area);\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\ttext-align: center;\n\n\t\t\t& > img {\n\t\t\t\tborder-radius: var(--border-radius-pill);\n\t\t\t\toverflow: hidden;\n\t\t\t\twidth: 32px;\n\t\t\t\theight: 32px;\n\t\t\t}\n\t\t}\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Usage\n\nUse this component to display the related resources of a given item.\n\n```\n<template>\n\t<NcRelatedResourcesPanel provider-id=\"talk\"\n\t\theader=\"Related resources for talk\"\n\t\t:item-id=\"conversationId\" />\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tconversationId: 1,\n\t\t}\n\t},\n}\n</script>\n```\n</docs>\n\n<template>\n\t<div>\n\t\t<NcTeamResources\n\t\t\t:provider-id=\"providerId\"\n\t\t\t:item-id=\"itemId\" />\n\n\t\t<div v-if=\"appEnabled && isVisible\" class=\"related-resources\">\n\t\t\t<div class=\"related-resources__header\">\n\t\t\t\t<h5>{{ header }}</h5>\n\t\t\t\t<p>{{ subline }}</p>\n\t\t\t</div>\n\n\t\t\t<NcResource\n\t\t\t\tv-for=\"resource in resources\"\n\t\t\t\t:key=\"resource.itemId\"\n\t\t\t\tclass=\"related-resources__entry\"\n\t\t\t\t:icon=\"resource.icon\"\n\t\t\t\t:name=\"resource.title\"\n\t\t\t\t:url=\"resource.url\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport NcResource from './NcResource.vue'\nimport NcTeamResources from './NcTeamResources.vue'\nimport { t } from '../../l10n.js'\nimport { logger } from '../../utils/logger.ts'\n\nexport default {\n\tname: 'NcRelatedResourcesPanel',\n\n\tcomponents: {\n\t\tNcResource,\n\t\tNcTeamResources,\n\t},\n\n\t/* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n\tprops: {\n\t\t/**\n\t\t * The provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n\t\t */\n\t\tproviderId: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * The item id which uniquely identities the e.g. Calendar event, Deck board, file, Talk room, etc.\n\t\t */\n\t\titemId: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Limits to specific resource type. i.e. any provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n\t\t */\n\t\tresourceType: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Set the maximum number of resources to load\n\t\t */\n\t\tlimit: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0,\n\t\t},\n\n\t\t/**\n\t\t * Only used by the files sidebar\n\t\t *\n\t\t * File info is passed when registered with `OCA.Sharing.ShareTabSections.registerSection()`\n\t\t */\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Make the header name dynamic\n\t\t */\n\t\theader: {\n\t\t\ttype: String,\n\t\t\tdefault: t('Related resources'),\n\t\t},\n\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: t('Anything shared with the same group of people will show up here'),\n\t\t},\n\n\t\t/**\n\t\t * If this element is used on a primary element set to true for primary styling.\n\t\t */\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\temits: [\n\t\t'has-error',\n\t\t'has-resources',\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tappEnabled: OC?.appswebroots?.related_resources !== undefined,\n\t\t\tloading: false,\n\t\t\terror: null,\n\t\t\tresources: [],\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisVisible() {\n\t\t\tif (this.loading) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn this.error ?? this.resources.length > 0\n\t\t},\n\n\t\tsubline() {\n\t\t\tif (this.error) {\n\t\t\t\treturn t('Error getting related resources. Please contact your system administrator if you have any questions.')\n\t\t\t}\n\t\t\treturn this.description\n\t\t},\n\n\t\thasResourceInfo() {\n\t\t\tif (this.providerId !== null && this.itemId !== null) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (this.fileInfo !== null) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\n\t\tisFiles() {\n\t\t\treturn this.fileInfo?.id !== undefined\n\t\t},\n\n\t\turl() {\n\t\t\tlet providerId = null\n\t\t\tlet itemId = null\n\n\t\t\tif (this.isFiles) {\n\t\t\t\tproviderId = 'files'\n\t\t\t\titemId = this.fileInfo.id\n\t\t\t} else {\n\t\t\t\tproviderId = this.providerId\n\t\t\t\titemId = this.itemId\n\t\t\t}\n\n\t\t\treturn generateOcsUrl('/apps/related_resources/related/{providerId}?itemId={itemId}&resourceType={resourceType}&limit={limit}&format=json', {\n\t\t\t\tproviderId,\n\t\t\t\titemId,\n\t\t\t\tresourceType: this.resourceType,\n\t\t\t\tlimit: this.limit,\n\t\t\t})\n\t\t},\n\t},\n\n\twatch: {\n\t\tproviderId() {\n\t\t\tthis.fetchRelatedResources()\n\t\t},\n\n\t\titemId() {\n\t\t\tthis.fetchRelatedResources()\n\t\t},\n\n\t\tfileInfo() {\n\t\t\tthis.fetchRelatedResources()\n\t\t},\n\n\t\terror(error) {\n\t\t\t/**\n\t\t\t * Emitted when the error value changes\n\t\t\t *\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tthis.$emit('has-error', Boolean(error))\n\t\t},\n\n\t\tresources(resources) {\n\t\t\t/**\n\t\t\t * Emitted when the resources value changes\n\t\t\t *\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tthis.$emit('has-resources', resources.length > 0)\n\t\t},\n\t},\n\n\tcreated() {\n\t\tthis.fetchRelatedResources()\n\t},\n\n\tmethods: {\n\t\tt,\n\t\tasync fetchRelatedResources() {\n\t\t\tif (!this.appEnabled || !this.hasResourceInfo) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.loading = true\n\t\t\tthis.error = null\n\t\t\tthis.resources = []\n\t\t\ttry {\n\t\t\t\tconst response = await axios.get(this.url)\n\t\t\t\tthis.resources = response.data.ocs?.data\n\t\t\t} catch (error) {\n\t\t\t\tthis.error = e\n\t\t\t\tlogger.error('Could not fetch related resources', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.related-resources {\n\t&__header {\n\n\t\th5 {\n\t\t\tfont-weight: bold;\n\t\t\tmargin-bottom: 6px;\n\t\t}\n\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n}\n</style>\n"],"names":["_sfc_main","NcButton","t","getRoute","getCapabilities","ChevronDown","ChevronUp","NcIconSvgWrapper","axios","generateOcsUrl","logger"],"mappings":"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","x_google_ignoreList":[1,2]}
@@ -1,7 +1,7 @@
1
1
  import '../assets/NcRelatedResourcesPanel-BgMc8bue.css';
2
2
  import axios from "@nextcloud/axios";
3
3
  import { generateOcsUrl } from "@nextcloud/router";
4
- import { r as register, O as t38, a as t, P as t41, Q as t9 } from "./_l10n-BWisB7-O.mjs";
4
+ import { r as register, O as t39, a as t, P as t42, Q as t9 } from "./_l10n-BmKQgz1z.mjs";
5
5
  import { N as NcButton } from "./NcButton-DUZTtFhr.mjs";
6
6
  import { g as getRoute } from "./autolink-D2pIbi92.mjs";
7
7
  import { n as normalizeComponent } from "./_plugin-vue2_normalizer-DU4iP6Vu.mjs";
@@ -10,7 +10,7 @@ import { C as ChevronDown } from "./ChevronDown-DFQfzh63.mjs";
10
10
  import { C as ChevronUp } from "./ChevronUp-C7Dy9Bph.mjs";
11
11
  import { N as NcIconSvgWrapper } from "./NcIconSvgWrapper-BreCg8pX.mjs";
12
12
  import { l as logger } from "./logger-D3RVzcfQ.mjs";
13
- register(t38);
13
+ register(t39);
14
14
  const _sfc_main$4 = {
15
15
  name: "NcResource",
16
16
  components: {
@@ -127,7 +127,7 @@ var __component__$2 = /* @__PURE__ */ normalizeComponent(
127
127
  null
128
128
  );
129
129
  const OpenInNew = __component__$2.exports;
130
- register(t41);
130
+ register(t42);
131
131
  const teamResourceProviders = getCapabilities()?.circles?.teamResourceProviders ?? [];
132
132
  const _sfc_main$1 = {
133
133
  name: "NcTeamResources",
@@ -427,4 +427,4 @@ const NcRelatedResourcesPanel = __component__.exports;
427
427
  export {
428
428
  NcRelatedResourcesPanel as N
429
429
  };
430
- //# sourceMappingURL=NcRelatedResourcesPanel-BTyqVb_E.mjs.map
430
+ //# sourceMappingURL=NcRelatedResourcesPanel-D9-wo_xr.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NcRelatedResourcesPanel-BTyqVb_E.mjs","sources":["../../src/components/NcRelatedResourcesPanel/NcResource.vue","../../node_modules/vue-material-design-icons/AccountGroup.vue","../../node_modules/vue-material-design-icons/OpenInNew.vue","../../src/components/NcRelatedResourcesPanel/NcTeamResources.vue","../../src/components/NcRelatedResourcesPanel/NcRelatedResourcesPanel.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<li class=\"resource\">\n\t\t<NcButton\n\t\t\tclass=\"resource__button\"\n\t\t\t:aria-label=\"labelTranslated\"\n\t\t\t:to=\"route\"\n\t\t\t:href=\"route ? null : url\"\n\t\t\tvariant=\"tertiary\">\n\t\t\t<template #icon>\n\t\t\t\t<div class=\"resource__icon\">\n\t\t\t\t\t<img :src=\"icon\">\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t{{ name }}\n\t\t</NcButton>\n\t</li>\n</template>\n\n<script>\nimport { t } from '../../l10n.js'\nimport NcButton from '../NcButton/index.js'\nimport { getRoute } from '../NcRichText/autolink.js'\n\nexport default {\n\tname: 'NcResource',\n\n\tcomponents: {\n\t\tNcButton,\n\t},\n\n\t/* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n\tprops: {\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\turl: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tlabelTranslated: t('Open link to \"{resourceName}\"', { resourceName: this.name }),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\troute() {\n\t\t\treturn getRoute(this.$router, this.url)\n\t\t},\n\t},\n\n\tmethods: {\n\t\tt,\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.resource {\n\tdisplay: flex;\n\talign-items: center;\n\theight: var(--default-clickable-area);\n\n\t// Override default NcButton styles\n\t&__button {\n\t\twidth: 100% !important;\n\t\tjustify-content: flex-start !important;\n\t\tpadding: 0 !important;\n\n\t\t&:deep {\n\t\t\t.button-vue__wrapper {\n\t\t\t\tjustify-content: flex-start !important;\n\n\t\t\t\t.button-vue__text {\n\t\t\t\t\tfont-weight: normal !important;\n\t\t\t\t\tmargin-left: 2px !important;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t&__icon {\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t\tborder-radius: 50%;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\n\t\timg {\n\t\t\twidth: 16px;\n\t\t\theight: 16px;\n\t\t\tfilter: var(--background-invert-if-dark);\n\t\t}\n\t}\n}\n</style>\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon account-group-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"AccountGroupIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon open-in-new-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"OpenInNewIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<div v-if=\"appEnabled && isVisible\" class=\"team-resources\">\n\t\t<h5 class=\"team-resources__header\">\n\t\t\t{{ t('Related team resources') }}\n\t\t</h5>\n\t\t<details\n\t\t\tv-for=\"team in teamResources\"\n\t\t\t:key=\"team.teamId\"\n\t\t\tname=\"Team resources\"\n\t\t\tclass=\"related-team\"\n\t\t\t:open=\"open(team.teamId)\"\n\t\t\t@toggle=\"(event) => toggleOpen(team.teamId, event.target.open)\">\n\t\t\t<summary class=\"related-team__header\">\n\t\t\t\t<h5 class=\"related-team__name\">\n\t\t\t\t\t<AccountGroup :size=\"20\" />\n\t\t\t\t\t{{ team.displayName }}\n\t\t\t\t</h5>\n\t\t\t\t<NcButton\n\t\t\t\t\t:aria-label=\"t('View team')\"\n\t\t\t\t\t:href=\"team.link\"\n\t\t\t\t\t:title=\"t('View team')\"\n\t\t\t\t\tvariant=\"tertiary\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<OpenInNew :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\n\t\t\t\t<ChevronUp\n\t\t\t\t\tv-if=\"open(team.teamId)\"\n\t\t\t\t\t:size=\"20\" />\n\t\t\t\t<ChevronDown\n\t\t\t\t\tv-else\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</summary>\n\n\t\t\t<div>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"provider in teamProviders(team.teamId)\"\n\t\t\t\t\t:key=\"provider.id\"\n\t\t\t\t\tclass=\"related-team-provider\">\n\t\t\t\t\t<h6 v-if=\"provider.resources.length > 0\">\n\t\t\t\t\t\t{{ provider.name }}\n\t\t\t\t\t</h6>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li v-for=\"resource in provider.resources\" :key=\"resource.url\" class=\"related-team-resource\">\n\t\t\t\t\t\t\t<a :href=\"resource.url\" class=\"related-team-resource__link\">\n\t\t\t\t\t\t\t\t<span v-if=\"resource.iconEmoji\" class=\"resource__icon\">\n\t\t\t\t\t\t\t\t\t{{ resource.iconEmoji }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<NcIconSvgWrapper\n\t\t\t\t\t\t\t\t\tv-else-if=\"resource.iconSvg\"\n\t\t\t\t\t\t\t\t\tclass=\"resource__icon\"\n\t\t\t\t\t\t\t\t\t:svg=\"resource.iconSvg\"\n\t\t\t\t\t\t\t\t\t:size=\"20\" />\n\t\t\t\t\t\t\t\t<span v-else-if=\"resource.iconURL\" class=\"resource__icon\">\n\t\t\t\t\t\t\t\t\t<img :src=\"resource.iconURL\" alt=\"\">\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<span class=\"resource__name\">\n\t\t\t\t\t\t\t\t\t{{ resource.label }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</details>\n\t</div>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport AccountGroup from 'vue-material-design-icons/AccountGroup.vue'\nimport ChevronDown from 'vue-material-design-icons/ChevronDown.vue'\nimport ChevronUp from 'vue-material-design-icons/ChevronUp.vue'\nimport OpenInNew from 'vue-material-design-icons/OpenInNew.vue'\nimport NcButton from '../NcButton/NcButton.vue'\nimport NcIconSvgWrapper from '../NcIconSvgWrapper/NcIconSvgWrapper.vue'\nimport { t } from '../../l10n.js'\nimport { logger } from '../../utils/logger.ts'\n\nconst teamResourceProviders = getCapabilities()?.circles?.teamResourceProviders ?? []\n\nexport default {\n\tname: 'NcTeamResources',\n\n\tcomponents: {\n\t\tAccountGroup,\n\t\tChevronDown,\n\t\tChevronUp,\n\t\tOpenInNew,\n\t\tNcButton,\n\t\tNcIconSvgWrapper,\n\t},\n\n\t/* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n\tprops: {\n\t\tproviderId: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\titemId: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tappEnabled: OC?.appswebroots?.circles !== undefined && (OC.config.version.split('.')[0] ?? 0) >= 29,\n\t\t\tloading: false,\n\t\t\tteamResources: null,\n\t\t\tteamOpen: [],\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisVisible() {\n\t\t\treturn !this.loading && this.teamResources?.length > 0\n\t\t},\n\n\t\tteamProviders() {\n\t\t\treturn (teamId) => {\n\t\t\t\tconst team = this.teamResources.find((t) => t.teamId === teamId)\n\t\t\t\treturn team.resources?.reduce((acc, resource) => {\n\t\t\t\t\tif (resource.provider.id === this.providerId && resource.id === String(this.itemId)) {\n\t\t\t\t\t\treturn acc\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!acc[resource.provider.id]) {\n\t\t\t\t\t\tacc[resource.provider.id] = resource.provider\n\t\t\t\t\t\tacc[resource.provider.id].resources = []\n\t\t\t\t\t}\n\n\t\t\t\t\tif (resource.provider.id === this.providerId && resource.id === String(this.itemId)) {\n\t\t\t\t\t\treturn acc\n\t\t\t\t\t}\n\n\t\t\t\t\tacc[resource.provider.id].resources.push(resource)\n\t\t\t\t\treturn acc\n\t\t\t\t}, {})\n\t\t\t}\n\t\t},\n\n\t\topen() {\n\t\t\treturn (teamId) => {\n\t\t\t\treturn this.teamOpen.indexOf(teamId) !== -1\n\t\t\t}\n\t\t},\n\t},\n\n\twatch: {\n\t\tproviderId() {\n\t\t\tthis.fetchTeamResources()\n\t\t},\n\n\t\titemId() {\n\t\t\tthis.fetchTeamResources()\n\t\t},\n\t},\n\n\tcreated() {\n\t\tthis.fetchTeamResources()\n\t},\n\n\tmethods: {\n\t\tt,\n\t\tasync fetchTeamResources() {\n\t\t\tif (!teamResourceProviders.includes(this.providerId)) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tthis.loading = true\n\t\t\t\tconst response = await axios.get(generateOcsUrl(`/teams/resources/${this.providerId}/${this.itemId}`))\n\t\t\t\tthis.teamResources = response.data.ocs.data.teams\n\t\t\t\tthis.teamOpen = [this.teamResources[0]?.teamId]\n\t\t\t} catch (error) {\n\t\t\t\tthis.teamResources = null\n\t\t\t\tlogger.error('Could not fetch Teams resources', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\ttoggleOpen(teamId, open) {\n\t\t\tif (open) {\n\t\t\t\tthis.teamOpen.push(teamId)\n\t\t\t} else {\n\t\t\t\tthis.teamOpen.splice(this.teamOpen.indexOf(teamId), 1)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.team-resources__header {\n\tfont-weight: bold;\n\tmargin-bottom: 6px;\n}\n\n.related-team {\n\tborder-radius: var(--border-radius-rounded);\n\tborder: 2px solid var(--color-border-dark);\n\tmargin-bottom: 6px;\n\n\t&__open {\n\t\tborder-color: var(--color-primary-element);\n\t}\n\n\t&__header {\n\t\tpadding: 6px;\n\t\tpadding-right: 24px;\n\t\tdisplay: flex;\n\t\tgap: 12px;\n\t}\n\n\t&__name {\n\t\tdisplay: flex;\n\t\tflex-grow: 1;\n\t\talign-items: center;\n\t\tgap: 12px;\n\t\tpadding: 6px 12px;\n\t\tfont-weight: bold;\n\t\tmargin: 0;\n\t}\n\n\t.related-team-provider {\n\t\tpadding: 6px 12px;\n\n\t\t&__name {\n\t\t\tfont-weight: bold;\n\t\t\tmargin-bottom: 3px;\n\t\t}\n\n\t\t&__link {\n\t\t\tdisplay: flex;\n\t\t\tgap: 12px;\n\t\t\tpadding: 6px 12px;\n\t\t\tfont-weight: bold;\n\t\t}\n\t}\n\n\t.related-team-resource {\n\t\t&__link {\n\t\t\tdisplay: flex;\n\t\t\tgap: 12px;\n\t\t\theight: var(--default-clickable-area);\n\t\t\talign-items: center;\n\t\t\tborder-radius: var(--border-radius-large);\n\n\t\t\t&:hover {\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t}\n\t\t\t&:focus {\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t\toutline: 2px solid var(--color-primary-element);\n\t\t\t}\n\t\t}\n\t\t.resource__icon {\n\t\t\twidth: var(--default-clickable-area);\n\t\t\theight: var(--default-clickable-area);\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\ttext-align: center;\n\n\t\t\t& > img {\n\t\t\t\tborder-radius: var(--border-radius-pill);\n\t\t\t\toverflow: hidden;\n\t\t\t\twidth: 32px;\n\t\t\t\theight: 32px;\n\t\t\t}\n\t\t}\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Usage\n\nUse this component to display the related resources of a given item.\n\n```\n<template>\n\t<NcRelatedResourcesPanel provider-id=\"talk\"\n\t\theader=\"Related resources for talk\"\n\t\t:item-id=\"conversationId\" />\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tconversationId: 1,\n\t\t}\n\t},\n}\n</script>\n```\n</docs>\n\n<template>\n\t<div>\n\t\t<NcTeamResources\n\t\t\t:provider-id=\"providerId\"\n\t\t\t:item-id=\"itemId\" />\n\n\t\t<div v-if=\"appEnabled && isVisible\" class=\"related-resources\">\n\t\t\t<div class=\"related-resources__header\">\n\t\t\t\t<h5>{{ header }}</h5>\n\t\t\t\t<p>{{ subline }}</p>\n\t\t\t</div>\n\n\t\t\t<NcResource\n\t\t\t\tv-for=\"resource in resources\"\n\t\t\t\t:key=\"resource.itemId\"\n\t\t\t\tclass=\"related-resources__entry\"\n\t\t\t\t:icon=\"resource.icon\"\n\t\t\t\t:name=\"resource.title\"\n\t\t\t\t:url=\"resource.url\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport NcResource from './NcResource.vue'\nimport NcTeamResources from './NcTeamResources.vue'\nimport { t } from '../../l10n.js'\nimport { logger } from '../../utils/logger.ts'\n\nexport default {\n\tname: 'NcRelatedResourcesPanel',\n\n\tcomponents: {\n\t\tNcResource,\n\t\tNcTeamResources,\n\t},\n\n\t/* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n\tprops: {\n\t\t/**\n\t\t * The provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n\t\t */\n\t\tproviderId: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * The item id which uniquely identities the e.g. Calendar event, Deck board, file, Talk room, etc.\n\t\t */\n\t\titemId: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Limits to specific resource type. i.e. any provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n\t\t */\n\t\tresourceType: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Set the maximum number of resources to load\n\t\t */\n\t\tlimit: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0,\n\t\t},\n\n\t\t/**\n\t\t * Only used by the files sidebar\n\t\t *\n\t\t * File info is passed when registered with `OCA.Sharing.ShareTabSections.registerSection()`\n\t\t */\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Make the header name dynamic\n\t\t */\n\t\theader: {\n\t\t\ttype: String,\n\t\t\tdefault: t('Related resources'),\n\t\t},\n\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: t('Anything shared with the same group of people will show up here'),\n\t\t},\n\n\t\t/**\n\t\t * If this element is used on a primary element set to true for primary styling.\n\t\t */\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\temits: [\n\t\t'has-error',\n\t\t'has-resources',\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tappEnabled: OC?.appswebroots?.related_resources !== undefined,\n\t\t\tloading: false,\n\t\t\terror: null,\n\t\t\tresources: [],\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisVisible() {\n\t\t\tif (this.loading) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn this.error ?? this.resources.length > 0\n\t\t},\n\n\t\tsubline() {\n\t\t\tif (this.error) {\n\t\t\t\treturn t('Error getting related resources. Please contact your system administrator if you have any questions.')\n\t\t\t}\n\t\t\treturn this.description\n\t\t},\n\n\t\thasResourceInfo() {\n\t\t\tif (this.providerId !== null && this.itemId !== null) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (this.fileInfo !== null) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\n\t\tisFiles() {\n\t\t\treturn this.fileInfo?.id !== undefined\n\t\t},\n\n\t\turl() {\n\t\t\tlet providerId = null\n\t\t\tlet itemId = null\n\n\t\t\tif (this.isFiles) {\n\t\t\t\tproviderId = 'files'\n\t\t\t\titemId = this.fileInfo.id\n\t\t\t} else {\n\t\t\t\tproviderId = this.providerId\n\t\t\t\titemId = this.itemId\n\t\t\t}\n\n\t\t\treturn generateOcsUrl('/apps/related_resources/related/{providerId}?itemId={itemId}&resourceType={resourceType}&limit={limit}&format=json', {\n\t\t\t\tproviderId,\n\t\t\t\titemId,\n\t\t\t\tresourceType: this.resourceType,\n\t\t\t\tlimit: this.limit,\n\t\t\t})\n\t\t},\n\t},\n\n\twatch: {\n\t\tproviderId() {\n\t\t\tthis.fetchRelatedResources()\n\t\t},\n\n\t\titemId() {\n\t\t\tthis.fetchRelatedResources()\n\t\t},\n\n\t\tfileInfo() {\n\t\t\tthis.fetchRelatedResources()\n\t\t},\n\n\t\terror(error) {\n\t\t\t/**\n\t\t\t * Emitted when the error value changes\n\t\t\t *\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tthis.$emit('has-error', Boolean(error))\n\t\t},\n\n\t\tresources(resources) {\n\t\t\t/**\n\t\t\t * Emitted when the resources value changes\n\t\t\t *\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tthis.$emit('has-resources', resources.length > 0)\n\t\t},\n\t},\n\n\tcreated() {\n\t\tthis.fetchRelatedResources()\n\t},\n\n\tmethods: {\n\t\tt,\n\t\tasync fetchRelatedResources() {\n\t\t\tif (!this.appEnabled || !this.hasResourceInfo) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.loading = true\n\t\t\tthis.error = null\n\t\t\tthis.resources = []\n\t\t\ttry {\n\t\t\t\tconst response = await axios.get(this.url)\n\t\t\t\tthis.resources = response.data.ocs?.data\n\t\t\t} catch (error) {\n\t\t\t\tthis.error = e\n\t\t\t\tlogger.error('Could not fetch related resources', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.related-resources {\n\t&__header {\n\n\t\th5 {\n\t\t\tfont-weight: bold;\n\t\t\tmargin-bottom: 6px;\n\t\t}\n\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n}\n</style>\n"],"names":["_sfc_main","t"],"mappings":"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","x_google_ignoreList":[1,2]}
1
+ {"version":3,"file":"NcRelatedResourcesPanel-D9-wo_xr.mjs","sources":["../../src/components/NcRelatedResourcesPanel/NcResource.vue","../../node_modules/vue-material-design-icons/AccountGroup.vue","../../node_modules/vue-material-design-icons/OpenInNew.vue","../../src/components/NcRelatedResourcesPanel/NcTeamResources.vue","../../src/components/NcRelatedResourcesPanel/NcRelatedResourcesPanel.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<li class=\"resource\">\n\t\t<NcButton\n\t\t\tclass=\"resource__button\"\n\t\t\t:aria-label=\"labelTranslated\"\n\t\t\t:to=\"route\"\n\t\t\t:href=\"route ? null : url\"\n\t\t\tvariant=\"tertiary\">\n\t\t\t<template #icon>\n\t\t\t\t<div class=\"resource__icon\">\n\t\t\t\t\t<img :src=\"icon\">\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t{{ name }}\n\t\t</NcButton>\n\t</li>\n</template>\n\n<script>\nimport { t } from '../../l10n.js'\nimport NcButton from '../NcButton/index.js'\nimport { getRoute } from '../NcRichText/autolink.js'\n\nexport default {\n\tname: 'NcResource',\n\n\tcomponents: {\n\t\tNcButton,\n\t},\n\n\t/* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n\tprops: {\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\turl: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tlabelTranslated: t('Open link to \"{resourceName}\"', { resourceName: this.name }),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\troute() {\n\t\t\treturn getRoute(this.$router, this.url)\n\t\t},\n\t},\n\n\tmethods: {\n\t\tt,\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.resource {\n\tdisplay: flex;\n\talign-items: center;\n\theight: var(--default-clickable-area);\n\n\t// Override default NcButton styles\n\t&__button {\n\t\twidth: 100% !important;\n\t\tjustify-content: flex-start !important;\n\t\tpadding: 0 !important;\n\n\t\t&:deep {\n\t\t\t.button-vue__wrapper {\n\t\t\t\tjustify-content: flex-start !important;\n\n\t\t\t\t.button-vue__text {\n\t\t\t\t\tfont-weight: normal !important;\n\t\t\t\t\tmargin-left: 2px !important;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t&__icon {\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t\tborder-radius: 50%;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\n\t\timg {\n\t\t\twidth: 16px;\n\t\t\theight: 16px;\n\t\t\tfilter: var(--background-invert-if-dark);\n\t\t}\n\t}\n}\n</style>\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon account-group-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"AccountGroupIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon open-in-new-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"OpenInNewIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<div v-if=\"appEnabled && isVisible\" class=\"team-resources\">\n\t\t<h5 class=\"team-resources__header\">\n\t\t\t{{ t('Related team resources') }}\n\t\t</h5>\n\t\t<details\n\t\t\tv-for=\"team in teamResources\"\n\t\t\t:key=\"team.teamId\"\n\t\t\tname=\"Team resources\"\n\t\t\tclass=\"related-team\"\n\t\t\t:open=\"open(team.teamId)\"\n\t\t\t@toggle=\"(event) => toggleOpen(team.teamId, event.target.open)\">\n\t\t\t<summary class=\"related-team__header\">\n\t\t\t\t<h5 class=\"related-team__name\">\n\t\t\t\t\t<AccountGroup :size=\"20\" />\n\t\t\t\t\t{{ team.displayName }}\n\t\t\t\t</h5>\n\t\t\t\t<NcButton\n\t\t\t\t\t:aria-label=\"t('View team')\"\n\t\t\t\t\t:href=\"team.link\"\n\t\t\t\t\t:title=\"t('View team')\"\n\t\t\t\t\tvariant=\"tertiary\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<OpenInNew :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\n\t\t\t\t<ChevronUp\n\t\t\t\t\tv-if=\"open(team.teamId)\"\n\t\t\t\t\t:size=\"20\" />\n\t\t\t\t<ChevronDown\n\t\t\t\t\tv-else\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</summary>\n\n\t\t\t<div>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"provider in teamProviders(team.teamId)\"\n\t\t\t\t\t:key=\"provider.id\"\n\t\t\t\t\tclass=\"related-team-provider\">\n\t\t\t\t\t<h6 v-if=\"provider.resources.length > 0\">\n\t\t\t\t\t\t{{ provider.name }}\n\t\t\t\t\t</h6>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li v-for=\"resource in provider.resources\" :key=\"resource.url\" class=\"related-team-resource\">\n\t\t\t\t\t\t\t<a :href=\"resource.url\" class=\"related-team-resource__link\">\n\t\t\t\t\t\t\t\t<span v-if=\"resource.iconEmoji\" class=\"resource__icon\">\n\t\t\t\t\t\t\t\t\t{{ resource.iconEmoji }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<NcIconSvgWrapper\n\t\t\t\t\t\t\t\t\tv-else-if=\"resource.iconSvg\"\n\t\t\t\t\t\t\t\t\tclass=\"resource__icon\"\n\t\t\t\t\t\t\t\t\t:svg=\"resource.iconSvg\"\n\t\t\t\t\t\t\t\t\t:size=\"20\" />\n\t\t\t\t\t\t\t\t<span v-else-if=\"resource.iconURL\" class=\"resource__icon\">\n\t\t\t\t\t\t\t\t\t<img :src=\"resource.iconURL\" alt=\"\">\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<span class=\"resource__name\">\n\t\t\t\t\t\t\t\t\t{{ resource.label }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</details>\n\t</div>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport AccountGroup from 'vue-material-design-icons/AccountGroup.vue'\nimport ChevronDown from 'vue-material-design-icons/ChevronDown.vue'\nimport ChevronUp from 'vue-material-design-icons/ChevronUp.vue'\nimport OpenInNew from 'vue-material-design-icons/OpenInNew.vue'\nimport NcButton from '../NcButton/NcButton.vue'\nimport NcIconSvgWrapper from '../NcIconSvgWrapper/NcIconSvgWrapper.vue'\nimport { t } from '../../l10n.js'\nimport { logger } from '../../utils/logger.ts'\n\nconst teamResourceProviders = getCapabilities()?.circles?.teamResourceProviders ?? []\n\nexport default {\n\tname: 'NcTeamResources',\n\n\tcomponents: {\n\t\tAccountGroup,\n\t\tChevronDown,\n\t\tChevronUp,\n\t\tOpenInNew,\n\t\tNcButton,\n\t\tNcIconSvgWrapper,\n\t},\n\n\t/* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n\tprops: {\n\t\tproviderId: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\titemId: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tappEnabled: OC?.appswebroots?.circles !== undefined && (OC.config.version.split('.')[0] ?? 0) >= 29,\n\t\t\tloading: false,\n\t\t\tteamResources: null,\n\t\t\tteamOpen: [],\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisVisible() {\n\t\t\treturn !this.loading && this.teamResources?.length > 0\n\t\t},\n\n\t\tteamProviders() {\n\t\t\treturn (teamId) => {\n\t\t\t\tconst team = this.teamResources.find((t) => t.teamId === teamId)\n\t\t\t\treturn team.resources?.reduce((acc, resource) => {\n\t\t\t\t\tif (resource.provider.id === this.providerId && resource.id === String(this.itemId)) {\n\t\t\t\t\t\treturn acc\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!acc[resource.provider.id]) {\n\t\t\t\t\t\tacc[resource.provider.id] = resource.provider\n\t\t\t\t\t\tacc[resource.provider.id].resources = []\n\t\t\t\t\t}\n\n\t\t\t\t\tif (resource.provider.id === this.providerId && resource.id === String(this.itemId)) {\n\t\t\t\t\t\treturn acc\n\t\t\t\t\t}\n\n\t\t\t\t\tacc[resource.provider.id].resources.push(resource)\n\t\t\t\t\treturn acc\n\t\t\t\t}, {})\n\t\t\t}\n\t\t},\n\n\t\topen() {\n\t\t\treturn (teamId) => {\n\t\t\t\treturn this.teamOpen.indexOf(teamId) !== -1\n\t\t\t}\n\t\t},\n\t},\n\n\twatch: {\n\t\tproviderId() {\n\t\t\tthis.fetchTeamResources()\n\t\t},\n\n\t\titemId() {\n\t\t\tthis.fetchTeamResources()\n\t\t},\n\t},\n\n\tcreated() {\n\t\tthis.fetchTeamResources()\n\t},\n\n\tmethods: {\n\t\tt,\n\t\tasync fetchTeamResources() {\n\t\t\tif (!teamResourceProviders.includes(this.providerId)) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tthis.loading = true\n\t\t\t\tconst response = await axios.get(generateOcsUrl(`/teams/resources/${this.providerId}/${this.itemId}`))\n\t\t\t\tthis.teamResources = response.data.ocs.data.teams\n\t\t\t\tthis.teamOpen = [this.teamResources[0]?.teamId]\n\t\t\t} catch (error) {\n\t\t\t\tthis.teamResources = null\n\t\t\t\tlogger.error('Could not fetch Teams resources', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\ttoggleOpen(teamId, open) {\n\t\t\tif (open) {\n\t\t\t\tthis.teamOpen.push(teamId)\n\t\t\t} else {\n\t\t\t\tthis.teamOpen.splice(this.teamOpen.indexOf(teamId), 1)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.team-resources__header {\n\tfont-weight: bold;\n\tmargin-bottom: 6px;\n}\n\n.related-team {\n\tborder-radius: var(--border-radius-rounded);\n\tborder: 2px solid var(--color-border-dark);\n\tmargin-bottom: 6px;\n\n\t&__open {\n\t\tborder-color: var(--color-primary-element);\n\t}\n\n\t&__header {\n\t\tpadding: 6px;\n\t\tpadding-right: 24px;\n\t\tdisplay: flex;\n\t\tgap: 12px;\n\t}\n\n\t&__name {\n\t\tdisplay: flex;\n\t\tflex-grow: 1;\n\t\talign-items: center;\n\t\tgap: 12px;\n\t\tpadding: 6px 12px;\n\t\tfont-weight: bold;\n\t\tmargin: 0;\n\t}\n\n\t.related-team-provider {\n\t\tpadding: 6px 12px;\n\n\t\t&__name {\n\t\t\tfont-weight: bold;\n\t\t\tmargin-bottom: 3px;\n\t\t}\n\n\t\t&__link {\n\t\t\tdisplay: flex;\n\t\t\tgap: 12px;\n\t\t\tpadding: 6px 12px;\n\t\t\tfont-weight: bold;\n\t\t}\n\t}\n\n\t.related-team-resource {\n\t\t&__link {\n\t\t\tdisplay: flex;\n\t\t\tgap: 12px;\n\t\t\theight: var(--default-clickable-area);\n\t\t\talign-items: center;\n\t\t\tborder-radius: var(--border-radius-large);\n\n\t\t\t&:hover {\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t}\n\t\t\t&:focus {\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t\toutline: 2px solid var(--color-primary-element);\n\t\t\t}\n\t\t}\n\t\t.resource__icon {\n\t\t\twidth: var(--default-clickable-area);\n\t\t\theight: var(--default-clickable-area);\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\ttext-align: center;\n\n\t\t\t& > img {\n\t\t\t\tborder-radius: var(--border-radius-pill);\n\t\t\t\toverflow: hidden;\n\t\t\t\twidth: 32px;\n\t\t\t\theight: 32px;\n\t\t\t}\n\t\t}\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Usage\n\nUse this component to display the related resources of a given item.\n\n```\n<template>\n\t<NcRelatedResourcesPanel provider-id=\"talk\"\n\t\theader=\"Related resources for talk\"\n\t\t:item-id=\"conversationId\" />\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tconversationId: 1,\n\t\t}\n\t},\n}\n</script>\n```\n</docs>\n\n<template>\n\t<div>\n\t\t<NcTeamResources\n\t\t\t:provider-id=\"providerId\"\n\t\t\t:item-id=\"itemId\" />\n\n\t\t<div v-if=\"appEnabled && isVisible\" class=\"related-resources\">\n\t\t\t<div class=\"related-resources__header\">\n\t\t\t\t<h5>{{ header }}</h5>\n\t\t\t\t<p>{{ subline }}</p>\n\t\t\t</div>\n\n\t\t\t<NcResource\n\t\t\t\tv-for=\"resource in resources\"\n\t\t\t\t:key=\"resource.itemId\"\n\t\t\t\tclass=\"related-resources__entry\"\n\t\t\t\t:icon=\"resource.icon\"\n\t\t\t\t:name=\"resource.title\"\n\t\t\t\t:url=\"resource.url\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport NcResource from './NcResource.vue'\nimport NcTeamResources from './NcTeamResources.vue'\nimport { t } from '../../l10n.js'\nimport { logger } from '../../utils/logger.ts'\n\nexport default {\n\tname: 'NcRelatedResourcesPanel',\n\n\tcomponents: {\n\t\tNcResource,\n\t\tNcTeamResources,\n\t},\n\n\t/* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n\tprops: {\n\t\t/**\n\t\t * The provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n\t\t */\n\t\tproviderId: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * The item id which uniquely identities the e.g. Calendar event, Deck board, file, Talk room, etc.\n\t\t */\n\t\titemId: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Limits to specific resource type. i.e. any provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n\t\t */\n\t\tresourceType: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Set the maximum number of resources to load\n\t\t */\n\t\tlimit: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0,\n\t\t},\n\n\t\t/**\n\t\t * Only used by the files sidebar\n\t\t *\n\t\t * File info is passed when registered with `OCA.Sharing.ShareTabSections.registerSection()`\n\t\t */\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Make the header name dynamic\n\t\t */\n\t\theader: {\n\t\t\ttype: String,\n\t\t\tdefault: t('Related resources'),\n\t\t},\n\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: t('Anything shared with the same group of people will show up here'),\n\t\t},\n\n\t\t/**\n\t\t * If this element is used on a primary element set to true for primary styling.\n\t\t */\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\temits: [\n\t\t'has-error',\n\t\t'has-resources',\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tappEnabled: OC?.appswebroots?.related_resources !== undefined,\n\t\t\tloading: false,\n\t\t\terror: null,\n\t\t\tresources: [],\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisVisible() {\n\t\t\tif (this.loading) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn this.error ?? this.resources.length > 0\n\t\t},\n\n\t\tsubline() {\n\t\t\tif (this.error) {\n\t\t\t\treturn t('Error getting related resources. Please contact your system administrator if you have any questions.')\n\t\t\t}\n\t\t\treturn this.description\n\t\t},\n\n\t\thasResourceInfo() {\n\t\t\tif (this.providerId !== null && this.itemId !== null) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (this.fileInfo !== null) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\n\t\tisFiles() {\n\t\t\treturn this.fileInfo?.id !== undefined\n\t\t},\n\n\t\turl() {\n\t\t\tlet providerId = null\n\t\t\tlet itemId = null\n\n\t\t\tif (this.isFiles) {\n\t\t\t\tproviderId = 'files'\n\t\t\t\titemId = this.fileInfo.id\n\t\t\t} else {\n\t\t\t\tproviderId = this.providerId\n\t\t\t\titemId = this.itemId\n\t\t\t}\n\n\t\t\treturn generateOcsUrl('/apps/related_resources/related/{providerId}?itemId={itemId}&resourceType={resourceType}&limit={limit}&format=json', {\n\t\t\t\tproviderId,\n\t\t\t\titemId,\n\t\t\t\tresourceType: this.resourceType,\n\t\t\t\tlimit: this.limit,\n\t\t\t})\n\t\t},\n\t},\n\n\twatch: {\n\t\tproviderId() {\n\t\t\tthis.fetchRelatedResources()\n\t\t},\n\n\t\titemId() {\n\t\t\tthis.fetchRelatedResources()\n\t\t},\n\n\t\tfileInfo() {\n\t\t\tthis.fetchRelatedResources()\n\t\t},\n\n\t\terror(error) {\n\t\t\t/**\n\t\t\t * Emitted when the error value changes\n\t\t\t *\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tthis.$emit('has-error', Boolean(error))\n\t\t},\n\n\t\tresources(resources) {\n\t\t\t/**\n\t\t\t * Emitted when the resources value changes\n\t\t\t *\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tthis.$emit('has-resources', resources.length > 0)\n\t\t},\n\t},\n\n\tcreated() {\n\t\tthis.fetchRelatedResources()\n\t},\n\n\tmethods: {\n\t\tt,\n\t\tasync fetchRelatedResources() {\n\t\t\tif (!this.appEnabled || !this.hasResourceInfo) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.loading = true\n\t\t\tthis.error = null\n\t\t\tthis.resources = []\n\t\t\ttry {\n\t\t\t\tconst response = await axios.get(this.url)\n\t\t\t\tthis.resources = response.data.ocs?.data\n\t\t\t} catch (error) {\n\t\t\t\tthis.error = e\n\t\t\t\tlogger.error('Could not fetch related resources', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.related-resources {\n\t&__header {\n\n\t\th5 {\n\t\t\tfont-weight: bold;\n\t\t\tmargin-bottom: 6px;\n\t\t}\n\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n}\n</style>\n"],"names":["_sfc_main","t"],"mappings":";;;;;;;;;;;;AA4BA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA;AAAA,EACA;AAAA;AAAA,EAGA,OAAA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA,IAEA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA,IAEA,KAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,iBAAA,EAAA,iCAAA,EAAA,cAAA,KAAA,MAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,QAAA;AACA,aAAA,SAAA,KAAA,SAAA,KAAA,GAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;AChDA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;AChBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;ACkDA,MAAA,wBAAA,gBAAA,GAAA,SAAA,yBAAA,CAAA;AAEA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACA;AAAA;AAAA,EAGA,OAAA;AAAA,IACA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IAEA,QAAA;AAAA,MACA,MAAA,CAAA,QAAA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,YAAA,IAAA,cAAA,YAAA,WAAA,GAAA,OAAA,QAAA,MAAA,GAAA,EAAA,CAAA,KAAA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,eAAA;AAAA,MACA,UAAA,CAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,YAAA;AACA,aAAA,CAAA,KAAA,WAAA,KAAA,eAAA,SAAA;AAAA,IACA;AAAA,IAEA,gBAAA;AACA,aAAA,CAAA,WAAA;AACA,cAAA,OAAA,KAAA,cAAA,KAAA,CAAAC,OAAAA,GAAA,WAAA,MAAA;AACA,eAAA,KAAA,WAAA,OAAA,CAAA,KAAA,aAAA;AACA,cAAA,SAAA,SAAA,OAAA,KAAA,cAAA,SAAA,OAAA,OAAA,KAAA,MAAA,GAAA;AACA,mBAAA;AAAA,UACA;AAEA,cAAA,CAAA,IAAA,SAAA,SAAA,EAAA,GAAA;AACA,gBAAA,SAAA,SAAA,EAAA,IAAA,SAAA;AACA,gBAAA,SAAA,SAAA,EAAA,EAAA,YAAA,CAAA;AAAA,UACA;AAEA,cAAA,SAAA,SAAA,OAAA,KAAA,cAAA,SAAA,OAAA,OAAA,KAAA,MAAA,GAAA;AACA,mBAAA;AAAA,UACA;AAEA,cAAA,SAAA,SAAA,EAAA,EAAA,UAAA,KAAA,QAAA;AACA,iBAAA;AAAA,QACA,GAAA,CAAA,CAAA;AAAA,MACA;AAAA,IACA;AAAA,IAEA,OAAA;AACA,aAAA,CAAA,WAAA;AACA,eAAA,KAAA,SAAA,QAAA,MAAA,MAAA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,aAAA;AACA,WAAA,mBAAA;AAAA,IACA;AAAA,IAEA,SAAA;AACA,WAAA,mBAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AACA,SAAA,mBAAA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA,IACA;AAAA,IACA,MAAA,qBAAA;AACA,UAAA,CAAA,sBAAA,SAAA,KAAA,UAAA,GAAA;AACA;AAAA,MACA;AACA,UAAA;AACA,aAAA,UAAA;AACA,cAAA,WAAA,MAAA,MAAA,IAAA,eAAA,oBAAA,KAAA,UAAA,IAAA,KAAA,MAAA,EAAA,CAAA;AACA,aAAA,gBAAA,SAAA,KAAA,IAAA,KAAA;AACA,aAAA,WAAA,CAAA,KAAA,cAAA,CAAA,GAAA,MAAA;AAAA,MACA,SAAA,OAAA;AACA,aAAA,gBAAA;AACA,eAAA,MAAA,mCAAA,EAAA,MAAA,CAAA;AAAA,MACA,UAAA;AACA,aAAA,UAAA;AAAA,MACA;AAAA,IACA;AAAA,IAEA,WAAA,QAAA,MAAA;AACA,UAAA,MAAA;AACA,aAAA,SAAA,KAAA,MAAA;AAAA,MACA,OAAA;AACA,aAAA,SAAA,OAAA,KAAA,SAAA,QAAA,MAAA,GAAA,CAAA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;AC1IA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA;AAAA,IACA;AAAA,EACA;AAAA;AAAA,EAGA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,QAAA;AAAA,MACA,MAAA,CAAA,QAAA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,cAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA,EAAA,mBAAA;AAAA,IACA;AAAA,IAEA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA,EAAA,iEAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,SAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,YAAA,IAAA,cAAA,sBAAA;AAAA,MACA,SAAA;AAAA,MACA,OAAA;AAAA,MACA,WAAA,CAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,YAAA;AACA,UAAA,KAAA,SAAA;AACA,eAAA;AAAA,MACA;AACA,aAAA,KAAA,SAAA,KAAA,UAAA,SAAA;AAAA,IACA;AAAA,IAEA,UAAA;AACA,UAAA,KAAA,OAAA;AACA,eAAA,EAAA,sGAAA;AAAA,MACA;AACA,aAAA,KAAA;AAAA,IACA;AAAA,IAEA,kBAAA;AACA,UAAA,KAAA,eAAA,QAAA,KAAA,WAAA,MAAA;AACA,eAAA;AAAA,MACA;AACA,UAAA,KAAA,aAAA,MAAA;AACA,eAAA;AAAA,MACA;AACA,aAAA;AAAA,IACA;AAAA,IAEA,UAAA;AACA,aAAA,KAAA,UAAA,OAAA;AAAA,IACA;AAAA,IAEA,MAAA;AACA,UAAA,aAAA;AACA,UAAA,SAAA;AAEA,UAAA,KAAA,SAAA;AACA,qBAAA;AACA,iBAAA,KAAA,SAAA;AAAA,MACA,OAAA;AACA,qBAAA,KAAA;AACA,iBAAA,KAAA;AAAA,MACA;AAEA,aAAA,eAAA,sHAAA;AAAA,QACA;AAAA,QACA;AAAA,QACA,cAAA,KAAA;AAAA,QACA,OAAA,KAAA;AAAA,MACA,CAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,aAAA;AACA,WAAA,sBAAA;AAAA,IACA;AAAA,IAEA,SAAA;AACA,WAAA,sBAAA;AAAA,IACA;AAAA,IAEA,WAAA;AACA,WAAA,sBAAA;AAAA,IACA;AAAA,IAEA,MAAA,OAAA;AAMA,WAAA,MAAA,aAAA,QAAA,KAAA,CAAA;AAAA,IACA;AAAA,IAEA,UAAA,WAAA;AAMA,WAAA,MAAA,iBAAA,UAAA,SAAA,CAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AACA,SAAA,sBAAA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA,IACA;AAAA,IACA,MAAA,wBAAA;AACA,UAAA,CAAA,KAAA,cAAA,CAAA,KAAA,iBAAA;AACA;AAAA,MACA;AAEA,WAAA,UAAA;AACA,WAAA,QAAA;AACA,WAAA,YAAA,CAAA;AACA,UAAA;AACA,cAAA,WAAA,MAAA,MAAA,IAAA,KAAA,GAAA;AACA,aAAA,YAAA,SAAA,KAAA,KAAA;AAAA,MACA,SAAA,OAAA;AACA,aAAA,QAAA;AACA,eAAA,MAAA,qCAAA,EAAA,MAAA,CAAA;AAAA,MACA,UAAA;AACA,aAAA,UAAA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;","x_google_ignoreList":[1,2]}
@@ -1,14 +1,14 @@
1
- import '../assets/NcRichContenteditable-CO5ziuZO.css';
1
+ import '../assets/NcRichContenteditable-BjQ4qHUO.css';
2
2
  import debounce from "debounce";
3
3
  import stringLength from "string-length";
4
4
  import Tribute from "tributejs/dist/tribute.esm.js";
5
5
  import { useIsDarkTheme } from "../Composables/useIsDarkTheme.mjs";
6
6
  import { g as getAvatarUrl } from "./getAvatarUrl-IhLacDEr.mjs";
7
- import { N as NcUserStatusIcon } from "./NcUserStatusIcon-DZI9jlXE.mjs";
7
+ import { N as NcUserStatusIcon } from "./NcUserStatusIcon-D_kxQky5.mjs";
8
8
  import { n as normalizeComponent } from "./_plugin-vue2_normalizer-DU4iP6Vu.mjs";
9
9
  import { u as useModelMigration } from "./useModelMigration-EhAWvqDD.mjs";
10
10
  import { e as emojiSearch, a as emojiAddRecent } from "./emoji-BY_D0V5K.mjs";
11
- import { r as register, w as t36, D as t33, a as t, E as n } from "./_l10n-BWisB7-O.mjs";
11
+ import { r as register, w as t37, D as t34, a as t, E as n } from "./_l10n-BmKQgz1z.mjs";
12
12
  import { r as richEditor } from "./index-TmAR7I2T.mjs";
13
13
  import { G as GenRandomId } from "./GenRandomId-F5ebeBB_.mjs";
14
14
  import { l as logger } from "./logger-D3RVzcfQ.mjs";
@@ -21,16 +21,16 @@ import "vue";
21
21
  import "vue-router";
22
22
  import "./legacy-MK4GvP26.mjs";
23
23
  import "./NcButton-DUZTtFhr.mjs";
24
- import { g as getLinkWithPicker, s as searchProvider } from "./referencePickerModal-Cl3fIc9s.mjs";
24
+ import { g as getLinkWithPicker, s as searchProvider } from "./referencePickerModal-CHpUHrDL.mjs";
25
25
  import "./customPickerElements-DLFtgReB.mjs";
26
26
  import "unist-builder";
27
27
  import "unist-util-visit";
28
- import "./NcRichText-Dy5By94Y.mjs";
28
+ import "./NcRichText-BfK6Ybyf.mjs";
29
29
  import "./createElementId-DhjFt1I9.mjs";
30
30
  import "../Components/NcEmptyContent.mjs";
31
- import "./NcSelect-QVd6uJPA.mjs";
31
+ import "./NcSelect-DTniMiUS.mjs";
32
32
  import "../Components/NcLoadingIcon.mjs";
33
- import "./NcTextField-CVfixgfj.mjs";
33
+ import "./NcTextField-CfZknuqx.mjs";
34
34
  import "@nextcloud/event-bus";
35
35
  import "../Components/NcModal.mjs";
36
36
  const _sfc_main$1 = {
@@ -111,7 +111,7 @@ var __component__$1 = /* @__PURE__ */ normalizeComponent(
111
111
  "ef14f1ec"
112
112
  );
113
113
  const NcAutoCompleteResult = __component__$1.exports;
114
- register(t33, t36);
114
+ register(t34, t37);
115
115
  const style1 = {
116
116
  "material-design-icon": "_material-design-icon_1sdgd_12",
117
117
  "tribute-container": "_tribute-container_1sdgd_20",
@@ -502,6 +502,9 @@ const _sfc_main = {
502
502
  if (!document.createRange) {
503
503
  return;
504
504
  }
505
+ if (window.getSelection().rangeCount > 0 && this.$refs.contenteditable.contains(window.getSelection().getRangeAt(0).commonAncestorContainer)) {
506
+ return;
507
+ }
505
508
  const range = document.createRange();
506
509
  range.selectNodeContents(this.$refs.contenteditable);
507
510
  range.collapse(false);
@@ -763,11 +766,11 @@ var __component__ = /* @__PURE__ */ normalizeComponent(
763
766
  _sfc_staticRenderFns,
764
767
  false,
765
768
  _sfc_injectStyles,
766
- "2026f426"
769
+ "c664150f"
767
770
  );
768
771
  const NcRichContenteditable = __component__.exports;
769
772
  export {
770
773
  NcAutoCompleteResult as N,
771
774
  NcRichContenteditable as a
772
775
  };
773
- //# sourceMappingURL=NcRichContenteditable-BivvoSO5.mjs.map
776
+ //# sourceMappingURL=NcRichContenteditable-BQNR-AeA.mjs.map