@nextcloud/vue 9.3.3 → 9.5.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 +31 -0
- package/dist/assets/{NcActionInput-BxRA_Skn.css → NcActionInput-BO4gR6sg.css} +65 -65
- package/dist/assets/{NcAppContent-HF21N7dO.css → NcAppContent-BqcaybfQ.css} +19 -19
- package/dist/assets/{NcAppNavigationItem-D97Onpd9.css → NcAppNavigationItem-qicc4X_c.css} +36 -36
- package/dist/assets/{NcAppNavigationSearch-BH8hBjGe.css → NcAppNavigationSearch-Bpd_RlYz.css} +5 -5
- package/dist/assets/{NcAppNavigationSettings-Bt0dnsjR.css → NcAppNavigationSettings-BmfpoWXN.css} +6 -6
- package/dist/assets/{NcAppSettingsDialog-CapZ_qNk.css → NcAppSettingsDialog-Ckc0OWTs.css} +13 -13
- package/dist/assets/{NcAppSettingsShortcutsSection-CRO4RakN.css → NcAppSettingsShortcutsSection-BonG0SgH.css} +1 -1
- package/dist/assets/{NcAppSidebar-krHtMwId.css → NcAppSidebar-Ci7hXMpX.css} +57 -57
- package/dist/assets/{NcAssistantButton-owGSr0s0.css → NcAssistantButton-BmD9GrOw.css} +9 -9
- package/dist/assets/{NcAssistantContent-Ban7n3Bg.css → NcAssistantContent-7THxd33X.css} +3 -3
- package/dist/assets/{NcAssistantIcon--1biUGYh.css → NcAssistantIcon-CxXrcBfu.css} +4 -4
- package/dist/assets/{NcAvatar-f8SJKMDw.css → NcAvatar-CuPj3fbb.css} +24 -24
- package/dist/assets/{NcBlurHash-7aGtE-_T.css → NcBlurHash-tWUPu9Oh.css} +2 -2
- package/dist/assets/{NcBreadcrumb-CHjeSh0y.css → NcBreadcrumb-D9N_qB_o.css} +15 -15
- package/dist/assets/{NcBreadcrumbs-DYfGaSjT.css → NcBreadcrumbs-5gl8Syfa.css} +6 -6
- package/dist/assets/{NcButton--Fj4gghF.css → NcButton-Ch8zyY_U.css} +48 -49
- package/dist/assets/{NcCheckboxRadioSwitch-DpYt0YbL.css → NcCheckboxRadioSwitch-BBLFj8M-.css} +36 -36
- package/dist/assets/{NcChip-DZ8dUSFy.css → NcChip-DbSI4mFP.css} +12 -12
- package/dist/assets/{NcCollectionList-C7OiUQQ-.css → NcCollectionList-e5JFvzqX.css} +42 -42
- package/dist/assets/{NcColorPicker-CO_Jq2Ow.css → NcColorPicker-CCanY5eB.css} +31 -31
- package/dist/assets/{NcDashboardWidget-DFY9GRrd.css → NcDashboardWidget-nZuIL1UN.css} +12 -12
- package/dist/assets/{NcDashboardWidgetItem-DPVZ3Oso.css → NcDashboardWidgetItem-DpVmEBwQ.css} +12 -12
- package/dist/assets/{NcDateTimePicker-D6xbEbaC.css → NcDateTimePicker-HT1ZTE-Z.css} +234 -234
- package/dist/assets/{NcDialog-D3fAX1Fs.css → NcDialog-BSV74Bru.css} +15 -15
- package/dist/assets/{NcEmojiPicker-B7xDz_8U.css → NcEmojiPicker-vNKR9S87.css} +122 -122
- package/dist/assets/{NcFormBox-D-kcijXp.css → NcFormBox-CRdHJkrd.css} +11 -11
- package/dist/assets/{NcFormBoxButton-C6EvdLK4.css → NcFormBoxButton-BWfU7d2r.css} +2 -2
- package/dist/assets/{NcFormBoxItem-BfXKp9xJ.css → NcFormBoxItem-CATNOTQx.css} +13 -13
- package/dist/assets/{NcFormBoxSwitch-DScgbxtv.css → NcFormBoxSwitch-Cn-MBAzZ.css} +2 -2
- package/dist/assets/{NcFormGroup-BrD0Scm7.css → NcFormGroup-BjWhd5Ky.css} +7 -7
- package/dist/assets/{NcHotkey-4yi1Hobg.css → NcHotkey-CvuY7fQJ.css} +8 -8
- package/dist/assets/{NcHotkeyList-gAZN0WIu.css → NcHotkeyList-Braxeyah.css} +2 -2
- package/dist/assets/{NcIconToggleSwitch-C29S_5Rp.css → NcIconToggleSwitch-saytabt5.css} +4 -4
- package/dist/assets/{NcInputField-B9DSDOEd.css → NcInputField-B0lNBgr9.css} +44 -43
- package/dist/assets/{NcKbd-BGW1_Jb7.css → NcKbd-BeQpGp0b.css} +3 -3
- package/dist/assets/{NcListItem-CZnKmy9X.css → NcListItem-Cat18cSx.css} +41 -41
- package/dist/assets/{NcListItemIcon-aquns6B7.css → NcListItemIcon-DJRcmlo1.css} +13 -13
- package/dist/assets/{NcModal-Du-f0B7Y.css → NcModal-bYmoCrzo.css} +58 -58
- package/dist/assets/{NcPasswordField-BCJ0LHSS.css → NcPasswordField-ftYon3Xm.css} +2 -2
- package/dist/assets/{NcPopover-CZ3pMU6Y.css → NcPopover-P1fheee2.css} +14 -14
- package/dist/assets/{NcProgressBar-BAPOXMAL.css → NcProgressBar-D1DYRrCN.css} +23 -12
- package/dist/assets/{NcRadioGroup-1zpSX8V5.css → NcRadioGroup-BoFb0R8S.css} +2 -2
- package/dist/assets/{NcRadioGroupButton-DRZ1_-yY.css → NcRadioGroupButton-xGU7fVa3.css} +19 -11
- package/dist/assets/{NcRelatedResourcesPanel-DYB-wrU0.css → NcRelatedResourcesPanel-D1efpH8E.css} +3 -3
- package/dist/assets/{NcRichContenteditable-BuaWt3Xn.css → NcRichContenteditable-C4KtXEvK.css} +17 -17
- package/dist/assets/{NcRichText-RvICaxkO.css → NcRichText-3BHy89Ls.css} +2 -2
- package/dist/assets/{NcSelect-ZnE_MlqV.css → NcSelect-CvDEQAjD.css} +1 -1
- package/dist/assets/NcSelectUsers-YF5729PJ.css +4 -0
- package/dist/assets/{NcSettingsSelectGroup-BxvEAWNm.css → NcSettingsSelectGroup-D_fSrafm.css} +2 -2
- package/dist/assets/{NcTextArea-nivEqHE-.css → NcTextArea-_-yGXq-j.css} +1 -1
- package/dist/assets/{NcUserBubble-B3Jad98g.css → NcUserBubble-DFUmBxeb.css} +8 -8
- package/dist/assets/{referencePickerModal-DWMAMaU3.css → referencePickerModal-CpzDUJ5f.css} +36 -36
- package/dist/chunks/{NcActionButtonGroup-B2MGnwK_.mjs → NcActionButtonGroup-C7ej9wLo.mjs} +2 -2
- package/dist/chunks/{NcActionButtonGroup-B2MGnwK_.mjs.map → NcActionButtonGroup-C7ej9wLo.mjs.map} +1 -1
- package/dist/chunks/{NcActionInput-BemRG66_.mjs → NcActionInput-1xeJpD6P.mjs} +32 -32
- package/dist/chunks/NcActionInput-1xeJpD6P.mjs.map +1 -0
- package/dist/chunks/{NcActions-4R7icatI.mjs → NcActions-BWDsG06k.mjs} +4 -4
- package/dist/chunks/{NcActions-4R7icatI.mjs.map → NcActions-BWDsG06k.mjs.map} +1 -1
- package/dist/chunks/{NcAppContent-BTNf1r8Z.mjs → NcAppContent-njY3MCzi.mjs} +16 -14
- package/dist/chunks/NcAppContent-njY3MCzi.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigation-DQB0KqoZ.mjs → NcAppNavigation-Bpdpz-wF.mjs} +3 -3
- package/dist/chunks/{NcAppNavigation-DQB0KqoZ.mjs.map → NcAppNavigation-Bpdpz-wF.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationCaption-DiLoiMN5.mjs → NcAppNavigationCaption-CyEhlxoS.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationCaption-DiLoiMN5.mjs.map → NcAppNavigationCaption-CyEhlxoS.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationItem-OrqBniiI.mjs → NcAppNavigationItem-Ny1Po7Rd.mjs} +11 -11
- package/dist/chunks/NcAppNavigationItem-Ny1Po7Rd.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationNew-WS0F9mau.mjs → NcAppNavigationNew-CJpxzq_I.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationNew-WS0F9mau.mjs.map → NcAppNavigationNew-CJpxzq_I.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationNewItem-DYH3Gimz.mjs → NcAppNavigationNewItem-hsUDrzT-.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationNewItem-DYH3Gimz.mjs.map → NcAppNavigationNewItem-hsUDrzT-.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSearch-ByuV3q2c.mjs → NcAppNavigationSearch-C5RAT6JQ.mjs} +9 -9
- package/dist/chunks/NcAppNavigationSearch-C5RAT6JQ.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationSettings-A0DXzd5B.mjs → NcAppNavigationSettings-BPLJktWz.mjs} +15 -15
- package/dist/chunks/NcAppNavigationSettings-BPLJktWz.mjs.map +1 -0
- package/dist/chunks/{NcAppSettingsDialog-BaN30xl4.mjs → NcAppSettingsDialog-DddRGyYJ.mjs} +15 -15
- package/dist/chunks/NcAppSettingsDialog-DddRGyYJ.mjs.map +1 -0
- package/dist/chunks/{NcAppSettingsShortcutsSection-DDmDMMsF.mjs → NcAppSettingsShortcutsSection-D07KOJfT.mjs} +4 -4
- package/dist/chunks/{NcAppSettingsShortcutsSection-DDmDMMsF.mjs.map → NcAppSettingsShortcutsSection-D07KOJfT.mjs.map} +1 -1
- package/dist/chunks/{NcAppSidebar-as8lzUZp.mjs → NcAppSidebar-BAnJD3ea.mjs} +16 -16
- package/dist/chunks/NcAppSidebar-BAnJD3ea.mjs.map +1 -0
- package/dist/chunks/{NcAssistantButton-CioiSWRg.mjs → NcAssistantButton-CkFCuTft.mjs} +11 -11
- package/dist/chunks/{NcAssistantButton-CioiSWRg.mjs.map → NcAssistantButton-CkFCuTft.mjs.map} +1 -1
- package/dist/chunks/{NcAssistantContent-Boi-0v_0.mjs → NcAssistantContent-BR3lWBWC.mjs} +5 -5
- package/dist/chunks/{NcAssistantContent-Boi-0v_0.mjs.map → NcAssistantContent-BR3lWBWC.mjs.map} +1 -1
- package/dist/chunks/{NcAssistantIcon-8pL-4h5f.mjs → NcAssistantIcon-DsJh5rb7.mjs} +6 -6
- package/dist/chunks/{NcAssistantIcon-8pL-4h5f.mjs.map → NcAssistantIcon-DsJh5rb7.mjs.map} +1 -1
- package/dist/chunks/{NcAvatar-CK_dTsmT.mjs → NcAvatar-C9d7Wrc8.mjs} +9 -9
- package/dist/chunks/NcAvatar-C9d7Wrc8.mjs.map +1 -0
- package/dist/chunks/{NcBlurHash-BiFktE2N.mjs → NcBlurHash-Cp7enp4q.mjs} +9 -9
- package/dist/chunks/{NcBlurHash-BiFktE2N.mjs.map → NcBlurHash-Cp7enp4q.mjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumb-ChYVw5CP.mjs → NcBreadcrumb-BRt3l6x6.mjs} +9 -9
- package/dist/chunks/NcBreadcrumb-BRt3l6x6.mjs.map +1 -0
- package/dist/chunks/{NcBreadcrumbs-CbJmdlaF.mjs → NcBreadcrumbs-CIsUSeJx.mjs} +5 -5
- package/dist/chunks/{NcBreadcrumbs-CbJmdlaF.mjs.map → NcBreadcrumbs-CIsUSeJx.mjs.map} +1 -1
- package/dist/chunks/{NcButton-CzpKEx4V.mjs → NcButton-C9D47Igd.mjs} +3 -3
- package/dist/chunks/{NcButton-CzpKEx4V.mjs.map → NcButton-C9D47Igd.mjs.map} +1 -1
- package/dist/chunks/{NcCheckboxRadioSwitch-DisCqPZK.mjs → NcCheckboxRadioSwitch-BMsPx74L.mjs} +15 -15
- package/dist/chunks/NcCheckboxRadioSwitch-BMsPx74L.mjs.map +1 -0
- package/dist/chunks/{NcChip-B8jcrLqG.mjs → NcChip-B71t2Ny2.mjs} +8 -8
- package/dist/chunks/NcChip-B71t2Ny2.mjs.map +1 -0
- package/dist/chunks/{NcCollectionList-TB1GbWbo.mjs → NcCollectionList-BLDdPjtu.mjs} +14 -14
- package/dist/chunks/NcCollectionList-BLDdPjtu.mjs.map +1 -0
- package/dist/chunks/{NcColorPicker-3wpX7pKD.mjs → NcColorPicker-DDHxR-iN.mjs} +12 -12
- package/dist/chunks/NcColorPicker-DDHxR-iN.mjs.map +1 -0
- package/dist/chunks/{NcContent-BrRHLO19.mjs → NcContent-O-bMKi-3.mjs} +3 -3
- package/dist/chunks/{NcContent-BrRHLO19.mjs.map → NcContent-O-bMKi-3.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidget-1tax78_e.mjs → NcDashboardWidget-DCBQdRFz.mjs} +7 -7
- package/dist/chunks/NcDashboardWidget-DCBQdRFz.mjs.map +1 -0
- package/dist/chunks/{NcDashboardWidgetItem-BjsN8uF0.mjs → NcDashboardWidgetItem-ygUG05Ut.mjs} +11 -11
- package/dist/chunks/NcDashboardWidgetItem-ygUG05Ut.mjs.map +1 -0
- package/dist/chunks/{NcDateTimePicker-DCuHXZjc.mjs → NcDateTimePicker-RLihgV8b.mjs} +69 -25
- package/dist/chunks/NcDateTimePicker-RLihgV8b.mjs.map +1 -0
- package/dist/chunks/{NcDateTimePickerNative-Dr8_mGlQ.mjs → NcDateTimePickerNative-C_4mwR_o.mjs} +2 -2
- package/dist/chunks/{NcDateTimePickerNative-Dr8_mGlQ.mjs.map → NcDateTimePickerNative-C_4mwR_o.mjs.map} +1 -1
- package/dist/chunks/{NcDialog-BHl_LOs_.mjs → NcDialog-BG9t4Psg.mjs} +6 -7
- package/dist/chunks/{NcDialog-BHl_LOs_.mjs.map → NcDialog-BG9t4Psg.mjs.map} +1 -1
- package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-CYpktNKA.mjs → NcDialogButton.vue_vue_type_script_setup_true_lang-DABuSwSR.mjs} +3 -3
- package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-CYpktNKA.mjs.map → NcDialogButton.vue_vue_type_script_setup_true_lang-DABuSwSR.mjs.map} +1 -1
- package/dist/chunks/{NcEmojiPicker-CReazifM.mjs → NcEmojiPicker-Djc9a0gw.mjs} +25 -25
- package/dist/chunks/NcEmojiPicker-Djc9a0gw.mjs.map +1 -0
- package/dist/chunks/{NcFormBox-CkgY7Tif.mjs → NcFormBox-BYjllt0m.mjs} +7 -7
- package/dist/chunks/NcFormBox-BYjllt0m.mjs.map +1 -0
- package/dist/chunks/{NcFormBoxButton-DvMw5yUf.mjs → NcFormBoxButton-RDIKiZIH.mjs} +8 -8
- package/dist/chunks/NcFormBoxButton-RDIKiZIH.mjs.map +1 -0
- package/dist/chunks/{NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-DYtyXBqR.mjs → NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-CIPhWmeP.mjs} +4 -4
- package/dist/chunks/NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-CIPhWmeP.mjs.map +1 -0
- package/dist/chunks/{NcFormBoxItem-vnU0KmUL.mjs → NcFormBoxItem-BAAPOa6z.mjs} +10 -10
- package/dist/chunks/NcFormBoxItem-BAAPOa6z.mjs.map +1 -0
- package/dist/chunks/{NcFormBoxSwitch-DGcRJH9Q.mjs → NcFormBoxSwitch-m9uRjJzl.mjs} +6 -6
- package/dist/chunks/{NcFormBoxSwitch-DGcRJH9Q.mjs.map → NcFormBoxSwitch-m9uRjJzl.mjs.map} +1 -1
- package/dist/chunks/{NcFormGroup-CnSfPFey.mjs → NcFormGroup-Bf8Mme1o.mjs} +9 -9
- package/dist/chunks/{NcFormGroup-CnSfPFey.mjs.map → NcFormGroup-Bf8Mme1o.mjs.map} +1 -1
- package/dist/chunks/{NcHeaderButton-CIb5SvFk.mjs → NcHeaderButton-DZ7Sd9pu.mjs} +2 -2
- package/dist/chunks/{NcHeaderButton-CIb5SvFk.mjs.map → NcHeaderButton-DZ7Sd9pu.mjs.map} +1 -1
- package/dist/chunks/{NcHeaderMenu-CeJZT5-m.mjs → NcHeaderMenu-D9WjsIsy.mjs} +2 -2
- package/dist/chunks/{NcHeaderMenu-CeJZT5-m.mjs.map → NcHeaderMenu-D9WjsIsy.mjs.map} +1 -1
- package/dist/chunks/{NcHotkey-BMbdzaIs.mjs → NcHotkey-Bd-gNn3a.mjs} +7 -7
- package/dist/chunks/{NcHotkey-BMbdzaIs.mjs.map → NcHotkey-Bd-gNn3a.mjs.map} +1 -1
- package/dist/chunks/{NcHotkeyList-67NnF26Y.mjs → NcHotkeyList-D8hkh6o6.mjs} +5 -5
- package/dist/chunks/{NcHotkeyList-67NnF26Y.mjs.map → NcHotkeyList-D8hkh6o6.mjs.map} +1 -1
- package/dist/chunks/{NcIconToggleSwitch-DNEYngCw.mjs → NcIconToggleSwitch-CSrdR61T.mjs} +4 -4
- package/dist/chunks/{NcIconToggleSwitch-DNEYngCw.mjs.map → NcIconToggleSwitch-CSrdR61T.mjs.map} +1 -1
- package/dist/chunks/{NcInputConfirmCancel-DjMO3Xyv.mjs → NcInputConfirmCancel-ClnOVtrc.mjs} +3 -3
- package/dist/chunks/{NcInputConfirmCancel-DjMO3Xyv.mjs.map → NcInputConfirmCancel-ClnOVtrc.mjs.map} +1 -1
- package/dist/chunks/{NcInputField-Clm9jOGJ.mjs → NcInputField-o5OFv3z6.mjs} +4 -4
- package/dist/chunks/{NcInputField-Clm9jOGJ.mjs.map → NcInputField-o5OFv3z6.mjs.map} +1 -1
- package/dist/chunks/{NcKbd-CZdynD1d.mjs → NcKbd-DzE_4Z3y.mjs} +5 -5
- package/dist/chunks/{NcKbd-CZdynD1d.mjs.map → NcKbd-DzE_4Z3y.mjs.map} +1 -1
- package/dist/chunks/{NcListItem-Bx93C7tP.mjs → NcListItem-DSdLnQJX.mjs} +12 -10
- package/dist/chunks/NcListItem-DSdLnQJX.mjs.map +1 -0
- package/dist/chunks/{NcListItemIcon-DVy6eGJx.mjs → NcListItemIcon-C_yQkDIv.mjs} +9 -9
- package/dist/chunks/NcListItemIcon-C_yQkDIv.mjs.map +1 -0
- package/dist/chunks/{NcModal-D00OJZV2.mjs → NcModal-DHryP_87.mjs} +7 -7
- package/dist/chunks/NcModal-DHryP_87.mjs.map +1 -0
- package/dist/chunks/{NcPasswordField-BOZlUwhr.mjs → NcPasswordField-uaMO2pdt.mjs} +9 -9
- package/dist/chunks/{NcPasswordField-BOZlUwhr.mjs.map → NcPasswordField-uaMO2pdt.mjs.map} +1 -1
- package/dist/chunks/{NcPopover-C-MTaPCs.mjs → NcPopover-OqcYrWOx.mjs} +17 -17
- package/dist/chunks/NcPopover-OqcYrWOx.mjs.map +1 -0
- package/dist/chunks/{NcProgressBar-DDMAo4h-.mjs → NcProgressBar-OIWW1Sei.mjs} +25 -14
- package/dist/chunks/NcProgressBar-OIWW1Sei.mjs.map +1 -0
- package/dist/chunks/{NcRadioGroup-HorQ2m39.mjs → NcRadioGroup-Bjl3n_1z.mjs} +8 -8
- package/dist/chunks/NcRadioGroup-Bjl3n_1z.mjs.map +1 -0
- package/dist/chunks/{NcRadioGroupButton-CAisx7g4.mjs → NcRadioGroupButton-BWPOKDMR.mjs} +18 -10
- package/dist/chunks/NcRadioGroupButton-BWPOKDMR.mjs.map +1 -0
- package/dist/chunks/{NcRelatedResourcesPanel-Dtxd3-o1.mjs → NcRelatedResourcesPanel-BndhQA8u.mjs} +8 -8
- package/dist/chunks/NcRelatedResourcesPanel-BndhQA8u.mjs.map +1 -0
- package/dist/chunks/{NcRichContenteditable-B-w64JsT.mjs → NcRichContenteditable-CjuPClU1.mjs} +22 -22
- package/dist/chunks/{NcRichContenteditable-B-w64JsT.mjs.map → NcRichContenteditable-CjuPClU1.mjs.map} +1 -1
- package/dist/chunks/{NcRichText-1U5RXjPL.mjs → NcRichText-DJlaHs_Q.mjs} +9 -9
- package/dist/chunks/NcRichText-DJlaHs_Q.mjs.map +1 -0
- package/dist/chunks/{NcSelect-Cc9_a8nG.mjs → NcSelect-DLheQ2yp.mjs} +6 -6
- package/dist/chunks/NcSelect-DLheQ2yp.mjs.map +1 -0
- package/dist/chunks/{NcSelectTags-JyyA4W_e.mjs → NcSelectTags-CTHyuMcq.mjs} +6 -6
- package/dist/chunks/NcSelectTags-CTHyuMcq.mjs.map +1 -0
- package/dist/chunks/{NcSelectUsers-DlUM6S6l.mjs → NcSelectUsers-BlMjKkJ3.mjs} +9 -9
- package/dist/chunks/NcSelectUsers-BlMjKkJ3.mjs.map +1 -0
- package/dist/chunks/{NcSettingsSection-BcLE6UnZ.mjs → NcSettingsSection-BiX5No3C.mjs} +2 -2
- package/dist/chunks/{NcSettingsSection-BcLE6UnZ.mjs.map → NcSettingsSection-BiX5No3C.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-CUU-GWYl.mjs → NcSettingsSelectGroup-B69Mhcar.mjs} +10 -10
- package/dist/chunks/NcSettingsSelectGroup-B69Mhcar.mjs.map +1 -0
- package/dist/chunks/{NcTextArea-PIs9Kt0A.mjs → NcTextArea-CWA3KOiC.mjs} +2 -2
- package/dist/chunks/{NcTextArea-PIs9Kt0A.mjs.map → NcTextArea-CWA3KOiC.mjs.map} +1 -1
- package/dist/chunks/{NcTextField.vue_vue_type_script_setup_true_lang-CCsZqnkM.mjs → NcTextField.vue_vue_type_script_setup_true_lang-BxkYy7wv.mjs} +3 -3
- package/dist/chunks/{NcTextField.vue_vue_type_script_setup_true_lang-CCsZqnkM.mjs.map → NcTextField.vue_vue_type_script_setup_true_lang-BxkYy7wv.mjs.map} +1 -1
- package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-BffYEppS.mjs → NcTimezonePicker.vue_vue_type_script_setup_true_lang-B7nhSDot.mjs} +4 -4
- package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-BffYEppS.mjs.map → NcTimezonePicker.vue_vue_type_script_setup_true_lang-B7nhSDot.mjs.map} +1 -1
- package/dist/chunks/{NcUserBubble-Cs84CNHz.mjs → NcUserBubble-vOAXLHB5.mjs} +11 -11
- package/dist/chunks/{NcUserBubble-Cs84CNHz.mjs.map → NcUserBubble-vOAXLHB5.mjs.map} +1 -1
- package/dist/chunks/{NcUserStatusIcon-BgElapLh.mjs → NcUserStatusIcon-XiwrgeCm.mjs} +2 -2
- package/dist/chunks/{NcUserStatusIcon-BgElapLh.mjs.map → NcUserStatusIcon-XiwrgeCm.mjs.map} +1 -1
- package/dist/chunks/_l10n-Dq_eYxz_.mjs +145 -0
- package/dist/chunks/_l10n-Dq_eYxz_.mjs.map +1 -0
- package/dist/chunks/{appName-DtnLUijR.mjs → appName-DyNMVZpX.mjs} +12 -7
- package/dist/chunks/appName-DyNMVZpX.mjs.map +1 -0
- package/dist/chunks/{colors-CL_wvNtd.mjs → colors-BHGKZFDI.mjs} +11 -31
- package/dist/chunks/colors-BHGKZFDI.mjs.map +1 -0
- package/dist/chunks/{referencePickerModal-CXAtbcPd.mjs → referencePickerModal-D9HwChP3.mjs} +29 -29
- package/dist/chunks/referencePickerModal-D9HwChP3.mjs.map +1 -0
- package/dist/chunks/{useCopy-D4CcMqlA.mjs → useCopy-CfYsbB0V.mjs} +2 -2
- package/dist/chunks/{useCopy-D4CcMqlA.mjs.map → useCopy-CfYsbB0V.mjs.map} +1 -1
- package/dist/components/NcActionButtonGroup/index.mjs +1 -1
- package/dist/components/NcActionInput/NcActionInput.vue.d.ts +11 -0
- package/dist/components/NcActionInput/index.mjs +1 -1
- package/dist/components/NcActions/index.mjs +1 -1
- package/dist/components/NcAppContent/NcAppContent.vue.d.ts +2 -0
- package/dist/components/NcAppContent/index.mjs +1 -1
- package/dist/components/NcAppNavigation/index.mjs +1 -1
- package/dist/components/NcAppNavigationCaption/index.mjs +1 -1
- 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/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/index.mjs +1 -1
- package/dist/components/NcBlurHash/index.mjs +1 -1
- package/dist/components/NcBreadcrumb/index.mjs +1 -1
- 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/index.mjs +1 -1
- package/dist/components/NcColorPicker/index.mjs +1 -1
- package/dist/components/NcContent/index.mjs +1 -1
- package/dist/components/NcDashboardWidget/index.mjs +1 -1
- package/dist/components/NcDashboardWidgetItem/index.mjs +1 -1
- package/dist/components/NcDateTimePicker/NcDateTimePicker.vue.d.ts +19 -0
- package/dist/components/NcDateTimePicker/index.mjs +1 -1
- package/dist/components/NcDateTimePickerNative/index.mjs +1 -1
- package/dist/components/NcDialog/index.mjs +1 -1
- package/dist/components/NcDialogButton/index.mjs +1 -1
- package/dist/components/NcEmojiPicker/NcEmojiPicker.vue.d.ts +1 -2
- package/dist/components/NcEmojiPicker/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/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 +2 -1
- package/dist/components/NcListItem/index.mjs +1 -1
- 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/NcProgressBar/NcProgressBar.vue.d.ts +9 -0
- package/dist/components/NcProgressBar/index.mjs +1 -1
- package/dist/components/NcRadioGroup/index.mjs +1 -1
- package/dist/components/NcRadioGroupButton/NcRadioGroupButton.vue.d.ts +4 -0
- package/dist/components/NcRadioGroupButton/index.mjs +1 -1
- package/dist/components/NcRelatedResourcesPanel/index.mjs +1 -1
- package/dist/components/NcRichContenteditable/index.mjs +1 -1
- package/dist/components/NcRichText/index.mjs +3 -3
- package/dist/components/NcSelect/index.mjs +1 -1
- package/dist/components/NcSelectTags/index.mjs +1 -1
- package/dist/components/NcSelectUsers/NcSelectUsers.vue.d.ts +5 -5
- package/dist/components/NcSelectUsers/index.d.ts +1 -0
- 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/NcTextArea/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.mjs +1 -1
- package/dist/functions/usernameToColor/index.mjs +1 -1
- package/dist/index.mjs +67 -67
- package/dist/utils/appName.d.ts +6 -2
- package/package.json +24 -24
- package/dist/assets/NcSelectUsers-BWhtNRbI.css +0 -4
- package/dist/chunks/NcActionInput-BemRG66_.mjs.map +0 -1
- package/dist/chunks/NcAppContent-BTNf1r8Z.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationItem-OrqBniiI.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationSearch-ByuV3q2c.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationSettings-A0DXzd5B.mjs.map +0 -1
- package/dist/chunks/NcAppSettingsDialog-BaN30xl4.mjs.map +0 -1
- package/dist/chunks/NcAppSidebar-as8lzUZp.mjs.map +0 -1
- package/dist/chunks/NcAvatar-CK_dTsmT.mjs.map +0 -1
- package/dist/chunks/NcBreadcrumb-ChYVw5CP.mjs.map +0 -1
- package/dist/chunks/NcCheckboxRadioSwitch-DisCqPZK.mjs.map +0 -1
- package/dist/chunks/NcChip-B8jcrLqG.mjs.map +0 -1
- package/dist/chunks/NcCollectionList-TB1GbWbo.mjs.map +0 -1
- package/dist/chunks/NcColorPicker-3wpX7pKD.mjs.map +0 -1
- package/dist/chunks/NcDashboardWidget-1tax78_e.mjs.map +0 -1
- package/dist/chunks/NcDashboardWidgetItem-BjsN8uF0.mjs.map +0 -1
- package/dist/chunks/NcDateTimePicker-DCuHXZjc.mjs.map +0 -1
- package/dist/chunks/NcEmojiPicker-CReazifM.mjs.map +0 -1
- package/dist/chunks/NcFormBox-CkgY7Tif.mjs.map +0 -1
- package/dist/chunks/NcFormBoxButton-DvMw5yUf.mjs.map +0 -1
- package/dist/chunks/NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-DYtyXBqR.mjs.map +0 -1
- package/dist/chunks/NcFormBoxItem-vnU0KmUL.mjs.map +0 -1
- package/dist/chunks/NcListItem-Bx93C7tP.mjs.map +0 -1
- package/dist/chunks/NcListItemIcon-DVy6eGJx.mjs.map +0 -1
- package/dist/chunks/NcModal-D00OJZV2.mjs.map +0 -1
- package/dist/chunks/NcPopover-C-MTaPCs.mjs.map +0 -1
- package/dist/chunks/NcProgressBar-DDMAo4h-.mjs.map +0 -1
- package/dist/chunks/NcRadioGroup-HorQ2m39.mjs.map +0 -1
- package/dist/chunks/NcRadioGroupButton-CAisx7g4.mjs.map +0 -1
- package/dist/chunks/NcRelatedResourcesPanel-Dtxd3-o1.mjs.map +0 -1
- package/dist/chunks/NcRichText-1U5RXjPL.mjs.map +0 -1
- package/dist/chunks/NcSelect-Cc9_a8nG.mjs.map +0 -1
- package/dist/chunks/NcSelectTags-JyyA4W_e.mjs.map +0 -1
- package/dist/chunks/NcSelectUsers-DlUM6S6l.mjs.map +0 -1
- package/dist/chunks/NcSettingsSelectGroup-CUU-GWYl.mjs.map +0 -1
- package/dist/chunks/_l10n-CgsPi8nC.mjs +0 -145
- package/dist/chunks/_l10n-CgsPi8nC.mjs.map +0 -1
- package/dist/chunks/appName-DtnLUijR.mjs.map +0 -1
- package/dist/chunks/colors-CL_wvNtd.mjs.map +0 -1
- package/dist/chunks/referencePickerModal-CXAtbcPd.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_l10n-Dq_eYxz_.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { loadState } from "@nextcloud/initial-state";
|
|
2
|
+
import { inject } from "vue";
|
|
2
3
|
import { l as logger } from "./logger-D3RVzcfQ.mjs";
|
|
3
4
|
/*!
|
|
4
5
|
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
|
|
@@ -29,13 +30,17 @@ try {
|
|
|
29
30
|
logger.error("The `@nextcloud/vue` library was used without setting / replacing the `appVersion`.");
|
|
30
31
|
}
|
|
31
32
|
const APP_VERSION = realAppVersion;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
function useAppName() {
|
|
34
|
+
return inject("appName", APP_NAME);
|
|
35
|
+
}
|
|
36
|
+
const useLocalizedAppName = once(() => {
|
|
37
|
+
const apps = loadState("core", "apps", []);
|
|
38
|
+
const realAppName2 = useAppName();
|
|
39
|
+
return apps.find(({ id }) => id === realAppName2)?.name ?? realAppName2;
|
|
35
40
|
});
|
|
36
41
|
export {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
42
|
+
APP_VERSION as A,
|
|
43
|
+
useAppName as a,
|
|
44
|
+
useLocalizedAppName as u
|
|
40
45
|
};
|
|
41
|
-
//# sourceMappingURL=appName-
|
|
46
|
+
//# sourceMappingURL=appName-DyNMVZpX.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appName-DyNMVZpX.mjs","sources":["../../src/utils/utils.ts","../../src/utils/appName.ts"],"sourcesContent":["/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Single tone function decorator\n *\n * @param func - Function\n */\nexport function once<T extends unknown[], K>(func: (...args: T) => K): ((...args: T) => K) {\n\tlet wasCalled = false\n\tlet result: K\n\n\treturn (...args: T): K => {\n\t\tif (!wasCalled) {\n\t\t\twasCalled = true\n\t\t\tresult = func(...args)\n\t\t}\n\t\treturn result\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { loadState } from '@nextcloud/initial-state'\nimport { inject } from 'vue'\nimport { logger } from './logger.ts'\nimport { once } from './utils.ts'\n\nlet realAppName = 'missing-app-name'\ntry {\n\trealAppName = appName\n} catch {\n\tlogger.error('The `@nextcloud/vue` library was used without setting / replacing the `appName`.')\n}\nexport const APP_NAME = realAppName\n\nlet realAppVersion = ''\ntry {\n\trealAppVersion = appVersion\n} catch {\n\tlogger.error('The `@nextcloud/vue` library was used without setting / replacing the `appVersion`.')\n}\nexport const APP_VERSION = realAppVersion\n\n/**\n * Get the app name (the Nextcloud app id).\n */\nexport function useAppName(): string {\n\treturn inject<string>('appName', APP_NAME)\n}\n\n/**\n * Get the localized app name.\n */\nexport const useLocalizedAppName = once(() => {\n\tconst apps = loadState<{ id: string, name: string }[]>('core', 'apps', [])\n\tconst realAppName = useAppName()\n\n\treturn apps.find(({ id }) => id === realAppName)?.name ?? realAppName\n})\n"],"names":["realAppName"],"mappings":";;;AAAA;AAAA;AAAA;AAAA;AAUO,SAAS,KAA6B,MAA8C;AAC1F,MAAI,YAAY;AAChB,MAAI;AAEJ,SAAO,IAAI,SAAe;AACzB,QAAI,CAAC,WAAW;AACf,kBAAY;AACZ,eAAS,KAAK,GAAG,IAAI;AAAA,IACtB;AACA,WAAO;AAAA,EACR;AACD;ACXA,IAAI,cAAc;AAClB,IAAI;AACH,gBAAc;AACf,QAAQ;AACP,SAAO,MAAM,kFAAkF;AAChG;AACO,MAAM,WAAW;AAExB,IAAI,iBAAiB;AACrB,IAAI;AACH,mBAAiB;AAClB,QAAQ;AACP,SAAO,MAAM,qFAAqF;AACnG;AACO,MAAM,cAAc;AAKpB,SAAS,aAAqB;AACpC,SAAO,OAAe,WAAW,QAAQ;AAC1C;AAKO,MAAM,sBAAsB,KAAK,MAAM;AAC7C,QAAM,OAAO,UAA0C,QAAQ,QAAQ,CAAA,CAAE;AACzE,QAAMA,eAAc,WAAA;AAEpB,SAAO,KAAK,KAAK,CAAC,EAAE,SAAS,OAAOA,YAAW,GAAG,QAAQA;AAC3D,CAAC;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as register, t as t3, a as t } from "./_l10n-
|
|
1
|
+
import { r as register, t as t3, a as t } from "./_l10n-Dq_eYxz_.mjs";
|
|
2
2
|
register(t3);
|
|
3
3
|
class Color {
|
|
4
4
|
/**
|
|
@@ -50,74 +50,54 @@ const COLOR_BLUE = new Color(0, 130, 201, t("Nextcloud blue"));
|
|
|
50
50
|
const COLOR_BLACK = new Color(0, 0, 0, t("Black"));
|
|
51
51
|
const COLOR_WHITE = new Color(255, 255, 255, t("White"));
|
|
52
52
|
const defaultPalette = [
|
|
53
|
-
/* eslint-disable @stylistic/function-call-argument-newline -- Allow to put translators comments */
|
|
54
53
|
COLOR_RED,
|
|
55
54
|
new Color(
|
|
56
|
-
191,
|
|
57
|
-
103,
|
|
58
|
-
139,
|
|
55
|
+
...[191, 103, 139],
|
|
59
56
|
t("Rosy brown")
|
|
60
57
|
// TRANSLATORS: A color name for RGB(191, 103, 139)
|
|
61
58
|
),
|
|
62
59
|
new Color(
|
|
63
|
-
201,
|
|
64
|
-
136,
|
|
65
|
-
121,
|
|
60
|
+
...[201, 136, 121],
|
|
66
61
|
t("Feldspar")
|
|
67
62
|
// TRANSLATORS: A color name for RGB(201, 136, 121)
|
|
68
63
|
),
|
|
69
64
|
new Color(
|
|
70
|
-
211,
|
|
71
|
-
169,
|
|
72
|
-
103,
|
|
65
|
+
...[211, 169, 103],
|
|
73
66
|
t("Whiskey")
|
|
74
67
|
// TRANSLATORS: A color name for RGB(211, 169, 103)
|
|
75
68
|
),
|
|
76
69
|
COLOR_YELLOW,
|
|
77
70
|
new Color(
|
|
78
|
-
165,
|
|
79
|
-
184,
|
|
80
|
-
114,
|
|
71
|
+
...[165, 184, 114],
|
|
81
72
|
t("Olivine")
|
|
82
73
|
// TRANSLATORS: A color name for RGB(165, 184, 114)
|
|
83
74
|
),
|
|
84
75
|
new Color(
|
|
85
|
-
110,
|
|
86
|
-
166,
|
|
87
|
-
143,
|
|
76
|
+
...[110, 166, 143],
|
|
88
77
|
t("Acapulco")
|
|
89
78
|
// TRANSLATORS: A color name for RGB(110, 166, 143)
|
|
90
79
|
),
|
|
91
80
|
new Color(
|
|
92
|
-
55,
|
|
93
|
-
148,
|
|
94
|
-
172,
|
|
81
|
+
...[55, 148, 172],
|
|
95
82
|
t("Boston Blue")
|
|
96
83
|
// TRANSLATORS: A color name for RGB(55, 148, 172)
|
|
97
84
|
),
|
|
98
85
|
COLOR_BLUE,
|
|
99
86
|
new Color(
|
|
100
|
-
45,
|
|
101
|
-
115,
|
|
102
|
-
190,
|
|
87
|
+
...[45, 115, 190],
|
|
103
88
|
t("Mariner")
|
|
104
89
|
// TRANSLATORS: A color name for RGB(45, 115, 190)
|
|
105
90
|
),
|
|
106
91
|
new Color(
|
|
107
|
-
91,
|
|
108
|
-
100,
|
|
109
|
-
179,
|
|
92
|
+
...[91, 100, 179],
|
|
110
93
|
t("Blue Violet")
|
|
111
94
|
// TRANSLATORS: A color name for RGB(91, 100, 179)
|
|
112
95
|
),
|
|
113
96
|
new Color(
|
|
114
|
-
136,
|
|
115
|
-
85,
|
|
116
|
-
168,
|
|
97
|
+
...[136, 85, 168],
|
|
117
98
|
t("Deluge")
|
|
118
99
|
// TRANSLATORS: A color name for RGB(136, 85, 168)
|
|
119
100
|
)
|
|
120
|
-
/* eslint-enable @stylistic/function-call-argument-newline */
|
|
121
101
|
];
|
|
122
102
|
function generatePalette(steps) {
|
|
123
103
|
const palette1 = mixPalette(steps, COLOR_RED, COLOR_YELLOW);
|
|
@@ -132,4 +112,4 @@ export {
|
|
|
132
112
|
defaultPalette as d,
|
|
133
113
|
generatePalette as g
|
|
134
114
|
};
|
|
135
|
-
//# sourceMappingURL=colors-
|
|
115
|
+
//# sourceMappingURL=colors-BHGKZFDI.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colors-BHGKZFDI.mjs","sources":["../../src/utils/colors.ts"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '../l10n.ts'\n\nexport class Color {\n\t/**\n\t * @param r - The red value\n\t * @param g - The green value\n\t * @param b - The blue value\n\t * @param name - The name of the color\n\t */\n\tconstructor(\n\t\tpublic readonly r: number,\n\t\tpublic readonly g: number,\n\t\tpublic readonly b: number,\n\t\tpublic readonly name?: string,\n\t) {\n\t\tthis.r = Math.min(r, 255)\n\t\tthis.g = Math.min(g, 255)\n\t\tthis.b = Math.min(b, 255)\n\t\tthis.name = name\n\t}\n\n\t/**\n\t * The hexadecimal color string.\n\t */\n\tget color(): string {\n\t\tconst toHex = (int: number) => `00${int.toString(16)}`.slice(-2)\n\t\treturn `#${toHex(this.r)}${toHex(this.g)}${toHex(this.b)}`\n\t}\n}\n\n/**\n * Calculate the increment needed to blend color1 into color2 within specified number of steps.\n *\n * @param steps - The number of steps\n * @param color1 - The color to start with\n * @param color2 - The color to end at\n * @return The increment needed per color channel\n */\nfunction calculateStepIncrement(steps: number, color1: Color, color2: Color): { r: number, g: number, b: number } {\n\treturn {\n\t\tr: (color2.r - color1.r) / steps,\n\t\tg: (color2.g - color1.g) / steps,\n\t\tb: (color2.b - color1.b) / steps,\n\t}\n}\n\n/**\n * Create a color palette from two colors\n *\n * @param steps - The number of steps the palette should have\n * @param color1 - The first color to mix\n * @param color2 - The second color to mix\n * @return The created palette array (mixed `color1` and `color2` with `steps` steps)\n */\nfunction mixPalette(steps: number, color1: Color, color2: Color): Color[] {\n\tconst palette: Color[] = []\n\tpalette.push(color1)\n\tconst increment = calculateStepIncrement(steps, color1, color2)\n\tfor (let i = 1; i < steps; i++) {\n\t\tconst r = Math.floor(color1.r + increment.r * i)\n\t\tconst g = Math.floor(color1.g + increment.g * i)\n\t\tconst b = Math.floor(color1.b + increment.b * i)\n\t\tpalette.push(new Color(r, g, b))\n\t}\n\treturn palette\n}\n\n// This are our default base colors we use for mixing palettes\nconst COLOR_RED = new Color(182, 70, 157, t('Purple'))\nconst COLOR_YELLOW = new Color(221, 203, 85, t('Gold'))\nconst COLOR_BLUE = new Color(0, 130, 201, t('Nextcloud blue'))\n// Special \"none\"-colors\nexport const COLOR_BLACK = new Color(0, 0, 0, t('Black'))\nexport const COLOR_WHITE = new Color(255, 255, 255, t('White'))\n\n/**\n * Like GenColor(4) but with labels\n */\nexport const defaultPalette = [\n\tCOLOR_RED,\n\tnew Color(\n\t\t...[191, 103, 139],\n\t\tt('Rosy brown'), // TRANSLATORS: A color name for RGB(191, 103, 139)\n\t),\n\tnew Color(\n\t\t...[201, 136, 121],\n\t\tt('Feldspar'), // TRANSLATORS: A color name for RGB(201, 136, 121)\n\t),\n\tnew Color(\n\t\t...[211, 169, 103],\n\t\tt('Whiskey'), // TRANSLATORS: A color name for RGB(211, 169, 103)\n\t),\n\tCOLOR_YELLOW,\n\tnew Color(\n\t\t...[165, 184, 114],\n\t\tt('Olivine'), // TRANSLATORS: A color name for RGB(165, 184, 114)\n\t),\n\tnew Color(\n\t\t...[110, 166, 143],\n\t\tt('Acapulco'), // TRANSLATORS: A color name for RGB(110, 166, 143)\n\t),\n\tnew Color(\n\t\t...[55, 148, 172],\n\t\tt('Boston Blue'), // TRANSLATORS: A color name for RGB(55, 148, 172)\n\t),\n\tCOLOR_BLUE,\n\tnew Color(\n\t\t...[45, 115, 190],\n\t\tt('Mariner'), // TRANSLATORS: A color name for RGB(45, 115, 190)\n\t),\n\tnew Color(\n\t\t...[91, 100, 179],\n\t\tt('Blue Violet'), // TRANSLATORS: A color name for RGB(91, 100, 179)\n\t),\n\tnew Color(\n\t\t...[136, 85, 168],\n\t\tt('Deluge'), // TRANSLATORS: A color name for RGB(136, 85, 168)\n\t),\n]\n\n/**\n * Generate colors from the official nextcloud color\n * You can provide how many colors you want (multiplied by 3).\n *\n * For example if steps is set to 6, then 3 colors * 6 will result in 18 generated colors.\n *\n * @param steps - Number of steps to go from a color to another\n */\nexport function generatePalette(steps: number): Color[] {\n\tif (steps <= 0) {\n\t\tsteps = 6\n\t}\n\n\tif (steps === 4) {\n\t\treturn [...defaultPalette]\n\t}\n\n\tconst palette1 = mixPalette(steps, COLOR_RED, COLOR_YELLOW)\n\tconst palette2 = mixPalette(steps, COLOR_YELLOW, COLOR_BLUE)\n\tconst palette3 = mixPalette(steps, COLOR_BLUE, COLOR_RED)\n\n\treturn palette1.concat(palette2).concat(palette3)\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import '../assets/referencePickerModal-
|
|
1
|
+
import '../assets/referencePickerModal-CpzDUJ5f.css';
|
|
2
2
|
import { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, resolveComponent, createVNode, withCtx, defineComponent, inject, ref, useTemplateRef, nextTick, computed, watch, onBeforeUnmount, normalizeClass, createBlock, resolveDynamicComponent, normalizeStyle, createTextVNode, unref, withKeys, withModifiers, createApp } from "vue";
|
|
3
3
|
import { emit } from "@nextcloud/event-bus";
|
|
4
4
|
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
@@ -7,20 +7,20 @@ import { f as renderCustomPickerElement, b as destroyCustomPickerElement, c as i
|
|
|
7
7
|
import axios from "@nextcloud/axios";
|
|
8
8
|
import { loadState } from "@nextcloud/initial-state";
|
|
9
9
|
import { imagePath, generateOcsUrl } from "@nextcloud/router";
|
|
10
|
-
import { r as register, W as t8, a as t, X as t45, Y as t40, Z as t24, _ as t25, q as t42, $ as t32, A as t19, a0 as t12 } from "./_l10n-
|
|
10
|
+
import { r as register, W as t8, a as t, X as t45, Y as t40, Z as t24, _ as t25, q as t42, $ as t32, A as t19, a0 as t12 } from "./_l10n-Dq_eYxz_.mjs";
|
|
11
11
|
import { l as logger } from "./logger-D3RVzcfQ.mjs";
|
|
12
12
|
import { N as NcEmptyContent } from "./NcEmptyContent-B8-90BSI.mjs";
|
|
13
13
|
import { _ as _sfc_main$a } from "./NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs";
|
|
14
|
-
import { N as NcSelect } from "./NcSelect-
|
|
14
|
+
import { N as NcSelect } from "./NcSelect-DLheQ2yp.mjs";
|
|
15
15
|
import debounce from "debounce";
|
|
16
16
|
import { useElementSize, useIntersectionObserver } from "@vueuse/core";
|
|
17
17
|
import { routerKey, RouterLink } from "vue-router";
|
|
18
|
-
import { N as NcButton } from "./NcButton-
|
|
18
|
+
import { N as NcButton } from "./NcButton-C9D47Igd.mjs";
|
|
19
19
|
import { g as getRoute } from "./autolink-U5pBzLgI.mjs";
|
|
20
20
|
import { N as NcLoadingIcon } from "./NcLoadingIcon-b_ajZ_nQ.mjs";
|
|
21
|
-
import { _ as _sfc_main$b } from "./NcTextField.vue_vue_type_script_setup_true_lang-
|
|
22
|
-
import { I as IconDotsHorizontal } from "./NcActions-
|
|
23
|
-
import { N as NcModal } from "./NcModal-
|
|
21
|
+
import { _ as _sfc_main$b } from "./NcTextField.vue_vue_type_script_setup_true_lang-BxkYy7wv.mjs";
|
|
22
|
+
import { I as IconDotsHorizontal } from "./NcActions-BWDsG06k.mjs";
|
|
23
|
+
import { N as NcModal } from "./NcModal-DHryP_87.mjs";
|
|
24
24
|
const _sfc_main$9 = {
|
|
25
25
|
name: "ArrowLeftIcon",
|
|
26
26
|
emits: ["click"],
|
|
@@ -315,13 +315,13 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
315
315
|
$options.onProviderSelected
|
|
316
316
|
],
|
|
317
317
|
class: "provider-list--select",
|
|
318
|
-
|
|
318
|
+
inputId: "provider-select-input",
|
|
319
319
|
label: "title",
|
|
320
320
|
placeholder: $data.multiselectPlaceholder,
|
|
321
321
|
options: $options.options,
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
322
|
+
appendToBody: false,
|
|
323
|
+
clearSearchOnSelect: true,
|
|
324
|
+
clearSearchOnBlur: () => false,
|
|
325
325
|
filterable: false,
|
|
326
326
|
onSearch: $options.onSearch
|
|
327
327
|
}, {
|
|
@@ -355,7 +355,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
355
355
|
})
|
|
356
356
|
]);
|
|
357
357
|
}
|
|
358
|
-
const NcProviderList = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$5], ["__scopeId", "data-v-
|
|
358
|
+
const NcProviderList = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$5], ["__scopeId", "data-v-ea81d3af"]]);
|
|
359
359
|
register(t24);
|
|
360
360
|
const _hoisted_1$5 = ["src"];
|
|
361
361
|
const _hoisted_2$4 = { class: "widget-default--details" };
|
|
@@ -628,7 +628,7 @@ function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
628
628
|
_cache[0] || (_cache[0] = ($event) => $data.inputValue = $event),
|
|
629
629
|
$options.onInput
|
|
630
630
|
],
|
|
631
|
-
|
|
631
|
+
showTrailingButton: $data.inputValue !== "",
|
|
632
632
|
label: $data.inputPlaceholder,
|
|
633
633
|
onTrailingButtonClick: $options.onClear,
|
|
634
634
|
onKeyup: withKeys($options.onSubmit, ["enter"])
|
|
@@ -643,7 +643,7 @@ function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
643
643
|
}))
|
|
644
644
|
]),
|
|
645
645
|
_: 1
|
|
646
|
-
}, 8, ["modelValue", "
|
|
646
|
+
}, 8, ["modelValue", "showTrailingButton", "label", "onTrailingButtonClick", "onUpdate:modelValue", "onKeyup"])
|
|
647
647
|
]),
|
|
648
648
|
$data.reference !== null ? (openBlock(), createBlock(_component_NcReferenceWidget, {
|
|
649
649
|
key: 0,
|
|
@@ -664,7 +664,7 @@ function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
664
664
|
}))
|
|
665
665
|
]);
|
|
666
666
|
}
|
|
667
|
-
const NcRawLinkInput = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$4], ["__scopeId", "data-v-
|
|
667
|
+
const NcRawLinkInput = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$4], ["__scopeId", "data-v-918730b9"]]);
|
|
668
668
|
const _sfc_main$3 = {
|
|
669
669
|
name: "NcSearchResult",
|
|
670
670
|
components: {
|
|
@@ -954,18 +954,18 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
954
954
|
$options.onSelectResultSelected
|
|
955
955
|
],
|
|
956
956
|
class: "smart-picker-search--select",
|
|
957
|
-
|
|
957
|
+
inputId: "search-select-input",
|
|
958
958
|
label: "name",
|
|
959
959
|
placeholder: $options.mySearchPlaceholder,
|
|
960
960
|
options: $options.options,
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
961
|
+
appendToBody: false,
|
|
962
|
+
closeOnSelect: false,
|
|
963
|
+
clearSearchOnSelect: false,
|
|
964
|
+
clearSearchOnBlur: () => false,
|
|
965
|
+
resetFocusOnOptionsChange: false,
|
|
966
966
|
filterable: false,
|
|
967
967
|
autoscroll: true,
|
|
968
|
-
|
|
968
|
+
resetOnOptionsChange: false,
|
|
969
969
|
loading: $data.searching,
|
|
970
970
|
onSearch: $options.onSearchInput
|
|
971
971
|
}, {
|
|
@@ -1020,7 +1020,7 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
1020
1020
|
})) : createCommentVNode("", true)
|
|
1021
1021
|
], 2);
|
|
1022
1022
|
}
|
|
1023
|
-
const NcSearch = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2], ["__scopeId", "data-v-
|
|
1023
|
+
const NcSearch = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2], ["__scopeId", "data-v-af9d145f"]]);
|
|
1024
1024
|
const MODES = {
|
|
1025
1025
|
providerList: 1,
|
|
1026
1026
|
standardLinkInput: 2,
|
|
@@ -1185,7 +1185,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
1185
1185
|
])) : createCommentVNode("", true)
|
|
1186
1186
|
], 36);
|
|
1187
1187
|
}
|
|
1188
|
-
const NcReferencePicker = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-
|
|
1188
|
+
const NcReferencePicker = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-5e2e9195"]]);
|
|
1189
1189
|
register(t12, t19);
|
|
1190
1190
|
const _sfc_main = {
|
|
1191
1191
|
name: "NcReferencePickerModal",
|
|
@@ -1322,18 +1322,18 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
1322
1322
|
$options.showModalName ? (openBlock(), createElementBlock("h2", _hoisted_2, toDisplayString($options.modalName), 1)) : createCommentVNode("", true),
|
|
1323
1323
|
createVNode(_component_NcReferencePicker, {
|
|
1324
1324
|
ref: "referencePicker",
|
|
1325
|
-
|
|
1326
|
-
|
|
1325
|
+
initialProvider: $props.initialProvider,
|
|
1326
|
+
focusOnCreate: $props.focusOnCreate,
|
|
1327
1327
|
onProviderSelected: $options.onProviderSelect,
|
|
1328
1328
|
onSubmit: $options.onSubmit,
|
|
1329
1329
|
onCancel: $options.onCancel
|
|
1330
|
-
}, null, 8, ["
|
|
1330
|
+
}, null, 8, ["initialProvider", "focusOnCreate", "onProviderSelected", "onSubmit", "onCancel"])
|
|
1331
1331
|
], 512)
|
|
1332
1332
|
]),
|
|
1333
1333
|
_: 1
|
|
1334
1334
|
}, 8, ["size", "onClose"])) : createCommentVNode("", true);
|
|
1335
1335
|
}
|
|
1336
|
-
const NcReferencePickerModal = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-
|
|
1336
|
+
const NcReferencePickerModal = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-bf0a25ee"]]);
|
|
1337
1337
|
async function getLinkWithPicker(providerId, isInsideViewer) {
|
|
1338
1338
|
const modalId = "referencePickerModal";
|
|
1339
1339
|
const modalElement = document.createElement("div");
|
|
@@ -1368,4 +1368,4 @@ export {
|
|
|
1368
1368
|
NcSearch as h,
|
|
1369
1369
|
searchProvider as s
|
|
1370
1370
|
};
|
|
1371
|
-
//# sourceMappingURL=referencePickerModal-
|
|
1371
|
+
//# sourceMappingURL=referencePickerModal-D9HwChP3.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"referencePickerModal-D9HwChP3.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],\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('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('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\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],\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} 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 { 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 { destroyWidget, hasFullWidth, hasInteractiveView, 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\n\nconst router = inject(routerKey, null)\n\nconst isVisible = ref(false)\nconst customWidget = useTemplateRef('customWidget')\nconst widgetRoot = useTemplateRef('widgetRoot')\nconst { width } = useElementSize(widgetRoot)\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\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 hasCustomWidget = computed(() => {\n\treturn isWidgetRegistered(props.reference.richObjectType)\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\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 (!customWidget.value) {\n\t\treturn\n\t}\n\n\tif (props.reference.richObjectType === 'open-graph') {\n\t\treturn\n\t}\n\n\tcustomWidget.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\tcustomWidget.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</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\tref=\"customWidget\"\n\t\t\tclass=\"widget-custom\"\n\t\t\t:class=\"{ 'full-width': referenceHasFullWidth }\" />\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\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\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: 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],\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}\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\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],\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} 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@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@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@cancel=\"cancelSearch\"\n\t\t\t@submit=\"submitLink\" />\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@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],\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\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@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],\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\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 result\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"],"names":["_sfc_main","_hoisted_3","_createElementBlock","_mergeProps","_createElementVNode","_openBlock","_hoisted_1","NcHighlight","_createVNode","_withCtx","_hoisted_2","_toDisplayString","_normalizeClass","reference","_createBlock","_resolveDynamicComponent","_hoisted_4","interactiveOptIn","_unref","NcTextField","_hoisted_5","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-Dq_eYxz_.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-CfYsbB0V.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCopy-
|
|
1
|
+
{"version":3,"file":"useCopy-CfYsbB0V.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;"}
|
|
@@ -729,13 +729,17 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
729
729
|
confirm?: boolean;
|
|
730
730
|
format?: string | ((date: Date) => string) | ((dates: [Date, Date]) => string);
|
|
731
731
|
locale?: string;
|
|
732
|
+
max?: Date;
|
|
733
|
+
min?: Date;
|
|
732
734
|
minuteStep?: number;
|
|
733
735
|
modelValue?: Date | [Date, Date] | null;
|
|
734
736
|
placeholder?: string;
|
|
735
737
|
showTimezoneSelect?: boolean;
|
|
736
738
|
showWeekNumber?: boolean;
|
|
737
739
|
type?: "date" | "datetime" | "time" | "week" | "month" | "year" | "date-range" | "time-range" | "datetime-range";
|
|
740
|
+
inline?: boolean;
|
|
738
741
|
}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
742
|
+
blur: () => any;
|
|
739
743
|
"update:modelValue": (args_0: Date | [Date, Date] | null) => any;
|
|
740
744
|
"update:timezoneId": (...args: unknown[]) => any;
|
|
741
745
|
}, string, import('vue').PublicProps, Readonly<{
|
|
@@ -748,13 +752,17 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
748
752
|
confirm?: boolean;
|
|
749
753
|
format?: string | ((date: Date) => string) | ((dates: [Date, Date]) => string);
|
|
750
754
|
locale?: string;
|
|
755
|
+
max?: Date;
|
|
756
|
+
min?: Date;
|
|
751
757
|
minuteStep?: number;
|
|
752
758
|
modelValue?: Date | [Date, Date] | null;
|
|
753
759
|
placeholder?: string;
|
|
754
760
|
showTimezoneSelect?: boolean;
|
|
755
761
|
showWeekNumber?: boolean;
|
|
756
762
|
type?: "date" | "datetime" | "time" | "week" | "month" | "year" | "date-range" | "time-range" | "datetime-range";
|
|
763
|
+
inline?: boolean;
|
|
757
764
|
}> & Readonly<{
|
|
765
|
+
onBlur?: (() => any) | undefined;
|
|
758
766
|
"onUpdate:modelValue"?: ((args_0: Date | [Date, Date] | null) => any) | undefined;
|
|
759
767
|
"onUpdate:timezoneId"?: ((...args: unknown[]) => any) | undefined;
|
|
760
768
|
}>, {
|
|
@@ -762,6 +770,9 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
762
770
|
placeholder: string;
|
|
763
771
|
modelValue: Date | [Date, Date] | null;
|
|
764
772
|
ariaLabel: string;
|
|
773
|
+
inline: boolean;
|
|
774
|
+
min: Date;
|
|
775
|
+
max: Date;
|
|
765
776
|
locale: string;
|
|
766
777
|
format: string | ((date: Date) => string) | ((dates: [Date, Date]) => string);
|
|
767
778
|
timezoneId: string;
|