@nextcloud/vue 9.0.0-rc.3 → 9.0.0-rc.4
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 +70 -7
- package/dist/assets/{NcActionText-CWAPsJmz.css → NcActionText-BtzLDZeJ.css} +18 -18
- package/dist/assets/{NcActions-DxcpMfrs.css → NcActions-DfCOtp0b.css} +11 -11
- package/dist/assets/{NcAppContent-Zgn8-wsd.css → NcAppContent-RmHDNYBp.css} +23 -23
- package/dist/assets/{NcAppNavigationItem-B27WFnUV.css → NcAppNavigationItem-B-slGJHZ.css} +31 -31
- package/dist/assets/{NcAppNavigationNewItem-BrLekTMb.css → NcAppNavigationNewItem-CYsA6ZGQ.css} +33 -33
- package/dist/assets/{NcAppSidebar-PG3qIdkG.css → NcAppSidebar-BeRME1Bx.css} +44 -44
- package/dist/assets/{NcAppSidebarTab-BFy7uyWe.css → NcAppSidebarTab-cWhpTGp7.css} +4 -4
- package/dist/assets/{NcAvatar-C01qP9VA.css → NcAvatar-g7MoHyFd.css} +24 -24
- package/dist/assets/{NcCollectionList-DTJgOfCk.css → NcCollectionList-DVlSPO13.css} +27 -27
- package/dist/assets/{NcContent-C12jLe34.css → NcContent-1ivDf2e_.css} +9 -9
- package/dist/assets/NcDateTimePicker-_rRYVngX.css +1228 -0
- package/dist/assets/{NcEmojiPicker-kxoeGEM5.css → NcEmojiPicker-vTc7_EDA.css} +4 -4
- package/dist/assets/{NcIconSvgWrapper-cYxhjYue.css → NcIconSvgWrapper-CJfAwN6-.css} +11 -11
- package/dist/assets/{NcListItem-ff6bfJFE.css → NcListItem-BBaZDZQK.css} +44 -44
- package/dist/assets/{NcMentionBubble-DLOTFwpl.css → NcMentionBubble-lpms2_3A.css} +9 -9
- package/dist/assets/{NcNoteCard-C387qsQO.css → NcNoteCard-DlW6RBOO.css} +9 -9
- package/dist/assets/{NcPasswordField-DVV6Eiwf.css → NcPasswordField-D7XrnwDs.css} +2 -2
- package/dist/assets/{NcRelatedResourcesPanel-DXfywiqL.css → NcRelatedResourcesPanel-BQkQvMMD.css} +3 -3
- package/dist/assets/{NcRichContenteditable-KsmFPJmm.css → NcRichContenteditable-1zTxLjsG.css} +20 -20
- package/dist/assets/{NcRichText-Fi_WAwSP.css → NcRichText-cO2UCM_o.css} +86 -84
- package/dist/assets/{NcSettingsSection-Dyrgo_fF.css → NcSettingsSection-DLjgl3j1.css} +7 -7
- package/dist/assets/{referencePickerModal-CUVCkTmZ.css → referencePickerModal-DIHQ6_wW.css} +20 -20
- package/dist/chunks/{NcActionButton-BECWgEPr.mjs → NcActionButton-Bd35_0n4.mjs} +3 -3
- package/dist/chunks/{NcActionButton-BECWgEPr.mjs.map → NcActionButton-Bd35_0n4.mjs.map} +1 -1
- package/dist/chunks/{NcActionButtonGroup-e4F30E5Z.mjs → NcActionButtonGroup-BVbWDFaC.mjs} +2 -2
- package/dist/chunks/{NcActionButtonGroup-e4F30E5Z.mjs.map → NcActionButtonGroup-BVbWDFaC.mjs.map} +1 -1
- package/dist/chunks/{NcActionInput-DYLqm7AP.mjs → NcActionInput-B_f8z2fo.mjs} +8 -8
- package/dist/chunks/{NcActionInput-DYLqm7AP.mjs.map → NcActionInput-B_f8z2fo.mjs.map} +1 -1
- package/dist/chunks/{NcActionText-DJWBefhJ.mjs → NcActionText-16Mj4-P1.mjs} +3 -4
- package/dist/chunks/NcActionText-16Mj4-P1.mjs.map +1 -0
- package/dist/chunks/{NcActionTextEditable-ByA0z9nO.mjs → NcActionTextEditable-B4nTAiHu.mjs} +3 -3
- package/dist/chunks/{NcActionTextEditable-ByA0z9nO.mjs.map → NcActionTextEditable-B4nTAiHu.mjs.map} +1 -1
- package/dist/chunks/{NcActions-iwG1Tj-I.mjs → NcActions-BM3DmGLW.mjs} +6 -6
- package/dist/chunks/{NcActions-iwG1Tj-I.mjs.map → NcActions-BM3DmGLW.mjs.map} +1 -1
- package/dist/chunks/{NcAppContent-B2qF2-YG.mjs → NcAppContent-BZZyPqOo.mjs} +54 -52
- package/dist/chunks/NcAppContent-BZZyPqOo.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigation-JoRJnwqf.mjs → NcAppNavigation-BmACVQVW.mjs} +2 -2
- package/dist/chunks/{NcAppNavigation-JoRJnwqf.mjs.map → NcAppNavigation-BmACVQVW.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationCaption-DhwvNbx1.mjs → NcAppNavigationCaption-BrCiN8XK.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationCaption-DhwvNbx1.mjs.map → NcAppNavigationCaption-BrCiN8XK.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationItem-B51Guztu.mjs → NcAppNavigationItem-ClySLuSM.mjs} +9 -9
- package/dist/chunks/{NcAppNavigationItem-B51Guztu.mjs.map → NcAppNavigationItem-ClySLuSM.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationNewItem-DyzpvBOb.mjs → NcAppNavigationNewItem-BUgPntuN.mjs} +6 -6
- package/dist/chunks/{NcAppNavigationNewItem-DyzpvBOb.mjs.map → NcAppNavigationNewItem-BUgPntuN.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSearch-CvHp92E-.mjs → NcAppNavigationSearch-DpjlWi9j.mjs} +3 -3
- package/dist/chunks/{NcAppNavigationSearch-CvHp92E-.mjs.map → NcAppNavigationSearch-DpjlWi9j.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSettings-iJ84_lwr.mjs → NcAppNavigationSettings-DGATbBqy.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationSettings-iJ84_lwr.mjs.map → NcAppNavigationSettings-DGATbBqy.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationToggle-D3UGt5TV.mjs → NcAppNavigationToggle-D9pouVyS.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationToggle-D3UGt5TV.mjs.map → NcAppNavigationToggle-D9pouVyS.mjs.map} +1 -1
- package/dist/chunks/{NcAppSettingsDialog-CQnZ29WZ.mjs → NcAppSettingsDialog-Dgh5jydA.mjs} +3 -3
- package/dist/chunks/{NcAppSettingsDialog-CQnZ29WZ.mjs.map → NcAppSettingsDialog-Dgh5jydA.mjs.map} +1 -1
- package/dist/chunks/{NcAppSidebar-QEkYs8pt.mjs → NcAppSidebar-DWRmX_-Y.mjs} +12 -12
- package/dist/chunks/{NcAppSidebar-QEkYs8pt.mjs.map → NcAppSidebar-DWRmX_-Y.mjs.map} +1 -1
- package/dist/chunks/{NcAppSidebarTab-DG51ajic.mjs → NcAppSidebarTab-D1RmFRTu.mjs} +5 -5
- package/dist/chunks/NcAppSidebarTab-D1RmFRTu.mjs.map +1 -0
- package/dist/chunks/{NcAvatar-BadoF6cb.mjs → NcAvatar-PCbT0J_-.mjs} +39 -25
- package/dist/chunks/NcAvatar-PCbT0J_-.mjs.map +1 -0
- package/dist/chunks/{NcBreadcrumb-BH4XQJ8K.mjs → NcBreadcrumb-D9gRzaYP.mjs} +2 -2
- package/dist/chunks/{NcBreadcrumb-BH4XQJ8K.mjs.map → NcBreadcrumb-D9gRzaYP.mjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumbs-DyWyrhrJ.mjs → NcBreadcrumbs-DjqDBMn-.mjs} +4 -4
- package/dist/chunks/{NcBreadcrumbs-DyWyrhrJ.mjs.map → NcBreadcrumbs-DjqDBMn-.mjs.map} +1 -1
- package/dist/chunks/{NcCheckboxRadioSwitch-Di0xbf6d.mjs → NcCheckboxRadioSwitch-D9N_BDHh.mjs} +2 -2
- package/dist/chunks/{NcCheckboxRadioSwitch-Di0xbf6d.mjs.map → NcCheckboxRadioSwitch-D9N_BDHh.mjs.map} +1 -1
- package/dist/chunks/{NcChip-DfDlpsAh.mjs → NcChip-BPresRp1.mjs} +6 -6
- package/dist/chunks/{NcChip-DfDlpsAh.mjs.map → NcChip-BPresRp1.mjs.map} +1 -1
- package/dist/chunks/{NcCollectionList-B2PzNHzw.mjs → NcCollectionList-BPDCogsB.mjs} +14 -11
- package/dist/chunks/NcCollectionList-BPDCogsB.mjs.map +1 -0
- package/dist/chunks/{NcColorPicker-CoteX_0P.mjs → NcColorPicker-BNpZzN-p.mjs} +3 -3
- package/dist/chunks/{NcColorPicker-CoteX_0P.mjs.map → NcColorPicker-BNpZzN-p.mjs.map} +1 -1
- package/dist/chunks/{NcContent-BImnEnMI.mjs → NcContent-CZKDyVcI.mjs} +8 -6
- package/dist/chunks/{NcContent-BImnEnMI.mjs.map → NcContent-CZKDyVcI.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidget-DJtdcW-W.mjs → NcDashboardWidget-DhZ5c4oF.mjs} +4 -4
- package/dist/chunks/{NcDashboardWidget-DJtdcW-W.mjs.map → NcDashboardWidget-DhZ5c4oF.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidgetItem-CZaWF40u.mjs → NcDashboardWidgetItem-pJ-PctjL.mjs} +4 -4
- package/dist/chunks/{NcDashboardWidgetItem-CZaWF40u.mjs.map → NcDashboardWidgetItem-pJ-PctjL.mjs.map} +1 -1
- package/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang-B0Lci6v0.mjs +36 -0
- package/dist/chunks/{NcDateTime.vue_vue_type_script_setup_true_lang-C2VbacBQ.mjs.map → NcDateTime.vue_vue_type_script_setup_true_lang-B0Lci6v0.mjs.map} +1 -1
- package/dist/chunks/{NcDateTimePicker-BB--HQog.mjs → NcDateTimePicker-CKOTExmB.mjs} +149 -94
- package/dist/chunks/NcDateTimePicker-CKOTExmB.mjs.map +1 -0
- package/dist/chunks/{NcDateTimePickerNative-DaPzFiYH.mjs → NcDateTimePickerNative-NVYPDSmf.mjs} +2 -2
- package/dist/chunks/{NcDateTimePickerNative-DaPzFiYH.mjs.map → NcDateTimePickerNative-NVYPDSmf.mjs.map} +1 -1
- package/dist/chunks/{NcDialog-CXVaeWJf.mjs → NcDialog-DTbCOARa.mjs} +3 -3
- package/dist/chunks/{NcDialog-CXVaeWJf.mjs.map → NcDialog-DTbCOARa.mjs.map} +1 -1
- package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-DSKWXzqG.mjs → NcDialogButton.vue_vue_type_script_setup_true_lang-DaU1luyJ.mjs} +3 -3
- package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-DSKWXzqG.mjs.map → NcDialogButton.vue_vue_type_script_setup_true_lang-DaU1luyJ.mjs.map} +1 -1
- package/dist/chunks/{NcEmojiPicker-BGO0v-D5.mjs → NcEmojiPicker-DHXabPDE.mjs} +10 -10
- package/dist/chunks/{NcEmojiPicker-BGO0v-D5.mjs.map → NcEmojiPicker-DHXabPDE.mjs.map} +1 -1
- package/dist/chunks/{NcHeaderMenu-DmpJfS86.mjs → NcHeaderMenu-Bf_rW093.mjs} +2 -2
- package/dist/chunks/{NcHeaderMenu-DmpJfS86.mjs.map → NcHeaderMenu-Bf_rW093.mjs.map} +1 -1
- package/dist/chunks/{NcIconSvgWrapper-BOiCKv0b.mjs → NcIconSvgWrapper-CprKb_SE.mjs} +4 -4
- package/dist/chunks/{NcIconSvgWrapper-BOiCKv0b.mjs.map → NcIconSvgWrapper-CprKb_SE.mjs.map} +1 -1
- package/dist/chunks/{NcInputConfirmCancel-B7gAZ7U1.mjs → NcInputConfirmCancel-DCUXeKPz.mjs} +2 -2
- package/dist/chunks/{NcInputConfirmCancel-B7gAZ7U1.mjs.map → NcInputConfirmCancel-DCUXeKPz.mjs.map} +1 -1
- package/dist/chunks/{NcInputField-DH5ybroK.mjs → NcInputField-BZWRHkmQ.mjs} +3 -3
- package/dist/chunks/{NcInputField-DH5ybroK.mjs.map → NcInputField-BZWRHkmQ.mjs.map} +1 -1
- package/dist/chunks/{NcListItem-50hUlVlb.mjs → NcListItem-7BHAmqB0.mjs} +5 -5
- package/dist/chunks/{NcListItem-50hUlVlb.mjs.map → NcListItem-7BHAmqB0.mjs.map} +1 -1
- package/dist/chunks/{NcListItemIcon-BGEA45de.mjs → NcListItemIcon-gkuv5FT8.mjs} +6 -4
- package/dist/chunks/{NcListItemIcon-BGEA45de.mjs.map → NcListItemIcon-gkuv5FT8.mjs.map} +1 -1
- package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_25f4d6e1_lang-aMwzB20D.mjs +16 -0
- package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_25f4d6e1_lang-aMwzB20D.mjs.map +1 -0
- package/dist/chunks/{NcModal-CWRw1hyF.mjs → NcModal-CX28vCtF.mjs} +5 -5
- package/dist/chunks/{NcModal-CWRw1hyF.mjs.map → NcModal-CX28vCtF.mjs.map} +1 -1
- package/dist/chunks/{NcNoteCard-DmhVICGO.mjs → NcNoteCard-oGt6biyJ.mjs} +7 -6
- package/dist/chunks/{NcNoteCard-DmhVICGO.mjs.map → NcNoteCard-oGt6biyJ.mjs.map} +1 -1
- package/dist/chunks/NcPasswordField-w13_Lpyn.mjs +128 -0
- package/dist/chunks/NcPasswordField-w13_Lpyn.mjs.map +1 -0
- package/dist/chunks/{NcRelatedResourcesPanel-BUasditW.mjs → NcRelatedResourcesPanel-CpOgjo9h.mjs} +9 -9
- package/dist/chunks/{NcRelatedResourcesPanel-BUasditW.mjs.map → NcRelatedResourcesPanel-CpOgjo9h.mjs.map} +1 -1
- package/dist/chunks/{NcRichContenteditable-CGP8KN41.mjs → NcRichContenteditable-J9ILu0dF.mjs} +36 -29
- package/dist/chunks/NcRichContenteditable-J9ILu0dF.mjs.map +1 -0
- package/dist/chunks/{NcRichText-DDllQirJ.mjs → NcRichText-DvbC3aUR.mjs} +7 -9
- package/dist/chunks/{NcRichText-DDllQirJ.mjs.map → NcRichText-DvbC3aUR.mjs.map} +1 -1
- package/dist/chunks/{NcSelect-Bkg2rrDQ.mjs → NcSelect-D6XzjG4n.mjs} +2 -2
- package/dist/chunks/{NcSelect-Bkg2rrDQ.mjs.map → NcSelect-D6XzjG4n.mjs.map} +1 -1
- package/dist/chunks/{NcSelectTags-gJMICSS2.mjs → NcSelectTags-SNTGRj-n.mjs} +3 -3
- package/dist/chunks/{NcSelectTags-gJMICSS2.mjs.map → NcSelectTags-SNTGRj-n.mjs.map} +1 -1
- package/dist/chunks/{NcSelectUsers-mRdIiG7L.mjs → NcSelectUsers-D_eu9Uqb.mjs} +3 -3
- package/dist/chunks/{NcSelectUsers-mRdIiG7L.mjs.map → NcSelectUsers-D_eu9Uqb.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsInputText-P8cEi0aP.mjs → NcSettingsInputText-D5N9XxkW.mjs} +2 -2
- package/dist/chunks/{NcSettingsInputText-P8cEi0aP.mjs.map → NcSettingsInputText-D5N9XxkW.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSection-DkDLjL_G.mjs → NcSettingsSection-93UQoiwe.mjs} +40 -65
- package/dist/chunks/NcSettingsSection-93UQoiwe.mjs.map +1 -0
- package/dist/chunks/{NcSettingsSelectGroup-BvYxv8aw.mjs → NcSettingsSelectGroup-Dr4IRbi_.mjs} +3 -3
- package/dist/chunks/{NcSettingsSelectGroup-BvYxv8aw.mjs.map → NcSettingsSelectGroup-Dr4IRbi_.mjs.map} +1 -1
- package/dist/chunks/{NcTextArea-D4hJqp6W.mjs → NcTextArea-CWqnvMl2.mjs} +3 -3
- package/dist/chunks/{NcTextArea-D4hJqp6W.mjs.map → NcTextArea-CWqnvMl2.mjs.map} +1 -1
- package/dist/chunks/{NcTextField.vue_vue_type_script_setup_true_lang-BggEO9Jn.mjs → NcTextField.vue_vue_type_script_setup_true_lang-B65hrkLW.mjs} +5 -5
- package/dist/chunks/{NcTextField.vue_vue_type_script_setup_true_lang-BggEO9Jn.mjs.map → NcTextField.vue_vue_type_script_setup_true_lang-B65hrkLW.mjs.map} +1 -1
- package/dist/chunks/NcThemeProvider.vue_vue_type_script_setup_true_lang-nUDJsDGI.mjs +30 -0
- package/dist/chunks/NcThemeProvider.vue_vue_type_script_setup_true_lang-nUDJsDGI.mjs.map +1 -0
- package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-C7loAI0C.mjs → NcTimezonePicker.vue_vue_type_script_setup_true_lang-BoH1Njbp.mjs} +3 -3
- package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-C7loAI0C.mjs.map → NcTimezonePicker.vue_vue_type_script_setup_true_lang-BoH1Njbp.mjs.map} +1 -1
- package/dist/chunks/{NcUserBubble-CKN4C4kP.mjs → NcUserBubble-BW0qu6mW.mjs} +2 -2
- package/dist/chunks/{NcUserBubble-CKN4C4kP.mjs.map → NcUserBubble-BW0qu6mW.mjs.map} +1 -1
- package/dist/chunks/{NcUserStatusIcon-BX9ILG2r.mjs → NcUserStatusIcon-DqQYA-EE.mjs} +2 -2
- package/dist/chunks/{NcUserStatusIcon-BX9ILG2r.mjs.map → NcUserStatusIcon-DqQYA-EE.mjs.map} +1 -1
- package/dist/chunks/{_l10n-B4AgnzNC.mjs → _l10n-tXci8WM1.mjs} +37 -43
- package/dist/chunks/_l10n-tXci8WM1.mjs.map +1 -0
- package/dist/chunks/{colors-fFK6HkHZ.mjs → colors-BaTbJhvg.mjs} +2 -2
- package/dist/chunks/{colors-fFK6HkHZ.mjs.map → colors-BaTbJhvg.mjs.map} +1 -1
- package/dist/chunks/constants-Bls5liKo.mjs +9 -0
- package/dist/chunks/constants-Bls5liKo.mjs.map +1 -0
- package/dist/chunks/{index-BF8joS9W.mjs → customPickerElements-CH9vlHLd.mjs} +46 -45
- package/dist/chunks/customPickerElements-CH9vlHLd.mjs.map +1 -0
- package/dist/chunks/{mdi-CWpCzTmH.mjs → mdi-D6fu5i4r.mjs} +10 -6
- package/dist/chunks/{mdi-CWpCzTmH.mjs.map → mdi-D6fu5i4r.mjs.map} +1 -1
- package/dist/chunks/{referencePickerModal-uLIBRHIc.mjs → referencePickerModal-DREcDQKg.mjs} +53 -59
- package/dist/chunks/referencePickerModal-DREcDQKg.mjs.map +1 -0
- package/dist/chunks/{usernameToColor-Bik5PNni.mjs → usernameToColor-2yV_Zdvb.mjs} +2 -2
- package/dist/chunks/{usernameToColor-Bik5PNni.mjs.map → usernameToColor-2yV_Zdvb.mjs.map} +1 -1
- package/dist/components/NcActionButton/NcActionButton.vue.d.ts +1 -1
- package/dist/components/NcActionButton/index.mjs +1 -1
- package/dist/components/NcActionButtonGroup/index.mjs +1 -1
- package/dist/components/NcActionInput/index.mjs +1 -1
- package/dist/components/NcActionText/index.mjs +1 -1
- package/dist/components/NcActionTextEditable/NcActionTextEditable.vue.d.ts +1 -1
- package/dist/components/NcActionTextEditable/index.mjs +1 -1
- package/dist/components/NcActions/index.mjs +1 -1
- package/dist/components/NcAppContent/NcAppContent.vue.d.ts +34 -33
- 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/NcAppNavigationNewItem/index.mjs +1 -1
- package/dist/components/NcAppNavigationSearch/NcAppNavigationSearch.vue.d.ts +6 -6
- package/dist/components/NcAppNavigationSearch/index.mjs +1 -1
- package/dist/components/NcAppNavigationSettings/index.mjs +1 -1
- package/dist/components/NcAppNavigationToggle/index.mjs +1 -1
- package/dist/components/NcAppSettingsDialog/index.mjs +1 -1
- package/dist/components/NcAppSidebar/index.mjs +1 -1
- package/dist/components/NcAppSidebarTab/NcAppSidebarTab.vue.d.ts +3 -3
- package/dist/components/NcAppSidebarTab/index.mjs +1 -1
- package/dist/components/NcAvatar/index.mjs +1 -1
- package/dist/components/NcBreadcrumb/index.mjs +1 -1
- package/dist/components/NcBreadcrumbs/index.mjs +1 -1
- package/dist/components/NcButton/NcButton.vue.d.ts +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/NcDateTime/index.mjs +1 -1
- package/dist/components/NcDateTimePicker/NcDateTimePicker.vue.d.ts +1072 -4
- package/dist/components/NcDateTimePicker/index.mjs +1 -1
- package/dist/components/NcDateTimePickerNative/NcDateTimePickerNative.vue.d.ts +1 -1
- package/dist/components/NcDateTimePickerNative/index.mjs +1 -1
- package/dist/components/NcDialog/index.mjs +1 -1
- package/dist/components/NcDialogButton/NcDialogButton.vue.d.ts +1 -1
- package/dist/components/NcDialogButton/index.mjs +1 -1
- package/dist/components/NcEmojiPicker/index.mjs +1 -1
- package/dist/components/NcHeaderMenu/index.mjs +1 -1
- package/dist/components/NcIconSvgWrapper/NcIconSvgWrapper.vue.d.ts +1 -1
- package/dist/components/NcIconSvgWrapper/index.mjs +1 -1
- package/dist/components/NcInputField/NcInputField.vue.d.ts +1 -1
- package/dist/components/NcInputField/index.mjs +1 -1
- package/dist/components/NcListItem/index.mjs +1 -1
- package/dist/components/NcListItemIcon/index.mjs +1 -1
- package/dist/components/NcLoadingIcon/NcLoadingIcon.vue.d.ts +1 -1
- package/dist/components/NcModal/index.mjs +1 -1
- package/dist/components/NcNoteCard/index.mjs +1 -1
- package/dist/components/NcPasswordField/NcPasswordField.vue.d.ts +10 -7
- package/dist/components/NcPasswordField/index.mjs +1 -1
- package/dist/components/NcRelatedResourcesPanel/index.mjs +1 -1
- package/dist/components/NcRichContenteditable/NcAutoCompleteResult.vue.d.ts +4 -4
- package/dist/components/NcRichContenteditable/NcMentionBubble.vue.d.ts +4 -4
- package/dist/components/NcRichContenteditable/NcRichContenteditable.vue.d.ts +2 -2
- package/dist/components/NcRichContenteditable/index.mjs +1 -1
- package/dist/components/NcRichText/index.d.ts +3 -3
- package/dist/components/NcRichText/index.mjs +10 -10
- package/dist/components/NcSavingIndicatorIcon/NcSavingIndicatorIcon.vue.d.ts +1 -1
- package/dist/components/NcSelect/index.mjs +1 -1
- package/dist/components/NcSelectTags/index.mjs +1 -1
- package/dist/components/NcSelectUsers/index.mjs +1 -1
- package/dist/components/NcSettingsInputText/index.mjs +1 -1
- package/dist/components/NcSettingsSection/NcSettingsSection.vue.d.ts +40 -34
- package/dist/components/NcSettingsSection/index.d.ts +4 -0
- 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/NcTextField.vue.d.ts +6 -6
- package/dist/components/NcTextField/index.mjs +1 -1
- package/dist/components/NcThemeProvider/NcThemeProvider.vue.d.ts +27 -0
- package/dist/components/NcThemeProvider/index.d.ts +5 -0
- package/dist/components/NcThemeProvider/index.mjs +5 -0
- package/dist/components/NcThemeProvider/index.mjs.map +1 -0
- 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/components/index.d.ts +2 -1
- package/dist/composables/index.d.ts +1 -1
- package/dist/composables/useFormatDateTime/index.d.ts +40 -0
- package/dist/composables/useFormatDateTime/index.mjs +49 -0
- package/dist/composables/useFormatDateTime/index.mjs.map +1 -0
- package/dist/composables/useHotKey/index.mjs +13 -1
- package/dist/composables/useHotKey/index.mjs.map +1 -1
- package/dist/composables/useIsDarkTheme/constants.d.ts +7 -0
- package/dist/composables/useIsDarkTheme/index.d.ts +7 -4
- package/dist/composables/useIsDarkTheme/index.mjs +23 -6
- package/dist/composables/useIsDarkTheme/index.mjs.map +1 -1
- package/dist/functions/reference/customPickerElements.d.ts +48 -13
- package/dist/functions/reference/index.d.ts +8 -5
- package/dist/functions/reference/index.mjs +7 -7
- package/dist/functions/reference/providerHelper.d.ts +26 -15
- package/dist/functions/reference/referencePickerModal.d.ts +7 -4
- package/dist/functions/reference/widgets.d.ts +47 -28
- package/dist/functions/registerReference/index.d.ts +6 -2
- package/dist/functions/registerReference/index.mjs +4 -4
- package/dist/functions/usernameToColor/index.mjs +1 -1
- package/dist/index.mjs +71 -68
- package/dist/index.mjs.map +1 -1
- package/dist/utils/getAvatarUrl.d.ts +23 -1
- package/package.json +2 -2
- package/dist/assets/NcDateTimePicker-pmbCzZnb.css +0 -83
- package/dist/chunks/NcActionText-DJWBefhJ.mjs.map +0 -1
- package/dist/chunks/NcAppContent-B2qF2-YG.mjs.map +0 -1
- package/dist/chunks/NcAppSidebarTab-DG51ajic.mjs.map +0 -1
- package/dist/chunks/NcAvatar-BadoF6cb.mjs.map +0 -1
- package/dist/chunks/NcCollectionList-B2PzNHzw.mjs.map +0 -1
- package/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang-C2VbacBQ.mjs +0 -31
- package/dist/chunks/NcDateTimePicker-BB--HQog.mjs.map +0 -1
- package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_c29760cd_lang-CZdrlInz.mjs +0 -13
- package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_c29760cd_lang-CZdrlInz.mjs.map +0 -1
- package/dist/chunks/NcPasswordField-DY-wDP9m.mjs +0 -211
- package/dist/chunks/NcPasswordField-DY-wDP9m.mjs.map +0 -1
- package/dist/chunks/NcRichContenteditable-CGP8KN41.mjs.map +0 -1
- package/dist/chunks/NcSettingsSection-DkDLjL_G.mjs.map +0 -1
- package/dist/chunks/_l10n-B4AgnzNC.mjs.map +0 -1
- package/dist/chunks/index-BF8joS9W.mjs.map +0 -1
- package/dist/chunks/referencePickerModal-uLIBRHIc.mjs.map +0 -1
- package/dist/chunks/useFormatDateTime-DmnI1ENQ.mjs +0 -87
- package/dist/chunks/useFormatDateTime-DmnI1ENQ.mjs.map +0 -1
- package/dist/composables/useFormatDateTime.d.ts +0 -84
- /package/dist/components/NcAppContent/{NcAppDetailsToggle.vue.d.ts → NcAppContentDetailsToggle.vue.d.ts} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import '../assets/NcNoteCard-
|
|
1
|
+
import '../assets/NcNoteCard-DlW6RBOO.css';
|
|
2
2
|
import { defineComponent, computed, createElementBlock, openBlock, normalizeClass, renderSlot, createElementVNode, createVNode, unref, createCommentVNode, toDisplayString } from "vue";
|
|
3
|
-
import { f as mdiAlert, g as mdiInformation, h as mdiCheckboxMarkedCircle, i as mdiAlertDecagram } from "./mdi-
|
|
4
|
-
import { N as NcIconSvgWrapper } from "./NcIconSvgWrapper-
|
|
3
|
+
import { f as mdiAlert, g as mdiInformation, h as mdiCheckboxMarkedCircle, i as mdiAlertDecagram } from "./mdi-D6fu5i4r.mjs";
|
|
4
|
+
import { N as NcIconSvgWrapper } from "./NcIconSvgWrapper-CprKb_SE.mjs";
|
|
5
5
|
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
6
6
|
const _hoisted_1 = ["role"];
|
|
7
7
|
const _hoisted_2 = {
|
|
@@ -41,7 +41,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
41
41
|
renderSlot(_ctx.$slots, "icon", {}, () => [
|
|
42
42
|
createVNode(unref(NcIconSvgWrapper), {
|
|
43
43
|
path: iconPath.value,
|
|
44
|
-
class: normalizeClass(["notecard__icon", { "notecard__icon--heading": _ctx.heading }])
|
|
44
|
+
class: normalizeClass(["notecard__icon", { "notecard__icon--heading": _ctx.heading }]),
|
|
45
|
+
inline: ""
|
|
45
46
|
}, null, 8, ["path", "class"])
|
|
46
47
|
], true),
|
|
47
48
|
createElementVNode("div", null, [
|
|
@@ -54,8 +55,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
54
55
|
};
|
|
55
56
|
}
|
|
56
57
|
});
|
|
57
|
-
const NcNoteCard = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
58
|
+
const NcNoteCard = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c7c6d460"]]);
|
|
58
59
|
export {
|
|
59
60
|
NcNoteCard as N
|
|
60
61
|
};
|
|
61
|
-
//# sourceMappingURL=NcNoteCard-
|
|
62
|
+
//# sourceMappingURL=NcNoteCard-oGt6biyJ.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcNoteCard-
|
|
1
|
+
{"version":3,"file":"NcNoteCard-oGt6biyJ.mjs","sources":["../../src/components/NcNoteCard/NcNoteCard.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nThis component is made to display additional information to the user. It is\navailable in four versions:\n\n- **success**: Display a successful message.<br>\n Should be used to show success of an operation or optional information to help a user be more successful.\n- **info**: Display an informational message.<br>\n Should be used to highlight information that users should take into account.\n- **warning**: Display a warning to the user.<br>\n Should be used for critical content demanding user attention due to potential risks.\n- **error**: Display an error message.<br>\n Should be used for negative potential consequences of an action.\n\n### Usage\n\n```vue\n<template>\n\t<div>\n\t\t<NcNoteCard type=\"warning\" text=\"This is dangerous\" />\n\n\t\t<NcNoteCard type=\"error\"\n\t\t\theading=\"Error\"\n\t\t\ttext=\"The server is not happy and reported the following error\" />\n\n\t\t<NcNoteCard type=\"success\" text=\"You won\" />\n\n\t\t<NcNoteCard type=\"info\" text=\"For your information\" />\n\n\t\t<h4>Custom icon</h4>\n\t\t<NcNoteCard type=\"warning\" text=\"Custom icon usage\">\n\t\t\t<template #icon>\n\t\t\t\t<Cog :size=\"20\"/>\n\t\t\t</template>\n\t\t</NcNoteCard>\n\n\t\t<h4>Custom content using the default slot</h4>\n\t\t<NcNoteCard type=\"info\">\n\t\t\tPress <kbd>CTRL</kbd>+<kbd>C</kbd>\n\t\t</NcNoteCard>\n\t</div>\n</template>\n\n<script>\n\timport Cog from 'vue-material-design-icons/Cog.vue'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tCog,\n\t\t},\n\t}\n</script>\n```\n</docs>\n\n<script setup lang=\"ts\">\nimport type { Slot } from 'vue'\n\nimport { mdiAlert, mdiAlertDecagram, mdiCheckboxMarkedCircle, mdiInformation } from '@mdi/js'\nimport { computed } from 'vue'\nimport NcIconSvgWrapper from '../NcIconSvgWrapper/index.ts'\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * Optional text to show as a heading of the note card\n\t */\n\theading?: string\n\n\t/**\n\t * Enforce the `alert` role on the note card.\n\t *\n\t * The alert role should only be used for information that requires the user's immediate attention.\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/alert_role\n\t */\n\tshowAlert?: boolean\n\n\t/**\n\t * The message text of the note card\n\t */\n\ttext?: string\n\n\t/**\n\t * Type or severity of the message\n\t */\n\ttype?: 'success' | 'info' | 'warning' | 'error'\n}>(), {\n\theading: undefined,\n\ttext: undefined,\n\ttype: 'warning',\n})\n\ndefineSlots<{\n\t/** The main content (overwrites the `text` prop) */\n\tdefault?: Slot\n\t/** Manually provided icon */\n\ticon?: Slot\n}>()\n\nconst shouldShowAlert = computed(() => props.showAlert || props.type === 'error')\n\nconst iconPath = computed(() => {\n\tswitch (props.type) {\n\tcase 'error':\n\t\treturn mdiAlertDecagram\n\tcase 'success':\n\t\treturn mdiCheckboxMarkedCircle\n\tcase 'info':\n\t\treturn mdiInformation\n\tcase 'warning':\n\tdefault:\n\t\treturn mdiAlert\n\t}\n})\n</script>\n\n<template>\n\t<div class=\"notecard\"\n\t\t:class=\"`notecard--${type}`\"\n\t\t:role=\"shouldShowAlert ? 'alert' : 'note'\">\n\t\t<slot name=\"icon\">\n\t\t\t<NcIconSvgWrapper :path=\"iconPath\"\n\t\t\t\tclass=\"notecard__icon\"\n\t\t\t\t:class=\"{ 'notecard__icon--heading': heading }\"\n\t\t\t\tinline />\n\t\t</slot>\n\t\t<div>\n\t\t\t<p v-if=\"heading\" class=\"notecard__heading\">\n\t\t\t\t{{ heading }}\n\t\t\t</p>\n\t\t\t<slot>\n\t\t\t\t<p class=\"notecard__text\">\n\t\t\t\t\t{{ text }}\n\t\t\t\t</p>\n\t\t\t</slot>\n\t\t</div>\n\t</div>\n</template>\n\n<style lang=\"scss\" scoped>\n.notecard {\n\t--note-card-icon-size: 20px;\n\t--note-card-padding: calc(2 * var(--default-grid-baseline));\n\tcolor: var(--color-main-text) !important;\n\tbackground-color: var(--note-background) !important;\n\tborder-inline-start: var(--default-grid-baseline) solid var(--note-theme);\n\tborder-radius: var(--border-radius);\n\tmargin: 1rem 0;\n\tpadding: var(--note-card-padding);\n\tdisplay: flex;\n\tflex-direction: row;\n\tgap: var(--note-card-padding);\n\n\t&__heading {\n\t\tfont-size: var(--note-card-icon-size); // Same as icon\n\t\tfont-weight: 600;\n\t}\n\n\t&__icon {\n\t\tcolor: var(--note-theme);\n\n\t\t&--heading {\n\t\t\tfont-size: var(--note-card-icon-size);\n\t\t\t// Ensure icon is on the same height as the heading\n\t\t\tmargin-block: calc((1lh - 1em) / 2) auto;\n\t\t}\n\t}\n\n\t&--success {\n\t\t--note-background: rgba(var(--color-success-rgb), 0.1);\n\t\t--note-theme: var(--color-success);\n\t}\n\n\t&--info {\n\t\t--note-background: rgba(var(--color-info-rgb), 0.1);\n\t\t--note-theme: var(--color-info);\n\t}\n\n\t&--error {\n\t\t--note-background: rgba(var(--color-error-rgb), 0.1);\n\t\t--note-theme: var(--color-error);\n\t}\n\n\t&--warning {\n\t\t--note-background: rgba(var(--color-warning-rgb), 0.1);\n\t\t--note-theme: var(--color-warning);\n\t}\n}\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAkEA,UAAM,QAAQ;AAqCd,UAAM,kBAAkB,SAAS,MAAM,MAAM,aAAa,MAAM,SAAS,OAAO;AAE1E,UAAA,WAAW,SAAS,MAAM;AAC/B,cAAQ,MAAM,MAAM;AAAA,QACpB,KAAK;AACG,iBAAA;AAAA,QACR,KAAK;AACG,iBAAA;AAAA,QACR,KAAK;AACG,iBAAA;AAAA,QACR,KAAK;AAAA,QACL;AACQ,iBAAA;AAAA,MAAA;AAAA,IACR,CACA;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import '../assets/NcPasswordField-D7XrnwDs.css';
|
|
2
|
+
import { defineComponent, mergeModels, useModel, watch, useTemplateRef, ref, computed, createBlock, openBlock, mergeProps, unref, createSlots, withCtx, createVNode, renderSlot } from "vue";
|
|
3
|
+
import { j as mdiEyeOff, k as mdiEye } from "./mdi-D6fu5i4r.mjs";
|
|
4
|
+
import axios from "@nextcloud/axios";
|
|
5
|
+
import { getCapabilities } from "@nextcloud/capabilities";
|
|
6
|
+
import { generateOcsUrl } from "@nextcloud/router";
|
|
7
|
+
import debounce from "debounce";
|
|
8
|
+
import { N as NcIconSvgWrapper } from "./NcIconSvgWrapper-CprKb_SE.mjs";
|
|
9
|
+
import { N as NcInputField } from "./NcInputField-BZWRHkmQ.mjs";
|
|
10
|
+
import { r as register, a as t } from "./_l10n-tXci8WM1.mjs";
|
|
11
|
+
import { l as logger } from "./logger-D3RVzcfQ.mjs";
|
|
12
|
+
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
13
|
+
register();
|
|
14
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
15
|
+
__name: "NcPasswordField",
|
|
16
|
+
props: /* @__PURE__ */ mergeModels({
|
|
17
|
+
class: {},
|
|
18
|
+
inputClass: { default: "" },
|
|
19
|
+
id: {},
|
|
20
|
+
label: {},
|
|
21
|
+
labelOutside: { type: Boolean },
|
|
22
|
+
placeholder: {},
|
|
23
|
+
showTrailingButton: { type: Boolean, default: true },
|
|
24
|
+
success: { type: Boolean },
|
|
25
|
+
error: { type: Boolean },
|
|
26
|
+
helperText: {},
|
|
27
|
+
disabled: { type: Boolean },
|
|
28
|
+
pill: { type: Boolean },
|
|
29
|
+
checkPasswordStrength: { type: Boolean },
|
|
30
|
+
minlength: { default: void 0 },
|
|
31
|
+
asText: { type: Boolean }
|
|
32
|
+
}, {
|
|
33
|
+
"modelValue": { default: "" },
|
|
34
|
+
"modelModifiers": {},
|
|
35
|
+
"visible": { type: Boolean, ...{ default: false } },
|
|
36
|
+
"visibleModifiers": {}
|
|
37
|
+
}),
|
|
38
|
+
emits: /* @__PURE__ */ mergeModels(["valid", "invalid"], ["update:modelValue", "update:visible"]),
|
|
39
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
40
|
+
const props = __props;
|
|
41
|
+
const modelValue = useModel(__props, "modelValue");
|
|
42
|
+
watch(modelValue, debounce(checkPassword, 500));
|
|
43
|
+
const visible = useModel(__props, "visible");
|
|
44
|
+
const emit = __emit;
|
|
45
|
+
__expose({
|
|
46
|
+
focus,
|
|
47
|
+
select
|
|
48
|
+
});
|
|
49
|
+
const { password_policy: passwordPolicy } = getCapabilities();
|
|
50
|
+
const inputField = useTemplateRef("inputField");
|
|
51
|
+
const internalHelpMessage = ref("");
|
|
52
|
+
const isValid = ref();
|
|
53
|
+
const propsToForward = computed(() => {
|
|
54
|
+
const all = { ...props };
|
|
55
|
+
delete all.checkPasswordStrength;
|
|
56
|
+
delete all.minlength;
|
|
57
|
+
delete all.asText;
|
|
58
|
+
delete all.error;
|
|
59
|
+
delete all.helperText;
|
|
60
|
+
delete all.inputClass;
|
|
61
|
+
delete all.success;
|
|
62
|
+
return all;
|
|
63
|
+
});
|
|
64
|
+
async function checkPassword() {
|
|
65
|
+
if (!props.checkPasswordStrength) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
try {
|
|
69
|
+
const { data } = await axios.post(generateOcsUrl("apps/password_policy/api/v1/validate"), { password: modelValue.value });
|
|
70
|
+
isValid.value = data.ocs.data.passed;
|
|
71
|
+
if (data.ocs.data.passed) {
|
|
72
|
+
internalHelpMessage.value = t("Password is secure");
|
|
73
|
+
emit("valid");
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
internalHelpMessage.value = data.ocs.data.reason;
|
|
77
|
+
emit("invalid");
|
|
78
|
+
} catch (error) {
|
|
79
|
+
logger.error("Password policy returned an error", { error });
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function toggleVisibility() {
|
|
83
|
+
visible.value = !visible.value;
|
|
84
|
+
}
|
|
85
|
+
function focus(options) {
|
|
86
|
+
inputField.value.focus(options);
|
|
87
|
+
}
|
|
88
|
+
function select() {
|
|
89
|
+
inputField.value.select();
|
|
90
|
+
}
|
|
91
|
+
return (_ctx, _cache) => {
|
|
92
|
+
return openBlock(), createBlock(NcInputField, mergeProps(propsToForward.value, {
|
|
93
|
+
ref_key: "inputField",
|
|
94
|
+
ref: inputField,
|
|
95
|
+
modelValue: modelValue.value,
|
|
96
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),
|
|
97
|
+
error: _ctx.error || isValid.value === false,
|
|
98
|
+
"helper-text": _ctx.helperText || internalHelpMessage.value,
|
|
99
|
+
"input-class": [_ctx.inputClass, { "password-field__input--secure-text": !visible.value && _ctx.asText }],
|
|
100
|
+
minlength: _ctx.minlength ?? unref(passwordPolicy)?.minLength ?? 0,
|
|
101
|
+
success: _ctx.success || isValid.value === true,
|
|
102
|
+
"trailing-button-label": visible.value ? unref(t)("Hide password") : unref(t)("Show password"),
|
|
103
|
+
type: visible.value || _ctx.asText ? "text" : "password",
|
|
104
|
+
onTrailingButtonClick: toggleVisibility
|
|
105
|
+
}), createSlots({
|
|
106
|
+
"trailing-button-icon": withCtx(() => [
|
|
107
|
+
createVNode(NcIconSvgWrapper, {
|
|
108
|
+
path: visible.value ? unref(mdiEyeOff) : unref(mdiEye)
|
|
109
|
+
}, null, 8, ["path"])
|
|
110
|
+
]),
|
|
111
|
+
_: 2
|
|
112
|
+
}, [
|
|
113
|
+
!!_ctx.$slots.icon ? {
|
|
114
|
+
name: "icon",
|
|
115
|
+
fn: withCtx(() => [
|
|
116
|
+
renderSlot(_ctx.$slots, "icon", {}, void 0, true)
|
|
117
|
+
]),
|
|
118
|
+
key: "0"
|
|
119
|
+
} : void 0
|
|
120
|
+
]), 1040, ["modelValue", "error", "helper-text", "input-class", "minlength", "success", "trailing-button-label", "type"]);
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
const NcPasswordField = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-26e2e89c"]]);
|
|
125
|
+
export {
|
|
126
|
+
NcPasswordField as N
|
|
127
|
+
};
|
|
128
|
+
//# sourceMappingURL=NcPasswordField-w13_Lpyn.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcPasswordField-w13_Lpyn.mjs","sources":["../../src/components/NcPasswordField/NcPasswordField.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Description\nSee [NcInputField](#/Components/NcFields?id=ncinputfield) for a list of all available props.\n\nGeneral purpose password field component.\n\n```\n<template>\n\t<div class=\"wrapper\">\n\t\t<NcPasswordField v-model=\"text1\"\n\t\t\tlabel=\"Old password\" />\n\t\t<div class=\"external-label\">\n\t\t\t<label for=\"textField\">New password</label>\n\t\t\t<NcPasswordField v-model=\"text2\"\n\t\t\t\tid=\"textField\"\n\t\t\t\t:label-outside=\"true\"\n\t\t\t\tplaceholder=\"Min. 12 characters\" />\n\t\t</div>\n\t\t<div class=\"external-label\">\n\t\t\t<label for=\"textField2\">New password</label>\n\t\t\t<NcPasswordField v-model=\"text3\"\n\t\t\t\tid=\"textField2\"\n\t\t\t\t:error=\"true\"\n\t\t\t\t:label-outside=\"true\"\n\t\t\t\tplaceholder=\"Min. 12 characters\"\n\t\t\t\thelper-text=\"Password is insecure\" />\n\t\t</div>\n\n\t\t<NcPasswordField v-model=\"text4\"\n\t\t\tlabel=\"Good new password\"\n\t\t\t:success=\"true\"\n\t\t\tplaceholder=\"Min. 12 characters\"\n\t\t\thelper-text=\"Password is secure\">\n\t\t\t<template #icon>\n\t\t\t\t<Lock :size=\"20\" />\n\t\t\t</template>\n\t\t</NcPasswordField>\n\n\t\t<NcPasswordField v-model=\"text5\"\n\t\t\t:disabled=\"true\"\n\t\t\tlabel=\"Disabled\" />\n\n\t\t<NcPasswordField :value.sync=\"text6\"\n\t\t\tlabel=\"Secret token\"\n\t\t\tas-text />\n\t</div>\n</template>\n<script>\nimport Lock from 'vue-material-design-icons/Lock'\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\ttext1: '',\n\t\t\ttext2: '',\n\t\t\ttext3: 'hunter',\n\t\t\ttext4: '',\n\t\t\ttext5: '',\n\t\t\ttext6: 'secret-token',\n\t\t}\n\t},\n\n\tcomponents: {\n\t\tLock,\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n.wrapper {\n\tdisplay: flex;\n\tgap: 4px;\n\talign-items: flex-end;\n\tflex-wrap: wrap;\n}\n\n.external-label {\n\tdisplay: flex;\n\tgap: 14px;\n\twidth: 100%;\n\tmargin-top: 1rem;\n}\n\n.external-label label {\n\tpadding-top: 7px;\n\twhite-space: nowrap;\n}\n</style>\n```\n</docs>\n\n<script setup lang=\"ts\">\nimport type { NcInputFieldProps } from '../NcInputField/NcInputField.vue'\nimport type { Writable } from '../../utils/VueTypes.ts'\n\nimport { mdiEye, mdiEyeOff } from '@mdi/js'\nimport axios from '@nextcloud/axios'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport debounce from 'debounce'\nimport { computed, ref, useTemplateRef, watch } from 'vue'\nimport NcIconSvgWrapper from '../NcIconSvgWrapper/NcIconSvgWrapper.vue'\nimport NcInputField from '../NcInputField/NcInputField.vue'\nimport { t } from '../../l10n.js'\nimport logger from '../../utils/logger.ts'\n\nconst props = withDefaults(defineProps<Omit<NcInputFieldProps, 'trailingButtonLabel' | 'type'> & {\n\t/**\n\t * Check if the user entered a valid password using the password_policy\n\t * app if available.\n\t *\n\t * Warning: this doesn't replace server side checking and will do nothing\n\t * if the password_policy app is disabled.\n\t */\n\tcheckPasswordStrength?: boolean\n\n\t/**\n\t * The minlength property defines the minimum number of characters\n\t * (as UTF-16 code units) the user can enter.\n\t */\n\tminlength?: number\n\n\t/**\n\t * Render as input[type=text] that looks like password field.\n\t * Allows to avoid unwanted password-specific browser behavior,\n\t * such as save or generate password prompt.\n\t * Useful for secret token fields.\n\t * Note: autocomplete=\"off\" is ignored by most browsers.\n\t */\n\tasText?: boolean\n}>(), {\n\tinputClass: '',\n\tminlength: undefined,\n\t// overwrite default\n\tshowTrailingButton: true,\n})\n\nconst modelValue = defineModel<string>({ default: '' })\nwatch(modelValue, debounce(checkPassword, 500))\n\n/**\n * The visibility of the password.\n * If this is set to true then the password will not be obfuscated by the browser.\n */\nconst visible = defineModel<boolean>('visible', { default: false })\n\nconst emit = defineEmits<{\n\tvalid: []\n\tinvalid: []\n}>()\n\n// public API\ndefineExpose({\n\tfocus,\n\tselect,\n})\n\n// password policy\ninterface PasswordPolicy {\n\t/**\n\t * The URLs to the password_policy app methods\n\t */\n\tapi: {\n\t\t/**\n\t\t * The URL to the password generator\n\t\t */\n\t\tgenerate: string\n\n\t\t/**\n\t\t * The URL to the password validator\n\t\t */\n\t\tvalidate: string\n\t}\n\n\t/**\n\t * Whether to enforce non common passwords\n\t */\n\tenforceNonCommonPassword: boolean\n\n\t/**\n\t * Whether to enforce numeric characters\n\t */\n\tenforceNumericCharacters: boolean\n\n\t/**\n\t * Whether to enforce special characters\n\t */\n\tenforceSpecialCharacters: boolean\n\n\t/**\n\t * Whether to enforce upper and lower case\n\t */\n\tenforceUpperLowerCase: boolean\n\n\t/**\n\t * The minimum length of the password\n\t */\n\tminLength: number\n}\n\nconst { password_policy: passwordPolicy } = getCapabilities() as { password_policy?: PasswordPolicy }\n\n// internal state\nconst inputField = useTemplateRef('inputField')\n\nconst internalHelpMessage = ref('')\nconst isValid = ref<boolean>()\n\nconst propsToForward = computed<Partial<NcInputFieldProps>>(() => {\n\tconst all = { ...props } as Partial<Writable<typeof props>>\n\t// our props\n\tdelete all.checkPasswordStrength\n\tdelete all.minlength\n\tdelete all.asText\n\t// other props already set in template\n\tdelete all.error\n\tdelete all.helperText\n\tdelete all.inputClass\n\tdelete all.success\n\n\treturn all satisfies Partial<NcInputFieldProps>\n})\n\n/**\n * Validate the entered password.\n * If available this method will use the password-policy app API to validate the password.\n */\nasync function checkPassword() {\n\tif (!props.checkPasswordStrength) {\n\t\treturn\n\t}\n\n\ttry {\n\t\tconst { data } = await axios.post(generateOcsUrl('apps/password_policy/api/v1/validate'), { password: modelValue.value })\n\t\tisValid.value = data.ocs.data.passed\n\t\tif (data.ocs.data.passed) {\n\t\t\tinternalHelpMessage.value = t('Password is secure')\n\t\t\t/**\n\t\t\t * Triggers when the internal password_policy detect that the\n\t\t\t * password entered is valid.\n\t\t\t */\n\t\t\temit('valid')\n\t\t\treturn\n\t\t}\n\n\t\tinternalHelpMessage.value = data.ocs.data.reason\n\t\t/**\n\t\t * Triggers when the internal password_policy detect that the\n\t\t * password entered is invalid.\n\t\t */\n\t\temit('invalid')\n\t} catch (error) {\n\t\tlogger.error('Password policy returned an error', { error })\n\t}\n}\n\n/**\n * Toggle the visibility of the password\n */\nfunction toggleVisibility() {\n\tvisible.value = !visible.value\n}\n\n/**\n * Focus the input element\n *\n * @param options - Focus options\n * @public\n */\nfunction focus(options?: FocusOptions) {\n\tinputField.value!.focus(options)\n}\n\n/**\n * Select all the text in the input\n *\n * @public\n */\nfunction select() {\n\tinputField.value!.select()\n}\n</script>\n\n<template>\n\t<NcInputField v-bind=\"propsToForward\"\n\t\tref=\"inputField\"\n\t\tv-model=\"modelValue\"\n\t\t:error=\"error || isValid === false\"\n\t\t:helper-text=\"helperText || internalHelpMessage\"\n\t\t:input-class=\"[inputClass, { 'password-field__input--secure-text': !visible && asText }]\"\n\t\t:minlength=\"minlength ?? passwordPolicy?.minLength ?? 0\"\n\t\t:success=\"success || isValid === true\"\n\t\t:trailing-button-label=\"visible ? t('Hide password') : t('Show password')\"\n\t\t:type=\"visible || asText ? 'text' : 'password'\"\n\t\t@trailing-button-click=\"toggleVisibility\">\n\t\t<template v-if=\"!!$slots.icon\" #icon>\n\t\t\t<!-- @slot Leading icon -->\n\t\t\t<slot name=\"icon\" />\n\t\t</template>\n\t\t<template #trailing-button-icon>\n\t\t\t<NcIconSvgWrapper :path=\"visible ? mdiEyeOff : mdiEye\" />\n\t\t</template>\n\t</NcInputField>\n</template>\n\n<style lang=\"scss\" scoped>\n:deep(.password-field__input--secure-text) {\n\t// Emulate password field look\n\t// This is not a part of the standard but well supported\n\t-webkit-text-security: disc;\n}\n</style>\n"],"names":["_useModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8GA,UAAM,QAAQ;AA+BR,UAAA,aAAaA,SAAmC,SAAA,YAAA;AACtD,UAAM,YAAY,SAAS,eAAe,GAAG,CAAC;AAMxC,UAAA,UAAUA,SAAoB,SAAC,SAA6B;AAElE,UAAM,OAAO;AAMA,aAAA;AAAA,MACZ;AAAA,MACA;AAAA,IAAA,CACA;AA6CD,UAAM,EAAE,iBAAiB,eAAe,IAAI,gBAAgB;AAGtD,UAAA,aAAa,eAAe,YAAY;AAExC,UAAA,sBAAsB,IAAI,EAAE;AAClC,UAAM,UAAU,IAAa;AAEvB,UAAA,iBAAiB,SAAqC,MAAM;AAC3D,YAAA,MAAM,EAAE,GAAG,MAAM;AAEvB,aAAO,IAAI;AACX,aAAO,IAAI;AACX,aAAO,IAAI;AAEX,aAAO,IAAI;AACX,aAAO,IAAI;AACX,aAAO,IAAI;AACX,aAAO,IAAI;AAEJ,aAAA;AAAA,IAAA,CACP;AAMD,mBAAe,gBAAgB;AAC1B,UAAA,CAAC,MAAM,uBAAuB;AACjC;AAAA,MAAA;AAGG,UAAA;AACH,cAAM,EAAE,KAAA,IAAS,MAAM,MAAM,KAAK,eAAe,sCAAsC,GAAG,EAAE,UAAU,WAAW,OAAO;AAChH,gBAAA,QAAQ,KAAK,IAAI,KAAK;AAC1B,YAAA,KAAK,IAAI,KAAK,QAAQ;AACL,8BAAA,QAAQ,EAAE,oBAAoB;AAKlD,eAAK,OAAO;AACZ;AAAA,QAAA;AAGmB,4BAAA,QAAQ,KAAK,IAAI,KAAK;AAK1C,aAAK,SAAS;AAAA,eACN,OAAO;AACf,eAAO,MAAM,qCAAqC,EAAE,MAAA,CAAO;AAAA,MAAA;AAAA,IAC5D;AAMD,aAAS,mBAAmB;AACnB,cAAA,QAAQ,CAAC,QAAQ;AAAA,IAAA;AAS1B,aAAS,MAAM,SAAwB;AAC3B,iBAAA,MAAO,MAAM,OAAO;AAAA,IAAA;AAQhC,aAAS,SAAS;AACjB,iBAAW,MAAO,OAAO;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/chunks/{NcRelatedResourcesPanel-BUasditW.mjs → NcRelatedResourcesPanel-CpOgjo9h.mjs}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import '../assets/NcRelatedResourcesPanel-
|
|
1
|
+
import '../assets/NcRelatedResourcesPanel-BQkQvMMD.css';
|
|
2
2
|
import axios from "@nextcloud/axios";
|
|
3
3
|
import { generateOcsUrl } from "@nextcloud/router";
|
|
4
4
|
import { getCapabilities } from "@nextcloud/capabilities";
|
|
@@ -7,8 +7,8 @@ import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
|
7
7
|
import { C as ChevronDown } from "./ChevronDown-FiGpp0KT.mjs";
|
|
8
8
|
import { C as ChevronUp } from "./ChevronUp-DPXFp1ss.mjs";
|
|
9
9
|
import { N as NcButton } from "./NcButton-yN4vYgXb.mjs";
|
|
10
|
-
import { N as NcIconSvgWrapper } from "./NcIconSvgWrapper-
|
|
11
|
-
import { r as register,
|
|
10
|
+
import { N as NcIconSvgWrapper } from "./NcIconSvgWrapper-CprKb_SE.mjs";
|
|
11
|
+
import { r as register, C as t39, a as t, D as t36, E as t8 } from "./_l10n-tXci8WM1.mjs";
|
|
12
12
|
import { g as getRoute } from "./autolink-CKPk5rzg.mjs";
|
|
13
13
|
const _sfc_main$4 = {
|
|
14
14
|
name: "AccountGroupIcon",
|
|
@@ -420,8 +420,8 @@ const _sfc_main = {
|
|
|
420
420
|
}
|
|
421
421
|
},
|
|
422
422
|
emits: [
|
|
423
|
-
"
|
|
424
|
-
"
|
|
423
|
+
"hasError",
|
|
424
|
+
"hasResources"
|
|
425
425
|
],
|
|
426
426
|
data() {
|
|
427
427
|
return {
|
|
@@ -485,10 +485,10 @@ const _sfc_main = {
|
|
|
485
485
|
this.fetchRelatedResources();
|
|
486
486
|
},
|
|
487
487
|
error(error) {
|
|
488
|
-
this.$emit("
|
|
488
|
+
this.$emit("hasError", Boolean(error));
|
|
489
489
|
},
|
|
490
490
|
resources(resources) {
|
|
491
|
-
this.$emit("
|
|
491
|
+
this.$emit("hasResources", resources.length > 0);
|
|
492
492
|
}
|
|
493
493
|
},
|
|
494
494
|
created() {
|
|
@@ -545,8 +545,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
545
545
|
])) : createCommentVNode("", true)
|
|
546
546
|
]);
|
|
547
547
|
}
|
|
548
|
-
const NcRelatedResourcesPanel = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-
|
|
548
|
+
const NcRelatedResourcesPanel = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-e15d2b5c"]]);
|
|
549
549
|
export {
|
|
550
550
|
NcRelatedResourcesPanel as N
|
|
551
551
|
};
|
|
552
|
-
//# sourceMappingURL=NcRelatedResourcesPanel-
|
|
552
|
+
//# sourceMappingURL=NcRelatedResourcesPanel-CpOgjo9h.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcRelatedResourcesPanel-BUasditW.mjs","sources":["../../node_modules/vue-material-design-icons/AccountGroup.vue","../../node_modules/vue-material-design-icons/OpenInNew.vue","../../src/components/NcRelatedResourcesPanel/NcTeamResources.vue","../../src/components/NcRelatedResourcesPanel/NcResource.vue","../../src/components/NcRelatedResourcesPanel/NcRelatedResourcesPanel.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon account-group-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"AccountGroupIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon open-in-new-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"OpenInNewIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<div v-if=\"appEnabled && isVisible\" class=\"team-resources\">\n\t\t<h5 class=\"team-resources__header\">\n\t\t\t{{ t('Related team resources') }}\n\t\t</h5>\n\t\t<details v-for=\"team in teamResources\"\n\t\t\t:key=\"team.teamId\"\n\t\t\tname=\"Team resources\"\n\t\t\tclass=\"related-team\"\n\t\t\t:open=\"open(team.teamId)\"\n\t\t\t@toggle=\"(event) => toggleOpen(team.teamId, event.target.open)\">\n\t\t\t<summary class=\"related-team__header\">\n\t\t\t\t<h5 class=\"related-team__name\">\n\t\t\t\t\t<AccountGroup :size=\"20\" />\n\t\t\t\t\t{{ team.displayName }}\n\t\t\t\t</h5>\n\t\t\t\t<NcButton :aria-label=\"t('View team')\"\n\t\t\t\t\t:href=\"team.link\"\n\t\t\t\t\t:title=\"t('View team')\"\n\t\t\t\t\tvariant=\"tertiary\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<OpenInNew :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\n\t\t\t\t<ChevronUp v-if=\"open(team.teamId)\"\n\t\t\t\t\t:size=\"20\" />\n\t\t\t\t<ChevronDown v-else\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</summary>\n\n\t\t\t<div>\n\t\t\t\t<div v-for=\"provider in teamProviders(team.teamId)\"\n\t\t\t\t\t:key=\"provider.id\"\n\t\t\t\t\tclass=\"related-team-provider\">\n\t\t\t\t\t<h6 v-if=\"provider.resources.length > 0\">\n\t\t\t\t\t\t{{ provider.name }}\n\t\t\t\t\t</h6>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li v-for=\"resource in provider.resources\" :key=\"resource.url\" class=\"related-team-resource\">\n\t\t\t\t\t\t\t<a :href=\"resource.url\" class=\"related-team-resource__link\">\n\t\t\t\t\t\t\t\t<span v-if=\"resource.iconEmoji\" class=\"resource__icon\">\n\t\t\t\t\t\t\t\t\t{{ resource.iconEmoji }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<NcIconSvgWrapper v-else-if=\"resource.iconSvg\"\n\t\t\t\t\t\t\t\t\tclass=\"resource__icon\"\n\t\t\t\t\t\t\t\t\t:svg=\"resource.iconSvg\"\n\t\t\t\t\t\t\t\t\t:size=\"20\" />\n\t\t\t\t\t\t\t\t<span v-else-if=\"resource.iconURL\" class=\"resource__icon\">\n\t\t\t\t\t\t\t\t\t<img :src=\"resource.iconURL\" alt=\"\">\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<span class=\"resource__name\">\n\t\t\t\t\t\t\t\t\t{{ resource.label }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</details>\n\t</div>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport AccountGroup from 'vue-material-design-icons/AccountGroup.vue'\nimport ChevronDown from 'vue-material-design-icons/ChevronDown.vue'\nimport ChevronUp from 'vue-material-design-icons/ChevronUp.vue'\nimport OpenInNew from 'vue-material-design-icons/OpenInNew.vue'\nimport NcButton from '../NcButton/NcButton.vue'\nimport NcIconSvgWrapper from '../NcIconSvgWrapper/NcIconSvgWrapper.vue'\n\nimport { t } from '../../l10n.js'\n\nconst teamResourceProviders = getCapabilities()?.circles?.teamResourceProviders ?? []\n\nexport default {\n\tname: 'NcTeamResources',\n\n\tcomponents: {\n\t\tAccountGroup,\n\t\tChevronDown,\n\t\tChevronUp,\n\t\tOpenInNew,\n\t\tNcButton,\n\t\tNcIconSvgWrapper,\n\t},\n\n\tprops: {\n\t\tproviderId: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\titemId: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tappEnabled: OC?.appswebroots?.circles !== undefined && (OC.config.version.split('.')[0] ?? 0) >= 29,\n\t\t\tloading: false,\n\t\t\tteamResources: null,\n\t\t\tteamOpen: [],\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisVisible() {\n\t\t\treturn !this.loading && this.teamResources?.length > 0\n\t\t},\n\t\tteamProviders() {\n\t\t\treturn (teamId) => {\n\t\t\t\tconst team = this.teamResources.find(t => t.teamId === teamId)\n\t\t\t\treturn team.resources?.reduce((acc, resource) => {\n\t\t\t\t\tif (resource.provider.id === this.providerId && resource.id === String(this.itemId)) {\n\t\t\t\t\t\treturn acc\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!acc[resource.provider.id]) {\n\t\t\t\t\t\tacc[resource.provider.id] = resource.provider\n\t\t\t\t\t\tacc[resource.provider.id].resources = []\n\t\t\t\t\t}\n\n\t\t\t\t\tif (resource.provider.id === this.providerId && resource.id === String(this.itemId)) {\n\t\t\t\t\t\treturn acc\n\t\t\t\t\t}\n\n\t\t\t\t\tacc[resource.provider.id].resources.push(resource)\n\t\t\t\t\treturn acc\n\t\t\t\t}, {})\n\t\t\t}\n\t\t},\n\t\topen() {\n\t\t\treturn (teamId) => {\n\t\t\t\treturn this.teamOpen.indexOf(teamId) !== -1\n\t\t\t}\n\t\t},\n\t},\n\n\twatch: {\n\t\tproviderId() {\n\t\t\tthis.fetchTeamResources()\n\t\t},\n\t\titemId() {\n\t\t\tthis.fetchTeamResources()\n\t\t},\n\t},\n\n\tcreated() {\n\t\tthis.fetchTeamResources()\n\t},\n\n\tmethods: {\n\t\tt,\n\t\tasync fetchTeamResources() {\n\t\t\tif (!teamResourceProviders.includes(this.providerId)) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tthis.loading = true\n\t\t\t\tconst response = await axios.get(generateOcsUrl(`/teams/resources/${this.providerId}/${this.itemId}`))\n\t\t\t\tthis.teamResources = response.data.ocs.data.teams\n\t\t\t\tthis.teamOpen = [this.teamResources[0]?.teamId]\n\t\t\t} catch (e) {\n\t\t\t\tthis.teamResources = null\n\t\t\t\tconsole.error(e)\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t\ttoggleOpen(teamId, open) {\n\t\t\tif (open) {\n\t\t\t\tthis.teamOpen.push(teamId)\n\t\t\t} else {\n\t\t\t\tthis.teamOpen.splice(this.teamOpen.indexOf(teamId), 1)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.team-resources__header {\n\tfont-weight: bold;\n\tmargin-bottom: 6px;\n}\n\n.related-team {\n\tborder-radius: var(--border-radius-rounded);\n\tborder: 2px solid var(--color-border-dark);\n\tmargin-bottom: 6px;\n\n\t&__open {\n\t\tborder-color: var(--color-primary-element);\n\t}\n\n\t&__header {\n\t\tpadding: 6px;\n\t\tpadding-inline-end: 24px;\n\t\tdisplay: flex;\n\t\tgap: 12px;\n\t}\n\n\t&__name {\n\t\tdisplay: flex;\n\t\tflex-grow: 1;\n\t\talign-items: center;\n\t\tgap: 12px;\n\t\tpadding: 6px 12px;\n\t\tfont-weight: bold;\n\t\tmargin: 0;\n\t}\n\n\t.related-team-provider {\n\t\tpadding: 6px 12px;\n\n\t\t&__name {\n\t\t\tfont-weight: bold;\n\t\t\tmargin-bottom: 3px;\n\t\t}\n\n\t\t&__link {\n\t\t\tdisplay: flex;\n\t\t\tgap: 12px;\n\t\t\tpadding: 6px 12px;\n\t\t\tfont-weight: bold;\n\t\t}\n\t}\n\n\t.related-team-resource {\n\t\t&__link {\n\t\t\tdisplay: flex;\n\t\t\tgap: 12px;\n\t\t\theight: var(--default-clickable-area);\n\t\t\talign-items: center;\n\t\t\tborder-radius: var(--border-radius-large);\n\n\t\t\t&:hover {\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t}\n\t\t\t&:focus {\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t\toutline: 2px solid var(--color-primary-element);\n\t\t\t}\n\t\t}\n\t\t.resource__icon {\n\t\t\twidth: var(--default-clickable-area);\n\t\t\theight: var(--default-clickable-area);\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\ttext-align: center;\n\n\t\t\t& > img {\n\t\t\t\tborder-radius: var(--border-radius-pill);\n\t\t\t\toverflow: hidden;\n\t\t\t\twidth: 32px;\n\t\t\t\theight: 32px;\n\t\t\t}\n\t\t}\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<li class=\"resource\">\n\t\t<NcButton class=\"resource__button\"\n\t\t\t:aria-label=\"labelTranslated\"\n\t\t\t:to=\"route\"\n\t\t\t:href=\"route ? null : url\"\n\t\t\tvariant=\"tertiary\">\n\t\t\t<template #icon>\n\t\t\t\t<div class=\"resource__icon\">\n\t\t\t\t\t<img :src=\"icon\">\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t{{ name }}\n\t\t</NcButton>\n\t</li>\n</template>\n\n<script>\nimport NcButton from '../NcButton/index.ts'\n\nimport { getRoute } from '../NcRichText/autolink.ts'\nimport { t } from '../../l10n.js'\n\nexport default {\n\tname: 'NcResource',\n\n\tcomponents: {\n\t\tNcButton,\n\t},\n\n\tprops: {\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\turl: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tlabelTranslated: t('Open link to \"{resourceName}\"', { resourceName: this.name }),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\troute() {\n\t\t\treturn getRoute(this.$router, this.url)\n\t\t},\n\t},\n\n\tmethods: {\n\t\tt,\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.resource {\n\tdisplay: flex;\n\talign-items: center;\n\theight: var(--default-clickable-area);\n\n\t// Override default NcButton styles\n\t&__button {\n\t\twidth: 100% !important;\n\t\tjustify-content: flex-start !important;\n\t\tpadding: 0 !important;\n\n\t\t&:deep {\n\t\t\t.button-vue__wrapper {\n\t\t\t\tjustify-content: flex-start !important;\n\n\t\t\t\t.button-vue__text {\n\t\t\t\t\tfont-weight: normal !important;\n\t\t\t\t\tmargin-inline-start: 2px !important;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t&__icon {\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t\tborder-radius: 50%;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\n\t\timg {\n\t\t\twidth: 16px;\n\t\t\theight: 16px;\n\t\t\tfilter: var(--background-invert-if-dark);\n\t\t}\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Usage\n\nUse this component to display the related resources of a given item.\n\n```\n<template>\n\t<NcRelatedResourcesPanel provider-id=\"talk\"\n\t\theader=\"Related resources for talk\"\n\t\t:item-id=\"conversationId\" />\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tconversationId: 1,\n\t\t}\n\t},\n}\n</script>\n```\n</docs>\n\n<template>\n\t<div>\n\t\t<NcTeamResources :provider-id=\"providerId\"\n\t\t\t:item-id=\"itemId\" />\n\n\t\t<div v-if=\"appEnabled && isVisible\" class=\"related-resources\">\n\t\t\t<div class=\"related-resources__header\">\n\t\t\t\t<h5>{{ header }}</h5>\n\t\t\t\t<p>{{ subline }}</p>\n\t\t\t</div>\n\n\t\t\t<NcResource v-for=\"resource in resources\"\n\t\t\t\t:key=\"resource.itemId\"\n\t\t\t\tclass=\"related-resources__entry\"\n\t\t\t\t:icon=\"resource.icon\"\n\t\t\t\t:name=\"resource.title\"\n\t\t\t\t:url=\"resource.url\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport NcTeamResources from './NcTeamResources.vue'\nimport NcResource from './NcResource.vue'\n\nimport { t } from '../../l10n.js'\n\nexport default {\n\tname: 'NcRelatedResourcesPanel',\n\n\tcomponents: {\n\t\tNcResource,\n\t\tNcTeamResources,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * The provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n\t\t */\n\t\tproviderId: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * The item id which uniquely identities the e.g. Calendar event, Deck board, file, Talk room, etc.\n\t\t */\n\t\titemId: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * Limits to specific resource type. i.e. any provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n\t\t */\n\t\tresourceType: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * Set the maximum number of resources to load\n\t\t */\n\t\tlimit: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0,\n\t\t},\n\t\t/**\n\t\t * Only used by the files sidebar\n\t\t *\n\t\t * File info is passed when registered with `OCA.Sharing.ShareTabSections.registerSection()`\n\t\t */\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * Make the header name dynamic\n\t\t */\n\t\theader: {\n\t\t\ttype: String,\n\t\t\tdefault: t('Related resources'),\n\t\t},\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: t('Anything shared with the same group of people will show up here'),\n\t\t},\n\t\t/**\n\t\t * If this element is used on a primary element set to true for primary styling.\n\t\t */\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\temits: [\n\t\t'has-error',\n\t\t'has-resources',\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tappEnabled: OC?.appswebroots?.related_resources !== undefined,\n\t\t\tloading: false,\n\t\t\terror: null,\n\t\t\tresources: [],\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisVisible() {\n\t\t\tif (this.loading) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn this.error ?? this.resources.length > 0\n\t\t},\n\t\tsubline() {\n\t\t\tif (this.error) {\n\t\t\t\treturn t('Error getting related resources. Please contact your system administrator if you have any questions.')\n\t\t\t}\n\t\t\treturn this.description\n\t\t},\n\n\t\thasResourceInfo() {\n\t\t\tif (this.providerId !== null && this.itemId !== null) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (this.fileInfo !== null) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\n\t\tisFiles() {\n\t\t\treturn this.fileInfo?.id !== undefined\n\t\t},\n\n\t\turl() {\n\t\t\tlet providerId = null\n\t\t\tlet itemId = null\n\n\t\t\tif (this.isFiles) {\n\t\t\t\tproviderId = 'files'\n\t\t\t\titemId = this.fileInfo.id\n\t\t\t} else {\n\t\t\t\tproviderId = this.providerId\n\t\t\t\titemId = this.itemId\n\t\t\t}\n\n\t\t\treturn generateOcsUrl('/apps/related_resources/related/{providerId}?itemId={itemId}&resourceType={resourceType}&limit={limit}&format=json', {\n\t\t\t\tproviderId,\n\t\t\t\titemId,\n\t\t\t\tresourceType: this.resourceType,\n\t\t\t\tlimit: this.limit,\n\t\t\t})\n\t\t},\n\t},\n\n\twatch: {\n\t\tproviderId() {\n\t\t\tthis.fetchRelatedResources()\n\t\t},\n\t\titemId() {\n\t\t\tthis.fetchRelatedResources()\n\t\t},\n\t\tfileInfo() {\n\t\t\tthis.fetchRelatedResources()\n\t\t},\n\t\terror(error) {\n\t\t\t/**\n\t\t\t * Emitted when the error value changes\n\t\t\t *\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tthis.$emit('has-error', Boolean(error))\n\t\t},\n\t\tresources(resources) {\n\t\t\t/**\n\t\t\t * Emitted when the resources value changes\n\t\t\t *\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tthis.$emit('has-resources', resources.length > 0)\n\t\t},\n\t},\n\n\tcreated() {\n\t\tthis.fetchRelatedResources()\n\t},\n\n\tmethods: {\n\t\tt,\n\t\tasync fetchRelatedResources() {\n\t\t\tif (!this.appEnabled || !this.hasResourceInfo) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.loading = true\n\t\t\tthis.error = null\n\t\t\tthis.resources = []\n\t\t\ttry {\n\t\t\t\tconst response = await axios.get(this.url)\n\t\t\t\tthis.resources = response.data.ocs?.data\n\t\t\t} catch (e) {\n\t\t\t\tthis.error = e\n\t\t\t\tconsole.error(e)\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.related-resources {\n\t&__header {\n\n\t\th5 {\n\t\t\tfont-weight: bold;\n\t\t\tmargin-bottom: 6px;\n\t\t}\n\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n}\n</style>\n"],"names":["_sfc_main","_hoisted_1","_hoisted_2","_hoisted_3","_createElementBlock","_mergeProps","_createElementVNode","_hoisted_4","_createCommentVNode","t","_openBlock","_toDisplayString","_Fragment","_renderList","_createVNode","_createTextVNode","_createBlock","_withCtx"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
1
|
+
{"version":3,"file":"NcRelatedResourcesPanel-CpOgjo9h.mjs","sources":["../../node_modules/vue-material-design-icons/AccountGroup.vue","../../node_modules/vue-material-design-icons/OpenInNew.vue","../../src/components/NcRelatedResourcesPanel/NcTeamResources.vue","../../src/components/NcRelatedResourcesPanel/NcResource.vue","../../src/components/NcRelatedResourcesPanel/NcRelatedResourcesPanel.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon account-group-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"AccountGroupIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon open-in-new-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"OpenInNewIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<div v-if=\"appEnabled && isVisible\" class=\"team-resources\">\n\t\t<h5 class=\"team-resources__header\">\n\t\t\t{{ t('Related team resources') }}\n\t\t</h5>\n\t\t<details v-for=\"team in teamResources\"\n\t\t\t:key=\"team.teamId\"\n\t\t\tname=\"Team resources\"\n\t\t\tclass=\"related-team\"\n\t\t\t:open=\"open(team.teamId)\"\n\t\t\t@toggle=\"(event) => toggleOpen(team.teamId, event.target.open)\">\n\t\t\t<summary class=\"related-team__header\">\n\t\t\t\t<h5 class=\"related-team__name\">\n\t\t\t\t\t<AccountGroup :size=\"20\" />\n\t\t\t\t\t{{ team.displayName }}\n\t\t\t\t</h5>\n\t\t\t\t<NcButton :aria-label=\"t('View team')\"\n\t\t\t\t\t:href=\"team.link\"\n\t\t\t\t\t:title=\"t('View team')\"\n\t\t\t\t\tvariant=\"tertiary\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<OpenInNew :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\n\t\t\t\t<ChevronUp v-if=\"open(team.teamId)\"\n\t\t\t\t\t:size=\"20\" />\n\t\t\t\t<ChevronDown v-else\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</summary>\n\n\t\t\t<div>\n\t\t\t\t<div v-for=\"provider in teamProviders(team.teamId)\"\n\t\t\t\t\t:key=\"provider.id\"\n\t\t\t\t\tclass=\"related-team-provider\">\n\t\t\t\t\t<h6 v-if=\"provider.resources.length > 0\">\n\t\t\t\t\t\t{{ provider.name }}\n\t\t\t\t\t</h6>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li v-for=\"resource in provider.resources\" :key=\"resource.url\" class=\"related-team-resource\">\n\t\t\t\t\t\t\t<a :href=\"resource.url\" class=\"related-team-resource__link\">\n\t\t\t\t\t\t\t\t<span v-if=\"resource.iconEmoji\" class=\"resource__icon\">\n\t\t\t\t\t\t\t\t\t{{ resource.iconEmoji }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<NcIconSvgWrapper v-else-if=\"resource.iconSvg\"\n\t\t\t\t\t\t\t\t\tclass=\"resource__icon\"\n\t\t\t\t\t\t\t\t\t:svg=\"resource.iconSvg\"\n\t\t\t\t\t\t\t\t\t:size=\"20\" />\n\t\t\t\t\t\t\t\t<span v-else-if=\"resource.iconURL\" class=\"resource__icon\">\n\t\t\t\t\t\t\t\t\t<img :src=\"resource.iconURL\" alt=\"\">\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<span class=\"resource__name\">\n\t\t\t\t\t\t\t\t\t{{ resource.label }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</details>\n\t</div>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport AccountGroup from 'vue-material-design-icons/AccountGroup.vue'\nimport ChevronDown from 'vue-material-design-icons/ChevronDown.vue'\nimport ChevronUp from 'vue-material-design-icons/ChevronUp.vue'\nimport OpenInNew from 'vue-material-design-icons/OpenInNew.vue'\nimport NcButton from '../NcButton/NcButton.vue'\nimport NcIconSvgWrapper from '../NcIconSvgWrapper/NcIconSvgWrapper.vue'\n\nimport { t } from '../../l10n.js'\n\nconst teamResourceProviders = getCapabilities()?.circles?.teamResourceProviders ?? []\n\nexport default {\n\tname: 'NcTeamResources',\n\n\tcomponents: {\n\t\tAccountGroup,\n\t\tChevronDown,\n\t\tChevronUp,\n\t\tOpenInNew,\n\t\tNcButton,\n\t\tNcIconSvgWrapper,\n\t},\n\n\tprops: {\n\t\tproviderId: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\titemId: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tappEnabled: OC?.appswebroots?.circles !== undefined && (OC.config.version.split('.')[0] ?? 0) >= 29,\n\t\t\tloading: false,\n\t\t\tteamResources: null,\n\t\t\tteamOpen: [],\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisVisible() {\n\t\t\treturn !this.loading && this.teamResources?.length > 0\n\t\t},\n\t\tteamProviders() {\n\t\t\treturn (teamId) => {\n\t\t\t\tconst team = this.teamResources.find(t => t.teamId === teamId)\n\t\t\t\treturn team.resources?.reduce((acc, resource) => {\n\t\t\t\t\tif (resource.provider.id === this.providerId && resource.id === String(this.itemId)) {\n\t\t\t\t\t\treturn acc\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!acc[resource.provider.id]) {\n\t\t\t\t\t\tacc[resource.provider.id] = resource.provider\n\t\t\t\t\t\tacc[resource.provider.id].resources = []\n\t\t\t\t\t}\n\n\t\t\t\t\tif (resource.provider.id === this.providerId && resource.id === String(this.itemId)) {\n\t\t\t\t\t\treturn acc\n\t\t\t\t\t}\n\n\t\t\t\t\tacc[resource.provider.id].resources.push(resource)\n\t\t\t\t\treturn acc\n\t\t\t\t}, {})\n\t\t\t}\n\t\t},\n\t\topen() {\n\t\t\treturn (teamId) => {\n\t\t\t\treturn this.teamOpen.indexOf(teamId) !== -1\n\t\t\t}\n\t\t},\n\t},\n\n\twatch: {\n\t\tproviderId() {\n\t\t\tthis.fetchTeamResources()\n\t\t},\n\t\titemId() {\n\t\t\tthis.fetchTeamResources()\n\t\t},\n\t},\n\n\tcreated() {\n\t\tthis.fetchTeamResources()\n\t},\n\n\tmethods: {\n\t\tt,\n\t\tasync fetchTeamResources() {\n\t\t\tif (!teamResourceProviders.includes(this.providerId)) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tthis.loading = true\n\t\t\t\tconst response = await axios.get(generateOcsUrl(`/teams/resources/${this.providerId}/${this.itemId}`))\n\t\t\t\tthis.teamResources = response.data.ocs.data.teams\n\t\t\t\tthis.teamOpen = [this.teamResources[0]?.teamId]\n\t\t\t} catch (e) {\n\t\t\t\tthis.teamResources = null\n\t\t\t\tconsole.error(e)\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t\ttoggleOpen(teamId, open) {\n\t\t\tif (open) {\n\t\t\t\tthis.teamOpen.push(teamId)\n\t\t\t} else {\n\t\t\t\tthis.teamOpen.splice(this.teamOpen.indexOf(teamId), 1)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.team-resources__header {\n\tfont-weight: bold;\n\tmargin-bottom: 6px;\n}\n\n.related-team {\n\tborder-radius: var(--border-radius-rounded);\n\tborder: 2px solid var(--color-border-dark);\n\tmargin-bottom: 6px;\n\n\t&__open {\n\t\tborder-color: var(--color-primary-element);\n\t}\n\n\t&__header {\n\t\tpadding: 6px;\n\t\tpadding-inline-end: 24px;\n\t\tdisplay: flex;\n\t\tgap: 12px;\n\t}\n\n\t&__name {\n\t\tdisplay: flex;\n\t\tflex-grow: 1;\n\t\talign-items: center;\n\t\tgap: 12px;\n\t\tpadding: 6px 12px;\n\t\tfont-weight: bold;\n\t\tmargin: 0;\n\t}\n\n\t.related-team-provider {\n\t\tpadding: 6px 12px;\n\n\t\t&__name {\n\t\t\tfont-weight: bold;\n\t\t\tmargin-bottom: 3px;\n\t\t}\n\n\t\t&__link {\n\t\t\tdisplay: flex;\n\t\t\tgap: 12px;\n\t\t\tpadding: 6px 12px;\n\t\t\tfont-weight: bold;\n\t\t}\n\t}\n\n\t.related-team-resource {\n\t\t&__link {\n\t\t\tdisplay: flex;\n\t\t\tgap: 12px;\n\t\t\theight: var(--default-clickable-area);\n\t\t\talign-items: center;\n\t\t\tborder-radius: var(--border-radius-large);\n\n\t\t\t&:hover {\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t}\n\t\t\t&:focus {\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t\toutline: 2px solid var(--color-primary-element);\n\t\t\t}\n\t\t}\n\t\t.resource__icon {\n\t\t\twidth: var(--default-clickable-area);\n\t\t\theight: var(--default-clickable-area);\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\ttext-align: center;\n\n\t\t\t& > img {\n\t\t\t\tborder-radius: var(--border-radius-pill);\n\t\t\t\toverflow: hidden;\n\t\t\t\twidth: 32px;\n\t\t\t\theight: 32px;\n\t\t\t}\n\t\t}\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<li class=\"resource\">\n\t\t<NcButton class=\"resource__button\"\n\t\t\t:aria-label=\"labelTranslated\"\n\t\t\t:to=\"route\"\n\t\t\t:href=\"route ? null : url\"\n\t\t\tvariant=\"tertiary\">\n\t\t\t<template #icon>\n\t\t\t\t<div class=\"resource__icon\">\n\t\t\t\t\t<img :src=\"icon\">\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t{{ name }}\n\t\t</NcButton>\n\t</li>\n</template>\n\n<script>\nimport NcButton from '../NcButton/index.ts'\n\nimport { getRoute } from '../NcRichText/autolink.ts'\nimport { t } from '../../l10n.js'\n\nexport default {\n\tname: 'NcResource',\n\n\tcomponents: {\n\t\tNcButton,\n\t},\n\n\tprops: {\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\turl: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tlabelTranslated: t('Open link to \"{resourceName}\"', { resourceName: this.name }),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\troute() {\n\t\t\treturn getRoute(this.$router, this.url)\n\t\t},\n\t},\n\n\tmethods: {\n\t\tt,\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.resource {\n\tdisplay: flex;\n\talign-items: center;\n\theight: var(--default-clickable-area);\n\n\t// Override default NcButton styles\n\t&__button {\n\t\twidth: 100% !important;\n\t\tjustify-content: flex-start !important;\n\t\tpadding: 0 !important;\n\n\t\t&:deep {\n\t\t\t.button-vue__wrapper {\n\t\t\t\tjustify-content: flex-start !important;\n\n\t\t\t\t.button-vue__text {\n\t\t\t\t\tfont-weight: normal !important;\n\t\t\t\t\tmargin-inline-start: 2px !important;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t&__icon {\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t\tborder-radius: 50%;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\n\t\timg {\n\t\t\twidth: 16px;\n\t\t\theight: 16px;\n\t\t\tfilter: var(--background-invert-if-dark);\n\t\t}\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Usage\n\nUse this component to display the related resources of a given item.\n\n```\n<template>\n\t<NcRelatedResourcesPanel provider-id=\"talk\"\n\t\theader=\"Related resources for talk\"\n\t\t:item-id=\"conversationId\" />\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tconversationId: 1,\n\t\t}\n\t},\n}\n</script>\n```\n</docs>\n\n<template>\n\t<div>\n\t\t<NcTeamResources :provider-id=\"providerId\"\n\t\t\t:item-id=\"itemId\" />\n\n\t\t<div v-if=\"appEnabled && isVisible\" class=\"related-resources\">\n\t\t\t<div class=\"related-resources__header\">\n\t\t\t\t<h5>{{ header }}</h5>\n\t\t\t\t<p>{{ subline }}</p>\n\t\t\t</div>\n\n\t\t\t<NcResource v-for=\"resource in resources\"\n\t\t\t\t:key=\"resource.itemId\"\n\t\t\t\tclass=\"related-resources__entry\"\n\t\t\t\t:icon=\"resource.icon\"\n\t\t\t\t:name=\"resource.title\"\n\t\t\t\t:url=\"resource.url\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport NcTeamResources from './NcTeamResources.vue'\nimport NcResource from './NcResource.vue'\n\nimport { t } from '../../l10n.js'\n\nexport default {\n\tname: 'NcRelatedResourcesPanel',\n\n\tcomponents: {\n\t\tNcResource,\n\t\tNcTeamResources,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * The provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n\t\t */\n\t\tproviderId: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * The item id which uniquely identities the e.g. Calendar event, Deck board, file, Talk room, etc.\n\t\t */\n\t\titemId: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * Limits to specific resource type. i.e. any provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n\t\t */\n\t\tresourceType: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * Set the maximum number of resources to load\n\t\t */\n\t\tlimit: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0,\n\t\t},\n\t\t/**\n\t\t * Only used by the files sidebar\n\t\t *\n\t\t * File info is passed when registered with `OCA.Sharing.ShareTabSections.registerSection()`\n\t\t */\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * Make the header name dynamic\n\t\t */\n\t\theader: {\n\t\t\ttype: String,\n\t\t\tdefault: t('Related resources'),\n\t\t},\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: t('Anything shared with the same group of people will show up here'),\n\t\t},\n\t\t/**\n\t\t * If this element is used on a primary element set to true for primary styling.\n\t\t */\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\temits: [\n\t\t'hasError',\n\t\t'hasResources',\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tappEnabled: OC?.appswebroots?.related_resources !== undefined,\n\t\t\tloading: false,\n\t\t\terror: null,\n\t\t\tresources: [],\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisVisible() {\n\t\t\tif (this.loading) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn this.error ?? this.resources.length > 0\n\t\t},\n\t\tsubline() {\n\t\t\tif (this.error) {\n\t\t\t\treturn t('Error getting related resources. Please contact your system administrator if you have any questions.')\n\t\t\t}\n\t\t\treturn this.description\n\t\t},\n\n\t\thasResourceInfo() {\n\t\t\tif (this.providerId !== null && this.itemId !== null) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (this.fileInfo !== null) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\n\t\tisFiles() {\n\t\t\treturn this.fileInfo?.id !== undefined\n\t\t},\n\n\t\turl() {\n\t\t\tlet providerId = null\n\t\t\tlet itemId = null\n\n\t\t\tif (this.isFiles) {\n\t\t\t\tproviderId = 'files'\n\t\t\t\titemId = this.fileInfo.id\n\t\t\t} else {\n\t\t\t\tproviderId = this.providerId\n\t\t\t\titemId = this.itemId\n\t\t\t}\n\n\t\t\treturn generateOcsUrl('/apps/related_resources/related/{providerId}?itemId={itemId}&resourceType={resourceType}&limit={limit}&format=json', {\n\t\t\t\tproviderId,\n\t\t\t\titemId,\n\t\t\t\tresourceType: this.resourceType,\n\t\t\t\tlimit: this.limit,\n\t\t\t})\n\t\t},\n\t},\n\n\twatch: {\n\t\tproviderId() {\n\t\t\tthis.fetchRelatedResources()\n\t\t},\n\t\titemId() {\n\t\t\tthis.fetchRelatedResources()\n\t\t},\n\t\tfileInfo() {\n\t\t\tthis.fetchRelatedResources()\n\t\t},\n\t\terror(error) {\n\t\t\t/**\n\t\t\t * Emitted when the error value changes\n\t\t\t *\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tthis.$emit('hasError', Boolean(error))\n\t\t},\n\t\tresources(resources) {\n\t\t\t/**\n\t\t\t * Emitted when the resources value changes\n\t\t\t *\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tthis.$emit('hasResources', resources.length > 0)\n\t\t},\n\t},\n\n\tcreated() {\n\t\tthis.fetchRelatedResources()\n\t},\n\n\tmethods: {\n\t\tt,\n\t\tasync fetchRelatedResources() {\n\t\t\tif (!this.appEnabled || !this.hasResourceInfo) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.loading = true\n\t\t\tthis.error = null\n\t\t\tthis.resources = []\n\t\t\ttry {\n\t\t\t\tconst response = await axios.get(this.url)\n\t\t\t\tthis.resources = response.data.ocs?.data\n\t\t\t} catch (e) {\n\t\t\t\tthis.error = e\n\t\t\t\tconsole.error(e)\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.related-resources {\n\t&__header {\n\n\t\th5 {\n\t\t\tfont-weight: bold;\n\t\t\tmargin-bottom: 6px;\n\t\t}\n\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n}\n</style>\n"],"names":["_sfc_main","_hoisted_1","_hoisted_2","_hoisted_3","_createElementBlock","_mergeProps","_createElementVNode","_hoisted_4","_createCommentVNode","t","_openBlock","_toDisplayString","_Fragment","_renderList","_createVNode","_createTextVNode","_createBlock","_withCtx"],"mappings":"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","x_google_ignoreList":[0,1]}
|
package/dist/chunks/{NcRichContenteditable-CGP8KN41.mjs → NcRichContenteditable-J9ILu0dF.mjs}
RENAMED
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import '../assets/NcRichContenteditable-
|
|
2
|
-
import { r as register,
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import '../assets/NcRichContenteditable-1zTxLjsG.css';
|
|
2
|
+
import { r as register, m as t35, s as t32, a as t, u as n } from "./_l10n-tXci8WM1.mjs";
|
|
3
|
+
import { useIsDarkTheme } from "../composables/useIsDarkTheme/index.mjs";
|
|
4
|
+
import { g as getAvatarUrl } from "./NcMentionBubble.vue_vue_type_style_index_0_scoped_25f4d6e1_lang-aMwzB20D.mjs";
|
|
5
|
+
import { N as NcUserStatusIcon } from "./NcUserStatusIcon-DqQYA-EE.mjs";
|
|
5
6
|
import { createElementBlock, openBlock, normalizeClass, createElementVNode, normalizeStyle, toDisplayString, createApp, resolveComponent, createBlock, createCommentVNode, mergeProps, withModifiers, withKeys } from "vue";
|
|
6
7
|
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
7
8
|
import escapeHTML from "escape-html";
|
|
8
9
|
import stripTags from "striptags";
|
|
9
10
|
import { e as emojiSearch, a as emojiAddRecent } from "./emoji-BY_D0V5K.mjs";
|
|
10
|
-
import "./NcRichText-
|
|
11
|
-
import "./
|
|
11
|
+
import "./NcRichText-DvbC3aUR.mjs";
|
|
12
|
+
import "./customPickerElements-CH9vlHLd.mjs";
|
|
12
13
|
import "@vueuse/core";
|
|
13
14
|
import "vue-router";
|
|
14
|
-
import { g as getLinkWithPicker,
|
|
15
|
+
import { g as getLinkWithPicker, c as searchProvider } from "./referencePickerModal-DREcDQKg.mjs";
|
|
15
16
|
import "./autolink-CKPk5rzg.mjs";
|
|
16
17
|
import "./NcButton-yN4vYgXb.mjs";
|
|
17
18
|
import "@nextcloud/axios";
|
|
@@ -20,16 +21,16 @@ import "@nextcloud/auth";
|
|
|
20
21
|
import "@nextcloud/router";
|
|
21
22
|
import "./NcEmptyContent-BdOezubv.mjs";
|
|
22
23
|
import "./NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs";
|
|
23
|
-
import "./NcSelect-
|
|
24
|
+
import "./NcSelect-D6XzjG4n.mjs";
|
|
24
25
|
import "./NcLoadingIcon-Dm3kRPrf.mjs";
|
|
25
26
|
import "dompurify";
|
|
26
|
-
import "./NcIconSvgWrapper-
|
|
27
|
+
import "./NcIconSvgWrapper-CprKb_SE.mjs";
|
|
27
28
|
import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
|
|
28
|
-
import "./NcInputField-
|
|
29
|
-
import "./NcTextField.vue_vue_type_script_setup_true_lang-
|
|
29
|
+
import "./NcInputField-BZWRHkmQ.mjs";
|
|
30
|
+
import "./NcTextField.vue_vue_type_script_setup_true_lang-B65hrkLW.mjs";
|
|
30
31
|
import "focus-trap";
|
|
31
|
-
import "./NcModal-
|
|
32
|
-
import "./NcActions-
|
|
32
|
+
import "./NcModal-CX28vCtF.mjs";
|
|
33
|
+
import "./NcActions-BM3DmGLW.mjs";
|
|
33
34
|
import "@nextcloud/event-bus";
|
|
34
35
|
import Tribute from "tributejs/dist/tribute.esm.js";
|
|
35
36
|
import debounce from "debounce";
|
|
@@ -62,19 +63,22 @@ const _sfc_main$2 = {
|
|
|
62
63
|
default: false
|
|
63
64
|
}
|
|
64
65
|
},
|
|
66
|
+
setup() {
|
|
67
|
+
const isDarkTheme = useIsDarkTheme();
|
|
68
|
+
return {
|
|
69
|
+
isDarkTheme
|
|
70
|
+
};
|
|
71
|
+
},
|
|
65
72
|
computed: {
|
|
66
73
|
avatarUrl() {
|
|
67
74
|
if (this.iconUrl) {
|
|
68
75
|
return this.iconUrl;
|
|
69
76
|
}
|
|
70
|
-
return this.id && this.source === "users" ?
|
|
77
|
+
return this.id && this.source === "users" ? getAvatarUrl(this.id, { isDarkTheme: this.isDarkTheme }) : null;
|
|
71
78
|
},
|
|
72
79
|
mentionText() {
|
|
73
80
|
return !this.id.includes(" ") && !this.id.includes("/") ? `@${this.id}` : `@"${this.id}"`;
|
|
74
81
|
}
|
|
75
|
-
},
|
|
76
|
-
methods: {
|
|
77
|
-
getAvatarUrl
|
|
78
82
|
}
|
|
79
83
|
};
|
|
80
84
|
const _hoisted_1$2 = { class: "mention-bubble__wrapper" };
|
|
@@ -86,7 +90,7 @@ const _hoisted_4$1 = {
|
|
|
86
90
|
};
|
|
87
91
|
function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
88
92
|
return openBlock(), createElementBlock("span", {
|
|
89
|
-
class: normalizeClass([{ "mention-bubble--primary": $props.primary }
|
|
93
|
+
class: normalizeClass(["mention-bubble", { "mention-bubble--primary": $props.primary }]),
|
|
90
94
|
contenteditable: "false"
|
|
91
95
|
}, [
|
|
92
96
|
createElementVNode("span", _hoisted_1$2, [
|
|
@@ -105,7 +109,7 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
105
109
|
])
|
|
106
110
|
], 2);
|
|
107
111
|
}
|
|
108
|
-
const NcMentionBubble = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2], ["__scopeId", "data-v-
|
|
112
|
+
const NcMentionBubble = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2], ["__scopeId", "data-v-25f4d6e1"]]);
|
|
109
113
|
const MENTION_START = /(?=[a-z0-9_\-@.'])\B/.source;
|
|
110
114
|
const MENTION_SIMPLE = /(@[a-z0-9_\-@.']+)/.source;
|
|
111
115
|
const MENTION_GUEST = /@"(?:guest|email){1}\/[a-f0-9]+"/.source;
|
|
@@ -229,16 +233,19 @@ const _sfc_main$1 = {
|
|
|
229
233
|
default: () => ({})
|
|
230
234
|
}
|
|
231
235
|
},
|
|
236
|
+
setup() {
|
|
237
|
+
const isDarkTheme = useIsDarkTheme();
|
|
238
|
+
return {
|
|
239
|
+
isDarkTheme
|
|
240
|
+
};
|
|
241
|
+
},
|
|
232
242
|
computed: {
|
|
233
243
|
avatarUrl() {
|
|
234
244
|
if (this.iconUrl) {
|
|
235
245
|
return this.iconUrl;
|
|
236
246
|
}
|
|
237
|
-
return this.id && this.source === "users" ?
|
|
247
|
+
return this.id && this.source === "users" ? getAvatarUrl(this.id, { isDarkTheme: this.isDarkTheme }) : null;
|
|
238
248
|
}
|
|
239
|
-
},
|
|
240
|
-
methods: {
|
|
241
|
-
getAvatarUrl
|
|
242
249
|
}
|
|
243
250
|
};
|
|
244
251
|
const _hoisted_1$1 = { class: "autocomplete-result" };
|
|
@@ -274,7 +281,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
274
281
|
])
|
|
275
282
|
]);
|
|
276
283
|
}
|
|
277
|
-
const NcAutoCompleteResult = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-
|
|
284
|
+
const NcAutoCompleteResult = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-b62241e4"]]);
|
|
278
285
|
register(t32, t35);
|
|
279
286
|
const style1 = {
|
|
280
287
|
"material-design-icon": "_material-design-icon_1sdgd_12",
|
|
@@ -385,10 +392,10 @@ const _sfc_main = {
|
|
|
385
392
|
}
|
|
386
393
|
},
|
|
387
394
|
emits: [
|
|
388
|
-
"submit",
|
|
389
395
|
"paste",
|
|
390
396
|
"update:modelValue",
|
|
391
|
-
"
|
|
397
|
+
"smartPickerSubmit",
|
|
398
|
+
"submit"
|
|
392
399
|
],
|
|
393
400
|
setup() {
|
|
394
401
|
const segmenter = new Intl.Segmenter();
|
|
@@ -599,7 +606,7 @@ const _sfc_main = {
|
|
|
599
606
|
result,
|
|
600
607
|
insertText: true
|
|
601
608
|
};
|
|
602
|
-
this.$emit("
|
|
609
|
+
this.$emit("smartPickerSubmit", eventData);
|
|
603
610
|
if (eventData.insertText) {
|
|
604
611
|
const newElem = document.createTextNode(result);
|
|
605
612
|
tmpElem.replaceWith(newElem);
|
|
@@ -878,10 +885,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
878
885
|
const cssModules = {
|
|
879
886
|
"$style": style1
|
|
880
887
|
};
|
|
881
|
-
const NcRichContenteditable = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__cssModules", cssModules], ["__scopeId", "data-v-
|
|
888
|
+
const NcRichContenteditable = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__cssModules", cssModules], ["__scopeId", "data-v-93adc818"]]);
|
|
882
889
|
export {
|
|
883
890
|
NcMentionBubble as N,
|
|
884
891
|
NcAutoCompleteResult as a,
|
|
885
892
|
NcRichContenteditable as b
|
|
886
893
|
};
|
|
887
|
-
//# sourceMappingURL=NcRichContenteditable-
|
|
894
|
+
//# sourceMappingURL=NcRichContenteditable-J9ILu0dF.mjs.map
|