@nextcloud/vue 9.1.0 → 9.2.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 (289) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/dist/assets/{NcActions-Bqx-6r2h.css → NcActions-DXLRy-4d.css} +11 -11
  3. package/dist/assets/{NcAppSettingsDialog-Dcv235GW.css → NcAppSettingsDialog-B51_ysuI.css} +10 -10
  4. package/dist/assets/NcAppSettingsSection-ObwpPdgW.css +46 -0
  5. package/dist/assets/{NcDateTimePicker-DW0b4W9D.css → NcDateTimePicker-DL6-rWSN.css} +8 -4
  6. package/dist/assets/NcFormBox-D-kcijXp.css +54 -0
  7. package/dist/assets/{NcAppSettingsSection-DIVdlb0g.css → NcFormBoxButton-C6EvdLK4.css} +13 -11
  8. package/dist/assets/NcFormBoxItem-j2nGdOvd.css +88 -0
  9. package/dist/assets/NcFormBoxSwitch-BmyNQCbA.css +37 -0
  10. package/dist/assets/NcFormGroup-BrD0Scm7.css +43 -0
  11. package/dist/assets/{NcHotkey-QklVKSyr.css → NcHotkey-4yi1Hobg.css} +10 -9
  12. package/dist/assets/NcHotkeyList-gAZN0WIu.css +8 -0
  13. package/dist/assets/{NcListItem-BRTO5Id3.css → NcListItem-D9Lk0t6j.css} +41 -41
  14. package/dist/assets/NcRadioGroup-1zpSX8V5.css +21 -0
  15. package/dist/assets/{NcRadioGroupButton-qxDfssOp.css → NcRadioGroupButton-DRZ1_-yY.css} +11 -19
  16. package/dist/assets/{NcRichContenteditable-CPbTS8xJ.css → NcRichContenteditable-BuaWt3Xn.css} +11 -11
  17. package/dist/assets/{NcRichText-Bx--sR58.css → NcRichText-QPnpxaeG.css} +94 -88
  18. package/dist/chunks/{NcActionButton-BAaRMesp.mjs → NcActionButton-2Rxa55KE.mjs} +2 -2
  19. package/dist/chunks/{NcActionButton-BAaRMesp.mjs.map → NcActionButton-2Rxa55KE.mjs.map} +1 -1
  20. package/dist/chunks/{NcActionButtonGroup-EyWT8pe-.mjs → NcActionButtonGroup-DouiEx4u.mjs} +2 -2
  21. package/dist/chunks/{NcActionButtonGroup-EyWT8pe-.mjs.map → NcActionButtonGroup-DouiEx4u.mjs.map} +1 -1
  22. package/dist/chunks/{NcActionInput-BaHXAvFo.mjs → NcActionInput-BUey_7p4.mjs} +6 -6
  23. package/dist/chunks/{NcActionInput-BaHXAvFo.mjs.map → NcActionInput-BUey_7p4.mjs.map} +1 -1
  24. package/dist/chunks/{NcActionTextEditable-CzI0V4-P.mjs → NcActionTextEditable-CXH_CFjU.mjs} +2 -2
  25. package/dist/chunks/{NcActionTextEditable-CzI0V4-P.mjs.map → NcActionTextEditable-CXH_CFjU.mjs.map} +1 -1
  26. package/dist/chunks/{NcActions-C-E6BGfZ.mjs → NcActions-QtUC1sD3.mjs} +30 -34
  27. package/dist/chunks/NcActions-QtUC1sD3.mjs.map +1 -0
  28. package/dist/chunks/{NcAppContent-Qg8YBJa7.mjs → NcAppContent-DW_SpXeR.mjs} +3 -3
  29. package/dist/chunks/{NcAppContent-Qg8YBJa7.mjs.map → NcAppContent-DW_SpXeR.mjs.map} +1 -1
  30. package/dist/chunks/{NcAppNavigation-BWd7-5H0.mjs → NcAppNavigation-DrlEs9WS.mjs} +3 -3
  31. package/dist/chunks/{NcAppNavigation-BWd7-5H0.mjs.map → NcAppNavigation-DrlEs9WS.mjs.map} +1 -1
  32. package/dist/chunks/{NcAppNavigationCaption-wzGkHPZs.mjs → NcAppNavigationCaption-CW__bXHt.mjs} +2 -2
  33. package/dist/chunks/{NcAppNavigationCaption-wzGkHPZs.mjs.map → NcAppNavigationCaption-CW__bXHt.mjs.map} +1 -1
  34. package/dist/chunks/{NcAppNavigationItem-Cz_lEp5a.mjs → NcAppNavigationItem-DH7wxFRY.mjs} +6 -6
  35. package/dist/chunks/{NcAppNavigationItem-Cz_lEp5a.mjs.map → NcAppNavigationItem-DH7wxFRY.mjs.map} +1 -1
  36. package/dist/chunks/{NcAppNavigationNewItem-D-JsQf87.mjs → NcAppNavigationNewItem-DehA23th.mjs} +2 -2
  37. package/dist/chunks/{NcAppNavigationNewItem-D-JsQf87.mjs.map → NcAppNavigationNewItem-DehA23th.mjs.map} +1 -1
  38. package/dist/chunks/{NcAppNavigationSearch-BbXky-Un.mjs → NcAppNavigationSearch-BWx-LXJj.mjs} +3 -3
  39. package/dist/chunks/{NcAppNavigationSearch-BbXky-Un.mjs.map → NcAppNavigationSearch-BWx-LXJj.mjs.map} +1 -1
  40. package/dist/chunks/{NcAppNavigationSettings-CgRg-AbU.mjs → NcAppNavigationSettings-77CxwYOD.mjs} +3 -3
  41. package/dist/chunks/{NcAppNavigationSettings-CgRg-AbU.mjs.map → NcAppNavigationSettings-77CxwYOD.mjs.map} +1 -1
  42. package/dist/chunks/{NcAppSettingsDialog-BZzj8jNU.mjs → NcAppSettingsDialog-B7AG3mEJ.mjs} +10 -8
  43. package/dist/chunks/NcAppSettingsDialog-B7AG3mEJ.mjs.map +1 -0
  44. package/dist/chunks/{NcAppSettingsSection-urZiy9aH.mjs → NcAppSettingsSection-B9R7enkC.mjs} +15 -8
  45. package/dist/chunks/NcAppSettingsSection-B9R7enkC.mjs.map +1 -0
  46. package/dist/chunks/{NcAppSettingsSectionShortcuts-CK8lXUxx.mjs → NcAppSettingsShortcutsSection-o6KPisIT.mjs} +7 -7
  47. package/dist/chunks/{NcAppSettingsSectionShortcuts-CK8lXUxx.mjs.map → NcAppSettingsShortcutsSection-o6KPisIT.mjs.map} +1 -1
  48. package/dist/chunks/{NcAppSidebar-Du9lcG-G.mjs → NcAppSidebar-BZh0lWlQ.mjs} +3 -3
  49. package/dist/chunks/{NcAppSidebar-Du9lcG-G.mjs.map → NcAppSidebar-BZh0lWlQ.mjs.map} +1 -1
  50. package/dist/chunks/{NcAssistantButton-BdYyxDoX.mjs → NcAssistantButton-D3v1Xk22.mjs} +3 -3
  51. package/dist/chunks/{NcAssistantButton-BdYyxDoX.mjs.map → NcAssistantButton-D3v1Xk22.mjs.map} +1 -1
  52. package/dist/chunks/{NcAssistantIcon-ClJKOiGi.mjs → NcAssistantIcon-CCdgVDM4.mjs} +2 -2
  53. package/dist/chunks/{NcAssistantIcon-ClJKOiGi.mjs.map → NcAssistantIcon-CCdgVDM4.mjs.map} +1 -1
  54. package/dist/chunks/{NcAvatar-CZVJYWdr.mjs → NcAvatar-uKR5Re43.mjs} +5 -5
  55. package/dist/chunks/{NcAvatar-CZVJYWdr.mjs.map → NcAvatar-uKR5Re43.mjs.map} +1 -1
  56. package/dist/chunks/{NcBreadcrumb-CkUvC1g0.mjs → NcBreadcrumb-BffVglho.mjs} +2 -2
  57. package/dist/chunks/{NcBreadcrumb-CkUvC1g0.mjs.map → NcBreadcrumb-BffVglho.mjs.map} +1 -1
  58. package/dist/chunks/{NcBreadcrumbs-Dx6ylWcp.mjs → NcBreadcrumbs-DCzvS4nv.mjs} +4 -4
  59. package/dist/chunks/{NcBreadcrumbs-Dx6ylWcp.mjs.map → NcBreadcrumbs-DCzvS4nv.mjs.map} +1 -1
  60. package/dist/chunks/{NcCheckboxRadioSwitch-Da3UT5om.mjs → NcCheckboxRadioSwitch-CAxvqRrM.mjs} +2 -2
  61. package/dist/chunks/{NcCheckboxRadioSwitch-Da3UT5om.mjs.map → NcCheckboxRadioSwitch-CAxvqRrM.mjs.map} +1 -1
  62. package/dist/chunks/{NcChip-CIjgDRrf.mjs → NcChip-DH4rTzjt.mjs} +5 -5
  63. package/dist/chunks/{NcChip-CIjgDRrf.mjs.map → NcChip-DH4rTzjt.mjs.map} +1 -1
  64. package/dist/chunks/{NcCollectionList-DqNsOT7P.mjs → NcCollectionList-BsgtKu_8.mjs} +7 -7
  65. package/dist/chunks/{NcCollectionList-DqNsOT7P.mjs.map → NcCollectionList-BsgtKu_8.mjs.map} +1 -1
  66. package/dist/chunks/{NcColorPicker-yoZ5ZWC3.mjs → NcColorPicker-rGVCe-44.mjs} +4 -4
  67. package/dist/chunks/{NcColorPicker-yoZ5ZWC3.mjs.map → NcColorPicker-rGVCe-44.mjs.map} +1 -1
  68. package/dist/chunks/{NcContent-DxKYTMfp.mjs → NcContent-DeXRbVuo.mjs} +2 -2
  69. package/dist/chunks/{NcContent-DxKYTMfp.mjs.map → NcContent-DeXRbVuo.mjs.map} +1 -1
  70. package/dist/chunks/{NcDashboardWidget-Bu7bWoUK.mjs → NcDashboardWidget-BxIt1qRx.mjs} +5 -5
  71. package/dist/chunks/{NcDashboardWidget-Bu7bWoUK.mjs.map → NcDashboardWidget-BxIt1qRx.mjs.map} +1 -1
  72. package/dist/chunks/{NcDashboardWidgetItem-CJg0lrlx.mjs → NcDashboardWidgetItem-Dg8AbqGD.mjs} +4 -4
  73. package/dist/chunks/{NcDashboardWidgetItem-CJg0lrlx.mjs.map → NcDashboardWidgetItem-Dg8AbqGD.mjs.map} +1 -1
  74. package/dist/chunks/{NcDateTimePicker-DOwSKf9T.mjs → NcDateTimePicker-B6ni6QAB.mjs} +5 -5
  75. package/dist/chunks/{NcDateTimePicker-DOwSKf9T.mjs.map → NcDateTimePicker-B6ni6QAB.mjs.map} +1 -1
  76. package/dist/chunks/{NcDateTimePickerNative-BSKXbwuA.mjs → NcDateTimePickerNative-BaauiB0I.mjs} +2 -2
  77. package/dist/chunks/{NcDateTimePickerNative-BSKXbwuA.mjs.map → NcDateTimePickerNative-BaauiB0I.mjs.map} +1 -1
  78. package/dist/chunks/{NcDialog-BgzJN2XT.mjs → NcDialog-BC0--SOc.mjs} +3 -3
  79. package/dist/chunks/{NcDialog-BgzJN2XT.mjs.map → NcDialog-BC0--SOc.mjs.map} +1 -1
  80. package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-D9ClaBcS.mjs → NcDialogButton.vue_vue_type_script_setup_true_lang-CYQZ84A2.mjs} +2 -2
  81. package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-D9ClaBcS.mjs.map → NcDialogButton.vue_vue_type_script_setup_true_lang-CYQZ84A2.mjs.map} +1 -1
  82. package/dist/chunks/{NcEmojiPicker-CwR_8bCR.mjs → NcEmojiPicker-CKp3IB6N.mjs} +6 -6
  83. package/dist/chunks/{NcEmojiPicker-CwR_8bCR.mjs.map → NcEmojiPicker-CKp3IB6N.mjs.map} +1 -1
  84. package/dist/chunks/NcFormBox-K2tCRm3B.mjs +45 -0
  85. package/dist/chunks/NcFormBox-K2tCRm3B.mjs.map +1 -0
  86. package/dist/chunks/NcFormBoxButton-CCs-0mb3.mjs +145 -0
  87. package/dist/chunks/NcFormBoxButton-CCs-0mb3.mjs.map +1 -0
  88. package/dist/chunks/NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-DfPML_k7.mjs +83 -0
  89. package/dist/chunks/NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-DfPML_k7.mjs.map +1 -0
  90. package/dist/chunks/NcFormBoxItem-C3We3v_4.mjs +97 -0
  91. package/dist/chunks/NcFormBoxItem-C3We3v_4.mjs.map +1 -0
  92. package/dist/chunks/NcFormBoxSwitch-gHZMcoCQ.mjs +97 -0
  93. package/dist/chunks/NcFormBoxSwitch-gHZMcoCQ.mjs.map +1 -0
  94. package/dist/chunks/NcFormGroup-CnSfPFey.mjs +74 -0
  95. package/dist/chunks/NcFormGroup-CnSfPFey.mjs.map +1 -0
  96. package/dist/chunks/{NcHotkey-V6s3DXUs.mjs → NcHotkey-CmqTn7WR.mjs} +7 -7
  97. package/dist/chunks/NcHotkey-CmqTn7WR.mjs.map +1 -0
  98. package/dist/chunks/{NcHotkeyList-Ck87UwvW.mjs → NcHotkeyList-CuENLgpa.mjs} +5 -5
  99. package/dist/chunks/NcHotkeyList-CuENLgpa.mjs.map +1 -0
  100. package/dist/chunks/{NcInputConfirmCancel-Zkh97f-3.mjs → NcInputConfirmCancel-BWJotcI2.mjs} +2 -2
  101. package/dist/chunks/{NcInputConfirmCancel-Zkh97f-3.mjs.map → NcInputConfirmCancel-BWJotcI2.mjs.map} +1 -1
  102. package/dist/chunks/{NcInputField-By_D1kDJ.mjs → NcInputField-DwkKsbxv.mjs} +2 -2
  103. package/dist/chunks/{NcInputField-By_D1kDJ.mjs.map → NcInputField-DwkKsbxv.mjs.map} +1 -1
  104. package/dist/chunks/{NcKbd-CyqxbpJJ.mjs → NcKbd-B87GdbDW.mjs} +2 -2
  105. package/dist/chunks/{NcKbd-CyqxbpJJ.mjs.map → NcKbd-B87GdbDW.mjs.map} +1 -1
  106. package/dist/chunks/{NcListItem-z4qAtAqe.mjs → NcListItem-BLSWE2Hb.mjs} +9 -10
  107. package/dist/chunks/NcListItem-BLSWE2Hb.mjs.map +1 -0
  108. package/dist/chunks/{NcListItemIcon-BVr_U7S4.mjs → NcListItemIcon-BXVk-irh.mjs} +2 -2
  109. package/dist/chunks/{NcListItemIcon-BVr_U7S4.mjs.map → NcListItemIcon-BXVk-irh.mjs.map} +1 -1
  110. package/dist/chunks/{NcModal-CvHjwuUy.mjs → NcModal-BIG1WrLo.mjs} +5 -5
  111. package/dist/chunks/{NcModal-CvHjwuUy.mjs.map → NcModal-BIG1WrLo.mjs.map} +1 -1
  112. package/dist/chunks/{NcNoteCard-BomepG0z.mjs → NcNoteCard-Dw222p4P.mjs} +2 -2
  113. package/dist/chunks/{NcNoteCard-BomepG0z.mjs.map → NcNoteCard-Dw222p4P.mjs.map} +1 -1
  114. package/dist/chunks/{NcPasswordField-DroBJzYE.mjs → NcPasswordField-BkVdu9LI.mjs} +4 -4
  115. package/dist/chunks/{NcPasswordField-DroBJzYE.mjs.map → NcPasswordField-BkVdu9LI.mjs.map} +1 -1
  116. package/dist/chunks/NcRadioGroup-CLtk-WPR.mjs +75 -0
  117. package/dist/chunks/NcRadioGroup-CLtk-WPR.mjs.map +1 -0
  118. package/dist/chunks/{NcRadioGroupButton-BNydXurR.mjs → NcRadioGroupButton-CDA5i7Dq.mjs} +11 -9
  119. package/dist/chunks/NcRadioGroupButton-CDA5i7Dq.mjs.map +1 -0
  120. package/dist/chunks/{NcRelatedResourcesPanel-1oVpr5Oh.mjs → NcRelatedResourcesPanel-DP7W80M0.mjs} +4 -4
  121. package/dist/chunks/{NcRelatedResourcesPanel-1oVpr5Oh.mjs.map → NcRelatedResourcesPanel-DP7W80M0.mjs.map} +1 -1
  122. package/dist/chunks/{NcRichContenteditable-D-GPJR9c.mjs → NcRichContenteditable-A0F0waG9.mjs} +16 -13
  123. package/dist/chunks/{NcRichContenteditable-D-GPJR9c.mjs.map → NcRichContenteditable-A0F0waG9.mjs.map} +1 -1
  124. package/dist/chunks/{NcRichText-CETsOVBU.mjs → NcRichText-PvndLTtG.mjs} +8 -5
  125. package/dist/chunks/{NcRichText-CETsOVBU.mjs.map → NcRichText-PvndLTtG.mjs.map} +1 -1
  126. package/dist/chunks/{NcSelect-BUPzYWtk.mjs → NcSelect-DekSQwK1.mjs} +2 -2
  127. package/dist/chunks/{NcSelect-BUPzYWtk.mjs.map → NcSelect-DekSQwK1.mjs.map} +1 -1
  128. package/dist/chunks/{NcSelectTags-Cu7fqEPC.mjs → NcSelectTags-wqBc8W15.mjs} +3 -3
  129. package/dist/chunks/{NcSelectTags-Cu7fqEPC.mjs.map → NcSelectTags-wqBc8W15.mjs.map} +1 -1
  130. package/dist/chunks/{NcSelectUsers-C3w6sjP5.mjs → NcSelectUsers-DGY_Fvw7.mjs} +3 -3
  131. package/dist/chunks/{NcSelectUsers-C3w6sjP5.mjs.map → NcSelectUsers-DGY_Fvw7.mjs.map} +1 -1
  132. package/dist/chunks/{NcSettingsSection-DFav6ob5.mjs → NcSettingsSection-DDccDeTg.mjs} +2 -2
  133. package/dist/chunks/{NcSettingsSection-DFav6ob5.mjs.map → NcSettingsSection-DDccDeTg.mjs.map} +1 -1
  134. package/dist/chunks/{NcSettingsSelectGroup-DOiWF5XH.mjs → NcSettingsSelectGroup-Bpm9HZXh.mjs} +4 -4
  135. package/dist/chunks/{NcSettingsSelectGroup-DOiWF5XH.mjs.map → NcSettingsSelectGroup-Bpm9HZXh.mjs.map} +1 -1
  136. package/dist/chunks/{NcTextArea-CKK_gfIE.mjs → NcTextArea-CBx0eeEG.mjs} +2 -2
  137. package/dist/chunks/{NcTextArea-CKK_gfIE.mjs.map → NcTextArea-CBx0eeEG.mjs.map} +1 -1
  138. package/dist/chunks/{NcTextField.vue_vue_type_script_setup_true_lang-DVAnIMOA.mjs → NcTextField.vue_vue_type_script_setup_true_lang-cbNqV44E.mjs} +4 -4
  139. package/dist/chunks/{NcTextField.vue_vue_type_script_setup_true_lang-DVAnIMOA.mjs.map → NcTextField.vue_vue_type_script_setup_true_lang-cbNqV44E.mjs.map} +1 -1
  140. package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-C2YnFWvf.mjs → NcTimezonePicker.vue_vue_type_script_setup_true_lang-Dr3oElNm.mjs} +3 -3
  141. package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-C2YnFWvf.mjs.map → NcTimezonePicker.vue_vue_type_script_setup_true_lang-Dr3oElNm.mjs.map} +1 -1
  142. package/dist/chunks/{NcUserBubble-CM66IyhS.mjs → NcUserBubble-2CLRpxdk.mjs} +2 -2
  143. package/dist/chunks/{NcUserBubble-CM66IyhS.mjs.map → NcUserBubble-2CLRpxdk.mjs.map} +1 -1
  144. package/dist/chunks/{NcUserStatusIcon-DWB8QUZh.mjs → NcUserStatusIcon-D6fygDFl.mjs} +2 -2
  145. package/dist/chunks/{NcUserStatusIcon-DWB8QUZh.mjs.map → NcUserStatusIcon-D6fygDFl.mjs.map} +1 -1
  146. package/dist/chunks/{_l10n-YZMLsK4O.mjs → _l10n--WxGDYem.mjs} +34 -34
  147. package/dist/chunks/_l10n--WxGDYem.mjs.map +1 -0
  148. package/dist/chunks/{colors-DhEYXS0_.mjs → colors-BhsvsNTT.mjs} +2 -2
  149. package/dist/chunks/{colors-DhEYXS0_.mjs.map → colors-BhsvsNTT.mjs.map} +1 -1
  150. package/dist/chunks/{mdi-Cjx8NyEs.mjs → mdi-8kZvl9vo.mjs} +26 -16
  151. package/dist/chunks/{mdi-Cjx8NyEs.mjs.map → mdi-8kZvl9vo.mjs.map} +1 -1
  152. package/dist/chunks/{referencePickerModal-CseuhGwX.mjs → referencePickerModal-el0J7aNd.mjs} +9 -9
  153. package/dist/chunks/{referencePickerModal-CseuhGwX.mjs.map → referencePickerModal-el0J7aNd.mjs.map} +1 -1
  154. package/dist/chunks/{useAppSettingsDialog-Dn48dw1k.mjs → useAppSettingsDialog-DbtEkXa4.mjs} +4 -2
  155. package/dist/chunks/useAppSettingsDialog-DbtEkXa4.mjs.map +1 -0
  156. package/dist/chunks/useNcFormBox-DA9iwXWY.mjs +13 -0
  157. package/dist/chunks/useNcFormBox-DA9iwXWY.mjs.map +1 -0
  158. package/dist/chunks/useTrapStackControl-B6cEicto.mjs.map +1 -1
  159. package/dist/components/NcActionButton/index.mjs +1 -1
  160. package/dist/components/NcActionButtonGroup/index.mjs +1 -1
  161. package/dist/components/NcActionInput/NcActionInput.vue.d.ts +2 -2
  162. package/dist/components/NcActionInput/index.mjs +1 -1
  163. package/dist/components/NcActionTextEditable/index.mjs +1 -1
  164. package/dist/components/NcActions/NcActions.vue.d.ts +1 -3
  165. package/dist/components/NcActions/index.mjs +1 -1
  166. package/dist/components/NcAppContent/index.mjs +1 -1
  167. package/dist/components/NcAppNavigation/index.mjs +1 -1
  168. package/dist/components/NcAppNavigationCaption/NcAppNavigationCaption.vue.d.ts +1 -3
  169. package/dist/components/NcAppNavigationCaption/index.mjs +1 -1
  170. package/dist/components/NcAppNavigationItem/NcAppNavigationItem.vue.d.ts +1 -3
  171. package/dist/components/NcAppNavigationItem/index.mjs +1 -1
  172. package/dist/components/NcAppNavigationNewItem/index.mjs +1 -1
  173. package/dist/components/NcAppNavigationSearch/index.mjs +1 -1
  174. package/dist/components/NcAppNavigationSettings/index.mjs +1 -1
  175. package/dist/components/NcAppSettingsDialog/NcAppSettingsDialog.vue.d.ts +7 -0
  176. package/dist/components/NcAppSettingsDialog/index.mjs +1 -1
  177. package/dist/components/NcAppSettingsDialog/useAppSettingsDialog.d.ts +2 -1
  178. package/dist/components/NcAppSettingsSection/NcAppSettingsSection.vue.d.ts +2 -0
  179. package/dist/components/NcAppSettingsSection/index.mjs +1 -1
  180. package/dist/components/NcAppSettingsSectionShortcuts/index.d.ts +8 -1
  181. package/dist/components/NcAppSettingsSectionShortcuts/index.mjs +1 -1
  182. package/dist/components/NcAppSettingsShortcutsSection/index.d.ts +5 -0
  183. package/dist/components/NcAppSettingsShortcutsSection/index.mjs +5 -0
  184. package/dist/components/NcAppSettingsShortcutsSection/index.mjs.map +1 -0
  185. package/dist/components/NcAppSidebar/NcAppSidebar.vue.d.ts +1 -3
  186. package/dist/components/NcAppSidebar/index.mjs +1 -1
  187. package/dist/components/NcAssistantButton/index.mjs +1 -1
  188. package/dist/components/NcAssistantIcon/index.mjs +1 -1
  189. package/dist/components/NcAvatar/NcAvatar.vue.d.ts +1 -3
  190. package/dist/components/NcAvatar/index.mjs +1 -1
  191. package/dist/components/NcBreadcrumb/NcBreadcrumb.vue.d.ts +1 -3
  192. package/dist/components/NcBreadcrumb/index.mjs +1 -1
  193. package/dist/components/NcBreadcrumbs/NcBreadcrumbs.vue.d.ts +2 -6
  194. package/dist/components/NcBreadcrumbs/index.mjs +1 -1
  195. package/dist/components/NcCheckboxRadioSwitch/index.mjs +1 -1
  196. package/dist/components/NcChip/index.mjs +1 -1
  197. package/dist/components/NcCollectionList/NcCollectionList.vue.d.ts +4 -11
  198. package/dist/components/NcCollectionList/NcCollectionListItem.vue.d.ts +2 -6
  199. package/dist/components/NcCollectionList/index.mjs +1 -1
  200. package/dist/components/NcColorPicker/index.mjs +1 -1
  201. package/dist/components/NcContent/index.mjs +1 -1
  202. package/dist/components/NcDashboardWidget/NcDashboardWidget.vue.d.ts +3 -9
  203. package/dist/components/NcDashboardWidget/index.mjs +1 -1
  204. package/dist/components/NcDashboardWidgetItem/NcDashboardWidgetItem.vue.d.ts +2 -6
  205. package/dist/components/NcDashboardWidgetItem/index.mjs +1 -1
  206. package/dist/components/NcDateTimePicker/NcDateTimePicker.vue.d.ts +2 -2
  207. package/dist/components/NcDateTimePicker/index.mjs +1 -1
  208. package/dist/components/NcDateTimePickerNative/index.mjs +1 -1
  209. package/dist/components/NcDialog/index.mjs +1 -1
  210. package/dist/components/NcDialogButton/index.mjs +1 -1
  211. package/dist/components/NcEmojiPicker/index.mjs +1 -1
  212. package/dist/components/NcFormBox/NcFormBox.vue.d.ts +42 -0
  213. package/dist/components/NcFormBox/NcFormBoxItem.vue.d.ts +61 -0
  214. package/dist/components/NcFormBox/index.d.ts +1 -0
  215. package/dist/components/NcFormBox/index.mjs +5 -0
  216. package/dist/components/NcFormBox/index.mjs.map +1 -0
  217. package/dist/components/NcFormBox/useNcFormBox.d.ts +19 -0
  218. package/dist/components/NcFormBoxButton/NcFormBoxButton.vue.d.ts +51 -0
  219. package/dist/components/NcFormBoxButton/index.d.ts +5 -0
  220. package/dist/components/NcFormBoxButton/index.mjs +5 -0
  221. package/dist/components/NcFormBoxButton/index.mjs.map +1 -0
  222. package/dist/components/NcFormBoxCopyButton/NcFormBoxCopyButton.vue.d.ts +34 -0
  223. package/dist/components/NcFormBoxCopyButton/index.d.ts +5 -0
  224. package/dist/components/NcFormBoxCopyButton/index.mjs +5 -0
  225. package/dist/components/NcFormBoxCopyButton/index.mjs.map +1 -0
  226. package/dist/components/NcFormBoxCopyButton/useCopy.d.ts +10 -0
  227. package/dist/components/NcFormBoxSwitch/NcFormBoxSwitch.vue.d.ts +45 -0
  228. package/dist/components/NcFormBoxSwitch/index.d.ts +5 -0
  229. package/dist/components/NcFormBoxSwitch/index.mjs +5 -0
  230. package/dist/components/NcFormBoxSwitch/index.mjs.map +1 -0
  231. package/dist/components/NcFormGroup/NcFormGroup.vue.d.ts +64 -0
  232. package/dist/components/NcFormGroup/index.d.ts +5 -0
  233. package/dist/components/NcFormGroup/index.mjs +5 -0
  234. package/dist/components/NcFormGroup/index.mjs.map +1 -0
  235. package/dist/components/NcHotkey/index.mjs +1 -1
  236. package/dist/components/NcHotkeyList/index.mjs +1 -1
  237. package/dist/components/NcInputField/index.mjs +1 -1
  238. package/dist/components/NcKbd/index.mjs +1 -1
  239. package/dist/components/NcListItem/NcListItem.vue.d.ts +1 -3
  240. package/dist/components/NcListItem/index.mjs +1 -1
  241. package/dist/components/NcListItemIcon/NcListItemIcon.vue.d.ts +1 -3
  242. package/dist/components/NcListItemIcon/index.mjs +1 -1
  243. package/dist/components/NcModal/index.mjs +1 -1
  244. package/dist/components/NcNoteCard/index.mjs +1 -1
  245. package/dist/components/NcPasswordField/index.mjs +1 -1
  246. package/dist/components/NcRadioGroup/NcRadioGroup.vue.d.ts +7 -1
  247. package/dist/components/NcRadioGroup/index.mjs +1 -1
  248. package/dist/components/NcRadioGroupButton/index.mjs +1 -1
  249. package/dist/components/NcRelatedResourcesPanel/index.mjs +1 -1
  250. package/dist/components/NcRichContenteditable/NcRichContenteditable.vue.d.ts +1 -2
  251. package/dist/components/NcRichContenteditable/index.mjs +1 -1
  252. package/dist/components/NcRichText/NcReferencePicker/NcRawLinkInput.vue.d.ts +1 -2
  253. package/dist/components/NcRichText/NcReferencePicker/NcSearch.vue.d.ts +1 -2
  254. package/dist/components/NcRichText/index.mjs +3 -3
  255. package/dist/components/NcSelect/index.mjs +1 -1
  256. package/dist/components/NcSelectTags/index.mjs +1 -1
  257. package/dist/components/NcSelectUsers/index.mjs +1 -1
  258. package/dist/components/NcSettingsSection/index.mjs +1 -1
  259. package/dist/components/NcSettingsSelectGroup/NcSettingsSelectGroup.vue.d.ts +1 -2
  260. package/dist/components/NcSettingsSelectGroup/index.mjs +1 -1
  261. package/dist/components/NcTextArea/index.mjs +1 -1
  262. package/dist/components/NcTextField/index.mjs +1 -1
  263. package/dist/components/NcTimezonePicker/index.mjs +1 -1
  264. package/dist/components/NcUserBubble/index.mjs +1 -1
  265. package/dist/components/NcUserStatusIcon/index.mjs +1 -1
  266. package/dist/components/index.d.ts +6 -0
  267. package/dist/composables/useButtonLink.d.ts +78 -0
  268. package/dist/composables/useFormatDateTime/index.mjs +1 -1
  269. package/dist/composables/useTrapStackControl.d.ts +1 -2
  270. package/dist/functions/reference/index.mjs +1 -1
  271. package/dist/functions/usernameToColor/index.mjs +1 -1
  272. package/dist/index.mjs +148 -137
  273. package/dist/index.mjs.map +1 -1
  274. package/package.json +19 -19
  275. package/dist/assets/NcHotkeyList-B42a0d8Z.css +0 -9
  276. package/dist/assets/NcRadioGroup-CNgjqqiP.css +0 -49
  277. package/dist/chunks/NcActions-C-E6BGfZ.mjs.map +0 -1
  278. package/dist/chunks/NcAppSettingsDialog-BZzj8jNU.mjs.map +0 -1
  279. package/dist/chunks/NcAppSettingsSection-urZiy9aH.mjs.map +0 -1
  280. package/dist/chunks/NcHotkey-V6s3DXUs.mjs.map +0 -1
  281. package/dist/chunks/NcHotkeyList-Ck87UwvW.mjs.map +0 -1
  282. package/dist/chunks/NcListItem-z4qAtAqe.mjs.map +0 -1
  283. package/dist/chunks/NcRadioGroup-B_BNFM6V.mjs +0 -81
  284. package/dist/chunks/NcRadioGroup-B_BNFM6V.mjs.map +0 -1
  285. package/dist/chunks/NcRadioGroupButton-BNydXurR.mjs.map +0 -1
  286. package/dist/chunks/_l10n-YZMLsK4O.mjs.map +0 -1
  287. package/dist/chunks/useAppSettingsDialog-Dn48dw1k.mjs.map +0 -1
  288. /package/dist/assets/{NcAppSettingsSectionShortcuts-CRO4RakN.css → NcAppSettingsShortcutsSection-CRO4RakN.css} +0 -0
  289. /package/dist/components/{NcAppSettingsSectionShortcuts/NcAppSettingsSectionShortcuts.vue.d.ts → NcAppSettingsShortcutsSection/NcAppSettingsShortcutsSection.vue.d.ts} +0 -0
