@nextcloud/vue 9.0.0-alpha.8 → 9.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +88 -12
- package/dist/assets/{NcActionButton-d8aZCq9u.css → NcActionButton-DfdRrSEu.css} +16 -16
- package/dist/assets/{NcActionCheckbox-tMIOGziy.css → NcActionCheckbox--lTDnNsx.css} +12 -12
- package/dist/assets/{NcActionInput-C-rQsTEA.css → NcActionInput-BNWL2Q-3.css} +62 -62
- package/dist/assets/{NcActionLink-jSPFFKV8.css → NcActionLink-C9_ycPLF.css} +12 -12
- package/dist/assets/{NcActionRadio-xdrmoEIq.css → NcActionRadio-DnAjyubC.css} +12 -12
- package/dist/assets/{NcActionRouter-qNNqBZab.css → NcActionRouter-CVsc7Ezc.css} +15 -15
- package/dist/assets/{NcActionText-0XNfku_2.css → NcActionText-C7y7Pe6P.css} +17 -17
- package/dist/assets/{NcActionTextEditable-ZlNtR_B_.css → NcActionTextEditable-OBnWSj_T.css} +60 -60
- package/dist/assets/{NcAppContent-CLu_1q4O.css → NcAppContent-CvTesBem.css} +23 -23
- package/dist/assets/{NcAppNavigationItem-aVy0uQwf.css → NcAppNavigationItem-DRU-cLRN.css} +30 -30
- package/dist/assets/{NcAppNavigationNewItem-rCrG0Uuo.css → NcAppNavigationNewItem-CsqJ6c8v.css} +32 -32
- package/dist/assets/{NcAvatar-DUKfNDGL.css → NcAvatar-UxFZ39EC.css} +24 -24
- package/dist/assets/{NcButton-wmjlEdLP.css → NcButton-DbE0wInI.css} +68 -64
- package/dist/assets/{NcCheckboxRadioSwitch-uwXbP_jb.css → NcCheckboxRadioSwitch-sqQXUuVB.css} +45 -44
- package/dist/assets/NcDateTimePicker-pmbCzZnb.css +83 -0
- package/dist/assets/{NcDialog-Dkeikssh.css → NcDialog-bP7Jt0ZE.css} +15 -15
- package/dist/assets/{NcHeaderButton-BPIasMkw.css → NcHeaderButton-Ct8k0yDh.css} +7 -7
- package/dist/assets/{NcHeaderMenu-ZmtqwEYA.css → NcHeaderMenu-zo6kw_jn.css} +11 -11
- package/dist/assets/{NcIconSvgWrapper-DQFhmjCC.css → NcIconSvgWrapper-BzRHs8iB.css} +11 -8
- package/dist/assets/{NcMentionBubble-BL05HUeF.css → NcMentionBubble-CB5c5ue2.css} +10 -9
- package/dist/assets/{NcPopover-ChETNAVH.css → NcPopover-zFjgXDlM.css} +13 -0
- package/dist/assets/{NcRichContenteditable-Bxi-Ki0j.css → NcRichContenteditable-CkyUKlIz.css} +31 -28
- package/dist/assets/{NcRichText-Dvt8jvWN.css → NcRichText-BbVi69cc.css} +87 -89
- package/dist/assets/{NcSelect-B6DUjUdl.css → NcSelect-BCBpQnFL.css} +0 -3
- package/dist/assets/{index-Du_FXiPy.css → index-CjPwAJ46.css} +68 -69
- package/dist/assets/index-D9L0rgJk.css +4 -0
- package/dist/chunks/{NcActionButton-BdQ_qmvW.mjs → NcActionButton-BZEDhdCm.mjs} +48 -6
- package/dist/chunks/NcActionButton-BZEDhdCm.mjs.map +1 -0
- package/dist/chunks/{NcActionButtonGroup-TitZerDl.mjs → NcActionButtonGroup-Dqt8Gekb.mjs} +2 -2
- package/dist/chunks/{NcActionButtonGroup-TitZerDl.mjs.map → NcActionButtonGroup-Dqt8Gekb.mjs.map} +1 -1
- package/dist/chunks/{NcActionCheckbox-CUYbo1rw.mjs → NcActionCheckbox-DLPDTACR.mjs} +3 -3
- package/dist/chunks/{NcActionCheckbox-CUYbo1rw.mjs.map → NcActionCheckbox-DLPDTACR.mjs.map} +1 -1
- package/dist/chunks/{NcActionInput-TI648L3V.mjs → NcActionInput-C_rmP0eZ.mjs} +10 -10
- package/dist/chunks/{NcActionInput-TI648L3V.mjs.map → NcActionInput-C_rmP0eZ.mjs.map} +1 -1
- package/dist/chunks/{NcActionLink-cQlsviu9.mjs → NcActionLink-BTIApspK.mjs} +3 -3
- package/dist/chunks/{NcActionLink-cQlsviu9.mjs.map → NcActionLink-BTIApspK.mjs.map} +1 -1
- package/dist/chunks/{NcActionRadio-tORL1qPt.mjs → NcActionRadio-CPoWB58D.mjs} +3 -3
- package/dist/chunks/{NcActionRadio-tORL1qPt.mjs.map → NcActionRadio-CPoWB58D.mjs.map} +1 -1
- package/dist/chunks/{NcActionRouter-Bw1tpEZt.mjs → NcActionRouter-DATNpU_e.mjs} +3 -3
- package/dist/chunks/{NcActionRouter-Bw1tpEZt.mjs.map → NcActionRouter-DATNpU_e.mjs.map} +1 -1
- package/dist/chunks/{NcActionText-VLCHOiIy.mjs → NcActionText-3mJjsJz_.mjs} +3 -3
- package/dist/chunks/{NcActionText-VLCHOiIy.mjs.map → NcActionText-3mJjsJz_.mjs.map} +1 -1
- package/dist/chunks/{NcActionTextEditable-nTbwgRy2.mjs → NcActionTextEditable-Dv1_bMFY.mjs} +3 -3
- package/dist/chunks/NcActionTextEditable-Dv1_bMFY.mjs.map +1 -0
- package/dist/chunks/{NcActions-CgKHXNbF.mjs → NcActions-DpYAcY6a.mjs} +19 -6
- package/dist/chunks/NcActions-DpYAcY6a.mjs.map +1 -0
- package/dist/chunks/{NcAppContent-C4gBVRQs.mjs → NcAppContent-BMiA5ySy.mjs} +19 -21
- package/dist/chunks/NcAppContent-BMiA5ySy.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigation-DbRpHbi9.mjs → NcAppNavigation-DuLUJbsJ.mjs} +2 -2
- package/dist/chunks/{NcAppNavigation-DbRpHbi9.mjs.map → NcAppNavigation-DuLUJbsJ.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationCaption-R_UZ7iKw.mjs → NcAppNavigationCaption-DTVdWgpf.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationCaption-R_UZ7iKw.mjs.map → NcAppNavigationCaption-DTVdWgpf.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationItem-CxYtFEhV.mjs → NcAppNavigationItem-5KG5Pl2c.mjs} +9 -9
- package/dist/chunks/{NcAppNavigationItem-CxYtFEhV.mjs.map → NcAppNavigationItem-5KG5Pl2c.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationNew-sMVo_IoL.mjs → NcAppNavigationNew-BUQgcKdv.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationNew-sMVo_IoL.mjs.map → NcAppNavigationNew-BUQgcKdv.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationNewItem-CJZcL6GH.mjs → NcAppNavigationNewItem-CRCOC0hV.mjs} +4 -4
- package/dist/chunks/{NcAppNavigationNewItem-CJZcL6GH.mjs.map → NcAppNavigationNewItem-CRCOC0hV.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSearch-Dbhh-Vtw.mjs → NcAppNavigationSearch-AT_S98B0.mjs} +3 -3
- package/dist/chunks/{NcAppNavigationSearch-Dbhh-Vtw.mjs.map → NcAppNavigationSearch-AT_S98B0.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSettings-Bfo3EWk_.mjs → NcAppNavigationSettings-DFsvNlME.mjs} +3 -3
- package/dist/chunks/{NcAppNavigationSettings-Bfo3EWk_.mjs.map → NcAppNavigationSettings-DFsvNlME.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationToggle-Ys-PjFo3.mjs → NcAppNavigationToggle-CqZs9ls-.mjs} +3 -3
- package/dist/chunks/{NcAppNavigationToggle-Ys-PjFo3.mjs.map → NcAppNavigationToggle-CqZs9ls-.mjs.map} +1 -1
- package/dist/chunks/{NcAppSettingsDialog-Cc-OdY9a.mjs → NcAppSettingsDialog-CTUoQezW.mjs} +4 -4
- package/dist/chunks/{NcAppSettingsDialog-Cc-OdY9a.mjs.map → NcAppSettingsDialog-CTUoQezW.mjs.map} +1 -1
- package/dist/chunks/{NcAppSidebar-Dgwj8O_Z.mjs → NcAppSidebar-B7shIqzm.mjs} +5 -5
- package/dist/chunks/{NcAppSidebar-Dgwj8O_Z.mjs.map → NcAppSidebar-B7shIqzm.mjs.map} +1 -1
- package/dist/chunks/{NcAvatar-CA8y4d-c.mjs → NcAvatar-CvPCBukb.mjs} +36 -14
- package/dist/chunks/NcAvatar-CvPCBukb.mjs.map +1 -0
- package/dist/chunks/{NcBreadcrumb-DSjIxTeU.mjs → NcBreadcrumb-C3qGDt3z.mjs} +3 -3
- package/dist/chunks/{NcBreadcrumb-DSjIxTeU.mjs.map → NcBreadcrumb-C3qGDt3z.mjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumbs-jPvP6Cmo.mjs → NcBreadcrumbs-DtBCo9yI.mjs} +6 -7
- package/dist/chunks/{NcBreadcrumbs-jPvP6Cmo.mjs.map → NcBreadcrumbs-DtBCo9yI.mjs.map} +1 -1
- package/dist/chunks/NcButton-Byg8-ta1.mjs +102 -0
- package/dist/chunks/NcButton-Byg8-ta1.mjs.map +1 -0
- package/dist/chunks/{NcCheckboxRadioSwitch-CWU_M_ui.mjs → NcCheckboxRadioSwitch-DrNlVZw8.mjs} +29 -27
- package/dist/chunks/NcCheckboxRadioSwitch-DrNlVZw8.mjs.map +1 -0
- package/dist/chunks/{NcChip-C3U2HYR9.mjs → NcChip-Cq8DrWKb.mjs} +5 -5
- package/dist/chunks/{NcChip-C3U2HYR9.mjs.map → NcChip-Cq8DrWKb.mjs.map} +1 -1
- package/dist/chunks/{NcCollectionList-BtHsipae.mjs → NcCollectionList-CFuwV9sI.mjs} +6 -6
- package/dist/chunks/{NcCollectionList-BtHsipae.mjs.map → NcCollectionList-CFuwV9sI.mjs.map} +1 -1
- package/dist/chunks/{NcColorPicker-BI-Is4nj.mjs → NcColorPicker-Clo5oIYN.mjs} +5 -5
- package/dist/chunks/{NcColorPicker-BI-Is4nj.mjs.map → NcColorPicker-Clo5oIYN.mjs.map} +1 -1
- package/dist/chunks/{NcContent-BcF6f3N-.mjs → NcContent-CUuf0HwJ.mjs} +4 -4
- package/dist/chunks/{NcContent-BcF6f3N-.mjs.map → NcContent-CUuf0HwJ.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidget-1rVqTzgV.mjs → NcDashboardWidget-CXw7Hxc8.mjs} +4 -4
- package/dist/chunks/{NcDashboardWidget-1rVqTzgV.mjs.map → NcDashboardWidget-CXw7Hxc8.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidgetItem-7RXY5EKJ.mjs → NcDashboardWidgetItem-C6GoJEri.mjs} +4 -4
- package/dist/chunks/{NcDashboardWidgetItem-7RXY5EKJ.mjs.map → NcDashboardWidgetItem-C6GoJEri.mjs.map} +1 -1
- package/dist/chunks/{NcDateTime.vue_vue_type_script_setup_true_lang-DtP-oauZ.mjs → NcDateTime.vue_vue_type_script_setup_true_lang-BYXau4sd.mjs} +2 -2
- package/dist/chunks/{NcDateTime.vue_vue_type_script_setup_true_lang-DtP-oauZ.mjs.map → NcDateTime.vue_vue_type_script_setup_true_lang-BYXau4sd.mjs.map} +1 -1
- package/dist/chunks/{NcDateTimePicker-BzfuHym4.mjs → NcDateTimePicker-CDFvxL3U.mjs} +79 -37
- package/dist/chunks/NcDateTimePicker-CDFvxL3U.mjs.map +1 -0
- package/dist/chunks/{NcDateTimePickerNative-Dake1IML.mjs → NcDateTimePickerNative-BRuMK89z.mjs} +2 -2
- package/dist/chunks/{NcDateTimePickerNative-Dake1IML.mjs.map → NcDateTimePickerNative-BRuMK89z.mjs.map} +1 -1
- package/dist/chunks/{NcDialog-_pc2BPHU.mjs → NcDialog-BX0IET9Y.mjs} +7 -7
- package/dist/chunks/NcDialog-BX0IET9Y.mjs.map +1 -0
- package/dist/chunks/NcDialogButton.vue_vue_type_script_setup_true_lang-DbzPc_gW.mjs +69 -0
- package/dist/chunks/NcDialogButton.vue_vue_type_script_setup_true_lang-DbzPc_gW.mjs.map +1 -0
- package/dist/chunks/{NcEmojiPicker-CWbez_of.mjs → NcEmojiPicker-C30Ofq8B.mjs} +7 -7
- package/dist/chunks/{NcEmojiPicker-CWbez_of.mjs.map → NcEmojiPicker-C30Ofq8B.mjs.map} +1 -1
- package/dist/chunks/{NcHeaderButton-BsstEWtv.mjs → NcHeaderButton-BXfTpkIm.mjs} +4 -4
- package/dist/chunks/{NcHeaderButton-BsstEWtv.mjs.map → NcHeaderButton-BXfTpkIm.mjs.map} +1 -1
- package/dist/chunks/{NcHeaderMenu-ZzoCwPvX.mjs → NcHeaderMenu-CEH_-KT_.mjs} +5 -5
- package/dist/chunks/{NcHeaderMenu-ZzoCwPvX.mjs.map → NcHeaderMenu-CEH_-KT_.mjs.map} +1 -1
- package/dist/chunks/{NcIconSvgWrapper-BYTrkA66.mjs → NcIconSvgWrapper-Bc3ogp8T.mjs} +34 -21
- package/dist/chunks/NcIconSvgWrapper-Bc3ogp8T.mjs.map +1 -0
- package/dist/chunks/{NcInputConfirmCancel-CX56m05a.mjs → NcInputConfirmCancel-DeWD9uc6.mjs} +3 -3
- package/dist/chunks/{NcInputConfirmCancel-CX56m05a.mjs.map → NcInputConfirmCancel-DeWD9uc6.mjs.map} +1 -1
- package/dist/chunks/{NcInputField-DdZlDVwQ.mjs → NcInputField-BBS1E7r-.mjs} +2 -2
- package/dist/chunks/{NcInputField-DdZlDVwQ.mjs.map → NcInputField-BBS1E7r-.mjs.map} +1 -1
- package/dist/chunks/{NcListItem-DF8Yv05m.mjs → NcListItem-CVX52kG-.mjs} +2 -2
- package/dist/chunks/{NcListItem-DF8Yv05m.mjs.map → NcListItem-CVX52kG-.mjs.map} +1 -1
- package/dist/chunks/{NcListItemIcon-nzw_x2Q5.mjs → NcListItemIcon-Cc6vXRrY.mjs} +4 -4
- package/dist/chunks/{NcListItemIcon-nzw_x2Q5.mjs.map → NcListItemIcon-Cc6vXRrY.mjs.map} +1 -1
- package/dist/chunks/{NcMentionBubble.vue_vue_type_style_index_0_scoped_6c8d0da9_lang-DYJMHclV.mjs → NcMentionBubble.vue_vue_type_style_index_0_scoped_5b8f093f_lang-DZbkIMTW.mjs} +2 -2
- package/dist/chunks/{NcMentionBubble.vue_vue_type_style_index_0_scoped_6c8d0da9_lang-DYJMHclV.mjs.map → NcMentionBubble.vue_vue_type_style_index_0_scoped_5b8f093f_lang-DZbkIMTW.mjs.map} +1 -1
- package/dist/chunks/{NcPasswordField-BnnlEhT1.mjs → NcPasswordField-CYPRKGml.mjs} +3 -3
- package/dist/chunks/{NcPasswordField-BnnlEhT1.mjs.map → NcPasswordField-CYPRKGml.mjs.map} +1 -1
- package/dist/chunks/{NcPopover-C3ZoyUjc.mjs → NcPopover-EPnt2iHh.mjs} +152 -26
- package/dist/chunks/NcPopover-EPnt2iHh.mjs.map +1 -0
- package/dist/chunks/{NcRelatedResourcesPanel-D2YLEouH.mjs → NcRelatedResourcesPanel-Bcy58V31.mjs} +4 -4
- package/dist/chunks/{NcRelatedResourcesPanel-D2YLEouH.mjs.map → NcRelatedResourcesPanel-Bcy58V31.mjs.map} +1 -1
- package/dist/chunks/{NcRichContenteditable-B16VJW0Y.mjs → NcRichContenteditable-BR08SbpA.mjs} +209 -44
- package/dist/chunks/NcRichContenteditable-BR08SbpA.mjs.map +1 -0
- package/dist/chunks/{NcRichText-4jIBSmap.mjs → NcRichText-jZif8PdV.mjs} +8 -8
- package/dist/chunks/{NcRichText-4jIBSmap.mjs.map → NcRichText-jZif8PdV.mjs.map} +1 -1
- package/dist/chunks/NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang-DlRBo3QU.mjs +58 -0
- package/dist/chunks/NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang-DlRBo3QU.mjs.map +1 -0
- package/dist/chunks/{NcSelect-CAx_ixPU.mjs → NcSelect-BkTH-Yqm.mjs} +25 -68
- package/dist/chunks/NcSelect-BkTH-Yqm.mjs.map +1 -0
- package/dist/chunks/{NcSelectTags-UXzC7lDz.mjs → NcSelectTags-BY8LM7qV.mjs} +3 -3
- package/dist/chunks/{NcSelectTags-UXzC7lDz.mjs.map → NcSelectTags-BY8LM7qV.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsInputText-BEHu3xAI.mjs → NcSettingsInputText-B129n9sr.mjs} +3 -3
- package/dist/chunks/{NcSettingsInputText-BEHu3xAI.mjs.map → NcSettingsInputText-B129n9sr.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSection-X7f0W7vZ.mjs → NcSettingsSection-CjWtq7TT.mjs} +2 -2
- package/dist/chunks/{NcSettingsSection-X7f0W7vZ.mjs.map → NcSettingsSection-CjWtq7TT.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-DfrKchOy.mjs → NcSettingsSelectGroup-B8uq0KIw.mjs} +4 -4
- package/dist/chunks/{NcSettingsSelectGroup-DfrKchOy.mjs.map → NcSettingsSelectGroup-B8uq0KIw.mjs.map} +1 -1
- package/dist/chunks/{NcTextField-BTzKCPza.mjs → NcTextField-KGXtf7Y6.mjs} +4 -4
- package/dist/chunks/{NcTextField-BTzKCPza.mjs.map → NcTextField-KGXtf7Y6.mjs.map} +1 -1
- package/dist/chunks/NcTimezonePicker.vue_vue_type_script_setup_true_lang-DxoB-jLa.mjs +98 -0
- package/dist/chunks/NcTimezonePicker.vue_vue_type_script_setup_true_lang-DxoB-jLa.mjs.map +1 -0
- package/dist/chunks/{NcUserBubble-Dgzog0Ps.mjs → NcUserBubble-qqRewR9C.mjs} +3 -3
- package/dist/chunks/{NcUserBubble-Dgzog0Ps.mjs.map → NcUserBubble-qqRewR9C.mjs.map} +1 -1
- package/dist/chunks/{NcUserStatusIcon-DvYiEs2L.mjs → NcUserStatusIcon-DpZVD4HJ.mjs} +3 -3
- package/dist/chunks/{NcUserStatusIcon-DvYiEs2L.mjs.map → NcUserStatusIcon-DpZVD4HJ.mjs.map} +1 -1
- package/dist/chunks/{ScopeComponent-BWZEma4R.mjs → ScopeComponent-BIpNSmeE.mjs} +2 -2
- package/dist/chunks/{ScopeComponent-BWZEma4R.mjs.map → ScopeComponent-BIpNSmeE.mjs.map} +1 -1
- package/dist/chunks/{_l10n-7kR7gXFc.mjs → _l10n-BNGeEX3W.mjs} +58 -62
- package/dist/chunks/_l10n-BNGeEX3W.mjs.map +1 -0
- package/dist/chunks/{colors-BJbWzaQ-.mjs → colors-CSUSQx1k.mjs} +2 -2
- package/dist/chunks/{colors-BJbWzaQ-.mjs.map → colors-CSUSQx1k.mjs.map} +1 -1
- package/dist/chunks/{referencePickerModal-BpNnwC_g.mjs → referencePickerModal-DzM7CkKN.mjs} +6 -6
- package/dist/chunks/{referencePickerModal-BpNnwC_g.mjs.map → referencePickerModal-DzM7CkKN.mjs.map} +1 -1
- package/dist/chunks/{useFormatDateTime-B5sWtJdj.mjs → useFormatDateTime-BPGWjR3-.mjs} +2 -2
- package/dist/chunks/{useFormatDateTime-B5sWtJdj.mjs.map → useFormatDateTime-BPGWjR3-.mjs.map} +1 -1
- package/dist/chunks/{usernameToColor-CzXWY0j4.mjs → usernameToColor-Bl9NGU_9.mjs} +2 -2
- package/dist/chunks/{usernameToColor-CzXWY0j4.mjs.map → usernameToColor-Bl9NGU_9.mjs.map} +1 -1
- package/dist/components/NcActionButton/NcActionButton.vue.d.ts +3 -3
- package/dist/components/NcActionButton/index.mjs +1 -1
- package/dist/components/NcActionButtonGroup/index.mjs +1 -1
- package/dist/components/NcActionCheckbox/NcActionCheckbox.vue.d.ts +2 -2
- package/dist/components/NcActionCheckbox/index.mjs +1 -1
- package/dist/components/NcActionInput/index.mjs +1 -1
- package/dist/components/NcActionLink/index.mjs +1 -1
- package/dist/components/NcActionRadio/NcActionRadio.vue.d.ts +2 -2
- package/dist/components/NcActionRadio/index.mjs +1 -1
- package/dist/components/NcActionRouter/NcActionRouter.vue.d.ts +2 -2
- package/dist/components/NcActionRouter/index.mjs +1 -1
- package/dist/components/NcActionText/index.mjs +1 -1
- package/dist/components/NcActionTextEditable/NcActionTextEditable.vue.d.ts +2 -2
- package/dist/components/NcActionTextEditable/index.mjs +1 -1
- package/dist/components/NcActions/index.mjs +1 -1
- package/dist/components/NcAppContent/index.mjs +1 -1
- package/dist/components/NcAppNavigation/index.mjs +1 -1
- package/dist/components/NcAppNavigationCaption/index.mjs +1 -1
- package/dist/components/NcAppNavigationItem/index.mjs +1 -1
- package/dist/components/NcAppNavigationNew/index.mjs +1 -1
- package/dist/components/NcAppNavigationNewItem/index.mjs +1 -1
- package/dist/components/NcAppNavigationSearch/index.mjs +1 -1
- package/dist/components/NcAppNavigationSettings/NcAppNavigationSettings.vue.d.ts +3 -10
- package/dist/components/NcAppNavigationSettings/index.mjs +1 -1
- package/dist/components/NcAppNavigationToggle/index.mjs +1 -1
- package/dist/components/NcAppSettingsDialog/index.mjs +1 -1
- package/dist/components/NcAppSidebar/index.mjs +1 -1
- package/dist/components/NcAppSidebarTab/NcAppSidebarTab.vue.d.ts +1 -1
- package/dist/components/NcAvatar/index.mjs +1 -1
- package/dist/components/NcBlurHash/NcBlurHash.vue.d.ts +6 -13
- package/dist/components/NcBreadcrumb/index.mjs +1 -1
- package/dist/components/NcBreadcrumbs/index.mjs +1 -1
- package/dist/components/NcButton/NcButton.vue.d.ts +102 -238
- package/dist/components/NcButton/index.d.ts +2 -2
- package/dist/components/NcButton/index.mjs +1 -4
- package/dist/components/NcCheckboxRadioSwitch/index.mjs +1 -1
- package/dist/components/NcChip/NcChip.vue.d.ts +3 -32
- package/dist/components/NcChip/index.mjs +1 -1
- package/dist/components/NcCollectionList/index.mjs +1 -1
- package/dist/components/NcColorPicker/index.mjs +1 -1
- package/dist/components/NcContent/index.mjs +1 -1
- package/dist/components/NcCounterBubble/NcCounterBubble.vue.d.ts +1 -1
- package/dist/components/NcDashboardWidget/index.mjs +1 -1
- package/dist/components/NcDashboardWidgetItem/index.mjs +1 -1
- package/dist/components/NcDateTime/NcDateTime.vue.d.ts +2 -31
- package/dist/components/NcDateTime/index.mjs +1 -1
- package/dist/components/NcDateTimePicker/NcDateTimePicker.vue.d.ts +49 -60
- package/dist/components/NcDateTimePicker/index.mjs +1 -1
- package/dist/components/NcDateTimePickerNative/index.mjs +1 -1
- package/dist/components/NcDialog/NcDialog.vue.d.ts +58 -132
- package/dist/components/NcDialog/index.mjs +1 -1
- package/dist/components/NcDialogButton/NcDialogButton.vue.d.ts +34 -110
- package/dist/components/NcDialogButton/index.mjs +1 -1
- package/dist/components/NcEmojiPicker/index.mjs +1 -1
- package/dist/components/NcHeaderButton/NcHeaderButton.vue.d.ts +4 -13
- package/dist/components/NcHeaderButton/index.mjs +1 -1
- package/dist/components/NcHeaderMenu/index.mjs +1 -1
- package/dist/components/NcIconSvgWrapper/NcIconSvgWrapper.vue.d.ts +20 -11
- package/dist/components/NcIconSvgWrapper/index.mjs +1 -1
- package/dist/components/NcInputField/index.mjs +1 -1
- package/dist/components/NcListItem/index.mjs +1 -1
- package/dist/components/NcListItemIcon/index.mjs +1 -1
- package/dist/components/NcLoadingIcon/NcLoadingIcon.vue.d.ts +1 -1
- package/dist/components/NcModal/index.mjs +52 -48
- package/dist/components/NcModal/index.mjs.map +1 -1
- package/dist/components/NcPasswordField/index.mjs +1 -1
- package/dist/components/NcPopover/index.mjs +1 -1
- package/dist/components/NcRelatedResourcesPanel/index.mjs +1 -1
- package/dist/components/NcRichContenteditable/NcAutoCompleteResult.vue.d.ts +2 -2
- package/dist/components/NcRichContenteditable/NcMentionBubble.vue.d.ts +2 -2
- package/dist/components/NcRichContenteditable/NcRichContenteditable.vue.d.ts +347 -0
- package/dist/components/NcRichContenteditable/index.mjs +3 -4
- package/dist/components/NcRichContenteditable/index.mjs.map +1 -1
- package/dist/components/NcRichText/NcReferencePicker/NcProviderList.vue.d.ts +194 -0
- package/dist/components/NcRichText/NcReferencePicker/NcSearch.vue.d.ts +268 -0
- package/dist/components/NcRichText/index.mjs +3 -3
- package/dist/components/NcSavingIndicatorIcon/NcSavingIndicatorIcon.vue.d.ts +13 -56
- package/dist/components/NcSavingIndicatorIcon/index.d.ts +4 -0
- package/dist/components/NcSavingIndicatorIcon/index.mjs +2 -2
- package/dist/components/NcSelect/NcSelect.vue.d.ts +121 -0
- package/dist/components/NcSelect/index.mjs +1 -1
- package/dist/components/NcSelectTags/NcSelectTags.vue.d.ts +205 -0
- package/dist/components/NcSelectTags/index.mjs +1 -1
- package/dist/components/NcSelectUsers/NcSelectUsers.vue.d.ts +117 -0
- package/dist/components/NcSelectUsers/index.d.ts +5 -0
- package/dist/components/NcSelectUsers/index.mjs +73 -0
- package/dist/components/NcSelectUsers/index.mjs.map +1 -0
- package/dist/components/NcSettingsInputText/NcSettingsInputText.vue.d.ts +3 -3
- package/dist/components/NcSettingsInputText/index.mjs +1 -1
- package/dist/components/NcSettingsSection/index.mjs +1 -1
- package/dist/components/NcSettingsSelectGroup/NcSettingsSelectGroup.vue.d.ts +265 -0
- package/dist/components/NcSettingsSelectGroup/index.mjs +1 -1
- package/dist/components/NcTextArea/NcTextArea.vue.d.ts +6 -6
- package/dist/components/NcTextField/index.mjs +1 -1
- package/dist/components/NcTimezonePicker/NcTimezonePicker.vue.d.ts +23 -0
- package/dist/components/NcTimezonePicker/index.d.ts +5 -0
- package/dist/components/NcTimezonePicker/index.mjs +2 -2
- package/dist/components/NcTimezonePicker/timezoneDataProviderService.d.ts +5 -1
- package/dist/components/NcUserBubble/index.mjs +1 -1
- package/dist/components/NcUserStatusIcon/index.mjs +1 -1
- package/dist/components/index.d.ts +2 -2
- package/dist/directives/index.d.ts +0 -1
- package/dist/functions/contactsMenu/index.d.ts +40 -0
- package/dist/functions/contactsMenu/index.mjs +22 -0
- package/dist/functions/contactsMenu/index.mjs.map +1 -0
- package/dist/functions/dialog/index.d.ts +22 -13
- package/dist/functions/dialog/index.mjs +27 -18
- package/dist/functions/dialog/index.mjs.map +1 -1
- package/dist/functions/index.d.ts +1 -0
- package/dist/functions/reference/index.mjs +1 -1
- package/dist/functions/usernameToColor/index.mjs +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.mjs +86 -89
- package/dist/index.mjs.map +1 -1
- package/package.json +20 -12
- package/dist/assets/NcDateTimePicker-AIJmp5dC.css +0 -81
- package/dist/assets/index-DQ4Plm4r.css +0 -89
- package/dist/chunks/ChevronLeft-FfC-tiIS.mjs +0 -49
- package/dist/chunks/ChevronLeft-FfC-tiIS.mjs.map +0 -1
- package/dist/chunks/NcActionButton-BdQ_qmvW.mjs.map +0 -1
- package/dist/chunks/NcActionTextEditable-nTbwgRy2.mjs.map +0 -1
- package/dist/chunks/NcActions-CgKHXNbF.mjs.map +0 -1
- package/dist/chunks/NcAppContent-C4gBVRQs.mjs.map +0 -1
- package/dist/chunks/NcAvatar-CA8y4d-c.mjs.map +0 -1
- package/dist/chunks/NcButton-BHLqKKYP.mjs +0 -308
- package/dist/chunks/NcButton-BHLqKKYP.mjs.map +0 -1
- package/dist/chunks/NcCheckboxRadioSwitch-CWU_M_ui.mjs.map +0 -1
- package/dist/chunks/NcDateTimePicker-BzfuHym4.mjs.map +0 -1
- package/dist/chunks/NcDialog-_pc2BPHU.mjs.map +0 -1
- package/dist/chunks/NcDialogButton.vue_vue_type_script_setup_true_lang-BKrJ_xd8.mjs +0 -119
- package/dist/chunks/NcDialogButton.vue_vue_type_script_setup_true_lang-BKrJ_xd8.mjs.map +0 -1
- package/dist/chunks/NcIconSvgWrapper-BYTrkA66.mjs.map +0 -1
- package/dist/chunks/NcPopover-C3ZoyUjc.mjs.map +0 -1
- package/dist/chunks/NcRichContenteditable-B16VJW0Y.mjs.map +0 -1
- package/dist/chunks/NcSavingIndicatorIcon-icWy8J5x.mjs +0 -80
- package/dist/chunks/NcSavingIndicatorIcon-icWy8J5x.mjs.map +0 -1
- package/dist/chunks/NcSelect-CAx_ixPU.mjs.map +0 -1
- package/dist/chunks/NcTimezonePicker-CMoUk4sZ.mjs +0 -188
- package/dist/chunks/NcTimezonePicker-CMoUk4sZ.mjs.map +0 -1
- package/dist/chunks/_l10n-7kR7gXFc.mjs.map +0 -1
- package/dist/chunks/index--u6iHwFv.mjs +0 -184
- package/dist/chunks/index--u6iHwFv.mjs.map +0 -1
- package/dist/components/NcActions/NcActions.vue.d.ts +0 -544
- package/dist/components/NcAppNavigation/NcAppNavigation.vue.d.ts +0 -215
- package/dist/components/NcAppNavigationCaption/NcAppNavigationCaption.vue.d.ts +0 -379
- package/dist/components/NcAppNavigationItem/NcAppNavigationIconCollapsible.vue.d.ts +0 -161
- package/dist/components/NcAppNavigationItem/NcAppNavigationItem.vue.d.ts +0 -1310
- package/dist/components/NcAppNavigationItem/NcInputConfirmCancel.vue.d.ts +0 -195
- package/dist/components/NcAppNavigationNew/NcAppNavigationNew.vue.d.ts +0 -195
- package/dist/components/NcAppNavigationNewItem/NcAppNavigationNewItem.vue.d.ts +0 -316
- package/dist/components/NcAppNavigationSearch/NcAppNavigationSearch.vue.d.ts +0 -389
- package/dist/components/NcAppNavigationToggle/NcAppNavigationToggle.vue.d.ts +0 -173
- package/dist/components/NcBreadcrumb/NcBreadcrumb.vue.d.ts +0 -717
- package/dist/components/NcBreadcrumbs/NcBreadcrumbs.vue.d.ts +0 -1330
- package/dist/components/NcButton/types.d.ts +0 -30
- package/dist/components/NcContent/NcContent.vue.d.ts +0 -227
- package/dist/components/NcEmojiPicker/NcEmojiPicker.vue.d.ts +0 -642
- package/dist/components/NcHeaderMenu/NcHeaderMenu.vue.d.ts +0 -245
- package/dist/components/NcInputField/NcInputField.vue.d.ts +0 -419
- package/dist/components/NcListItem/NcListItem.vue.d.ts +0 -714
- package/dist/components/NcRelatedResourcesPanel/NcRelatedResourcesPanel.vue.d.ts +0 -553
- package/dist/components/NcRelatedResourcesPanel/NcResource.vue.d.ts +0 -173
- package/dist/components/NcRelatedResourcesPanel/NcTeamResources.vue.d.ts +0 -241
- package/dist/components/NcRichText/NcReferenceList.vue.d.ts +0 -292
- package/dist/components/NcRichText/NcReferencePicker/NcRawLinkInput.vue.d.ts +0 -606
- package/dist/components/NcRichText/NcReferenceWidget.vue.d.ts +0 -211
- package/dist/components/NcRichText/NcRichText.vue.d.ts +0 -409
- package/dist/components/NcTextField/NcTextField.vue.d.ts +0 -314
- package/dist/components/NcTimezonePicker/timezone.d.ts +0 -14
- package/dist/directives/Tooltip/index.d.ts +0 -3
- package/dist/directives/Tooltip/index.mjs +0 -12
- package/dist/directives/Tooltip/index.mjs.map +0 -1
- package/dist/mixins/richEditor/index.mjs +0 -10
- package/dist/mixins/richEditor/index.mjs.map +0 -1
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
import { r as register, p as t25, a as t, q as t40 } from "./_l10n-7kR7gXFc.mjs";
|
|
2
|
-
import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
|
|
3
|
-
import { getTimezoneManager as getTimezoneManager$1 } from "@nextcloud/timezones";
|
|
4
|
-
import { N as NcSelect } from "./NcSelect-CAx_ixPU.mjs";
|
|
5
|
-
import { resolveComponent, createBlock, openBlock } from "vue";
|
|
6
|
-
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
7
|
-
register(t25);
|
|
8
|
-
function getSortedTimezoneList(timezoneList = [], additionalTimezones = []) {
|
|
9
|
-
const sortedByContinent = {};
|
|
10
|
-
const sortedList = [];
|
|
11
|
-
for (const timezoneId of timezoneList) {
|
|
12
|
-
const components = timezoneId.split("/");
|
|
13
|
-
let [continent, name] = [components.shift(), components.join("/")];
|
|
14
|
-
if (!name) {
|
|
15
|
-
name = continent;
|
|
16
|
-
continent = t("Global");
|
|
17
|
-
}
|
|
18
|
-
sortedByContinent[continent] = sortedByContinent[continent] || {
|
|
19
|
-
continent,
|
|
20
|
-
regions: []
|
|
21
|
-
};
|
|
22
|
-
sortedByContinent[continent].regions.push({
|
|
23
|
-
label: getReadableTimezoneName(name),
|
|
24
|
-
cities: [],
|
|
25
|
-
timezoneId
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
for (const additionalTimezone of additionalTimezones) {
|
|
29
|
-
const { continent, label, timezoneId } = additionalTimezone;
|
|
30
|
-
sortedByContinent[continent] = sortedByContinent[continent] || {
|
|
31
|
-
continent,
|
|
32
|
-
regions: []
|
|
33
|
-
};
|
|
34
|
-
sortedByContinent[continent].regions.push({
|
|
35
|
-
label,
|
|
36
|
-
cities: [],
|
|
37
|
-
timezoneId
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
for (const continent in sortedByContinent) {
|
|
41
|
-
if (!Object.prototype.hasOwnProperty.call(sortedByContinent, continent)) {
|
|
42
|
-
continue;
|
|
43
|
-
}
|
|
44
|
-
sortedByContinent[continent].regions.sort((a, b) => {
|
|
45
|
-
if (a.label < b.label) {
|
|
46
|
-
return -1;
|
|
47
|
-
}
|
|
48
|
-
return 1;
|
|
49
|
-
});
|
|
50
|
-
sortedList.push(sortedByContinent[continent]);
|
|
51
|
-
}
|
|
52
|
-
sortedList.sort((a, b) => {
|
|
53
|
-
if (a.continent < b.continent) {
|
|
54
|
-
return -1;
|
|
55
|
-
}
|
|
56
|
-
return 1;
|
|
57
|
-
});
|
|
58
|
-
return sortedList;
|
|
59
|
-
}
|
|
60
|
-
function getReadableTimezoneName(timezoneId) {
|
|
61
|
-
return timezoneId.split("_").join(" ").replace("St ", "St. ").split("/").join(" - ");
|
|
62
|
-
}
|
|
63
|
-
register(t40);
|
|
64
|
-
const timezoneManager = getTimezoneManager$1();
|
|
65
|
-
let initialized = false;
|
|
66
|
-
function getTimezoneManager() {
|
|
67
|
-
if (!initialized) {
|
|
68
|
-
timezoneManager.registerDefaultTimezones();
|
|
69
|
-
initialized = true;
|
|
70
|
-
}
|
|
71
|
-
return timezoneManager;
|
|
72
|
-
}
|
|
73
|
-
const _sfc_main = {
|
|
74
|
-
name: "NcTimezonePicker",
|
|
75
|
-
components: {
|
|
76
|
-
NcSelect
|
|
77
|
-
},
|
|
78
|
-
props: {
|
|
79
|
-
/**
|
|
80
|
-
* An array of additional timezones to include with the standard database. Useful if there is a custom timezone, e.g. read from user data
|
|
81
|
-
*/
|
|
82
|
-
additionalTimezones: {
|
|
83
|
-
type: Array,
|
|
84
|
-
default: () => []
|
|
85
|
-
},
|
|
86
|
-
/**
|
|
87
|
-
* The selected timezone. Use v-model for two-way binding. The default timezone is floating, which means a time independent of timezone. See https://icalendar.org/CalDAV-Access-RFC-4791/7-3-date-and-floating-time.html for details.
|
|
88
|
-
*/
|
|
89
|
-
modelValue: {
|
|
90
|
-
type: String,
|
|
91
|
-
default: "floating"
|
|
92
|
-
},
|
|
93
|
-
/**
|
|
94
|
-
* ID of the inner vue-select element, can be used for labels like: `vs-${uid}__combobox`
|
|
95
|
-
*/
|
|
96
|
-
uid: {
|
|
97
|
-
type: [String, Number],
|
|
98
|
-
default: () => createElementId()
|
|
99
|
-
}
|
|
100
|
-
},
|
|
101
|
-
emits: ["update:modelValue"],
|
|
102
|
-
computed: {
|
|
103
|
-
placeholder() {
|
|
104
|
-
return t("Type to search time zone");
|
|
105
|
-
},
|
|
106
|
-
selectedTimezone() {
|
|
107
|
-
for (const additionalTimezone of this.additionalTimezones) {
|
|
108
|
-
if (additionalTimezone.timezoneId === this.modelValue) {
|
|
109
|
-
return additionalTimezone;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
return {
|
|
113
|
-
label: getReadableTimezoneName(this.modelValue),
|
|
114
|
-
timezoneId: this.modelValue
|
|
115
|
-
};
|
|
116
|
-
},
|
|
117
|
-
options() {
|
|
118
|
-
const timezoneManager2 = getTimezoneManager();
|
|
119
|
-
const timezoneList = getSortedTimezoneList(timezoneManager2.listAllTimezones(), this.additionalTimezones);
|
|
120
|
-
let timezonesGrouped = [];
|
|
121
|
-
Object.values(timezoneList).forEach((group) => {
|
|
122
|
-
timezonesGrouped = timezonesGrouped.concat(group.regions);
|
|
123
|
-
});
|
|
124
|
-
return timezonesGrouped;
|
|
125
|
-
}
|
|
126
|
-
},
|
|
127
|
-
methods: {
|
|
128
|
-
t,
|
|
129
|
-
change(newValue) {
|
|
130
|
-
if (!newValue) {
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
this.$emit("update:modelValue", newValue.timezoneId);
|
|
134
|
-
},
|
|
135
|
-
/**
|
|
136
|
-
* Returns whether this is a continent label,
|
|
137
|
-
* or an actual timezone. Continent labels are not selectable.
|
|
138
|
-
*
|
|
139
|
-
* @param {string} option The option
|
|
140
|
-
* @return {boolean}
|
|
141
|
-
*/
|
|
142
|
-
isSelectable(option) {
|
|
143
|
-
return !option.timezoneId.startsWith("tz-group__");
|
|
144
|
-
},
|
|
145
|
-
/**
|
|
146
|
-
* Function to filter the timezone list.
|
|
147
|
-
* We search in the timezoneId, so both continent and region names can be matched.
|
|
148
|
-
*
|
|
149
|
-
* @param {object} option The timezone option
|
|
150
|
-
* @param {string} label The label of the timezone
|
|
151
|
-
* @param {string} search The search string
|
|
152
|
-
* @return {boolean}
|
|
153
|
-
*/
|
|
154
|
-
filterBy(option, label, search) {
|
|
155
|
-
const terms = search.trim().split(" ");
|
|
156
|
-
if (option.timezoneId.startsWith("tz-group__")) {
|
|
157
|
-
return option.regions.some((region) => {
|
|
158
|
-
return this.matchTimezoneId(region.timezoneId, terms);
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
return this.matchTimezoneId(option.timezoneId, terms);
|
|
162
|
-
},
|
|
163
|
-
matchTimezoneId(timezoneId, terms) {
|
|
164
|
-
return terms.every((term) => timezoneId.toLowerCase().includes(term.toLowerCase()));
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
};
|
|
168
|
-
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
169
|
-
const _component_NcSelect = resolveComponent("NcSelect");
|
|
170
|
-
return openBlock(), createBlock(_component_NcSelect, {
|
|
171
|
-
"aria-label-combobox": $options.t("Search for timezone"),
|
|
172
|
-
clearable: false,
|
|
173
|
-
"filter-by": $options.filterBy,
|
|
174
|
-
"model-value": $options.selectedTimezone,
|
|
175
|
-
multiple: false,
|
|
176
|
-
options: $options.options,
|
|
177
|
-
placeholder: $options.placeholder,
|
|
178
|
-
selectable: $options.isSelectable,
|
|
179
|
-
uid: $props.uid,
|
|
180
|
-
label: "label",
|
|
181
|
-
"onOption:selected": $options.change
|
|
182
|
-
}, null, 8, ["aria-label-combobox", "filter-by", "model-value", "options", "placeholder", "selectable", "uid", "onOption:selected"]);
|
|
183
|
-
}
|
|
184
|
-
const NcTimezonePicker = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
|
185
|
-
export {
|
|
186
|
-
NcTimezonePicker as N
|
|
187
|
-
};
|
|
188
|
-
//# sourceMappingURL=NcTimezonePicker-CMoUk4sZ.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NcTimezonePicker-CMoUk4sZ.mjs","sources":["../../src/components/NcTimezonePicker/timezone.js","../../src/components/NcTimezonePicker/timezoneDataProviderService.js","../../src/components/NcTimezonePicker/NcTimezonePicker.vue"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '../../l10n.js'\n\n/**\n *\n * @param {string[]} timezoneList List of Olsen timezones\n * @param {Array} additionalTimezones List of additional timezones\n * @return {Array}\n */\nexport function getSortedTimezoneList(timezoneList = [], additionalTimezones = []) {\n\tconst sortedByContinent = {}\n\tconst sortedList = []\n\n\tfor (const timezoneId of timezoneList) {\n\t\tconst components = timezoneId.split('/')\n\t\tlet [continent, name] = [components.shift(), components.join('/')]\n\t\tif (!name) {\n\t\t\tname = continent\n\t\t\t// TRANSLATORS This refers to global timezones in the timezone picker\n\t\t\tcontinent = t('Global')\n\t\t}\n\n\t\tsortedByContinent[continent] = sortedByContinent[continent] || {\n\t\t\tcontinent,\n\t\t\tregions: [],\n\t\t}\n\n\t\tsortedByContinent[continent].regions.push({\n\t\t\tlabel: getReadableTimezoneName(name),\n\t\t\tcities: [],\n\t\t\ttimezoneId,\n\t\t})\n\t}\n\n\tfor (const additionalTimezone of additionalTimezones) {\n\t\tconst { continent, label, timezoneId } = additionalTimezone\n\n\t\tsortedByContinent[continent] = sortedByContinent[continent] || {\n\t\t\tcontinent,\n\t\t\tregions: [],\n\t\t}\n\n\t\tsortedByContinent[continent].regions.push({\n\t\t\tlabel,\n\t\t\tcities: [],\n\t\t\ttimezoneId,\n\t\t})\n\t}\n\n\tfor (const continent in sortedByContinent) {\n\t\tif (!Object.prototype.hasOwnProperty.call(sortedByContinent, continent)) {\n\t\t\tcontinue\n\t\t}\n\n\t\tsortedByContinent[continent].regions.sort((a, b) => {\n\t\t\tif (a.label < b.label) {\n\t\t\t\treturn -1\n\t\t\t}\n\n\t\t\treturn 1\n\t\t})\n\t\tsortedList.push(sortedByContinent[continent])\n\t}\n\n\t// Sort continents by name\n\tsortedList.sort((a, b) => {\n\t\tif (a.continent < b.continent) {\n\t\t\treturn -1\n\t\t}\n\n\t\treturn 1\n\t})\n\n\treturn sortedList\n}\n\n/**\n * Get human-readable name for timezoneId\n *\n * @param {string} timezoneId TimezoneId to turn human-readable\n * @return {string}\n */\nexport function getReadableTimezoneName(timezoneId) {\n\treturn timezoneId\n\t\t.split('_')\n\t\t.join(' ')\n\t\t.replace('St ', 'St. ')\n\t\t.split('/')\n\t\t.join(' - ')\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getTimezoneManager } from '@nextcloud/timezones'\n\nconst timezoneManager = getTimezoneManager()\nlet initialized = false\n\n/**\n * Gets the timezone-manager\n * initializes it if necessary\n *\n * @return {object}\n */\nexport default function() {\n\tif (!initialized) {\n\t\ttimezoneManager.registerDefaultTimezones()\n\t\tinitialized = true\n\t}\n\n\treturn timezoneManager\n}\n","<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Example\n```vue\n<template>\n\t<span>\n\t\t<NcTimezonePicker v-model=\"tz\" />\n\t\t{{ tz }}\n\t</span>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\ttz: 'Hawaiian Standard Time',\n\t\t}\n\t},\n}\n</script>\n```\n</docs>\n\n<template>\n\t<NcSelect :aria-label-combobox=\"t('Search for timezone')\"\n\t\t:clearable=\"false\"\n\t\t:filter-by=\"filterBy\"\n\t\t:model-value=\"selectedTimezone\"\n\t\t:multiple=\"false\"\n\t\t:options=\"options\"\n\t\t:placeholder=\"placeholder\"\n\t\t:selectable=\"isSelectable\"\n\t\t:uid=\"uid\"\n\t\tlabel=\"label\"\n\t\t@option:selected=\"change\" />\n</template>\n\n<script>\nimport {\n\tgetReadableTimezoneName,\n\tgetSortedTimezoneList,\n} from './timezone.js'\nimport { createElementId } from '../../utils/createElementId.ts'\nimport { t } from '../../l10n.js'\nimport getTimezoneManager from './timezoneDataProviderService.js'\nimport NcSelect from '../NcSelect/index.js'\n\nexport default {\n\tname: 'NcTimezonePicker',\n\tcomponents: {\n\t\tNcSelect,\n\t},\n\tprops: {\n\t\t/**\n\t\t * An array of additional timezones to include with the standard database. Useful if there is a custom timezone, e.g. read from user data\n\t\t */\n\t\tadditionalTimezones: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\t\t/**\n\t\t * The selected timezone. Use v-model for two-way binding. The default timezone is floating, which means a time independent of timezone. See https://icalendar.org/CalDAV-Access-RFC-4791/7-3-date-and-floating-time.html for details.\n\t\t */\n\t\tmodelValue: {\n\t\t\ttype: String,\n\t\t\tdefault: 'floating',\n\t\t},\n\t\t/**\n\t\t * ID of the inner vue-select element, can be used for labels like: `vs-${uid}__combobox`\n\t\t */\n\t\tuid: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: () => createElementId(),\n\t\t},\n\t},\n\temits: ['update:modelValue'],\n\tcomputed: {\n\t\tplaceholder() {\n\t\t\treturn t('Type to search time zone')\n\t\t},\n\t\tselectedTimezone() {\n\t\t\tfor (const additionalTimezone of this.additionalTimezones) {\n\t\t\t\tif (additionalTimezone.timezoneId === this.modelValue) {\n\t\t\t\t\treturn additionalTimezone\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tlabel: getReadableTimezoneName(this.modelValue),\n\t\t\t\ttimezoneId: this.modelValue,\n\t\t\t}\n\t\t},\n\t\toptions() {\n\t\t\tconst timezoneManager = getTimezoneManager()\n\t\t\tconst timezoneList = getSortedTimezoneList(timezoneManager.listAllTimezones(), this.additionalTimezones)\n\t\t\t/**\n\t\t\t * Since NcSelect does not support groups,\n\t\t\t * we create an object with the grouped timezones and continent labels.\n\t\t\t *\n\t\t\t * NOTE for now we are removing the grouping from the fields to fix an accessibility issue\n\t\t\t * in the future, other options can be introduced to better display the different areas\n\t\t\t */\n\t\t\tlet timezonesGrouped = []\n\t\t\tObject.values(timezoneList).forEach(group => {\n\t\t\t\t// Add an entry as group label\n\t\t\t\t// timezonesGrouped.push({\n\t\t\t\t// label: group.continent,\n\t\t\t\t// timezoneId: `tz-group__${group.continent}`,\n\t\t\t\t// regions: group.regions,\n\t\t\t\t// })\n\t\t\t\ttimezonesGrouped = timezonesGrouped.concat(group.regions)\n\t\t\t})\n\t\t\treturn timezonesGrouped\n\t\t},\n\t},\n\tmethods: {\n\t\tt,\n\n\t\tchange(newValue) {\n\t\t\tif (!newValue) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Two-way binding of the value prop. Use v-model=\"selectedTimezone\" for two-way binding\n\t\t\t */\n\t\t\tthis.$emit('update:modelValue', newValue.timezoneId)\n\t\t},\n\n\t\t/**\n\t\t * Returns whether this is a continent label,\n\t\t * or an actual timezone. Continent labels are not selectable.\n\t\t *\n\t\t * @param {string} option The option\n\t\t * @return {boolean}\n\t\t */\n\t\tisSelectable(option) {\n\t\t\treturn !option.timezoneId.startsWith('tz-group__')\n\t\t},\n\n\t\t/**\n\t\t * Function to filter the timezone list.\n\t\t * We search in the timezoneId, so both continent and region names can be matched.\n\t\t *\n\t\t * @param {object} option The timezone option\n\t\t * @param {string} label The label of the timezone\n\t\t * @param {string} search The search string\n\t\t * @return {boolean}\n\t\t */\n\t\tfilterBy(option, label, search) {\n\t\t\t// We split the search term in case one searches \"<continent> <region>\".\n\t\t\tconst terms = search.trim().split(' ')\n\n\t\t\t// For the continent labels, we have to check if one region matches every search term.\n\t\t\tif (option.timezoneId.startsWith('tz-group__')) {\n\t\t\t\treturn option.regions.some(region => {\n\t\t\t\t\treturn this.matchTimezoneId(region.timezoneId, terms)\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// For a region, every search term must be found.\n\t\t\treturn this.matchTimezoneId(option.timezoneId, terms)\n\t\t},\n\n\t\tmatchTimezoneId(timezoneId, terms) {\n\t\t\treturn terms.every(term => timezoneId.toLowerCase().includes(term.toLowerCase()))\n\t\t},\n\t},\n}\n</script>\n"],"names":["getTimezoneManager","timezoneManager","_createBlock"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_l10n-7kR7gXFc.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
import { g as getAvatarUrl } from "./NcMentionBubble.vue_vue_type_style_index_0_scoped_6c8d0da9_lang-DYJMHclV.mjs";
|
|
2
|
-
import { createElementBlock, openBlock, normalizeClass, createElementVNode, normalizeStyle, toDisplayString, createApp } from "vue";
|
|
3
|
-
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
4
|
-
import escapeHTML from "escape-html";
|
|
5
|
-
import stripTags from "striptags";
|
|
6
|
-
const _sfc_main = {
|
|
7
|
-
name: "NcMentionBubble",
|
|
8
|
-
props: {
|
|
9
|
-
id: {
|
|
10
|
-
type: String,
|
|
11
|
-
required: true
|
|
12
|
-
},
|
|
13
|
-
/**
|
|
14
|
-
* @deprecated Use `label` instead
|
|
15
|
-
*/
|
|
16
|
-
title: {
|
|
17
|
-
type: String,
|
|
18
|
-
required: false,
|
|
19
|
-
default: null
|
|
20
|
-
},
|
|
21
|
-
label: {
|
|
22
|
-
type: String,
|
|
23
|
-
required: false,
|
|
24
|
-
default: null
|
|
25
|
-
},
|
|
26
|
-
icon: {
|
|
27
|
-
type: String,
|
|
28
|
-
required: true
|
|
29
|
-
},
|
|
30
|
-
iconUrl: {
|
|
31
|
-
type: [String, null],
|
|
32
|
-
default: null
|
|
33
|
-
},
|
|
34
|
-
source: {
|
|
35
|
-
type: String,
|
|
36
|
-
required: true
|
|
37
|
-
},
|
|
38
|
-
primary: {
|
|
39
|
-
type: Boolean,
|
|
40
|
-
default: false
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
computed: {
|
|
44
|
-
avatarUrl() {
|
|
45
|
-
if (this.iconUrl) {
|
|
46
|
-
return this.iconUrl;
|
|
47
|
-
}
|
|
48
|
-
return this.id && this.source === "users" ? this.getAvatarUrl(this.id, 44) : null;
|
|
49
|
-
},
|
|
50
|
-
mentionText() {
|
|
51
|
-
return !this.id.includes(" ") && !this.id.includes("/") ? `@${this.id}` : `@"${this.id}"`;
|
|
52
|
-
},
|
|
53
|
-
// Fallback to title for compatibility
|
|
54
|
-
labelWithFallback() {
|
|
55
|
-
return this.label || this.title;
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
methods: {
|
|
59
|
-
getAvatarUrl
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
const _hoisted_1 = { class: "mention-bubble__wrapper" };
|
|
63
|
-
const _hoisted_2 = { class: "mention-bubble__content" };
|
|
64
|
-
const _hoisted_3 = ["title"];
|
|
65
|
-
const _hoisted_4 = {
|
|
66
|
-
role: "none",
|
|
67
|
-
class: "mention-bubble__select"
|
|
68
|
-
};
|
|
69
|
-
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
70
|
-
return openBlock(), createElementBlock("span", {
|
|
71
|
-
class: normalizeClass([{ "mention-bubble--primary": $props.primary }, "mention-bubble"]),
|
|
72
|
-
contenteditable: "false"
|
|
73
|
-
}, [
|
|
74
|
-
createElementVNode("span", _hoisted_1, [
|
|
75
|
-
createElementVNode("span", _hoisted_2, [
|
|
76
|
-
createElementVNode("span", {
|
|
77
|
-
class: normalizeClass([[$props.icon, `mention-bubble__icon--${$options.avatarUrl ? "with-avatar" : ""}`], "mention-bubble__icon"]),
|
|
78
|
-
style: normalizeStyle($options.avatarUrl ? { backgroundImage: `url(${$options.avatarUrl})` } : null)
|
|
79
|
-
}, null, 6),
|
|
80
|
-
createElementVNode("span", {
|
|
81
|
-
role: "heading",
|
|
82
|
-
class: "mention-bubble__title",
|
|
83
|
-
title: $options.labelWithFallback
|
|
84
|
-
}, null, 8, _hoisted_3)
|
|
85
|
-
]),
|
|
86
|
-
createElementVNode("span", _hoisted_4, toDisplayString($options.mentionText), 1)
|
|
87
|
-
])
|
|
88
|
-
], 2);
|
|
89
|
-
}
|
|
90
|
-
const NcMentionBubble = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-6c8d0da9"]]);
|
|
91
|
-
const MENTION_START = /(?=[a-z0-9_\-@.'])\B/.source;
|
|
92
|
-
const MENTION_SIMPLE = /(@[a-z0-9_\-@.']+)/.source;
|
|
93
|
-
const MENTION_GUEST = /@"(?:guest|email){1}\/[a-f0-9]+"/.source;
|
|
94
|
-
const MENTION_PREFIXED = /@"(?:federated_)?(?:group|team|user){1}\/[a-z0-9_\-@.' /:]+"/.source;
|
|
95
|
-
const MENTION_WITH_SPACE = /@"[a-z0-9_\-@.' ]+"/.source;
|
|
96
|
-
const MENTION_COMPLEX = `(${MENTION_GUEST}|${MENTION_PREFIXED}|${MENTION_WITH_SPACE})`;
|
|
97
|
-
const USERID_REGEX = new RegExp(`${MENTION_START}${MENTION_SIMPLE}`, "gi");
|
|
98
|
-
const USERID_REGEX_WITH_SPACE = new RegExp(`${MENTION_START}${MENTION_COMPLEX}`, "gi");
|
|
99
|
-
const richEditor = {
|
|
100
|
-
props: {
|
|
101
|
-
userData: {
|
|
102
|
-
type: Object,
|
|
103
|
-
default: () => ({})
|
|
104
|
-
}
|
|
105
|
-
},
|
|
106
|
-
methods: {
|
|
107
|
-
/**
|
|
108
|
-
* Convert the value string to html for the inner content
|
|
109
|
-
*
|
|
110
|
-
* @param {string} value the content without html
|
|
111
|
-
* @return {string} rendered html
|
|
112
|
-
*/
|
|
113
|
-
renderContent(value) {
|
|
114
|
-
const sanitizedValue = escapeHTML(value);
|
|
115
|
-
const splitValue = sanitizedValue.split(USERID_REGEX).map((part) => part.split(USERID_REGEX_WITH_SPACE)).flat();
|
|
116
|
-
return splitValue.map((part) => {
|
|
117
|
-
if (!part.startsWith("@")) {
|
|
118
|
-
return part;
|
|
119
|
-
}
|
|
120
|
-
const id = part.slice(1).replace(/"/gi, "");
|
|
121
|
-
return this.genSelectTemplate(id);
|
|
122
|
-
}).join("").replace(/\n/gmi, "<br>").replace(/&/gmi, "&");
|
|
123
|
-
},
|
|
124
|
-
/**
|
|
125
|
-
* Convert the innerHtml content to a string with mentions as text
|
|
126
|
-
*
|
|
127
|
-
* @param {string} content the content without html
|
|
128
|
-
* @return {string}
|
|
129
|
-
*/
|
|
130
|
-
parseContent(content) {
|
|
131
|
-
let text = content;
|
|
132
|
-
text = text.replace(/<br>/gmi, "\n");
|
|
133
|
-
text = text.replace(/ /gmi, " ");
|
|
134
|
-
text = text.replace(/&/gmi, "&");
|
|
135
|
-
text = text.replace(/<\/div>/gmi, "\n");
|
|
136
|
-
text = stripTags(text, "<div>");
|
|
137
|
-
text = stripTags(text);
|
|
138
|
-
return text;
|
|
139
|
-
},
|
|
140
|
-
/**
|
|
141
|
-
* Generate an autocompletion popup entry template
|
|
142
|
-
*
|
|
143
|
-
* @param {string} value the value to match against the userData
|
|
144
|
-
* @return {string}
|
|
145
|
-
*/
|
|
146
|
-
genSelectTemplate(value) {
|
|
147
|
-
if (typeof value === "undefined") {
|
|
148
|
-
return `${this.autocompleteTribute.current.collection.trigger}${this.autocompleteTribute.current.mentionText}`;
|
|
149
|
-
}
|
|
150
|
-
const data = this.userData[value];
|
|
151
|
-
if (!data) {
|
|
152
|
-
return [" ", "/", ":"].every((char) => !value.includes(char)) ? `@${value}` : `@"${value}"`;
|
|
153
|
-
}
|
|
154
|
-
return this.renderComponentHtml(data, NcMentionBubble).replace(/[\n\t]/gmi, "").replace(/>\s+</g, "><");
|
|
155
|
-
},
|
|
156
|
-
/**
|
|
157
|
-
* Render a component and return its html content
|
|
158
|
-
*
|
|
159
|
-
* @param {object} props the props to pass to the component
|
|
160
|
-
* @param {object} component the component to render
|
|
161
|
-
* @return {string} the rendered html
|
|
162
|
-
*/
|
|
163
|
-
renderComponentHtml(props, component) {
|
|
164
|
-
const Item = createApp(component, {
|
|
165
|
-
...props
|
|
166
|
-
});
|
|
167
|
-
const mount = document.createElement("div");
|
|
168
|
-
mount.style.display = "none";
|
|
169
|
-
document.body.appendChild(mount);
|
|
170
|
-
Item.mount(mount);
|
|
171
|
-
const renderedHtml = mount.innerHTML;
|
|
172
|
-
Item.unmount();
|
|
173
|
-
mount.remove();
|
|
174
|
-
return renderedHtml;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
};
|
|
178
|
-
export {
|
|
179
|
-
NcMentionBubble as N,
|
|
180
|
-
USERID_REGEX as U,
|
|
181
|
-
USERID_REGEX_WITH_SPACE as a,
|
|
182
|
-
richEditor as r
|
|
183
|
-
};
|
|
184
|
-
//# sourceMappingURL=index--u6iHwFv.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index--u6iHwFv.mjs","sources":["../../src/components/NcRichContenteditable/NcMentionBubble.vue","../../src/mixins/richEditor/index.js"],"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<span :class=\"{'mention-bubble--primary': primary}\"\n\t\tclass=\"mention-bubble\"\n\t\tcontenteditable=\"false\">\n\t\t<span class=\"mention-bubble__wrapper\">\n\t\t\t<span class=\"mention-bubble__content\">\n\t\t\t\t<!-- Avatar or icon -->\n\t\t\t\t<span :class=\"[icon, `mention-bubble__icon--${avatarUrl ? 'with-avatar' : ''}`]\"\n\t\t\t\t\t:style=\"avatarUrl ? { backgroundImage: `url(${avatarUrl})` } : null\"\n\t\t\t\t\tclass=\"mention-bubble__icon\" />\n\n\t\t\t\t<!-- Title -->\n\t\t\t\t<span role=\"heading\" class=\"mention-bubble__title\" :title=\"labelWithFallback\" />\n\t\t\t</span>\n\n\t\t\t<!-- Selectable text for copy/paste -->\n\t\t\t<span role=\"none\" class=\"mention-bubble__select\">{{ mentionText }}</span>\n\t\t</span>\n\t</span>\n</template>\n\n<script>\nimport { getAvatarUrl } from '../../utils/getAvatarUrl.ts'\n\nexport default {\n\tname: 'NcMentionBubble',\n\n\tprops: {\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * @deprecated Use `label` instead\n\t\t */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: null,\n\t\t},\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: null,\n\t\t},\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\ticonUrl: {\n\t\t\ttype: [String, null],\n\t\t\tdefault: null,\n\t\t},\n\t\tsource: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tcomputed: {\n\t\tavatarUrl() {\n\t\t\tif (this.iconUrl) {\n\t\t\t\treturn this.iconUrl\n\t\t\t}\n\n\t\t\treturn this.id && this.source === 'users'\n\t\t\t\t? this.getAvatarUrl(this.id, 44)\n\t\t\t\t: null\n\t\t},\n\t\tmentionText() {\n\t\t\treturn !this.id.includes(' ') && !this.id.includes('/')\n\t\t\t\t? `@${this.id}`\n\t\t\t\t: `@\"${this.id}\"`\n\t\t},\n\t\t// Fallback to title for compatibility\n\t\tlabelWithFallback() {\n\t\t\treturn this.label || this.title\n\t\t},\n\t},\n\n\tmethods: {\n\t\tgetAvatarUrl,\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$bubble-height: 20px;\n$bubble-max-width: 150px;\n$bubble-padding: 2px;\n$bubble-avatar-size: $bubble-height - 2 * $bubble-padding;\n\n.mention-bubble {\n\t&--primary &__content {\n\t\tcolor: var(--color-primary-element-text);\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t&__wrapper {\n\t\tmax-width: $bubble-max-width;\n\t\t// Align with text\n\t\theight: $bubble-height - $bubble-padding;\n\t\tvertical-align: text-bottom;\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t}\n\n\t&__content {\n\t\tdisplay: inline-flex;\n\t\toverflow: hidden;\n\t\talign-items: center;\n\t\tmax-width: 100%;\n\t\theight: $bubble-height ;\n\t\t-webkit-user-select: none;\n\t\tuser-select: none;\n\t\tpadding-inline: $bubble-padding $bubble-padding * 3;\n\t\tborder-radius: math.div($bubble-height, 2);\n\t\tbackground-color: var(--color-background-dark);\n\t}\n\n\t&__icon {\n\t\tposition: relative;\n\t\twidth: $bubble-avatar-size;\n\t\theight: $bubble-avatar-size;\n\t\tborder-radius: math.div($bubble-avatar-size, 2);\n\t\tbackground-color: var(--color-background-darker);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center;\n\t\tbackground-size: $bubble-avatar-size - 2 * $bubble-padding;\n\n\t\t&--with-avatar {\n\t\t\tcolor: inherit;\n\t\t\tbackground-size: cover;\n\t\t}\n\t}\n\n\t&__title {\n\t\toverflow: hidden;\n\t\tmargin-inline-start: $bubble-padding;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\t// Put title in ::before so it is not selectable\n\t\t&::before {\n\t\t\tcontent: attr(title);\n\t\t}\n\t}\n\n\t// Hide the mention id so it is selectable\n\t&__select {\n\t\tposition: absolute;\n\t\tz-index: -1;\n\t\tinset-inline-start: -100vw;\n\t\twidth: 1px;\n\t\theight: 1px;\n\t\toverflow: hidden;\n\t}\n}\n\n</style>\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport NcMentionBubble from '../../components/NcRichContenteditable/NcMentionBubble.vue'\n\nimport escapeHtml from 'escape-html'\nimport stripTags from 'striptags'\nimport { createApp } from 'vue'\n\n// Referenced from public function getMentions(): https://github.com/nextcloud/server/blob/master/lib/private/Comments/Comment.php\n// Beginning or whitespace. Uses positive lookahead (to work on MobileSafari <16.4)\nconst MENTION_START = /(?=[a-z0-9_\\-@.'])\\B/.source\n// Capturing groups like: @user-id, @\"guest/abc16def\", @\"federated_user/user-id\", @\"user-id with space\"\nconst MENTION_SIMPLE = /(@[a-z0-9_\\-@.']+)/.source\nconst MENTION_GUEST = /@"(?:guest|email){1}\\/[a-f0-9]+"/.source\nconst MENTION_PREFIXED = /@"(?:federated_)?(?:group|team|user){1}\\/[a-z0-9_\\-@.' /:]+"/.source\nconst MENTION_WITH_SPACE = /@"[a-z0-9_\\-@.' ]+"/.source\nconst MENTION_COMPLEX = `(${MENTION_GUEST}|${MENTION_PREFIXED}|${MENTION_WITH_SPACE})`\n// Concatenated regular expressions\nexport const USERID_REGEX = new RegExp(`${MENTION_START}${MENTION_SIMPLE}`, 'gi')\nexport const USERID_REGEX_WITH_SPACE = new RegExp(`${MENTION_START}${MENTION_COMPLEX}`, 'gi')\n\nexport default {\n\tprops: {\n\t\tuserData: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Convert the value string to html for the inner content\n\t\t *\n\t\t * @param {string} value the content without html\n\t\t * @return {string} rendered html\n\t\t */\n\t\trenderContent(value) {\n\t\t\t// Sanitize the value prop\n\t\t\tconst sanitizedValue = escapeHtml(value)\n\n\t\t\t// Extract all the userIds\n\t\t\tconst splitValue = sanitizedValue.split(USERID_REGEX)\n\t\t\t\t.map(part => part.split(USERID_REGEX_WITH_SPACE)).flat()\n\n\t\t\t// Replace userIds by html\n\t\t\treturn splitValue\n\t\t\t\t.map(part => {\n\t\t\t\t\t// When splitting, the string is always putting the userIds\n\t\t\t\t\t// on the uneven indexes. We only want to generate the mentions html\n\t\t\t\t\tif (!part.startsWith('@')) {\n\t\t\t\t\t\treturn part\n\t\t\t\t\t}\n\n\t\t\t\t\t// Extracting the id, nuking the leading @ and all \"\n\t\t\t\t\tconst id = part.slice(1).replace(/"/gi, '')\n\t\t\t\t\t// Compiling template and prepend with the space we removed during the split\n\t\t\t\t\treturn this.genSelectTemplate(id)\n\t\t\t\t})\n\t\t\t\t.join('')\n\t\t\t\t.replace(/\\n/gmi, '<br>')\n\t\t\t\t.replace(/&/gmi, '&')\n\t\t},\n\n\t\t/**\n\t\t * Convert the innerHtml content to a string with mentions as text\n\t\t *\n\t\t * @param {string} content the content without html\n\t\t * @return {string}\n\t\t */\n\t\tparseContent(content) {\n\t\t\tlet text = content\n\t\t\t// Replace break lines with new lines\n\t\t\ttext = text.replace(/<br>/gmi, '\\n')\n\t\t\t// Replace some html special characters\n\t\t\ttext = text.replace(/ /gmi, ' ')\n\t\t\ttext = text.replace(/&/gmi, '&')\n\n\t\t\t// Convert the mentions to text only\n\t\t\t// first we replace divs with new lines\n\t\t\ttext = text.replace(/<\\/div>/gmi, '\\n')\n\t\t\t// then we remove all leftover html\n\t\t\ttext = stripTags(text, '<div>')\n\t\t\ttext = stripTags(text)\n\n\t\t\treturn text\n\t\t},\n\n\t\t/**\n\t\t * Generate an autocompletion popup entry template\n\t\t *\n\t\t * @param {string} value the value to match against the userData\n\t\t * @return {string}\n\t\t */\n\t\tgenSelectTemplate(value) {\n\t\t\t// The value returned by this function will replace the trigger '@'\n\t\t\t// and the search text, so when there is no match we simply return\n\t\t\t// '@' and the text.\n\t\t\tif (typeof value === 'undefined') {\n\t\t\t\treturn `${this.autocompleteTribute.current.collection.trigger}${this.autocompleteTribute.current.mentionText}`\n\t\t\t}\n\n\t\t\tconst data = this.userData[value]\n\n\t\t\t// Fallback to @mention in case no data matches\n\t\t\tif (!data) {\n\t\t\t\t// return @value if matches MENTION_SIMPLE, @\"value\" otherwise\n\t\t\t\treturn [' ', '/', ':'].every(char => !value.includes(char))\n\t\t\t\t\t? `@${value}`\n\t\t\t\t\t: `@\"${value}\"`\n\t\t\t}\n\n\t\t\t// Return template and make sure we strip off new lines, tabs and consecutive whitespaces\n\t\t\treturn this.renderComponentHtml(data, NcMentionBubble)\n\t\t\t\t.replace(/[\\n\\t]/gmi, '')\n\t\t\t\t.replace(/>\\s+</g, '><')\n\t\t},\n\n\t\t/**\n\t\t * Render a component and return its html content\n\t\t *\n\t\t * @param {object} props the props to pass to the component\n\t\t * @param {object} component the component to render\n\t\t * @return {string} the rendered html\n\t\t */\n\t\trenderComponentHtml(props, component) {\n\t\t\tconst Item = createApp(component, {\n\t\t\t\t...props,\n\t\t\t})\n\n\t\t\t// Prepare mountpoint\n\t\t\tconst mount = document.createElement('div')\n\t\t\tmount.style.display = 'none'\n\t\t\tdocument.body.appendChild(mount)\n\n\t\t\t// Mount and get raw html\n\t\t\tItem.mount(mount)\n\t\t\tconst renderedHtml = mount.innerHTML\n\n\t\t\t// Destroy\n\t\t\tItem.unmount()\n\t\t\tmount.remove()\n\n\t\t\treturn renderedHtml\n\t\t},\n\t},\n}\n"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_normalizeStyle","_toDisplayString","escapeHtml"],"mappings":"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"}
|