@nextcloud/vue 9.8.1 → 9.9.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 (318) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +21 -0
  3. package/dist/assets/{NcActions-DOI7rRa0.css → NcActions-y7ehwPSp.css} +14 -11
  4. package/dist/assets/{NcAppContent-BC7DBer3.css → NcAppContent-TgcZd4AI.css} +20 -20
  5. package/dist/assets/{NcAppNavigation-2b1jxOXM.css → NcAppNavigation-OHw55TTZ.css} +13 -13
  6. package/dist/assets/{NcAppNavigationItem-BsuZoJAq.css → NcAppNavigationItem-BZ1xj6Xi.css} +49 -49
  7. package/dist/assets/{NcAppNavigationSettings-HQEDobBQ.css → NcAppNavigationSettings-mWFhcXm0.css} +6 -6
  8. package/dist/assets/{NcAppSettingsDialog-HsZoLuDy.css → NcAppSettingsDialog-Dh_scIK4.css} +31 -31
  9. package/dist/assets/{NcAppSettingsShortcutsSection-BonG0SgH.css → NcAppSettingsShortcutsSection-BHxkQTg2.css} +1 -1
  10. package/dist/assets/{NcAppSidebar-dHtSShIl.css → NcAppSidebar-oJQ8kUb0.css} +21 -21
  11. package/dist/assets/{NcAssistantButton-BmD9GrOw.css → NcAssistantButton-CT25wqIs.css} +9 -9
  12. package/dist/assets/{NcAssistantContent-7THxd33X.css → NcAssistantContent-FV00e96S.css} +3 -3
  13. package/dist/assets/{NcAssistantIcon-CsBmzIxJ.css → NcAssistantIcon-BMLpMaMJ.css} +4 -4
  14. package/dist/assets/{NcBlurHash-tWUPu9Oh.css → NcBlurHash-RgrahjEp.css} +2 -2
  15. package/dist/assets/{NcBreadcrumbs-5gl8Syfa.css → NcBreadcrumbs-B4eyDS9i.css} +6 -6
  16. package/dist/assets/{NcButton-Bf9wuDV-.css → NcButton-DOrlC_y5.css} +49 -49
  17. package/dist/assets/{NcDateTimePicker-HT1ZTE-Z.css → NcDateTimePicker-BQ_y9Ihj.css} +235 -235
  18. package/dist/assets/{NcFilePicker-CimiKIH1.css → NcFilePicker-BdjtiV3h.css} +1 -1
  19. package/dist/assets/{NcFormBox-CRdHJkrd.css → NcFormBox-TRgICDO3.css} +11 -11
  20. package/dist/assets/{NcFormBoxButton-BWfU7d2r.css → NcFormBoxButton-ClkxmO-H.css} +2 -2
  21. package/dist/assets/{NcFormBoxItem-Bjbi17-B.css → NcFormBoxItem-CABDVZLe.css} +14 -14
  22. package/dist/assets/{NcFormBoxSwitch-Cn-MBAzZ.css → NcFormBoxSwitch-NCjook_Z.css} +2 -2
  23. package/dist/assets/{NcFormGroup-qFucmL8a.css → NcFormGroup-eh8-PBGB.css} +7 -7
  24. package/dist/assets/{NcGuestContent-j8ai4O1K.css → NcGuestContent-CM0uWLr1.css} +3 -3
  25. package/dist/assets/{NcHotkey-CvuY7fQJ.css → NcHotkey-Dm-26TVC.css} +8 -8
  26. package/dist/assets/{NcHotkeyList-BfrEkKmK.css → NcHotkeyList-BigfRqyr.css} +2 -2
  27. package/dist/assets/{NcIconToggleSwitch-V-AKJgPA.css → NcIconToggleSwitch-zUXkaJHv.css} +4 -4
  28. package/dist/assets/{NcInputConfirmCancel-BEmwC87z.css → NcInputConfirmCancel-DZEDRf0t.css} +8 -8
  29. package/dist/assets/{NcKbd-BeQpGp0b.css → NcKbd-DcC56WbC.css} +3 -3
  30. package/dist/assets/{NcListItem-1uR7AJIf.css → NcListItem-BjeejGlB.css} +58 -58
  31. package/dist/assets/{NcMentionBubble-ptHUq68a.css → NcMentionBubble-BeGb2xGc.css} +9 -9
  32. package/dist/assets/{NcPopover-P1fheee2.css → NcPopover-CAoHhjKa.css} +14 -14
  33. package/dist/assets/{NcRadioGroup-BoFb0R8S.css → NcRadioGroup-CtXZ4Y8D.css} +2 -2
  34. package/dist/assets/{NcRadioGroupButton-DUF_3DDU.css → NcRadioGroupButton-BuB-aWeJ.css} +13 -13
  35. package/dist/assets/{NcRelatedResourcesPanel-CiG_Ixb6.css → NcRelatedResourcesPanel-BZKjkugM.css} +24 -24
  36. package/dist/assets/{NcRichContenteditable-DNABzVif.css → NcRichContenteditable-BCUBhRqg.css} +37 -37
  37. package/dist/assets/{NcRichText-BTu-LT3p.css → NcRichText-D0Bu5bbu.css} +93 -93
  38. package/dist/assets/{autolink-C_iad4O_.css → autolink-XS-VDSVB.css} +3 -3
  39. package/dist/assets/{referencePickerModal-Dod7nzta.css → referencePickerModal-BNPfxyni.css} +89 -54
  40. package/dist/chunks/{NcActionButtonGroup-B9LfyE-G.mjs → NcActionButtonGroup-Dd03Oluy.mjs} +2 -2
  41. package/dist/chunks/{NcActionButtonGroup-B9LfyE-G.mjs.map → NcActionButtonGroup-Dd03Oluy.mjs.map} +1 -1
  42. package/dist/chunks/{NcActionInput-BO0lB4VP.mjs → NcActionInput-Dr8Yrafu.mjs} +5 -5
  43. package/dist/chunks/{NcActionInput-BO0lB4VP.mjs.map → NcActionInput-Dr8Yrafu.mjs.map} +1 -1
  44. package/dist/chunks/{NcActions-CUmcZ3C3.mjs → NcActions-C-wDqSrv.mjs} +23 -8
  45. package/dist/chunks/NcActions-C-wDqSrv.mjs.map +1 -0
  46. package/dist/chunks/{NcAppContent--92JdjRr.mjs → NcAppContent-DavgjaFX.mjs} +5 -5
  47. package/dist/chunks/{NcAppContent--92JdjRr.mjs.map → NcAppContent-DavgjaFX.mjs.map} +1 -1
  48. package/dist/chunks/{NcAppNavigation-Bb9-C2eO.mjs → NcAppNavigation-g57j16pB.mjs} +8 -7
  49. package/dist/chunks/NcAppNavigation-g57j16pB.mjs.map +1 -0
  50. package/dist/chunks/{NcAppNavigationCaption-E9iJtiQt.mjs → NcAppNavigationCaption-VjSWJ8R4.mjs} +2 -2
  51. package/dist/chunks/{NcAppNavigationCaption-E9iJtiQt.mjs.map → NcAppNavigationCaption-VjSWJ8R4.mjs.map} +1 -1
  52. package/dist/chunks/{NcAppNavigationItem-BFAIHyTL.mjs → NcAppNavigationItem-CDeYtA3E.mjs} +12 -12
  53. package/dist/chunks/{NcAppNavigationItem-BFAIHyTL.mjs.map → NcAppNavigationItem-CDeYtA3E.mjs.map} +1 -1
  54. package/dist/chunks/{NcAppNavigationNew-Dspn3-4i.mjs → NcAppNavigationNew-CBNppM7Q.mjs} +2 -2
  55. package/dist/chunks/{NcAppNavigationNew-Dspn3-4i.mjs.map → NcAppNavigationNew-CBNppM7Q.mjs.map} +1 -1
  56. package/dist/chunks/{NcAppNavigationNewItem-Cg8IJ6ZV.mjs → NcAppNavigationNewItem-B1RfQkvu.mjs} +2 -2
  57. package/dist/chunks/{NcAppNavigationNewItem-Cg8IJ6ZV.mjs.map → NcAppNavigationNewItem-B1RfQkvu.mjs.map} +1 -1
  58. package/dist/chunks/{NcAppNavigationSearch-CiOKjV3M.mjs → NcAppNavigationSearch-CQQWb1Eq.mjs} +3 -3
  59. package/dist/chunks/{NcAppNavigationSearch-CiOKjV3M.mjs.map → NcAppNavigationSearch-CQQWb1Eq.mjs.map} +1 -1
  60. package/dist/chunks/{NcAppNavigationSettings-fbuQmy-q.mjs → NcAppNavigationSettings-DoMjRExO.mjs} +10 -10
  61. package/dist/chunks/{NcAppNavigationSettings-fbuQmy-q.mjs.map → NcAppNavigationSettings-DoMjRExO.mjs.map} +1 -1
  62. package/dist/chunks/{NcAppSettingsDialog-DByPnndK.mjs → NcAppSettingsDialog-BPcEYLjP.mjs} +8 -8
  63. package/dist/chunks/NcAppSettingsDialog-BPcEYLjP.mjs.map +1 -0
  64. package/dist/chunks/{NcAppSettingsShortcutsSection-DgqVuZGx.mjs → NcAppSettingsShortcutsSection-DLwubKV9.mjs} +4 -4
  65. package/dist/chunks/{NcAppSettingsShortcutsSection-DgqVuZGx.mjs.map → NcAppSettingsShortcutsSection-DLwubKV9.mjs.map} +1 -1
  66. package/dist/chunks/{NcAppSidebar-Ch7Vp7q5.mjs → NcAppSidebar-C8YzAzrZ.mjs} +12 -12
  67. package/dist/chunks/{NcAppSidebar-Ch7Vp7q5.mjs.map → NcAppSidebar-C8YzAzrZ.mjs.map} +1 -1
  68. package/dist/chunks/{NcAssistantButton-CTrCv4CO.mjs → NcAssistantButton-iK491d2v.mjs} +11 -11
  69. package/dist/chunks/{NcAssistantButton-CTrCv4CO.mjs.map → NcAssistantButton-iK491d2v.mjs.map} +1 -1
  70. package/dist/chunks/{NcAssistantContent-CeuwcdMY.mjs → NcAssistantContent-iHA4O4cC.mjs} +5 -5
  71. package/dist/chunks/{NcAssistantContent-CeuwcdMY.mjs.map → NcAssistantContent-iHA4O4cC.mjs.map} +1 -1
  72. package/dist/chunks/{NcAssistantIcon-Dpp9_LUg.mjs → NcAssistantIcon-C6s4Qm7-.mjs} +6 -6
  73. package/dist/chunks/{NcAssistantIcon-Dpp9_LUg.mjs.map → NcAssistantIcon-C6s4Qm7-.mjs.map} +1 -1
  74. package/dist/chunks/{NcAvatar-M3-CbKbq.mjs → NcAvatar-1KxMUN7V.mjs} +11 -10
  75. package/dist/chunks/NcAvatar-1KxMUN7V.mjs.map +1 -0
  76. package/dist/chunks/{NcBlurHash-yPfSKY7W.mjs → NcBlurHash-B30Ol8KP.mjs} +4 -4
  77. package/dist/chunks/{NcBlurHash-yPfSKY7W.mjs.map → NcBlurHash-B30Ol8KP.mjs.map} +1 -1
  78. package/dist/chunks/{NcBreadcrumb-BeDMWE_b.mjs → NcBreadcrumb-3Y5NWXnV.mjs} +3 -3
  79. package/dist/chunks/{NcBreadcrumb-BeDMWE_b.mjs.map → NcBreadcrumb-3Y5NWXnV.mjs.map} +1 -1
  80. package/dist/chunks/{NcBreadcrumbs-CuQDDvin.mjs → NcBreadcrumbs-BaTp3Sya.mjs} +5 -6
  81. package/dist/chunks/{NcBreadcrumbs-CuQDDvin.mjs.map → NcBreadcrumbs-BaTp3Sya.mjs.map} +1 -1
  82. package/dist/chunks/{NcButton-QbPBynlU.mjs → NcButton-jvoYS2my.mjs} +3 -3
  83. package/dist/chunks/{NcButton-QbPBynlU.mjs.map → NcButton-jvoYS2my.mjs.map} +1 -1
  84. package/dist/chunks/{NcCheckboxRadioSwitch-D8Dfv4iw.mjs → NcCheckboxRadioSwitch-DVdt5Hkq.mjs} +3 -3
  85. package/dist/chunks/{NcCheckboxRadioSwitch-D8Dfv4iw.mjs.map → NcCheckboxRadioSwitch-DVdt5Hkq.mjs.map} +1 -1
  86. package/dist/chunks/{NcChip-nVHnbjaY.mjs → NcChip-DKRlV47q.mjs} +3 -3
  87. package/dist/chunks/{NcChip-nVHnbjaY.mjs.map → NcChip-DKRlV47q.mjs.map} +1 -1
  88. package/dist/chunks/{NcCollectionList-CO-iHqi6.mjs → NcCollectionList-B9qCtjJw.mjs} +6 -6
  89. package/dist/chunks/NcCollectionList-B9qCtjJw.mjs.map +1 -0
  90. package/dist/chunks/{NcColorPicker-D6NbBOX3.mjs → NcColorPicker-BCkasLwT.mjs} +5 -5
  91. package/dist/chunks/{NcColorPicker-D6NbBOX3.mjs.map → NcColorPicker-BCkasLwT.mjs.map} +1 -1
  92. package/dist/chunks/{NcContent-BhMoPROW.mjs → NcContent-BYh5hWDN.mjs} +3 -3
  93. package/dist/chunks/{NcContent-BhMoPROW.mjs.map → NcContent-BYh5hWDN.mjs.map} +1 -1
  94. package/dist/chunks/{NcDashboardWidget-ftOfMTzx.mjs → NcDashboardWidget-zmbDEGL-.mjs} +4 -4
  95. package/dist/chunks/{NcDashboardWidget-ftOfMTzx.mjs.map → NcDashboardWidget-zmbDEGL-.mjs.map} +1 -1
  96. package/dist/chunks/{NcDashboardWidgetItem-BwwFiNOL.mjs → NcDashboardWidgetItem-DwDndrm_.mjs} +3 -3
  97. package/dist/chunks/{NcDashboardWidgetItem-BwwFiNOL.mjs.map → NcDashboardWidgetItem-DwDndrm_.mjs.map} +1 -1
  98. package/dist/chunks/{NcDateTimePicker-CK4rhfEB.mjs → NcDateTimePicker-qaFC_wUt.mjs} +20 -14
  99. package/dist/chunks/NcDateTimePicker-qaFC_wUt.mjs.map +1 -0
  100. package/dist/chunks/{NcDateTimePickerNative-BeM4WOA4.mjs → NcDateTimePickerNative-B8CMOUnH.mjs} +2 -2
  101. package/dist/chunks/{NcDateTimePickerNative-BeM4WOA4.mjs.map → NcDateTimePickerNative-B8CMOUnH.mjs.map} +1 -1
  102. package/dist/chunks/{NcDialog-kwzJ3A4X.mjs → NcDialog-D617YI0t.mjs} +3 -3
  103. package/dist/chunks/{NcDialog-kwzJ3A4X.mjs.map → NcDialog-D617YI0t.mjs.map} +1 -1
  104. package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-Cn-8O9iZ.mjs → NcDialogButton.vue_vue_type_script_setup_true_lang-Bqfy678u.mjs} +3 -3
  105. package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-Cn-8O9iZ.mjs.map → NcDialogButton.vue_vue_type_script_setup_true_lang-Bqfy678u.mjs.map} +1 -1
  106. package/dist/chunks/{NcEmojiPicker-Bpw-68QP.mjs → NcEmojiPicker-UTxgju3f.mjs} +7 -7
  107. package/dist/chunks/{NcEmojiPicker-Bpw-68QP.mjs.map → NcEmojiPicker-UTxgju3f.mjs.map} +1 -1
  108. package/dist/chunks/{NcFilePicker-nPCwHMqj.mjs → NcFilePicker-bD2toutn.mjs} +4 -4
  109. package/dist/chunks/{NcFilePicker-nPCwHMqj.mjs.map → NcFilePicker-bD2toutn.mjs.map} +1 -1
  110. package/dist/chunks/{NcFormBox-ClWfuBWz.mjs → NcFormBox-Bmqar8nn.mjs} +7 -7
  111. package/dist/chunks/{NcFormBox-ClWfuBWz.mjs.map → NcFormBox-Bmqar8nn.mjs.map} +1 -1
  112. package/dist/chunks/{NcFormBoxButton-i4i3Lt_Q.mjs → NcFormBoxButton-G_PkUiQy.mjs} +5 -5
  113. package/dist/chunks/{NcFormBoxButton-i4i3Lt_Q.mjs.map → NcFormBoxButton-G_PkUiQy.mjs.map} +1 -1
  114. package/dist/chunks/{NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-NfKiRrIn.mjs → NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-BA_gWnmz.mjs} +3 -3
  115. package/dist/chunks/{NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-NfKiRrIn.mjs.map → NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-BA_gWnmz.mjs.map} +1 -1
  116. package/dist/chunks/{NcFormBoxItem-BTB68AEB.mjs → NcFormBoxItem-Cm8aZaVJ.mjs} +10 -10
  117. package/dist/chunks/{NcFormBoxItem-BTB68AEB.mjs.map → NcFormBoxItem-Cm8aZaVJ.mjs.map} +1 -1
  118. package/dist/chunks/{NcFormBoxSwitch-DlNcJ1q7.mjs → NcFormBoxSwitch-DSXiQcnq.mjs} +6 -6
  119. package/dist/chunks/{NcFormBoxSwitch-DlNcJ1q7.mjs.map → NcFormBoxSwitch-DSXiQcnq.mjs.map} +1 -1
  120. package/dist/chunks/{NcFormGroup-DvLGFMdb.mjs → NcFormGroup-N7qIFAwN.mjs} +9 -9
  121. package/dist/chunks/{NcFormGroup-DvLGFMdb.mjs.map → NcFormGroup-N7qIFAwN.mjs.map} +1 -1
  122. package/dist/chunks/{NcGuestContent-_z22nZMF.mjs → NcGuestContent-CvT6VGt1.mjs} +4 -10
  123. package/dist/chunks/NcGuestContent-CvT6VGt1.mjs.map +1 -0
  124. package/dist/chunks/{NcHeaderButton-m4oAOSTa.mjs → NcHeaderButton-BnLwYCog.mjs} +2 -2
  125. package/dist/chunks/{NcHeaderButton-m4oAOSTa.mjs.map → NcHeaderButton-BnLwYCog.mjs.map} +1 -1
  126. package/dist/chunks/{NcHeaderMenu-DRxcyWNX.mjs → NcHeaderMenu-ktQJV2SW.mjs} +2 -2
  127. package/dist/chunks/{NcHeaderMenu-DRxcyWNX.mjs.map → NcHeaderMenu-ktQJV2SW.mjs.map} +1 -1
  128. package/dist/chunks/{NcHotkey-C-TYyC8X.mjs → NcHotkey-BDGeF3eH.mjs} +7 -7
  129. package/dist/chunks/{NcHotkey-C-TYyC8X.mjs.map → NcHotkey-BDGeF3eH.mjs.map} +1 -1
  130. package/dist/chunks/{NcHotkeyList-CmMgGhMr.mjs → NcHotkeyList-B4WjTLAp.mjs} +5 -5
  131. package/dist/chunks/{NcHotkeyList-CmMgGhMr.mjs.map → NcHotkeyList-B4WjTLAp.mjs.map} +1 -1
  132. package/dist/chunks/{NcIconToggleSwitch-CbfRwb67.mjs → NcIconToggleSwitch-CRvGt4su.mjs} +4 -4
  133. package/dist/chunks/{NcIconToggleSwitch-CbfRwb67.mjs.map → NcIconToggleSwitch-CRvGt4su.mjs.map} +1 -1
  134. package/dist/chunks/{NcInputConfirmCancel-B6qC3s63.mjs → NcInputConfirmCancel-CGTllrXj.mjs} +8 -8
  135. package/dist/chunks/{NcInputConfirmCancel-B6qC3s63.mjs.map → NcInputConfirmCancel-CGTllrXj.mjs.map} +1 -1
  136. package/dist/chunks/{NcInputField-B1bGxYHt.mjs → NcInputField-5Sg6EUP6.mjs} +2 -2
  137. package/dist/chunks/{NcInputField-B1bGxYHt.mjs.map → NcInputField-5Sg6EUP6.mjs.map} +1 -1
  138. package/dist/chunks/{NcKbd-Iyp0KDp4.mjs → NcKbd-Bh_Tk6Ar.mjs} +5 -5
  139. package/dist/chunks/{NcKbd-Iyp0KDp4.mjs.map → NcKbd-Bh_Tk6Ar.mjs.map} +1 -1
  140. package/dist/chunks/{NcListItem-Y5a098Cw.mjs → NcListItem-BliLJpvU.mjs} +8 -8
  141. package/dist/chunks/{NcListItem-Y5a098Cw.mjs.map → NcListItem-BliLJpvU.mjs.map} +1 -1
  142. package/dist/chunks/{NcListItemIcon-D_f5AGrh.mjs → NcListItemIcon-Dl_tfkk9.mjs} +3 -3
  143. package/dist/chunks/{NcListItemIcon-D_f5AGrh.mjs.map → NcListItemIcon-Dl_tfkk9.mjs.map} +1 -1
  144. package/dist/chunks/{NcMentionBubble.vue_vue_type_style_index_0_scoped_45238efd_lang-BX_KxRP-.mjs → NcMentionBubble.vue_vue_type_style_index_0_scoped_3c4a673d_lang-DyqakLm5.mjs} +2 -2
  145. package/dist/chunks/{NcMentionBubble.vue_vue_type_style_index_0_scoped_45238efd_lang-BX_KxRP-.mjs.map → NcMentionBubble.vue_vue_type_style_index_0_scoped_3c4a673d_lang-DyqakLm5.mjs.map} +1 -1
  146. package/dist/chunks/{NcModal-DUWLRm_F.mjs → NcModal-DiDvgcU8.mjs} +4 -4
  147. package/dist/chunks/{NcModal-DUWLRm_F.mjs.map → NcModal-DiDvgcU8.mjs.map} +1 -1
  148. package/dist/chunks/{NcPasswordField-Be5_qcfm.mjs → NcPasswordField-BFyzHTOO.mjs} +3 -3
  149. package/dist/chunks/{NcPasswordField-Be5_qcfm.mjs.map → NcPasswordField-BFyzHTOO.mjs.map} +1 -1
  150. package/dist/chunks/{NcPopover-CtdLAkEU.mjs → NcPopover-B87bEPLq.mjs} +4 -4
  151. package/dist/chunks/{NcPopover-CtdLAkEU.mjs.map → NcPopover-B87bEPLq.mjs.map} +1 -1
  152. package/dist/chunks/{NcRadioGroup-BzW4XHoK.mjs → NcRadioGroup-B4qmS2UD.mjs} +6 -6
  153. package/dist/chunks/{NcRadioGroup-BzW4XHoK.mjs.map → NcRadioGroup-B4qmS2UD.mjs.map} +1 -1
  154. package/dist/chunks/{NcRadioGroupButton-CXKQMID9.mjs → NcRadioGroupButton-CZykGwv3.mjs} +8 -8
  155. package/dist/chunks/{NcRadioGroupButton-CXKQMID9.mjs.map → NcRadioGroupButton-CZykGwv3.mjs.map} +1 -1
  156. package/dist/chunks/{NcRelatedResourcesPanel-C0j0Fs4r.mjs → NcRelatedResourcesPanel-D_Ttpg5_.mjs} +27 -11
  157. package/dist/chunks/NcRelatedResourcesPanel-D_Ttpg5_.mjs.map +1 -0
  158. package/dist/chunks/{NcRichContenteditable-DO3_WniI.mjs → NcRichContenteditable-Qw614bJ5.mjs} +37 -28
  159. package/dist/chunks/NcRichContenteditable-Qw614bJ5.mjs.map +1 -0
  160. package/dist/chunks/{NcRichText-BOBQq7Od.mjs → NcRichText-BO_4KtBA.mjs} +39 -10
  161. package/dist/chunks/NcRichText-BO_4KtBA.mjs.map +1 -0
  162. package/dist/chunks/{NcSelect-BOFzoCwK.mjs → NcSelect--kERLlBK.mjs} +5 -5
  163. package/dist/chunks/NcSelect--kERLlBK.mjs.map +1 -0
  164. package/dist/chunks/{NcSelectTags-D7qWNjXa.mjs → NcSelectTags-I2hJaNax.mjs} +3 -3
  165. package/dist/chunks/{NcSelectTags-D7qWNjXa.mjs.map → NcSelectTags-I2hJaNax.mjs.map} +1 -1
  166. package/dist/chunks/{NcSelectUsers-CI8twLn9.mjs → NcSelectUsers-K14Bepkq.mjs} +3 -3
  167. package/dist/chunks/{NcSelectUsers-CI8twLn9.mjs.map → NcSelectUsers-K14Bepkq.mjs.map} +1 -1
  168. package/dist/chunks/{NcSettingsSection-DmfxX2se.mjs → NcSettingsSection-Caz1fuWt.mjs} +2 -2
  169. package/dist/chunks/{NcSettingsSection-DmfxX2se.mjs.map → NcSettingsSection-Caz1fuWt.mjs.map} +1 -1
  170. package/dist/chunks/{NcSettingsSelectGroup-TN64yH4k.mjs → NcSettingsSelectGroup-SYJ8-XlR.mjs} +3 -3
  171. package/dist/chunks/{NcSettingsSelectGroup-TN64yH4k.mjs.map → NcSettingsSelectGroup-SYJ8-XlR.mjs.map} +1 -1
  172. package/dist/chunks/{NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r.mjs → NcTextField.vue_vue_type_script_setup_true_lang-Bx2esFU2.mjs} +3 -3
  173. package/dist/chunks/{NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r.mjs.map → NcTextField.vue_vue_type_script_setup_true_lang-Bx2esFU2.mjs.map} +1 -1
  174. package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-Csd1JQe6.mjs → NcTimezonePicker.vue_vue_type_script_setup_true_lang-D7ZHgnwW.mjs} +3 -3
  175. package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-Csd1JQe6.mjs.map → NcTimezonePicker.vue_vue_type_script_setup_true_lang-D7ZHgnwW.mjs.map} +1 -1
  176. package/dist/chunks/{NcUserBubble-CDQa0hGy.mjs → NcUserBubble-BXR7vT0V.mjs} +3 -3
  177. package/dist/chunks/{NcUserBubble-CDQa0hGy.mjs.map → NcUserBubble-BXR7vT0V.mjs.map} +1 -1
  178. package/dist/chunks/{NcUserStatusIcon-DsviB2Cr.mjs → NcUserStatusIcon-BF5OEQFU.mjs} +2 -2
  179. package/dist/chunks/{NcUserStatusIcon-DsviB2Cr.mjs.map → NcUserStatusIcon-BF5OEQFU.mjs.map} +1 -1
  180. package/dist/chunks/{_l10n-CG4CuN3H.mjs → _l10n-wdIzZwir.mjs} +2 -2
  181. package/dist/chunks/_l10n-wdIzZwir.mjs.map +1 -0
  182. package/dist/chunks/{autolink-BT8u-IL-.mjs → autolink-DrIurosL.mjs} +5 -5
  183. package/dist/chunks/autolink-DrIurosL.mjs.map +1 -0
  184. package/dist/chunks/{colors-BDeMBgfq.mjs → colors-Cv9F-jWS.mjs} +2 -2
  185. package/dist/chunks/{colors-BDeMBgfq.mjs.map → colors-Cv9F-jWS.mjs.map} +1 -1
  186. package/dist/chunks/{customPickerElements-Cu7bLbap.mjs → customPickerElements-BqbDcaEu.mjs} +6 -1
  187. package/dist/chunks/customPickerElements-BqbDcaEu.mjs.map +1 -0
  188. package/dist/chunks/{referencePickerModal-B4bsiMOy.mjs → referencePickerModal-CnKdEDwu.mjs} +212 -48
  189. package/dist/chunks/referencePickerModal-CnKdEDwu.mjs.map +1 -0
  190. package/dist/chunks/{useCopy-PckLYUAU.mjs → useCopy-6F-qWHq0.mjs} +2 -2
  191. package/dist/chunks/{useCopy-PckLYUAU.mjs.map → useCopy-6F-qWHq0.mjs.map} +1 -1
  192. package/dist/components/NcActionButtonGroup/index.mjs +1 -1
  193. package/dist/components/NcActionInput/NcActionInput.vue.d.ts +4 -4
  194. package/dist/components/NcActionInput/index.mjs +1 -1
  195. package/dist/components/NcActions/NcActions.vue.d.ts +15 -0
  196. package/dist/components/NcActions/index.mjs +1 -1
  197. package/dist/components/NcAppContent/index.mjs +1 -1
  198. package/dist/components/NcAppNavigation/index.mjs +1 -1
  199. package/dist/components/NcAppNavigationCaption/NcAppNavigationCaption.vue.d.ts +9 -0
  200. package/dist/components/NcAppNavigationCaption/index.mjs +1 -1
  201. package/dist/components/NcAppNavigationItem/NcAppNavigationItem.vue.d.ts +11 -2
  202. package/dist/components/NcAppNavigationItem/index.mjs +1 -1
  203. package/dist/components/NcAppNavigationNew/index.mjs +1 -1
  204. package/dist/components/NcAppNavigationNewItem/index.mjs +1 -1
  205. package/dist/components/NcAppNavigationSearch/index.mjs +1 -1
  206. package/dist/components/NcAppNavigationSettings/index.mjs +1 -1
  207. package/dist/components/NcAppSettingsDialog/index.mjs +1 -1
  208. package/dist/components/NcAppSettingsSectionShortcuts/index.mjs +1 -1
  209. package/dist/components/NcAppSettingsShortcutsSection/index.mjs +1 -1
  210. package/dist/components/NcAppSidebar/NcAppSidebar.vue.d.ts +9 -0
  211. package/dist/components/NcAppSidebar/index.mjs +1 -1
  212. package/dist/components/NcAssistantButton/index.mjs +1 -1
  213. package/dist/components/NcAssistantContent/index.mjs +1 -1
  214. package/dist/components/NcAssistantIcon/index.mjs +1 -1
  215. package/dist/components/NcAvatar/NcAvatar.vue.d.ts +10 -1
  216. package/dist/components/NcAvatar/index.mjs +1 -1
  217. package/dist/components/NcBlurHash/index.mjs +1 -1
  218. package/dist/components/NcBreadcrumb/NcBreadcrumb.vue.d.ts +9 -0
  219. package/dist/components/NcBreadcrumb/index.mjs +1 -1
  220. package/dist/components/NcBreadcrumbs/NcBreadcrumbs.vue.d.ts +18 -0
  221. package/dist/components/NcBreadcrumbs/index.mjs +1 -1
  222. package/dist/components/NcButton/index.mjs +1 -1
  223. package/dist/components/NcCheckboxRadioSwitch/index.mjs +1 -1
  224. package/dist/components/NcChip/index.mjs +1 -1
  225. package/dist/components/NcCollectionList/NcCollectionList.vue.d.ts +34 -3
  226. package/dist/components/NcCollectionList/NcCollectionListItem.vue.d.ts +19 -1
  227. package/dist/components/NcCollectionList/index.mjs +1 -1
  228. package/dist/components/NcCollectionList/useCollections.d.ts +5 -1
  229. package/dist/components/NcColorPicker/index.mjs +1 -1
  230. package/dist/components/NcContent/index.mjs +1 -1
  231. package/dist/components/NcDashboardWidget/NcDashboardWidget.vue.d.ts +29 -2
  232. package/dist/components/NcDashboardWidget/index.mjs +1 -1
  233. package/dist/components/NcDashboardWidgetItem/NcDashboardWidgetItem.vue.d.ts +19 -1
  234. package/dist/components/NcDashboardWidgetItem/index.mjs +1 -1
  235. package/dist/components/NcDateTimePicker/NcDateTimePicker.vue.d.ts +7 -5
  236. package/dist/components/NcDateTimePicker/index.mjs +1 -1
  237. package/dist/components/NcDateTimePickerNative/index.mjs +1 -1
  238. package/dist/components/NcDialog/NcDialog.vue.d.ts +1 -1
  239. package/dist/components/NcDialog/index.mjs +1 -1
  240. package/dist/components/NcDialogButton/index.mjs +1 -1
  241. package/dist/components/NcEmojiPicker/index.mjs +1 -1
  242. package/dist/components/NcFilePicker/index.mjs +1 -1
  243. package/dist/components/NcFormBox/index.mjs +1 -1
  244. package/dist/components/NcFormBoxButton/index.mjs +1 -1
  245. package/dist/components/NcFormBoxCopyButton/index.mjs +1 -1
  246. package/dist/components/NcFormBoxSwitch/index.mjs +1 -1
  247. package/dist/components/NcFormGroup/index.mjs +1 -1
  248. package/dist/components/NcGuestContent/index.mjs +1 -1
  249. package/dist/components/NcHeaderButton/index.mjs +1 -1
  250. package/dist/components/NcHeaderMenu/index.mjs +1 -1
  251. package/dist/components/NcHotkey/index.mjs +1 -1
  252. package/dist/components/NcHotkeyList/index.mjs +1 -1
  253. package/dist/components/NcInputField/index.mjs +1 -1
  254. package/dist/components/NcKbd/index.mjs +1 -1
  255. package/dist/components/NcListItem/NcListItem.vue.d.ts +11 -2
  256. package/dist/components/NcListItem/index.mjs +1 -1
  257. package/dist/components/NcListItemIcon/NcListItemIcon.vue.d.ts +11 -2
  258. package/dist/components/NcListItemIcon/index.mjs +1 -1
  259. package/dist/components/NcModal/index.mjs +1 -1
  260. package/dist/components/NcPasswordField/index.mjs +1 -1
  261. package/dist/components/NcPopover/index.mjs +1 -1
  262. package/dist/components/NcRadioGroup/index.mjs +1 -1
  263. package/dist/components/NcRadioGroupButton/index.mjs +1 -1
  264. package/dist/components/NcRelatedResourcesPanel/NcRelatedResourcesPanel.vue.d.ts +8 -2
  265. package/dist/components/NcRelatedResourcesPanel/NcResource.vue.d.ts +18 -0
  266. package/dist/components/NcRelatedResourcesPanel/NcTeamResources.vue.d.ts +12 -0
  267. package/dist/components/NcRelatedResourcesPanel/index.mjs +1 -1
  268. package/dist/components/NcRichContenteditable/NcAutoCompleteResult.vue.d.ts +12 -0
  269. package/dist/components/NcRichContenteditable/NcMentionBubble.vue.d.ts +6 -0
  270. package/dist/components/NcRichContenteditable/NcRichContenteditable.vue.d.ts +1 -1
  271. package/dist/components/NcRichContenteditable/index.mjs +1 -1
  272. package/dist/components/NcRichText/NcReferenceList.vue.d.ts +37 -0
  273. package/dist/components/NcRichText/NcReferencePicker/NcCustomPickerElement.vue.d.ts +3 -1
  274. package/dist/components/NcRichText/NcReferencePicker/NcProviderList.vue.d.ts +2 -1
  275. package/dist/components/NcRichText/NcReferencePicker/NcRawLinkInput.vue.d.ts +3 -1
  276. package/dist/components/NcRichText/NcReferencePicker/NcReferencePicker.vue.d.ts +13 -5
  277. package/dist/components/NcRichText/NcReferencePicker/NcReferencePickerModal.vue.d.ts +16 -6
  278. package/dist/components/NcRichText/NcReferencePicker/NcSearch.vue.d.ts +8 -1
  279. package/dist/components/NcRichText/NcReferenceWidget.vue.d.ts +1 -0
  280. package/dist/components/NcRichText/NcRichText.vue.d.ts +25 -0
  281. package/dist/components/NcRichText/autolink.d.ts +7 -5
  282. package/dist/components/NcRichText/index.d.ts +2 -2
  283. package/dist/components/NcRichText/index.mjs +10 -9
  284. package/dist/components/NcSelect/index.mjs +1 -1
  285. package/dist/components/NcSelectTags/index.mjs +1 -1
  286. package/dist/components/NcSelectUsers/index.mjs +1 -1
  287. package/dist/components/NcSettingsSection/index.mjs +1 -1
  288. package/dist/components/NcSettingsSelectGroup/index.mjs +1 -1
  289. package/dist/components/NcTextField/index.mjs +1 -1
  290. package/dist/components/NcTimezonePicker/index.mjs +1 -1
  291. package/dist/components/NcUserBubble/index.mjs +1 -1
  292. package/dist/components/NcUserStatusIcon/index.mjs +1 -1
  293. package/dist/composables/useFormatDateTime/index.mjs +1 -1
  294. package/dist/functions/reference/index.d.ts +7 -4
  295. package/dist/functions/reference/index.mjs +4 -3
  296. package/dist/functions/reference/referencePickerModal.d.ts +16 -1
  297. package/dist/functions/reference/widgets.d.ts +11 -1
  298. package/dist/functions/registerReference/index.mjs +1 -1
  299. package/dist/functions/usernameToColor/index.mjs +1 -1
  300. package/dist/index.mjs +74 -72
  301. package/dist/index.mjs.map +1 -1
  302. package/dist/mixins/userStatus.d.ts +5 -4
  303. package/package.json +21 -21
  304. package/dist/chunks/NcActions-CUmcZ3C3.mjs.map +0 -1
  305. package/dist/chunks/NcAppNavigation-Bb9-C2eO.mjs.map +0 -1
  306. package/dist/chunks/NcAppSettingsDialog-DByPnndK.mjs.map +0 -1
  307. package/dist/chunks/NcAvatar-M3-CbKbq.mjs.map +0 -1
  308. package/dist/chunks/NcCollectionList-CO-iHqi6.mjs.map +0 -1
  309. package/dist/chunks/NcDateTimePicker-CK4rhfEB.mjs.map +0 -1
  310. package/dist/chunks/NcGuestContent-_z22nZMF.mjs.map +0 -1
  311. package/dist/chunks/NcRelatedResourcesPanel-C0j0Fs4r.mjs.map +0 -1
  312. package/dist/chunks/NcRichContenteditable-DO3_WniI.mjs.map +0 -1
  313. package/dist/chunks/NcRichText-BOBQq7Od.mjs.map +0 -1
  314. package/dist/chunks/NcSelect-BOFzoCwK.mjs.map +0 -1
  315. package/dist/chunks/_l10n-CG4CuN3H.mjs.map +0 -1
  316. package/dist/chunks/autolink-BT8u-IL-.mjs.map +0 -1
  317. package/dist/chunks/customPickerElements-Cu7bLbap.mjs.map +0 -1
  318. package/dist/chunks/referencePickerModal-B4bsiMOy.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"referencePickerModal-CnKdEDwu.mjs","sources":["../../node_modules/vue-material-design-icons/ArrowLeft.vue","../../src/components/NcRichText/NcReferencePicker/NcCustomPickerElement.vue","../../node_modules/vue-material-design-icons/LinkVariant.vue","../../src/functions/reference/providerHelper.ts","../../src/components/NcRichText/NcReferencePicker/utils.ts","../../src/components/NcRichText/NcReferencePicker/NcProviderList.vue","../../src/components/NcRichText/NcReferenceWidget.vue","../../src/components/NcRichText/NcReferencePicker/NcRawLinkInput.vue","../../src/components/NcRichText/NcReferencePicker/NcSearchResult.vue","../../src/components/NcRichText/NcReferencePicker/NcSearch.vue","../../src/components/NcRichText/NcReferencePicker/NcReferencePicker.vue","../../src/components/NcRichText/NcReferencePicker/NcReferencePickerModal.vue","../../src/functions/reference/referencePickerModal.ts"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon arrow-left-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=\"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ArrowLeftIcon\",\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\n<template>\n\t<div ref=\"domElement\" />\n</template>\n\n<script>\nimport {\n\tdestroyCustomPickerElement,\n\tisCustomPickerElementRegistered,\n\trenderCustomPickerElement,\n} from '../../../functions/reference/customPickerElements.ts'\n\nexport default {\n\tname: 'NcCustomPickerElement',\n\tprops: {\n\t\t/**\n\t\t * The reference provider\n\t\t */\n\t\tprovider: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\temits: [\n\t\t'cancel',\n\t\t'submit',\n\t\t'pick',\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tisRegistered: isCustomPickerElementRegistered(this.provider.id),\n\t\t\trenderResult: null,\n\t\t}\n\t},\n\n\tmounted() {\n\t\tif (this.isRegistered) {\n\t\t\tthis.renderElement()\n\t\t}\n\t},\n\n\tbeforeUnmount() {\n\t\tif (this.isRegistered) {\n\t\t\tdestroyCustomPickerElement(this.provider.id, this.$el, this.renderResult)\n\t\t}\n\t},\n\n\tmethods: {\n\t\trenderElement() {\n\t\t\tif (this.$refs.domElement) {\n\t\t\t\tthis.$refs.domElement.innerHTML = ''\n\t\t\t}\n\n\t\t\tconst renderFunctionResult = renderCustomPickerElement(this.$refs.domElement, { providerId: this.provider.id, accessible: false })\n\t\t\t// this works whether renderCustomPickerElement returns a promise or a value\n\t\t\tPromise.resolve(renderFunctionResult).then((result) => {\n\t\t\t\tthis.renderResult = result\n\t\t\t\tif (this.renderResult.object?._isVue && this.renderResult.object?.$on) {\n\t\t\t\t\tthis.renderResult.object.$on('submit', this.onSubmit)\n\t\t\t\t\tthis.renderResult.object.$on('pick', this.onPick)\n\t\t\t\t\tthis.renderResult.object.$on('cancel', this.onCancel)\n\t\t\t\t}\n\t\t\t\tthis.renderResult.element.addEventListener('submit', (e) => {\n\t\t\t\t\tthis.onSubmit(e.detail)\n\t\t\t\t})\n\t\t\t\tthis.renderResult.element.addEventListener('pick', (e) => {\n\t\t\t\t\tthis.onPick(e.detail)\n\t\t\t\t})\n\t\t\t\tthis.renderResult.element.addEventListener('cancel', this.onCancel)\n\t\t\t})\n\t\t},\n\n\t\tonSubmit(value) {\n\t\t\tthis.$emit('submit', value)\n\t\t},\n\n\t\tonPick(value) {\n\t\t\tthis.$emit('pick', value)\n\t\t},\n\n\t\tonCancel() {\n\t\t\tthis.$emit('cancel')\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n// nothing yet\n</style>\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon link-variant-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=\"M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"LinkVariantIcon\",\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\nimport axios from '@nextcloud/axios'\nimport { loadState } from '@nextcloud/initial-state'\nimport { generateOcsUrl, imagePath } from '@nextcloud/router'\nimport { t } from '../../l10n.ts'\nimport { logger } from '../../utils/logger.js'\nimport { isCustomPickerElementRegistered } from './customPickerElements.js'\n\nexport interface ReferenceProvider {\n\tid: string\n\ttitle: string\n\ticon_url: string\n\torder: number\n\tsearch_providers_ids?: string[]\n}\n\nexport const anyLinkProviderId = 'any-link'\n\nconst anyLinkProvider: ReferenceProvider = {\n\tid: anyLinkProviderId,\n\ttitle: t('Any link'),\n\torder: 0,\n\ticon_url: imagePath('core', 'filetypes/link.svg'),\n}\n\n// only get the provider list once, even if functions of this file are imported multiple times by different apps/components\nwindow._vue_richtext_reference_providers ??= loadState('core', 'reference-provider-list', [])\n// single timestamps object used by every entity in the page\nwindow._vue_richtext_reference_provider_timestamps ??= loadState('core', 'reference-provider-timestamps', {})\n\n/**\n * @param providerId - The provider ID\n * @return The provider object\n */\nexport function getProvider(providerId: string): ReferenceProvider | undefined {\n\tif (providerId === anyLinkProviderId) {\n\t\treturn anyLinkProvider\n\t}\n\n\treturn getProviders().find((p) => p.id === providerId)\n}\n\n/**\n * Get raw provider list as it was provided by the server\n */\nexport function getProviders(): ReferenceProvider[] {\n\treturn window._vue_richtext_reference_providers.filter((p) => {\n\t\t// avoid providers with no associated search provider and no custom component registered\n\t\tconst keep = (!!p.search_providers_ids && p.search_providers_ids.length > 0) || isCustomPickerElementRegistered(p.id)\n\t\tif (!keep) {\n\t\t\tlogger.debug(`[smart picker] ${p.id} reference provider is discoverable but does not have any related search provider or custom picker component registered`)\n\t\t}\n\t\treturn keep\n\t})\n}\n\n/**\n * Helper function to sort a list of providers according to 2 factors:\n * - their \"last used timestamp\"\n * - their \"order\" property (coming from the provider declaration in the server implementation)\n *\n * @param providerList - List of provider objects\n * @return The sorted provider list\n */\nexport function sortProviders(providerList: ReferenceProvider[]): ReferenceProvider[] {\n\tconst timestamps = window._vue_richtext_reference_provider_timestamps\n\n\treturn providerList.sort((a, b) => {\n\t\treturn a.order === b.order\n\t\t\t? 0\n\t\t\t: a.order > b.order\n\t\t\t\t? 1\n\t\t\t\t: -1\n\t}).sort((a, b) => {\n\t\tconst ta = timestamps[a.id]\n\t\tconst tb = timestamps[b.id]\n\t\treturn ta === tb\n\t\t\t? 0\n\t\t\t: tb === undefined\n\t\t\t\t? -1\n\t\t\t\t: ta === undefined\n\t\t\t\t\t? 1\n\t\t\t\t\t: ta > tb\n\t\t\t\t\t\t? -1\n\t\t\t\t\t\t: 1\n\t})\n}\n\n/**\n * Helper function to search a provider from a search query\n * Result is a sorted list of providers\n *\n * @param query - The search query\n * @param limit - (optional) max number of results\n * @return The sorted/filtered provider list\n */\nexport function searchProvider(query: string, limit?: number): ReferenceProvider[] {\n\tconst providers = getProviders()\n\tconst escapedQuery = query.replace(/[/\\-\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')\n\tconst regexp = new RegExp(escapedQuery, 'i')\n\tconst sortedProviders = sortProviders(providers)\n\tconst filteredSortedProviders = sortedProviders.filter((p) => {\n\t\treturn p.title.match(regexp)\n\t})\n\n\tconst searchResult = limit\n\t\t? filteredSortedProviders.slice(0, limit)\n\t\t: filteredSortedProviders\n\n\t// append the 'any link' provider in the full list or when there is no result\n\tif (query === '' || searchResult.length === 0) {\n\t\tsearchResult.push(anyLinkProvider)\n\t}\n\treturn searchResult\n}\n\n/**\n * Update the \"last used timestamp\" on the server side and then locally in the frontend\n *\n * @param providerId - The id of the search provider\n */\nexport async function touchProvider(providerId: number) {\n\tconst timestamp = Math.floor(Date.now() / 1000)\n\tconst url = generateOcsUrl('references/provider/{providerId}', { providerId })\n\n\tawait axios.put(url, { timestamp })\n\twindow._vue_richtext_reference_provider_timestamps[providerId] = timestamp\n}\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Check wether a given string is a valid URL.\n *\n * @param str - The potential URL\n */\nexport function isUrl(str: string): boolean {\n\ttry {\n\t\treturn Boolean(new URL(str))\n\t} catch {\n\t\treturn false\n\t}\n}\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"provider-list\">\n\t\t<NcSelect\n\t\t\tref=\"provider-select\"\n\t\t\tv-model=\"selectedProvider\"\n\t\t\tclass=\"provider-list--select\"\n\t\t\tinputId=\"provider-select-input\"\n\t\t\tlabel=\"title\"\n\t\t\t:placeholder=\"multiselectPlaceholder\"\n\t\t\t:options=\"options\"\n\t\t\t:appendToBody=\"false\"\n\t\t\t:clearSearchOnSelect=\"true\"\n\t\t\t:clearSearchOnBlur=\"() => false\"\n\t\t\t:filterable=\"false\"\n\t\t\t@search=\"onSearch\"\n\t\t\t@update:modelValue=\"onProviderSelected\">\n\t\t\t<template #option=\"option\">\n\t\t\t\t<div v-if=\"option.isLink\" class=\"provider\">\n\t\t\t\t\t<LinkVariantIcon class=\"link-icon\" :size=\"20\" />\n\t\t\t\t\t<span>{{ option.title }}</span>\n\t\t\t\t</div>\n\t\t\t\t<div v-else class=\"provider\">\n\t\t\t\t\t<img\n\t\t\t\t\t\tclass=\"provider-icon\"\n\t\t\t\t\t\t:src=\"option.icon_url\"\n\t\t\t\t\t\t:alt=\"providerIconAlt\">\n\t\t\t\t\t<NcHighlight\n\t\t\t\t\t\tclass=\"option-text\"\n\t\t\t\t\t\t:search=\"query\"\n\t\t\t\t\t\t:text=\"option.title\" />\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t</NcSelect>\n\t\t<NcEmptyContent class=\"provider-list--empty-content\">\n\t\t\t<template #icon>\n\t\t\t\t<LinkVariantIcon />\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t</div>\n</template>\n\n<script>\nimport LinkVariantIcon from 'vue-material-design-icons/LinkVariant.vue'\nimport { searchProvider } from '../../../functions/reference/providerHelper.ts'\nimport { t } from '../../../l10n.ts'\nimport NcEmptyContent from '../../NcEmptyContent/index.ts'\nimport NcHighlight from '../../NcHighlight/index.ts'\nimport NcSelect from '../../NcSelect/index.js'\nimport { isUrl } from './utils.js'\n\nexport default {\n\tname: 'NcProviderList',\n\tcomponents: {\n\t\tNcSelect,\n\t\tNcHighlight,\n\t\tNcEmptyContent,\n\t\tLinkVariantIcon,\n\t},\n\n\temits: [\n\t\t'selectProvider',\n\t\t'submit',\n\t\t'pick',\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tselectedProvider: null,\n\t\t\tquery: '',\n\t\t\tmultiselectPlaceholder: t('Select provider'),\n\t\t\tproviderIconAlt: t('Provider icon'),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\toptions() {\n\t\t\tconst result = []\n\t\t\tif (this.query !== '' && isUrl(this.query)) {\n\t\t\t\tresult.push({\n\t\t\t\t\tid: this.query,\n\t\t\t\t\ttitle: this.query,\n\t\t\t\t\tisLink: true,\n\t\t\t\t})\n\t\t\t}\n\t\t\tresult.push(...searchProvider(this.query))\n\t\t\treturn result\n\t\t},\n\t},\n\n\tmethods: {\n\t\tfocus() {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.$refs['provider-select']?.$el?.querySelector('#provider-select-input')?.focus()\n\t\t\t}, 300)\n\t\t},\n\n\t\tonProviderSelected(p) {\n\t\t\tif (p !== null) {\n\t\t\t\tif (p.isLink) {\n\t\t\t\t\tthis.$emit('submit', p.title)\n\t\t\t\t\tthis.$emit('pick', { link: p.title })\n\t\t\t\t} else {\n\t\t\t\t\tthis.$emit('selectProvider', p)\n\t\t\t\t}\n\t\t\t\tthis.selectedProvider = null\n\t\t\t}\n\t\t},\n\n\t\tonSearch(query) {\n\t\t\tthis.query = query\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.provider-list {\n\twidth: 100%;\n\tmin-height: 400px;\n\tpadding: 0 16px 16px 16px;\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t&--select {\n\t\twidth: 100%;\n\n\t\t.provider {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\theight: 28px;\n\t\t\toverflow: hidden;\n\n\t\t\t.link-icon {\n\t\t\t\tmargin-inline-end: 8px;\n\t\t\t}\n\n\t\t\t.provider-icon {\n\t\t\t\twidth: 20px;\n\t\t\t\theight: 20px;\n\t\t\t\tobject-fit: contain;\n\t\t\t\tmargin-inline-end: 8px;\n\t\t\t\tfilter: var(--background-invert-if-dark);\n\t\t\t}\n\n\t\t\t.option-text {\n\t\t\t\toverflow: hidden;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\twhite-space: nowrap;\n\t\t\t}\n\n\t\t}\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { ReferenceWidgetObject } from './../../functions/reference/widgets.ts'\n\nimport { useElementSize, useIntersectionObserver } from '@vueuse/core'\nimport { computed, inject, nextTick, onBeforeUnmount, ref, useTemplateRef, watch } from 'vue'\nimport { routerKey, RouterLink } from 'vue-router'\nimport NcButton from '../../components/NcButton/NcButton.vue'\nimport { t } from '../../l10n.ts'\nimport { createElementId } from '../../utils/createElementId.ts'\nimport { destroyWidget, hasFullWidth, hasInteractiveView, isResizable, isWidgetRegistered, renderWidget } from './../../functions/reference/widgets.ts'\nimport { getRoute } from './autolink.ts'\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * A reference object as returned by the ReferenceProvider\n\t */\n\treference: ReferenceWidgetObject\n\t/**\n\t * Whether to render the widget in interactive mode (if available)\n\t */\n\tinteractive?: boolean\n\t/**\n\t * Whether to show user an option to enable to interactive mode (if available)\n\t */\n\tinteractiveOptIn?: boolean\n}>(), {\n\tinteractive: true,\n\tinteractiveOptIn: false,\n})\n\n/* 3 minutes outside of viewport before widget is removed from the DOM */\nconst IDLE_TIMEOUT = 3 * 60 * 1000\nconst RESIZE_KEYBOARD_STEP = 10\n\nconst router = inject(routerKey, null)\n\nconst widgetId = `nc-reference-widget-${createElementId()}`\n\nconst isVisible = ref(false)\nconst customWidget = useTemplateRef('customWidget')\nconst customWidgetContent = useTemplateRef('customWidgetContent')\nconst widgetRoot = useTemplateRef('widgetRoot')\nconst { width } = useElementSize(widgetRoot)\nconst { height: customWidgetHeight } = useElementSize(customWidget)\n\nuseIntersectionObserver(widgetRoot, ([entry]) => {\n\tnextTick(() => {\n\t\tisVisible.value = entry!.isIntersecting\n\t})\n})\n\nconst showInteractive = ref(false)\nconst rendered = ref(false)\nlet idleTimeout: NodeJS.Timeout | null = null\nconst isResizing = ref(false)\nconst resizedHeight: Ref<number | null> = ref(null)\nconst resizeStartY = ref(0)\nconst resizeStartHeight = ref(0)\nconst resizeMinHeight = ref(100)\nconst resizeMaxHeight = ref(window.innerHeight - 120)\n\nconst isInteractive = computed(() => {\n\treturn (!props.interactiveOptIn && props.interactive) || showInteractive.value\n})\n\nconst referenceHasFullWidth = computed(() => {\n\treturn hasFullWidth(props.reference.richObjectType)\n})\n\nconst isWidgetResizable = computed(() => {\n\treturn isResizable(props.reference.richObjectType)\n})\n\nconst hasCustomWidget = computed(() => {\n\treturn isWidgetRegistered(props.reference.richObjectType)\n})\n\nconst customWidgetStyle = computed(() => {\n\tif (!resizedHeight.value) {\n\t\treturn null\n\t}\n\treturn { height: `${resizedHeight.value}px !important` }\n})\n\nconst ariaValueNow = computed(() => {\n\treturn Math.round(resizedHeight.value ?? customWidgetHeight.value)\n})\n\nconst referenceHasInteractiveView = computed(() => {\n\treturn hasCustomWidget.value && hasInteractiveView(props.reference.richObjectType)\n})\n\nconst noAccess = computed(() => {\n\treturn !props.reference.accessible\n})\n\nconst numberOfLines = computed(() => {\n\t// no description for width < 450, one line until 550 and so on\n\tconst lineCountOffsets = [450, 550, 650, Infinity]\n\treturn lineCountOffsets.findIndex((max) => width.value < max)\n})\n\nconst descriptionStyle = computed(() => {\n\tif (numberOfLines.value === 0) {\n\t\treturn {\n\t\t\tdisplay: 'none',\n\t\t}\n\t}\n\tconst lineClamp = numberOfLines.value\n\treturn {\n\t\tlineClamp,\n\t\twebkitLineClamp: lineClamp,\n\t}\n})\n\nconst compactLink = computed(() => {\n\tconst link = props.reference.openGraphObject.link\n\tif (!link) {\n\t\treturn ''\n\t}\n\n\tif (link.startsWith('https://')) {\n\t\treturn link.substring(8)\n\t}\n\tif (link.startsWith('http://')) {\n\t\treturn link.substring(7)\n\t}\n\treturn link\n})\n\nconst route = computed(() => {\n\treturn getRoute(router, props.reference.openGraphObject.link)\n})\n\nconst referenceWidgetLinkComponent = computed(() => {\n\treturn route.value ? RouterLink : 'a'\n})\n\nconst referenceWidgetLinkProps = computed(() => {\n\treturn route.value\n\t\t? { to: route.value }\n\t\t: { href: props.reference.openGraphObject.link, target: '_blank' }\n})\n\nwatch(isVisible, (val) => {\n\tif (!val) {\n\t\tidleTimeout = setTimeout(() => {\n\t\t\t// If the widget is still outside of viewport after timeout, destroy it\n\t\t\tif (!isVisible.value) {\n\t\t\t\tdestroyReferenceWidget()\n\t\t\t}\n\t\t}, IDLE_TIMEOUT)\n\t\treturn\n\t}\n\n\tif (idleTimeout) {\n\t\tclearTimeout(idleTimeout)\n\t\tidleTimeout = null\n\t}\n\n\tif (!rendered.value) {\n\t\trenderReferenceWidget()\n\t}\n}, { immediate: true })\n\nonBeforeUnmount(() => {\n\tif (idleTimeout) {\n\t\tclearTimeout(idleTimeout)\n\t\tidleTimeout = null\n\t}\n\tstopResize()\n\tdestroyReferenceWidget()\n})\n\n/**\n * Enable interactive view of the widget, if available\n */\nfunction enableInteractive() {\n\tshowInteractive.value = true\n\trenderReferenceWidget()\n}\n\n/**\n * Render the reference widget\n */\nfunction renderReferenceWidget() {\n\tif (!customWidgetContent.value) {\n\t\treturn\n\t}\n\n\tif (props.reference.richObjectType === 'open-graph') {\n\t\treturn\n\t}\n\n\tcustomWidgetContent.value.innerHTML = ''\n\n\t// create a separate element so we can rerender on the ref again\n\tconst widget = document.createElement('div')\n\twidget.style.width = '100%'\n\tcustomWidgetContent.value.appendChild(widget)\n\tnextTick(() => {\n\t\t// Waiting for the ref to become available\n\t\trenderWidget(widget, {\n\t\t\t...props.reference,\n\t\t\tinteractive: isInteractive.value,\n\t\t})\n\t\trendered.value = true\n\t})\n}\n\n/**\n * Destroy the reference widget\n */\nfunction destroyReferenceWidget() {\n\tif (rendered.value && widgetRoot.value) {\n\t\tdestroyWidget(props.reference.richObjectType, widgetRoot.value)\n\t\trendered.value = false\n\t}\n}\n\n/**\n * Initialize resize limits\n */\nfunction initResizeLimits() {\n\t// Use min/max height from rendered widget element if set\n\tconst widgetEl = customWidgetContent.value?.firstElementChild\n\tif (widgetEl) {\n\t\tconst computedStyle = window.getComputedStyle(widgetEl)\n\t\tconst parsedMin = parseFloat(computedStyle.minHeight)\n\t\tconst parsedMax = parseFloat(computedStyle.maxHeight)\n\t\tresizeMinHeight.value = parsedMin > 0 ? parsedMin : 100\n\t\tresizeMaxHeight.value = Number.isFinite(parsedMax) && parsedMax > 0 ? parsedMax : (window.innerHeight - 120)\n\t} else {\n\t\tresizeMinHeight.value = 100\n\t\tresizeMaxHeight.value = window.innerHeight - 120\n\t}\n}\n\n/**\n * Start resize via dragging\n *\n * @param event - the pointer event\n */\nfunction startResize(event: PointerEvent) {\n\tif (!isWidgetResizable.value || !customWidget.value) {\n\t\treturn\n\t}\n\n\tinitResizeLimits()\n\tisResizing.value = true\n\tresizeStartY.value = event.clientY\n\tresizeStartHeight.value = customWidget.value.getBoundingClientRect().height\n\n\twindow.addEventListener('pointermove', onResize)\n\twindow.addEventListener('pointerup', stopResize)\n}\n\n/**\n * Resize via keydown\n *\n * @param delta - the resize delta\n */\nfunction onResizeKeydown(delta: number) {\n\tif (!isWidgetResizable.value || !customWidget.value) {\n\t\treturn\n\t}\n\n\t// Establish limits once per interaction\n\tinitResizeLimits()\n\n\tconst currentHeight = resizedHeight.value ?? resizeStartHeight.value\n\tconst next = currentHeight + delta\n\tresizedHeight.value = Math.min(resizeMaxHeight.value, Math.max(resizeMinHeight.value, next))\n}\n\n/**\n * Resize via dragging\n *\n * @param event - the pointer event\n */\nfunction onResize(event: PointerEvent) {\n\tif (!isResizing.value || !customWidget.value) {\n\t\treturn\n\t}\n\n\tconst deltaY = event.clientY - resizeStartY.value\n\tresizedHeight.value = Math.min(resizeMaxHeight.value, Math.max(resizeMinHeight.value, resizeStartHeight.value + deltaY))\n}\n\n/**\n * Stop resize via dragging\n */\nfunction stopResize() {\n\tif (!isResizing.value) {\n\t\treturn\n\t}\n\n\tisResizing.value = false\n\twindow.removeEventListener('pointermove', onResize)\n\twindow.removeEventListener('pointerup', stopResize)\n}\n</script>\n\n<template>\n\t<div ref=\"widgetRoot\" :class=\"{ 'toggle-interactive': referenceHasInteractiveView && !isInteractive }\">\n\t\t<div\n\t\t\tv-if=\"reference && hasCustomWidget\"\n\t\t\t:id=\"widgetId\"\n\t\t\tref=\"customWidget\"\n\t\t\tclass=\"widget-custom\"\n\t\t\t:class=\"{ 'full-width': referenceHasFullWidth }\"\n\t\t\t:style=\"customWidgetStyle\">\n\t\t\t<div ref=\"customWidgetContent\" class=\"widget-custom__content\" />\n\t\t\t<div\n\t\t\t\tv-if=\"isWidgetResizable\"\n\t\t\t\tclass=\"widget-custom__resize-handle\"\n\t\t\t\trole=\"slider\"\n\t\t\t\ttabindex=\"0\"\n\t\t\t\taria-orientation=\"vertical\"\n\t\t\t\t:aria-label=\"t('Widget height')\"\n\t\t\t\t:aria-valuenow=\"ariaValueNow\"\n\t\t\t\t:aria-valuemin=\"resizeMinHeight\"\n\t\t\t\t:aria-valuemax=\"resizeMaxHeight\"\n\t\t\t\t:aria-controls=\"widgetId\"\n\t\t\t\t@pointerdown.stop.prevent=\"startResize\"\n\t\t\t\t@keydown.up.stop.prevent=\"onResizeKeydown(-RESIZE_KEYBOARD_STEP)\"\n\t\t\t\t@keydown.down.stop.prevent=\"onResizeKeydown(RESIZE_KEYBOARD_STEP)\" />\n\t\t</div>\n\n\t\t<component\n\t\t\t:is=\"referenceWidgetLinkComponent\"\n\t\t\tv-else-if=\"!noAccess && reference && reference.openGraphObject && !hasCustomWidget\"\n\t\t\tv-bind=\"referenceWidgetLinkProps\"\n\t\t\trel=\"noopener noreferrer\"\n\t\t\tclass=\"widget-default\">\n\t\t\t<img v-if=\"reference.openGraphObject.thumb\" class=\"widget-default--image\" :src=\"reference.openGraphObject.thumb\">\n\t\t\t<div class=\"widget-default--details\">\n\t\t\t\t<p class=\"widget-default--name\">\n\t\t\t\t\t{{ reference.openGraphObject.name }}\n\t\t\t\t</p>\n\t\t\t\t<p class=\"widget-default--description\" :style=\"descriptionStyle\">\n\t\t\t\t\t{{ reference.openGraphObject.description }}\n\t\t\t\t</p>\n\t\t\t\t<p class=\"widget-default--link\">\n\t\t\t\t\t{{ compactLink }}\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t</component>\n\t\t<NcButton v-if=\"interactiveOptIn && referenceHasInteractiveView && !isInteractive\" class=\"toggle-interactive--button\" @click=\"enableInteractive\">\n\t\t\t{{ t('Enable interactive view') }}\n\t\t</NcButton>\n\t</div>\n</template>\n\n<style lang=\"scss\" scoped>\n\n@mixin widget {\n\twidth: 100%;\n\tmargin: auto;\n\tmargin-bottom: calc(var(--default-grid-baseline, 4px) * 3);\n\tmargin-top: calc(var(--default-grid-baseline, 4px) * 3);\n\toverflow: hidden;\n\tborder: 2px solid var(--color-border);\n\tborder-radius: var(--border-radius-container);\n\tbackground-color: transparent;\n\tdisplay: flex;\n}\n\n.widget-custom {\n\t@include widget;\n\tposition: relative;\n\n\t&.full-width {\n\t\twidth: var(--widget-full-width, 100%) !important;\n\t\tinset-inline-start: calc( (var(--widget-full-width, 100%) - 100%) / 2 * -1);\n\t\tposition: relative;\n\t}\n\n\t&__content {\n\t\twidth: 100%;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t}\n\n\t&__resize-handle {\n\t\tposition: absolute;\n\t\tbottom: 0;\n\t\tinset-inline-start: 0;\n\t\twidth: 100%;\n\t\theight: calc(var(--default-grid-baseline) * 2);\n\t\tborder-top: 1px solid var(--color-border);\n\t\tmargin-top: -1px;\n\t\tcursor: row-resize;\n\t\ttouch-action: none;\n\n\t\t&::before, &::after {\n\t\t\tcontent: '';\n\t\t\tposition: absolute;\n\t\t\ttop: 50%;\n\t\t\tleft: 50%;\n\t\t\tbackground-color: var(--color-border);\n\t\t\tmargin-top: 1px;\n\t\t\ttransform: translateX(-50%);\n\t\t\twidth: 30px;\n\t\t\theight: 1px;\n\t\t}\n\n\t\t&::before {\n\t\t\tmargin-top: -2px;\n\t\t}\n\n\t\t&:focus-visible {\n\t\t\toutline: 2px solid var(--color-primary-element);\n\t\t\toutline-offset: -4px;\n\t\t}\n\t}\n}\n\n.widget-access {\n\t@include widget;\n\tpadding: calc(var(--default-grid-baseline, 4px) * 3);\n}\n\n.widget-default {\n\t@include widget;\n\n\t&--compact {\n\t\tflex-direction: column;\n\n\t\t.widget-default--image {\n\t\t\twidth: 100%;\n\t\t\theight: 150px;\n\t\t}\n\n\t\t.widget-default--details {\n\t\t\twidth: 100%;\n\t\t\tpadding-top: calc(var(--default-grid-baseline, 4px) * 2);\n\t\t\tpadding-bottom: calc(var(--default-grid-baseline, 4px) * 2);\n\t\t}\n\n\t\t.widget-default--description {\n\t\t\tdisplay: none;\n\t\t}\n\n\t}\n\n\t&--image {\n\t\twidth: 40%;\n\t\tbackground-position: center;\n\t\tbackground-size: cover;\n\t\tbackground-repeat: no-repeat;\n\t}\n\n\t&--name {\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t\tfont-weight: var(--font-weight-heading, bold);\n\t}\n\n\t&--details {\n\t\tpadding: calc(var(--default-grid-baseline, 4px) * 3);\n\t\twidth: 60%;\n\n\t\tp {\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t}\n\t}\n\n\t&--description {\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 3;\n\t\tline-clamp: 3; /* stylelint-disable-line property-no-unknown */\n\t\t-webkit-box-orient: vertical;\n\t}\n\n\t&--link {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t}\n}\n\n.toggle-interactive {\n\tposition: relative;\n\t.toggle-interactive--button {\n\t\tposition: absolute;\n\t\tbottom: var(--default-grid-baseline);\n\t\tinset-inline-end: var(--default-grid-baseline);\n\t\tz-index: 10000;\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"raw-link\">\n\t\t<div class=\"input-wrapper\">\n\t\t\t<NcTextField\n\t\t\t\tref=\"url-input\"\n\t\t\t\tv-model=\"inputValue\"\n\t\t\t\t:showTrailingButton=\"inputValue !== ''\"\n\t\t\t\t:label=\"inputPlaceholder\"\n\t\t\t\t@trailingButtonClick=\"onClear\"\n\t\t\t\t@update:modelValue=\"onInput\"\n\t\t\t\t@keyup.enter=\"onSubmit\">\n\t\t\t\t<NcLoadingIcon v-if=\"loading\" :size=\"16\" />\n\t\t\t\t<LinkVariantIcon v-else :size=\"16\" />\n\t\t\t</NcTextField>\n\t\t</div>\n\t\t<NcReferenceWidget\n\t\t\tv-if=\"reference !== null\"\n\t\t\tclass=\"reference-widget\"\n\t\t\t:reference=\"reference\" />\n\t\t<NcEmptyContent\n\t\t\tv-else\n\t\t\tclass=\"raw-link--empty-content\">\n\t\t\t<template #icon>\n\t\t\t\t<img\n\t\t\t\t\tv-if=\"provider.icon_url\"\n\t\t\t\t\tclass=\"provider-icon\"\n\t\t\t\t\t:src=\"provider.icon_url\">\n\t\t\t\t<LinkVariantIcon v-else />\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t</div>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport debounce from 'debounce'\nimport LinkVariantIcon from 'vue-material-design-icons/LinkVariant.vue'\nimport NcReferenceWidget from '../NcReferenceWidget.vue'\nimport { t } from '../../../l10n.ts'\nimport { logger } from '../../../utils/logger.ts'\nimport NcEmptyContent from '../../NcEmptyContent/index.ts'\nimport NcLoadingIcon from '../../NcLoadingIcon/index.ts'\nimport NcTextField from '../../NcTextField/index.ts'\nimport { isUrl } from './utils.ts'\n\nexport default {\n\tname: 'NcRawLinkInput',\n\tcomponents: {\n\t\tLinkVariantIcon,\n\t\tNcEmptyContent,\n\t\tNcLoadingIcon,\n\t\tNcReferenceWidget,\n\t\tNcTextField,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * The reference provider\n\t\t */\n\t\tprovider: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\temits: [\n\t\t'submit',\n\t\t'pick',\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tinputValue: '',\n\t\t\tloading: false,\n\t\t\treference: null,\n\t\t\tabortController: null,\n\t\t\tinputPlaceholder: t('Enter link'),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisLinkValid() {\n\t\t\treturn isUrl(this.inputValue)\n\t\t},\n\n\t\tdebouncedUpdateReference() {\n\t\t\treturn debounce(this.updateReference, 500)\n\t\t},\n\t},\n\n\tmethods: {\n\t\tfocus() {\n\t\t\tthis.$refs['url-input'].$el.getElementsByTagName('input')[0]?.focus()\n\t\t},\n\n\t\tonSubmit(e) {\n\t\t\tconst value = e.target.value\n\t\t\tif (this.isLinkValid) {\n\t\t\t\tthis.$emit('submit', value)\n\t\t\t\tthis.$emit('pick', { link: value })\n\t\t\t}\n\t\t},\n\n\t\tonClear() {\n\t\t\tthis.inputValue = ''\n\t\t\tthis.reference = null\n\t\t},\n\n\t\tonInput() {\n\t\t\tthis.reference = null\n\t\t\tif (this.abortController) {\n\t\t\t\tthis.abortController.abort()\n\t\t\t}\n\t\t\tif (this.isLinkValid) {\n\t\t\t\tthis.debouncedUpdateReference()\n\t\t\t}\n\t\t},\n\n\t\tupdateReference() {\n\t\t\tthis.loading = true\n\t\t\tthis.abortController = new AbortController()\n\t\t\taxios.get(generateOcsUrl('references/resolve', 2) + '?reference=' + encodeURIComponent(this.inputValue), {\n\t\t\t\tsignal: this.abortController.signal,\n\t\t\t})\n\t\t\t\t.then((response) => {\n\t\t\t\t\tthis.reference = response.data.ocs.data.references[this.inputValue]\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tlogger.error('[NcRawLinkInput] Failed to update reference', { error })\n\t\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.loading = false\n\t\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.raw-link {\n\twidth: 100%;\n\tmin-height: 350px;\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow-y: auto;\n\tpadding: 0 16px 16px 16px;\n\n\t.input-wrapper {\n\t\twidth: 100%;\n\t}\n\n\t.reference-widget {\n\t\tdisplay: flex;\n\t}\n\n\t&--empty-content .provider-icon {\n\t\twidth: 150px;\n\t\theight: 150px;\n\t\tobject-fit: contain;\n\t\tfilter: var(--background-invert-if-dark);\n\t}\n\n\t&--input {\n\t\twidth: 99%;\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"result\">\n\t\t<div\n\t\t\tv-if=\"entry.icon\"\n\t\t\t:class=\"{ [entry.icon]: true, rounded: entry.rounded }\"\n\t\t\tclass=\"result--icon-class\" />\n\t\t<img\n\t\t\tv-else\n\t\t\tclass=\"result--image\"\n\t\t\t:class=\"{ rounded: entry.rounded }\"\n\t\t\t:src=\"entry.thumbnailUrl\">\n\t\t<div class=\"result--content\">\n\t\t\t<span class=\"result--content--name\">\n\t\t\t\t<NcHighlight :search=\"query\" :text=\"entry.title\" />\n\t\t\t</span>\n\t\t\t<span class=\"result--content--subline\">\n\t\t\t\t<NcHighlight :search=\"query\" :text=\"entry.subline\" />\n\t\t\t</span>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport NcHighlight from '../../NcHighlight/index.ts'\n\nexport default {\n\tname: 'NcSearchResult',\n\tcomponents: {\n\t\tNcHighlight,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Unified search result entry\n\t\t */\n\t\tentry: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * The query that led to getting this result\n\t\t * Used to highlight the entry text\n\t\t */\n\t\tquery: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.result {\n\tdisplay: flex;\n\talign-items: center;\n\theight: var(--default-clickable-area);\n\toverflow: hidden;\n\n\t&--icon-class,\n\t&--image {\n\t\twidth: 40px;\n\t\tmin-width: 40px;\n\t\theight: 40px;\n\t\tobject-fit: contain;\n\n\t\t&.rounded {\n\t\t\tborder-radius: 50%;\n\t\t}\n\t}\n\n\t&--content {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tpadding-inline-start: 10px;\n\t\toverflow: hidden;\n\n\t\t&--name,\n\t\t&--subline {\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t}\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"smart-picker-search\" :class=\"{ 'with-empty-content': showEmptyContent }\">\n\t\t<NcSelect\n\t\t\tref=\"search-select\"\n\t\t\tv-model=\"selectedResult\"\n\t\t\tclass=\"smart-picker-search--select\"\n\t\t\tinputId=\"search-select-input\"\n\t\t\tlabel=\"name\"\n\t\t\t:placeholder=\"mySearchPlaceholder\"\n\t\t\t:options=\"options\"\n\t\t\t:appendToBody=\"false\"\n\t\t\t:closeOnSelect=\"false\"\n\t\t\t:clearSearchOnSelect=\"false\"\n\t\t\t:clearSearchOnBlur=\"() => false\"\n\t\t\t:resetFocusOnOptionsChange=\"false\"\n\t\t\t:filterable=\"false\"\n\t\t\t:autoscroll=\"true\"\n\t\t\t:resetOnOptionsChange=\"false\"\n\t\t\t:loading=\"searching\"\n\t\t\t@search=\"onSearchInput\"\n\t\t\t@update:modelValue=\"onSelectResultSelected\">\n\t\t\t<template #option=\"option\">\n\t\t\t\t<div v-if=\"option.isRawLink\" class=\"custom-option\">\n\t\t\t\t\t<LinkVariantIcon class=\"option-simple-icon\" :size=\"20\" />\n\t\t\t\t\t<span class=\"option-text\">\n\t\t\t\t\t\t{{ t('Raw link {options}', { options: option.resourceUrl }) }}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<NcSearchResult\n\t\t\t\t\tv-else-if=\"option.resourceUrl\"\n\t\t\t\t\tclass=\"search-result\"\n\t\t\t\t\t:entry=\"option\"\n\t\t\t\t\t:query=\"searchQuery\" />\n\t\t\t\t<span v-else-if=\"option.isCustomGroupTitle\" class=\"custom-option group-name\">\n\t\t\t\t\t<img\n\t\t\t\t\t\tv-if=\"provider.icon_url\"\n\t\t\t\t\t\tclass=\"provider-icon group-name-icon\"\n\t\t\t\t\t\t:src=\"provider.icon_url\">\n\t\t\t\t\t<span class=\"option-text\">\n\t\t\t\t\t\t<strong>{{ option.name }}</strong>\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t\t<span v-else-if=\"option.isMore\" class=\"custom-option\">\n\t\t\t\t\t<span v-if=\"option.isLoading\" class=\"option-simple-icon icon-loading-small\" />\n\t\t\t\t\t<DotsHorizontalIcon v-else class=\"option-simple-icon\" :size=\"20\" />\n\t\t\t\t\t<span class=\"option-text\">\n\t\t\t\t\t\t{{ t('Load more \"{options}\"', { options: option.name }) }}\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t</template>\n\t\t\t<template #no-options>\n\t\t\t\t{{ noOptionsText }}\n\t\t\t</template>\n\t\t</NcSelect>\n\t\t<NcEmptyContent\n\t\t\tv-if=\"showEmptyContent\"\n\t\t\tclass=\"smart-picker-search--empty-content\">\n\t\t\t<template #icon>\n\t\t\t\t<img\n\t\t\t\t\tv-if=\"provider.icon_url\"\n\t\t\t\t\tclass=\"provider-icon\"\n\t\t\t\t\t:alt=\"providerIconAlt\"\n\t\t\t\t\t:src=\"provider.icon_url\">\n\t\t\t\t<LinkVariantIcon v-else />\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t</div>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport debounce from 'debounce'\nimport DotsHorizontalIcon from 'vue-material-design-icons/DotsHorizontal.vue'\nimport LinkVariantIcon from 'vue-material-design-icons/LinkVariant.vue'\nimport NcSearchResult from './NcSearchResult.vue'\nimport { t } from '../../../l10n.ts'\nimport NcEmptyContent from '../../NcEmptyContent/index.ts'\nimport NcSelect from '../../NcSelect/index.js'\nimport { isUrl } from './utils.ts'\n\nconst LIMIT = 5\n\nexport default {\n\tname: 'NcSearch',\n\tcomponents: {\n\t\tLinkVariantIcon,\n\t\tDotsHorizontalIcon,\n\t\tNcEmptyContent,\n\t\tNcSelect,\n\t\tNcSearchResult,\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 selected reference provider\n\t\t */\n\t\tprovider: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * Whether to show the empty content when there are no search results\n\t\t */\n\t\tshowEmptyContent: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\n\t\t/**\n\t\t * Placeholder of the search\n\t\t */\n\t\tsearchPlaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\temits: [\n\t\t'submit',\n\t\t'pick',\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tsearchQuery: '',\n\t\t\tselectedResult: null,\n\t\t\tresultsBySearchProvider: {},\n\t\t\tsearching: false,\n\t\t\tsearchingMoreOf: null,\n\t\t\tabortController: null,\n\t\t\tnoOptionsText: t('Start typing to search'),\n\t\t\tproviderIconAlt: t('Provider icon'),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tmySearchPlaceholder() {\n\t\t\treturn this.searchPlaceholder || t('Search')\n\t\t},\n\n\t\tsearchProviderIds() {\n\t\t\treturn this.provider.search_providers_ids\n\t\t},\n\n\t\toptions() {\n\t\t\tif (this.searchQuery === '') {\n\t\t\t\treturn []\n\t\t\t}\n\n\t\t\tconst options = []\n\t\t\tif (isUrl(this.searchQuery)) {\n\t\t\t\toptions.push(this.rawLinkEntry)\n\t\t\t}\n\t\t\toptions.push(...this.formattedSearchResults)\n\t\t\treturn options\n\t\t},\n\n\t\trawLinkEntry() {\n\t\t\treturn {\n\t\t\t\tid: 'rawLinkEntry',\n\t\t\t\tresourceUrl: this.searchQuery,\n\t\t\t\tisRawLink: true,\n\t\t\t}\n\t\t},\n\n\t\tformattedSearchResults() {\n\t\t\tconst results = []\n\t\t\tthis.searchProviderIds.forEach((pid) => {\n\t\t\t\tif (this.resultsBySearchProvider[pid].entries.length > 0) {\n\t\t\t\t\t// don't show group name entry if there is only one search provider and one result\n\t\t\t\t\tif (this.searchProviderIds.length > 1 || this.resultsBySearchProvider[pid].entries.length > 1) {\n\t\t\t\t\t\tresults.push({\n\t\t\t\t\t\t\tid: 'groupTitle-' + pid,\n\t\t\t\t\t\t\tname: this.resultsBySearchProvider[pid].name,\n\t\t\t\t\t\t\tisCustomGroupTitle: true,\n\t\t\t\t\t\t\tproviderId: pid,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\tconst providerEntriesWithId = this.resultsBySearchProvider[pid].entries.map((entry, index) => {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tid: 'provider-' + pid + '-entry-' + index,\n\t\t\t\t\t\t\t...entry,\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\tresults.push(...providerEntriesWithId)\n\t\t\t\t\tif (this.resultsBySearchProvider[pid].isPaginated) {\n\t\t\t\t\t\tresults.push({\n\t\t\t\t\t\t\tid: 'moreOf-' + pid,\n\t\t\t\t\t\t\tname: this.resultsBySearchProvider[pid].name,\n\t\t\t\t\t\t\tisMore: true,\n\t\t\t\t\t\t\tproviderId: pid,\n\t\t\t\t\t\t\tisLoading: this.searchingMoreOf === pid,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn results\n\t\t},\n\n\t\tdebouncedUpdateSearch() {\n\t\t\treturn debounce(this.updateSearch, 500)\n\t\t},\n\t},\n\n\tmounted() {\n\t\tthis.resetResults()\n\t},\n\n\tbeforeUnmount() {\n\t\tthis.cancelSearchRequests()\n\t},\n\n\tmethods: {\n\t\tt,\n\t\tresetResults() {\n\t\t\tconst resultsBySearchProvider = {}\n\t\t\tthis.searchProviderIds.forEach((pid) => {\n\t\t\t\tresultsBySearchProvider[pid] = {\n\t\t\t\t\tentries: [],\n\t\t\t\t}\n\t\t\t})\n\t\t\tthis.resultsBySearchProvider = resultsBySearchProvider\n\t\t},\n\n\t\tfocus() {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.$refs['search-select']?.$el?.querySelector('#search-select-input')?.focus()\n\t\t\t}, 300)\n\t\t},\n\n\t\tcancelSearchRequests() {\n\t\t\tif (this.abortController) {\n\t\t\t\tthis.abortController.abort()\n\t\t\t}\n\t\t},\n\n\t\tonSearchInput(query) {\n\t\t\tthis.searchQuery = query\n\t\t\tthis.debouncedUpdateSearch()\n\t\t},\n\n\t\tonSelectResultSelected(item) {\n\t\t\tif (item !== null) {\n\t\t\t\tif (item.resourceUrl) {\n\t\t\t\t\tthis.cancelSearchRequests()\n\t\t\t\t\tthis.$emit('submit', item.resourceUrl)\n\t\t\t\t\tconst reference = { link: item.resourceUrl }\n\t\t\t\t\tif (item.title) {\n\t\t\t\t\t\treference.title = item.title\n\t\t\t\t\t}\n\t\t\t\t\tthis.$emit('pick', reference)\n\t\t\t\t} else if (item.isMore) {\n\t\t\t\t\tthis.searchMoreOf(item.providerId).then(() => {\n\t\t\t\t\t\t// allow clicking twice on the same \"more\" item\n\t\t\t\t\t\tthis.selectedResult = null\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tsearchMoreOf(searchProviderId) {\n\t\t\tthis.searchingMoreOf = searchProviderId\n\t\t\tthis.cancelSearchRequests()\n\t\t\treturn this.searchProviders(searchProviderId)\n\t\t},\n\n\t\tupdateSearch() {\n\t\t\tthis.cancelSearchRequests()\n\t\t\tthis.resetResults()\n\t\t\tif (this.searchQuery === '') {\n\t\t\t\tthis.searching = false\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\treturn this.searchProviders()\n\t\t},\n\n\t\tsearchProviders(searchProviderId = null) {\n\t\t\tthis.abortController = new AbortController()\n\t\t\tthis.searching = true\n\n\t\t\tconst searchPromises = searchProviderId === null\n\t\t\t\t? [...this.searchProviderIds].map((pid) => {\n\t\t\t\t\t\treturn this.searchOneProvider(pid)\n\t\t\t\t\t})\n\t\t\t\t: [this.searchOneProvider(searchProviderId, this.resultsBySearchProvider[searchProviderId]?.cursor ?? null)]\n\t\t\t// fake one to have a request error\n\t\t\t// searchPromises.push(this.searchOneProvider('nopid'))\n\n\t\t\treturn Promise.allSettled(searchPromises)\n\t\t\t\t.then((promises) => {\n\t\t\t\t\tconst isOneCanceled = !!promises.find((p) => {\n\t\t\t\t\t\treturn p.status === 'rejected' && (p.reason.name === 'CanceledError' || p.reason.code === 'ERR_CANCELED')\n\t\t\t\t\t})\n\t\t\t\t\t// nothing was canceled: not searching\n\t\t\t\t\tif (!isOneCanceled) {\n\t\t\t\t\t\tthis.searching = false\n\t\t\t\t\t\tthis.searchingMoreOf = null\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t},\n\n\t\tsearchOneProvider(providerId, cursor = null) {\n\t\t\tconst url = cursor === null\n\t\t\t\t? generateOcsUrl('search/providers/{providerId}/search?term={term}&limit={limit}', { providerId, term: this.searchQuery, limit: LIMIT })\n\t\t\t\t: generateOcsUrl('search/providers/{providerId}/search?term={term}&limit={limit}&cursor={cursor}', { providerId, term: this.searchQuery, limit: LIMIT, cursor })\n\t\t\treturn axios.get(url, {\n\t\t\t\tsignal: this.abortController.signal,\n\t\t\t})\n\t\t\t\t.then((response) => {\n\t\t\t\t\tconst data = response.data.ocs.data\n\t\t\t\t\tthis.resultsBySearchProvider[providerId].name = data.name\n\t\t\t\t\tthis.resultsBySearchProvider[providerId].cursor = data.cursor\n\t\t\t\t\tthis.resultsBySearchProvider[providerId].isPaginated = data.isPaginated\n\t\t\t\t\tthis.resultsBySearchProvider[providerId].entries.push(...data.entries)\n\t\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.smart-picker-search {\n\twidth: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\tpadding: 0 16px 16px 16px;\n\t&.with-empty-content {\n\t\tmin-height: 400px;\n\t}\n\n\t.provider-icon {\n\t\twidth: 150px;\n\t\theight: 150px;\n\t\tobject-fit: contain;\n\t\tfilter: var(--background-invert-if-dark);\n\t}\n\n\t&--select {\n\t\twidth: 100%;\n\n\t\t.search-result {\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t.group-name-icon,\n\t\t.option-simple-icon {\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t\tmargin: 0 20px 0 10px;\n\t\t}\n\n\t\t.custom-option {\n\t\t\theight: var(--default-clickable-area);\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\toverflow: hidden;\n\t\t}\n\n\t\t.option-text {\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t}\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div\n\t\tclass=\"reference-picker\"\n\t\t:style=\"pickerWrapperStyle\"\n\t\ttabindex=\"-1\"\n\t\t@keydown.stop.prevent.esc=\"onEscapePressed\">\n\t\t<NcProviderList\n\t\t\tv-if=\"mode === MODES.providerList\"\n\t\t\tref=\"provider-list\"\n\t\t\t@selectProvider=\"onProviderSelected\"\n\t\t\t@submit=\"submitLink\"\n\t\t\t@pick=\"pickLink\"\n\t\t\t@cancel=\"cancelProviderSelection\" />\n\t\t<NcRawLinkInput\n\t\t\tv-else-if=\"mode === MODES.standardLinkInput\"\n\t\t\tref=\"url-input\"\n\t\t\t:provider=\"selectedProvider\"\n\t\t\t@submit=\"submitLink\"\n\t\t\t@pick=\"pickLink\"\n\t\t\t@cancel=\"cancelRawLinkInput\" />\n\t\t<NcSearch\n\t\t\tv-else-if=\"mode === MODES.searchInput\"\n\t\t\tref=\"url-input\"\n\t\t\t:provider=\"selectedProvider\"\n\t\t\t@submit=\"submitLink\"\n\t\t\t@pick=\"pickLink\"\n\t\t\t@cancel=\"cancelSearch\" />\n\t\t<div\n\t\t\tv-else-if=\"mode === MODES.customElement\"\n\t\t\tclass=\"custom-element-wrapper\">\n\t\t\t<NcCustomPickerElement\n\t\t\t\t:provider=\"selectedProvider\"\n\t\t\t\tclass=\"custom-element\"\n\t\t\t\t@submit=\"submitLink\"\n\t\t\t\t@pick=\"pickLink\"\n\t\t\t\t@cancel=\"cancelCustomElement\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport NcCustomPickerElement from './NcCustomPickerElement.vue'\nimport NcProviderList from './NcProviderList.vue'\nimport NcRawLinkInput from './NcRawLinkInput.vue'\nimport NcSearch from './NcSearch.vue'\nimport { isCustomPickerElementRegistered } from '../../../functions/reference/customPickerElements.ts'\nimport { touchProvider } from '../../../functions/reference/providerHelper.ts'\n\nconst MODES = {\n\tproviderList: 1,\n\tstandardLinkInput: 2,\n\tsearchInput: 3,\n\tcustomElement: 4,\n}\nexport default {\n\tname: 'NcReferencePicker',\n\tcomponents: {\n\t\tNcCustomPickerElement,\n\t\tNcProviderList,\n\t\tNcRawLinkInput,\n\t\tNcSearch,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Provider to select on creation\n\t\t * Default: null. Show the provider list\n\t\t */\n\t\tinitialProvider: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => null,\n\t\t},\n\n\t\t/**\n\t\t * Optional width in pixels\n\t\t * Default: 100%\n\t\t */\n\t\twidth: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Focus on the provider list select input on creation\n\t\t * Default: true\n\t\t */\n\t\tfocusOnCreate: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\n\temits: [\n\t\t'cancel',\n\t\t'cancelRawLink',\n\t\t'cancelSearch',\n\t\t'providerSelected',\n\t\t'submit',\n\t\t'pick',\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tMODES,\n\t\t\tselectedProvider: this.initialProvider,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tmode() {\n\t\t\treturn this.selectedProvider === null\n\t\t\t\t? MODES.providerList\n\t\t\t\t: isCustomPickerElementRegistered(this.selectedProvider.id)\n\t\t\t\t\t? MODES.customElement\n\t\t\t\t\t: this.selectedProvider.search_providers_ids\n\t\t\t\t\t\t? MODES.searchInput\n\t\t\t\t\t\t: MODES.standardLinkInput\n\t\t},\n\n\t\tpickerWrapperStyle() {\n\t\t\treturn {\n\t\t\t\twidth: this.width ? this.width + 'px' : undefined,\n\t\t\t}\n\t\t},\n\t},\n\n\tmounted() {\n\t\tif (this.focusOnCreate) {\n\t\t\tif (this.initialProvider) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.$refs['url-input']?.focus()\n\t\t\t\t}, 300)\n\t\t\t} else {\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\tthis.$refs['provider-list']?.focus()\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t},\n\n\tmethods: {\n\t\tonEscapePressed() {\n\t\t\tif (this.selectedProvider !== null) {\n\t\t\t\tthis.deselectProvider()\n\t\t\t} else {\n\t\t\t\tthis.cancelProviderSelection()\n\t\t\t}\n\t\t},\n\n\t\tonProviderSelected(provider) {\n\t\t\tthis.selectedProvider = provider\n\t\t\tthis.$emit('providerSelected', provider)\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.$refs['url-input']?.focus()\n\t\t\t})\n\t\t},\n\n\t\tcancelCustomElement() {\n\t\t\tthis.deselectProvider()\n\t\t},\n\n\t\tcancelSearch() {\n\t\t\tthis.$emit('cancelSearch', this.selectedProvider?.title)\n\t\t\tthis.deselectProvider()\n\t\t},\n\n\t\tcancelRawLinkInput() {\n\t\t\tthis.$emit('cancelRawLink', this.selectedProvider?.title)\n\t\t\tthis.deselectProvider()\n\t\t},\n\n\t\tcancelProviderSelection() {\n\t\t\tthis.$emit('cancel')\n\t\t},\n\n\t\tsubmitLink(link) {\n\t\t\tif (this.selectedProvider !== null) {\n\t\t\t\ttouchProvider(this.selectedProvider.id)\n\t\t\t}\n\t\t\tthis.$emit('submit', link)\n\t\t\tthis.deselectProvider()\n\t\t},\n\n\t\tpickLink(reference) {\n\t\t\tif (this.selectedProvider !== null) {\n\t\t\t\ttouchProvider(this.selectedProvider.id)\n\t\t\t}\n\t\t\tthis.$emit('pick', reference)\n\t\t\tthis.deselectProvider()\n\t\t},\n\n\t\tdeselectProvider() {\n\t\t\tthis.selectedProvider = null\n\t\t\tthis.$emit('providerSelected', null)\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.$refs['provider-list']?.focus()\n\t\t\t}, 300)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.reference-picker {\n\tdisplay: flex;\n\toverflow-y: auto;\n\twidth: 100%;\n\n\t.custom-element-wrapper {\n\t\tdisplay: flex;\n\t\toverflow-y: auto;\n\t\twidth: 100%;\n\t\t.custom-element {\n\t\t\tdisplay: flex;\n\t\t\toverflow-y: auto;\n\t\t\twidth: 100%;\n\t\t}\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<NcModal\n\t\tv-if=\"show\"\n\t\t:size=\"modalSize\"\n\t\tclass=\"reference-picker-modal\"\n\t\t@close=\"onCancel\">\n\t\t<div\n\t\t\tref=\"modal_content\"\n\t\t\tclass=\"reference-picker-modal--content\">\n\t\t\t<NcButton\n\t\t\t\tv-if=\"showBackButton\"\n\t\t\t\t:aria-label=\"backButtonTitle\"\n\t\t\t\t:title=\"backButtonTitle\"\n\t\t\t\tclass=\"back-button\"\n\t\t\t\t@click=\"onBackClicked\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<ArrowLeftIcon />\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\t\t\t<NcButton\n\t\t\t\tclass=\"close-button\"\n\t\t\t\t:aria-label=\"closeButtonLabel\"\n\t\t\t\t:title=\"closeButtonTitle\"\n\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t@click=\"onCancel\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CloseIcon />\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\t\t\t<h2 v-if=\"showModalName\">\n\t\t\t\t{{ modalName }}\n\t\t\t</h2>\n\t\t\t<NcReferencePicker\n\t\t\t\tref=\"referencePicker\"\n\t\t\t\t:initialProvider=\"initialProvider\"\n\t\t\t\t:focusOnCreate=\"focusOnCreate\"\n\t\t\t\t@providerSelected=\"onProviderSelect\"\n\t\t\t\t@submit=\"onSubmit\"\n\t\t\t\t@pick=\"onPick\"\n\t\t\t\t@cancel=\"onCancel\" />\n\t\t</div>\n\t</NcModal>\n</template>\n\n<script>\nimport { emit } from '@nextcloud/event-bus'\nimport ArrowLeftIcon from 'vue-material-design-icons/ArrowLeft.vue'\nimport CloseIcon from 'vue-material-design-icons/Close.vue'\nimport NcReferencePicker from './NcReferencePicker.vue'\nimport { getCustomPickerElementSize, isCustomPickerElementRegistered } from '../../../functions/reference/customPickerElements.ts'\nimport { t } from '../../../l10n.ts'\nimport NcButton from '../../NcButton/index.ts'\nimport NcModal from '../../NcModal/index.js'\n\nexport default {\n\tname: 'NcReferencePickerModal',\n\tcomponents: {\n\t\tNcReferencePicker,\n\t\tNcModal,\n\t\tNcButton,\n\t\tArrowLeftIcon,\n\t\tCloseIcon,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Provider to select on creation\n\t\t * Show the provider list if no initial one is provided\n\t\t */\n\t\tinitialProvider: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => null,\n\t\t},\n\n\t\t/**\n\t\t * Focus on the input item on create\n\t\t */\n\t\tfocusOnCreate: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\n\t\t/**\n\t\t * If true, add the modal content to the Viewer trap elements via the event-bus\n\t\t */\n\t\tisInsideViewer: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\temits: [\n\t\t'cancel',\n\t\t'submit',\n\t\t'pick',\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tshow: true,\n\t\t\tselectedProvider: this.initialProvider,\n\t\t\tbackButtonTitle: t('Back to provider selection'),\n\t\t\tcloseButtonTitle: t('Close'),\n\t\t\tcloseButtonLabel: t('Close Smart Picker'),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisProviderSelected() {\n\t\t\treturn this.selectedProvider !== null\n\t\t},\n\n\t\tshowBackButton() {\n\t\t\treturn this.initialProvider === null && this.isProviderSelected\n\t\t},\n\n\t\tmodalSize() {\n\t\t\treturn this.isProviderSelected && isCustomPickerElementRegistered(this.selectedProvider.id)\n\t\t\t\t? (getCustomPickerElementSize(this.selectedProvider.id) ?? 'large')\n\t\t\t\t: 'normal'\n\t\t},\n\n\t\tshowModalName() {\n\t\t\treturn !this.isProviderSelected || !isCustomPickerElementRegistered(this.selectedProvider.id)\n\t\t},\n\n\t\tmodalName() {\n\t\t\treturn this.isProviderSelected\n\t\t\t\t? this.selectedProvider.title\n\t\t\t\t: t('Smart Picker')\n\t\t},\n\t},\n\n\tmounted() {\n\t\tif (this.isInsideViewer) {\n\t\t\tconst elem = this.$refs.modal_content\n\t\t\temit('viewer:trapElements:changed', elem)\n\t\t}\n\t},\n\n\tmethods: {\n\t\tonCancel() {\n\t\t\tthis.show = false\n\t\t\tthis.$emit('cancel')\n\t\t},\n\n\t\tonSubmit(value) {\n\t\t\tthis.show = false\n\t\t\tthis.$emit('submit', value)\n\t\t},\n\n\t\tonPick(value) {\n\t\t\tthis.show = false\n\t\t\tthis.$emit('pick', value)\n\t\t},\n\n\t\tonProviderSelect(provider) {\n\t\t\tthis.selectedProvider = provider\n\t\t\t// provider was deselected and we started with an inital one: just close the modal\n\t\t\tif (provider === null && this.initialProvider !== null) {\n\t\t\t\tthis.onCancel()\n\t\t\t}\n\t\t},\n\n\t\tonBackClicked() {\n\t\t\tthis.$refs.referencePicker.deselectProvider()\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n// this is to avoid scroll on the container and leave it to the result block\n.reference-picker-modal :deep(.modal-container) {\n\tdisplay: flex !important;\n}\n\n.reference-picker-modal--content {\n\twidth: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: center;\n\toverflow-y: auto;\n\n\t.close-button,\n\t.back-button {\n\t\tposition: absolute;\n\t\ttop: 4px;\n\t}\n\t.back-button {\n\t\tinset-inline-start: 4px;\n\t}\n\t.close-button {\n\t\tinset-inline-end: 4px;\n\t}\n\n\t> h2 {\n\t\tdisplay: flex;\n\t\tmargin: 12px 0 20px 0;\n\t\t.icon {\n\t\t\tmargin-inline-end: 8px;\n\t\t}\n\t}\n}\n</style>\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport NcReferencePickerModal from './../../components/NcRichText/NcReferencePicker/NcReferencePickerModal.vue'\nimport { getProvider } from './providerHelper.js'\n\n/**\n * Creates a reference picker modal and return a promise which provides the link URL\n *\n * @param providerId - Optional ID of initial selected provider\n * @param isInsideViewer - Should be true if this function is called while the Viewer is displayed\n */\nexport async function getLinkWithPicker(providerId?: string, isInsideViewer?: boolean): Promise<string> {\n\tconst modalId = 'referencePickerModal'\n\tconst modalElement = document.createElement('div')\n\tmodalElement.id = modalId\n\tdocument.body.append(modalElement)\n\n\tconst { promise, reject, resolve } = Promise.withResolvers<string>()\n\tconst initialProvider = (providerId && getProvider(providerId)) || null\n\tconst view = createApp(NcReferencePickerModal, {\n\t\tinitialProvider,\n\t\tisInsideViewer,\n\t\tonCancel() {\n\t\t\tview.unmount()\n\t\t\treject(new Error('User cancellation'))\n\t\t},\n\t\tonSubmit(link: string) {\n\t\t\tview.unmount()\n\t\t\tresolve(link)\n\t\t},\n\t})\n\tview.mount(modalElement)\n\n\treturn promise\n}\n\n/**\n * Creates a reference picker modal and return a promise which provides the reference object.\n *\n * The function guarantees a `link: string` on the resolved object. Custom picker elements may\n * include additional fields (e.g. `title`).\n *\n * @experimental The shape of the resolved reference and the signature of this function may still change.\n *\n * @template T - Expected shape of the resolved reference, must include `link: string`\n * @param providerId - Optional ID of initial selected provider\n * @param isInsideViewer - Should be true if this function is called while the Viewer is displayed\n */\nexport async function getReferenceWithPicker<T extends { link: string }>(providerId?: string, isInsideViewer?: boolean): Promise<T> {\n\tconst modalId = 'referencePickerModal'\n\tconst modalElement = document.createElement('div')\n\tmodalElement.id = modalId\n\tdocument.body.append(modalElement)\n\n\tconst { promise, reject, resolve } = Promise.withResolvers<T>()\n\tconst initialProvider = (providerId && getProvider(providerId)) || null\n\tconst view = createApp(NcReferencePickerModal, {\n\t\tinitialProvider,\n\t\tisInsideViewer,\n\t\tonCancel() {\n\t\t\tview.unmount()\n\t\t\treject(new Error('User cancellation'))\n\t\t},\n\t\tonPick(reference: T) {\n\t\t\tview.unmount()\n\t\t\tresolve(reference)\n\t\t},\n\t})\n\tview.mount(modalElement)\n\n\treturn promise\n}\n"],"names":["_sfc_main","_hoisted_3","_createElementBlock","_mergeProps","_createElementVNode","_openBlock","_hoisted_1","NcHighlight","_createVNode","_withCtx","_hoisted_2","_toDisplayString","_normalizeClass","_unref","_withKeys","_withModifiers","_createBlock","_resolveDynamicComponent","_hoisted_4","_hoisted_5","NcTextField","DotsHorizontalIcon","CloseIcon"],"mappings":"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","x_google_ignoreList":[0,2]}