@@ -0,0 +1,75 @@
1
+ import '../assets/NcRadioGroup-1zpSX8V5.css';
2
+ import { defineComponent, mergeModels, useModel, ref, provide, computed, warn, createBlock, openBlock, withCtx, createElementBlock, renderSlot, normalizeClass } from "vue";
3
+ import { N as NcFormBox } from "./NcFormBox-K2tCRm3B.mjs";
4
+ import { N as NcFormGroup } from "./NcFormGroup-CnSfPFey.mjs";
5
+ import { I as INSIDE_RADIO_GROUP_KEY } from "./useNcRadioGroup-DaZbEKbf.mjs";
6
+ import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
7
+ const _sfc_main = /* @__PURE__ */ defineComponent({
8
+ __name: "NcRadioGroup",
9
+ props: /* @__PURE__ */ mergeModels({
10
+ label: {},
11
+ labelHidden: { type: Boolean },
12
+ hideLabel: { type: Boolean },
13
+ description: {}
14
+ }, {
15
+ "modelValue": { required: false, default: "" },
16
+ "modelModifiers": {}
17
+ }),
18
+ emits: ["update:modelValue"],
19
+ setup(__props) {
20
+ const modelValue = useModel(__props, "modelValue");
21
+ const buttonVariant = ref();
22
+ provide(INSIDE_RADIO_GROUP_KEY, computed(() => ({
23
+ register,
24
+ modelValue: modelValue.value,
25
+ onUpdate
26
+ })));
27
+ function register(isButton) {
28
+ if (buttonVariant.value !== void 0 && buttonVariant.value !== isButton) {
29
+ warn("[NcRadioGroup] Mixing NcCheckboxRadioSwitch and NcRadioGroupButton is not possible!");
30
+ }
31
+ buttonVariant.value = isButton;
32
+ }
33
+ function onUpdate(value) {
34
+ modelValue.value = value;
35
+ }
36
+ return (_ctx, _cache) => {
37
+ return openBlock(), createBlock(NcFormGroup, {
38
+ label: _ctx.label,
39
+ description: _ctx.description,
40
+ "hide-label": _ctx.labelHidden || _ctx.hideLabel
41
+ }, {
42
+ default: withCtx(() => [
43
+ buttonVariant.value ? (openBlock(), createBlock(NcFormBox, {
44
+ key: 0,
45
+ row: ""
46
+ }, {
47
+ default: withCtx(() => [
48
+ renderSlot(_ctx.$slots, "default")
49
+ ]),
50
+ _: 3
51
+ })) : (openBlock(), createElementBlock("span", {
52
+ key: 1,
53
+ class: normalizeClass(_ctx.$style.radioGroup_checkboxRadioContainer)
54
+ }, [
55
+ renderSlot(_ctx.$slots, "default")
56
+ ], 2))
57
+ ]),
58
+ _: 3
59
+ }, 8, ["label", "description", "hide-label"]);
60
+ };
61
+ }
62
+ });
63
+ const radioGroup_checkboxRadioContainer = "_radioGroup_checkboxRadioContainer_14z4o_20";
64
+ const style0 = {
65
+ "material-design-icon": "_material-design-icon_14z4o_12",
66
+ radioGroup_checkboxRadioContainer
67
+ };
68
+ const cssModules = {
69
+ "$style": style0
70
+ };
71
+ const NcRadioGroup = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
72
+ export {
73
+ NcRadioGroup as N
74
+ };
75
+ //# sourceMappingURL=NcRadioGroup-CLtk-WPR.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcRadioGroup-CLtk-WPR.mjs","sources":["../../src/components/NcRadioGroup/NcRadioGroup.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport type { Slot } from 'vue'\n\nimport { computed, provide, ref, warn } from 'vue'\nimport NcFormBox from '../NcFormBox/NcFormBox.vue'\nimport NcFormGroup from '../NcFormGroup/NcFormGroup.vue'\nimport { INSIDE_RADIO_GROUP_KEY } from './useNcRadioGroup.ts'\n\nconst modelValue = defineModel<string>({ required: false, default: '' })\n\ndefineProps<{\n\t/**\n\t * Label of the radio group (accessible name).\n\t * It can be hidden visually if needed using `hide-label` prop.\n\t */\n\tlabel: string\n\n\t/**\n\t * If set the label of the button group will not be shown visually but only for accessibility purposes.\n\t *\n\t * @deprecated Use `hide-label` instead.\n\t */\n\tlabelHidden?: boolean\n\n\t/**\n\t * If set the label of the button group will not be shown visually but only for accessibility purposes.\n\t */\n\thideLabel?: boolean\n\n\t/**\n\t * Optional visual description of the radio group.\n\t */\n\tdescription?: string\n}>()\n\ndefineSlots<{\n\t/**\n\t * Slot for the included radio buttons (`NcCheckboxRadioSwitch`).\n\t * The `type` prop of the `NcCheckboxRadioSwitch` will be automatically set (and forced) to `radio`.\n\t *\n\t * If you want the button variant, then you have to use `NcRadioGroupButton`.\n\t */\n\tdefault?: Slot\n}>()\n\nconst buttonVariant = ref<boolean>()\n\nprovide(INSIDE_RADIO_GROUP_KEY, computed(() => ({\n\tregister,\n\tmodelValue: modelValue.value,\n\tonUpdate,\n})))\n\n/**\n * Register a child component\n *\n * @param isButton - Whether the registered child component is a button or normal radio\n */\nfunction register(isButton: boolean): void {\n\tif (buttonVariant.value !== undefined && buttonVariant.value !== isButton) {\n\t\twarn('[NcRadioGroup] Mixing NcCheckboxRadioSwitch and NcRadioGroupButton is not possible!')\n\t}\n\tbuttonVariant.value = isButton\n}\n\n/**\n * Handle updating the current model value\n *\n * @param value - The new value\n */\nfunction onUpdate(value: string) {\n\tmodelValue.value = value\n}\n</script>\n\n<template>\n\t<NcFormGroup\n\t\t:label\n\t\t:description\n\t\t:hide-label=\"labelHidden || hideLabel\">\n\t\t<NcFormBox v-if=\"buttonVariant\" row>\n\t\t\t<slot />\n\t\t</NcFormBox>\n\t\t<span v-else :class=\"$style.radioGroup_checkboxRadioContainer\">\n\t\t\t<slot />\n\t\t</span>\n\t</NcFormGroup>\n</template>\n\n<style module lang=\"scss\">\n.radioGroup_checkboxRadioContainer :global(.checkbox-content) {\n\tmax-width: unset !important;\n}\n</style>\n\n<docs>\n## Usage example\n\n### Grouping multiple radio buttons\n\nThe radio group allows to group radio buttons into semantical groups.\nThe `v-model` only needs to be bound to the group component, also the `type` will automatically be set to `radio`.\n\n```vue\n<template>\n\t<NcRadioGroup v-model=\"selectedSides\" class=\"radio-group\" label=\"Sides\" description=\"Please choose the sides for your menu.\">\n\t\t<NcCheckboxRadioSwitch value=\"fries\">\n\t\t\tFries\n\t\t</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch value=\"salad\">\n\t\t\tSalad\n\t\t</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch value=\"none\">\n\t\t\tNothing\n\t\t</NcCheckboxRadioSwitch>\n\t</NcRadioGroup>\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tselectedSides: 'none',\n\t\t}\n\t},\n}\n</script>\n\n<style scoped>\n.radio-group {\n\tmax-width: 400px\n}\n</style>\n```\n\n### Radio buttons with button styling\n\nThe radio group also allows to create a button like styling together with the `NcRadioGroupButton` component:\n\n```vue\n<template>\n\t<div>\n\t\t<h4>With text labels</h4>\n\t\t<div style=\"max-width: 400px\">\n\t\t\t<NcRadioGroup v-model=\"alignment\" label=\"Example alignment\" hide-label>\n\t\t\t\t<NcRadioGroupButton label=\"Start\" value=\"start\" />\n\t\t\t\t<NcRadioGroupButton label=\"Center\" value=\"center\" />\n\t\t\t\t<NcRadioGroupButton label=\"End\" value=\"end\" />\n\t\t\t</NcRadioGroup>\n\t\t</div>\n\n\t\t<br>\n\n\t\t<h4>With icons</h4>\n\t\t<div style=\"max-width: 250px\">\n\t\t\t<NcRadioGroup v-model=\"alignment\" label=\"Example alignment with icons\" hide-label>\n\t\t\t\t<NcRadioGroupButton aria-label=\"Start\" value=\"start\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper directional :path=\"mdiAlignHorizontalLeft\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcRadioGroupButton>\n\t\t\t\t<NcRadioGroupButton aria-label=\"Center\" value=\"center\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiAlignHorizontalCenter\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcRadioGroupButton>\n\t\t\t\t<NcRadioGroupButton aria-label=\"End\" value=\"end\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper directional :path=\"mdiAlignHorizontalRight\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcRadioGroupButton>\n\t\t\t</NcRadioGroup>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport { mdiAlignHorizontalCenter, mdiAlignHorizontalLeft, mdiAlignHorizontalRight } from '@mdi/js'\n\nexport default {\n\tsetup() {\n\t\treturn {\n\t\t\tmdiAlignHorizontalCenter,\n\t\t\tmdiAlignHorizontalLeft,\n\t\t\tmdiAlignHorizontalRight,\n\t\t}\n\t},\n\tdata() {\n\t\treturn {\n\t\t\talignment: 'center',\n\t\t}\n\t},\n}\n</script>\n```\n</docs>\n"],"names":["_useModel","_createBlock","label","description","labelHidden","hideLabel","_renderSlot","_createElementBlock","_normalizeClass","$style"],"mappings":";;;;;;;;;;;;;;;;;;AAaA,UAAM,aAAaA,SAAmB,SAAA,YAAiC;AAqCvE,UAAM,gBAAgB,IAAA;AAEtB,YAAQ,wBAAwB,SAAS,OAAO;AAAA,MAC/C;AAAA,MACA,YAAY,WAAW;AAAA,MACvB;AAAA,IAAA,EACC,CAAC;AAOH,aAAS,SAAS,UAAyB;AAC1C,UAAI,cAAc,UAAU,UAAa,cAAc,UAAU,UAAU;AAC1E,aAAK,qFAAqF;AAAA,MAC3F;AACA,oBAAc,QAAQ;AAAA,IACvB;AAOA,aAAS,SAAS,OAAe;AAChC,iBAAW,QAAQ;AAAA,IACpB;;0BAICC,YAUc,aAAA;AAAA,QATZ,OAAAC,KAAAA;AAAAA,QACA,aAAAC,KAAAA;AAAAA,QACA,cAAYC,KAAAA,eAAeC,KAAAA;AAAAA,MAAAA;yBAC5B,MAEY;AAAA,UAFK,cAAA,sBAAjBJ,YAEY,WAAA;AAAA;YAFoB,KAAA;AAAA,UAAA;6BAC/B,MAAQ;AAAA,cAARK,WAAQ,KAAA,QAAA,SAAA;AAAA,YAAA;;8BAETC,mBAEO,QAAA;AAAA;YAFO,OAAKC,eAAEC,KAAAA,OAAO,iCAAiC;AAAA,UAAA;YAC5DH,WAAQ,KAAA,QAAA,SAAA;AAAA,UAAA;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,7 @@
1
- import '../assets/NcRadioGroupButton-qxDfssOp.css';
2
- import { defineComponent, onMounted, computed, createElementBlock, openBlock, normalizeClass, createCommentVNode, createElementVNode, renderSlot, unref, toDisplayString } from "vue";
1
+ import '../assets/NcRadioGroupButton-DRZ1_-yY.css';
2
+ import { defineComponent, onMounted, computed, createElementBlock, openBlock, normalizeClass, unref, createCommentVNode, createElementVNode, renderSlot, toDisplayString } from "vue";
3
3
  import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
