@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
|
@@ -1,445 +0,0 @@
|
|
|
1
|
-
import '../assets/NcRichText-C_CIawDX.css';
|
|
2
|
-
import { N as NcReferenceWidget } from "./referencePickerModal-DPmXigHR.mjs";
|
|
3
|
-
import { U as URL_PATTERN, p as parseUrl, r as remarkAutolink, g as getRoute } from "./autolink-CKPk5rzg.mjs";
|
|
4
|
-
import axios from "@nextcloud/axios";
|
|
5
|
-
import { getSharingToken } from "@nextcloud/sharing/public";
|
|
6
|
-
import { getCurrentUser } from "@nextcloud/auth";
|
|
7
|
-
import { generateOcsUrl } from "@nextcloud/router";
|
|
8
|
-
import { resolveComponent, openBlock, createElementBlock, normalizeClass, Fragment, renderList, createBlock, createCommentVNode, ref, h } from "vue";
|
|
9
|
-
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
10
|
-
import { N as NcCheckboxRadioSwitch } from "./NcCheckboxRadioSwitch-Zndby-mL.mjs";
|
|
11
|
-
import { N as NcLoadingIcon } from "./NcLoadingIcon-DREmHXr2.mjs";
|
|
12
|
-
import { u } from "unist-builder";
|
|
13
|
-
import { visit } from "unist-util-visit";
|
|
14
|
-
import { G as GenRandomId } from "./GenRandomId-CMooMQt0.mjs";
|
|
15
|
-
import { unified } from "unified";
|
|
16
|
-
import remarkParse from "remark-parse";
|
|
17
|
-
import breaks from "remark-breaks";
|
|
18
|
-
import remark2rehype from "remark-rehype";
|
|
19
|
-
import rehype2react from "rehype-react";
|
|
20
|
-
import rehypeExternalLinks from "rehype-external-links";
|
|
21
|
-
import { RouterLink } from "vue-router";
|
|
22
|
-
const _sfc_main$1 = {
|
|
23
|
-
name: "NcReferenceList",
|
|
24
|
-
components: {
|
|
25
|
-
NcReferenceWidget
|
|
26
|
-
},
|
|
27
|
-
props: {
|
|
28
|
-
text: {
|
|
29
|
-
type: String,
|
|
30
|
-
default: ""
|
|
31
|
-
},
|
|
32
|
-
referenceData: {
|
|
33
|
-
type: Object,
|
|
34
|
-
default: null
|
|
35
|
-
},
|
|
36
|
-
limit: {
|
|
37
|
-
type: Number,
|
|
38
|
-
default: 1
|
|
39
|
-
},
|
|
40
|
-
displayFallback: {
|
|
41
|
-
type: Boolean,
|
|
42
|
-
default: false
|
|
43
|
-
},
|
|
44
|
-
interactive: {
|
|
45
|
-
type: Boolean,
|
|
46
|
-
default: true
|
|
47
|
-
},
|
|
48
|
-
interactiveOptIn: {
|
|
49
|
-
type: Boolean,
|
|
50
|
-
default: false
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
emits: ["loaded"],
|
|
54
|
-
data() {
|
|
55
|
-
return {
|
|
56
|
-
references: null,
|
|
57
|
-
loading: true
|
|
58
|
-
};
|
|
59
|
-
},
|
|
60
|
-
computed: {
|
|
61
|
-
isVisible() {
|
|
62
|
-
return this.loading || this.displayedReferences.length !== 0;
|
|
63
|
-
},
|
|
64
|
-
values() {
|
|
65
|
-
if (this.referenceData) {
|
|
66
|
-
return this.referenceData;
|
|
67
|
-
}
|
|
68
|
-
if (this.displayFallback && !this.loading && !this.references) {
|
|
69
|
-
return [this.fallbackReference];
|
|
70
|
-
}
|
|
71
|
-
return this.references ? Object.values(this.references) : [];
|
|
72
|
-
},
|
|
73
|
-
firstReference() {
|
|
74
|
-
return this.values[0] ?? null;
|
|
75
|
-
},
|
|
76
|
-
displayedReferences() {
|
|
77
|
-
return this.values.slice(0, this.limit);
|
|
78
|
-
},
|
|
79
|
-
fallbackReference() {
|
|
80
|
-
return {
|
|
81
|
-
accessible: true,
|
|
82
|
-
openGraphObject: {
|
|
83
|
-
id: this.text,
|
|
84
|
-
link: this.text,
|
|
85
|
-
name: this.text
|
|
86
|
-
},
|
|
87
|
-
richObjectType: "open-graph"
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
},
|
|
91
|
-
watch: {
|
|
92
|
-
text: "fetch"
|
|
93
|
-
},
|
|
94
|
-
mounted() {
|
|
95
|
-
this.fetch();
|
|
96
|
-
},
|
|
97
|
-
methods: {
|
|
98
|
-
fetch() {
|
|
99
|
-
this.loading = true;
|
|
100
|
-
if (this.referenceData) {
|
|
101
|
-
this.references = null;
|
|
102
|
-
this.loading = false;
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
if (!new RegExp(URL_PATTERN).exec(this.text)) {
|
|
106
|
-
this.references = null;
|
|
107
|
-
this.loading = false;
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
this.resolve().then((response) => {
|
|
111
|
-
this.references = response.data.ocs.data.references;
|
|
112
|
-
this.loading = false;
|
|
113
|
-
this.$emit("loaded");
|
|
114
|
-
}).catch((error) => {
|
|
115
|
-
console.error("Failed to extract references", error);
|
|
116
|
-
this.loading = false;
|
|
117
|
-
this.$emit("loaded");
|
|
118
|
-
});
|
|
119
|
-
},
|
|
120
|
-
resolve() {
|
|
121
|
-
const match = new RegExp(URL_PATTERN).exec(this.text.trim());
|
|
122
|
-
const isPublic = getCurrentUser() === null;
|
|
123
|
-
if (this.limit === 1 && match) {
|
|
124
|
-
return isPublic ? axios.get(generateOcsUrl("references/resolvePublic") + `?reference=${encodeURIComponent(match[0])}&sharingToken=${getSharingToken()}`) : axios.get(generateOcsUrl("references/resolve") + `?reference=${encodeURIComponent(match[0])}`);
|
|
125
|
-
}
|
|
126
|
-
return isPublic ? axios.post(generateOcsUrl("references/extractPublic"), {
|
|
127
|
-
text: this.text,
|
|
128
|
-
resolve: true,
|
|
129
|
-
limit: this.limit,
|
|
130
|
-
sharingToken: getSharingToken()
|
|
131
|
-
}) : axios.post(generateOcsUrl("references/extract"), {
|
|
132
|
-
text: this.text,
|
|
133
|
-
resolve: true,
|
|
134
|
-
limit: this.limit
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
};
|
|
139
|
-
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
140
|
-
const _component_NcReferenceWidget = resolveComponent("NcReferenceWidget");
|
|
141
|
-
return $options.isVisible ? (openBlock(), createElementBlock("div", {
|
|
142
|
-
key: 0,
|
|
143
|
-
class: normalizeClass(["widgets--list", { "icon-loading": $data.loading }])
|
|
144
|
-
}, [
|
|
145
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList($options.displayedReferences, (reference) => {
|
|
146
|
-
return openBlock(), createBlock(_component_NcReferenceWidget, {
|
|
147
|
-
key: reference?.openGraphObject?.id,
|
|
148
|
-
reference,
|
|
149
|
-
interactive: $props.interactive,
|
|
150
|
-
"interactive-opt-in": $props.interactiveOptIn
|
|
151
|
-
}, null, 8, ["reference", "interactive", "interactive-opt-in"]);
|
|
152
|
-
}), 128))
|
|
153
|
-
], 2)) : createCommentVNode("", true);
|
|
154
|
-
}
|
|
155
|
-
const NcReferenceList = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render], ["__scopeId", "data-v-8d575d2d"]]);
|
|
156
|
-
const remarkPlaceholder = function() {
|
|
157
|
-
return function(ast) {
|
|
158
|
-
visit(ast, (node) => node.type === "text", visitor);
|
|
159
|
-
function visitor(node, index, parent) {
|
|
160
|
-
const placeholders = node.value.split(/(\{[a-z\-_.0-9]+\})/ig).map((entry, index2, list) => {
|
|
161
|
-
const matches = entry.match(/^\{([a-z\-_.0-9]+)\}$/i);
|
|
162
|
-
if (!matches) {
|
|
163
|
-
return u("text", entry);
|
|
164
|
-
}
|
|
165
|
-
const [, component] = matches;
|
|
166
|
-
return u("element", {
|
|
167
|
-
tagName: `#${component}`,
|
|
168
|
-
children: []
|
|
169
|
-
});
|
|
170
|
-
});
|
|
171
|
-
parent.children.splice(index, 1, ...placeholders);
|
|
172
|
-
}
|
|
173
|
-
};
|
|
174
|
-
};
|
|
175
|
-
const prepareTextNode = ({ h: h2, context }, text) => {
|
|
176
|
-
if (context.autolink) {
|
|
177
|
-
text = parseUrl(text);
|
|
178
|
-
}
|
|
179
|
-
if (Array.isArray(text)) {
|
|
180
|
-
return text.map((entry) => {
|
|
181
|
-
if (typeof entry === "string") {
|
|
182
|
-
return entry;
|
|
183
|
-
}
|
|
184
|
-
const { component, props } = entry;
|
|
185
|
-
const componentClass = component.name === "NcLink" ? void 0 : "rich-text--component";
|
|
186
|
-
return h2(component, {
|
|
187
|
-
...props,
|
|
188
|
-
class: componentClass
|
|
189
|
-
});
|
|
190
|
-
});
|
|
191
|
-
}
|
|
192
|
-
return text;
|
|
193
|
-
};
|
|
194
|
-
const remarkGfm = ref(null);
|
|
195
|
-
async function importRemarkGfmLibrary() {
|
|
196
|
-
const module = await import("remark-gfm");
|
|
197
|
-
remarkGfm.value = module.default;
|
|
198
|
-
}
|
|
199
|
-
const rehypeHighlight = ref(null);
|
|
200
|
-
async function importRehypeHighlightLibrary() {
|
|
201
|
-
const module = await import("rehype-highlight");
|
|
202
|
-
rehypeHighlight.value = module.default;
|
|
203
|
-
}
|
|
204
|
-
const _sfc_main = {
|
|
205
|
-
name: "NcRichText",
|
|
206
|
-
components: {
|
|
207
|
-
NcReferenceList
|
|
208
|
-
},
|
|
209
|
-
props: {
|
|
210
|
-
text: {
|
|
211
|
-
type: String,
|
|
212
|
-
default: ""
|
|
213
|
-
},
|
|
214
|
-
arguments: {
|
|
215
|
-
type: Object,
|
|
216
|
-
default: () => {
|
|
217
|
-
return {};
|
|
218
|
-
}
|
|
219
|
-
},
|
|
220
|
-
referenceLimit: {
|
|
221
|
-
type: Number,
|
|
222
|
-
default: 0
|
|
223
|
-
},
|
|
224
|
-
referenceInteractive: {
|
|
225
|
-
type: Boolean,
|
|
226
|
-
default: true
|
|
227
|
-
},
|
|
228
|
-
referenceInteractiveOptIn: {
|
|
229
|
-
type: Boolean,
|
|
230
|
-
default: false
|
|
231
|
-
},
|
|
232
|
-
/** Provide data upfront to avoid extra http request */
|
|
233
|
-
references: {
|
|
234
|
-
type: Object,
|
|
235
|
-
default: null
|
|
236
|
-
},
|
|
237
|
-
markdownCssClasses: {
|
|
238
|
-
type: Object,
|
|
239
|
-
default: () => {
|
|
240
|
-
return {
|
|
241
|
-
a: "rich-text--external-link",
|
|
242
|
-
ol: "rich-text--ordered-list",
|
|
243
|
-
ul: "rich-text--un-ordered-list",
|
|
244
|
-
li: "rich-text--list-item",
|
|
245
|
-
strong: "rich-text--strong",
|
|
246
|
-
em: "rich-text--italic",
|
|
247
|
-
h1: "rich-text--heading rich-text--heading-1",
|
|
248
|
-
h2: "rich-text--heading rich-text--heading-2",
|
|
249
|
-
h3: "rich-text--heading rich-text--heading-3",
|
|
250
|
-
h4: "rich-text--heading rich-text--heading-4",
|
|
251
|
-
h5: "rich-text--heading rich-text--heading-5",
|
|
252
|
-
h6: "rich-text--heading rich-text--heading-6",
|
|
253
|
-
hr: "rich-text--hr",
|
|
254
|
-
table: "rich-text--table",
|
|
255
|
-
pre: "rich-text--pre",
|
|
256
|
-
code: "rich-text--code",
|
|
257
|
-
blockquote: "rich-text--blockquote"
|
|
258
|
-
};
|
|
259
|
-
}
|
|
260
|
-
},
|
|
261
|
-
useMarkdown: {
|
|
262
|
-
type: Boolean,
|
|
263
|
-
default: false
|
|
264
|
-
},
|
|
265
|
-
/** Provide GitHub Flavored Markdown syntax */
|
|
266
|
-
useExtendedMarkdown: {
|
|
267
|
-
type: Boolean,
|
|
268
|
-
default: false
|
|
269
|
-
},
|
|
270
|
-
/** Provide event from rendered markdown inputs */
|
|
271
|
-
interactive: {
|
|
272
|
-
type: Boolean,
|
|
273
|
-
default: false
|
|
274
|
-
},
|
|
275
|
-
autolink: {
|
|
276
|
-
type: Boolean,
|
|
277
|
-
default: true
|
|
278
|
-
}
|
|
279
|
-
},
|
|
280
|
-
emits: ["interact:todo"],
|
|
281
|
-
data() {
|
|
282
|
-
return {
|
|
283
|
-
parentId: GenRandomId(5)
|
|
284
|
-
};
|
|
285
|
-
},
|
|
286
|
-
watch: {
|
|
287
|
-
useExtendedMarkdown: {
|
|
288
|
-
handler(value) {
|
|
289
|
-
if (value && !remarkGfm.value) {
|
|
290
|
-
importRemarkGfmLibrary();
|
|
291
|
-
}
|
|
292
|
-
},
|
|
293
|
-
immediate: true
|
|
294
|
-
}
|
|
295
|
-
},
|
|
296
|
-
methods: {
|
|
297
|
-
renderPlaintext() {
|
|
298
|
-
const placeholders = this.text.split(/(\{[a-z\-_.0-9]+\})/ig).map((entry) => {
|
|
299
|
-
const matches = entry.match(/^\{([a-z\-_.0-9]+)\}$/i);
|
|
300
|
-
if (!matches) {
|
|
301
|
-
return prepareTextNode({ h, context: this }, entry);
|
|
302
|
-
}
|
|
303
|
-
const argumentId = matches[1];
|
|
304
|
-
const argument = this.arguments[argumentId];
|
|
305
|
-
if (typeof argument === "object") {
|
|
306
|
-
const { component, props } = argument;
|
|
307
|
-
return h(typeof component === "string" ? resolveComponent(component) : component, {
|
|
308
|
-
...props,
|
|
309
|
-
class: "rich-text--component"
|
|
310
|
-
});
|
|
311
|
-
}
|
|
312
|
-
if (argument) {
|
|
313
|
-
return h("span", { class: "rich-text--fallback" }, argument);
|
|
314
|
-
}
|
|
315
|
-
return entry;
|
|
316
|
-
});
|
|
317
|
-
return h("div", { class: "rich-text--wrapper" }, [
|
|
318
|
-
h("div", {}, placeholders.flat()),
|
|
319
|
-
this.referenceLimit > 0 ? h("div", { class: "rich-text--reference-widget" }, [
|
|
320
|
-
h(NcReferenceList, {
|
|
321
|
-
text: this.text,
|
|
322
|
-
referenceData: this.references,
|
|
323
|
-
interactive: this.referenceInteractive,
|
|
324
|
-
interactiveOptIn: this.referenceInteractiveOptIn
|
|
325
|
-
})
|
|
326
|
-
]) : null
|
|
327
|
-
]);
|
|
328
|
-
},
|
|
329
|
-
renderMarkdown() {
|
|
330
|
-
const renderedMarkdown = unified().use(remarkParse).use(remarkAutolink, {
|
|
331
|
-
autolink: this.autolink,
|
|
332
|
-
useMarkdown: this.useMarkdown,
|
|
333
|
-
useExtendedMarkdown: this.useExtendedMarkdown
|
|
334
|
-
}).use(this.useExtendedMarkdown ? remarkGfm.value : void 0).use(breaks).use(remark2rehype, {
|
|
335
|
-
handlers: {
|
|
336
|
-
component(toHast, node) {
|
|
337
|
-
return toHast(node, node.component, { value: node.value });
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
}).use(this.useExtendedMarkdown ? rehypeHighlight.value : void 0).use(remarkPlaceholder).use(rehypeExternalLinks, {
|
|
341
|
-
target: "_blank",
|
|
342
|
-
rel: ["noopener noreferrer"]
|
|
343
|
-
}).use(rehype2react, {
|
|
344
|
-
Fragment,
|
|
345
|
-
jsx: this.createElement,
|
|
346
|
-
jsxs: this.createElement,
|
|
347
|
-
elementAttributeNameCase: "html",
|
|
348
|
-
prefix: false
|
|
349
|
-
}).processSync(
|
|
350
|
-
this.text.replace(/</gmi, "<").replace(/>/gmi, ">")
|
|
351
|
-
).result;
|
|
352
|
-
return h("div", { class: "rich-text--wrapper rich-text--wrapper-markdown" }, [
|
|
353
|
-
renderedMarkdown,
|
|
354
|
-
this.referenceLimit > 0 ? h("div", { class: "rich-text--reference-widget" }, [
|
|
355
|
-
h(NcReferenceList, {
|
|
356
|
-
text: this.text,
|
|
357
|
-
referenceData: this.references,
|
|
358
|
-
interactive: this.referenceInteractive,
|
|
359
|
-
interactiveOptIn: this.referenceInteractiveOptIn
|
|
360
|
-
})
|
|
361
|
-
]) : null
|
|
362
|
-
]);
|
|
363
|
-
},
|
|
364
|
-
createElement(type, props, key) {
|
|
365
|
-
if (key) {
|
|
366
|
-
props.key = key;
|
|
367
|
-
}
|
|
368
|
-
let children = props.children ?? [];
|
|
369
|
-
delete props.children;
|
|
370
|
-
if (typeof children === "string") {
|
|
371
|
-
children = children.replace(/</gmi, "<");
|
|
372
|
-
}
|
|
373
|
-
if (!String(type).startsWith("#")) {
|
|
374
|
-
let nestedNode = null;
|
|
375
|
-
if (this.useExtendedMarkdown && remarkGfm.value) {
|
|
376
|
-
if (String(type) === "code" && !rehypeHighlight.value && props?.class?.includes("language")) {
|
|
377
|
-
importRehypeHighlightLibrary();
|
|
378
|
-
}
|
|
379
|
-
if (String(type) === "li" && Array.isArray(children) && children[0].type === "input" && children[0].props.type === "checkbox") {
|
|
380
|
-
const [inputNode, , ...labelParts] = children;
|
|
381
|
-
const nestedNodeIndex = labelParts.findIndex((child) => ["ul", "ol", "li", "blockquote", "pre"].includes(child.tag));
|
|
382
|
-
if (nestedNodeIndex !== -1) {
|
|
383
|
-
nestedNode = labelParts[nestedNodeIndex];
|
|
384
|
-
labelParts.splice(nestedNodeIndex);
|
|
385
|
-
}
|
|
386
|
-
const id = this.parentId + "-markdown-input-" + GenRandomId(5);
|
|
387
|
-
const propsToForward = { ...inputNode.props };
|
|
388
|
-
delete propsToForward.checked;
|
|
389
|
-
const inputComponent = h(NcCheckboxRadioSwitch, {
|
|
390
|
-
...propsToForward,
|
|
391
|
-
modelValue: inputNode.props.checked,
|
|
392
|
-
id,
|
|
393
|
-
disabled: !this.interactive,
|
|
394
|
-
"onUpdate:modelValue": () => {
|
|
395
|
-
this.$emit("interact:todo", id);
|
|
396
|
-
}
|
|
397
|
-
}, { default: () => labelParts });
|
|
398
|
-
return h(type, props, [inputComponent, nestedNode]);
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
if (String(type) === "a") {
|
|
402
|
-
const route = getRoute(this.$router, props.href);
|
|
403
|
-
if (route) {
|
|
404
|
-
delete props.href;
|
|
405
|
-
delete props.target;
|
|
406
|
-
return h(RouterLink, {
|
|
407
|
-
...props,
|
|
408
|
-
to: route
|
|
409
|
-
}, { default: () => children });
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
return h(type, props, children);
|
|
413
|
-
}
|
|
414
|
-
const placeholder = this.arguments[type.slice(1)];
|
|
415
|
-
if (!placeholder) {
|
|
416
|
-
return h("span", { ...props, class: "rich-text--fallback" }, [`{${type.slice(1)}}`]);
|
|
417
|
-
}
|
|
418
|
-
if (!placeholder.component) {
|
|
419
|
-
return h("span", { ...props }, [placeholder]);
|
|
420
|
-
}
|
|
421
|
-
if (this.useExtendedMarkdown && !remarkGfm.value) {
|
|
422
|
-
return h("div", { class: "rich-text--wrapper" }, [
|
|
423
|
-
h(NcLoadingIcon)
|
|
424
|
-
]);
|
|
425
|
-
}
|
|
426
|
-
return h(
|
|
427
|
-
typeof placeholder.component === "string" ? resolveComponent(placeholder.component) : placeholder.component,
|
|
428
|
-
{
|
|
429
|
-
...props,
|
|
430
|
-
...placeholder.props,
|
|
431
|
-
class: "rich-text--component"
|
|
432
|
-
},
|
|
433
|
-
{ default: () => children }
|
|
434
|
-
);
|
|
435
|
-
}
|
|
436
|
-
},
|
|
437
|
-
render() {
|
|
438
|
-
return this.useMarkdown || this.useExtendedMarkdown ? this.renderMarkdown() : this.renderPlaintext();
|
|
439
|
-
}
|
|
440
|
-
};
|
|
441
|
-
const NcRichText = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-724f3ec5"]]);
|
|
442
|
-
export {
|
|
443
|
-
NcRichText as N,
|
|
444
|
-
NcReferenceList as a
|
|
445
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NcRichText-DeQGaF-c.mjs","sources":["../../src/components/NcRichText/NcReferenceList.vue","../../src/components/NcRichText/placeholder.js","../../src/components/NcRichText/NcRichText.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 v-if=\"isVisible\" class=\"widgets--list\" :class=\"{'icon-loading': loading }\">\n\t\t<NcReferenceWidget v-for=\"reference in displayedReferences\"\n\t\t\t:key=\"reference?.openGraphObject?.id\"\n\t\t\t:reference=\"reference\"\n\t\t\t:interactive=\"interactive\"\n\t\t\t:interactive-opt-in=\"interactiveOptIn\" />\n\t</div>\n</template>\n<script>\nimport NcReferenceWidget from './NcReferenceWidget.vue'\nimport { URL_PATTERN } from './helpers.js'\n\nimport axios from '@nextcloud/axios'\nimport { getSharingToken } from '@nextcloud/sharing/public'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nexport default {\n\tname: 'NcReferenceList',\n\tcomponents: {\n\t\tNcReferenceWidget,\n\t},\n\tprops: {\n\t\ttext: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\treferenceData: {\n\t\t\ttype: Object,\n\t\t\tdefault: null,\n\t\t},\n\t\tlimit: {\n\t\t\ttype: Number,\n\t\t\tdefault: 1,\n\t\t},\n\t\tdisplayFallback: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tinteractive: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tinteractiveOptIn: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\temits: ['loaded'],\n\tdata() {\n\t\treturn {\n\t\t\treferences: null,\n\t\t\tloading: true,\n\t\t}\n\t},\n\tcomputed: {\n\t\tisVisible() {\n\t\t\treturn this.loading || this.displayedReferences.length !== 0\n\t\t},\n\t\tvalues() {\n\t\t\tif (this.referenceData) {\n\t\t\t\treturn this.referenceData\n\t\t\t}\n\n\t\t\tif (this.displayFallback && !this.loading && !this.references) {\n\t\t\t\treturn [this.fallbackReference]\n\t\t\t}\n\n\t\t\treturn this.references ? Object.values(this.references) : []\n\t\t},\n\t\tfirstReference() {\n\t\t\treturn this.values[0] ?? null\n\t\t},\n\t\tdisplayedReferences() {\n\t\t\treturn this.values.slice(0, this.limit)\n\t\t},\n\t\tfallbackReference() {\n\t\t\treturn {\n\t\t\t\taccessible: true,\n\t\t\t\topenGraphObject: {\n\t\t\t\t\tid: this.text,\n\t\t\t\t\tlink: this.text,\n\t\t\t\t\tname: this.text,\n\t\t\t\t},\n\t\t\t\trichObjectType: 'open-graph',\n\t\t\t}\n\t\t},\n\t},\n\twatch: {\n\t\ttext: 'fetch',\n\t},\n\tmounted() {\n\t\tthis.fetch()\n\t},\n\tmethods: {\n\t\tfetch() {\n\t\t\tthis.loading = true\n\t\t\tif (this.referenceData) {\n\t\t\t\tthis.references = null\n\t\t\t\tthis.loading = false\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (!(new RegExp(URL_PATTERN).exec(this.text))) {\n\t\t\t\tthis.references = null\n\t\t\t\tthis.loading = false\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.resolve().then((response) => {\n\t\t\t\tthis.references = response.data.ocs.data.references\n\t\t\t\tthis.loading = false\n\t\t\t\tthis.$emit('loaded')\n\t\t\t}).catch((error) => {\n\t\t\t\tconsole.error('Failed to extract references', error)\n\t\t\t\tthis.loading = false\n\t\t\t\tthis.$emit('loaded')\n\t\t\t})\n\t\t},\n\t\tresolve() {\n\t\t\tconst match = (new RegExp(URL_PATTERN).exec(this.text.trim()))\n\t\t\tconst isPublic = getCurrentUser() === null\n\t\t\tif (this.limit === 1 && match) {\n\t\t\t\treturn isPublic\n\t\t\t\t\t? axios.get(generateOcsUrl('references/resolvePublic') + `?reference=${encodeURIComponent(match[0])}&sharingToken=${getSharingToken()}`)\n\t\t\t\t\t: axios.get(generateOcsUrl('references/resolve') + `?reference=${encodeURIComponent(match[0])}`)\n\t\t\t}\n\n\t\t\treturn isPublic\n\t\t\t\t? axios.post(generateOcsUrl('references/extractPublic'), {\n\t\t\t\t\ttext: this.text,\n\t\t\t\t\tresolve: true,\n\t\t\t\t\tlimit: this.limit,\n\t\t\t\t\tsharingToken: getSharingToken(),\n\t\t\t\t})\n\t\t\t\t: axios.post(generateOcsUrl('references/extract'), {\n\t\t\t\t\ttext: this.text,\n\t\t\t\t\tresolve: true,\n\t\t\t\t\tlimit: this.limit,\n\t\t\t\t})\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n.widgets--list {\n\twidth: 100%;\n\tmin-height: var(--default-clickable-area);\n}\n</style>\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { u } from 'unist-builder'\nimport { visit } from 'unist-util-visit'\nimport { parseUrl } from './autolink.ts'\n\nexport const remarkPlaceholder = function() {\n\treturn function(ast) {\n\t\tvisit(ast, (node) => node.type === 'text', visitor)\n\n\t\t/**\n\t\t *\n\t\t * @param {object} node The node\n\t\t * @param {number} index The index of the node\n\t\t * @param {object} parent The parent node\n\t\t */\n\t\tfunction visitor(node, index, parent) {\n\t\t\tconst placeholders = node.value.split(/(\\{[a-z\\-_.0-9]+\\})/ig)\n\t\t\t\t.map((entry, index, list) => {\n\t\t\t\t\tconst matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i)\n\t\t\t\t\tif (!matches) {\n\t\t\t\t\t\treturn u('text', entry)\n\t\t\t\t\t}\n\t\t\t\t\tconst [, component] = matches\n\t\t\t\t\treturn u('element', {\n\t\t\t\t\t\ttagName: `#${component}`,\n\t\t\t\t\t\tchildren: [],\n\t\t\t\t\t})\n\t\t\t\t})\n\n\t\t\tparent.children.splice(index, 1, ...placeholders)\n\t\t}\n\t}\n}\n\nexport const prepareTextNode = ({ h, context }, text) => {\n\tif (context.autolink) {\n\t\ttext = parseUrl(text)\n\t}\n\tif (Array.isArray(text)) {\n\t\treturn text.map((entry) => {\n\t\t\tif (typeof entry === 'string') {\n\t\t\t\treturn entry\n\t\t\t}\n\t\t\tconst { component, props } = entry\n\t\t\t// do not override class of NcLink\n\t\t\tconst componentClass = component.name === 'NcLink' ? undefined : 'rich-text--component'\n\t\t\treturn h(component, {\n\t\t\t\t...props,\n\t\t\t\tclass: componentClass,\n\t\t\t})\n\t\t})\n\t}\n\treturn text\n}\n","<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### General description\n\nThis component displays rich text with optional autolink or [Markdown support](https://www.markdownguide.org/basic-syntax/).\n\n```vue\n<template>\n\t<div>\n\t\t<textarea v-model=\"text\" />\n\t\t<NcCheckboxRadioSwitch v-model=\"autolink\" type=\"checkbox\">Autolink</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch v-model=\"useMarkdown\" type=\"checkbox\">Use Markdown</NcCheckboxRadioSwitch>\n\n\t\t<NcRichText\n\t\t\t:class=\"{'plain-text': !useMarkdown }\"\n\t\t\t:text=\"text\" :autolink=\"autolink\" :arguments=\"args\"\n\t\t\t:use-markdown=\"useMarkdown\" />\n\t</div>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\ttext: `## Hello everyone 🎉\nThe file {file} was added by {username}. Visit https://nextcloud.com to check it!\n\nSome examples for markdown syntax:\n1. **bold text**\n2. _italic text_\n3. example of \\`inline code\\`\n\n> blockquote example\n`,\n\t\t\tautolink: true,\n\t\t\tuseMarkdown: true,\n\t\t\targs: {\n\t\t\t\tfile: 'MyDocument.odt',\n\t\t\t\tusername: {\n\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tdisplayName: 'Jane Doe'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t}\n\t},\n}\n</script>\n<style lang=\"scss\">\ntextarea {\n\twidth: 100%;\n\theight: 200px;\n}\n\n.plain-text {\n\twhite-space: pre-line;\n}\n</style>\n```\n\n### Flavored Markdown\n\nThis component can support [Github Flavored Markdown](https://github.github.com/gfm/).\nIt adds such elements, as tables, task lists, strikethrough, and supports code syntax highlighting and autolinks by default\n\nIt is also possible to make a rendered content interactive and listen for events\n\n```vue\n<template>\n\t<div>\n\t\t<textarea v-model=\"text\" />\n\n\t\t<NcRichText :text=\"text\"\n\t\t\t:use-extended-markdown=\"true\"\n\t\t\t:interactive=\"true\"\n\t\t\t@interact:todo=\"handleInteraction\"/>\n\t</div>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\ttext: `## Try flavored markdown right now!\n\n~~strikethrough~~\n\n- [ ] task to be done\n- [x] task completed\n\nTable header | Column A | Column B\n-- | -- | --\nTable row | value A | value B\n\n---\n\n\\`\\`\\`js\nconst GenRandomId = (length) => {\n\\treturn Math.random()\n\\t\\t.toString(36)\n\\t\\t.replace(/[^a-z]+/g, '')\n\\t\\t.slice(0, length || 5)\n}\n\\`\\`\\`\n`,\n\t\t\t}\n\t\t},\n\t\tmethods: {\n\t\t\thandleInteraction(id) {\n\t\t\t\tconst parentId = id.split('-markdown-input-')[0]\n\t\t\t\tconst index = Array.from(document.querySelectorAll(`span[id^=\"${parentId}-markdown-input-\"]`)).findIndex((el) => el.id.includes(id))\n\t\t\t\tif (index === -1 ) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tlet checkBoxIndex = 0\n\t\t\t\tlet lines = this.text.split('\\n')\n\t\t\t\tfor (let i = 0; i < lines.length; i++) {\n\t\t\t\t\tif (lines[i].includes('[ ]') || lines[i].includes('[x]')) {\n\t\t\t\t\t\tif (checkBoxIndex === index) {\n\t\t\t\t\t\t\tconst isChecked = lines[i].includes('[x]')\n\t\t\t\t\t\t\tif (isChecked) {\n\t\t\t\t\t\t\t\tlines[i] = lines[i].replace('[x]', '[ ]')\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tlines[i] = lines[i].replace('[ ]', '[x]')\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcheckBoxIndex++\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.text = lines.join('\\n')\n\t\t\t},\n\t\t},\n\t}\n</script>\n<style lang=\"scss\">\ntextarea {\n\twidth: 100%;\n\theight: 200px;\n}\n</style>\n```\n\n### Usage with NcRichContenteditable\n\nSee [NcRichContenteditable](#/Components/NcRichContenteditable) documentation for more information\n\n```vue\n<template>\n\t<div>\n\t\t<NcRichContenteditable v-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\tplaceholder=\"Try mentioning user @Test01 or inserting emoji :smile\"\n\t\t\t@submit=\"onSubmit\" />\n\n\t\t<NcCheckboxRadioSwitch v-model=\"autolink\" type=\"checkbox\">Autolink</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch v-model=\"useMarkdown\" type=\"checkbox\">Use Markdown</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch v-model=\"useExtendedMarkdown\" type=\"checkbox\">Use extended Markdown</NcCheckboxRadioSwitch>\n\n\t\t<NcRichText :text=\"text\"\n\t\t\t:autolink=\"autolink\"\n\t\t\t:arguments=\"userMentions\"\n\t\t\t:use-markdown=\"useMarkdown\"\n\t\t\t:use-extended-markdown=\"useExtendedMarkdown\" />\n\t</div>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tmessage: '',\n\t\t\t\tautolink: true,\n\t\t\t\tuseMarkdown: true,\n\t\t\t\tuseExtendedMarkdown: true,\n\t\t\t\tuserData: {\n\t\t\t\t\tTest01: {\n\t\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\t\tid: 'Test01',\n\t\t\t\t\t\tlabel: 'Test01',\n\t\t\t\t\t\tsource: 'users',\n\t\t\t\t\t\tprimary: true,\n\t\t\t\t\t},\n\t\t\t\t\tTest02: {\n\t\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\t\tid: 'Test02',\n\t\t\t\t\t\tlabel: 'Test02',\n\t\t\t\t\t\tsource: 'users',\n\t\t\t\t\t\tstatus: {\n\t\t\t\t\t\t\tclearAt: null,\n\t\t\t\t\t\t\ticon: '🎡',\n\t\t\t\t\t\t\tmessage: 'Visiting London',\n\t\t\t\t\t\t\tstatus: 'away',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsubline: 'Visiting London',\n\t\t\t\t\t},\n\t\t\t\t\t'Test@User': {\n\t\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\t\tid: 'Test@User',\n\t\t\t\t\t\tlabel: 'Test 03',\n\t\t\t\t\t\tsource: 'users',\n\t\t\t\t\t\tstatus: {\n\t\t\t\t\t\t\tclearAt: null,\n\t\t\t\t\t\t\ticon: '🎡',\n\t\t\t\t\t\t\tmessage: 'Having space in my name',\n\t\t\t\t\t\t\tstatus: 'online',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsubline: 'Visiting London',\n\t\t\t\t\t},\n\t\t\t\t\t'Test Offline': {\n\t\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\t\tid: 'Test Offline',\n\t\t\t\t\t\tlabel: 'Test Offline',\n\t\t\t\t\t\tsource: 'users',\n\t\t\t\t\t\tstatus: {\n\t\t\t\t\t\t\tclearAt: null,\n\t\t\t\t\t\t\ticon: null,\n\t\t\t\t\t\t\tmessage: null,\n\t\t\t\t\t\t\tstatus: 'offline',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsubline: null,\n\t\t\t\t\t},\n\t\t\t\t\t'Test DND': {\n\t\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\t\tid: 'Test DND',\n\t\t\t\t\t\tlabel: 'Test DND',\n\t\t\t\t\t\tsource: 'users',\n\t\t\t\t\t\tstatus: {\n\t\t\t\t\t\t\tclearAt: null,\n\t\t\t\t\t\t\ticon: null,\n\t\t\t\t\t\t\tmessage: 'Out sick',\n\t\t\t\t\t\t\tstatus: 'dnd',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsubline: 'Out sick',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tuserMentions: {\n\t\t\t\t\t'user-1': {\n\t\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tdisplayName: 'Test01',\n\t\t\t\t\t\t\tuser: 'Test01',\n\t\t\t\t\t\t\tprimary: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t'user-2': {\n\t\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tdisplayName: 'Test02',\n\t\t\t\t\t\t\tuser: 'Test02',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t'user-3': {\n\t\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tdisplayName: 'Test 03',\n\t\t\t\t\t\t\tuser: 'Test@User',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t'user-4': {\n\t\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tdisplayName: 'Test Offline',\n\t\t\t\t\t\t\tuser: 'Test Offline',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t'user-5': {\n\t\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tdisplayName: 'Test DND',\n\t\t\t\t\t\t\tuser: 'Test DND',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\t\tcomputed: {\n\t\t\ttext() {\n\t\t\t\treturn this.message\n\t\t\t\t\t\t.replace('@Test01', '{user-1}')\n\t\t\t\t\t\t.replace('@Test02', '{user-2}')\n\t\t\t\t\t\t.replace('@Test@User', '{user-3}')\n\t\t\t\t\t\t.replace('@\"Test Offline\"', '{user-4}')\n\t\t\t\t\t\t.replace('@\"Test DND\"', '{user-5}')\n\t\t\t},\n\t\t},\n\t\tmethods: {\n\t\t\tautoComplete(search, callback) {\n\t\t\t\tcallback(Object.values(this.userData))\n\t\t\t},\n\t\t\tonSubmit() {\n\t\t\t\talert(this.message)\n\t\t\t}\n\t\t}\n\t}\n</script>\n```\n</docs>\n\n<script>\nimport NcReferenceList from './NcReferenceList.vue'\nimport NcCheckboxRadioSwitch from '../NcCheckboxRadioSwitch/NcCheckboxRadioSwitch.vue'\nimport NcLoadingIcon from '../NcLoadingIcon/NcLoadingIcon.vue'\nimport { getRoute, remarkAutolink } from './autolink.ts'\nimport { remarkPlaceholder, prepareTextNode } from './placeholder.js'\nimport GenRandomId from '../../utils/GenRandomId.js'\n\nimport { unified } from 'unified'\nimport remarkParse from 'remark-parse'\nimport breaks from 'remark-breaks'\nimport remark2rehype from 'remark-rehype'\nimport rehype2react from 'rehype-react'\nimport rehypeExternalLinks from 'rehype-external-links'\nimport { Fragment, h, ref, resolveComponent } from 'vue'\nimport { RouterLink } from 'vue-router'\n\n/**\n * Heavy libraries should be loaded on demand to reduce component size\n */\nconst remarkGfm = ref(null)\n/**\n * Load 'remark-gfm' library when prop `useExtendedMarkdown` is truthy\n */\nasync function importRemarkGfmLibrary() {\n\tconst module = await import('remark-gfm')\n\tremarkGfm.value = module.default\n}\n\nconst rehypeHighlight = ref(null)\n/**\n * Load 'rehype-highlight' library when code block is rendered with `useExtendedMarkdown`\n */\nasync function importRehypeHighlightLibrary() {\n\tconst module = await import('rehype-highlight')\n\trehypeHighlight.value = module.default\n}\n\nexport default {\n\tname: 'NcRichText',\n\tcomponents: {\n\t\tNcReferenceList,\n\t},\n\tprops: {\n\t\ttext: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\targuments: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {\n\t\t\t\treturn {}\n\t\t\t},\n\t\t},\n\t\treferenceLimit: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0,\n\t\t},\n\t\treferenceInteractive: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\treferenceInteractiveOptIn: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/** Provide data upfront to avoid extra http request */\n\t\treferences: {\n\t\t\ttype: Object,\n\t\t\tdefault: null,\n\t\t},\n\t\tmarkdownCssClasses: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {\n\t\t\t\treturn {\n\t\t\t\t\ta: 'rich-text--external-link',\n\t\t\t\t\tol: 'rich-text--ordered-list',\n\t\t\t\t\tul: 'rich-text--un-ordered-list',\n\t\t\t\t\tli: 'rich-text--list-item',\n\t\t\t\t\tstrong: 'rich-text--strong',\n\t\t\t\t\tem: 'rich-text--italic',\n\t\t\t\t\th1: 'rich-text--heading rich-text--heading-1',\n\t\t\t\t\th2: 'rich-text--heading rich-text--heading-2',\n\t\t\t\t\th3: 'rich-text--heading rich-text--heading-3',\n\t\t\t\t\th4: 'rich-text--heading rich-text--heading-4',\n\t\t\t\t\th5: 'rich-text--heading rich-text--heading-5',\n\t\t\t\t\th6: 'rich-text--heading rich-text--heading-6',\n\t\t\t\t\thr: 'rich-text--hr',\n\t\t\t\t\ttable: 'rich-text--table',\n\t\t\t\t\tpre: 'rich-text--pre',\n\t\t\t\t\tcode: 'rich-text--code',\n\t\t\t\t\tblockquote: 'rich-text--blockquote',\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tuseMarkdown: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/** Provide GitHub Flavored Markdown syntax */\n\t\tuseExtendedMarkdown: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/** Provide event from rendered markdown inputs */\n\t\tinteractive: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tautolink: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\temits: ['interact:todo'],\n\n\tdata() {\n\t\treturn {\n\t\t\tparentId: GenRandomId(5),\n\t\t}\n\t},\n\n\twatch: {\n\t\tuseExtendedMarkdown: {\n\t\t\thandler(value) {\n\t\t\t\tif (value && !remarkGfm.value) {\n\t\t\t\t\timportRemarkGfmLibrary()\n\t\t\t\t}\n\t\t\t},\n\t\t\timmediate: true,\n\t\t},\n\t},\n\n\tmethods: {\n\t\trenderPlaintext() {\n\t\t\tconst placeholders = this.text.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map((entry) => {\n\t\t\t\tconst matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i)\n\t\t\t\t// just return plain string nodes as text\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn prepareTextNode({ h, context: this }, entry)\n\t\t\t\t}\n\t\t\t\t// return component instance if argument is an object\n\t\t\t\tconst argumentId = matches[1]\n\t\t\t\tconst argument = this.arguments[argumentId]\n\t\t\t\tif (typeof argument === 'object') {\n\t\t\t\t\tconst { component, props } = argument\n\t\t\t\t\treturn h((typeof component === 'string') ? resolveComponent(component) : component, {\n\t\t\t\t\t\t...props,\n\t\t\t\t\t\tclass: 'rich-text--component',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (argument) {\n\t\t\t\t\treturn h('span', { class: 'rich-text--fallback' }, argument)\n\t\t\t\t}\n\t\t\t\treturn entry\n\t\t\t})\n\t\t\treturn h('div', { class: 'rich-text--wrapper' }, [\n\t\t\t\th('div', {}, placeholders.flat()),\n\t\t\t\tthis.referenceLimit > 0\n\t\t\t\t\t? h('div', { class: 'rich-text--reference-widget' }, [\n\t\t\t\t\t\th(NcReferenceList, {\n\t\t\t\t\t\t\ttext: this.text,\n\t\t\t\t\t\t\treferenceData: this.references,\n\t\t\t\t\t\t\tinteractive: this.referenceInteractive,\n\t\t\t\t\t\t\tinteractiveOptIn: this.referenceInteractiveOptIn,\n\t\t\t\t\t\t}),\n\t\t\t\t\t])\n\t\t\t\t\t: null,\n\t\t\t])\n\t\t},\n\t\trenderMarkdown() {\n\t\t\tconst renderedMarkdown = unified()\n\t\t\t\t.use(remarkParse)\n\t\t\t\t.use(remarkAutolink, {\n\t\t\t\t\tautolink: this.autolink,\n\t\t\t\t\tuseMarkdown: this.useMarkdown,\n\t\t\t\t\tuseExtendedMarkdown: this.useExtendedMarkdown,\n\t\t\t\t})\n\t\t\t\t.use(this.useExtendedMarkdown ? remarkGfm.value : undefined)\n\t\t\t\t.use(breaks)\n\t\t\t\t.use(remark2rehype, {\n\t\t\t\t\thandlers: {\n\t\t\t\t\t\tcomponent(toHast, node) {\n\t\t\t\t\t\t\treturn toHast(node, node.component, { value: node.value })\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.use(this.useExtendedMarkdown ? rehypeHighlight.value : undefined)\n\t\t\t\t// .use(rehypeAddClasses, this.markdownCssClasses)\n\t\t\t\t.use(remarkPlaceholder)\n\t\t\t\t.use(rehypeExternalLinks, {\n\t\t\t\t\ttarget: '_blank',\n\t\t\t\t\trel: ['noopener noreferrer'],\n\t\t\t\t})\n\t\t\t\t.use(rehype2react, {\n\t\t\t\t\tFragment,\n\t\t\t\t\tjsx: this.createElement,\n\t\t\t\t\tjsxs: this.createElement,\n\t\t\t\t\telementAttributeNameCase: 'html',\n\t\t\t\t\tprefix: false,\n\t\t\t\t})\n\t\t\t\t.processSync(this.text\n\t\t\t\t\t// escape special symbol \"<\" to not treat text as HTML\n\t\t\t\t\t.replace(/</gmi, '<')\n\t\t\t\t\t// unescape special symbol \">\" to parse blockquotes\n\t\t\t\t\t.replace(/>/gmi, '>'),\n\t\t\t\t)\n\t\t\t\t.result\n\n\t\t\treturn h('div', { class: 'rich-text--wrapper rich-text--wrapper-markdown' }, [\n\t\t\t\trenderedMarkdown,\n\t\t\t\tthis.referenceLimit > 0\n\t\t\t\t\t? h('div', { class: 'rich-text--reference-widget' }, [\n\t\t\t\t\t\th(NcReferenceList, {\n\t\t\t\t\t\t\ttext: this.text,\n\t\t\t\t\t\t\treferenceData: this.references,\n\t\t\t\t\t\t\tinteractive: this.referenceInteractive,\n\t\t\t\t\t\t\tinteractiveOptIn: this.referenceInteractiveOptIn,\n\t\t\t\t\t\t}),\n\t\t\t\t\t])\n\t\t\t\t\t: null,\n\t\t\t])\n\t\t},\n\t\tcreateElement(type, props, key) {\n\t\t\t// Modified code from vue/jsx-runtime\n\t\t\tif (key) {\n\t\t\t\tprops.key = key\n\t\t\t}\n\t\t\t// Children should be always an array\n\t\t\tlet children = props.children ?? []\n\t\t\tdelete props.children\n\n\t\t\t// unescape special symbol \"<\" for simple text nodes\n\t\t\tif (typeof children === 'string') {\n\t\t\t\tchildren = children.replace(/</gmi, '<')\n\t\t\t}\n\n\t\t\tif (!String(type).startsWith('#')) {\n\t\t\t\tlet nestedNode = null\n\t\t\t\tif (this.useExtendedMarkdown && remarkGfm.value) {\n\t\t\t\t\tif (String(type) === 'code' && !rehypeHighlight.value\n\t\t\t\t\t\t&& props?.class?.includes('language')) {\n\t\t\t\t\t\timportRehypeHighlightLibrary()\n\t\t\t\t\t}\n\t\t\t\t\tif (String(type) === 'li' && Array.isArray(children)\n\t\t\t\t\t\t&& children[0].type === 'input'\n\t\t\t\t\t\t&& children[0].props.type === 'checkbox') {\n\t\t\t\t\t\tconst [inputNode, , ...labelParts] = children\n\n\t\t\t\t\t\tconst nestedNodeIndex = labelParts.findIndex((child) => ['ul', 'ol', 'li', 'blockquote', 'pre'].includes(child.tag))\n\t\t\t\t\t\tif (nestedNodeIndex !== -1) {\n\t\t\t\t\t\t\tnestedNode = labelParts[nestedNodeIndex]\n\t\t\t\t\t\t\tlabelParts.splice(nestedNodeIndex)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst id = this.parentId + '-markdown-input-' + GenRandomId(5)\n\t\t\t\t\t\tconst propsToForward = { ...inputNode.props }\n\t\t\t\t\t\t// The checked prop is name modelValue for NcCheckboxRadioSwitch\n\t\t\t\t\t\tdelete propsToForward.checked\n\t\t\t\t\t\tconst inputComponent = h(NcCheckboxRadioSwitch, {\n\t\t\t\t\t\t\t...propsToForward,\n\t\t\t\t\t\t\tmodelValue: inputNode.props.checked,\n\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\tdisabled: !this.interactive,\n\t\t\t\t\t\t\t'onUpdate:modelValue': () => {\n\t\t\t\t\t\t\t\tthis.$emit('interact:todo', id)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}, { default: () => labelParts })\n\n\t\t\t\t\t\treturn h(type, props, [inputComponent, nestedNode])\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (String(type) === 'a') {\n\t\t\t\t\tconst route = getRoute(this.$router, props.href)\n\t\t\t\t\tif (route) {\n\t\t\t\t\t\tdelete props.href\n\t\t\t\t\t\tdelete props.target\n\n\t\t\t\t\t\treturn h(RouterLink, {\n\t\t\t\t\t\t\t...props,\n\t\t\t\t\t\t\tto: route,\n\t\t\t\t\t\t}, { default: () => children })\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn h(type, props, children)\n\t\t\t}\n\n\t\t\tconst placeholder = this.arguments[type.slice(1)]\n\t\t\tif (!placeholder) {\n\t\t\t\treturn h('span', { ...props, class: 'rich-text--fallback' }, [`{${type.slice(1)}}`])\n\t\t\t}\n\n\t\t\tif (!placeholder.component) {\n\t\t\t\treturn h('span', { ...props }, [placeholder])\n\t\t\t}\n\n\t\t\tif (this.useExtendedMarkdown && !remarkGfm.value) {\n\t\t\t\treturn h('div', { class: 'rich-text--wrapper' }, [\n\t\t\t\t\th(NcLoadingIcon),\n\t\t\t\t])\n\t\t\t}\n\n\t\t\treturn h(\n\t\t\t\t(typeof placeholder.component === 'string') ? resolveComponent(placeholder.component) : placeholder.component,\n\t\t\t\t{\n\t\t\t\t\t...props,\n\t\t\t\t\t...placeholder.props,\n\t\t\t\t\tclass: 'rich-text--component',\n\t\t\t\t},\n\t\t\t\t{ default: () => children },\n\t\t\t)\n\t\t},\n\t},\n\trender() {\n\t\treturn this.useMarkdown || this.useExtendedMarkdown\n\t\t\t? this.renderMarkdown()\n\t\t\t: this.renderPlaintext()\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n/* stylelint-disable-next-line scss/at-import-partial-extension */\n@import './richtext.scss';\n\na:not(.rich-text--component) {\n\ttext-decoration: underline;\n}\n\n</style>\n"],"names":["_sfc_main","_createElementBlock","_normalizeClass","_openBlock","_Fragment","_renderList","_createBlock","_createCommentVNode","index","h"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NcSelect-J_CQazCj.mjs","sources":["../../src/components/NcSelect/NcSelect.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Description\n\nGeneral purpose multiselect component.\n\n### Basic examples\n\n```vue\n<template>\n\t<div class=\"grid\">\n\t\t<div v-for=\"{ props } in selectArray\"\n\t\t\tclass=\"container\">\n\t\t\t<NcSelect v-bind=\"props\"\n\t\t\t\tv-model=\"props.value\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nconst selectArray = [\n\t{\n\t\tprops: {\n\t\t\tinputLabel: 'Simple',\n\t\t\toptions: [\n\t\t\t\t'foo',\n\t\t\t\t'bar',\n\t\t\t\t'baz',\n\t\t\t\t'qux',\n\t\t\t\t'quux',\n\t\t\t],\n\t\t},\n\t},\n\n\t{\n\t\tprops: {\n\t\t\tinputLabel: 'Simple (top placement)',\n\t\t\tplacement: 'top',\n\t\t\toptions: [\n\t\t\t\t'foo',\n\t\t\t\t'bar',\n\t\t\t\t'baz',\n\t\t\t\t'qux',\n\t\t\t\t'quux',\n\t\t\t],\n\t\t},\n\t},\n\n\t{\n\t\tprops: {\n\t\t\tinputLabel: 'Multiple (with placeholder)',\n\t\t\tmultiple: true,\n\t\t\tplaceholder: 'Select multiple options',\n\t\t\toptions: [\n\t\t\t\t'foo',\n\t\t\t\t'bar',\n\t\t\t\t'baz',\n\t\t\t\t'qux',\n\t\t\t\t'quux',\n\t\t\t],\n\t\t},\n\t},\n\n\t{\n\t\tprops: {\n\t\t\tinputLabel: 'Multiple (objects, pre-selected, stay open on select)',\n\t\t\tmultiple: true,\n\t\t\tcloseOnSelect: false,\n\t\t\toptions: [\n\t\t\t\t{\n\t\t\t\t\tid: 'foo',\n\t\t\t\t\tlabel: 'Foo',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'bar',\n\t\t\t\t\tlabel: 'Bar',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'baz',\n\t\t\t\t\tlabel: 'Baz',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'qux',\n\t\t\t\t\tlabel: 'Qux',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'quux',\n\t\t\t\t\tlabel: 'Quux',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'corge',\n\t\t\t\t\tlabel: 'Corge',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'grault',\n\t\t\t\t\tlabel: 'Grault',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'garply',\n\t\t\t\t\tlabel: 'Garply',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'waldo',\n\t\t\t\t\tlabel: 'Waldo',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'fred',\n\t\t\t\t\tlabel: 'Fred',\n\t\t\t\t},\n\t\t\t],\n\t\t\tvalue: [\n\t\t\t\t{\n\t\t\t\t\tid: 'foo',\n\t\t\t\t\tlabel: 'Foo',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'bar',\n\t\t\t\t\tlabel: 'Bar',\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n]\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tselectArray,\n\t\t}\n\t},\n}\n</script>\n\n<style>\n.grid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(2, 1fr);\n\tgap: 10px;\n}\n\n.container {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px 0;\n}\n</style>\n```\n\n### Native form validation example\n\n```vue\n<template>\n\t<div class=\"container\">\n\t\t<form class=\"container__form\" @submit.prevent>\n\t\t\t<NcSelect class=\"container__select\"\n\t\t\t\tinput-label=\"Require a selection\"\n\t\t\t\t:options=\"options\"\n\t\t\t\tv-model=\"singleValue\"\n\t\t\t\trequired />\n\t\t\t<NcButton native-type=\"submit\">Submit</NcButton>\n\t\t</form>\n\n\t\t<form class=\"container__form\" @submit.prevent>\n\t\t\t<NcSelect class=\"container__select\"\n\t\t\t\tinput-label=\"Require at least one selection\"\n\t\t\t\t:options=\"options\"\n\t\t\t\tv-model=\"multiValue\"\n\t\t\t\tmultiple\n\t\t\t\trequired />\n\t\t\t<NcButton native-type=\"submit\">Submit</NcButton>\n\t\t</form>\n\t</div>\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\toptions: ['foo', 'bar', 'baz', 'qux', 'quux'],\n\t\t\tsingleValue: null,\n\t\t\tmultiValue: [],\n\t\t}\n\t},\n}\n</script>\n\n<style>\n.container {\n\tdisplay: flex;\n\tgap: 0 12px;\n}\n\n.container__form {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: flex-end;\n\twidth: 100%;\n\tgap: 8px 0;\n}\n\n.container__select {\n\twidth: 100%;\n}\n</style>\n```\n\n### No wrap example\n\nThe `noWrap` prop is set to `true` and the `max-width` of the multiselect\nparent container is limited to `350px`\n\n```vue\n<template>\n\t<div class=\"grid\">\n\t\t<div class=\"container\">\n\t\t\t<NcSelect :no-wrap=\"false\"\n\t\t\t\tv-bind=\"data1.props\"\n\t\t\t\tv-model=\"data1.props.value\" />\n\t\t</div>\n\t\t<div class=\"container\">\n\t\t\t<NcSelect :no-wrap=\"true\"\n\t\t\t\tv-bind=\"data2.props\"\n\t\t\t\tv-model=\"data2.props.value\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nconst data1 = {\n\tprops: {\n\t\tinputLabel: 'Wrapped (Default)',\n\t\tmultiple: true,\n\t\tcloseOnSelect: false,\n\t\toptions: [\n\t\t\t'foo',\n\t\t\t'bar',\n\t\t\t'baz',\n\t\t\t'qux',\n\t\t\t'quux',\n\t\t\t'corge',\n\t\t\t'grault',\n\t\t\t'garply',\n\t\t\t'waldo',\n\t\t\t'fred',\n\t\t],\n\t\tvalue: [\n\t\t\t'foo',\n\t\t\t'bar',\n\t\t\t'baz',\n\t\t\t'qux',\n\t\t\t'quux',\n\t\t\t'corge',\n\t\t\t'grault',\n\t\t\t'garply',\n\t\t\t'waldo',\n\t\t\t'fred',\n\t\t],\n\t},\n}\n\nconst data2 = {\n\tprops: {\n\t\tinputLabel: 'Not wrapped',\n\t\tmultiple: true,\n\t\tcloseOnSelect: false,\n\t\toptions: [\n\t\t\t'foo',\n\t\t\t'bar',\n\t\t\t'baz',\n\t\t\t'qux',\n\t\t\t'quux',\n\t\t\t'corge',\n\t\t\t'grault',\n\t\t\t'garply',\n\t\t\t'waldo',\n\t\t\t'fred',\n\t\t],\n\t\tvalue: [\n\t\t\t'foo',\n\t\t\t'bar',\n\t\t\t'baz',\n\t\t\t'qux',\n\t\t\t'quux',\n\t\t\t'corge',\n\t\t\t'grault',\n\t\t\t'garply',\n\t\t\t'waldo',\n\t\t\t'fred',\n\t\t],\n\t},\n}\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tdata1,\n\t\t\tdata2,\n\t\t}\n\t},\n}\n</script>\n\n<style>\n.grid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(1, 1fr);\n\tgap: 10px;\n}\n\n.container {\n\tmax-width: 350px;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px 0;\n}\n</style>\n```\n\n### User select examples\n\n```vue\n<template>\n\t<div class=\"grid\">\n\t\t<div v-for=\"{ props } in selectArray\"\n\t\t\tclass=\"container\">\n\t\t\t<NcSelect v-bind=\"props\"\n\t\t\t\tv-model=\"props.value\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport AccountGroup from '@mdi/svg/svg/account-group.svg?raw'\nimport Email from '@mdi/svg/svg/email.svg?raw'\n\nconst selectArray = [\n\t{\n\t\tprops: {\n\t\t\tinputLabel: 'User select',\n\t\t\tuserSelect: true,\n\t\t\toptions: [\n\t\t\t\t{\n\t\t\t\t\tid: '0-john',\n\t\t\t\t\tdisplayName: 'John',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'john@example.org',\n\t\t\t\t\ticon: '',\n\t\t\t\t\t// Example of how to show the user status within the option\n\t\t\t\t\tuser: '0-john',\n\t\t\t\t\tpreloadedUserStatus: {\n\t\t\t\t\t\ticon: '',\n\t\t\t\t\t\tstatus: 'online',\n\t\t\t\t\t\tmessage: 'I am online',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-emma',\n\t\t\t\t\tdisplayName: 'Emma',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'emma@example.org',\n\t\t\t\t\ticon: '',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-olivia',\n\t\t\t\t\tdisplayName: 'Olivia',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'olivia@example.org',\n\t\t\t\t\ticon: '',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-noah',\n\t\t\t\t\tdisplayName: 'Noah',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'noah@example.org',\n\t\t\t\t\ticon: '',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-oliver',\n\t\t\t\t\tdisplayName: 'Oliver',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'oliver@example.org',\n\t\t\t\t\ticon: '',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '1-admin',\n\t\t\t\t\tdisplayName: 'Admin',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\tsubname: null,\n\t\t\t\t\ticonSvg: AccountGroup,\n\t\t\t\t\ticonName: 'Group icon',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '2-org@example.org',\n\t\t\t\t\tdisplayName: 'Organization',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\tsubname: 'org@example.org',\n\t\t\t\t\ticonSvg: Email,\n\t\t\t\t\ticonName: 'Email icon',\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n\n\t{\n\t\tprops: {\n\t\t\tinputLabel: 'Multiple user select (stay open on select)',\n\t\t\tuserSelect: true,\n\t\t\tmultiple: true,\n\t\t\tcloseOnSelect: false,\n\t\t\toptions: [\n\t\t\t\t{\n\t\t\t\t\tid: '0-john',\n\t\t\t\t\tdisplayName: 'John',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'john@example.org',\n\t\t\t\t\ticon: '',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-emma',\n\t\t\t\t\tdisplayName: 'Emma',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'emma@example.org',\n\t\t\t\t\ticon: '',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-olivia',\n\t\t\t\t\tdisplayName: 'Olivia',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'olivia@example.org',\n\t\t\t\t\ticon: '',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-noah',\n\t\t\t\t\tdisplayName: 'Noah',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'noah@example.org',\n\t\t\t\t\ticon: '',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-oliver',\n\t\t\t\t\tdisplayName: 'Oliver',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'oliver@example.org',\n\t\t\t\t\ticon: '',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '1-admin',\n\t\t\t\t\tdisplayName: 'Admin',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\tsubname: null,\n\t\t\t\t\ticonSvg: AccountGroup,\n\t\t\t\t\ticonName: 'Group icon',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '2-org@example.org',\n\t\t\t\t\tdisplayName: 'Organization',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\tsubname: 'org@example.org',\n\t\t\t\t\ticonSvg: Email,\n\t\t\t\t\ticonName: 'Email icon',\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n]\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tselectArray,\n\t\t}\n\t},\n}\n</script>\n\n<style>\n.grid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(1, 500px);\n\tgap: 10px;\n}\n\n.container {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px 0;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<VueSelect class=\"select\"\n\t\t:class=\"{\n\t\t\t'select--no-wrap': noWrap,\n\t\t\t'user-select': userSelect,\n\t\t}\"\n\t\tv-bind=\"propsToForward\"\n\t\t@search=\"search = $event\"\n\t\t@update:model-value=\"$emit('update:modelValue', $event)\">\n\t\t<template v-if=\"!labelOutside && inputLabel\" #header>\n\t\t\t<label :for=\"inputId\"\n\t\t\t\tclass=\"select__label\">\n\t\t\t\t{{ inputLabel }}\n\t\t\t</label>\n\t\t</template>\n\t\t<template #search=\"{ attributes, events }\">\n\t\t\t<input :class=\"['vs__search', inputClass]\"\n\t\t\t\tv-bind=\"attributes\"\n\t\t\t\t:required=\"inputRequired\"\n\t\t\t\tdir=\"auto\"\n\t\t\t\tv-on=\"events\">\n\t\t</template>\n\t\t<template #open-indicator=\"{ attributes }\">\n\t\t\t<ChevronDown v-bind=\"attributes\"\n\t\t\t\tfill-color=\"var(--vs-controls-color)\"\n\t\t\t\t:style=\"{\n\t\t\t\t\tcursor: !disabled ? 'pointer' : null,\n\t\t\t\t}\"\n\t\t\t\t:size=\"26\" />\n\t\t\t\t<!-- Set size to 26 to make up for the increased padding of this icon -->\n\t\t</template>\n\t\t<template #option=\"option\">\n\t\t\t<NcListItemIcon v-if=\"userSelect\"\n\t\t\t\tv-bind=\"option\"\n\t\t\t\t:avatar-size=\"24\"\n\t\t\t\t:name=\"option[localLabel]\"\n\t\t\t\t:search=\"search\" />\n\t\t\t<NcEllipsisedOption v-else\n\t\t\t\t:name=\"String(option[localLabel])\"\n\t\t\t\t:search=\"search\" />\n\t\t</template>\n\t\t<template #selected-option=\"selectedOption\">\n\t\t\t<NcListItemIcon v-if=\"userSelect\"\n\t\t\t\tv-bind=\"selectedOption\"\n\t\t\t\t:avatar-size=\"avatarSize\"\n\t\t\t\t:name=\"selectedOption[localLabel]\"\n\t\t\t\tno-margin\n\t\t\t\t:search=\"search\" />\n\t\t\t<NcEllipsisedOption v-else\n\t\t\t\t:name=\"String(selectedOption[localLabel])\"\n\t\t\t\t:search=\"search\" />\n\t\t</template>\n\t\t<template #spinner=\"spinner\">\n\t\t\t<NcLoadingIcon v-if=\"spinner.loading\" />\n\t\t</template>\n\t\t<template #no-options>\n\t\t\t{{ t('No results') }}\n\t\t</template>\n\t\t<template v-for=\"(_, name) in $slots\" #[name]=\"data\">\n\t\t\t<!-- @slot Any combination of slots from https://vue-select.org/api/slots.html -->\n\t\t\t<slot :name=\"name\" v-bind=\"data\" />\n\t\t</template>\n\t</VueSelect>\n</template>\n\n<script>\n// TODO: Use @nextcloud/vue-select once a vue 3 version is available.\n// Until then, all @nextcloud/vue-select specific improvements won't be available.\n// E.g. the `limit` prop has no effect, currently.\nimport 'vue-select/dist/vue-select.css'\n\nimport VueSelect from 'vue-select'\nimport {\n\tautoUpdate,\n\tcomputePosition,\n\tflip,\n\tlimitShift,\n\toffset,\n\tshift,\n} from '@floating-ui/dom'\nimport { h, warn } from 'vue'\nimport { t } from '../../l10n.js'\n\nimport ChevronDown from 'vue-material-design-icons/ChevronDown.vue'\nimport Close from 'vue-material-design-icons/Close.vue'\n\nimport NcEllipsisedOption from '../NcEllipsisedOption/index.js'\nimport NcListItemIcon from '../NcListItemIcon/index.js'\nimport NcLoadingIcon from '../NcLoadingIcon/index.js'\n\nimport GenRandomId from '../../utils/GenRandomId.js'\n\nexport default {\n\tname: 'NcSelect',\n\n\tcomponents: {\n\t\tChevronDown,\n\t\tNcEllipsisedOption,\n\t\tNcListItemIcon,\n\t\tNcLoadingIcon,\n\t\tVueSelect,\n\t},\n\n\tprops: {\n\t\t// Add VueSelect props to $props\n\t\t...VueSelect.props,\n\t\t...VueSelect.mixins.reduce((allProps, mixin) => ({ ...allProps, ...mixin.props }), {}),\n\n\t\t/**\n\t\t * `aria-label` for the clear input button\n\t\t */\n\t\tariaLabelClearSelected: {\n\t\t\ttype: String,\n\t\t\tdefault: t('Clear selected'),\n\t\t},\n\n\t\t/**\n\t\t * `aria-label` for the search input\n\t\t *\n\t\t * A descriptive `inputLabel` is preferred as this is not visible.\n\t\t */\n\t\tariaLabelCombobox: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * `aria-label` for the listbox element\n\t\t */\n\t\tariaLabelListbox: {\n\t\t\ttype: String,\n\t\t\tdefault: t('Options'),\n\t\t},\n\n\t\t/**\n\t\t * Allows to customize the `aria-label` for the deselect-option button\n\t\t * The default is \"Deselect \" + optionLabel\n\t\t * @type {(optionLabel: string) => string}\n\t\t */\n\t\tariaLabelDeselectOption: {\n\t\t\ttype: Function,\n\t\t\tdefault: (optionLabel) => t('Deselect {option}', { option: optionLabel }),\n\t\t},\n\n\t\t/**\n\t\t * Append the dropdown element to the end of the body\n\t\t * and size/position it dynamically.\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#appendtobody\n\t\t */\n\t\tappendToBody: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\n\t\t/**\n\t\t * When `appendToBody` is true, this function is responsible for\n\t\t * positioning the drop down list.\n\t\t *\n\t\t * If a function is returned from `calculatePosition`, it will\n\t\t * be called when the drop down list is removed from the DOM.\n\t\t * This allows for any garbage collection you may need to do.\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#calculateposition\n\t\t */\n\t\tcalculatePosition: {\n\t\t\ttype: Function,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Close the dropdown when selecting an option\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#closeonselect\n\t\t */\n\t\tcloseOnSelect: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\n\t\t/**\n\t\t * Replace default vue-select components\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#components\n\t\t */\n\t\tcomponents: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({\n\t\t\t\tDeselect: {\n\t\t\t\t\trender: () => h(Close, {\n\t\t\t\t\t\tsize: 20,\n\t\t\t\t\t\tfillColor: 'var(--vs-controls-color)',\n\t\t\t\t\t\tstyle: [\n\t\t\t\t\t\t\t{ cursor: 'pointer' },\n\t\t\t\t\t\t],\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\n\t\t/**\n\t\t * Sets the maximum number of options to display in the dropdown list\n\t\t */\n\t\tlimit: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Disable the component\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#disabled\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 * Determines whether the dropdown should be open.\n\t\t * Receives the component instance as the only argument.\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#dropdownshouldopen\n\t\t */\n\t\tdropdownShouldOpen: {\n\t\t\ttype: Function,\n\t\t\tdefault: ({ noDrop, open }) => {\n\t\t\t\treturn noDrop ? false : open\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Callback to determine if the provided option should\n\t\t * match the current search text. Used to determine\n\t\t * if the option should be displayed.\n\t\t *\n\t\t * Defaults to the internal vue-select function documented at the link\n\t\t * below\n\t\t *\n\t\t * Enabling `userSelect` will automatically set this to filter by the\n\t\t * `displayName` and `subname` properties of the user option object\n\t\t * unless this prop is set explicitly\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#filterby\n\t\t */\n\t\tfilterBy: {\n\t\t\ttype: Function,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Class for the `input`\n\t\t *\n\t\t * Necessary for use in NcActionInput\n\t\t */\n\t\tinputClass: {\n\t\t\ttype: [String, Object],\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Input element id\n\t\t */\n\t\tinputId: {\n\t\t\ttype: String,\n\t\t\tdefault: () => `select-input-${GenRandomId()}`,\n\t\t},\n\n\t\t/**\n\t\t * Visible label for the input element\n\t\t *\n\t\t * @todo Set default for @nextcloud/vue 9\n\t\t */\n\t\tinputLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Pass true if you are using an external label\n\t\t */\n\t\tlabelOutside: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Display a visible border around dropdown options\n\t\t * which have keyboard focus\n\t\t */\n\t\tkeyboardFocusBorder: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\n\t\t/**\n\t\t * Key of the displayed label for object options\n\t\t *\n\t\t * Defaults to the internal vue-select string documented at the link\n\t\t * below\n\t\t *\n\t\t * Enabling `userSelect` will automatically set this to `'displayName'`\n\t\t * unless this prop is set explicitly\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#label\n\t\t */\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Show the loading icon\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#loading\n\t\t */\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Allow selection of multiple options\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#multiple\n\t\t */\n\t\tmultiple: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Disable automatic wrapping when selected options overflow the width\n\t\t */\n\t\tnoWrap: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Array of options\n\t\t *\n\t\t * @type {Array<string | number | Record<string | number, any>>}\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#options\n\t\t */\n\t\toptions: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\n\t\t/**\n\t\t * Placeholder text\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#placeholder\n\t\t */\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Customized component's response to keydown events while the search input has focus\n\t\t *\n\t\t * @see https://vue-select.org/guide/keydown.html#mapkeydown\n\t\t */\n\t\tmapKeydown: {\n\t\t\ttype: Function,\n\t\t\t/**\n\t\t\t * Patched Vue-Select keydown events handlers map to stop Escape propagation in open select\n\t\t\t *\n\t\t\t * @param {Record<number, Function>} map - Mapped keyCode to handlers { <keyCode>:<callback> }\n\t\t\t * @param {import('@nextcloud/vue-select').VueSelect} vm - VueSelect instance\n\t\t\t * @return {Record<number, Function>} patched keydown event handlers\n\t\t\t */\n\t\t\tdefault(map, vm) {\n\t\t\t\treturn {\n\t\t\t\t\t...map,\n\t\t\t\t\t/**\n\t\t\t\t\t * Patched Escape handler to stop propagation from open select\n\t\t\t\t\t *\n\t\t\t\t\t * @param {KeyboardEvent} event - default keydown event handler\n\t\t\t\t\t */\n\t\t\t\t\t27: (event) => {\n\t\t\t\t\t\tif (vm.open) {\n\t\t\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Default VueSelect's handler\n\t\t\t\t\t\tmap[27](event)\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * A unique identifier used to generate IDs and DOM attributes. Must be unique for every instance of the component.\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#uid\n\t\t */\n\t\tuid: {\n\t\t\ttype: String,\n\t\t\tdefault: () => GenRandomId(),\n\t\t},\n\n\t\t/**\n\t\t * When `appendToBody` is true, this sets the placement of the dropdown\n\t\t *\n\t\t * @type {'bottom' | 'top'}\n\t\t */\n\t\tplacement: {\n\t\t\ttype: String,\n\t\t\tdefault: 'bottom',\n\t\t},\n\n\t\t/**\n\t\t * If false, the focused dropdown option will not be reset when filtered\n\t\t * options change\n\t\t */\n\t\tresetFocusOnOptionsChange: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\n\t\t/**\n\t\t * Enable the user selector with avatars\n\t\t *\n\t\t * Objects must contain the data expected by the\n\t\t * [NcListItemIcon](#/Components/NcListItemIcon) and\n\t\t * [NcAvatar](#/Components/NcAvatar) components\n\t\t */\n\t\tuserSelect: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Currently selected value\n\t\t *\n\t\t * The `v-model` directive may be used for two-way data binding\n\t\t *\n\t\t * @type {string | number | Record<string | number, any> | Array<any>}\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#value\n\t\t */\n\t\tmodelValue: {\n\t\t\ttype: [String, Number, Object, Array],\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Enable if a value is required for native form validation\n\t\t */\n\t\trequired: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Any available prop\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html\n\t\t */\n\t\t// Not an actual prop but needed to show in vue-styleguidist docs\n\t\t// eslint-disable-next-line\n\t\t' ': {},\n\t},\n\n\temits: [\n\t\t/**\n\t\t * All events from https://vue-select.org/api/events.html\n\t\t */\n\t\t// Not an actual event but needed to show in vue-styleguidist docs\n\t\t' ',\n\t\t'update:modelValue',\n\t],\n\n\tsetup() {\n\t\tconst clickableArea = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue('--default-clickable-area'))\n\t\tconst gridBaseLine = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue('--default-grid-baseline'))\n\t\tconst avatarSize = clickableArea - 2 * gridBaseLine\n\n\t\treturn {\n\t\t\tavatarSize,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tsearch: '',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tinputRequired() {\n\t\t\tif (!this.required) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\t// The <input> itself does not have any value so we set the `required` attribute conditionally\n\t\t\treturn this.value === null || (Array.isArray(this.value) && this.value.length === 0)\n\t\t},\n\n\t\tlocalCalculatePosition() {\n\t\t\tif (this.calculatePosition !== null) {\n\t\t\t\treturn this.calculatePosition\n\t\t\t}\n\n\t\t\treturn (dropdownMenu, component, { width }) => {\n\t\t\t\tdropdownMenu.style.width = width\n\n\t\t\t\tconst addClass = {\n\t\t\t\t\tname: 'addClass',\n\t\t\t\t\tfn(/* middlewareArgs */) {\n\t\t\t\t\t\tdropdownMenu.classList.add('vs__dropdown-menu--floating')\n\t\t\t\t\t\treturn {}\n\t\t\t\t\t},\n\t\t\t\t}\n\n\t\t\t\tconst togglePlacementClass = {\n\t\t\t\t\tname: 'togglePlacementClass',\n\t\t\t\t\tfn({ placement }) {\n\t\t\t\t\t\tcomponent.$el.classList.toggle(\n\t\t\t\t\t\t\t'select--drop-up',\n\t\t\t\t\t\t\tplacement === 'top',\n\t\t\t\t\t\t)\n\t\t\t\t\t\tdropdownMenu.classList.toggle(\n\t\t\t\t\t\t\t'vs__dropdown-menu--floating-placement-top',\n\t\t\t\t\t\t\tplacement === 'top',\n\t\t\t\t\t\t)\n\t\t\t\t\t\treturn {}\n\t\t\t\t\t},\n\t\t\t\t}\n\n\t\t\t\tconst updatePosition = () => {\n\t\t\t\t\tcomputePosition(component.$refs.toggle, dropdownMenu, {\n\t\t\t\t\t\tplacement: this.placement,\n\t\t\t\t\t\tmiddleware: [\n\t\t\t\t\t\t\toffset(-1),\n\t\t\t\t\t\t\taddClass,\n\t\t\t\t\t\t\ttogglePlacementClass,\n\t\t\t\t\t\t\t// Match popperjs default collision prevention behavior by appending the following middleware in order\n\t\t\t\t\t\t\tflip(),\n\t\t\t\t\t\t\tshift({ limiter: limitShift() }),\n\t\t\t\t\t\t],\n\t\t\t\t\t}).then(({ x, y }) => {\n\t\t\t\t\t\tObject.assign(dropdownMenu.style, {\n\t\t\t\t\t\t\tleft: `${x}px`,\n\t\t\t\t\t\t\ttop: `${y}px`,\n\t\t\t\t\t\t\twidth: `${component.$refs.toggle.getBoundingClientRect().width}px`,\n\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tconst cleanup = autoUpdate(\n\t\t\t\t\tcomponent.$refs.toggle,\n\t\t\t\t\tdropdownMenu,\n\t\t\t\t\tupdatePosition,\n\t\t\t\t)\n\n\t\t\t\treturn cleanup\n\t\t\t}\n\t\t},\n\n\t\tlocalFilterBy() {\n\t\t\t// Match the email notation like \"Jane <j.doe@example.com>\" with the email address as matching group\n\t\t\tconst EMAIL_NOTATION = /[^<]*<([^>]+)/\n\n\t\t\tif (this.filterBy !== null) {\n\t\t\t\treturn this.filterBy\n\t\t\t}\n\t\t\tif (this.userSelect) {\n\t\t\t\treturn (option, label, search) => {\n\t\t\t\t\tconst match = search.match(EMAIL_NOTATION)\n\t\t\t\t\treturn (match && option.subname?.toLocaleLowerCase?.()?.indexOf(match[1].toLocaleLowerCase()) > -1)\n\t\t\t\t\t\t|| (`${label} ${option.subname}`\n\t\t\t\t\t\t\t.toLocaleLowerCase()\n\t\t\t\t\t\t\t.indexOf(search.toLocaleLowerCase()) > -1)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn VueSelect.props.filterBy.default\n\t\t},\n\n\t\tlocalLabel() {\n\t\t\tif (this.label !== null) {\n\t\t\t\treturn this.label\n\t\t\t}\n\t\t\tif (this.userSelect) {\n\t\t\t\treturn 'displayName'\n\t\t\t}\n\t\t\treturn VueSelect.props.label.default\n\t\t},\n\n\t\tpropsToForward() {\n\t\t\tconst vueSelectKeys = [\n\t\t\t\t...Object.keys(VueSelect.props),\n\t\t\t\t...VueSelect.mixins.flatMap(mixin => Object.keys(mixin.props ?? {})),\n\t\t\t]\n\t\t\tconst initialPropsToForward = Object.fromEntries(\n\t\t\t\tObject.entries(this.$props)\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\t\t\t\t.filter(([key, _value]) => vueSelectKeys.includes(key)),\n\t\t\t)\n\t\t\tconst propsToForward = {\n\t\t\t\t...initialPropsToForward,\n\t\t\t\t// Custom overrides of vue-select props\n\t\t\t\tcalculatePosition: this.localCalculatePosition,\n\t\t\t\tfilterBy: this.localFilterBy,\n\t\t\t\tlabel: this.localLabel,\n\t\t\t}\n\t\t\treturn propsToForward\n\t\t},\n\t},\n\n\tmounted() {\n\t\tif (!this.labelOutside && !this.inputLabel && !this.ariaLabelCombobox) {\n\t\t\twarn('[NcSelect] An `inputLabel` or `ariaLabelCombobox` should be set. If an external label is used, `labelOutside` should be set to `true`.')\n\t\t}\n\t\tif (this.inputLabel && this.ariaLabelCombobox) {\n\t\t\twarn('[NcSelect] Only one of `inputLabel` or `ariaLabelCombobox` should to be set.')\n\t\t}\n\t},\n\n\tmethods: {\n\t\tt,\n\t},\n}\n</script>\n\n<style lang=\"scss\">\nbody {\n\t/**\n\t * Set custom vue-select CSS variables.\n\t * Needs to be on the body (not :root) for theming to apply (see nextcloud/server#36462)\n\t */\n\n\t/* Search Input */\n\t--vs-search-input-color: var(--color-main-text);\n\t--vs-search-input-bg: var(--color-main-background);\n\t--vs-search-input-placeholder-color: var(--color-text-maxcontrast);\n\n\t/* Font */\n\t--vs-font-size: var(--default-font-size);\n\t--vs-line-height: var(--default-line-height);\n\n\t/* Disabled State */\n\t--vs-state-disabled-bg: var(--color-background-hover);\n\t--vs-state-disabled-color: var(--color-text-maxcontrast);\n\t--vs-state-disabled-controls-color: var(--color-text-maxcontrast);\n\t--vs-state-disabled-cursor: not-allowed;\n\t--vs-disabled-bg: var(--color-background-hover);\n\t--vs-disabled-color: var(--color-text-maxcontrast);\n\t--vs-disabled-cursor: not-allowed;\n\n\t/* Borders */\n\t--vs-border-color: var(--color-border-maxcontrast);\n\t--vs-border-width: var(--border-width-input, 2px) !important;\n\t--vs-border-style: solid;\n\t--vs-border-radius: var(--border-radius-large);\n\n\t/* Component Controls: Clear, Open Indicator */\n\t--vs-controls-color: var(--color-main-text);\n\n\t/* Selected */\n\t--vs-selected-bg: var(--color-background-hover);\n\t--vs-selected-color: var(--color-main-text);\n\t--vs-selected-border-color: var(--vs-border-color);\n\t--vs-selected-border-style: var(--vs-border-style);\n\t--vs-selected-border-width: var(--vs-border-width);\n\n\t/* Dropdown */\n\t--vs-dropdown-bg: var(--color-main-background);\n\t--vs-dropdown-color: var(--color-main-text);\n\t--vs-dropdown-z-index: 9999;\n\t--vs-dropdown-box-shadow: 0px 2px 2px 0px var(--color-box-shadow);\n\n\t/* Options */\n\t--vs-dropdown-option-padding: 8px 20px;\n\n\t/* Active State */\n\t--vs-dropdown-option--active-bg: var(--color-background-hover);\n\t--vs-dropdown-option--active-color: var(--color-main-text);\n\n\t/* Keyboard Focus State */\n\t--vs-dropdown-option--kb-focus-box-shadow: inset 0px 0px 0px 2px var(--vs-border-color);\n\n\t/* Deselect State */\n\t--vs-dropdown-option--deselect-bg: var(--color-error);\n\t--vs-dropdown-option--deselect-color: #fff;\n\n\t/* Transitions */\n\t--vs-transition-duration: 0ms;\n\n\t/* Actions */\n\t--vs-actions-padding: 0 8px 0 4px;\n}\n\n.v-select.select {\n\t/* Override default vue-select styles */\n\tmin-height: var(--default-clickable-area);\n\tmin-width: 260px;\n\tmargin: 0 0 var(--default-grid-baseline);\n\n\t&.vs--open {\n\t\t--vs-border-width: var(--border-width-input-focused, 2px);\n\t}\n\n\t.select__label {\n\t\tdisplay: block;\n\t\tmargin-bottom: 2px;\n\t}\n\n\t.vs__selected {\n\t\theight: calc(var(--default-clickable-area) - 2 * var(--vs-border-width) - var(--default-grid-baseline));\n\t\tmargin: calc(var(--default-grid-baseline) / 2);\n\t\tpadding-block: 0;\n\t\tpadding-inline: 12px 8px;\n\t\tborder-radius: 16px !important;\n\t\tbackground: var(--color-primary-element-light);\n\t\tborder: none;\n\t}\n\n\t&.vs--open .vs__selected:first-of-type {\n\t\tmargin-inline-start: calc(var(--default-grid-baseline) / 2 - (var(--border-width-input-focused, 2px) - var(--border-width-input, 2px))) !important; // prevent jumping\n\t}\n\n\t.vs__search {\n\t\ttext-overflow: ellipsis;\n\t\tcolor: var(--color-main-text);\n\t\tmin-height: unset !important;\n\t\theight: calc(var(--default-clickable-area) - 2 * var(--vs-border-width)) !important;\n\n\t\t&::placeholder {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n\n\t.vs__search, .vs__search:focus {\n\t\tmargin: 0;\n\t}\n\n\t.vs__dropdown-toggle {\n\t\tposition: relative;\n\t\tmax-height: 100px;\n\t\tpadding: 0;\n\t\toverflow-y: auto;\n\t}\n\n\t.vs__actions {\n\t\tposition: sticky;\n\t\ttop: 0;\n\t}\n\n\t.vs__clear {\n\t\tmargin-right: 2px;\n\t}\n\n\t&.vs--open .vs__dropdown-toggle {\n\t\tborder-width: var(--border-width-input-focused);\n\t\toutline: 2px solid var(--color-main-background);\n\t\tborder-color: var(--color-main-text);\n\t\tborder-bottom-color: transparent;\n\t}\n\n\t&:not(.vs--disabled, .vs--open) .vs__dropdown-toggle:hover {\n\t\toutline: 2px solid var(--color-main-background);\n\t\tborder-color: var(--color-main-text);\n\t}\n\n\t&.vs--disabled {\n\t\t.vs__search,\n\t\t.vs__selected {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\n\t\t.vs__clear,\n\t\t.vs__deselect {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t&--no-wrap {\n\t\t.vs__selected-options {\n\t\t\tflex-wrap: nowrap;\n\t\t\toverflow: auto;\n\t\t\tmin-width: unset;\n\t\t\t.vs__selected {\n\t\t\t\tmin-width: unset;\n\t\t\t}\n\t\t}\n\t}\n\n\t&--drop-up {\n\t\t&.vs--open {\n\t\t\t.vs__dropdown-toggle {\n\t\t\t\tborder-radius: 0 0 var(--vs-border-radius) var(--vs-border-radius);\n\t\t\t\tborder-top-color: transparent;\n\t\t\t\tborder-bottom-color: var(--color-main-text);\n\t\t\t}\n\t\t}\n\t}\n\n\t.vs__selected-options {\n\t\t// If search is hidden, ensure that the height of the search is the same\n\t\tmin-height: calc(var(--default-clickable-area) - 2 * var(--vs-border-width));\n\n\t\t// Hide search from dom if unused to prevent unneeded flex wrap\n\t\t.vs__selected ~ .vs__search[readonly] {\n\t\t\tposition: absolute;\n\t\t}\n\t\tpadding: 0 5px;\n\t}\n\n\t&.vs--single {\n\t\t&.vs--loading,\n\t\t&.vs--open {\n\t\t\t.vs__selected {\n\t\t\t\t// Fix `max-width` for `position: absolute`\n\t\t\t\tmax-width: 100%;\n\t\t\t\t// Fix color to be accessible\n\t\t\t\topacity: 1;\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\t\t}\n\t\t.vs__selected-options {\n\t\t\tflex-wrap: nowrap;\n\t\t}\n\t\t.vs__selected {\n\t\t\tbackground: unset !important;\n\t\t}\n\t}\n}\n\n.vs__dropdown-menu {\n\tborder-width: var(--border-width-input-focused) !important;\n\tborder-color: var(--color-main-text) !important;\n\toutline: none !important;\n\tbox-shadow:\n\t\t-2px 0 0 var(--color-main-background), // Right\n\t\t0 2px 0 var(--color-main-background), // Bottom\n\t\t2px 0 0 var(--color-main-background), // Left\n\t\t!important;\n\tpadding: 4px !important;\n\n\t&--floating {\n\t\t/* Fallback styles overidden by programmatically set inline styles */\n\t\twidth: max-content;\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\n\t\t&-placement-top {\n\t\t\tborder-radius: var(--vs-border-radius) var(--vs-border-radius) 0 0 !important;\n\t\t\tborder-top-style: var(--vs-border-style) !important;\n\t\t\tborder-bottom-style: none !important;\n\t\t\tbox-shadow:\n\t\t\t\t0 -2px 0 var(--color-main-background), // Top\n\t\t\t\t-2px 0 0 var(--color-main-background), // Right\n\t\t\t\t2px 0 0 var(--color-main-background), // Left\n\t\t\t\t!important\n\t\t}\n\t}\n\n\t.vs__dropdown-option {\n\t\tborder-radius: 6px !important;\n\t}\n\n\t.vs__no-options {\n\t\tcolor: var(--color-text-lighter) !important;\n\t}\n}\n\n// Selected users require slightly different padding\n.user-select .vs__selected {\n\tpadding-inline: 0 5px !important;\n}\n</style>\n"],"names":["_openBlock","_createBlock","_mergeProps","_createSlots","_withCtx","_createElementVNode","_toHandlers","_createVNode","_createCommentVNode","_createTextVNode","_toDisplayString","_renderList","_renderSlot","_normalizeProps","_guardReactiveProps"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NcSettingsInputText-Bjw2RqKu.mjs","sources":["../../src/components/NcSettingsInputText/NcSettingsInputText.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n```vue\n<NcSettingsInputText label=\"Label\" hint=\"Hint\" />\n<NcSettingsInputText label=\"Label\" model-value=\"Value\" hint=\"Hint\" disabled />\n```\n\n</docs>\n\n<template>\n\t<form ref=\"form\"\n\t\t:disabled=\"disabled\"\n\t\t@submit.prevent.stop=\"onSubmit\">\n\t\t<div class=\"input-wrapper\">\n\t\t\t<label :for=\"id\" class=\"action-input__label\">{{ label }}</label>\n\t\t\t<input :id=\"id\"\n\t\t\t\ttype=\"text\"\n\t\t\t\t:value=\"modelValue\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t@input=\"onInput\"\n\t\t\t\t@change=\"onChange\">\n\t\t\t<input :id=\"idSubmit\"\n\t\t\t\t:value=\"submitTranslated\"\n\t\t\t\ttype=\"submit\"\n\t\t\t\tclass=\"action-input__submit\">\n\t\t\t<p v-if=\"hint\" class=\"hint\">\n\t\t\t\t{{ hint }}\n\t\t\t</p>\n\t\t</div>\n\t</form>\n</template>\n\n<script>\nimport { t } from '../../l10n.js'\nimport GenRandomId from '../../utils/GenRandomId.js'\n\nexport default {\n\tname: 'NcSettingsInputText',\n\tprops: {\n\t\t/**\n\t\t * label of the select group element\n\t\t */\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * hint of the select group input\n\t\t */\n\t\thint: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * value of the select group input\n\t\t */\n\t\tmodelValue: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * disabled state of the settings select group input\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 * id attribute of the select group element\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\tdefault: () => 'settings-input-text-' + GenRandomId(),\n\t\t\tvalidator: id => id.trim() !== '',\n\t\t},\n\t},\n\n\temits: [\n\t\t'change',\n\t\t'input',\n\t\t'submit',\n\t\t'update:modelValue',\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tsubmitTranslated: t('Submit'),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * @return {string}\n\t\t */\n\t\tidSubmit() {\n\t\t\treturn this.id + '-submit'\n\t\t},\n\t},\n\tmethods: {\n\t\tonInput(event) {\n\t\t\tthis.$emit('input', event)\n\t\t\t/**\n\t\t\t * Emitted when the inputs value changes\n\t\t\t *\n\t\t\t * @type {string}\n\t\t\t */\n\t\t\tthis.$emit('update:modelValue', event.target.value)\n\t\t},\n\t\tonSubmit(event) {\n\t\t\tif (!this.disabled) {\n\t\t\t\t/**\n\t\t\t\t * Emitted on submit of the input field\n\t\t\t\t *\n\t\t\t\t * @type {Event}\n\t\t\t\t */\n\t\t\t\tthis.$emit('submit', event)\n\t\t\t}\n\t\t},\n\t\tonChange(event) {\n\t\t\t/**\n\t\t\t * Emitted on change of the input field\n\t\t\t *\n\t\t\t * @type {Event}\n\t\t\t */\n\t\t\tthis.$emit('change', event)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\n\t.input-wrapper {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tflex-wrap: wrap;\n\t\twidth: 100%;\n\t\tmax-width: 400px;\n\n\t\t& .action-input__label {\n\t\t\tmargin-right: 12px;\n\t\t}\n\n\t\t// if disabled, change cursor\n\t\t&:disabled {\n\t\t\tcursor: default;\n\t\t}\n\n\t\t.hint {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\tmargin-left: 8px;\n\t\t}\n\t}\n\n</style>\n"],"names":["_createElementBlock","_withModifiers","_createElementVNode","_toDisplayString","_createCommentVNode"],"mappings":";;;;;AAyCA,MAAK,YAAU;AAAA,EACd,MAAM;AAAA,EACN,OAAO;AAAA;AAAA;AAAA;AAAA,IAIN,OAAO;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKD,YAAY;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKD,UAAU;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKD,IAAI;AAAA,MACH,MAAM;AAAA,MACN,SAAS,MAAM,yBAAyB,YAAa;AAAA,MACrD,WAAW,QAAM,GAAG,KAAK,MAAM;AAAA,IAC/B;AAAA,EACD;AAAA,EAED,OAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACA;AAAA,EAED,OAAO;AACN,WAAO;AAAA,MACN,kBAAkB,EAAE,QAAQ;AAAA,IAC7B;AAAA,EACA;AAAA,EAED,UAAU;AAAA;AAAA;AAAA;AAAA,IAIT,WAAW;AACV,aAAO,KAAK,KAAK;AAAA,IACjB;AAAA,EACD;AAAA,EACD,SAAS;AAAA,IACR,QAAQ,OAAO;AACd,WAAK,MAAM,SAAS,KAAK;AAMzB,WAAK,MAAM,qBAAqB,MAAM,OAAO,KAAK;AAAA,IAClD;AAAA,IACD,SAAS,OAAO;AACf,UAAI,CAAC,KAAK,UAAU;AAMnB,aAAK,MAAM,UAAU,KAAK;AAAA,MAC3B;AAAA,IACA;AAAA,IACD,SAAS,OAAO;AAMf,WAAK,MAAM,UAAU,KAAK;AAAA,IAC1B;AAAA,EACD;AACF;AAxIA,MAAA,aAAA,CAAA,UAAA;AAkBO,MAAA,aAAA,EAAA,OAAM,gBAAe;AAlB5B,MAAA,aAAA,CAAA,KAAA;AAAA,MAAA,aAAA,CAAA,MAAA,SAAA,UAAA;AAAA,MAAA,aAAA,CAAA,MAAA,OAAA;;EAAA,KAAA;AAAA,EA8BkB,OAAM;;;sBAfvBA,mBAmBO,QAAA;AAAA,IAnBD,KAAI;AAAA,IACR,UAAU,OAAQ;AAAA,IAClB,UAAM,OAAA,CAAA,MAAA,OAAA,CAAA,IAjBTC,2BAiBwB,SAAQ,YAAA,SAAA,SAAA,GAAA,IAAA,GAAA,CAAA,WAAA,MAAA,CAAA;AAAA;IAC9BC,mBAeM,OAfN,YAeM;AAAA,MAdLA,mBAAgE,SAAA;AAAA,QAAxD,KAAK,OAAE;AAAA,QAAE,OAAM;AAAA,MAAyB,GAAAC,gBAAA,OAAA,KAAK,GAnBxD,GAAA,UAAA;AAAA,MAoBGD,mBAKoB,SAAA;AAAA,QALZ,IAAI,OAAE;AAAA,QACb,MAAK;AAAA,QACJ,OAAO,OAAU;AAAA,QACjB,UAAU,OAAQ;AAAA,QAClB,gDAAO,SAAO,WAAA,SAAA,QAAA,GAAA,IAAA;AAAA,QACd,iDAAQ,SAAQ,YAAA,SAAA,SAAA,GAAA,IAAA;AAAA,MAzBrB,GAAA,MAAA,IAAA,UAAA;AAAA,MA0BGA,mBAG8B,SAAA;AAAA,QAHtB,IAAI,SAAQ;AAAA,QAClB,OAAO,MAAgB;AAAA,QACxB,MAAK;AAAA,QACL,OAAM;AAAA,MA7BV,GAAA,MAAA,GAAA,UAAA;AAAA,MA8BY,OAAI,qBAAbF,mBAEI,KAFJ,YAEIG,gBADA,OAAI,IAAA,GAAA,CAAA,KA/BXC,mBAAA,IAAA,IAAA;AAAA;EAAA,GAAA,IAAA,UAAA;;;"}
|