@@ -1,6 +1,6 @@
1
1
  import { d as mdiCheck, e as mdiContentCopy } from "./mdi-CpchYUUV.mjs";
2
2
  import { ref, computed, toValue } from "vue";
3
- import { r as register, e as t22, a as t } from "./_l10n-CG4CuN3H.mjs";
3
+ import { r as register, e as t22, a as t } from "./_l10n-wdIzZwir.mjs";
4
4
  register(t22);
5
5
  /*!
6
6
  * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
@@ -36,4 +36,4 @@ function useCopy(content) {
36
36
  export {
37
37
  useCopy as u
38
38
  };
39
- //# sourceMappingURL=useCopy-PckLYUAU.mjs.map
39
+ //# sourceMappingURL=useCopy-6F-qWHq0.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCopy-PckLYUAU.mjs","sources":["../../src/composables/useCopy.ts"],"sourcesContent":["/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { MaybeRefOrGetter } from 'vue'\n\nimport { mdiCheck, mdiContentCopy } from '@mdi/js'\nimport { computed, ref, toValue } from 'vue'\nimport { t } from '../l10n.ts'\n\nconst DELAY = 2000\n\n/**\n * Copy content to clipboard with copied state\n *\n * @param content - Content to copy\n */\nexport function useCopy(content: MaybeRefOrGetter<string>) {\n\tconst isCopied = ref(false)\n\tconst icon = computed(() => isCopied.value ? mdiCheck : mdiContentCopy)\n\tconst altText = computed(() => isCopied.value ? t('Copied') : t('Copy to clipboard'))\n\n\t/**\n\t * Copy the content to clipboard\n\t */\n\tasync function copy() {\n\t\tif (isCopied.value) {\n\t\t\treturn\n\t\t}\n\n\t\tconst value = toValue(content)\n\t\ttry {\n\t\t\tawait navigator.clipboard.writeText(value)\n\t\t} catch {\n\t\t\t// Fallback for a case when clipboard API is not available or permission denied\n\t\t\tprompt('', value)\n\t\t}\n\n\t\tisCopied.value = true\n\t\tsetTimeout(() => {\n\t\t\tisCopied.value = false\n\t\t}, DELAY)\n\t}\n\n\treturn {\n\t\tisCopied,\n\t\tcopy,\n\t\ticon,\n\t\taltText,\n\t}\n}\n"],"names":[],"mappings":";;;;AAAA;AAAA;AAAA;AAAA;AAWA,MAAM,QAAQ;AAOP,SAAS,QAAQ,SAAmC;AAC1D,QAAM,WAAW,IAAI,KAAK;AAC1B,QAAM,OAAO,SAAS,MAAM,SAAS,QAAQ,WAAW,cAAc;AACtE,QAAM,UAAU,SAAS,MAAM,SAAS,QAAQ,EAAE,QAAQ,IAAI,EAAE,mBAAmB,CAAC;AAKpF,iBAAe,OAAO;AACrB,QAAI,SAAS,OAAO;AACnB;AAAA,IACD;AAEA,UAAM,QAAQ,QAAQ,OAAO;AAC7B,QAAI;AACH,YAAM,UAAU,UAAU,UAAU,KAAK;AAAA,IAC1C,QAAQ;AAEP,aAAO,IAAI,KAAK;AAAA,IACjB;AAEA,aAAS,QAAQ;AACjB,eAAW,MAAM;AAChB,eAAS,QAAQ;AAAA,IAClB,GAAG,KAAK;AAAA,EACT;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF;"}
1
+ {"version":3,"file":"useCopy-6F-qWHq0.mjs","sources":["../../src/composables/useCopy.ts"],"sourcesContent":["/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { MaybeRefOrGetter } from 'vue'\n\nimport { mdiCheck, mdiContentCopy } from '@mdi/js'\nimport { computed, ref, toValue } from 'vue'\nimport { t } from '../l10n.ts'\n\nconst DELAY = 2000\n\n/**\n * Copy content to clipboard with copied state\n *\n * @param content - Content to copy\n */\nexport function useCopy(content: MaybeRefOrGetter<string>) {\n\tconst isCopied = ref(false)\n\tconst icon = computed(() => isCopied.value ? mdiCheck : mdiContentCopy)\n\tconst altText = computed(() => isCopied.value ? t('Copied') : t('Copy to clipboard'))\n\n\t/**\n\t * Copy the content to clipboard\n\t */\n\tasync function copy() {\n\t\tif (isCopied.value) {\n\t\t\treturn\n\t\t}\n\n\t\tconst value = toValue(content)\n\t\ttry {\n\t\t\tawait navigator.clipboard.writeText(value)\n\t\t} catch {\n\t\t\t// Fallback for a case when clipboard API is not available or permission denied\n\t\t\tprompt('', value)\n\t\t}\n\n\t\tisCopied.value = true\n\t\tsetTimeout(() => {\n\t\t\tisCopied.value = false\n\t\t}, DELAY)\n\t}\n\n\treturn {\n\t\tisCopied,\n\t\tcopy,\n\t\ticon,\n\t\taltText,\n\t}\n}\n"],"names":[],"mappings":";;;;AAAA;AAAA;AAAA;AAAA;AAWA,MAAM,QAAQ;AAOP,SAAS,QAAQ,SAAmC;AAC1D,QAAM,WAAW,IAAI,KAAK;AAC1B,QAAM,OAAO,SAAS,MAAM,SAAS,QAAQ,WAAW,cAAc;AACtE,QAAM,UAAU,SAAS,MAAM,SAAS,QAAQ,EAAE,QAAQ,IAAI,EAAE,mBAAmB,CAAC;AAKpF,iBAAe,OAAO;AACrB,QAAI,SAAS,OAAO;AACnB;AAAA,IACD;AAEA,UAAM,QAAQ,QAAQ,OAAO;AAC7B,QAAI;AACH,YAAM,UAAU,UAAU,UAAU,KAAK;AAAA,IAC1C,QAAQ;AAEP,aAAO,IAAI,KAAK;AAAA,IACjB;AAEA,aAAS,QAAQ;AACjB,eAAW,MAAM;AAChB,eAAS,QAAQ;AAAA,IAClB,GAAG,KAAK;AAAA,EACT;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF;"}
@@ -1,4 +1,4 @@
1
- import { N } from "../../chunks/NcActionButtonGroup-B9LfyE-G.mjs";
1
+ import { N } from "../../chunks/NcActionButtonGroup-Dd03Oluy.mjs";
2
2
  export {
3
3
  N as default
4
4
  };
@@ -956,6 +956,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
956
956
  readonly placeholder?: import('vue').Prop<string | undefined, string | undefined> | null | undefined;
957
957
  readonly uid?: import('vue').Prop<string | undefined, string | undefined> | null | undefined;
958
958
  readonly modelValue?: import('vue').Prop<import('@vuepic/vue-datepicker').ModelValue | undefined, import('@vuepic/vue-datepicker').ModelValue | undefined> | null | undefined;
959
+ readonly vertical?: import('vue').Prop<boolean | undefined, boolean | undefined> | null | undefined;
959
960
  readonly inline?: import('vue').Prop<boolean | {
960
961
  input?: boolean;
961
962
  } | undefined, boolean | {
@@ -967,7 +968,6 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
967
968
  readonly locale?: import('vue').Prop<string | undefined, string | undefined> | null | undefined;
968
969
  readonly format?: import('vue').Prop<string | ((date: Date) => string) | ((dates: Date[]) => string) | undefined, string | ((date: Date) => string) | ((dates: Date[]) => string) | undefined> | null | undefined;
969
970
  readonly calendar?: import('vue').Prop<((weeks: import('@vuepic/vue-datepicker').CalendarWeek[]) => import('@vuepic/vue-datepicker').CalendarWeek[]) | undefined, ((weeks: import('@vuepic/vue-datepicker').CalendarWeek[]) => import('@vuepic/vue-datepicker').CalendarWeek[]) | undefined> | null | undefined;
970
- readonly vertical?: import('vue').Prop<boolean | undefined, boolean | undefined> | null | undefined;
971
971
  readonly clearable?: import('vue').Prop<boolean | undefined, boolean | undefined> | null | undefined;
972
972
  readonly state?: import('vue').Prop<boolean | undefined, boolean | undefined> | null | undefined;
973
973
  readonly is24?: import('vue').Prop<boolean | undefined, boolean | undefined> | null | undefined;
@@ -999,7 +999,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
999
999
  readonly maxDate?: import('vue').Prop<string | Date | undefined, string | Date | undefined> | null | undefined;
1000
1000
  readonly minTime?: import('vue').Prop<import('@vuepic/vue-datepicker').PartialTimeObj | undefined, import('@vuepic/vue-datepicker').PartialTimeObj | undefined> | null | undefined;
1001
1001
  readonly maxTime?: import('vue').Prop<import('@vuepic/vue-datepicker').PartialTimeObj | undefined, import('@vuepic/vue-datepicker').PartialTimeObj | undefined> | null | undefined;
1002
- readonly weekStart?: import('vue').Prop<0 | 3 | 4 | 1 | 2 | 6 | "0" | "1" | 5 | "2" | "3" | "4" | "5" | "6" | undefined, 0 | 3 | 4 | 1 | 2 | 6 | "0" | "1" | 5 | "2" | "3" | "4" | "5" | "6" | undefined> | null | undefined;
1002
+ readonly weekStart?: import('vue').Prop<0 | 3 | 4 | 1 | 2 | 6 | "0" | "1" | "2" | 5 | "3" | "4" | "5" | "6" | undefined, 0 | 3 | 4 | 1 | 2 | 6 | "0" | "1" | "2" | 5 | "3" | "4" | "5" | "6" | undefined> | null | undefined;
1003
1003
  readonly readonly?: import('vue').Prop<boolean | undefined, boolean | undefined> | null | undefined;
1004
1004
  readonly previewFormat?: import('vue').Prop<string | ((date: Date) => string) | ((dates: Date[]) => string) | undefined, string | ((date: Date) => string) | ((dates: Date[]) => string) | undefined> | null | undefined;
1005
1005
  readonly hideInputIcon?: import('vue').Prop<boolean | undefined, boolean | undefined> | null | undefined;
@@ -1487,6 +1487,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
1487
1487
  readonly placeholder?: import('vue').Prop<string | undefined, string | undefined> | null | undefined;
1488
1488
  readonly uid?: import('vue').Prop<string | undefined, string | undefined> | null | undefined;
1489
1489
  readonly modelValue?: import('vue').Prop<import('@vuepic/vue-datepicker').ModelValue | undefined, import('@vuepic/vue-datepicker').ModelValue | undefined> | null | undefined;
1490
+ readonly vertical?: import('vue').Prop<boolean | undefined, boolean | undefined> | null | undefined;
1490
1491
  readonly inline?: import('vue').Prop<boolean | {
1491
1492
  input?: boolean;
1492
1493
  } | undefined, boolean | {
@@ -1498,7 +1499,6 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
1498
1499
  readonly locale?: import('vue').Prop<string | undefined, string | undefined> | null | undefined;
1499
1500
  readonly format?: import('vue').Prop<string | ((date: Date) => string) | ((dates: Date[]) => string) | undefined, string | ((date: Date) => string) | ((dates: Date[]) => string) | undefined> | null | undefined;
1500
1501
  readonly calendar?: import('vue').Prop<((weeks: import('@vuepic/vue-datepicker').CalendarWeek[]) => import('@vuepic/vue-datepicker').CalendarWeek[]) | undefined, ((weeks: import('@vuepic/vue-datepicker').CalendarWeek[]) => import('@vuepic/vue-datepicker').CalendarWeek[]) | undefined> | null | undefined;
1501
- readonly vertical?: import('vue').Prop<boolean | undefined, boolean | undefined> | null | undefined;
1502
1502
  readonly clearable?: import('vue').Prop<boolean | undefined, boolean | undefined> | null | undefined;
1503
1503
  readonly state?: import('vue').Prop<boolean | undefined, boolean | undefined> | null | undefined;
1504
1504
  readonly is24?: import('vue').Prop<boolean | undefined, boolean | undefined> | null | undefined;
@@ -1530,7 +1530,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
1530
1530
  readonly maxDate?: import('vue').Prop<string | Date | undefined, string | Date | undefined> | null | undefined;
1531
1531
  readonly minTime?: import('vue').Prop<import('@vuepic/vue-datepicker').PartialTimeObj | undefined, import('@vuepic/vue-datepicker').PartialTimeObj | undefined> | null | undefined;
1532
1532
  readonly maxTime?: import('vue').Prop<import('@vuepic/vue-datepicker').PartialTimeObj | undefined, import('@vuepic/vue-datepicker').PartialTimeObj | undefined> | null | undefined;
1533
- readonly weekStart?: import('vue').Prop<0 | 3 | 4 | 1 | 2 | 6 | "0" | "1" | 5 | "2" | "3" | "4" | "5" | "6" | undefined, 0 | 3 | 4 | 1 | 2 | 6 | "0" | "1" | 5 | "2" | "3" | "4" | "5" | "6" | undefined> | null | undefined;
1533
+ readonly weekStart?: import('vue').Prop<0 | 3 | 4 | 1 | 2 | 6 | "0" | "1" | "2" | 5 | "3" | "4" | "5" | "6" | undefined, 0 | 3 | 4 | 1 | 2 | 6 | "0" | "1" | "2" | 5 | "3" | "4" | "5" | "6" | undefined> | null | undefined;
1534
1534
  readonly readonly?: import('vue').Prop<boolean | undefined, boolean | undefined> | null | undefined;
1535
1535
  readonly previewFormat?: import('vue').Prop<string | ((date: Date) => string) | ((dates: Date[]) => string) | undefined, string | ((date: Date) => string) | ((dates: Date[]) => string) | undefined> | null | undefined;
1536
1536
  readonly hideInputIcon?: import('vue').Prop<boolean | undefined, boolean | undefined> | null | undefined;
@@ -1,4 +1,4 @@
1
- import { N } from "../../chunks/NcActionInput-BO0lB4VP.mjs";
1
+ import { N } from "../../chunks/NcActionInput-Dr8Yrafu.mjs";
2
2
  export {
3
3
  N as default
4
4
  };
@@ -119,6 +119,13 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
119
119
  validator(value: unknown): boolean;
120
120
  default: null;
121
121
  };
122
+ /**
123
+ * Specifies whether the button should span all the available width.
124
+ */
125
+ wide: {
126
+ type: BooleanConstructor;
127
+ default: boolean;
128
+ };
122
129
  /**
123
130
  * Specify the size used for trigger and single actions buttons.
124
131
  *
@@ -348,6 +355,13 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
348
355
  validator(value: unknown): boolean;
349
356
  default: null;
350
357
  };
358
+ /**
359
+ * Specifies whether the button should span all the available width.
360
+ */
361
+ wide: {
362
+ type: BooleanConstructor;
363
+ default: boolean;
364
+ };
351
365
  /**
352
366
  * Specify the size used for trigger and single actions buttons.
353
367
  *
@@ -374,6 +388,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
374
388
  primary: boolean;
375
389
  ariaLabel: string;
376
390
  variant: string;
391
+ wide: boolean;
377
392
  inline: number;
378
393
  placement: string;
379
394
  container: string | boolean | Element | Record<string, any>;
@@ -1,4 +1,4 @@
1
- import { N } from "../../chunks/NcActions-CUmcZ3C3.mjs";
1
+ import { N } from "../../chunks/NcActions-C-wDqSrv.mjs";
2
2
  export {
3
3
  N as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { N } from "../../chunks/NcAppContent--92JdjRr.mjs";
1
+ import { N } from "../../chunks/NcAppContent-DavgjaFX.mjs";
2
2
  export {
3
3
  N as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { N } from "../../chunks/NcAppNavigation-Bb9-C2eO.mjs";
1
+ import { N } from "../../chunks/NcAppNavigation-g57j16pB.mjs";
2
2
  export {
3
3
  N as default
4
4
  };
@@ -71,6 +71,10 @@ declare const _default: import('vue').DefineComponent<{}, {}, {}, {
71
71
  validator(value: unknown): boolean;
72
72
  default: null;
73
73
  };
74
+ wide: {
75
+ type: BooleanConstructor;
76
+ default: boolean;
77
+ };
74
78
  size: {
75
79
  type: StringConstructor;
76
80
  default: string;
@@ -201,6 +205,10 @@ declare const _default: import('vue').DefineComponent<{}, {}, {}, {
201
205
  validator(value: unknown): boolean;
202
206
  default: null;
203
207
  };
208
+ wide: {
209
+ type: BooleanConstructor;
210
+ default: boolean;
211
+ };
204
212
  size: {
205
213
  type: StringConstructor;
206
214
  default: string;
@@ -222,6 +230,7 @@ declare const _default: import('vue').DefineComponent<{}, {}, {}, {
222
230
  primary: boolean;
223
231
  ariaLabel: string;
224
232
  variant: string;
233
+ wide: boolean;
225
234
  inline: number;
226
235
  placement: string;
227
236
  container: string | boolean | Element | Record<string, any>;
@@ -1,4 +1,4 @@
1
- import { N } from "../../chunks/NcAppNavigationCaption-E9iJtiQt.mjs";
1
+ import { N } from "../../chunks/NcAppNavigationCaption-VjSWJ8R4.mjs";
2
2
  export {
3
3
  N as default
4
4
  };
@@ -189,10 +189,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
189
189
  * Handle link click
190
190
  *
191
191
  * @param {PointerEvent} event - Native click event
192
- * @param {Function} [navigate] - VueRouter link's navigate if any
192
+ * @param {(event: PointerEvent) => void} [navigate] - VueRouter link's navigate if any
193
193
  * @param {string} [routerLinkHref] - VueRouter link's href
194
194
  */
195
- onClick(event: PointerEvent, navigate?: Function, routerLinkHref?: string): void;
195
+ onClick(event: PointerEvent, navigate?: (event: PointerEvent) => void, routerLinkHref?: string): void;
196
196
  handleEdit(): void;
197
197
  cancelEditing(): void;
198
198
  handleEditingDone(): void;
@@ -475,6 +475,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
475
475
  validator(value: unknown): boolean;
476
476
  default: null;
477
477
  };
478
+ wide: {
479
+ type: BooleanConstructor;
480
+ default: boolean;
481
+ };
478
482
  size: {
479
483
  type: StringConstructor;
480
484
  default: string;
@@ -605,6 +609,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
605
609
  validator(value: unknown): boolean;
606
610
  default: null;
607
611
  };
612
+ wide: {
613
+ type: BooleanConstructor;
614
+ default: boolean;
615
+ };
608
616
  size: {
609
617
  type: StringConstructor;
610
618
  default: string;
@@ -626,6 +634,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
626
634
  primary: boolean;
627
635
  ariaLabel: string;
628
636
  variant: string;
637
+ wide: boolean;
629
638
  inline: number;
630
639
  placement: string;
631
640
  container: string | boolean | Element | Record<string, any>;
@@ -1,4 +1,4 @@
1
- import { N } from "../../chunks/NcAppNavigationItem-BFAIHyTL.mjs";
1
+ import { N } from "../../chunks/NcAppNavigationItem-CDeYtA3E.mjs";
2
2
  export {
3
3
  N as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { N } from "../../chunks/NcAppNavigationNew-Dspn3-4i.mjs";
1
+ import { N } from "../../chunks/NcAppNavigationNew-CBNppM7Q.mjs";
2
2
  export {
3
3
  N as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { N } from "../../chunks/NcAppNavigationNewItem-Cg8IJ6ZV.mjs";
1
+ import { N } from "../../chunks/NcAppNavigationNewItem-B1RfQkvu.mjs";
2
2
  export {
3
3
  N as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { N } from "../../chunks/NcAppNavigationSearch-CiOKjV3M.mjs";
1
+ import { N } from "../../chunks/NcAppNavigationSearch-CQQWb1Eq.mjs";
2
2
  export {
3
3
  N as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { N } from "../../chunks/NcAppNavigationSettings-fbuQmy-q.mjs";
1
+ import { N } from "../../chunks/NcAppNavigationSettings-DoMjRExO.mjs";
2
2
  export {
3
3
  N as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { N } from "../../chunks/NcAppSettingsDialog-DByPnndK.mjs";
1
+ import { N } from "../../chunks/NcAppSettingsDialog-BPcEYLjP.mjs";
2
2
  export {
3
3
  N as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { N } from "../../chunks/NcAppSettingsShortcutsSection-DgqVuZGx.mjs";
1
+ import { N } from "../../chunks/NcAppSettingsShortcutsSection-DLwubKV9.mjs";
2
2
  export {
3
3
  N as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { N } from "../../chunks/NcAppSettingsShortcutsSection-DgqVuZGx.mjs";
1
+ import { N } from "../../chunks/NcAppSettingsShortcutsSection-DLwubKV9.mjs";
2
2
  export {
3
3
  N as default
4
4
  };
@@ -479,6 +479,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
479
479
  validator(value: unknown): boolean;
480
480
  default: null;
481
481
  };
482
+ wide: {
483
+ type: BooleanConstructor;
484
+ default: boolean;
485
+ };
482
486
  size: {
483
487
  type: StringConstructor;
484
488
  default: string;
@@ -609,6 +613,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
609
613
  validator(value: unknown): boolean;
610
614
  default: null;
611
615
  };
616
+ wide: {
617
+ type: BooleanConstructor;
618
+ default: boolean;
619
+ };
612
620
  size: {
613
621
  type: StringConstructor;
614
622
  default: string;
@@ -630,6 +638,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
630
638
  primary: boolean;
631
639
  ariaLabel: string;
632
640
  variant: string;
641
+ wide: boolean;
633
642
  inline: number;
634
643
  placement: string;
635
644
  container: string | boolean | Element | Record<string, any>;
@@ -1,4 +1,4 @@
1
- import { N } from "../../chunks/NcAppSidebar-Ch7Vp7q5.mjs";
1
+ import { N } from "../../chunks/NcAppSidebar-C8YzAzrZ.mjs";
2
2
  export {
3
3
  N as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { N } from "../../chunks/NcAssistantButton-CTrCv4CO.mjs";
1
+ import { N } from "../../chunks/NcAssistantButton-iK491d2v.mjs";
2
2
  export {
3
3
  N as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { N } from "../../chunks/NcAssistantContent-CeuwcdMY.mjs";
1
+ import { N } from "../../chunks/NcAssistantContent-iHA4O4cC.mjs";
2
2
  export {
3
3
  N as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { N } from "../../chunks/NcAssistantIcon-Dpp9_LUg.mjs";
1
+ import { N } from "../../chunks/NcAssistantIcon-C6s4Qm7-.mjs";
2
2
  export {
3
3
  N as default
4
4
  };
@@ -329,7 +329,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
329
329
  };
330
330
  methods: {
331
331
  fetchUserStatus(userId: string): Promise<void>;
332
- setUserStatus({ status, message, icon }: string): void;
332
+ setUserStatus({ status, message, icon }: Record<string, string>): void;
333
333
  };
334
334
  }, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
335
335
  /**
@@ -534,6 +534,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
534
534
  validator(value: unknown): boolean;
535
535
  default: null;
536
536
  };
537
+ wide: {
538
+ type: BooleanConstructor;
539
+ default: boolean;
540
+ };
537
541
  size: {
538
542
  type: StringConstructor;
539
543
  default: string;
@@ -664,6 +668,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
664
668
  validator(value: unknown): boolean;
665
669
  default: null;
666
670
  };
671
+ wide: {
672
+ type: BooleanConstructor;
673
+ default: boolean;
674
+ };
667
675
  size: {
668
676
  type: StringConstructor;
669
677
  default: string;
@@ -685,6 +693,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
685
693
  primary: boolean;
686
694
  ariaLabel: string;
687
695
  variant: string;
696
+ wide: boolean;
688
697
  inline: number;
689
698
  placement: string;
690
699
  container: string | boolean | Element | Record<string, any>;
@@ -1,4 +1,4 @@
1
- import { N } from "../../chunks/NcAvatar-M3-CbKbq.mjs";
1
+ import { N } from "../../chunks/NcAvatar-1KxMUN7V.mjs";
2
2
  export {
3
3
  N as default
4
4
  };