4
+ import { u as useNcFormBox } from "./useNcFormBox-DA9iwXWY.mjs";
4
5
  import { u as useInsideRadioGroup } from "./useNcRadioGroup-DaZbEKbf.mjs";
5
6
  import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
6
7
  const _hoisted_1 = ["id"];
@@ -16,6 +17,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
16
17
  const props = __props;
17
18
  const labelId = createElementId();
18
19
  const radioGroup = useInsideRadioGroup();
20
+ const { formBoxItemClass } = useNcFormBox();
19
21
  onMounted(() => radioGroup.value.register(true));
20
22
  const isChecked = computed(() => radioGroup?.value.modelValue === props.value);
21
23
  function onUpdate() {
@@ -25,7 +27,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
25
27
  return openBlock(), createElementBlock("div", {
26
28
  class: normalizeClass([{
27
29
  [_ctx.$style.radioGroupButton_active]: isChecked.value
28
- }, _ctx.$style.radioGroupButton]),
30
+ }, _ctx.$style.radioGroupButton, unref(formBoxItemClass)]),
29
31
  onClick: onUpdate
30
32
  }, [
31
33
  _ctx.$slots.icon ? (openBlock(), createElementBlock("div", {
@@ -52,12 +54,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
52
54
  };
53
55
  }
54
56
  });
