@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.
- package/CHANGELOG.md +34 -0
- package/README.md +21 -0
- package/dist/assets/{NcActions-DOI7rRa0.css → NcActions-y7ehwPSp.css} +14 -11
- package/dist/assets/{NcAppContent-BC7DBer3.css → NcAppContent-TgcZd4AI.css} +20 -20
- package/dist/assets/{NcAppNavigation-2b1jxOXM.css → NcAppNavigation-OHw55TTZ.css} +13 -13
- package/dist/assets/{NcAppNavigationItem-BsuZoJAq.css → NcAppNavigationItem-BZ1xj6Xi.css} +49 -49
- package/dist/assets/{NcAppNavigationSettings-HQEDobBQ.css → NcAppNavigationSettings-mWFhcXm0.css} +6 -6
- package/dist/assets/{NcAppSettingsDialog-HsZoLuDy.css → NcAppSettingsDialog-Dh_scIK4.css} +31 -31
- package/dist/assets/{NcAppSettingsShortcutsSection-BonG0SgH.css → NcAppSettingsShortcutsSection-BHxkQTg2.css} +1 -1
- package/dist/assets/{NcAppSidebar-dHtSShIl.css → NcAppSidebar-oJQ8kUb0.css} +21 -21
- package/dist/assets/{NcAssistantButton-BmD9GrOw.css → NcAssistantButton-CT25wqIs.css} +9 -9
- package/dist/assets/{NcAssistantContent-7THxd33X.css → NcAssistantContent-FV00e96S.css} +3 -3
- package/dist/assets/{NcAssistantIcon-CsBmzIxJ.css → NcAssistantIcon-BMLpMaMJ.css} +4 -4
- package/dist/assets/{NcBlurHash-tWUPu9Oh.css → NcBlurHash-RgrahjEp.css} +2 -2
- package/dist/assets/{NcBreadcrumbs-5gl8Syfa.css → NcBreadcrumbs-B4eyDS9i.css} +6 -6
- package/dist/assets/{NcButton-Bf9wuDV-.css → NcButton-DOrlC_y5.css} +49 -49
- package/dist/assets/{NcDateTimePicker-HT1ZTE-Z.css → NcDateTimePicker-BQ_y9Ihj.css} +235 -235
- package/dist/assets/{NcFilePicker-CimiKIH1.css → NcFilePicker-BdjtiV3h.css} +1 -1
- package/dist/assets/{NcFormBox-CRdHJkrd.css → NcFormBox-TRgICDO3.css} +11 -11
- package/dist/assets/{NcFormBoxButton-BWfU7d2r.css → NcFormBoxButton-ClkxmO-H.css} +2 -2
- package/dist/assets/{NcFormBoxItem-Bjbi17-B.css → NcFormBoxItem-CABDVZLe.css} +14 -14
- package/dist/assets/{NcFormBoxSwitch-Cn-MBAzZ.css → NcFormBoxSwitch-NCjook_Z.css} +2 -2
- package/dist/assets/{NcFormGroup-qFucmL8a.css → NcFormGroup-eh8-PBGB.css} +7 -7
- package/dist/assets/{NcGuestContent-j8ai4O1K.css → NcGuestContent-CM0uWLr1.css} +3 -3
- package/dist/assets/{NcHotkey-CvuY7fQJ.css → NcHotkey-Dm-26TVC.css} +8 -8
- package/dist/assets/{NcHotkeyList-BfrEkKmK.css → NcHotkeyList-BigfRqyr.css} +2 -2
- package/dist/assets/{NcIconToggleSwitch-V-AKJgPA.css → NcIconToggleSwitch-zUXkaJHv.css} +4 -4
- package/dist/assets/{NcInputConfirmCancel-BEmwC87z.css → NcInputConfirmCancel-DZEDRf0t.css} +8 -8
- package/dist/assets/{NcKbd-BeQpGp0b.css → NcKbd-DcC56WbC.css} +3 -3
- package/dist/assets/{NcListItem-1uR7AJIf.css → NcListItem-BjeejGlB.css} +58 -58
- package/dist/assets/{NcMentionBubble-ptHUq68a.css → NcMentionBubble-BeGb2xGc.css} +9 -9
- package/dist/assets/{NcPopover-P1fheee2.css → NcPopover-CAoHhjKa.css} +14 -14
- package/dist/assets/{NcRadioGroup-BoFb0R8S.css → NcRadioGroup-CtXZ4Y8D.css} +2 -2
- package/dist/assets/{NcRadioGroupButton-DUF_3DDU.css → NcRadioGroupButton-BuB-aWeJ.css} +13 -13
- package/dist/assets/{NcRelatedResourcesPanel-CiG_Ixb6.css → NcRelatedResourcesPanel-BZKjkugM.css} +24 -24
- package/dist/assets/{NcRichContenteditable-DNABzVif.css → NcRichContenteditable-BCUBhRqg.css} +37 -37
- package/dist/assets/{NcRichText-BTu-LT3p.css → NcRichText-D0Bu5bbu.css} +93 -93
- package/dist/assets/{autolink-C_iad4O_.css → autolink-XS-VDSVB.css} +3 -3
- package/dist/assets/{referencePickerModal-Dod7nzta.css → referencePickerModal-BNPfxyni.css} +89 -54
- package/dist/chunks/{NcActionButtonGroup-B9LfyE-G.mjs → NcActionButtonGroup-Dd03Oluy.mjs} +2 -2
- package/dist/chunks/{NcActionButtonGroup-B9LfyE-G.mjs.map → NcActionButtonGroup-Dd03Oluy.mjs.map} +1 -1
- package/dist/chunks/{NcActionInput-BO0lB4VP.mjs → NcActionInput-Dr8Yrafu.mjs} +5 -5
- package/dist/chunks/{NcActionInput-BO0lB4VP.mjs.map → NcActionInput-Dr8Yrafu.mjs.map} +1 -1
- package/dist/chunks/{NcActions-CUmcZ3C3.mjs → NcActions-C-wDqSrv.mjs} +23 -8
- package/dist/chunks/NcActions-C-wDqSrv.mjs.map +1 -0
- package/dist/chunks/{NcAppContent--92JdjRr.mjs → NcAppContent-DavgjaFX.mjs} +5 -5
- package/dist/chunks/{NcAppContent--92JdjRr.mjs.map → NcAppContent-DavgjaFX.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigation-Bb9-C2eO.mjs → NcAppNavigation-g57j16pB.mjs} +8 -7
- package/dist/chunks/NcAppNavigation-g57j16pB.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationCaption-E9iJtiQt.mjs → NcAppNavigationCaption-VjSWJ8R4.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationCaption-E9iJtiQt.mjs.map → NcAppNavigationCaption-VjSWJ8R4.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationItem-BFAIHyTL.mjs → NcAppNavigationItem-CDeYtA3E.mjs} +12 -12
- package/dist/chunks/{NcAppNavigationItem-BFAIHyTL.mjs.map → NcAppNavigationItem-CDeYtA3E.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationNew-Dspn3-4i.mjs → NcAppNavigationNew-CBNppM7Q.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationNew-Dspn3-4i.mjs.map → NcAppNavigationNew-CBNppM7Q.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationNewItem-Cg8IJ6ZV.mjs → NcAppNavigationNewItem-B1RfQkvu.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationNewItem-Cg8IJ6ZV.mjs.map → NcAppNavigationNewItem-B1RfQkvu.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSearch-CiOKjV3M.mjs → NcAppNavigationSearch-CQQWb1Eq.mjs} +3 -3
- package/dist/chunks/{NcAppNavigationSearch-CiOKjV3M.mjs.map → NcAppNavigationSearch-CQQWb1Eq.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSettings-fbuQmy-q.mjs → NcAppNavigationSettings-DoMjRExO.mjs} +10 -10
- package/dist/chunks/{NcAppNavigationSettings-fbuQmy-q.mjs.map → NcAppNavigationSettings-DoMjRExO.mjs.map} +1 -1
- package/dist/chunks/{NcAppSettingsDialog-DByPnndK.mjs → NcAppSettingsDialog-BPcEYLjP.mjs} +8 -8
- package/dist/chunks/NcAppSettingsDialog-BPcEYLjP.mjs.map +1 -0
- package/dist/chunks/{NcAppSettingsShortcutsSection-DgqVuZGx.mjs → NcAppSettingsShortcutsSection-DLwubKV9.mjs} +4 -4
- package/dist/chunks/{NcAppSettingsShortcutsSection-DgqVuZGx.mjs.map → NcAppSettingsShortcutsSection-DLwubKV9.mjs.map} +1 -1
- package/dist/chunks/{NcAppSidebar-Ch7Vp7q5.mjs → NcAppSidebar-C8YzAzrZ.mjs} +12 -12
- package/dist/chunks/{NcAppSidebar-Ch7Vp7q5.mjs.map → NcAppSidebar-C8YzAzrZ.mjs.map} +1 -1
- package/dist/chunks/{NcAssistantButton-CTrCv4CO.mjs → NcAssistantButton-iK491d2v.mjs} +11 -11
- package/dist/chunks/{NcAssistantButton-CTrCv4CO.mjs.map → NcAssistantButton-iK491d2v.mjs.map} +1 -1
- package/dist/chunks/{NcAssistantContent-CeuwcdMY.mjs → NcAssistantContent-iHA4O4cC.mjs} +5 -5
- package/dist/chunks/{NcAssistantContent-CeuwcdMY.mjs.map → NcAssistantContent-iHA4O4cC.mjs.map} +1 -1
- package/dist/chunks/{NcAssistantIcon-Dpp9_LUg.mjs → NcAssistantIcon-C6s4Qm7-.mjs} +6 -6
- package/dist/chunks/{NcAssistantIcon-Dpp9_LUg.mjs.map → NcAssistantIcon-C6s4Qm7-.mjs.map} +1 -1
- package/dist/chunks/{NcAvatar-M3-CbKbq.mjs → NcAvatar-1KxMUN7V.mjs} +11 -10
- package/dist/chunks/NcAvatar-1KxMUN7V.mjs.map +1 -0
- package/dist/chunks/{NcBlurHash-yPfSKY7W.mjs → NcBlurHash-B30Ol8KP.mjs} +4 -4
- package/dist/chunks/{NcBlurHash-yPfSKY7W.mjs.map → NcBlurHash-B30Ol8KP.mjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumb-BeDMWE_b.mjs → NcBreadcrumb-3Y5NWXnV.mjs} +3 -3
- package/dist/chunks/{NcBreadcrumb-BeDMWE_b.mjs.map → NcBreadcrumb-3Y5NWXnV.mjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumbs-CuQDDvin.mjs → NcBreadcrumbs-BaTp3Sya.mjs} +5 -6
- package/dist/chunks/{NcBreadcrumbs-CuQDDvin.mjs.map → NcBreadcrumbs-BaTp3Sya.mjs.map} +1 -1
- package/dist/chunks/{NcButton-QbPBynlU.mjs → NcButton-jvoYS2my.mjs} +3 -3
- package/dist/chunks/{NcButton-QbPBynlU.mjs.map → NcButton-jvoYS2my.mjs.map} +1 -1
- package/dist/chunks/{NcCheckboxRadioSwitch-D8Dfv4iw.mjs → NcCheckboxRadioSwitch-DVdt5Hkq.mjs} +3 -3
- package/dist/chunks/{NcCheckboxRadioSwitch-D8Dfv4iw.mjs.map → NcCheckboxRadioSwitch-DVdt5Hkq.mjs.map} +1 -1
- package/dist/chunks/{NcChip-nVHnbjaY.mjs → NcChip-DKRlV47q.mjs} +3 -3
- package/dist/chunks/{NcChip-nVHnbjaY.mjs.map → NcChip-DKRlV47q.mjs.map} +1 -1
- package/dist/chunks/{NcCollectionList-CO-iHqi6.mjs → NcCollectionList-B9qCtjJw.mjs} +6 -6
- package/dist/chunks/NcCollectionList-B9qCtjJw.mjs.map +1 -0
- package/dist/chunks/{NcColorPicker-D6NbBOX3.mjs → NcColorPicker-BCkasLwT.mjs} +5 -5
- package/dist/chunks/{NcColorPicker-D6NbBOX3.mjs.map → NcColorPicker-BCkasLwT.mjs.map} +1 -1
- package/dist/chunks/{NcContent-BhMoPROW.mjs → NcContent-BYh5hWDN.mjs} +3 -3
- package/dist/chunks/{NcContent-BhMoPROW.mjs.map → NcContent-BYh5hWDN.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidget-ftOfMTzx.mjs → NcDashboardWidget-zmbDEGL-.mjs} +4 -4
- package/dist/chunks/{NcDashboardWidget-ftOfMTzx.mjs.map → NcDashboardWidget-zmbDEGL-.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidgetItem-BwwFiNOL.mjs → NcDashboardWidgetItem-DwDndrm_.mjs} +3 -3
- package/dist/chunks/{NcDashboardWidgetItem-BwwFiNOL.mjs.map → NcDashboardWidgetItem-DwDndrm_.mjs.map} +1 -1
- package/dist/chunks/{NcDateTimePicker-CK4rhfEB.mjs → NcDateTimePicker-qaFC_wUt.mjs} +20 -14
- package/dist/chunks/NcDateTimePicker-qaFC_wUt.mjs.map +1 -0
- package/dist/chunks/{NcDateTimePickerNative-BeM4WOA4.mjs → NcDateTimePickerNative-B8CMOUnH.mjs} +2 -2
- package/dist/chunks/{NcDateTimePickerNative-BeM4WOA4.mjs.map → NcDateTimePickerNative-B8CMOUnH.mjs.map} +1 -1
- package/dist/chunks/{NcDialog-kwzJ3A4X.mjs → NcDialog-D617YI0t.mjs} +3 -3
- package/dist/chunks/{NcDialog-kwzJ3A4X.mjs.map → NcDialog-D617YI0t.mjs.map} +1 -1
- 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
- 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
- package/dist/chunks/{NcEmojiPicker-Bpw-68QP.mjs → NcEmojiPicker-UTxgju3f.mjs} +7 -7
- package/dist/chunks/{NcEmojiPicker-Bpw-68QP.mjs.map → NcEmojiPicker-UTxgju3f.mjs.map} +1 -1
- package/dist/chunks/{NcFilePicker-nPCwHMqj.mjs → NcFilePicker-bD2toutn.mjs} +4 -4
- package/dist/chunks/{NcFilePicker-nPCwHMqj.mjs.map → NcFilePicker-bD2toutn.mjs.map} +1 -1
- package/dist/chunks/{NcFormBox-ClWfuBWz.mjs → NcFormBox-Bmqar8nn.mjs} +7 -7
- package/dist/chunks/{NcFormBox-ClWfuBWz.mjs.map → NcFormBox-Bmqar8nn.mjs.map} +1 -1
- package/dist/chunks/{NcFormBoxButton-i4i3Lt_Q.mjs → NcFormBoxButton-G_PkUiQy.mjs} +5 -5
- package/dist/chunks/{NcFormBoxButton-i4i3Lt_Q.mjs.map → NcFormBoxButton-G_PkUiQy.mjs.map} +1 -1
- 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
- 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
- package/dist/chunks/{NcFormBoxItem-BTB68AEB.mjs → NcFormBoxItem-Cm8aZaVJ.mjs} +10 -10
- package/dist/chunks/{NcFormBoxItem-BTB68AEB.mjs.map → NcFormBoxItem-Cm8aZaVJ.mjs.map} +1 -1
- package/dist/chunks/{NcFormBoxSwitch-DlNcJ1q7.mjs → NcFormBoxSwitch-DSXiQcnq.mjs} +6 -6
- package/dist/chunks/{NcFormBoxSwitch-DlNcJ1q7.mjs.map → NcFormBoxSwitch-DSXiQcnq.mjs.map} +1 -1
- package/dist/chunks/{NcFormGroup-DvLGFMdb.mjs → NcFormGroup-N7qIFAwN.mjs} +9 -9
- package/dist/chunks/{NcFormGroup-DvLGFMdb.mjs.map → NcFormGroup-N7qIFAwN.mjs.map} +1 -1
- package/dist/chunks/{NcGuestContent-_z22nZMF.mjs → NcGuestContent-CvT6VGt1.mjs} +4 -10
- package/dist/chunks/NcGuestContent-CvT6VGt1.mjs.map +1 -0
- package/dist/chunks/{NcHeaderButton-m4oAOSTa.mjs → NcHeaderButton-BnLwYCog.mjs} +2 -2
- package/dist/chunks/{NcHeaderButton-m4oAOSTa.mjs.map → NcHeaderButton-BnLwYCog.mjs.map} +1 -1
- package/dist/chunks/{NcHeaderMenu-DRxcyWNX.mjs → NcHeaderMenu-ktQJV2SW.mjs} +2 -2
- package/dist/chunks/{NcHeaderMenu-DRxcyWNX.mjs.map → NcHeaderMenu-ktQJV2SW.mjs.map} +1 -1
- package/dist/chunks/{NcHotkey-C-TYyC8X.mjs → NcHotkey-BDGeF3eH.mjs} +7 -7
- package/dist/chunks/{NcHotkey-C-TYyC8X.mjs.map → NcHotkey-BDGeF3eH.mjs.map} +1 -1
- package/dist/chunks/{NcHotkeyList-CmMgGhMr.mjs → NcHotkeyList-B4WjTLAp.mjs} +5 -5
- package/dist/chunks/{NcHotkeyList-CmMgGhMr.mjs.map → NcHotkeyList-B4WjTLAp.mjs.map} +1 -1
- package/dist/chunks/{NcIconToggleSwitch-CbfRwb67.mjs → NcIconToggleSwitch-CRvGt4su.mjs} +4 -4
- package/dist/chunks/{NcIconToggleSwitch-CbfRwb67.mjs.map → NcIconToggleSwitch-CRvGt4su.mjs.map} +1 -1
- package/dist/chunks/{NcInputConfirmCancel-B6qC3s63.mjs → NcInputConfirmCancel-CGTllrXj.mjs} +8 -8
- package/dist/chunks/{NcInputConfirmCancel-B6qC3s63.mjs.map → NcInputConfirmCancel-CGTllrXj.mjs.map} +1 -1
- package/dist/chunks/{NcInputField-B1bGxYHt.mjs → NcInputField-5Sg6EUP6.mjs} +2 -2
- package/dist/chunks/{NcInputField-B1bGxYHt.mjs.map → NcInputField-5Sg6EUP6.mjs.map} +1 -1
- package/dist/chunks/{NcKbd-Iyp0KDp4.mjs → NcKbd-Bh_Tk6Ar.mjs} +5 -5
- package/dist/chunks/{NcKbd-Iyp0KDp4.mjs.map → NcKbd-Bh_Tk6Ar.mjs.map} +1 -1
- package/dist/chunks/{NcListItem-Y5a098Cw.mjs → NcListItem-BliLJpvU.mjs} +8 -8
- package/dist/chunks/{NcListItem-Y5a098Cw.mjs.map → NcListItem-BliLJpvU.mjs.map} +1 -1
- package/dist/chunks/{NcListItemIcon-D_f5AGrh.mjs → NcListItemIcon-Dl_tfkk9.mjs} +3 -3
- package/dist/chunks/{NcListItemIcon-D_f5AGrh.mjs.map → NcListItemIcon-Dl_tfkk9.mjs.map} +1 -1
- 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
- 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
- package/dist/chunks/{NcModal-DUWLRm_F.mjs → NcModal-DiDvgcU8.mjs} +4 -4
- package/dist/chunks/{NcModal-DUWLRm_F.mjs.map → NcModal-DiDvgcU8.mjs.map} +1 -1
- package/dist/chunks/{NcPasswordField-Be5_qcfm.mjs → NcPasswordField-BFyzHTOO.mjs} +3 -3
- package/dist/chunks/{NcPasswordField-Be5_qcfm.mjs.map → NcPasswordField-BFyzHTOO.mjs.map} +1 -1
- package/dist/chunks/{NcPopover-CtdLAkEU.mjs → NcPopover-B87bEPLq.mjs} +4 -4
- package/dist/chunks/{NcPopover-CtdLAkEU.mjs.map → NcPopover-B87bEPLq.mjs.map} +1 -1
- package/dist/chunks/{NcRadioGroup-BzW4XHoK.mjs → NcRadioGroup-B4qmS2UD.mjs} +6 -6
- package/dist/chunks/{NcRadioGroup-BzW4XHoK.mjs.map → NcRadioGroup-B4qmS2UD.mjs.map} +1 -1
- package/dist/chunks/{NcRadioGroupButton-CXKQMID9.mjs → NcRadioGroupButton-CZykGwv3.mjs} +8 -8
- package/dist/chunks/{NcRadioGroupButton-CXKQMID9.mjs.map → NcRadioGroupButton-CZykGwv3.mjs.map} +1 -1
- package/dist/chunks/{NcRelatedResourcesPanel-C0j0Fs4r.mjs → NcRelatedResourcesPanel-D_Ttpg5_.mjs} +27 -11
- package/dist/chunks/NcRelatedResourcesPanel-D_Ttpg5_.mjs.map +1 -0
- package/dist/chunks/{NcRichContenteditable-DO3_WniI.mjs → NcRichContenteditable-Qw614bJ5.mjs} +37 -28
- package/dist/chunks/NcRichContenteditable-Qw614bJ5.mjs.map +1 -0
- package/dist/chunks/{NcRichText-BOBQq7Od.mjs → NcRichText-BO_4KtBA.mjs} +39 -10
- package/dist/chunks/NcRichText-BO_4KtBA.mjs.map +1 -0
- package/dist/chunks/{NcSelect-BOFzoCwK.mjs → NcSelect--kERLlBK.mjs} +5 -5
- package/dist/chunks/NcSelect--kERLlBK.mjs.map +1 -0
- package/dist/chunks/{NcSelectTags-D7qWNjXa.mjs → NcSelectTags-I2hJaNax.mjs} +3 -3
- package/dist/chunks/{NcSelectTags-D7qWNjXa.mjs.map → NcSelectTags-I2hJaNax.mjs.map} +1 -1
- package/dist/chunks/{NcSelectUsers-CI8twLn9.mjs → NcSelectUsers-K14Bepkq.mjs} +3 -3
- package/dist/chunks/{NcSelectUsers-CI8twLn9.mjs.map → NcSelectUsers-K14Bepkq.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSection-DmfxX2se.mjs → NcSettingsSection-Caz1fuWt.mjs} +2 -2
- package/dist/chunks/{NcSettingsSection-DmfxX2se.mjs.map → NcSettingsSection-Caz1fuWt.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-TN64yH4k.mjs → NcSettingsSelectGroup-SYJ8-XlR.mjs} +3 -3
- package/dist/chunks/{NcSettingsSelectGroup-TN64yH4k.mjs.map → NcSettingsSelectGroup-SYJ8-XlR.mjs.map} +1 -1
- 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
- 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
- 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
- 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
- package/dist/chunks/{NcUserBubble-CDQa0hGy.mjs → NcUserBubble-BXR7vT0V.mjs} +3 -3
- package/dist/chunks/{NcUserBubble-CDQa0hGy.mjs.map → NcUserBubble-BXR7vT0V.mjs.map} +1 -1
- package/dist/chunks/{NcUserStatusIcon-DsviB2Cr.mjs → NcUserStatusIcon-BF5OEQFU.mjs} +2 -2
- package/dist/chunks/{NcUserStatusIcon-DsviB2Cr.mjs.map → NcUserStatusIcon-BF5OEQFU.mjs.map} +1 -1
- package/dist/chunks/{_l10n-CG4CuN3H.mjs → _l10n-wdIzZwir.mjs} +2 -2
- package/dist/chunks/_l10n-wdIzZwir.mjs.map +1 -0
- package/dist/chunks/{autolink-BT8u-IL-.mjs → autolink-DrIurosL.mjs} +5 -5
- package/dist/chunks/autolink-DrIurosL.mjs.map +1 -0
- package/dist/chunks/{colors-BDeMBgfq.mjs → colors-Cv9F-jWS.mjs} +2 -2
- package/dist/chunks/{colors-BDeMBgfq.mjs.map → colors-Cv9F-jWS.mjs.map} +1 -1
- package/dist/chunks/{customPickerElements-Cu7bLbap.mjs → customPickerElements-BqbDcaEu.mjs} +6 -1
- package/dist/chunks/customPickerElements-BqbDcaEu.mjs.map +1 -0
- package/dist/chunks/{referencePickerModal-B4bsiMOy.mjs → referencePickerModal-CnKdEDwu.mjs} +212 -48
- package/dist/chunks/referencePickerModal-CnKdEDwu.mjs.map +1 -0
- package/dist/chunks/{useCopy-PckLYUAU.mjs → useCopy-6F-qWHq0.mjs} +2 -2
- package/dist/chunks/{useCopy-PckLYUAU.mjs.map → useCopy-6F-qWHq0.mjs.map} +1 -1
- package/dist/components/NcActionButtonGroup/index.mjs +1 -1
- package/dist/components/NcActionInput/NcActionInput.vue.d.ts +4 -4
- package/dist/components/NcActionInput/index.mjs +1 -1
- package/dist/components/NcActions/NcActions.vue.d.ts +15 -0
- package/dist/components/NcActions/index.mjs +1 -1
- package/dist/components/NcAppContent/index.mjs +1 -1
- package/dist/components/NcAppNavigation/index.mjs +1 -1
- package/dist/components/NcAppNavigationCaption/NcAppNavigationCaption.vue.d.ts +9 -0
- package/dist/components/NcAppNavigationCaption/index.mjs +1 -1
- package/dist/components/NcAppNavigationItem/NcAppNavigationItem.vue.d.ts +11 -2
- package/dist/components/NcAppNavigationItem/index.mjs +1 -1
- package/dist/components/NcAppNavigationNew/index.mjs +1 -1
- package/dist/components/NcAppNavigationNewItem/index.mjs +1 -1
- package/dist/components/NcAppNavigationSearch/index.mjs +1 -1
- package/dist/components/NcAppNavigationSettings/index.mjs +1 -1
- package/dist/components/NcAppSettingsDialog/index.mjs +1 -1
- package/dist/components/NcAppSettingsSectionShortcuts/index.mjs +1 -1
- package/dist/components/NcAppSettingsShortcutsSection/index.mjs +1 -1
- package/dist/components/NcAppSidebar/NcAppSidebar.vue.d.ts +9 -0
- package/dist/components/NcAppSidebar/index.mjs +1 -1
- package/dist/components/NcAssistantButton/index.mjs +1 -1
- package/dist/components/NcAssistantContent/index.mjs +1 -1
- package/dist/components/NcAssistantIcon/index.mjs +1 -1
- package/dist/components/NcAvatar/NcAvatar.vue.d.ts +10 -1
- package/dist/components/NcAvatar/index.mjs +1 -1
- package/dist/components/NcBlurHash/index.mjs +1 -1
- package/dist/components/NcBreadcrumb/NcBreadcrumb.vue.d.ts +9 -0
- package/dist/components/NcBreadcrumb/index.mjs +1 -1
- package/dist/components/NcBreadcrumbs/NcBreadcrumbs.vue.d.ts +18 -0
- package/dist/components/NcBreadcrumbs/index.mjs +1 -1
- package/dist/components/NcButton/index.mjs +1 -1
- package/dist/components/NcCheckboxRadioSwitch/index.mjs +1 -1
- package/dist/components/NcChip/index.mjs +1 -1
- package/dist/components/NcCollectionList/NcCollectionList.vue.d.ts +34 -3
- package/dist/components/NcCollectionList/NcCollectionListItem.vue.d.ts +19 -1
- package/dist/components/NcCollectionList/index.mjs +1 -1
- package/dist/components/NcCollectionList/useCollections.d.ts +5 -1
- package/dist/components/NcColorPicker/index.mjs +1 -1
- package/dist/components/NcContent/index.mjs +1 -1
- package/dist/components/NcDashboardWidget/NcDashboardWidget.vue.d.ts +29 -2
- package/dist/components/NcDashboardWidget/index.mjs +1 -1
- package/dist/components/NcDashboardWidgetItem/NcDashboardWidgetItem.vue.d.ts +19 -1
- package/dist/components/NcDashboardWidgetItem/index.mjs +1 -1
- package/dist/components/NcDateTimePicker/NcDateTimePicker.vue.d.ts +7 -5
- package/dist/components/NcDateTimePicker/index.mjs +1 -1
- package/dist/components/NcDateTimePickerNative/index.mjs +1 -1
- package/dist/components/NcDialog/NcDialog.vue.d.ts +1 -1
- package/dist/components/NcDialog/index.mjs +1 -1
- package/dist/components/NcDialogButton/index.mjs +1 -1
- package/dist/components/NcEmojiPicker/index.mjs +1 -1
- package/dist/components/NcFilePicker/index.mjs +1 -1
- package/dist/components/NcFormBox/index.mjs +1 -1
- package/dist/components/NcFormBoxButton/index.mjs +1 -1
- package/dist/components/NcFormBoxCopyButton/index.mjs +1 -1
- package/dist/components/NcFormBoxSwitch/index.mjs +1 -1
- package/dist/components/NcFormGroup/index.mjs +1 -1
- package/dist/components/NcGuestContent/index.mjs +1 -1
- package/dist/components/NcHeaderButton/index.mjs +1 -1
- package/dist/components/NcHeaderMenu/index.mjs +1 -1
- package/dist/components/NcHotkey/index.mjs +1 -1
- package/dist/components/NcHotkeyList/index.mjs +1 -1
- package/dist/components/NcInputField/index.mjs +1 -1
- package/dist/components/NcKbd/index.mjs +1 -1
- package/dist/components/NcListItem/NcListItem.vue.d.ts +11 -2
- package/dist/components/NcListItem/index.mjs +1 -1
- package/dist/components/NcListItemIcon/NcListItemIcon.vue.d.ts +11 -2
- package/dist/components/NcListItemIcon/index.mjs +1 -1
- package/dist/components/NcModal/index.mjs +1 -1
- package/dist/components/NcPasswordField/index.mjs +1 -1
- package/dist/components/NcPopover/index.mjs +1 -1
- package/dist/components/NcRadioGroup/index.mjs +1 -1
- package/dist/components/NcRadioGroupButton/index.mjs +1 -1
- package/dist/components/NcRelatedResourcesPanel/NcRelatedResourcesPanel.vue.d.ts +8 -2
- package/dist/components/NcRelatedResourcesPanel/NcResource.vue.d.ts +18 -0
- package/dist/components/NcRelatedResourcesPanel/NcTeamResources.vue.d.ts +12 -0
- package/dist/components/NcRelatedResourcesPanel/index.mjs +1 -1
- package/dist/components/NcRichContenteditable/NcAutoCompleteResult.vue.d.ts +12 -0
- package/dist/components/NcRichContenteditable/NcMentionBubble.vue.d.ts +6 -0
- package/dist/components/NcRichContenteditable/NcRichContenteditable.vue.d.ts +1 -1
- package/dist/components/NcRichContenteditable/index.mjs +1 -1
- package/dist/components/NcRichText/NcReferenceList.vue.d.ts +37 -0
- package/dist/components/NcRichText/NcReferencePicker/NcCustomPickerElement.vue.d.ts +3 -1
- package/dist/components/NcRichText/NcReferencePicker/NcProviderList.vue.d.ts +2 -1
- package/dist/components/NcRichText/NcReferencePicker/NcRawLinkInput.vue.d.ts +3 -1
- package/dist/components/NcRichText/NcReferencePicker/NcReferencePicker.vue.d.ts +13 -5
- package/dist/components/NcRichText/NcReferencePicker/NcReferencePickerModal.vue.d.ts +16 -6
- package/dist/components/NcRichText/NcReferencePicker/NcSearch.vue.d.ts +8 -1
- package/dist/components/NcRichText/NcReferenceWidget.vue.d.ts +1 -0
- package/dist/components/NcRichText/NcRichText.vue.d.ts +25 -0
- package/dist/components/NcRichText/autolink.d.ts +7 -5
- package/dist/components/NcRichText/index.d.ts +2 -2
- package/dist/components/NcRichText/index.mjs +10 -9
- package/dist/components/NcSelect/index.mjs +1 -1
- package/dist/components/NcSelectTags/index.mjs +1 -1
- package/dist/components/NcSelectUsers/index.mjs +1 -1
- package/dist/components/NcSettingsSection/index.mjs +1 -1
- package/dist/components/NcSettingsSelectGroup/index.mjs +1 -1
- package/dist/components/NcTextField/index.mjs +1 -1
- package/dist/components/NcTimezonePicker/index.mjs +1 -1
- package/dist/components/NcUserBubble/index.mjs +1 -1
- package/dist/components/NcUserStatusIcon/index.mjs +1 -1
- package/dist/composables/useFormatDateTime/index.mjs +1 -1
- package/dist/functions/reference/index.d.ts +7 -4
- package/dist/functions/reference/index.mjs +4 -3
- package/dist/functions/reference/referencePickerModal.d.ts +16 -1
- package/dist/functions/reference/widgets.d.ts +11 -1
- package/dist/functions/registerReference/index.mjs +1 -1
- package/dist/functions/usernameToColor/index.mjs +1 -1
- package/dist/index.mjs +74 -72
- package/dist/index.mjs.map +1 -1
- package/dist/mixins/userStatus.d.ts +5 -4
- package/package.json +21 -21
- package/dist/chunks/NcActions-CUmcZ3C3.mjs.map +0 -1
- package/dist/chunks/NcAppNavigation-Bb9-C2eO.mjs.map +0 -1
- package/dist/chunks/NcAppSettingsDialog-DByPnndK.mjs.map +0 -1
- package/dist/chunks/NcAvatar-M3-CbKbq.mjs.map +0 -1
- package/dist/chunks/NcCollectionList-CO-iHqi6.mjs.map +0 -1
- package/dist/chunks/NcDateTimePicker-CK4rhfEB.mjs.map +0 -1
- package/dist/chunks/NcGuestContent-_z22nZMF.mjs.map +0 -1
- package/dist/chunks/NcRelatedResourcesPanel-C0j0Fs4r.mjs.map +0 -1
- package/dist/chunks/NcRichContenteditable-DO3_WniI.mjs.map +0 -1
- package/dist/chunks/NcRichText-BOBQq7Od.mjs.map +0 -1
- package/dist/chunks/NcSelect-BOFzoCwK.mjs.map +0 -1
- package/dist/chunks/_l10n-CG4CuN3H.mjs.map +0 -1
- package/dist/chunks/autolink-BT8u-IL-.mjs.map +0 -1
- package/dist/chunks/customPickerElements-Cu7bLbap.mjs.map +0 -1
- 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-
|
|
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-
|
|
39
|
+
//# sourceMappingURL=useCopy-6F-qWHq0.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCopy-
|
|
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;"}
|
|
@@ -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" |
|
|
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" |
|
|
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;
|
|
@@ -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>;
|
|
@@ -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>;
|
|
@@ -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 {
|
|
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?:
|
|
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>;
|
|
@@ -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>;
|
|
@@ -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>;
|