@nextcloud/vue 9.0.0-alpha.6 → 9.0.0-alpha.8
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 +376 -149
- package/README.md +69 -66
- package/dist/assets/{NcActionButton-BLoWchS5.css → NcActionButton-d8aZCq9u.css} +19 -16
- package/dist/assets/{NcActionCaption-B7FZTc3Y.css → NcActionCaption-DnG2OyWa.css} +4 -4
- package/dist/assets/{NcActionCheckbox-CoQEhC0c.css → NcActionCheckbox-tMIOGziy.css} +18 -17
- package/dist/assets/{NcActionInput-BEvIPQv2.css → NcActionInput-C-rQsTEA.css} +71 -65
- package/dist/assets/{NcActionLink-Dxv-rmRR.css → NcActionLink-jSPFFKV8.css} +15 -12
- package/dist/assets/{NcActionRadio-CsMcYeMT.css → NcActionRadio-xdrmoEIq.css} +19 -18
- package/dist/assets/{NcActionRouter-CflTO8Z-.css → NcActionRouter-qNNqBZab.css} +18 -15
- package/dist/assets/{NcActionText-CV2sRLti.css → NcActionText-0XNfku_2.css} +20 -17
- package/dist/assets/{NcActionTextEditable-Nufxk13g.css → NcActionTextEditable-ZlNtR_B_.css} +70 -64
- package/dist/assets/{NcActions-P5DOkDHr.css → NcActions-D7gPHaUE.css} +12 -15
- package/dist/assets/{NcAppContent-CyHAUPNL.css → NcAppContent-CLu_1q4O.css} +24 -24
- package/dist/assets/{NcAppNavigation-B21SNH2o.css → NcAppNavigation-BXItV5BV.css} +13 -13
- package/dist/assets/{NcAppNavigationCaption-Ddf7LHGR.css → NcAppNavigationCaption-B6mZd0E3.css} +9 -8
- package/dist/assets/{NcAppNavigationItem-OPiz-90P.css → NcAppNavigationItem-aVy0uQwf.css} +46 -39
- package/dist/assets/{NcAppNavigationNew-R0QcGqvG.css → NcAppNavigationNew-Ba3wWpcY.css} +3 -3
- package/dist/assets/{NcAppNavigationNewItem-BoSjpr5m.css → NcAppNavigationNewItem-rCrG0Uuo.css} +44 -37
- package/dist/assets/{NcAppNavigationSearch-C5RevjgZ.css → NcAppNavigationSearch-BAzhDRd7.css} +6 -6
- package/dist/assets/NcAppNavigationSettings-BDc6Mtek.css +29 -0
- package/dist/assets/{NcAppNavigationToggle-D2c7IdEL.css → NcAppNavigationToggle-DnTKNSH7.css} +3 -3
- package/dist/assets/{NcAppSettingsDialog-B6Pliptg.css → NcAppSettingsDialog-DZfD_UEa.css} +11 -11
- package/dist/assets/{NcAppSidebar-DJR5EHRN.css → NcAppSidebar-GFQ62pY2.css} +61 -61
- package/dist/assets/{NcAvatar-0pU8ivmq.css → NcAvatar-DUKfNDGL.css} +27 -27
- package/dist/assets/NcBlurHash-7aGtE-_T.css +8 -0
- package/dist/assets/{NcBreadcrumb-10d4k_Pc.css → NcBreadcrumb-CV3DgRKn.css} +15 -15
- package/dist/assets/{NcBreadcrumbs-aYVMDayQ.css → NcBreadcrumbs-D2wff82k.css} +6 -6
- package/dist/assets/{NcButton-DoYn-HfJ.css → NcButton-wmjlEdLP.css} +48 -49
- package/dist/assets/{NcCheckboxRadioSwitch-CG-8Isv_.css → NcCheckboxRadioSwitch-uwXbP_jb.css} +42 -42
- package/dist/assets/{NcChip-JjMdjcjN.css → NcChip-CKtzzrlA.css} +9 -9
- package/dist/assets/{NcCollectionList-B4azFVAf.css → NcCollectionList-DTJgOfCk.css} +29 -29
- package/dist/assets/{NcColorPicker-B4Vqq3HN.css → NcColorPicker-Clz7MjCA.css} +29 -31
- package/dist/assets/{NcContent-CQc_dM2n.css → NcContent-aXaYSfjS.css} +10 -10
- package/dist/assets/{NcDashboardWidget-Hc2DAw3Y.css → NcDashboardWidget-xV4o6Cen.css} +14 -15
- package/dist/assets/NcDateTimePicker-AIJmp5dC.css +81 -0
- package/dist/assets/NcDateTimePickerNative-CdHLvH4A.css +60 -0
- package/dist/assets/{NcDialog-DG8bAh01.css → NcDialog-Dkeikssh.css} +15 -15
- package/dist/assets/{NcEllipsisedOption-CTvngv1F.css → NcEllipsisedOption-D-IsjXWc.css} +5 -5
- package/dist/assets/{NcEmojiPicker-BDp_Jc8K.css → NcEmojiPicker-DnMU8iEd.css} +91 -69
- package/dist/assets/{NcEmptyContent-C-nruaFh.css → NcEmptyContent-D1O466rM.css} +9 -9
- package/dist/assets/{NcHeaderButton-8c2zDKtV.css → NcHeaderButton-BPIasMkw.css} +8 -7
- package/dist/assets/{NcHeaderMenu-CDlSXB2d.css → NcHeaderMenu-ZmtqwEYA.css} +12 -11
- package/dist/assets/{NcInputConfirmCancel-DBjIHKvN.css → NcInputConfirmCancel-9YyvRYjw.css} +6 -6
- package/dist/assets/{NcInputField-CthOpVGS.css → NcInputField-B8J2uFD4.css} +32 -32
- package/dist/assets/{NcListItem-oz15CnUw.css → NcListItem-Byw-ayOI.css} +44 -44
- package/dist/assets/{NcListItemIcon-d5-l-ZB1.css → NcListItemIcon-Bnr-Z-SO.css} +14 -14
- package/dist/assets/{NcMentionBubble-C6t8od-_.css → NcMentionBubble-BL05HUeF.css} +12 -13
- package/dist/assets/{NcPasswordField-By-kPRJC.css → NcPasswordField-z9gbKnov.css} +2 -2
- package/dist/assets/{NcPopover-BGWT8K0v.css → NcPopover-ChETNAVH.css} +16 -5
- package/dist/assets/{NcRelatedResourcesPanel-CrarpPeQ.css → NcRelatedResourcesPanel-DXfywiqL.css} +23 -23
- package/dist/assets/{NcRichContenteditable-heb9EQV3.css → NcRichContenteditable-Bxi-Ki0j.css} +41 -39
- package/dist/assets/NcRichText-Dvt8jvWN.css +326 -0
- package/dist/assets/{NcSelect-EIXtZSVn.css → NcSelect-B6DUjUdl.css} +2 -2
- package/dist/assets/{NcSettingsInputText-C3j73xA0.css → NcSettingsInputText-B-V6Y4MD.css} +7 -7
- package/dist/assets/{NcSettingsSelectGroup-CGfaysRv.css → NcSettingsSelectGroup-DZcNr_Dq.css} +2 -2
- package/dist/assets/{NcTextArea-CUPKm8vZ.css → NcTextArea-DHr9DPOJ.css} +20 -20
- package/dist/assets/{NcUserBubble-DE3IWeZN.css → NcUserBubble-tSs2XTDQ.css} +11 -11
- package/dist/assets/{index-BHBrLd2w.css → index-Du_FXiPy.css} +61 -61
- package/dist/assets/{referencePickerModal-CZYRGXDd.css → referencePickerModal-CkGgDb19.css} +46 -46
- package/dist/chunks/{AlertCircleOutline-DoHidQlr.mjs → AlertCircleOutline-DVzpKQVu.mjs} +2 -1
- package/dist/chunks/{AlertCircleOutline-DoHidQlr.mjs.map → AlertCircleOutline-DVzpKQVu.mjs.map} +1 -1
- package/dist/chunks/{ArrowLeft-DCZ3CkUw.mjs → ArrowLeft-CanHG70H.mjs} +2 -1
- package/dist/chunks/{ArrowLeft-DCZ3CkUw.mjs.map → ArrowLeft-CanHG70H.mjs.map} +1 -1
- package/dist/chunks/{ArrowRight-CCodNfTT.mjs → ArrowRight-DQT24Cb-.mjs} +2 -1
- package/dist/chunks/{ArrowRight-CCodNfTT.mjs.map → ArrowRight-DQT24Cb-.mjs.map} +1 -1
- package/dist/chunks/{Check-DDuGOKMw.mjs → Check-5i4xKnkl.mjs} +2 -1
- package/dist/chunks/{Check-DDuGOKMw.mjs.map → Check-5i4xKnkl.mjs.map} +1 -1
- package/dist/chunks/{ChevronDown-C6gc637b.mjs → ChevronDown-FiGpp0KT.mjs} +2 -1
- package/dist/chunks/{ChevronDown-C6gc637b.mjs.map → ChevronDown-FiGpp0KT.mjs.map} +1 -1
- package/dist/chunks/{ChevronLeft-uQipmOWv.mjs → ChevronLeft-FfC-tiIS.mjs} +2 -1
- package/dist/chunks/{ChevronLeft-uQipmOWv.mjs.map → ChevronLeft-FfC-tiIS.mjs.map} +1 -1
- package/dist/chunks/{ChevronRight-D4KvRLyO.mjs → ChevronRight-LvtA5_hq.mjs} +2 -1
- package/dist/chunks/{ChevronRight-D4KvRLyO.mjs.map → ChevronRight-LvtA5_hq.mjs.map} +1 -1
- package/dist/chunks/{ChevronUp-ChH8oB7p.mjs → ChevronUp-DPXFp1ss.mjs} +2 -1
- package/dist/chunks/{ChevronUp-ChH8oB7p.mjs.map → ChevronUp-DPXFp1ss.mjs.map} +1 -1
- package/dist/chunks/{Close-9bmgDVZE.mjs → Close-D6ngJ4t9.mjs} +4 -3
- package/dist/chunks/{Close-9bmgDVZE.mjs.map → Close-D6ngJ4t9.mjs.map} +1 -1
- package/dist/chunks/{DotsHorizontal-bCAjz9wZ.mjs → DotsHorizontal-AMVAlTNH.mjs} +2 -1
- package/dist/chunks/{DotsHorizontal-bCAjz9wZ.mjs.map → DotsHorizontal-AMVAlTNH.mjs.map} +1 -1
- package/dist/chunks/{NcActionButton-B3JQywgv.mjs → NcActionButton-BdQ_qmvW.mjs} +14 -12
- package/dist/chunks/{NcActionButton-B3JQywgv.mjs.map → NcActionButton-BdQ_qmvW.mjs.map} +1 -1
- package/dist/chunks/{NcActionButtonGroup-DtHcJpaH.mjs → NcActionButtonGroup-TitZerDl.mjs} +8 -6
- package/dist/chunks/NcActionButtonGroup-TitZerDl.mjs.map +1 -0
- package/dist/chunks/{NcActionCaption-BeVuTBKE.mjs → NcActionCaption-Fumfjzxj.mjs} +6 -4
- package/dist/chunks/NcActionCaption-Fumfjzxj.mjs.map +1 -0
- package/dist/chunks/{NcActionCheckbox-DdLcVat_.mjs → NcActionCheckbox-CUYbo1rw.mjs} +8 -6
- package/dist/chunks/NcActionCheckbox-CUYbo1rw.mjs.map +1 -0
- package/dist/chunks/{NcActionInput-CxPmTwTo.mjs → NcActionInput-TI648L3V.mjs} +13 -12
- package/dist/chunks/NcActionInput-TI648L3V.mjs.map +1 -0
- package/dist/chunks/{NcActionLink-9TfevQgn.mjs → NcActionLink-cQlsviu9.mjs} +7 -5
- package/dist/chunks/NcActionLink-cQlsviu9.mjs.map +1 -0
- package/dist/chunks/{NcActionRadio-CV0AtyQD.mjs → NcActionRadio-tORL1qPt.mjs} +25 -17
- package/dist/chunks/NcActionRadio-tORL1qPt.mjs.map +1 -0
- package/dist/chunks/{NcActionRouter-RKft3XO3.mjs → NcActionRouter-Bw1tpEZt.mjs} +7 -5
- package/dist/chunks/NcActionRouter-Bw1tpEZt.mjs.map +1 -0
- package/dist/chunks/{NcActionSeparator-DKFXmIJ5.mjs → NcActionSeparator-Doekl1NX.mjs} +3 -2
- package/dist/chunks/{NcActionSeparator-DKFXmIJ5.mjs.map → NcActionSeparator-Doekl1NX.mjs.map} +1 -1
- package/dist/chunks/{NcActionText-ChktUmp9.mjs → NcActionText-VLCHOiIy.mjs} +7 -5
- package/dist/chunks/NcActionText-VLCHOiIy.mjs.map +1 -0
- package/dist/chunks/{NcActionTextEditable-D3Iix8Je.mjs → NcActionTextEditable-nTbwgRy2.mjs} +25 -9
- package/dist/chunks/NcActionTextEditable-nTbwgRy2.mjs.map +1 -0
- package/dist/chunks/{NcActions-BJ703bdY.mjs → NcActions-CgKHXNbF.mjs} +58 -93
- package/dist/chunks/NcActions-CgKHXNbF.mjs.map +1 -0
- package/dist/chunks/{NcAppContent-DcqJmTNj.mjs → NcAppContent-C4gBVRQs.mjs} +79 -27
- package/dist/chunks/NcAppContent-C4gBVRQs.mjs.map +1 -0
- package/dist/chunks/{NcAppContentDetails-Ch6NJvAl.mjs → NcAppContentDetails-DsEEBJ0U.mjs} +2 -1
- package/dist/chunks/{NcAppContentDetails-Ch6NJvAl.mjs.map → NcAppContentDetails-DsEEBJ0U.mjs.map} +1 -1
- package/dist/chunks/{NcAppContentList-DGwk3AvB.mjs → NcAppContentList-DnLY_sWw.mjs} +2 -1
- package/dist/chunks/{NcAppContentList-DGwk3AvB.mjs.map → NcAppContentList-DnLY_sWw.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigation-DKl5GKDr.mjs → NcAppNavigation-DbRpHbi9.mjs} +8 -7
- package/dist/chunks/{NcAppNavigation-DKl5GKDr.mjs.map → NcAppNavigation-DbRpHbi9.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationCaption-yvL3fHpB.mjs → NcAppNavigationCaption-R_UZ7iKw.mjs} +5 -4
- package/dist/chunks/{NcAppNavigationCaption-yvL3fHpB.mjs.map → NcAppNavigationCaption-R_UZ7iKw.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationIconBullet-DXwKXzN2.mjs → NcAppNavigationIconBullet-B1kc4u65.mjs} +3 -2
- package/dist/chunks/{NcAppNavigationIconBullet-DXwKXzN2.mjs.map → NcAppNavigationIconBullet-B1kc4u65.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationItem-Ba6kwsU9.mjs → NcAppNavigationItem-CxYtFEhV.mjs} +20 -19
- package/dist/chunks/NcAppNavigationItem-CxYtFEhV.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationList-HRNlIV27.mjs → NcAppNavigationList-DX_Yo23V.mjs} +3 -2
- package/dist/chunks/{NcAppNavigationList-HRNlIV27.mjs.map → NcAppNavigationList-DX_Yo23V.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationNew-D2aD0z-u.mjs → NcAppNavigationNew-sMVo_IoL.mjs} +12 -7
- package/dist/chunks/NcAppNavigationNew-sMVo_IoL.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationNewItem-BPYFl_Xy.mjs → NcAppNavigationNewItem-CJZcL6GH.mjs} +6 -5
- package/dist/chunks/{NcAppNavigationNewItem-BPYFl_Xy.mjs.map → NcAppNavigationNewItem-CJZcL6GH.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSearch-pTeRzg7y.mjs → NcAppNavigationSearch-Dbhh-Vtw.mjs} +8 -7
- package/dist/chunks/NcAppNavigationSearch-Dbhh-Vtw.mjs.map +1 -0
- package/dist/chunks/NcAppNavigationSettings-Bfo3EWk_.mjs +132 -0
- package/dist/chunks/NcAppNavigationSettings-Bfo3EWk_.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationSpacer-BQFYpMbq.mjs → NcAppNavigationSpacer-CzBLuQL8.mjs} +3 -2
- package/dist/chunks/{NcAppNavigationSpacer-BQFYpMbq.mjs.map → NcAppNavigationSpacer-CzBLuQL8.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationToggle-CEun9mHr.mjs → NcAppNavigationToggle-Ys-PjFo3.mjs} +10 -9
- package/dist/chunks/NcAppNavigationToggle-Ys-PjFo3.mjs.map +1 -0
- package/dist/chunks/{NcAppSettingsDialog-CQ1KFqAh.mjs → NcAppSettingsDialog-Cc-OdY9a.mjs} +6 -5
- package/dist/chunks/{NcAppSettingsDialog-CQ1KFqAh.mjs.map → NcAppSettingsDialog-Cc-OdY9a.mjs.map} +1 -1
- package/dist/chunks/{NcAppSettingsSection-BzqBBgS2.mjs → NcAppSettingsSection-CssmXyZ0.mjs} +3 -2
- package/dist/chunks/{NcAppSettingsSection-BzqBBgS2.mjs.map → NcAppSettingsSection-CssmXyZ0.mjs.map} +1 -1
- package/dist/chunks/{NcAppSidebar-C0VSug_j.mjs → NcAppSidebar-Dgwj8O_Z.mjs} +30 -29
- package/dist/chunks/NcAppSidebar-Dgwj8O_Z.mjs.map +1 -0
- package/dist/chunks/{NcAppSidebarTab-zBqyKIgn.mjs → NcAppSidebarTab-DG51ajic.mjs} +3 -2
- package/dist/chunks/{NcAppSidebarTab-zBqyKIgn.mjs.map → NcAppSidebarTab-DG51ajic.mjs.map} +1 -1
- package/dist/chunks/{NcAvatar-CB2n3G0J.mjs → NcAvatar-CA8y4d-c.mjs} +40 -43
- package/dist/chunks/NcAvatar-CA8y4d-c.mjs.map +1 -0
- package/dist/chunks/NcBlurHash-BiFktE2N.mjs +99 -0
- package/dist/chunks/NcBlurHash-BiFktE2N.mjs.map +1 -0
- package/dist/chunks/{NcBreadcrumb-ChOkGtT6.mjs → NcBreadcrumb-DSjIxTeU.mjs} +23 -19
- package/dist/chunks/NcBreadcrumb-DSjIxTeU.mjs.map +1 -0
- package/dist/chunks/{NcBreadcrumbs-CcWv0nYL.mjs → NcBreadcrumbs-jPvP6Cmo.mjs} +12 -11
- package/dist/chunks/NcBreadcrumbs-jPvP6Cmo.mjs.map +1 -0
- package/dist/chunks/{NcButton-C3eisBbK.mjs → NcButton-BHLqKKYP.mjs} +64 -56
- package/dist/chunks/NcButton-BHLqKKYP.mjs.map +1 -0
- package/dist/chunks/{NcCheckboxRadioSwitch-Zndby-mL.mjs → NcCheckboxRadioSwitch-CWU_M_ui.mjs} +25 -33
- package/dist/chunks/NcCheckboxRadioSwitch-CWU_M_ui.mjs.map +1 -0
- package/dist/chunks/{NcChip-DxejjHGT.mjs → NcChip-C3U2HYR9.mjs} +23 -62
- package/dist/chunks/NcChip-C3U2HYR9.mjs.map +1 -0
- package/dist/chunks/{NcCollectionList-DckB8BUh.mjs → NcCollectionList-BtHsipae.mjs} +10 -9
- package/dist/chunks/NcCollectionList-BtHsipae.mjs.map +1 -0
- package/dist/chunks/{NcColorPicker-Bh4f-X_s.mjs → NcColorPicker-BI-Is4nj.mjs} +16 -15
- package/dist/chunks/NcColorPicker-BI-Is4nj.mjs.map +1 -0
- package/dist/chunks/{NcContent-CfyPkDba.mjs → NcContent-BcF6f3N-.mjs} +10 -9
- package/dist/chunks/{NcContent-CfyPkDba.mjs.map → NcContent-BcF6f3N-.mjs.map} +1 -1
- package/dist/chunks/{NcCounterBubble-DIOmLH9G.mjs → NcCounterBubble-6B_JNUUS.mjs} +3 -2
- package/dist/chunks/{NcCounterBubble-DIOmLH9G.mjs.map → NcCounterBubble-6B_JNUUS.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidget-DC7EvOH5.mjs → NcDashboardWidget-1rVqTzgV.mjs} +10 -9
- package/dist/chunks/{NcDashboardWidget-DC7EvOH5.mjs.map → NcDashboardWidget-1rVqTzgV.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidgetItem-Bmm83kUk.mjs → NcDashboardWidgetItem-7RXY5EKJ.mjs} +6 -5
- package/dist/chunks/{NcDashboardWidgetItem-Bmm83kUk.mjs.map → NcDashboardWidgetItem-7RXY5EKJ.mjs.map} +1 -1
- package/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang-DtP-oauZ.mjs +31 -0
- package/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang-DtP-oauZ.mjs.map +1 -0
- package/dist/chunks/NcDateTimePicker-BzfuHym4.mjs +257 -0
- package/dist/chunks/NcDateTimePicker-BzfuHym4.mjs.map +1 -0
- package/dist/chunks/{NcDateTimePickerNative-I2YJ1mqx.mjs → NcDateTimePickerNative-Dake1IML.mjs} +12 -9
- package/dist/chunks/NcDateTimePickerNative-Dake1IML.mjs.map +1 -0
- package/dist/chunks/{NcDialog-bRHxABY1.mjs → NcDialog-_pc2BPHU.mjs} +30 -20
- package/dist/chunks/NcDialog-_pc2BPHU.mjs.map +1 -0
- package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-CBKNl2vE.mjs → NcDialogButton.vue_vue_type_script_setup_true_lang-BKrJ_xd8.mjs} +31 -29
- package/dist/chunks/NcDialogButton.vue_vue_type_script_setup_true_lang-BKrJ_xd8.mjs.map +1 -0
- package/dist/chunks/{NcEllipsisedOption-BaL7DZ1K.mjs → NcEllipsisedOption-4k07kvEr.mjs} +6 -5
- package/dist/chunks/NcEllipsisedOption-4k07kvEr.mjs.map +1 -0
- package/dist/chunks/{NcEmojiPicker-DIv_bq9B.mjs → NcEmojiPicker-CWbez_of.mjs} +74 -54
- package/dist/chunks/NcEmojiPicker-CWbez_of.mjs.map +1 -0
- package/dist/chunks/{NcEmptyContent-BoGB3vFC.mjs → NcEmptyContent-BQnIrQQn.mjs} +4 -3
- package/dist/chunks/NcEmptyContent-BQnIrQQn.mjs.map +1 -0
- package/dist/chunks/{NcGuestContent-DVqg5Bq4.mjs → NcGuestContent-iQpV7mLC.mjs} +3 -2
- package/dist/chunks/{NcGuestContent-DVqg5Bq4.mjs.map → NcGuestContent-iQpV7mLC.mjs.map} +1 -1
- package/dist/chunks/{NcHeaderButton-DagheXHN.mjs → NcHeaderButton-BsstEWtv.mjs} +10 -9
- package/dist/chunks/NcHeaderButton-BsstEWtv.mjs.map +1 -0
- package/dist/chunks/NcHeaderMenu-ZzoCwPvX.mjs +141 -0
- package/dist/chunks/NcHeaderMenu-ZzoCwPvX.mjs.map +1 -0
- package/dist/chunks/{NcHighlight-BHtRIzqk.mjs → NcHighlight-Cu4UfEEO.mjs} +11 -7
- package/dist/chunks/NcHighlight-Cu4UfEEO.mjs.map +1 -0
- package/dist/chunks/{NcIconSvgWrapper-DbL6OP85.mjs → NcIconSvgWrapper-BYTrkA66.mjs} +3 -2
- package/dist/chunks/{NcIconSvgWrapper-DbL6OP85.mjs.map → NcIconSvgWrapper-BYTrkA66.mjs.map} +1 -1
- package/dist/chunks/{NcInputConfirmCancel-CHdSVEcQ.mjs → NcInputConfirmCancel-CX56m05a.mjs} +21 -20
- package/dist/chunks/NcInputConfirmCancel-CX56m05a.mjs.map +1 -0
- package/dist/chunks/{NcInputField-BMtTTtl5.mjs → NcInputField-DdZlDVwQ.mjs} +10 -9
- package/dist/chunks/NcInputField-DdZlDVwQ.mjs.map +1 -0
- package/dist/chunks/{NcListItem-D04-5zRU.mjs → NcListItem-DF8Yv05m.mjs} +6 -5
- package/dist/chunks/NcListItem-DF8Yv05m.mjs.map +1 -0
- package/dist/chunks/{NcListItemIcon-DcBo1GLm.mjs → NcListItemIcon-nzw_x2Q5.mjs} +8 -9
- package/dist/chunks/{NcListItemIcon-DcBo1GLm.mjs.map → NcListItemIcon-nzw_x2Q5.mjs.map} +1 -1
- package/dist/chunks/{NcLoadingIcon-DREmHXr2.mjs → NcLoadingIcon-CsMn1bFR.mjs} +3 -2
- package/dist/chunks/{NcLoadingIcon-DREmHXr2.mjs.map → NcLoadingIcon-CsMn1bFR.mjs.map} +1 -1
- package/dist/chunks/{getAvatarUrl-DxvUjKMi.mjs → NcMentionBubble.vue_vue_type_style_index_0_scoped_6c8d0da9_lang-DYJMHclV.mjs} +2 -0
- package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_6c8d0da9_lang-DYJMHclV.mjs.map +1 -0
- package/dist/chunks/{NcNoteCard-BwQvZ3pf.mjs → NcNoteCard-XoSOund1.mjs} +3 -2
- package/dist/chunks/{NcNoteCard-BwQvZ3pf.mjs.map → NcNoteCard-XoSOund1.mjs.map} +1 -1
- package/dist/chunks/{NcPasswordField-OK30bZq8.mjs → NcPasswordField-BnnlEhT1.mjs} +8 -8
- package/dist/chunks/NcPasswordField-BnnlEhT1.mjs.map +1 -0
- package/dist/chunks/{NcPopover-Cmspgso4.mjs → NcPopover-C3ZoyUjc.mjs} +16 -12
- package/dist/chunks/NcPopover-C3ZoyUjc.mjs.map +1 -0
- package/dist/chunks/{NcProgressBar-C2r8oqsv.mjs → NcProgressBar-Bx8bMkd4.mjs} +3 -2
- package/dist/chunks/{NcProgressBar-C2r8oqsv.mjs.map → NcProgressBar-Bx8bMkd4.mjs.map} +1 -1
- package/dist/chunks/{NcRelatedResourcesPanel-DvA5dHwS.mjs → NcRelatedResourcesPanel-D2YLEouH.mjs} +22 -16
- package/dist/chunks/NcRelatedResourcesPanel-D2YLEouH.mjs.map +1 -0
- package/dist/chunks/{NcRichContenteditable-s2Cz698X.mjs → NcRichContenteditable-B16VJW0Y.mjs} +34 -34
- package/dist/chunks/NcRichContenteditable-B16VJW0Y.mjs.map +1 -0
- package/dist/chunks/NcRichText-4jIBSmap.mjs +3673 -0
- package/dist/chunks/NcRichText-4jIBSmap.mjs.map +1 -0
- package/dist/chunks/{NcSavingIndicatorIcon-BiGAtlKQ.mjs → NcSavingIndicatorIcon-icWy8J5x.mjs} +2 -1
- package/dist/chunks/{NcSavingIndicatorIcon-BiGAtlKQ.mjs.map → NcSavingIndicatorIcon-icWy8J5x.mjs.map} +1 -1
- package/dist/chunks/{NcSelect-J_CQazCj.mjs → NcSelect-CAx_ixPU.mjs} +16 -15
- package/dist/chunks/NcSelect-CAx_ixPU.mjs.map +1 -0
- package/dist/chunks/{NcSelectTags-BZ22veGg.mjs → NcSelectTags-UXzC7lDz.mjs} +5 -4
- package/dist/chunks/{NcSelectTags-BZ22veGg.mjs.map → NcSelectTags-UXzC7lDz.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsInputText-Bjw2RqKu.mjs → NcSettingsInputText-BEHu3xAI.mjs} +7 -6
- package/dist/chunks/NcSettingsInputText-BEHu3xAI.mjs.map +1 -0
- package/dist/chunks/{NcSettingsSection-MATJGEoF.mjs → NcSettingsSection-X7f0W7vZ.mjs} +5 -4
- package/dist/chunks/{NcSettingsSection-MATJGEoF.mjs.map → NcSettingsSection-X7f0W7vZ.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-iglfU6Rr.mjs → NcSettingsSelectGroup-DfrKchOy.mjs} +9 -8
- package/dist/chunks/NcSettingsSelectGroup-DfrKchOy.mjs.map +1 -0
- package/dist/chunks/{NcTextArea-D_kk5GuX.mjs → NcTextArea-DKHjCur8.mjs} +8 -7
- package/dist/chunks/NcTextArea-DKHjCur8.mjs.map +1 -0
- package/dist/chunks/{NcTextField-XbpY0pop.mjs → NcTextField-BTzKCPza.mjs} +8 -7
- package/dist/chunks/{NcTextField-XbpY0pop.mjs.map → NcTextField-BTzKCPza.mjs.map} +1 -1
- package/dist/chunks/{NcTimezonePicker-CMpvPeCI.mjs → NcTimezonePicker-CMoUk4sZ.mjs} +9 -8
- package/dist/chunks/NcTimezonePicker-CMoUk4sZ.mjs.map +1 -0
- package/dist/chunks/{NcUserBubble-DJFSxKtO.mjs → NcUserBubble-Dgzog0Ps.mjs} +7 -6
- package/dist/chunks/{NcUserBubble-DJFSxKtO.mjs.map → NcUserBubble-Dgzog0Ps.mjs.map} +1 -1
- package/dist/chunks/{NcUserStatusIcon-DjoGxkTB.mjs → NcUserStatusIcon-DvYiEs2L.mjs} +5 -3
- package/dist/chunks/{NcUserStatusIcon-DjoGxkTB.mjs.map → NcUserStatusIcon-DvYiEs2L.mjs.map} +1 -1
- package/dist/chunks/{ScopeComponent-77f9B57X.mjs → ScopeComponent-BWZEma4R.mjs} +2 -1
- package/dist/chunks/{ScopeComponent-77f9B57X.mjs.map → ScopeComponent-BWZEma4R.mjs.map} +1 -1
- package/dist/chunks/_l10n-7kR7gXFc.mjs +132 -0
- package/dist/chunks/_l10n-7kR7gXFc.mjs.map +1 -0
- package/dist/chunks/_plugin-vue_export-helper-1tPrXgE0.mjs +1 -0
- package/dist/chunks/actionGlobal-BZFdtdJL.mjs +1 -0
- package/dist/chunks/actionGlobal-BZFdtdJL.mjs.map +1 -1
- package/dist/chunks/{actionText-aI0owku1.mjs → actionText-BiV1_BZX.mjs} +8 -13
- package/dist/chunks/actionText-BiV1_BZX.mjs.map +1 -0
- package/dist/chunks/autolink-CKPk5rzg.mjs +1 -0
- package/dist/chunks/autolink-CKPk5rzg.mjs.map +1 -1
- package/dist/chunks/{GenColors-Cw7N7vRg.mjs → colors-BJbWzaQ-.mjs} +28 -22
- package/dist/chunks/colors-BJbWzaQ-.mjs.map +1 -0
- package/dist/chunks/createElementId-DhjFt1I9.mjs +8 -0
- package/dist/chunks/createElementId-DhjFt1I9.mjs.map +1 -0
- package/dist/chunks/emoji-BY_D0V5K.mjs +1 -0
- package/dist/chunks/emoji-BY_D0V5K.mjs.map +1 -1
- package/dist/chunks/focusTrap-DmkaYJTC.mjs +32 -0
- package/dist/chunks/focusTrap-DmkaYJTC.mjs.map +1 -0
- package/dist/chunks/{index-CtB0UiwH.mjs → index--u6iHwFv.mjs} +7 -9
- package/dist/chunks/index--u6iHwFv.mjs.map +1 -0
- package/dist/chunks/{index-CrKUsc__.mjs → index-BF8joS9W.mjs} +3 -2
- package/dist/chunks/{index-CrKUsc__.mjs.map → index-BF8joS9W.mjs.map} +1 -1
- package/dist/chunks/logger-D3RVzcfQ.mjs +6 -0
- package/dist/chunks/logger-D3RVzcfQ.mjs.map +1 -0
- package/dist/chunks/mdi-zYpVOORa.mjs +17 -0
- package/dist/chunks/mdi-zYpVOORa.mjs.map +1 -0
- package/dist/chunks/{referencePickerModal-DPmXigHR.mjs → referencePickerModal-BpNnwC_g.mjs} +25 -25
- package/dist/chunks/referencePickerModal-BpNnwC_g.mjs.map +1 -0
- package/dist/chunks/rtl-v0UOPAM7.mjs +6 -0
- package/dist/chunks/rtl-v0UOPAM7.mjs.map +1 -0
- package/dist/chunks/{NcDateTime-BsCT_tyH.mjs → useFormatDateTime-B5sWtJdj.mjs} +3 -63
- package/dist/chunks/useFormatDateTime-B5sWtJdj.mjs.map +1 -0
- package/dist/chunks/useNcActions-CiGWxAJE.mjs +7 -0
- package/dist/chunks/useNcActions-CiGWxAJE.mjs.map +1 -0
- package/dist/chunks/useTrapStackControl-b3A_383w.mjs +23 -0
- package/dist/chunks/useTrapStackControl-b3A_383w.mjs.map +1 -0
- package/dist/chunks/usernameToColor-CzXWY0j4.mjs +22 -0
- package/dist/chunks/usernameToColor-CzXWY0j4.mjs.map +1 -0
- package/dist/components/NcActionButton/NcActionButton.vue.d.ts +6 -1
- package/dist/components/NcActionButton/index.mjs +2 -1
- package/dist/components/NcActionButtonGroup/index.mjs +2 -1
- package/dist/components/NcActionCaption/index.mjs +2 -1
- package/dist/components/NcActionCheckbox/index.mjs +2 -1
- package/dist/components/NcActionInput/index.mjs +2 -1
- package/dist/components/NcActionLink/index.mjs +2 -1
- package/dist/components/NcActionRadio/NcActionRadio.vue.d.ts +10 -8
- package/dist/components/NcActionRadio/index.mjs +2 -1
- package/dist/components/NcActionRouter/NcActionRouter.vue.d.ts +5 -0
- package/dist/components/NcActionRouter/index.mjs +2 -1
- package/dist/components/NcActionSeparator/index.mjs +2 -1
- package/dist/components/NcActionText/NcActionText.vue.d.ts +5 -0
- package/dist/components/NcActionText/index.mjs +2 -1
- package/dist/components/NcActionTextEditable/NcActionTextEditable.vue.d.ts +9 -1
- package/dist/components/NcActionTextEditable/index.mjs +2 -1
- package/dist/components/NcActions/NcActions.vue.d.ts +52 -59
- package/dist/components/NcActions/index.mjs +2 -1
- package/dist/components/NcActions/useNcActions.d.ts +3 -0
- package/dist/components/NcAppContent/index.mjs +2 -1
- package/dist/components/NcAppContentDetails/index.mjs +2 -1
- package/dist/components/NcAppContentList/index.mjs +2 -1
- package/dist/components/NcAppNavigation/NcAppNavigation.vue.d.ts +23 -22
- package/dist/components/NcAppNavigation/index.mjs +2 -1
- package/dist/components/NcAppNavigationCaption/NcAppNavigationCaption.vue.d.ts +34 -33
- package/dist/components/NcAppNavigationCaption/index.mjs +2 -1
- package/dist/components/NcAppNavigationIconBullet/index.mjs +2 -1
- package/dist/components/NcAppNavigationItem/NcAppNavigationIconCollapsible.vue.d.ts +16 -15
- package/dist/components/NcAppNavigationItem/NcAppNavigationItem.vue.d.ts +96 -88
- package/dist/components/NcAppNavigationItem/NcInputConfirmCancel.vue.d.ts +25 -24
- package/dist/components/NcAppNavigationItem/index.mjs +2 -1
- package/dist/components/NcAppNavigationList/index.mjs +2 -1
- package/dist/components/NcAppNavigationNew/NcAppNavigationNew.vue.d.ts +27 -18
- package/dist/components/NcAppNavigationNew/index.mjs +2 -1
- package/dist/components/NcAppNavigationNewItem/NcAppNavigationNewItem.vue.d.ts +18 -17
- package/dist/components/NcAppNavigationNewItem/index.mjs +2 -1
- package/dist/components/NcAppNavigationSearch/NcAppNavigationSearch.vue.d.ts +16 -15
- package/dist/components/NcAppNavigationSearch/index.mjs +2 -1
- package/dist/components/NcAppNavigationSettings/NcAppNavigationSettings.vue.d.ts +49 -0
- package/dist/components/NcAppNavigationSettings/index.mjs +2 -1
- package/dist/components/NcAppNavigationSpacer/index.mjs +2 -1
- package/dist/components/NcAppNavigationToggle/NcAppNavigationToggle.vue.d.ts +16 -15
- package/dist/components/NcAppNavigationToggle/index.mjs +2 -1
- package/dist/components/NcAppSettingsDialog/index.mjs +2 -1
- package/dist/components/NcAppSettingsSection/index.mjs +2 -1
- package/dist/components/NcAppSidebar/index.mjs +2 -1
- package/dist/components/NcAppSidebarTab/index.mjs +2 -1
- package/dist/components/NcAvatar/index.mjs +2 -1
- package/dist/components/NcBlurHash/NcBlurHash.vue.d.ts +31 -0
- package/dist/components/NcBlurHash/index.d.ts +5 -0
- package/dist/components/NcBlurHash/index.mjs +5 -0
- package/dist/components/NcBlurHash/index.mjs.map +1 -0
- package/dist/components/NcBreadcrumb/NcBreadcrumb.vue.d.ts +70 -67
- package/dist/components/NcBreadcrumb/index.mjs +2 -1
- package/dist/components/NcBreadcrumbs/NcBreadcrumbs.vue.d.ts +98 -84
- package/dist/components/NcBreadcrumbs/index.mjs +2 -1
- package/dist/components/NcButton/NcButton.vue.d.ts +42 -38
- package/dist/components/NcButton/index.mjs +4 -3
- package/dist/components/NcButton/types.d.ts +2 -2
- package/dist/components/NcCheckboxRadioSwitch/index.mjs +2 -1
- package/dist/components/NcChip/NcChip.vue.d.ts +57 -92
- package/dist/components/NcChip/index.mjs +2 -1
- package/dist/components/NcCollectionList/index.mjs +2 -1
- package/dist/components/NcColorPicker/index.mjs +2 -1
- package/dist/components/NcContent/NcContent.vue.d.ts +17 -16
- package/dist/components/NcContent/index.mjs +2 -1
- package/dist/components/NcCounterBubble/index.mjs +2 -1
- package/dist/components/NcDashboardWidget/index.mjs +2 -1
- package/dist/components/NcDashboardWidgetItem/index.mjs +2 -1
- package/dist/components/NcDateTime/NcDateTime.vue.d.ts +56 -1
- package/dist/components/NcDateTime/index.d.ts +4 -0
- package/dist/components/NcDateTime/index.mjs +3 -2
- package/dist/components/NcDateTimePicker/NcDateTimePicker.vue.d.ts +116 -1
- package/dist/components/NcDateTimePicker/index.d.ts +4 -0
- package/dist/components/NcDateTimePicker/index.mjs +2 -1
- package/dist/components/NcDateTimePickerNative/index.mjs +2 -1
- package/dist/components/NcDialog/NcDialog.vue.d.ts +60 -55
- package/dist/components/NcDialog/index.mjs +2 -1
- package/dist/components/NcDialogButton/NcDialogButton.vue.d.ts +43 -35
- package/dist/components/NcDialogButton/index.mjs +2 -1
- package/dist/components/NcEllipsisedOption/index.mjs +2 -1
- package/dist/components/NcEmojiPicker/NcEmojiPicker.vue.d.ts +45 -32
- package/dist/components/NcEmojiPicker/index.mjs +2 -1
- package/dist/components/NcEmptyContent/index.mjs +2 -1
- package/dist/components/NcGuestContent/index.mjs +2 -1
- package/dist/components/NcHeaderButton/index.mjs +2 -1
- package/dist/components/NcHeaderMenu/NcHeaderMenu.vue.d.ts +245 -0
- package/dist/components/NcHeaderMenu/index.mjs +2 -1
- package/dist/components/NcHighlight/index.mjs +2 -1
- package/dist/components/NcIconSvgWrapper/index.mjs +2 -1
- package/dist/components/NcInputField/NcInputField.vue.d.ts +16 -15
- package/dist/components/NcInputField/index.mjs +2 -1
- package/dist/components/NcListItem/NcListItem.vue.d.ts +34 -33
- package/dist/components/NcListItem/index.mjs +2 -1
- package/dist/components/NcListItemIcon/index.mjs +2 -1
- package/dist/components/NcLoadingIcon/index.mjs +2 -1
- package/dist/components/NcModal/index.mjs +42 -39
- package/dist/components/NcModal/index.mjs.map +1 -1
- package/dist/components/NcNoteCard/index.mjs +2 -1
- package/dist/components/NcPasswordField/index.mjs +2 -1
- package/dist/components/NcPopover/NcPopover.vue.d.ts +2 -0
- package/dist/components/NcPopover/index.mjs +2 -1
- package/dist/components/NcProgressBar/index.mjs +2 -1
- package/dist/components/NcRelatedResourcesPanel/NcRelatedResourcesPanel.vue.d.ts +32 -30
- package/dist/components/NcRelatedResourcesPanel/NcResource.vue.d.ts +16 -15
- package/dist/components/NcRelatedResourcesPanel/NcTeamResources.vue.d.ts +16 -15
- package/dist/components/NcRelatedResourcesPanel/index.mjs +2 -1
- package/dist/components/NcRichContenteditable/index.mjs +3 -2
- package/dist/components/NcRichText/NcReferenceList.vue.d.ts +17 -16
- package/dist/components/NcRichText/NcReferencePicker/NcRawLinkInput.vue.d.ts +33 -31
- package/dist/components/NcRichText/NcReferencePicker/utils.d.ts +1 -1
- package/dist/components/NcRichText/NcReferenceWidget.vue.d.ts +17 -16
- package/dist/components/NcRichText/NcRichText.vue.d.ts +19 -61
- package/dist/components/NcRichText/index.mjs +5 -4
- package/dist/components/NcRichText/remarkUnescape.d.ts +1 -0
- package/dist/components/NcSavingIndicatorIcon/index.mjs +2 -1
- package/dist/components/NcSelect/index.mjs +2 -1
- package/dist/components/NcSelectTags/index.mjs +2 -1
- package/dist/components/NcSettingsInputText/index.mjs +2 -1
- package/dist/components/NcSettingsSection/index.mjs +2 -1
- package/dist/components/NcSettingsSelectGroup/index.mjs +2 -1
- package/dist/components/NcTextArea/index.mjs +2 -1
- package/dist/components/NcTextField/NcTextField.vue.d.ts +16 -15
- package/dist/components/NcTextField/index.mjs +2 -1
- package/dist/components/NcTimezonePicker/index.mjs +2 -1
- package/dist/components/NcUserBubble/index.mjs +2 -1
- package/dist/components/NcUserStatusIcon/index.mjs +2 -1
- package/dist/components/NcVNodes/index.mjs +1 -0
- package/dist/components/NcVNodes/index.mjs.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/composables/index.d.ts +7 -3
- package/dist/composables/useHotKey/index.d.ts +32 -4
- package/dist/composables/useHotKey/index.mjs +23 -20
- package/dist/composables/useHotKey/index.mjs.map +1 -1
- package/dist/composables/useIsDarkTheme/index.mjs +1 -0
- package/dist/composables/useIsDarkTheme/index.mjs.map +1 -1
- package/dist/composables/useIsFullscreen/index.d.ts +3 -4
- package/dist/composables/useIsFullscreen/index.mjs +4 -1
- package/dist/composables/useIsFullscreen/index.mjs.map +1 -1
- package/dist/composables/useIsMobile/index.d.ts +9 -14
- package/dist/composables/useIsMobile/index.mjs +1 -2
- package/dist/composables/useIsMobile/index.mjs.map +1 -1
- package/dist/composables/useTrapStackControl.d.ts +12 -0
- package/dist/directives/Focus/index.mjs +1 -0
- package/dist/directives/Focus/index.mjs.map +1 -1
- package/dist/directives/Linkify/index.d.ts +2 -1
- package/dist/directives/Linkify/index.mjs +44 -6
- package/dist/directives/Linkify/index.mjs.map +1 -1
- package/dist/directives/Tooltip/index.mjs +2 -1
- package/dist/directives/Tooltip/index.mjs.map +1 -1
- package/dist/directives/index.d.ts +1 -1
- package/dist/functions/a11y/index.mjs +1 -0
- package/dist/functions/a11y/index.mjs.map +1 -1
- package/dist/functions/dialog/index.mjs +1 -0
- package/dist/functions/dialog/index.mjs.map +1 -1
- package/dist/functions/emoji/index.mjs +1 -0
- package/dist/functions/index.d.ts +2 -1
- package/dist/functions/isDarkTheme/index.mjs +1 -0
- package/dist/functions/isDarkTheme/index.mjs.map +1 -1
- package/dist/functions/preloadImage/index.d.ts +9 -0
- package/dist/functions/preloadImage/index.mjs +17 -0
- package/dist/functions/preloadImage/index.mjs.map +1 -0
- package/dist/functions/reference/index.mjs +3 -2
- package/dist/functions/reference/widgets.d.ts +1 -1
- package/dist/functions/registerReference/index.mjs +3 -2
- package/dist/functions/usernameToColor/index.d.ts +5 -1
- package/dist/functions/usernameToColor/index.mjs +2 -1
- package/dist/functions/usernameToColor/usernameToColor.d.ts +4 -9
- package/dist/index.mjs +104 -101
- package/dist/index.mjs.map +1 -1
- package/dist/mixins/actionText.d.ts +6 -0
- package/dist/mixins/index.d.ts +0 -1
- package/dist/mixins/richEditor/index.mjs +2 -2
- package/dist/mixins/richEditor/index.mjs.map +1 -1
- package/dist/utils/appName.d.ts +5 -0
- package/dist/utils/colors.d.ts +34 -0
- package/dist/utils/createElementId.d.ts +7 -0
- package/dist/utils/findRanges.d.ts +16 -0
- package/dist/utils/focusTrap.d.ts +26 -1
- package/dist/utils/isSlotPopulated.d.ts +1 -2
- package/dist/utils/linkify.d.ts +8 -0
- package/dist/utils/logger.d.ts +4 -0
- package/dist/utils/rtl.d.ts +5 -0
- package/dist/vendor.LICENSE.txt +128 -0
- package/package.json +70 -57
- package/dist/assets/NcAppNavigationSettings-CZNoJ2IO.css +0 -77
- package/dist/assets/NcDateTimePicker-D67l0SAR.css +0 -865
- package/dist/assets/NcDateTimePickerNative-DLch-JRA.css +0 -47
- package/dist/assets/NcRichText-C_CIawDX.css +0 -412
- package/dist/chunks/GenColors-Cw7N7vRg.mjs.map +0 -1
- package/dist/chunks/GenRandomId-CMooMQt0.mjs +0 -6
- package/dist/chunks/GenRandomId-CMooMQt0.mjs.map +0 -1
- package/dist/chunks/Linkify-BtgR-dXX.mjs +0 -14
- package/dist/chunks/Linkify-BtgR-dXX.mjs.map +0 -1
- package/dist/chunks/NcActionButtonGroup-DtHcJpaH.mjs.map +0 -1
- package/dist/chunks/NcActionCaption-BeVuTBKE.mjs.map +0 -1
- package/dist/chunks/NcActionCheckbox-DdLcVat_.mjs.map +0 -1
- package/dist/chunks/NcActionInput-CxPmTwTo.mjs.map +0 -1
- package/dist/chunks/NcActionLink-9TfevQgn.mjs.map +0 -1
- package/dist/chunks/NcActionRadio-CV0AtyQD.mjs.map +0 -1
- package/dist/chunks/NcActionRouter-RKft3XO3.mjs.map +0 -1
- package/dist/chunks/NcActionText-ChktUmp9.mjs.map +0 -1
- package/dist/chunks/NcActionTextEditable-D3Iix8Je.mjs.map +0 -1
- package/dist/chunks/NcActions-BJ703bdY.mjs.map +0 -1
- package/dist/chunks/NcAppContent-DcqJmTNj.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationItem-Ba6kwsU9.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationNew-D2aD0z-u.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationSearch-pTeRzg7y.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationSettings-Bc4ZZ9rU.mjs +0 -142
- package/dist/chunks/NcAppNavigationSettings-Bc4ZZ9rU.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationToggle-CEun9mHr.mjs.map +0 -1
- package/dist/chunks/NcAppSidebar-C0VSug_j.mjs.map +0 -1
- package/dist/chunks/NcAvatar-CB2n3G0J.mjs.map +0 -1
- package/dist/chunks/NcBreadcrumb-ChOkGtT6.mjs.map +0 -1
- package/dist/chunks/NcBreadcrumbs-CcWv0nYL.mjs.map +0 -1
- package/dist/chunks/NcButton-C3eisBbK.mjs.map +0 -1
- package/dist/chunks/NcCheckboxRadioSwitch-Zndby-mL.mjs.map +0 -1
- package/dist/chunks/NcChip-DxejjHGT.mjs.map +0 -1
- package/dist/chunks/NcCollectionList-DckB8BUh.mjs.map +0 -1
- package/dist/chunks/NcColorPicker-Bh4f-X_s.mjs.map +0 -1
- package/dist/chunks/NcDateTime-BsCT_tyH.mjs.map +0 -1
- package/dist/chunks/NcDateTimePicker-BMkjvfOV.mjs +0 -377
- package/dist/chunks/NcDateTimePicker-BMkjvfOV.mjs.map +0 -1
- package/dist/chunks/NcDateTimePickerNative-I2YJ1mqx.mjs.map +0 -1
- package/dist/chunks/NcDialog-bRHxABY1.mjs.map +0 -1
- package/dist/chunks/NcDialogButton.vue_vue_type_script_setup_true_lang-CBKNl2vE.mjs.map +0 -1
- package/dist/chunks/NcEllipsisedOption-BaL7DZ1K.mjs.map +0 -1
- package/dist/chunks/NcEmojiPicker-DIv_bq9B.mjs.map +0 -1
- package/dist/chunks/NcEmptyContent-BoGB3vFC.mjs.map +0 -1
- package/dist/chunks/NcHeaderButton-DagheXHN.mjs.map +0 -1
- package/dist/chunks/NcHeaderMenu-DWrnJYhw.mjs +0 -260
- package/dist/chunks/NcHeaderMenu-DWrnJYhw.mjs.map +0 -1
- package/dist/chunks/NcHighlight-BHtRIzqk.mjs.map +0 -1
- package/dist/chunks/NcInputConfirmCancel-CHdSVEcQ.mjs.map +0 -1
- package/dist/chunks/NcInputField-BMtTTtl5.mjs.map +0 -1
- package/dist/chunks/NcListItem-D04-5zRU.mjs.map +0 -1
- package/dist/chunks/NcPasswordField-OK30bZq8.mjs.map +0 -1
- package/dist/chunks/NcPopover-Cmspgso4.mjs.map +0 -1
- package/dist/chunks/NcRelatedResourcesPanel-DvA5dHwS.mjs.map +0 -1
- package/dist/chunks/NcRichContenteditable-s2Cz698X.mjs.map +0 -1
- package/dist/chunks/NcRichText-DeQGaF-c.mjs +0 -445
- package/dist/chunks/NcRichText-DeQGaF-c.mjs.map +0 -1
- package/dist/chunks/NcSelect-J_CQazCj.mjs.map +0 -1
- package/dist/chunks/NcSettingsInputText-Bjw2RqKu.mjs.map +0 -1
- package/dist/chunks/NcSettingsSelectGroup-iglfU6Rr.mjs.map +0 -1
- package/dist/chunks/NcTextArea-D_kk5GuX.mjs.map +0 -1
- package/dist/chunks/NcTimezonePicker-CMpvPeCI.mjs.map +0 -1
- package/dist/chunks/_l10n-D7WwrqS-.mjs +0 -126
- package/dist/chunks/_l10n-D7WwrqS-.mjs.map +0 -1
- package/dist/chunks/actionText-aI0owku1.mjs.map +0 -1
- package/dist/chunks/focusTrap-Cecv_gjR.mjs +0 -7
- package/dist/chunks/focusTrap-Cecv_gjR.mjs.map +0 -1
- package/dist/chunks/getAvatarUrl-DxvUjKMi.mjs.map +0 -1
- package/dist/chunks/index-CtB0UiwH.mjs.map +0 -1
- package/dist/chunks/referencePickerModal-DPmXigHR.mjs.map +0 -1
- package/dist/chunks/usernameToColor-CgZYBI2J.mjs +0 -26
- package/dist/chunks/usernameToColor-CgZYBI2J.mjs.map +0 -1
- package/dist/mixins/clickOutsideOptions/index.d.ts +0 -15
- package/dist/mixins/clickOutsideOptions/index.mjs +0 -21
- package/dist/mixins/clickOutsideOptions/index.mjs.map +0 -1
- package/dist/utils/FindRanges.d.ts +0 -13
- package/dist/utils/GenColors.d.ts +0 -28
- package/dist/utils/GenRandomId.d.ts +0 -6
- package/dist/utils/GetChildren.d.ts +0 -13
- package/dist/utils/GetParent.d.ts +0 -13
- package/dist/utils/Linkify.d.ts +0 -8
- /package/dist/assets/{NcActionButtonGroup-CQxLn2fv.css → NcActionButtonGroup-BND4GQdv.css} +0 -0
- /package/dist/assets/{NcActionSeparator-CEbb5P6P.css → NcActionSeparator-Ct2RnclR.css} +0 -0
- /package/dist/assets/{NcAppNavigationIconBullet-By_0o2dG.css → NcAppNavigationIconBullet-CeBYVy6t.css} +0 -0
- /package/dist/assets/{NcAppNavigationList-BHK_PY3c.css → NcAppNavigationList-CLLHyHIn.css} +0 -0
- /package/dist/assets/{NcAppNavigationSpacer-DiE3sVy0.css → NcAppNavigationSpacer-BJj8CIpA.css} +0 -0
- /package/dist/assets/{NcAppSettingsSection-Y3DmEyQ2.css → NcAppSettingsSection-DnDcGk1v.css} +0 -0
- /package/dist/assets/{NcAppSidebarTab-Cp0hG2NU.css → NcAppSidebarTab-BFy7uyWe.css} +0 -0
- /package/dist/assets/{NcCounterBubble-BfI32Juo.css → NcCounterBubble-DWgyYB0d.css} +0 -0
- /package/dist/assets/{NcDashboardWidgetItem-CCjoWolF.css → NcDashboardWidgetItem-B8_6-_k8.css} +0 -0
- /package/dist/assets/{NcGuestContent-Dh5z5Dgm.css → NcGuestContent-C9lbC3vg.css} +0 -0
- /package/dist/assets/{NcIconSvgWrapper-CtTf2c7f.css → NcIconSvgWrapper-DQFhmjCC.css} +0 -0
- /package/dist/assets/{NcLoadingIcon-BSONDy7x.css → NcLoadingIcon-x1d284UU.css} +0 -0
- /package/dist/assets/{NcNoteCard-CImn6F9p.css → NcNoteCard-C6xb7vi0.css} +0 -0
- /package/dist/assets/{NcProgressBar-BsqdCn-x.css → NcProgressBar--z-WqmX4.css} +0 -0
- /package/dist/assets/{NcSettingsSection-DXQyhMdq.css → NcSettingsSection-Dyrgo_fF.css} +0 -0
- /package/dist/assets/{NcUserStatusIcon-FLA1tQpD.css → NcUserStatusIcon-Du-BEPk_.css} +0 -0
- /package/dist/assets/{index-4CSl8xev.css → index-DQ4Plm4r.css} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcRelatedResourcesPanel-D2YLEouH.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]}
|
package/dist/chunks/{NcRichContenteditable-s2Cz698X.mjs → NcRichContenteditable-B16VJW0Y.mjs}
RENAMED
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import '../assets/NcRichContenteditable-
|
|
2
|
-
import { r as register, v as
|
|
3
|
-
import { g as getAvatarUrl } from "./
|
|
4
|
-
import { N as NcUserStatusIcon } from "./NcUserStatusIcon-
|
|
5
|
-
import { resolveComponent,
|
|
1
|
+
import '../assets/NcRichContenteditable-Bxi-Ki0j.css';
|
|
2
|
+
import { r as register, v as t35, z as t32, a as t } from "./_l10n-7kR7gXFc.mjs";
|
|
3
|
+
import { g as getAvatarUrl } from "./NcMentionBubble.vue_vue_type_style_index_0_scoped_6c8d0da9_lang-DYJMHclV.mjs";
|
|
4
|
+
import { N as NcUserStatusIcon } from "./NcUserStatusIcon-DvYiEs2L.mjs";
|
|
5
|
+
import { resolveComponent, createElementBlock, openBlock, createElementVNode, normalizeStyle, normalizeClass, createBlock, createCommentVNode, toDisplayString, resolveDirective, withDirectives, mergeProps, withModifiers, withKeys } from "vue";
|
|
6
6
|
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
7
|
-
import { r as richEditor } from "./index
|
|
7
|
+
import { r as richEditor } from "./index--u6iHwFv.mjs";
|
|
8
8
|
import "../directives/Tooltip/index.mjs";
|
|
9
|
-
import {
|
|
10
|
-
import "./NcRichText-
|
|
11
|
-
import "./index-
|
|
9
|
+
import { e as emojiSearch, a as emojiAddRecent } from "./emoji-BY_D0V5K.mjs";
|
|
10
|
+
import "./NcRichText-4jIBSmap.mjs";
|
|
11
|
+
import "./index-BF8joS9W.mjs";
|
|
12
12
|
import "@vueuse/core";
|
|
13
13
|
import "vue-router";
|
|
14
|
-
import {
|
|
14
|
+
import { g as getLinkWithPicker, d as searchProvider } from "./referencePickerModal-BpNnwC_g.mjs";
|
|
15
15
|
import "./autolink-CKPk5rzg.mjs";
|
|
16
|
-
import "./NcButton-
|
|
16
|
+
import "./NcButton-BHLqKKYP.mjs";
|
|
17
17
|
import "@nextcloud/axios";
|
|
18
18
|
import "@nextcloud/sharing/public";
|
|
19
19
|
import "@nextcloud/auth";
|
|
20
20
|
import "@nextcloud/router";
|
|
21
|
-
import "./NcEmptyContent-
|
|
22
|
-
import "./NcSelect-
|
|
23
|
-
import "./NcLoadingIcon-
|
|
24
|
-
import "./NcTextField-
|
|
21
|
+
import "./NcEmptyContent-BQnIrQQn.mjs";
|
|
22
|
+
import "./NcSelect-CAx_ixPU.mjs";
|
|
23
|
+
import "./NcLoadingIcon-CsMn1bFR.mjs";
|
|
24
|
+
import "./NcTextField-BTzKCPza.mjs";
|
|
25
25
|
import "../components/NcModal/index.mjs";
|
|
26
26
|
import "@nextcloud/event-bus";
|
|
27
|
+
import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
|
|
27
28
|
import Tribute from "tributejs/dist/tribute.esm.js";
|
|
28
29
|
import debounce from "debounce";
|
|
29
30
|
import stringLength from "string-length";
|
|
30
|
-
import { G as GenRandomId } from "./GenRandomId-CMooMQt0.mjs";
|
|
31
31
|
import { VTooltip } from "floating-vue";
|
|
32
32
|
const _sfc_main$1 = {
|
|
33
33
|
name: "NcAutoCompleteResult",
|
|
@@ -122,19 +122,19 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
122
122
|
])
|
|
123
123
|
]);
|
|
124
124
|
}
|
|
125
|
-
const NcAutoCompleteResult = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-
|
|
126
|
-
register(
|
|
125
|
+
const NcAutoCompleteResult = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-c723f255"]]);
|
|
126
|
+
register(t32, t35);
|
|
127
127
|
const style1 = {
|
|
128
|
-
"material-design-icon": "_material-design-
|
|
129
|
-
"tribute-container": "_tribute-
|
|
130
|
-
"tribute-container__item": "_tribute-
|
|
131
|
-
"tribute-container--focus-visible": "_tribute-container--focus-
|
|
132
|
-
"tribute-container-autocomplete": "_tribute-container-
|
|
133
|
-
"tribute-container-emoji": "_tribute-container-
|
|
134
|
-
"tribute-container-link": "_tribute-container-
|
|
135
|
-
"tribute-item": "_tribute-
|
|
136
|
-
"tribute-item__title": "_tribute-
|
|
137
|
-
"tribute-item__icon": "_tribute-
|
|
128
|
+
"material-design-icon": "_material-design-icon_9ec48_12",
|
|
129
|
+
"tribute-container": "_tribute-container_9ec48_20",
|
|
130
|
+
"tribute-container__item": "_tribute-container__item_9ec48_41",
|
|
131
|
+
"tribute-container--focus-visible": "_tribute-container--focus-visible_9ec48_55",
|
|
132
|
+
"tribute-container-autocomplete": "_tribute-container-autocomplete_9ec48_59",
|
|
133
|
+
"tribute-container-emoji": "_tribute-container-emoji_9ec48_65",
|
|
134
|
+
"tribute-container-link": "_tribute-container-link_9ec48_66",
|
|
135
|
+
"tribute-item": "_tribute-item_9ec48_71",
|
|
136
|
+
"tribute-item__title": "_tribute-item__title_9ec48_86",
|
|
137
|
+
"tribute-item__icon": "_tribute-item__icon_9ec48_91"
|
|
138
138
|
};
|
|
139
139
|
const smilesCharacters = ["d", "D", "p", "P", "s", "S", "x", "X", ")", "(", "|", "/"];
|
|
140
140
|
const textSmiles = [];
|
|
@@ -155,7 +155,7 @@ const _sfc_main = {
|
|
|
155
155
|
*/
|
|
156
156
|
id: {
|
|
157
157
|
type: String,
|
|
158
|
-
default: () =>
|
|
158
|
+
default: () => createElementId()
|
|
159
159
|
},
|
|
160
160
|
/**
|
|
161
161
|
* Visual label of the contenteditable
|
|
@@ -242,11 +242,10 @@ const _sfc_main = {
|
|
|
242
242
|
"smart-picker-submit"
|
|
243
243
|
],
|
|
244
244
|
setup() {
|
|
245
|
-
const uid = GenRandomId(5);
|
|
246
245
|
return {
|
|
247
246
|
// Constants
|
|
248
|
-
labelId:
|
|
249
|
-
tributeId:
|
|
247
|
+
labelId: createElementId(),
|
|
248
|
+
tributeId: createElementId(),
|
|
250
249
|
/**
|
|
251
250
|
* Non-reactive property to store Tribute instance
|
|
252
251
|
*
|
|
@@ -357,7 +356,7 @@ const _sfc_main = {
|
|
|
357
356
|
this.$refs.contenteditable.focus();
|
|
358
357
|
},
|
|
359
358
|
initializeTribute() {
|
|
360
|
-
const renderMenuItem = (content) => `<div id="
|
|
359
|
+
const renderMenuItem = (content) => `<div id="${createElementId()}" class="${this.$style["tribute-item"]}" role="option">${content}</div>`;
|
|
361
360
|
const tributesCollection = [];
|
|
362
361
|
tributesCollection.push({
|
|
363
362
|
fillAttr: "id",
|
|
@@ -733,8 +732,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
733
732
|
const cssModules = {
|
|
734
733
|
"$style": style1
|
|
735
734
|
};
|
|
736
|
-
const NcRichContenteditable = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__cssModules", cssModules], ["__scopeId", "data-v-
|
|
735
|
+
const NcRichContenteditable = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__cssModules", cssModules], ["__scopeId", "data-v-7477451d"]]);
|
|
737
736
|
export {
|
|
738
737
|
NcAutoCompleteResult as N,
|
|
739
738
|
NcRichContenteditable as a
|
|
740
739
|
};
|
|
740
|
+
//# sourceMappingURL=NcRichContenteditable-B16VJW0Y.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcRichContenteditable-B16VJW0Y.mjs","sources":["../../src/components/NcRichContenteditable/NcAutoCompleteResult.vue","../../src/components/NcRichContenteditable/NcRichContenteditable.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"autocomplete-result\">\n\t\t<!-- Avatar or icon -->\n\t\t<div :class=\"[icon, `autocomplete-result__icon--${avatarUrl ? 'with-avatar' : ''}`]\"\n\t\t\t:style=\"avatarUrl ? { backgroundImage: `url(${avatarUrl})` } : null \"\n\t\t\tclass=\"autocomplete-result__icon\">\n\t\t\t<span v-if=\"status.icon\"\n\t\t\t\tclass=\"autocomplete-result__status autocomplete-result__status--icon\">\n\t\t\t\t{{ status && status.icon || '' }}\n\t\t\t</span>\n\t\t\t<NcUserStatusIcon v-else-if=\"status.status && status.status !== 'offline'\"\n\t\t\t\tclass=\"autocomplete-result__status\"\n\t\t\t\t:status=\"status.status\" />\n\t\t</div>\n\n\t\t<!-- Label and subline -->\n\t\t<span class=\"autocomplete-result__content\">\n\t\t\t<span class=\"autocomplete-result__title\" :title=\"labelWithFallback\">\n\t\t\t\t{{ labelWithFallback }}\n\t\t\t</span>\n\t\t\t<span v-if=\"subline\" class=\"autocomplete-result__subline\">\n\t\t\t\t{{ subline }}\n\t\t\t</span>\n\t\t</span>\n\t</div>\n</template>\n\n<script>\nimport { getAvatarUrl } from '../../utils/getAvatarUrl.ts'\n\nimport NcUserStatusIcon from '../NcUserStatusIcon/index.js'\n\nexport default {\n\tname: 'NcAutoCompleteResult',\n\n\tcomponents: {\n\t\tNcUserStatusIcon,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * @deprecated Use `label` instead\n\t\t */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: null,\n\t\t},\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: null,\n\t\t},\n\t\tsubline: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\tid: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\ticonUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\tsource: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tstatus: {\n\t\t\ttype: [Object, Array],\n\t\t\tdefault: () => ({}),\n\t\t},\n\t},\n\tcomputed: {\n\t\tavatarUrl() {\n\t\t\tif (this.iconUrl) {\n\t\t\t\treturn this.iconUrl\n\t\t\t}\n\n\t\t\treturn this.id && this.source === 'users'\n\t\t\t\t? this.getAvatarUrl(this.id, 44)\n\t\t\t\t: null\n\t\t},\n\t\t// For backwards compatibility\n\t\tlabelWithFallback() {\n\t\t\treturn this.label || this.title\n\t\t},\n\t},\n\n\tmethods: {\n\t\tgetAvatarUrl,\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.autocomplete-result {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--default-grid-baseline);\n\tline-height: 1.2;\n\t--auto-complete-result-avatar-size: var(--default-clickable-area);\n\n\t&__icon {\n\t\tposition: relative;\n\t\tflex: 0 0 var(--default-clickable-area);\n\t\twidth: var(--default-clickable-area);\n\t\tmin-width: var(--default-clickable-area);\n\t\theight: var(--default-clickable-area);\n\t\tborder-radius: var(--default-clickable-area);\n\t\tbackground-color: var(--color-background-darker);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center;\n\t\tbackground-size: contain;\n\t\t&--with-avatar {\n\t\t\tcolor: inherit;\n\t\t\tbackground-size: cover;\n\t\t}\n\t}\n\n\t&__status {\n\t\t--auto-complete-result-status-icon-size: clamp(14px, var(--auto-complete-result-avatar-size) * 0.4, 18px);\n\t\t// Avatar Radius * (1 - 1 / sqrt(2)) - Status Icon Radius / 2\n\t\t--auto-complete-result-status-icon-position: calc(var(--auto-complete-result-avatar-size) / 2 * (1 - 1 / sqrt(2)) - var(--auto-complete-result-status-icon-size) / 2);\n\t\tbox-sizing: border-box;\n\t\tposition: absolute;\n\t\tinset-inline-end: var(--auto-complete-result-status-icon-position);\n\t\tbottom: var(--auto-complete-result-status-icon-position);\n\t\theight: var(--auto-complete-result-status-icon-size);\n\t\twidth: var(--auto-complete-result-status-icon-size);\n\t\tborder: 2px solid var(--color-main-background);\n\t\tborder-radius: 50%;\n\t\tbackground-color: var(--color-main-background);\n\t\tfont-size: calc(var(--auto-complete-result-status-icon-size) / 1.2);\n\t\tline-height: 1.2;\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-size: var(--auto-complete-result-status-icon-size);\n\t\tbackground-position: center;\n\n\t\t&--icon {\n\t\t\tborder: none;\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\n\t&__content {\n\t\tdisplay: flex;\n\t\tflex: 1 1 100%;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tmin-width: 0;\n\t}\n\n\t&__title,\n\t&__subline {\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t&__subline {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n}\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<docs>\n\n### General description\n\nThis component displays contenteditable div with automated `@` [at] autocompletion and `:` [colon] emoji autocompletion.\n\n### Examples\n\nTry mentioning user @Test01 or inserting emoji :smile\n\n```vue\n<template>\n\t<div>\n\t\t<NcRichContenteditable\n\t\t\tlabel=\"Write a comment\"\n\t\t\tv-model=\"message\"\n\t\t\t:auto-complete=\"autoComplete\"\n\t\t\t:maxlength=\"100\"\n\t\t\t:user-data=\"userData\"\n\t\t\t@submit=\"onSubmit\" />\n\t\t<br>\n\n\t\t<NcRichContenteditable\n\t\t\tv-model=\"message\"\n\t\t\t:auto-complete=\"autoComplete\"\n\t\t\t:maxlength=\"400\"\n\t\t\t:multiline=\"true\"\n\t\t\t:user-data=\"userData\"\n\t\t\t@submit=\"onSubmit\" />\n\n\t\t<h5>Output - raw</h5>\n\t\t{{ JSON.stringify(message) }}\n\n\t\t<h5>Output - preformatted</h5>\n\t\t<p class=\"pre-line\">{{ message }}</p>\n\n\t\t<h5>Output - in NcRichText with markdown support</h5>\n\t\t<NcRichText :text=\"text\" :arguments=\"userMentions\" autolink use-markdown />\n\t</div>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tmessage: '**Lorem ipsum** dolor sit amet.',\n\t\t\t// You need to provide this for the inline mention to understand what to display or not.\n\t\t\t// Key should be a string with leading '@', like @Test02 or @\"Test Offline\"\n\t\t\tuserData: {\n\t\t\t\tTest01: {\n\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\tid: 'Test01',\n\t\t\t\t\tlabel: 'Test01',\n\t\t\t\t\tsource: 'users',\n\t\t\t\t\tprimary: true,\n\t\t\t\t},\n\t\t\t\tTest02: {\n\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\tid: 'Test02',\n\t\t\t\t\tlabel: 'Test02',\n\t\t\t\t\tsource: 'users',\n\t\t\t\t\tstatus: {\n\t\t\t\t\t\tclearAt: null,\n\t\t\t\t\t\ticon: '🎡',\n\t\t\t\t\t\tmessage: 'Visiting London',\n\t\t\t\t\t\tstatus: 'away',\n\t\t\t\t\t},\n\t\t\t\t\tsubline: 'Visiting London',\n\t\t\t\t},\n\t\t\t\t'Test@User': {\n\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\tid: 'Test@User',\n\t\t\t\t\tlabel: 'Test 03',\n\t\t\t\t\tsource: 'users',\n\t\t\t\t\tstatus: {\n\t\t\t\t\t\tclearAt: null,\n\t\t\t\t\t\ticon: '🎡',\n\t\t\t\t\t\tmessage: 'Having space in my name',\n\t\t\t\t\t\tstatus: 'online',\n\t\t\t\t\t},\n\t\t\t\t\tsubline: 'Visiting London',\n\t\t\t\t},\n\t\t\t\t'Test Offline': {\n\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\tid: 'Test Offline',\n\t\t\t\t\tlabel: 'Test Offline',\n\t\t\t\t\tsource: 'users',\n\t\t\t\t\tstatus: {\n\t\t\t\t\t\tclearAt: null,\n\t\t\t\t\t\ticon: null,\n\t\t\t\t\t\tmessage: null,\n\t\t\t\t\t\tstatus: 'offline',\n\t\t\t\t\t},\n\t\t\t\t\tsubline: null,\n\t\t\t\t},\n\t\t\t\t'Test DND': {\n\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\tid: 'Test DND',\n\t\t\t\t\tlabel: 'Test DND',\n\t\t\t\t\tsource: 'users',\n\t\t\t\t\tstatus: {\n\t\t\t\t\t\tclearAt: null,\n\t\t\t\t\t\ticon: null,\n\t\t\t\t\t\tmessage: 'Out sick',\n\t\t\t\t\t\tstatus: 'dnd',\n\t\t\t\t\t},\n\t\t\t\t\tsubline: 'Out sick',\n\t\t\t\t},\n\t\t\t},\n\t\t\t// To display user bubbles in NcRichText, special format of data should be provided:\n\t\t\t// Key should be in curly brackets without '@' and ' ' symbols, like {user-2}\n\t\t\tuserMentions: {\n\t\t\t\t'user-1': {\n\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tdisplayName: 'Test01',\n\t\t\t\t\t\tuser: 'Test01',\n\t\t\t\t\t\tprimary: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t'user-2': {\n\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tdisplayName: 'Test02',\n\t\t\t\t\t\tuser: 'Test02',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t'user-3': {\n\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tdisplayName: 'Test 03',\n\t\t\t\t\t\tuser: 'Test@User',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t'user-4': {\n\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tdisplayName: 'Test Offline',\n\t\t\t\t\t\tuser: 'Test Offline',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t'user-5': {\n\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tdisplayName: 'Test DND',\n\t\t\t\t\t\tuser: 'Test DND',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t},\n\tcomputed: {\n\t\ttext() {\n\t\t\treturn this.message\n\t\t\t\t\t.replace('@Test01', '{user-1}')\n\t\t\t\t\t.replace('@Test02', '{user-2}')\n\t\t\t\t\t.replace('@Test@User', '{user-3}')\n\t\t\t\t\t.replace('@\"Test Offline\"', '{user-4}')\n\t\t\t\t\t.replace('@\"Test DND\"', '{user-5}')\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t* Do your own query to the autocompletion api.\n\t\t* The returned data bellow is a fake data example.\n\t\t* The callback expects the same format returned by the core/autocomplete/get ocs api endpoint!\n\t\t* @see userData example above\n\t\t*\n\t\t* @param {string} search the query\n\t\t* @param {Function} callback the callback to process the results with\n\t\t*/\n\t\tautoComplete(search, callback) {\n\t\t\tcallback(Object.values(this.userData))\n\t\t},\n\t\tonSubmit() {\n\t\t\talert(this.message)\n\t\t}\n\t}\n}\n</script>\n<style lang=\"scss\" scoped>\n\th5 {\n\t\tfont-weight: bold;\n\t\tmargin: 40px 0 20px;\n\t}\n\n\t.pre-line {\n\t\twhite-space: pre-line;\n\t}\n</style>\n```\n\n### Using public methods\n\n```vue\n<template>\n\t<div>\n\t\t<div class=\"buttons-wrapper\">\n\t\t\t<NcButton class=\"show-slash-button\" @click=\"showSlashCommands\">Slash commands</NcButton>\n\t\t\t<NcButton class=\"focus-button\" @click=\"focus\">Focus on input</NcButton>\n\t\t</div>\n\t\t<NcRichContenteditable\n\t\t\tref=\"contenteditable\"\n\t\t\tv-model=\"message\"\n\t\t\tlabel=\"Write a comment\"\n\t\t\t:maxlength=\"100\"/>\n\t</div>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tmessage: '**Lorem ipsum** dolor sit amet. ',\n\t\t}\n\t},\n\tmethods: {\n\t\tshowSlashCommands() {\n\t\t\tthis.$refs.contenteditable.showTribute('/')\n\t\t},\n\t\tfocus() {\n\t\t\tthis.$refs.contenteditable.focus()\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n\t.buttons-wrapper {\n\t\tdisplay: flex;\n\t\tgap: 10px;\n\t\tmargin-bottom: 20px;\n\t}\n</style>\n```\n\n</docs>\n\n<template>\n\t<div class=\"rich-contenteditable\" :class=\"$props.class\">\n\t\t<div :id=\"id\"\n\t\t\tref=\"contenteditable\"\n\t\t\tv-tooltip=\"tooltipString\"\n\t\t\t:class=\"{\n\t\t\t\t'rich-contenteditable__input--empty': isEmptyValue,\n\t\t\t\t'rich-contenteditable__input--multiline': multiline,\n\t\t\t\t'rich-contenteditable__input--has-label': label,\n\t\t\t\t'rich-contenteditable__input--overflow': isOverMaxlength,\n\t\t\t\t'rich-contenteditable__input--disabled': disabled,\n\t\t\t}\"\n\t\t\t:contenteditable=\"canEdit\"\n\t\t\t:aria-labelledby=\"label ? labelId : undefined\"\n\t\t\t:aria-placeholder=\"placeholder\"\n\t\t\taria-multiline=\"true\"\n\t\t\tclass=\"rich-contenteditable__input\"\n\t\t\trole=\"textbox\"\n\t\t\taria-haspopup=\"listbox\"\n\t\t\taria-autocomplete=\"inline\"\n\t\t\t:aria-controls=\"tributeId\"\n\t\t\t:aria-expanded=\"isAutocompleteOpen ? 'true' : 'false'\"\n\t\t\t:aria-activedescendant=\"autocompleteActiveId\"\n\t\t\tv-bind=\"$attrs\"\n\t\t\t@focus=\"moveCursorToEnd\"\n\t\t\t@input=\"onInput\"\n\t\t\t@compositionstart=\"isComposing = true\"\n\t\t\t@compositionend=\"isComposing = false\"\n\t\t\t@keydown.esc.capture=\"onKeyEsc\"\n\t\t\t@keydown.enter.exact=\"onEnter\"\n\t\t\t@keydown.ctrl.enter.exact.stop.prevent=\"onCtrlEnter\"\n\t\t\t@paste=\"onPaste\"\n\t\t\t@keyup.stop.prevent.capture=\"onKeyUp\"\n\t\t\t@keydown.up.exact.stop=\"onTributeArrowKeyDown\"\n\t\t\t@keydown.down.exact.stop=\"onTributeArrowKeyDown\"\n\t\t\t@tribute-active-true=\"onTributeActive(true)\"\n\t\t\t@tribute-active-false=\"onTributeActive(false)\" />\n\t\t<div v-if=\"label\"\n\t\t\t:id=\"labelId\"\n\t\t\tclass=\"rich-contenteditable__label\">\n\t\t\t{{ label }}\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport { t } from '../../l10n.js'\nimport NcAutoCompleteResult from './NcAutoCompleteResult.vue'\nimport richEditor from '../../mixins/richEditor/index.js'\nimport Tooltip from '../../directives/Tooltip/index.js'\nimport { emojiSearch, emojiAddRecent } from '../../functions/emoji/index.ts'\nimport { searchProvider, getLinkWithPicker } from '../NcRichText/index.js'\nimport { createElementId } from '../../utils/createElementId.ts'\n\nimport Tribute from 'tributejs/dist/tribute.esm.js'\nimport debounce from 'debounce'\nimport stringLength from 'string-length'\n\n/**\n * Populate the list of text smiles we want to offer via Tribute.\n * We add the colon `:)` and colon-dash `:-)` version for each of them.\n */\nconst smilesCharacters = ['d', 'D', 'p', 'P', 's', 'S', 'x', 'X', ')', '(', '|', '/']\nconst textSmiles = []\nsmilesCharacters.forEach((char) => {\n\ttextSmiles.push(':' + char)\n\ttextSmiles.push(':-' + char)\n})\n\nexport default {\n\tname: 'NcRichContenteditable',\n\n\tdirectives: {\n\t\ttooltip: Tooltip,\n\t},\n\n\tmixins: [richEditor],\n\n\tinheritAttrs: false,\n\n\tprops: {\n\t\t/**\n\t\t * The ID attribute of the content editable\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\tdefault: () => createElementId(),\n\t\t},\n\n\t\t/**\n\t\t * Visual label of the contenteditable\n\t\t */\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\tmodelValue: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t\trequired: true,\n\t\t},\n\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: t('Write a message …'),\n\t\t},\n\n\t\tautoComplete: {\n\t\t\ttype: Function,\n\t\t\tdefault: () => [],\n\t\t},\n\n\t\tmenuContainer: {\n\t\t\ttype: Element,\n\t\t\tdefault: () => document.body,\n\t\t},\n\n\t\t/**\n\t\t * Make the contenteditable looks like a textarea or not.\n\t\t * Default looks like a single-line input.\n\t\t * This also handle the default enter/shift+enter behaviour.\n\t\t * if multiline, enter = newline; otherwise enter = submit\n\t\t * shift+enter always add a new line. ctrl+enter always submits\n\t\t */\n\t\tmultiline: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Is the content editable ?\n\t\t */\n\t\tcontenteditable: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\n\t\t/**\n\t\t * Disable the editing and show specific disabled design\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Max allowed length\n\t\t */\n\t\tmaxlength: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Enable or disable emoji autocompletion\n\t\t */\n\t\temojiAutocomplete: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\n\t\t/**\n\t\t * Enable or disable link autocompletion\n\t\t */\n\t\tlinkAutocomplete: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\n\t\t/**\n\t\t * CSS class to apply to the root element.\n\t\t */\n\t\tclass: {\n\t\t\ttype: [String, Array, Object],\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\temits: [\n\t\t'submit',\n\t\t'paste',\n\t\t'update:modelValue',\n\t\t'smart-picker-submit',\n\t],\n\n\tsetup() {\n\t\treturn {\n\t\t\t// Constants\n\t\t\tlabelId: createElementId(),\n\t\t\ttributeId: createElementId(),\n\n\t\t\t/**\n\t\t\t * Non-reactive property to store Tribute instance\n\t\t\t *\n\t\t\t * @type {import('tributejs').default | null}\n\t\t\t */\n\t\t\ttribute: null,\n\t\t\ttributeStyleMutationObserver: null,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t// Represent the raw untrimmed text of the contenteditable\n\t\t\t// serves no other purpose than to check whether the\n\t\t\t// content is empty or not\n\t\t\tlocalValue: this.modelValue,\n\n\t\t\t// Is in text composition session in IME\n\t\t\tisComposing: false,\n\n\t\t\t// Tribute autocomplete\n\t\t\tisAutocompleteOpen: false,\n\t\t\tautocompleteActiveId: undefined,\n\t\t\tisTributeIntegrationDone: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Is the current trimmed value empty?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisEmptyValue() {\n\t\t\treturn !this.localValue || this.localValue.trim() === ''\n\t\t},\n\n\t\t/**\n\t\t * Is the current value over maxlength?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisOverMaxlength() {\n\t\t\tif (this.isEmptyValue || !this.maxlength) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn stringLength(this.localValue) > this.maxlength\n\t\t},\n\n\t\t/**\n\t\t * Tooltip to show if characters count is over limit\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\ttooltipString() {\n\t\t\tif (!this.isOverMaxlength) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tcontent: t('Message limit of {count} characters reached', { count: this.maxlength }),\n\t\t\t\tshown: true,\n\t\t\t\ttrigger: 'manual',\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Edit is only allowed when contenteditableis true and disabled is false\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanEdit() {\n\t\t\treturn this.contenteditable && !this.disabled\n\t\t},\n\n\t\t/**\n\t\t * Compute debounce function for the autocomplete function\n\t\t */\n\t\tdebouncedAutoComplete() {\n\t\t\treturn debounce(async (search, callback) => {\n\t\t\t\tthis.autoComplete(search, callback)\n\t\t\t}, 100)\n\t\t},\n\t},\n\n\twatch: {\n\t\t/**\n\t\t * If the parent value change, we compare the plain text rendering\n\t\t * If it's different, we render everything and update the main content\n\t\t */\n\t\tmodelValue() {\n\t\t\tconst html = this.$refs.contenteditable.innerHTML\n\t\t\t// Compare trimmed versions to be safe\n\t\t\tif (this.modelValue.trim() !== this.parseContent(html).trim()) {\n\t\t\t\tthis.updateContent(this.modelValue)\n\t\t\t}\n\t\t},\n\t},\n\n\tmounted() {\n\t\tthis.initializeTribute()\n\n\t\t// Update default value\n\t\tthis.updateContent(this.modelValue)\n\n\t\t// Removes the contenteditable attribute at first load if the prop is\n\t\t// set to false.\n\t\tthis.$refs.contenteditable.contentEditable = this.canEdit\n\t},\n\tbeforeUnmount() {\n\t\tif (this.tribute) {\n\t\t\tthis.tribute.detach(this.$refs.contenteditable)\n\t\t}\n\n\t\tif (this.tributeStyleMutationObserver) {\n\t\t\tthis.tributeStyleMutationObserver.disconnect()\n\t\t}\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Focus the richContenteditable\n\t\t *\n\t\t * @public\n\t\t */\n\t\tfocus() {\n\t\t\tthis.$refs.contenteditable.focus()\n\t\t},\n\n\t\tinitializeTribute() {\n\t\t\tconst renderMenuItem = (content) => `<div id=\"${createElementId()}\" class=\"${this.$style['tribute-item']}\" role=\"option\">${content}</div>`\n\n\t\t\tconst tributesCollection = []\n\t\t\ttributesCollection.push({\n\t\t\t\tfillAttr: 'id',\n\t\t\t\t// Search against id and label (display name) (fallback to title for v8.0.0..8.6.1 compatibility)\n\t\t\t\tlookup: result => `${result.id} ${result.label ?? result.title}`,\n\t\t\t\trequireLeadingSpace: true,\n\t\t\t\t// Popup mention autocompletion templates\n\t\t\t\tmenuItemTemplate: item => renderMenuItem(this.renderComponentHtml(item.original, NcAutoCompleteResult)),\n\t\t\t\t// Hide if no results\n\t\t\t\tnoMatchTemplate: () => '<span class=\"hidden\"></span>',\n\t\t\t\t// Inner display of mentions\n\t\t\t\tselectTemplate: item => this.genSelectTemplate(item?.original?.id),\n\t\t\t\t// Autocompletion results\n\t\t\t\tvalues: this.debouncedAutoComplete,\n\t\t\t\t// Class added to the menu container\n\t\t\t\tcontainerClass: `${this.$style['tribute-container']} ${this.$style['tribute-container-autocomplete']}`,\n\t\t\t\t// Class added to each list item\n\t\t\t\titemClass: this.$style['tribute-container__item'],\n\n\t\t\t})\n\n\t\t\tif (this.emojiAutocomplete) {\n\t\t\t\ttributesCollection.push({\n\t\t\t\t\ttrigger: ':',\n\t\t\t\t\t// Don't use the tribute search function at all\n\t\t\t\t\t// We pass search results as values (see below)\n\t\t\t\t\tlookup: (result, query) => query,\n\t\t\t\t\trequireLeadingSpace: true,\n\t\t\t\t\t// Popup mention autocompletion templates\n\t\t\t\t\tmenuItemTemplate: item => {\n\t\t\t\t\t\tif (textSmiles.includes(item.original)) {\n\t\t\t\t\t\t\t// Display the raw text string for :), :-D, … for non emoji results,\n\t\t\t\t\t\t\t// instead of trying to show an image and their name.\n\t\t\t\t\t\t\treturn item.original\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn renderMenuItem(`<span class=\"${this.$style['tribute-item__emoji']}\">${item.original.native}</span> :${item.original.short_name}`)\n\t\t\t\t\t},\n\t\t\t\t\t// Hide if no results\n\t\t\t\t\tnoMatchTemplate: () => t('No emoji found'),\n\t\t\t\t\t// Display raw emoji along with its name\n\t\t\t\t\tselectTemplate: (item) => {\n\t\t\t\t\t\tif (textSmiles.includes(item.original)) {\n\t\t\t\t\t\t\t// Replace the selection with the raw text string for :), :-D, … for non emoji results\n\t\t\t\t\t\t\treturn item.original\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\temojiAddRecent(item.original)\n\t\t\t\t\t\treturn item.original.native\n\t\t\t\t\t},\n\t\t\t\t\t// Pass the search results as values\n\t\t\t\t\tvalues: (text, cb) => {\n\t\t\t\t\t\tconst emojiResults = emojiSearch(text)\n\t\t\t\t\t\tif (textSmiles.includes(':' + text)) {\n\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t * Prepend text smiles to the search results so that Tribute\n\t\t\t\t\t\t\t * is not interfering with normal writing, aka. \"Cocos Island Meme\".\n\t\t\t\t\t\t\t * E.g. `:)` and `:-)` got replaced by the flag of Cocos Island,\n\t\t\t\t\t\t\t * when submitting the input with Enter after writing them\n\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\temojiResults.unshift(':' + text)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcb(emojiResults)\n\t\t\t\t\t},\n\t\t\t\t\t// Class added to the menu container\n\t\t\t\t\tcontainerClass: `${this.$style['tribute-container']} ${this.$style['tribute-container-emoji']}`,\n\t\t\t\t\t// Class added to each list item\n\t\t\t\t\titemClass: this.$style['tribute-container__item'],\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (this.linkAutocomplete) {\n\t\t\t\ttributesCollection.push({\n\t\t\t\t\ttrigger: '/',\n\t\t\t\t\t// Don't use the tribute search function at all\n\t\t\t\t\t// We pass search results as values (see below)\n\t\t\t\t\tlookup: (result, query) => query,\n\t\t\t\t\trequireLeadingSpace: true,\n\t\t\t\t\t// Popup mention autocompletion templates\n\t\t\t\t\tmenuItemTemplate: item => renderMenuItem(`<img class=\"${this.$style['tribute-item__icon']}\" src=\"${item.original.icon_url}\"> <span class=\"${this.$style['tribute-item__title']}\">${item.original.title}</span>`),\n\t\t\t\t\t// Hide if no results\n\t\t\t\t\tnoMatchTemplate: () => t('No link provider found'),\n\t\t\t\t\tselectTemplate: this.getLink,\n\t\t\t\t\t// Pass the search results as values\n\t\t\t\t\tvalues: (text, cb) => cb(searchProvider(text)),\n\t\t\t\t\t// Class added to the menu container\n\t\t\t\t\tcontainerClass: `${this.$style['tribute-container']} ${this.$style['tribute-container-link']}`,\n\t\t\t\t\t// Class added to each list item\n\t\t\t\t\titemClass: this.$style['tribute-container__item'],\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tthis.tribute = new Tribute({\n\t\t\t\tcollection: tributesCollection,\n\t\t\t\t// FIXME: tributejs doesn't support allowSpaces as a collection option, only as a global one\n\t\t\t\t// Requires to fork a library to allow spaces only in the middle of mentions ('@' trigger)\n\t\t\t\tallowSpaces: false,\n\t\t\t\t// Where to inject the menu popup\n\t\t\t\tmenuContainer: this.menuContainer,\n\t\t\t})\n\t\t\tthis.tribute.attach(this.$refs.contenteditable)\n\t\t},\n\n\t\tgetLink(item) {\n\t\t\t// there is no way to get a tribute result asynchronously\n\t\t\t// so we immediately insert a node and replace it when the result comes\n\t\t\tgetLinkWithPicker(item.original.id)\n\t\t\t\t.then(result => {\n\t\t\t\t\t// replace dummy temp element by a text node which contains the picker result\n\t\t\t\t\tconst tmpElem = document.getElementById('tmp-smart-picker-result-node')\n\t\t\t\t\tconst eventData = {\n\t\t\t\t\t\tresult,\n\t\t\t\t\t\tinsertText: true,\n\t\t\t\t\t}\n\t\t\t\t\tthis.$emit('smart-picker-submit', eventData)\n\t\t\t\t\tif (eventData.insertText) {\n\t\t\t\t\t\tconst newElem = document.createTextNode(result)\n\t\t\t\t\t\ttmpElem.replaceWith(newElem)\n\t\t\t\t\t\tthis.setCursorAfter(newElem)\n\t\t\t\t\t\tthis.updateValue(this.$refs.contenteditable.innerHTML)\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttmpElem.remove()\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsole.debug('Smart picker promise rejected:', error)\n\t\t\t\t\tconst tmpElem = document.getElementById('tmp-smart-picker-result-node')\n\t\t\t\t\tthis.setCursorAfter(tmpElem)\n\t\t\t\t\ttmpElem.remove()\n\t\t\t\t})\n\t\t\treturn '<span id=\"tmp-smart-picker-result-node\"></span>'\n\t\t},\n\t\tsetCursorAfter(element) {\n\t\t\tconst range = document.createRange()\n\t\t\trange.setEndAfter(element)\n\t\t\trange.collapse()\n\t\t\tconst selection = window.getSelection()\n\t\t\tselection.removeAllRanges()\n\t\t\tselection.addRange(range)\n\t\t},\n\t\tmoveCursorToEnd() {\n\t\t\tif (!document.createRange) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst range = document.createRange()\n\t\t\trange.selectNodeContents(this.$refs.contenteditable)\n\t\t\trange.collapse(false)\n\t\t\tconst selection = window.getSelection()\n\t\t\tselection.removeAllRanges()\n\t\t\tselection.addRange(range)\n\t\t},\n\t\t/**\n\t\t * Re-emit the input event to the parent\n\t\t *\n\t\t * @param {Event} event the input event\n\t\t */\n\t\tonInput(event) {\n\t\t\tthis.updateValue(event.target.innerHTML)\n\t\t},\n\n\t\t/**\n\t\t * When pasting, sanitize the content, extract text\n\t\t * and render it again\n\t\t *\n\t\t * @param {Event} event the paste event\n\t\t * @fires Event paste the original paste event\n\t\t */\n\t\tonPaste(event) {\n\t\t\t// Either disabled or edit deactivated\n\t\t\tif (!this.canEdit) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tevent.preventDefault()\n\t\t\tconst clipboardData = event.clipboardData\n\n\t\t\t/** The original paste event */\n\t\t\tthis.$emit('paste', event)\n\n\t\t\t// If we have a file or if we don't have any text, ignore\n\t\t\tif (clipboardData.files.length !== 0\n\t\t\t\t|| !Object.values(clipboardData.items).find(item => item?.type.startsWith('text'))) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst text = clipboardData.getData('text')\n\t\t\tconst selection = window.getSelection()\n\n\t\t\t// Generate text and insert\n\t\t\tconst range = selection.getRangeAt(0)\n\t\t\trange.deleteContents()\n\t\t\trange.insertNode(document.createTextNode(text))\n\n\t\t\t// Collapse the range to the end position\n\t\t\trange.collapse(false)\n\n\t\t\t// Propagate data\n\t\t\tthis.updateValue(this.$refs.contenteditable.innerHTML)\n\t\t},\n\n\t\t/**\n\t\t * Update the value text from the provided html\n\t\t *\n\t\t * @param {string} htmlOrText the html content (or raw text with @mentions)\n\t\t */\n\t\tupdateValue(htmlOrText) {\n\t\t\t// Browsers keep <br> after erasing contenteditable\n\t\t\tconst text = this.parseContent(htmlOrText).replace(/^\\n$/, '')\n\t\t\tthis.localValue = text\n\t\t\tthis.$emit('update:modelValue', text)\n\t\t},\n\n\t\t/**\n\t\t * Update content and local value\n\t\t *\n\t\t * @param {string} value the message value\n\t\t */\n\t\tupdateContent(value) {\n\t\t\tconst renderedContent = this.renderContent(value)\n\t\t\tthis.$refs.contenteditable.innerHTML = renderedContent\n\t\t\tthis.localValue = value\n\t\t},\n\n\t\t/**\n\t\t * Enter key pressed. Submits if not multiline\n\t\t *\n\t\t * @param {Event} event the keydown event\n\t\t */\n\t\tonEnter(event) {\n\t\t\t// Prevent submitting if multiline\n\t\t\t// or length is over maxlength\n\t\t\t// or autocompletion menu is opened\n\t\t\t// or in a text composition session with IME\n\t\t\tif (this.multiline\n\t\t\t\t|| this.isOverMaxlength\n\t\t\t\t|| this.tribute.isActive\n\t\t\t\t|| this.isComposing) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\tthis.$emit('submit', event)\n\t\t},\n\n\t\t/**\n\t\t * Ctrl + Enter key pressed is used to submit\n\t\t *\n\t\t * @param {Event} event the keydown event\n\t\t */\n\t\tonCtrlEnter(event) {\n\t\t\tif (this.isOverMaxlength) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.$emit('submit', event)\n\t\t},\n\n\t\tonKeyUp(event) {\n\t\t\t// prevent tribute from opening on keyup\n\t\t\tevent.stopImmediatePropagation()\n\t\t},\n\n\t\tonKeyEsc(event) {\n\t\t\t// prevent event from bubbling when tribute is open\n\t\t\tif (this.tribute && this.isAutocompleteOpen) {\n\t\t\t\tevent.stopImmediatePropagation()\n\t\t\t\tthis.tribute.hideMenu()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Get HTML element with Tribute.js container\n\t\t * @return {HTMLElement}\n\t\t */\n\t\tgetTributeContainer() {\n\t\t\treturn this.tribute.menu\n\t\t},\n\n\t\t/**\n\t\t * Get the currently selected item element id in Tribute.js container\n\t\t * @return {HTMLElement}\n\t\t */\n\t\tgetTributeSelectedItem() {\n\t\t\t// Tribute does not provide a way to get the active item, only the data index\n\t\t\t// So we have to find it manually by select class\n\t\t\treturn this.getTributeContainer().querySelector('.highlight [id^=\"nc-rich-contenteditable-tribute-item-\"]')\n\t\t},\n\n\t\t/**\n\t\t * Handle Tribute activation\n\t\t * @param {boolean} isActive - is active\n\t\t */\n\t\tonTributeActive(isActive) {\n\t\t\tthis.isAutocompleteOpen = isActive\n\n\t\t\tif (isActive) {\n\t\t\t\t// Tribute.js doesn't support containerClass update when new collection is open\n\t\t\t\t// The first opened collection's containerClass stays forever\n\t\t\t\t// https://github.com/zurb/tribute/issues/595\n\t\t\t\t// https://github.com/zurb/tribute/issues/627\n\t\t\t\t// So we have to manually update the class\n\t\t\t\t// The default class is \"tribute-container\"\n\t\t\t\tthis.getTributeContainer().setAttribute('class', this.tribute.current.collection.containerClass || this.$style['tribute-container'])\n\n\t\t\t\tthis.setupTributeIntegration()\n\t\t\t\t// Remove the event handler if any\n\t\t\t\tdocument.removeEventListener('click', this.hideTribute, true)\n\t\t\t} else {\n\t\t\t\t// Cancel loading data for autocomplete\n\t\t\t\t// Otherwise it could be received when another autocomplete is already opened\n\t\t\t\tthis.debouncedAutoComplete.clear()\n\n\t\t\t\t// Reset active item\n\t\t\t\tthis.autocompleteActiveId = undefined\n\n\t\t\t\tthis.setTributeFocusVisible(false)\n\t\t\t}\n\t\t},\n\n\t\tonTributeArrowKeyDown() {\n\t\t\tif (!this.isAutocompleteOpen) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.setTributeFocusVisible(true)\n\t\t\tthis.onTributeSelectedItemWillChange()\n\t\t},\n\n\t\tonTributeSelectedItemWillChange() {\n\t\t\t// Wait until tribute has updated the selected item\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tthis.autocompleteActiveId = this.getTributeSelectedItem()?.id\n\t\t\t})\n\t\t},\n\n\t\tsetupTributeIntegration() {\n\t\t\t// Setup integration only once on the first open\n\t\t\tif (this.isTributeIntegrationDone) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.isTributeIntegrationDone = true\n\n\t\t\tconst tributeContainer = this.getTributeContainer()\n\n\t\t\t// For aria-controls\n\t\t\ttributeContainer.id = this.tributeId\n\n\t\t\t// Container with options must be a listbox\n\t\t\ttributeContainer.setAttribute('role', 'listbox')\n\t\t\t// Reset list+listitem role from ul+li\n\t\t\tconst ul = tributeContainer.children[0]\n\t\t\tul.setAttribute('role', 'presentation')\n\n\t\t\t// Tribute.js does not provide a way to react on show/hide\n\t\t\t// tribute-active-true/false events are fired on initial activation, which is too early with async autoComplete function\n\t\t\tthis.tributeStyleMutationObserver = new MutationObserver(([{ target }]) => {\n\t\t\t\tif (target.style.display !== 'none') {\n\t\t\t\t\t// Tribute is visible - there will be selected item\n\t\t\t\t\tthis.onTributeSelectedItemWillChange()\n\t\t\t\t}\n\t\t\t}).observe(tributeContainer, {\n\t\t\t\tattributes: true,\n\t\t\t\tattributeFilter: ['style'],\n\t\t\t})\n\n\t\t\t// Handle selecting new item on mouse selection\n\t\t\ttributeContainer.addEventListener('mousemove', () => {\n\t\t\t\tthis.setTributeFocusVisible(false)\n\t\t\t\tthis.onTributeSelectedItemWillChange()\n\t\t\t}, { passive: true })\n\t\t},\n\n\t\t/**\n\t\t * Set tribute-container--focus-visible class on the Tribute container when the user navigates the listbox via keyboard.\n\t\t *\n\t\t * Because the real focus is kept on the textbox, we cannot use the :focus-visible pseudo-class\n\t\t * to style selected options in the autocomplete listbox.\n\t\t *\n\t\t * @param {boolean} withFocusVisible - should the focus-visible class be added\n\t\t */\n\t\tsetTributeFocusVisible(withFocusVisible) {\n\t\t\tif (withFocusVisible) {\n\t\t\t\tthis.getTributeContainer().classList.add(this.$style['tribute-container--focus-visible'])\n\t\t\t} else {\n\t\t\t\tthis.getTributeContainer().classList.remove(this.$style['tribute-container--focus-visible'])\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Show tribute menu programmatically.\n\t\t * @param {string} trigger - trigger character, can be '/', '@', or ':'\n\t\t *\n\t\t * @public\n\t\t */\n\t\tshowTribute(trigger) {\n\t\t\tthis.focus()\n\t\t\tconst index = this.tribute.collection.findIndex(collection => collection.trigger === trigger)\n\t\t\tthis.tribute.showMenuForCollection(this.$refs.contenteditable, index)\n\t\t\tthis.updateValue(this.$refs.contenteditable.innerHTML)\n\t\t\tdocument.addEventListener('click', this.hideTribute, true)\n\t\t},\n\n\t\t/**\n\t\t * Hide tribute menu programmatically\n\t\t *\n\t\t */\n\t\thideTribute() {\n\t\t\tthis.tribute.hideMenu()\n\t\t\tdocument.removeEventListener('click', this.hideTribute, true)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n// Standalone styling, independent from server\n.rich-contenteditable {\n\t--contenteditable-block-offset: calc(2 * var(--default-grid-baseline));\n\t--contenteditable-inline-start-offset: calc(2 * var(--default-grid-baseline));\n\t--contenteditable-inline-end-offset: calc(2 * var(--default-grid-baseline));\n\tposition: relative;\n\twidth: auto;\n\n\t&__label {\n\t\tposition: absolute;\n\t\tmargin-inline: 14px;\n\t\tmax-width: fit-content;\n\t\tinset-block-start: 11px;\n\t\tinset-inline: 0;\n\t\t// Fix color so that users do not think the input already has content\n\t\tcolor: var(--color-text-maxcontrast);\n\t\t// only one line labels are allowed\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\t// forward events to input\n\t\tpointer-events: none;\n\t\t// Position transition\n\t\ttransition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick), background-color var(--animation-quick) var(--animation-slow);\n\t}\n\n\t&__input:focus + &__label,\n\t&__input:not(&__input--empty) + &__label {\n\t\tinset-block-start: -10px;\n\t\tline-height: 1.5; // minimum allowed line height for accessibility\n\t\tfont-size: 13px; // minimum allowed font size for accessibility\n\t\tfont-weight: 500;\n\t\tborder-radius: var(--default-grid-baseline) var(--default-grid-baseline) 0 0;\n\t\tbackground-color: var(--color-main-background);\n\t\tpadding-inline: 5px;\n\t\tmargin-inline: 9px;\n\n\t\ttransition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick);\n\t}\n\n\t&__input {\n\t\toverflow-y: auto;\n\t\twidth: auto;\n\t\tmargin: 0;\n\t\tpadding-block: var(--contenteditable-block-offset);\n\t\tpadding-inline: var(--contenteditable-inline-start-offset) var(--contenteditable-inline-end-offset);\n\t\tcursor: text;\n\t\twhite-space: pre-wrap;\n\t\tword-break: break-word;\n\t\tcolor: var(--color-main-text);\n\t\tborder: 2px solid var(--color-border-maxcontrast);\n\t\tborder-radius: var(--border-radius-large);\n\t\toutline: none;\n\t\tbackground-color: var(--color-main-background);\n\t\tfont-family: var(--font-face);\n\t\tfont-size: inherit;\n\t\ttab-size: 4;\n\t\tmin-height: var(--default-clickable-area);\n\t\tmax-height: calc(var(--default-clickable-area) * 5.5);\n\n\t\t&--has-label {\n\t\t\tmargin-top: 10px;\n\t\t}\n\n\t\t// Cannot use :empty because of firefox bug https://bugzilla.mozilla.org/show_bug.cgi?id=1513303\n\t\t&--empty:focus:before,\n\t\t&--empty:not(&--has-label):before {\n\t\t\tcontent: attr(aria-placeholder);\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\tposition: absolute;\n\t\t\twidth: calc(100% - var(--contenteditable-inline-start-offset) - var(--contenteditable-inline-end-offset));\n\t\t\theight: calc(100% - 2 * var(--contenteditable-block-offset));\n\t\t\toverflow: hidden;\n\t\t\twhite-space: nowrap;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&[contenteditable='false']:not(&--disabled) {\n\t\t\tcursor: default;\n\t\t\tbackground-color: transparent;\n\t\t\tcolor: var(--color-main-text);\n\t\t\tborder-color: transparent;\n\t\t\topacity: 1;\n\t\t\tborder-radius: 0;\n\t\t}\n\n\t\t&--multiline {\n\t\t\tmin-height: calc(var(--default-clickable-area) * 3);\n\t\t\t// No max for mutiline\n\t\t\tmax-height: none;\n\t\t}\n\n\t\t&--disabled {\n\t\t\topacity: $opacity_disabled;\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\tborder: 2px solid var(--color-background-darker);\n\t\t\tborder-radius: var(--border-radius);\n\t\t\tbackground-color: var(--color-background-dark);\n\t\t}\n\t}\n}\n\n</style>\n\n<style lang=\"scss\" module>\n.tribute-container {\n\tz-index: 9000;\n\toverflow: auto;\n\t// Hide container root element while initializing\n\tposition: absolute;\n\t/* stylelint-disable csstools/use-logical */ /* upstream logic */\n\tleft: -100vw;\n\t// Space it out a bit from the text\n\tmargin: var(--default-grid-baseline) 0;\n\tpadding: var(--default-grid-baseline);\n\tcolor: var(--color-text-maxcontrast);\n\tborder-radius: var(--border-radius-element, var(--border-radius));\n\tbackground: var(--color-main-background);\n\tbox-shadow: 0 1px 5px var(--color-box-shadow);\n\n\t&,\n\t& * {\n\t\tbox-sizing: border-box;\n\t}\n\n\tul {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: var(--default-grid-baseline);\n\t}\n\n\t.tribute-container__item {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tborder-radius: var(--border-radius-small, var(--border-radius));\n\t\tpadding: var(--default-grid-baseline);\n\t\tcursor: pointer;\n\t\tmin-height: var(--clickable-area-small, auto);\n\n\t\t&:global(.highlight) {\n\t\t\tcolor: var(--color-main-text);\n\t\t\tbackground: var(--color-background-hover);\n\n\t\t\t&, * {\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\t\t}\n\t}\n\n\t&.tribute-container--focus-visible {\n\t\t:global(.highlight).tribute-container__item {\n\t\t\toutline: 2px solid var(--color-main-text) !important;\n\t\t}\n\t}\n}\n\n.tribute-container-autocomplete {\n\tmin-width: 250px;\n\tmax-width: 300px;\n\t// Show maximum 4 entries and a half to show scroll\n\t// Autocomplete height\n\t// + 2 paddings inside autocomplete\n\t// + 1 padding gap\n\t// And 1.5 paddings - container's padding without the last gap\n\tmax-height: calc((var(--default-clickable-area) + 3 * var(--default-grid-baseline)) * 4.5 - 1.5 * var(--default-grid-baseline));\n}\n\n.tribute-container-emoji,\n.tribute-container-link {\n\tmin-width: 200px;\n\tmax-width: 200px;\n\t// Show maximum 5 entries and a half to show scroll\n\t// Item height\n\t// + 2 paddings around tribute item\n\t// + 1 padding gap\n\t// And 1.5 paddings - container's padding without the last gap\n\tmax-height: calc((24px + 3 * var(--default-grid-baseline)) * 5.5 - 1.5 * var(--default-grid-baseline));\n\n\t.tribute-item {\n\t\t// Take care of long names\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n}\n\n.tribute-container-link {\n\tmin-width: 200px;\n\tmax-width: 300px;\n\t.tribute-item {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\t&__title {\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\t\t&__icon {\n\t\t\tmargin: auto 0;\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t\tobject-fit: contain;\n\t\t\tpadding-inline-end: var(--default-grid-baseline);\n\t\t\tfilter: var(--background-invert-if-dark);\n\t\t}\n\t}\n}\n\n</style>\n"],"names":["_sfc_main","_hoisted_1","_openBlock","_createElementBlock","_createElementVNode","_normalizeClass","_normalizeStyle","_hoisted_2","_toDisplayString","_createBlock","_createCommentVNode","Tooltip","_withDirectives","_mergeProps","_withKeys","_withModifiers"],"mappings":"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"}
|