55
- const radioGroupButton = "_radioGroupButton_12t7u_20";
56
- const radioGroupButton__label = "_radioGroupButton__label_12t7u_46";
57
- const radioGroupButton__icon = "_radioGroupButton__icon_12t7u_49";
58
- const radioGroupButton_active = "_radioGroupButton_active_12t7u_70";
57
+ const radioGroupButton = "_radioGroupButton_1euqq_20";
58
+ const radioGroupButton__label = "_radioGroupButton__label_1euqq_46";
59
+ const radioGroupButton__icon = "_radioGroupButton__icon_1euqq_49";
60
+ const radioGroupButton_active = "_radioGroupButton_active_1euqq_62";
59
61
  const style0 = {
60
- "material-design-icon": "_material-design-icon_12t7u_12",
62
+ "material-design-icon": "_material-design-icon_1euqq_12",
61
63
  radioGroupButton,
62
64
  radioGroupButton__label,
63
65
  radioGroupButton__icon,
@@ -70,4 +72,4 @@ const NcRadioGroupButton = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModule
70
72
  export {
71
73
  NcRadioGroupButton as N
72
74
  };
73
- //# sourceMappingURL=NcRadioGroupButton-BNydXurR.mjs.map
75
+ //# sourceMappingURL=NcRadioGroupButton-CDA5i7Dq.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcRadioGroupButton-CDA5i7Dq.mjs","sources":["../../src/components/NcRadioGroupButton/NcRadioGroupButton.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport type { Slot } from 'vue'\n\nimport { computed, onMounted } from 'vue'\nimport { createElementId } from '../../utils/createElementId.ts'\nimport { useNcFormBox } from '../NcFormBox/useNcFormBox.ts'\nimport { useInsideRadioGroup } from '../NcRadioGroup/useNcRadioGroup.ts'\n\nconst props = defineProps<{\n\t/**\n\t * Non visible label for accessibility when no `label` is passed.\n\t */\n\tariaLabel?: string\n\n\t/**\n\t * The visual label of the radio button\n\t */\n\tlabel?: string\n\n\t/**\n\t * The value that should be assigned to the `modelValue` of the `NcRadioGroup`.\n\t */\n\tvalue: string\n}>()\n\ndefineSlots<{\n\t/**\n\t * Optional icon slot\n\t */\n\ticon?: Slot\n}>()\n\nconst labelId = createElementId()\nconst radioGroup = useInsideRadioGroup()\nconst { formBoxItemClass } = useNcFormBox()\n\nonMounted(() => radioGroup!.value.register(true))\n\nconst isChecked = computed(() => radioGroup?.value.modelValue === props.value)\n\n/**\n * Handle updating the current model value\n */\nfunction onUpdate() {\n\tradioGroup!.value.onUpdate(props.value)\n}\n</script>\n\n<template>\n\t<div\n\t\t:class=\"[{\n\t\t\t[$style.radioGroupButton_active]: isChecked,\n\t\t}, $style.radioGroupButton, formBoxItemClass]\"\n\t\t@click=\"onUpdate\">\n\t\t<div v-if=\"$slots.icon\" :class=\"$style.radioGroupButton__icon\">\n\t\t\t<slot name=\"icon\" />\n\t\t</div>\n\n\t\t<div v-if=\"label\" :id=\"labelId\" :class=\"$style.radioGroupButton__label\">\n\t\t\t{{ label }}\n\t\t</div>\n\n\t\t<input\n\t\t\t:aria-labelledby=\"label ? labelId : undefined\"\n\t\t\t:aria-label=\"label ? undefined : ariaLabel\"\n\t\t\tclass=\"hidden-visually\"\n\t\t\t:checked=\"isChecked\"\n\t\t\ttype=\"radio\"\n\t\t\t:value\n\t\t\t@input=\"onUpdate\">\n\t</div>\n</template>\n\n<style module lang=\"scss\">\n.radioGroupButton {\n\t--radio-group-button--border-radius: var(--border-radius-small);\n\t--radio-group-button--border-width: 1px;\n\t--radio-group-button--color: var(--color-primary-element-light-text);\n\t--radio-group-button--background-color: var(--color-primary-element-light);\n\t--radio-group-button--background-color-hover: var(--color-primary-element-light-hover);\n\t--radio-group-button--padding: 1px;\n\tcursor: pointer;\n\tcolor: var(--radio-group-button--color);\n\tbackground-color: var(--radio-group-button--background-color);\n\ttransition: var(--animation-quick) background-color;\n\tborder: var(--radio-group-button--border-width) solid var(--radio-group-button--background-color-hover);\n\tborder-bottom-width: 2px;\n\tborder-radius: var(--radio-group-button--border-radius);\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n\tjustify-content: center;\n\ttext-align: center;\n\tmin-height: var(--default-clickable-area);\n\t// ensure that the content is centered because of uneven border\n\tpadding-block: var(--radio-group-button--padding) 0;\n\tpadding-inline: var(--radio-group-button--padding);\n\n\t* {\n\t\tcursor: pointer;\n\t}\n\n\t&:has(&__label) {\n\t\tpadding-inline: calc(var(--radio-group-button--padding) + var(--border-radius-element));\n\t}\n\n\t&:has(&__icon) {\n\t\tpadding-inline-start: var(--radio-group-button--padding);\n\t}\n\n\t&:hover {\n\t\tbackground-color: var(--radio-group-button--background-color-hover);\n\t}\n\n\t&:focus-within {\n\t\t--radio-group-button--border-width: 2px;\n\t\t--radio-group-button--padding: 0px;\n\t\tborder: var(--radio-group-button--border-width) solid var(--color-main-text) !important;\n\t\toutline: calc(var(--default-grid-baseline) / 2) var(--color-main-background);\n\t}\n}\n\n.radioGroupButton_active {\n\t--radio-group-button--color: var(--color-primary-element-text);\n\t--radio-group-button--background-color: var(--color-primary-element);\n\t--radio-group-button--background-color-hover: var(--color-primary-element-hover);\n}\n\n.radioGroupButton__label {\n\tfont-weight: bold;\n}\n\n.radioGroupButton__icon {\n\t--radio-group-button--icon-size: calc(var(--default-clickable-area) - 4px);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\theight: 100%;\n\twidth: var(--radio-group-button--icon-size);\n\n\t// make sure the icon is a bit smaller to account for border\n\t* {\n\t\t--default-clickable-area: var(--radio-group-button--icon-size);\n\t}\n}\n</style>\n"],"names":["_createElementBlock","_normalizeClass","$style","_unref","$slots","_renderSlot","label","_createElementVNode","ariaLabel","value"],"mappings":";;;;;;;;;;;;;;;AAaA,UAAM,QAAQ;AAwBd,UAAM,UAAU,gBAAA;AAChB,UAAM,aAAa,oBAAA;AACnB,UAAM,EAAE,iBAAA,IAAqB,aAAA;AAE7B,cAAU,MAAM,WAAY,MAAM,SAAS,IAAI,CAAC;AAEhD,UAAM,YAAY,SAAS,MAAM,YAAY,MAAM,eAAe,MAAM,KAAK;AAK7E,aAAS,WAAW;AACnB,iBAAY,MAAM,SAAS,MAAM,KAAK;AAAA,IACvC;;0BAICA,mBAqBM,OAAA;AAAA,QApBJ,OAAKC,eAAA,CAAA;AAAA,WAASC,KAAAA,OAAO,uBAAuB,GAAG,UAAA;AAAA,QAAA,GAAgBA,KAAAA,OAAO,kBAAkBC,MAAA,gBAAA,CAAgB,CAAA;AAAA,QAGxG,SAAO;AAAA,MAAA;QACGC,KAAAA,OAAO,qBAAlBJ,mBAEM,OAAA;AAAA;UAFmB,OAAKC,eAAEC,KAAAA,OAAO,sBAAsB;AAAA,QAAA;UAC5DG,WAAoB,KAAA,QAAA,MAAA;AAAA,QAAA;QAGVC,KAAAA,sBAAXN,mBAEM,OAAA;AAAA;UAFa,IAAIG,MAAA,OAAA;AAAA,UAAU,OAAKF,eAAEC,KAAAA,OAAO,uBAAuB;AAAA,QAAA,mBAClEI,KAAAA,KAAK,GAAA,IAAA,UAAA;QAGTC,mBAOmB,SAAA;AAAA,UANjB,mBAAiBD,KAAAA,QAAQH,MAAA,OAAA,IAAU;AAAA,UACnC,cAAYG,KAAAA,QAAQ,SAAYE,KAAAA;AAAAA,UACjC,OAAM;AAAA,UACL,SAAS,UAAA;AAAA,UACV,MAAK;AAAA,UACJ,OAAAC,KAAAA;AAAAA,UACA,SAAO;AAAA,QAAA;;;;;;;;;;;;;;;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import '../assets/NcRelatedResourcesPanel-CZDNe7DZ.css';
2
2
  import axios from "@nextcloud/axios";
3
3
  import { generateOcsUrl } from "@nextcloud/router";
4
- import { r as register, A as t37, a as t, B as t40, C as t9 } from "./_l10n-YZMLsK4O.mjs";
4
+ import { r as register, A as t38, a as t, B as t41, C as t9 } from "./_l10n--WxGDYem.mjs";
5
5
  import { N as NcButton } from "./NcButton-DkC5k3Lb.mjs";
6
6
  import { g as getRoute } from "./autolink-U5pBzLgI.mjs";
7
7
  import { resolveComponent, createElementBlock, openBlock, createVNode, withCtx, createTextVNode, toDisplayString, createElementVNode, mergeProps, createCommentVNode, Fragment, renderList, createBlock } from "vue";
@@ -11,7 +11,7 @@ import { C as ChevronDown } from "./ChevronDown-FiGpp0KT.mjs";
11
11
  import { C as ChevronUp } from "./ChevronUp-DPXFp1ss.mjs";
12
12
  import { N as NcIconSvgWrapper } from "./NcIconSvgWrapper-5AA93z-F.mjs";
13
13
  import { l as logger$1 } from "./logger-D3RVzcfQ.mjs";
14
- register(t37);
14
+ register(t38);
15
15
  const _sfc_main$4 = {
16
16
  name: "NcResource",
17
17
  components: {
@@ -158,7 +158,7 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
158
158
  ], 16, _hoisted_1$2);
159
159
  }
160
160
  const OpenInNew = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2]]);
161
- register(t40);
161
+ register(t41);
162
162
  const teamResourceProviders = getCapabilities()?.circles?.teamResourceProviders ?? [];
163
163
  const _sfc_main$1 = {
164
164
  name: "NcTeamResources",
@@ -553,4 +553,4 @@ const NcRelatedResourcesPanel = /* @__PURE__ */ _export_sfc(_sfc_main, [["render
553
553
  export {
554
554
  NcRelatedResourcesPanel as N
555
555
  };
556
- //# sourceMappingURL=NcRelatedResourcesPanel-1oVpr5Oh.mjs.map
556
+ //# sourceMappingURL=NcRelatedResourcesPanel-DP7W80M0.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NcRelatedResourcesPanel-1oVpr5Oh.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.ts'\nimport NcButton from '../NcButton/index.ts'\nimport { getRoute } from '../NcRichText/autolink.ts'\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-inline-start: 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.ts'\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('[NcTeamResources] Failed to fetch 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-container);\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-inline-end: 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-element);\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.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'hasError',\n\t\t'hasResources',\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('hasError', 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('hasResources', 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 = error\n\t\t\t\tlogger.error('[NcRelatedResourcesPanel] Failed to fetch 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","_hoisted_1","_hoisted_2","_openBlock","_createElementBlock","_createVNode","_createElementVNode","_hoisted_3","_createTextVNode","_mergeProps","t","logger","_toDisplayString","_Fragment","_renderList","_createBlock"],"mappings":"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","x_google_ignoreList":[1,2]}
1
+ {"version":3,"file":"NcRelatedResourcesPanel-DP7W80M0.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.ts'\nimport NcButton from '../NcButton/index.ts'\nimport { getRoute } from '../NcRichText/autolink.ts'\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-inline-start: 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.ts'\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('[NcTeamResources] Failed to fetch 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-container);\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-inline-end: 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-element);\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.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'hasError',\n\t\t'hasResources',\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('hasError', 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('hasResources', 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 = error\n\t\t\t\tlogger.error('[NcRelatedResourcesPanel] Failed to fetch 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","_hoisted_1","_hoisted_2","_openBlock","_createElementBlock","_createVNode","_createElementVNode","_hoisted_3","_createTextVNode","_mergeProps","t","logger","_toDisplayString","_Fragment","_renderList","_createBlock"],"mappings":"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","x_google_ignoreList":[1,2]}
@@ -1,13 +1,13 @@
1
- import '../assets/NcRichContenteditable-CPbTS8xJ.css';
1
+ import '../assets/NcRichContenteditable-BuaWt3Xn.css';
2
2
  import debounce from "debounce";
3
3
  import Tribute from "tributejs/dist/tribute.esm.js";
4
4
  import { useIsDarkTheme } from "../composables/useIsDarkTheme/index.mjs";
5
5
  import { g as getAvatarUrl } from "./NcMentionBubble.vue_vue_type_style_index_0_scoped_45238efd_lang-D6LzDiYf.mjs";
6
- import { N as NcUserStatusIcon } from "./NcUserStatusIcon-DWB8QUZh.mjs";
6
+ import { N as NcUserStatusIcon } from "./NcUserStatusIcon-D6fygDFl.mjs";
7
7
  import { createElementBlock, openBlock, normalizeClass, createElementVNode, normalizeStyle, toDisplayString, createApp, resolveComponent, createBlock, createCommentVNode, mergeProps, withModifiers, withKeys } from "vue";
8
8
  import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
9
9
  import { e as emojiSearch, a as emojiAddRecent } from "./emoji-BY_D0V5K.mjs";
10
- import { r as register, j as t36, q as t33, a as t, s as n } from "./_l10n-YZMLsK4O.mjs";
10
+ import { r as register, j as t37, q as t34, a as t, s as n } from "./_l10n--WxGDYem.mjs";
11
11
  import escapeHTML from "escape-html";
12
12
  import stripTags from "striptags";
13
13
  import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
@@ -20,22 +20,22 @@ import "@vueuse/core";
20
20
  import "vue-router";
21
21
  import "./legacy-DcjXBL_t.mjs";
22
22
  import "./NcButton-DkC5k3Lb.mjs";
23
- import { g as getLinkWithPicker, s as searchProvider } from "./referencePickerModal-CseuhGwX.mjs";
23
+ import { g as getLinkWithPicker, s as searchProvider } from "./referencePickerModal-el0J7aNd.mjs";
24
24
  import "./customPickerElements-4pQTZUnk.mjs";
25
25
  import "./autolink-U5pBzLgI.mjs";
26
- import "./NcRichText-CETsOVBU.mjs";
26
+ import "./NcRichText-PvndLTtG.mjs";
27
27
  import "./NcEmptyContent-B8-90BSI.mjs";
28
28
  import "./NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs";
29
- import "./NcSelect-BUPzYWtk.mjs";
29
+ import "./NcSelect-DekSQwK1.mjs";
30
30
  import "./NcLoadingIcon-b_ajZ_nQ.mjs";
31
- import "./NcTextField.vue_vue_type_script_setup_true_lang-DVAnIMOA.mjs";
31
+ import "./NcTextField.vue_vue_type_script_setup_true_lang-cbNqV44E.mjs";
32
32
  import "dompurify";
33
33
  import "./NcIconSvgWrapper-5AA93z-F.mjs";
34
- import "./NcInputField-By_D1kDJ.mjs";
34
+ import "./NcInputField-DwkKsbxv.mjs";
35
35
  import "@nextcloud/event-bus";
36
36
  import "focus-trap";
37
- import "./NcModal-CvHjwuUy.mjs";
38
- import "./NcActions-C-E6BGfZ.mjs";
37
+ import "./NcModal-BIG1WrLo.mjs";
38
+ import "./NcActions-QtUC1sD3.mjs";
39
39
  const _sfc_main$2 = {
40
40
  name: "NcMentionBubble",
41
41
  /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */
@@ -316,7 +316,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
316
316
  ]);
317
317
  }
318
318
  const NcAutoCompleteResult = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-ca83b679"]]);
319
- register(t33, t36);
319
+ register(t34, t37);
320
320
  const style1 = {
321
321
  "material-design-icon": "_material-design-icon_1xkrb_12",
322
322
  "tribute-container": "_tribute-container_1xkrb_20",
@@ -680,6 +680,9 @@ const _sfc_main = {
680
680
  if (!document.createRange) {
681
681
  return;
682
682
  }
683
+ if (window.getSelection().rangeCount > 0 && this.$refs.contenteditable.contains(window.getSelection().getRangeAt(0).commonAncestorContainer)) {
684
+ return;
685
+ }
683
686
  const range = document.createRange();
684
687
  range.selectNodeContents(this.$refs.contenteditable);
685
688
  range.collapse(false);
@@ -934,10 +937,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
934
937
  const cssModules = {
935
938
  "$style": style1
936
939
  };
937
- const NcRichContenteditable = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__cssModules", cssModules], ["__scopeId", "data-v-0292b43f"]]);
940
+ const NcRichContenteditable = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__cssModules", cssModules], ["__scopeId", "data-v-faef642b"]]);
938
941
  export {
939
942
  NcMentionBubble as N,
940
943
  NcAutoCompleteResult as a,
941
944
  NcRichContenteditable as b
942
945
  };
943
- //# sourceMappingURL=NcRichContenteditable-D-GPJR9c.mjs.map
946
+ //# sourceMappingURL=NcRichContenteditable-A0F0waG9.mjs.map