@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
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { defineComponent, computed, createElementBlock, openBlock, createElementVNode, createCommentVNode, toDisplayString } from "vue";
|
|
2
|
+
const _hoisted_1 = ["aria-label"];
|
|
3
|
+
const _hoisted_2 = ["width", "height"];
|
|
4
|
+
const _hoisted_3 = ["fill"];
|
|
5
|
+
const _hoisted_4 = {
|
|
6
|
+
fill: "currentColor",
|
|
7
|
+
d: "M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"
|
|
8
|
+
};
|
|
9
|
+
const _hoisted_5 = { key: 0 };
|
|
10
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
11
|
+
__name: "NcSavingIndicatorIcon",
|
|
12
|
+
props: {
|
|
13
|
+
size: { default: 20 },
|
|
14
|
+
name: { default: "" },
|
|
15
|
+
saving: { type: Boolean, default: false },
|
|
16
|
+
error: { type: Boolean, default: false }
|
|
17
|
+
},
|
|
18
|
+
emits: ["click"],
|
|
19
|
+
setup(__props) {
|
|
20
|
+
const props = __props;
|
|
21
|
+
const indicatorColor = computed(() => {
|
|
22
|
+
if (props.error) {
|
|
23
|
+
return "var(--color-error)";
|
|
24
|
+
}
|
|
25
|
+
if (props.saving) {
|
|
26
|
+
return "var(--color-primary-element)";
|
|
27
|
+
}
|
|
28
|
+
return "none";
|
|
29
|
+
});
|
|
30
|
+
return (_ctx, _cache) => {
|
|
31
|
+
return openBlock(), createElementBlock("span", {
|
|
32
|
+
"aria-label": _ctx.name,
|
|
33
|
+
class: "material-design-icon",
|
|
34
|
+
role: "img",
|
|
35
|
+
onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("click", $event))
|
|
36
|
+
}, [
|
|
37
|
+
(openBlock(), createElementBlock("svg", {
|
|
38
|
+
class: "material-design-icon__svg",
|
|
39
|
+
width: _ctx.size,
|
|
40
|
+
height: _ctx.size,
|
|
41
|
+
viewBox: "0 0 24 24"
|
|
42
|
+
}, [
|
|
43
|
+
createElementVNode("path", {
|
|
44
|
+
fill: indicatorColor.value,
|
|
45
|
+
d: "m19 15a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4z"
|
|
46
|
+
}, null, 8, _hoisted_3),
|
|
47
|
+
createElementVNode("path", _hoisted_4, [
|
|
48
|
+
_ctx.name ? (openBlock(), createElementBlock("title", _hoisted_5, toDisplayString(_ctx.name), 1)) : createCommentVNode("", true)
|
|
49
|
+
])
|
|
50
|
+
], 8, _hoisted_2))
|
|
51
|
+
], 8, _hoisted_1);
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
export {
|
|
56
|
+
_sfc_main as _
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang-DlRBo3QU.mjs.map
|
package/dist/chunks/NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang-DlRBo3QU.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang-DlRBo3QU.mjs","sources":["../../src/components/NcSavingIndicatorIcon/NcSavingIndicatorIcon.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# Usage\n\n```\n<template>\n<div>\n\t<div>\n\t\t<NcSavingIndicatorIcon :name=\"`${savingState === 'error' ? 'Error saving' : savingState} file`\"\n\t\t\t:error=\"savingState === 'error'\"\n\t\t\t:saving=\"savingState === 'saving'\" />\n\t</div>\n\t<br />\n\t<div style=\"display: flex; justify-content: space-around;\">\n\t\t<NcCheckboxRadioSwitch v-model=\"savingState\"\n\t\t\tvalue=\"saved\"\n\t\t\tname=\"saving_radio\"\n\t\t\ttype=\"radio\">\n\t\t\tSaved\n\t\t</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch v-model=\"savingState\"\n\t\t\tvalue=\"saving\"\n\t\t\tname=\"saving_radio\"\n\t\t\ttype=\"radio\">\n\t\t\tSaving\n\t\t</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch v-model=\"savingState\"\n\t\t\tvalue=\"error\"\n\t\t\tname=\"saving_radio\"\n\t\t\ttype=\"radio\">\n\t\t\tError\n\t\t</NcCheckboxRadioSwitch>\n\t</div>\n</div>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tsavingState: 'saved',\n\t\t}\n\t},\n}\n</script>\n\n```\n</docs>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * Specify the size of the saving icon.\n\t */\n\tsize?: number\n\n\t/**\n\t * Specify what is saved.\n\t * If not set the element will be hidden from accessibility tree.\n\t */\n\tname?: string\n\n\t/**\n\t * Set to true when saving is in progress.\n\t */\n\tsaving?: boolean\n\n\t/**\n\t * Set to true if an error occured while saving.\n\t */\n\terror?: boolean\n}>(), {\n\terror: false,\n\tname: '',\n\tsaving: false,\n\tsize: 20,\n})\n\ndefineEmits<{\n\t/**\n\t * Click event on the icon.\n\t */\n\tclick: [MouseEvent]\n}>()\n\nconst indicatorColor = computed(() => {\n\tif (props.error) {\n\t\treturn 'var(--color-error)'\n\t}\n\tif (props.saving) {\n\t\treturn 'var(--color-primary-element)'\n\t}\n\treturn 'none'\n})\n</script>\n\n<template>\n\t<span :aria-label=\"name\"\n\t\tclass=\"material-design-icon\"\n\t\trole=\"img\"\n\t\t@click=\"$emit('click', $event)\">\n\t\t<svg class=\"material-design-icon__svg\"\n\t\t\t:width=\"size\"\n\t\t\t:height=\"size\"\n\t\t\tviewBox=\"0 0 24 24\">\n\t\t\t<path :fill=\"indicatorColor\" d=\"m19 15a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4z\" />\n\t\t\t<path fill=\"currentColor\" d=\"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\">\n\t\t\t\t<title v-if=\"name\">{{ name }}</title>\n\t\t\t</path>\n\t\t</svg>\n\t</span>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAuDA,UAAM,QAAQ;AAmCR,UAAA,iBAAiB,SAAS,MAAM;AACrC,UAAI,MAAM,OAAO;AACT,eAAA;AAAA,MAAA;AAER,UAAI,MAAM,QAAQ;AACV,eAAA;AAAA,MAAA;AAED,aAAA;AAAA,IAAA,CACP;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import '../assets/NcSelect-
|
|
1
|
+
import '../assets/NcSelect-BCBpQnFL.css';
|
|
2
2
|
import "vue-select/dist/vue-select.css";
|
|
3
3
|
import VueSelect from "vue-select";
|
|
4
4
|
import { autoUpdate, computePosition, offset, flip, shift, limitShift } from "@floating-ui/dom";
|
|
5
|
-
import { h, resolveComponent, createBlock, openBlock, mergeProps, createSlots, withCtx, createTextVNode, toDisplayString, createCommentVNode,
|
|
5
|
+
import { h, resolveComponent, createBlock, openBlock, mergeProps, createSlots, withCtx, createTextVNode, toDisplayString, createCommentVNode, renderSlot, createVNode, normalizeProps, guardReactiveProps, createElementVNode, toHandlers, renderList, warn } from "vue";
|
|
6
6
|
import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
|
|
7
|
-
import { r as register, c as t16, a as t } from "./_l10n-
|
|
7
|
+
import { r as register, c as t16, a as t } from "./_l10n-BNGeEX3W.mjs";
|
|
8
8
|
import { C as ChevronDown } from "./ChevronDown-FiGpp0KT.mjs";
|
|
9
9
|
import { I as IconClose } from "./Close-D6ngJ4t9.mjs";
|
|
10
10
|
import { N as NcEllipsisedOption } from "./NcEllipsisedOption-4k07kvEr.mjs";
|
|
11
|
-
import { N as NcListItemIcon } from "./NcListItemIcon-nzw_x2Q5.mjs";
|
|
12
11
|
import { N as NcLoadingIcon } from "./NcLoadingIcon-CsMn1bFR.mjs";
|
|
13
12
|
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
14
13
|
register(t16);
|
|
@@ -17,7 +16,6 @@ const _sfc_main = {
|
|
|
17
16
|
components: {
|
|
18
17
|
ChevronDown,
|
|
19
18
|
NcEllipsisedOption,
|
|
20
|
-
NcListItemIcon,
|
|
21
19
|
NcLoadingIcon,
|
|
22
20
|
VueSelect
|
|
23
21
|
},
|
|
@@ -82,13 +80,14 @@ const _sfc_main = {
|
|
|
82
80
|
default: null
|
|
83
81
|
},
|
|
84
82
|
/**
|
|
85
|
-
*
|
|
83
|
+
* Keep the dropdown open after selecting an option.
|
|
86
84
|
*
|
|
87
|
-
* @
|
|
85
|
+
* @default false
|
|
86
|
+
* @since 8.25.0
|
|
88
87
|
*/
|
|
89
|
-
|
|
88
|
+
keepOpen: {
|
|
90
89
|
type: Boolean,
|
|
91
|
-
default:
|
|
90
|
+
default: false
|
|
92
91
|
},
|
|
93
92
|
/**
|
|
94
93
|
* Replace default vue-select components
|
|
@@ -145,10 +144,6 @@ const _sfc_main = {
|
|
|
145
144
|
* Defaults to the internal vue-select function documented at the link
|
|
146
145
|
* below
|
|
147
146
|
*
|
|
148
|
-
* Enabling `userSelect` will automatically set this to filter by the
|
|
149
|
-
* `displayName` and `subname` properties of the user option object
|
|
150
|
-
* unless this prop is set explicitly
|
|
151
|
-
*
|
|
152
147
|
* @see https://vue-select.org/api/props.html#filterby
|
|
153
148
|
*/
|
|
154
149
|
filterBy: {
|
|
@@ -201,9 +196,6 @@ const _sfc_main = {
|
|
|
201
196
|
* Defaults to the internal vue-select string documented at the link
|
|
202
197
|
* below
|
|
203
198
|
*
|
|
204
|
-
* Enabling `userSelect` will automatically set this to `'displayName'`
|
|
205
|
-
* unless this prop is set explicitly
|
|
206
|
-
*
|
|
207
199
|
* @see https://vue-select.org/api/props.html#label
|
|
208
200
|
*/
|
|
209
201
|
label: {
|
|
@@ -312,17 +304,6 @@ const _sfc_main = {
|
|
|
312
304
|
type: Boolean,
|
|
313
305
|
default: true
|
|
314
306
|
},
|
|
315
|
-
/**
|
|
316
|
-
* Enable the user selector with avatars
|
|
317
|
-
*
|
|
318
|
-
* Objects must contain the data expected by the
|
|
319
|
-
* [NcListItemIcon](#/Components/NcListItemIcon) and
|
|
320
|
-
* [NcAvatar](#/Components/NcAvatar) components
|
|
321
|
-
*/
|
|
322
|
-
userSelect: {
|
|
323
|
-
type: Boolean,
|
|
324
|
-
default: false
|
|
325
|
-
},
|
|
326
307
|
/**
|
|
327
308
|
* Currently selected value
|
|
328
309
|
*
|
|
@@ -435,26 +416,10 @@ const _sfc_main = {
|
|
|
435
416
|
};
|
|
436
417
|
},
|
|
437
418
|
localFilterBy() {
|
|
438
|
-
|
|
439
|
-
if (this.filterBy !== null) {
|
|
440
|
-
return this.filterBy;
|
|
441
|
-
}
|
|
442
|
-
if (this.userSelect) {
|
|
443
|
-
return (option, label, search) => {
|
|
444
|
-
const match = search.match(EMAIL_NOTATION);
|
|
445
|
-
return match && option.subname?.toLocaleLowerCase?.()?.indexOf(match[1].toLocaleLowerCase()) > -1 || `${label} ${option.subname}`.toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) > -1;
|
|
446
|
-
};
|
|
447
|
-
}
|
|
448
|
-
return VueSelect.props.filterBy.default;
|
|
419
|
+
return this.filterBy ?? VueSelect.props.filterBy.default;
|
|
449
420
|
},
|
|
450
421
|
localLabel() {
|
|
451
|
-
|
|
452
|
-
return this.label;
|
|
453
|
-
}
|
|
454
|
-
if (this.userSelect) {
|
|
455
|
-
return "displayName";
|
|
456
|
-
}
|
|
457
|
-
return VueSelect.props.label.default;
|
|
422
|
+
return this.label ?? VueSelect.props.label.default;
|
|
458
423
|
},
|
|
459
424
|
propsToForward() {
|
|
460
425
|
const vueSelectKeys = [
|
|
@@ -468,6 +433,7 @@ const _sfc_main = {
|
|
|
468
433
|
...initialPropsToForward,
|
|
469
434
|
// Custom overrides of vue-select props
|
|
470
435
|
calculatePosition: this.localCalculatePosition,
|
|
436
|
+
closeOnSelect: !this.keepOpen,
|
|
471
437
|
filterBy: this.localFilterBy,
|
|
472
438
|
label: this.localLabel
|
|
473
439
|
};
|
|
@@ -490,14 +456,12 @@ const _hoisted_1 = ["for"];
|
|
|
490
456
|
const _hoisted_2 = ["required"];
|
|
491
457
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
492
458
|
const _component_ChevronDown = resolveComponent("ChevronDown");
|
|
493
|
-
const _component_NcListItemIcon = resolveComponent("NcListItemIcon");
|
|
494
459
|
const _component_NcEllipsisedOption = resolveComponent("NcEllipsisedOption");
|
|
495
460
|
const _component_NcLoadingIcon = resolveComponent("NcLoadingIcon");
|
|
496
461
|
const _component_VueSelect = resolveComponent("VueSelect");
|
|
497
462
|
return openBlock(), createBlock(_component_VueSelect, mergeProps({
|
|
498
463
|
class: ["select", {
|
|
499
|
-
"select--no-wrap": $props.noWrap
|
|
500
|
-
"user-select": $props.userSelect
|
|
464
|
+
"select--no-wrap": $props.noWrap
|
|
501
465
|
}]
|
|
502
466
|
}, $options.propsToForward, {
|
|
503
467
|
onSearch: _cache[0] || (_cache[0] = ($event) => $data.search = $event),
|
|
@@ -521,27 +485,20 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
521
485
|
}), null, 16, ["style"])
|
|
522
486
|
]),
|
|
523
487
|
option: withCtx((option) => [
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
name: String(option[$options.localLabel]),
|
|
531
|
-
search: $data.search
|
|
532
|
-
}, null, 8, ["name", "search"]))
|
|
488
|
+
renderSlot(_ctx.$slots, "option", normalizeProps(guardReactiveProps(option)), () => [
|
|
489
|
+
createVNode(_component_NcEllipsisedOption, {
|
|
490
|
+
name: String(option[$options.localLabel]),
|
|
491
|
+
search: $data.search
|
|
492
|
+
}, null, 8, ["name", "search"])
|
|
493
|
+
])
|
|
533
494
|
]),
|
|
534
495
|
"selected-option": withCtx((selectedOption) => [
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
key: 1,
|
|
542
|
-
name: String(selectedOption[$options.localLabel]),
|
|
543
|
-
search: $data.search
|
|
544
|
-
}, null, 8, ["name", "search"]))
|
|
496
|
+
renderSlot(_ctx.$slots, "selected-option", { vBind: selectedOption }, () => [
|
|
497
|
+
createVNode(_component_NcEllipsisedOption, {
|
|
498
|
+
name: String(selectedOption[$options.localLabel]),
|
|
499
|
+
search: $data.search
|
|
500
|
+
}, null, 8, ["name", "search"])
|
|
501
|
+
])
|
|
545
502
|
]),
|
|
546
503
|
spinner: withCtx((spinner) => [
|
|
547
504
|
spinner.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : createCommentVNode("", true)
|
|
@@ -575,4 +532,4 @@ const NcSelect = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]
|
|
|
575
532
|
export {
|
|
576
533
|
NcSelect as N
|
|
577
534
|
};
|
|
578
|
-
//# sourceMappingURL=NcSelect-
|
|
535
|
+
//# sourceMappingURL=NcSelect-BkTH-Yqm.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcSelect-BkTH-Yqm.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\tkeepOpen: true,\n\t\t\tmultiple: true,\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 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 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\tkeepOpen: true,\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\tkeepOpen: true,\n\t\tmultiple: true,\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</docs>\n\n<template>\n\t<VueSelect class=\"select\"\n\t\t:class=\"{\n\t\t\t'select--no-wrap': noWrap,\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<!-- @slot Customize how a option is rendered. -->\n\t\t\t<slot name=\"option\" v-bind=\"option\">\n\t\t\t\t<NcEllipsisedOption :name=\"String(option[localLabel])\"\n\t\t\t\t\t:search=\"search\" />\n\t\t\t</slot>\n\t\t</template>\n\t\t<template #selected-option=\"selectedOption\">\n\t\t\t<!-- @slot Customize how a selected option is rendered -->\n\t\t\t<slot name=\"selected-option\" :v-bind=\"selectedOption\">\n\t\t\t\t<NcEllipsisedOption :name=\"String(selectedOption[localLabel])\"\n\t\t\t\t\t:search=\"search\" />\n\t\t\t</slot>\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 { createElementId } from '../../utils/createElementId.ts'\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 NcLoadingIcon from '../NcLoadingIcon/index.js'\n\nexport default {\n\tname: 'NcSelect',\n\n\tcomponents: {\n\t\tChevronDown,\n\t\tNcEllipsisedOption,\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 * Keep the dropdown open after selecting an option.\n\t\t *\n\t\t * @default false\n\t\t * @since 8.25.0\n\t\t */\n\t\tkeepOpen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\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 * @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: () => createElementId(),\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 * @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: () => createElementId(),\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 * 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.modelValue === null || (Array.isArray(this.modelValue) && this.modelValue.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\treturn this.filterBy ?? VueSelect.props.filterBy.default\n\t\t},\n\n\t\tlocalLabel() {\n\t\t\treturn this.label ?? 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\tcloseOnSelect: !this.keepOpen,\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-inline-end: 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\tinset-inline-start: 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</style>\n"],"names":["Close","_openBlock","_createBlock","_mergeProps","_createSlots","_withCtx","_createElementVNode","_toHandlers","_createVNode","_renderSlot","_normalizeProps","_guardReactiveProps","_createCommentVNode","_createTextVNode","_toDisplayString","_renderList"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { N as NcEllipsisedOption } from "./NcEllipsisedOption-4k07kvEr.mjs";
|
|
2
|
-
import { N as NcSelect } from "./NcSelect-
|
|
2
|
+
import { N as NcSelect } from "./NcSelect-BkTH-Yqm.mjs";
|
|
3
3
|
import axios from "@nextcloud/axios";
|
|
4
4
|
import { generateRemoteUrl } from "@nextcloud/router";
|
|
5
|
-
import { r as register, h as t0, a as t } from "./_l10n-
|
|
5
|
+
import { r as register, h as t0, a as t } from "./_l10n-BNGeEX3W.mjs";
|
|
6
6
|
import { resolveComponent, createBlock, openBlock, mergeProps, createSlots, withCtx, createVNode, renderList, renderSlot, normalizeProps, guardReactiveProps } from "vue";
|
|
7
7
|
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
8
8
|
const xmlToJson = (xml) => {
|
|
@@ -300,4 +300,4 @@ const NcSelectTags = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_ren
|
|
|
300
300
|
export {
|
|
301
301
|
NcSelectTags as N
|
|
302
302
|
};
|
|
303
|
-
//# sourceMappingURL=NcSelectTags-
|
|
303
|
+
//# sourceMappingURL=NcSelectTags-BY8LM7qV.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcSelectTags-UXzC7lDz.mjs","sources":["../../src/components/NcSelectTags/api.js","../../src/components/NcSelectTags/NcSelectTags.vue"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { generateRemoteUrl } from '@nextcloud/router'\n\nconst xmlToJson = (xml) => {\n\tlet obj = {}\n\n\tif (xml.nodeType === 1) {\n\t\tif (xml.attributes.length > 0) {\n\t\t\tobj['@attributes'] = {}\n\t\t\tfor (let j = 0; j < xml.attributes.length; j++) {\n\t\t\t\tconst attribute = xml.attributes.item(j)\n\t\t\t\tobj['@attributes'][attribute.nodeName] = attribute.nodeValue\n\t\t\t}\n\t\t}\n\t} else if (xml.nodeType === 3) {\n\t\tobj = xml.nodeValue\n\t}\n\n\tif (xml.hasChildNodes()) {\n\t\tfor (let i = 0; i < xml.childNodes.length; i++) {\n\t\t\tconst item = xml.childNodes.item(i)\n\t\t\tconst nodeName = item.nodeName\n\t\t\tif (typeof (obj[nodeName]) === 'undefined') {\n\t\t\t\tobj[nodeName] = xmlToJson(item)\n\t\t\t} else {\n\t\t\t\tif (typeof obj[nodeName].push === 'undefined') {\n\t\t\t\t\tconst old = obj[nodeName]\n\t\t\t\t\tobj[nodeName] = []\n\t\t\t\t\tobj[nodeName].push(old)\n\t\t\t\t}\n\t\t\t\tobj[nodeName].push(xmlToJson(item))\n\t\t\t}\n\t\t}\n\t}\n\treturn obj\n}\n\nconst parseXml = (xml) => {\n\tlet dom = null\n\ttry {\n\t\tdom = (new DOMParser()).parseFromString(xml, 'text/xml')\n\t} catch (e) {\n\t\tconsole.error('Failed to parse xml document', e)\n\t}\n\treturn dom\n}\n\nconst xmlToTagList = (xml) => {\n\tconst json = xmlToJson(parseXml(xml))\n\tconst list = json['d:multistatus']['d:response']\n\tconst result = []\n\tfor (const index in list) {\n\t\tconst tag = list[index]['d:propstat']\n\n\t\tif (tag['d:status']['#text'] !== 'HTTP/1.1 200 OK') {\n\t\t\tcontinue\n\t\t}\n\t\tresult.push({\n\t\t\tid: parseInt(tag['d:prop']['oc:id']['#text']),\n\t\t\tdisplayName: tag['d:prop']['oc:display-name']['#text'],\n\t\t\tcanAssign: tag['d:prop']['oc:can-assign']['#text'] === 'true',\n\t\t\tuserAssignable: tag['d:prop']['oc:user-assignable']['#text'] === 'true',\n\t\t\tuserVisible: tag['d:prop']['oc:user-visible']['#text'] === 'true',\n\t\t})\n\t}\n\treturn result\n}\n\nconst searchTags = async function() {\n\tif (window.NextcloudVueDocs) {\n\t\treturn Promise.resolve(xmlToTagList(window.NextcloudVueDocs.tags))\n\t}\n\n\tconst result = await axios({\n\t\tmethod: 'PROPFIND',\n\t\turl: generateRemoteUrl('dav') + '/systemtags/',\n\t\tdata: `<?xml version=\"1.0\"?>\n\t\t\t\t\t<d:propfind xmlns:d=\"DAV:\" xmlns:oc=\"http://owncloud.org/ns\">\n\t\t\t\t\t <d:prop>\n\t\t\t\t\t\t<oc:id />\n\t\t\t\t\t\t<oc:display-name />\n\t\t\t\t\t\t<oc:user-visible />\n\t\t\t\t\t\t<oc:user-assignable />\n\t\t\t\t\t\t<oc:can-assign />\n\t\t\t\t\t </d:prop>\n\t\t\t\t\t</d:propfind>`,\n\t})\n\treturn xmlToTagList(result.data)\n}\n\nexport {\n\tsearchTags,\n}\n","<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Single tag selector\n\n```vue\n<template>\n\t<div class=\"wrapper\">\n\t\t<NcSelectTags v-model=\"value\" input-label=\"Tag\" :multiple=\"false\" />\n\t\t{{ value }}\n\t</div>\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tvalue: 1,\n\t\t}\n\t}\n}\n</script>\n```\n\n### Multiple tag selector\n```vue\n<template>\n\t<div class=\"wrapper\">\n\t\t<NcSelectTags v-model=\"value\" input-label=\"Tags\" :multiple=\"true\" />\n\t\t{{ value }}\n\t</div>\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tvalue: [\n\t\t\t\t1,\n\t\t\t\t2,\n\t\t\t],\n\t\t}\n\t}\n}\n</script>\n```\n\n### Custom filter\nBecause of compatibility reasons only 5 tag entries are shown by default. If you want to show all available tags set the `limit` prop to `null`:\n```vue\n<template>\n\t<div class=\"wrapper\">\n\t\t<NcSelectTags v-model=\"value\" input-label=\"Tags\" :limit=\"null\" />\n\t\t{{ value }}\n\t</div>\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tvalue: [\n\t\t\t\t1,\n\t\t\t\t2,\n\t\t\t],\n\t\t}\n\t}\n}\n</script>\n```\n\nIt's also possible to apply any custom filter logic by setting the `optionsFilter` function-prop to any custom function receiving the tag element and the index:\n```vue\n<template>\n\t<div class=\"wrapper\">\n\t\t<NcSelectTags v-model=\"value\" input-label=\"Tags\" :options-filter=\"customFilter\" />\n\t\t{{ value }}\n\t</div>\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tvalue: [\n\t\t\t\t3,\n\t\t\t],\n\t\t}\n\t},\n\tmethods: {\n\t\t/**\n\t\t* Implement your custom filter logic to filter tags delivered\n\t\t* by the server\n\t\t*\n\t\t* @param {object} the tag object\n\t\t* @param {int} the index of the object inside the collection\n\t\t*/\n\t\tcustomFilter(element, index) {\n\t\t\t/*\n\t\t\t* Tag objects returned by the server will have the\n\t\t\t* following properties (see also api.js):\n\t\t\t* id, displayName, canAssign, userAssignable, userVisible\n\t\t\t*/\n\t\t\treturn element.id >= 2 && element.displayName !== '' && element.canAssign && element.userAssignable && element.userVisible\n\t\t}\n\t}\n}\n</script>\n```\n</docs>\n\n<template>\n\t<NcSelect v-bind=\"propsToForward\"\n\t\t:options=\"availableOptions\"\n\t\t:close-on-select=\"!multiple\"\n\t\t:model-value=\"localValue\"\n\t\t@search=\"search = $event\"\n\t\t@update:model-value=\"handleInput\">\n\t\t<template #option=\"option\">\n\t\t\t<NcEllipsisedOption :name=\"getOptionLabel(option)\"\n\t\t\t\t:search=\"search\" />\n\t\t</template>\n\t\t<template #selected-option=\"selectedOption\">\n\t\t\t<NcEllipsisedOption :name=\"getOptionLabel(selectedOption)\"\n\t\t\t\t:search=\"search\" />\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</NcSelect>\n</template>\n\n<script>\nimport NcEllipsisedOption from '../NcEllipsisedOption/index.js'\nimport NcSelect from '../NcSelect/index.js'\n\nimport { searchTags } from './api.js'\nimport { t } from '../../l10n.js'\n\nexport default {\n\tname: 'NcSelectTags',\n\n\tcomponents: {\n\t\tNcEllipsisedOption,\n\t\tNcSelect,\n\t},\n\n\tprops: {\n\t\t// Add NcSelect prop defaults and populate $props\n\t\t...NcSelect.props,\n\n\t\t/**\n\t\t * Enable automatic fetching of tags\n\t\t *\n\t\t * If `false`, available tags must be passed using the `options` prop\n\t\t */\n\t\tfetchTags: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\n\t\t/**\n\t\t * Callback to generate the label text\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#getoptionlabel\n\t\t */\n\t\tgetOptionLabel: {\n\t\t\ttype: Function,\n\t\t\tdefault: (option) => {\n\t\t\t\tconst { displayName, userVisible, userAssignable } = option\n\t\t\t\tif (userVisible === false) {\n\t\t\t\t\treturn t('{tag} (invisible)', { tag: displayName })\n\t\t\t\t}\n\t\t\t\tif (userAssignable === false) {\n\t\t\t\t\treturn t('{tag} (restricted)', { tag: displayName })\n\t\t\t\t}\n\t\t\t\treturn displayName\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Sets the maximum number of tags to display in the dropdown list\n\t\t *\n\t\t * Because of compatibility reasons only 5 tag entries are shown by\n\t\t * default\n\t\t */\n\t\tlimit: {\n\t\t\ttype: Number,\n\t\t\tdefault: 5,\n\t\t},\n\n\t\t/**\n\t\t * Allow selection of multiple options\n\t\t *\n\t\t * This prop automatically sets the internal `closeOnSelect` prop to\n\t\t * its boolean opposite\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: true,\n\t\t},\n\n\t\t/**\n\t\t * Callback to filter available options\n\t\t */\n\t\toptionsFilter: {\n\t\t\ttype: Function,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Enable passing of `value` prop and emitted `input` events as-is\n\t\t * i.e. for usage with `v-model`\n\t\t *\n\t\t * If `true`, custom internal `value` and `input` handling is disabled\n\t\t */\n\t\tpassthru: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\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: t('Select a tag'),\n\t\t},\n\n\t\t/**\n\t\t * Currently selected value\n\t\t */\n\t\tmodelValue: {\n\t\t\ttype: [Number, Array, Object],\n\t\t\tdefault: null,\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'update:modelValue',\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],\n\n\tdata() {\n\t\treturn {\n\t\t\tsearch: '',\n\t\t\tavailableTags: [],\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tavailableOptions() {\n\t\t\tif (this.optionsFilter) {\n\t\t\t\treturn this.tags.filter(this.optionsFilter)\n\t\t\t}\n\t\t\treturn this.tags\n\t\t},\n\n\t\tlocalValue() {\n\t\t\tif (this.passthru) {\n\t\t\t\treturn this.modelValue\n\t\t\t}\n\t\t\tif (this.tags.length === 0) {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\tif (this.multiple) {\n\t\t\t\treturn this.modelValue\n\t\t\t\t\t.filter(tag => tag !== '')\n\t\t\t\t\t.map(id => this.tags.find(tag2 => tag2.id === id))\n\t\t\t} else {\n\t\t\t\treturn this.tags.find(tag => tag.id === this.modelValue)\n\t\t\t}\n\t\t},\n\n\t\tpropsToForward() {\n\t\t\tconst propsToForward = { ...this.$props }\n\t\t\t// Props handled by this component\n\t\t\tdelete propsToForward.fetchTags\n\t\t\tdelete propsToForward.optionsFilter\n\t\t\tdelete propsToForward.passthru\n\n\t\t\treturn propsToForward\n\t\t},\n\n\t\ttags() {\n\t\t\tif (!this.fetchTags) {\n\t\t\t\treturn this.options\n\t\t\t}\n\t\t\treturn this.availableTags\n\t\t},\n\t},\n\n\tasync created() {\n\t\tif (!this.fetchTags) {\n\t\t\treturn\n\t\t}\n\t\ttry {\n\t\t\tconst result = await searchTags()\n\t\t\tthis.availableTags = result\n\t\t} catch (error) {\n\t\t\tconsole.error('Loading systemtags failed', error)\n\t\t}\n\t},\n\n\tmethods: {\n\t\thandleInput(value) {\n\t\t\tif (this.passthru) {\n\t\t\t\tthis.$emit('update:modelValue', value)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (this.multiple) {\n\t\t\t\t/**\n\t\t\t\t * Emitted on input events of the multiselect field\n\t\t\t\t *\n\t\t\t\t * @type {number|number[]}\n\t\t\t\t */\n\t\t\t\tthis.$emit('update:modelValue', value.map(element => element.id))\n\t\t\t} else {\n\t\t\t\tif (value === null) {\n\t\t\t\t\tthis.$emit('update:modelValue', null)\n\t\t\t\t} else {\n\t\t\t\t\tthis.$emit('update:modelValue', value.id)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n"],"names":["_createBlock","_mergeProps","_createSlots","_withCtx","_createVNode","_renderList","_renderSlot","_normalizeProps","_guardReactiveProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NcSelectTags-BY8LM7qV.mjs","sources":["../../src/components/NcSelectTags/api.js","../../src/components/NcSelectTags/NcSelectTags.vue"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { generateRemoteUrl } from '@nextcloud/router'\n\nconst xmlToJson = (xml) => {\n\tlet obj = {}\n\n\tif (xml.nodeType === 1) {\n\t\tif (xml.attributes.length > 0) {\n\t\t\tobj['@attributes'] = {}\n\t\t\tfor (let j = 0; j < xml.attributes.length; j++) {\n\t\t\t\tconst attribute = xml.attributes.item(j)\n\t\t\t\tobj['@attributes'][attribute.nodeName] = attribute.nodeValue\n\t\t\t}\n\t\t}\n\t} else if (xml.nodeType === 3) {\n\t\tobj = xml.nodeValue\n\t}\n\n\tif (xml.hasChildNodes()) {\n\t\tfor (let i = 0; i < xml.childNodes.length; i++) {\n\t\t\tconst item = xml.childNodes.item(i)\n\t\t\tconst nodeName = item.nodeName\n\t\t\tif (typeof (obj[nodeName]) === 'undefined') {\n\t\t\t\tobj[nodeName] = xmlToJson(item)\n\t\t\t} else {\n\t\t\t\tif (typeof obj[nodeName].push === 'undefined') {\n\t\t\t\t\tconst old = obj[nodeName]\n\t\t\t\t\tobj[nodeName] = []\n\t\t\t\t\tobj[nodeName].push(old)\n\t\t\t\t}\n\t\t\t\tobj[nodeName].push(xmlToJson(item))\n\t\t\t}\n\t\t}\n\t}\n\treturn obj\n}\n\nconst parseXml = (xml) => {\n\tlet dom = null\n\ttry {\n\t\tdom = (new DOMParser()).parseFromString(xml, 'text/xml')\n\t} catch (e) {\n\t\tconsole.error('Failed to parse xml document', e)\n\t}\n\treturn dom\n}\n\nconst xmlToTagList = (xml) => {\n\tconst json = xmlToJson(parseXml(xml))\n\tconst list = json['d:multistatus']['d:response']\n\tconst result = []\n\tfor (const index in list) {\n\t\tconst tag = list[index]['d:propstat']\n\n\t\tif (tag['d:status']['#text'] !== 'HTTP/1.1 200 OK') {\n\t\t\tcontinue\n\t\t}\n\t\tresult.push({\n\t\t\tid: parseInt(tag['d:prop']['oc:id']['#text']),\n\t\t\tdisplayName: tag['d:prop']['oc:display-name']['#text'],\n\t\t\tcanAssign: tag['d:prop']['oc:can-assign']['#text'] === 'true',\n\t\t\tuserAssignable: tag['d:prop']['oc:user-assignable']['#text'] === 'true',\n\t\t\tuserVisible: tag['d:prop']['oc:user-visible']['#text'] === 'true',\n\t\t})\n\t}\n\treturn result\n}\n\nconst searchTags = async function() {\n\tif (window.NextcloudVueDocs) {\n\t\treturn Promise.resolve(xmlToTagList(window.NextcloudVueDocs.tags))\n\t}\n\n\tconst result = await axios({\n\t\tmethod: 'PROPFIND',\n\t\turl: generateRemoteUrl('dav') + '/systemtags/',\n\t\tdata: `<?xml version=\"1.0\"?>\n\t\t\t\t\t<d:propfind xmlns:d=\"DAV:\" xmlns:oc=\"http://owncloud.org/ns\">\n\t\t\t\t\t <d:prop>\n\t\t\t\t\t\t<oc:id />\n\t\t\t\t\t\t<oc:display-name />\n\t\t\t\t\t\t<oc:user-visible />\n\t\t\t\t\t\t<oc:user-assignable />\n\t\t\t\t\t\t<oc:can-assign />\n\t\t\t\t\t </d:prop>\n\t\t\t\t\t</d:propfind>`,\n\t})\n\treturn xmlToTagList(result.data)\n}\n\nexport {\n\tsearchTags,\n}\n","<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Single tag selector\n\n```vue\n<template>\n\t<div class=\"wrapper\">\n\t\t<NcSelectTags v-model=\"value\" input-label=\"Tag\" :multiple=\"false\" />\n\t\t{{ value }}\n\t</div>\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tvalue: 1,\n\t\t}\n\t}\n}\n</script>\n```\n\n### Multiple tag selector\n```vue\n<template>\n\t<div class=\"wrapper\">\n\t\t<NcSelectTags v-model=\"value\" input-label=\"Tags\" :multiple=\"true\" />\n\t\t{{ value }}\n\t</div>\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tvalue: [\n\t\t\t\t1,\n\t\t\t\t2,\n\t\t\t],\n\t\t}\n\t}\n}\n</script>\n```\n\n### Custom filter\nBecause of compatibility reasons only 5 tag entries are shown by default. If you want to show all available tags set the `limit` prop to `null`:\n```vue\n<template>\n\t<div class=\"wrapper\">\n\t\t<NcSelectTags v-model=\"value\" input-label=\"Tags\" :limit=\"null\" />\n\t\t{{ value }}\n\t</div>\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tvalue: [\n\t\t\t\t1,\n\t\t\t\t2,\n\t\t\t],\n\t\t}\n\t}\n}\n</script>\n```\n\nIt's also possible to apply any custom filter logic by setting the `optionsFilter` function-prop to any custom function receiving the tag element and the index:\n```vue\n<template>\n\t<div class=\"wrapper\">\n\t\t<NcSelectTags v-model=\"value\" input-label=\"Tags\" :options-filter=\"customFilter\" />\n\t\t{{ value }}\n\t</div>\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tvalue: [\n\t\t\t\t3,\n\t\t\t],\n\t\t}\n\t},\n\tmethods: {\n\t\t/**\n\t\t* Implement your custom filter logic to filter tags delivered\n\t\t* by the server\n\t\t*\n\t\t* @param {object} the tag object\n\t\t* @param {int} the index of the object inside the collection\n\t\t*/\n\t\tcustomFilter(element, index) {\n\t\t\t/*\n\t\t\t* Tag objects returned by the server will have the\n\t\t\t* following properties (see also api.js):\n\t\t\t* id, displayName, canAssign, userAssignable, userVisible\n\t\t\t*/\n\t\t\treturn element.id >= 2 && element.displayName !== '' && element.canAssign && element.userAssignable && element.userVisible\n\t\t}\n\t}\n}\n</script>\n```\n</docs>\n\n<template>\n\t<NcSelect v-bind=\"propsToForward\"\n\t\t:options=\"availableOptions\"\n\t\t:close-on-select=\"!multiple\"\n\t\t:model-value=\"localValue\"\n\t\t@search=\"search = $event\"\n\t\t@update:model-value=\"handleInput\">\n\t\t<template #option=\"option\">\n\t\t\t<NcEllipsisedOption :name=\"getOptionLabel(option)\"\n\t\t\t\t:search=\"search\" />\n\t\t</template>\n\t\t<template #selected-option=\"selectedOption\">\n\t\t\t<NcEllipsisedOption :name=\"getOptionLabel(selectedOption)\"\n\t\t\t\t:search=\"search\" />\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</NcSelect>\n</template>\n\n<script>\nimport NcEllipsisedOption from '../NcEllipsisedOption/index.js'\nimport NcSelect from '../NcSelect/index.js'\n\nimport { searchTags } from './api.js'\nimport { t } from '../../l10n.js'\n\nexport default {\n\tname: 'NcSelectTags',\n\n\tcomponents: {\n\t\tNcEllipsisedOption,\n\t\tNcSelect,\n\t},\n\n\tprops: {\n\t\t// Add NcSelect prop defaults and populate $props\n\t\t...NcSelect.props,\n\n\t\t/**\n\t\t * Enable automatic fetching of tags\n\t\t *\n\t\t * If `false`, available tags must be passed using the `options` prop\n\t\t */\n\t\tfetchTags: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\n\t\t/**\n\t\t * Callback to generate the label text\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#getoptionlabel\n\t\t */\n\t\tgetOptionLabel: {\n\t\t\ttype: Function,\n\t\t\tdefault: (option) => {\n\t\t\t\tconst { displayName, userVisible, userAssignable } = option\n\t\t\t\tif (userVisible === false) {\n\t\t\t\t\treturn t('{tag} (invisible)', { tag: displayName })\n\t\t\t\t}\n\t\t\t\tif (userAssignable === false) {\n\t\t\t\t\treturn t('{tag} (restricted)', { tag: displayName })\n\t\t\t\t}\n\t\t\t\treturn displayName\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Sets the maximum number of tags to display in the dropdown list\n\t\t *\n\t\t * Because of compatibility reasons only 5 tag entries are shown by\n\t\t * default\n\t\t */\n\t\tlimit: {\n\t\t\ttype: Number,\n\t\t\tdefault: 5,\n\t\t},\n\n\t\t/**\n\t\t * Allow selection of multiple options\n\t\t *\n\t\t * This prop automatically sets the internal `closeOnSelect` prop to\n\t\t * its boolean opposite\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: true,\n\t\t},\n\n\t\t/**\n\t\t * Callback to filter available options\n\t\t */\n\t\toptionsFilter: {\n\t\t\ttype: Function,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Enable passing of `value` prop and emitted `input` events as-is\n\t\t * i.e. for usage with `v-model`\n\t\t *\n\t\t * If `true`, custom internal `value` and `input` handling is disabled\n\t\t */\n\t\tpassthru: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\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: t('Select a tag'),\n\t\t},\n\n\t\t/**\n\t\t * Currently selected value\n\t\t */\n\t\tmodelValue: {\n\t\t\ttype: [Number, Array, Object],\n\t\t\tdefault: null,\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'update:modelValue',\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],\n\n\tdata() {\n\t\treturn {\n\t\t\tsearch: '',\n\t\t\tavailableTags: [],\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tavailableOptions() {\n\t\t\tif (this.optionsFilter) {\n\t\t\t\treturn this.tags.filter(this.optionsFilter)\n\t\t\t}\n\t\t\treturn this.tags\n\t\t},\n\n\t\tlocalValue() {\n\t\t\tif (this.passthru) {\n\t\t\t\treturn this.modelValue\n\t\t\t}\n\t\t\tif (this.tags.length === 0) {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\tif (this.multiple) {\n\t\t\t\treturn this.modelValue\n\t\t\t\t\t.filter(tag => tag !== '')\n\t\t\t\t\t.map(id => this.tags.find(tag2 => tag2.id === id))\n\t\t\t} else {\n\t\t\t\treturn this.tags.find(tag => tag.id === this.modelValue)\n\t\t\t}\n\t\t},\n\n\t\tpropsToForward() {\n\t\t\tconst propsToForward = { ...this.$props }\n\t\t\t// Props handled by this component\n\t\t\tdelete propsToForward.fetchTags\n\t\t\tdelete propsToForward.optionsFilter\n\t\t\tdelete propsToForward.passthru\n\n\t\t\treturn propsToForward\n\t\t},\n\n\t\ttags() {\n\t\t\tif (!this.fetchTags) {\n\t\t\t\treturn this.options\n\t\t\t}\n\t\t\treturn this.availableTags\n\t\t},\n\t},\n\n\tasync created() {\n\t\tif (!this.fetchTags) {\n\t\t\treturn\n\t\t}\n\t\ttry {\n\t\t\tconst result = await searchTags()\n\t\t\tthis.availableTags = result\n\t\t} catch (error) {\n\t\t\tconsole.error('Loading systemtags failed', error)\n\t\t}\n\t},\n\n\tmethods: {\n\t\thandleInput(value) {\n\t\t\tif (this.passthru) {\n\t\t\t\tthis.$emit('update:modelValue', value)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (this.multiple) {\n\t\t\t\t/**\n\t\t\t\t * Emitted on input events of the multiselect field\n\t\t\t\t *\n\t\t\t\t * @type {number|number[]}\n\t\t\t\t */\n\t\t\t\tthis.$emit('update:modelValue', value.map(element => element.id))\n\t\t\t} else {\n\t\t\t\tif (value === null) {\n\t\t\t\t\tthis.$emit('update:modelValue', null)\n\t\t\t\t} else {\n\t\t\t\t\tthis.$emit('update:modelValue', value.id)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n"],"names":["_createBlock","_mergeProps","_createSlots","_withCtx","_createVNode","_renderList","_renderSlot","_normalizeProps","_guardReactiveProps"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import '../assets/NcSettingsInputText-B-V6Y4MD.css';
|
|
2
|
-
import { r as register, g as
|
|
2
|
+
import { r as register, g as t44, a as t } from "./_l10n-BNGeEX3W.mjs";
|
|
3
3
|
import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
|
|
4
4
|
import { createElementBlock, openBlock, withModifiers, createElementVNode, createCommentVNode, toDisplayString } from "vue";
|
|
5
5
|
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
6
|
-
register(
|
|
6
|
+
register(t44);
|
|
7
7
|
const _sfc_main = {
|
|
8
8
|
name: "NcSettingsInputText",
|
|
9
9
|
props: {
|
|
@@ -120,4 +120,4 @@ const NcSettingsInputText = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _
|
|
|
120
120
|
export {
|
|
121
121
|
NcSettingsInputText as N
|
|
122
122
|
};
|
|
123
|
-
//# sourceMappingURL=NcSettingsInputText-
|
|
123
|
+
//# sourceMappingURL=NcSettingsInputText-B129n9sr.mjs.map
|
package/dist/chunks/{NcSettingsInputText-BEHu3xAI.mjs.map → NcSettingsInputText-B129n9sr.mjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcSettingsInputText-
|
|
1
|
+
{"version":3,"file":"NcSettingsInputText-B129n9sr.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 { createElementId } from '../../utils/createElementId.ts'\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-' + createElementId(),\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-inline-end: 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-inline-start: 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,gBAAiB;AAAA,MACzD,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;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import '../assets/NcSettingsSection-Dyrgo_fF.css';
|
|
2
|
-
import { r as register,
|
|
2
|
+
import { r as register, n as t24, a as t } from "./_l10n-BNGeEX3W.mjs";
|
|
3
3
|
import { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, resolveComponent, renderSlot, createTextVNode, createVNode } from "vue";
|
|
4
4
|
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
5
5
|
register(t24);
|
|
@@ -113,4 +113,4 @@ const NcSettingsSection = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sf
|
|
|
113
113
|
export {
|
|
114
114
|
NcSettingsSection as N
|
|
115
115
|
};
|
|
116
|
-
//# sourceMappingURL=NcSettingsSection-
|
|
116
|
+
//# sourceMappingURL=NcSettingsSection-CjWtq7TT.mjs.map
|
package/dist/chunks/{NcSettingsSection-X7f0W7vZ.mjs.map → NcSettingsSection-CjWtq7TT.mjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcSettingsSection-
|
|
1
|
+
{"version":3,"file":"NcSettingsSection-CjWtq7TT.mjs","sources":["../../node_modules/vue-material-design-icons/HelpCircle.vue","../../src/components/NcSettingsSection/NcSettingsSection.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon help-circle-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M15.07,11.25L14.17,12.17C13.45,12.89 13,13.5 13,15H11V14.5C11,13.39 11.45,12.39 12.17,11.67L13.41,10.41C13.78,10.05 14,9.55 14,9C14,7.89 13.1,7 12,7A2,2 0 0,0 10,9H8A4,4 0 0,1 12,5A4,4 0 0,1 16,9C16,9.88 15.64,10.67 15.07,11.25M13,19H11V17H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"HelpCircleIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### General description\n\nThis component is to be used in the settings section of nextcloud.\n\n### Examples\n\n```vue\n<template>\n\t<div>\n\t\t<NcSettingsSection name=\"Two-factor authentication\"\n\t\t\tdescription=\"Two-factor authentication can be enforced for all accounts and specific groups. If they do not have a two-factor provider configured, they will be unable to log into the system.\"\n\t\t\tdoc-url=\"https://docs.nextcloud.com/server/19/go.php?to=admin-2fa\">\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\">\n\t\t\t\tEnforce two-factor authentication\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</NcSettingsSection>\n\n\t\t<NcSettingsSection name=\"Server-side encryption\"\n\t\t\tdescription=\"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed.\">\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\">\n\t\t\t\tEnable server-side encryption\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</NcSettingsSection>\n\n\t\t<NcSettingsSection name=\"OAuth 2.0 clients\"\n\t\t\tdescription=\"OAuth 2.0 allows external services to request access to Nextcloud.\"\n\t\t\tdoc-url=\"https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/oauth2.html\">\n\n\t\t\tAny content here\n\n\t\t</NcSettingsSection>\n\t</div>\n</template>\n```\n</docs>\n\n<template>\n\t<div class=\"settings-section\">\n\t\t<h2 class=\"settings-section__name\">\n\t\t\t{{ name }}\n\t\t\t<a v-if=\"hasDocUrl\"\n\t\t\t\t:href=\"docUrl\"\n\t\t\t\tclass=\"settings-section__info\"\n\t\t\t\t:title=\"docNameTranslated\"\n\t\t\t\t:aria-label=\"docNameTranslated\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t\trel=\"noreferrer nofollow\">\n\t\t\t\t<HelpCircle :size=\"20\" />\n\t\t\t</a>\n\t\t</h2>\n\t\t<p v-if=\"hasDescription\"\n\t\t\tclass=\"settings-section__desc\">\n\t\t\t{{ description }}\n\t\t</p>\n\t\t<slot />\n\t</div>\n</template>\n\n<script>\nimport { t } from '../../l10n.js'\n\nimport HelpCircle from 'vue-material-design-icons/HelpCircle.vue'\n\nexport default {\n\tname: 'NcSettingsSection',\n\n\tcomponents: {\n\t\tHelpCircle,\n\t},\n\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tdocUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tdocNameTranslated: t('External documentation for {name}', {\n\t\t\t\tname: this.name,\n\t\t\t}),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\thasDescription() {\n\t\t\treturn this.description.length > 0\n\t\t},\n\t\thasDocUrl() {\n\t\t\treturn this.docUrl.length > 0\n\t\t},\n\t},\n}\n\n</script>\n\n<style lang=\"scss\" scoped>\n$maxWidth: 900px;\n$sectionMargin: calc(var(--default-grid-baseline) * 7);\n\n.settings-section {\n\tdisplay: block;\n\tpadding: 0 0 calc(var(--default-grid-baseline) * 5) 0;\n\tmargin: $sectionMargin;\n\twidth: min($maxWidth, 100% - calc($sectionMargin * 2));\n\n\t&:not(:last-child) {\n\t\tborder-bottom: 1px solid var(--color-border);\n\t}\n\n\t&__name {\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tmax-width: $maxWidth;\n\t\tmargin-top: 0; // Remove default heading margin\n\t}\n\n\t&__info {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: var(--default-clickable-area);\n\t\theight: var(--default-clickable-area);\n\t\t// make sure to properly align the icon with the text\n\t\tmargin: calc($icon-margin * -1);\n\t\tmargin-inline-start: 0;\n\t\tcolor: var(--color-text-maxcontrast);\n\n\t\t&:hover, &:focus, &:active {\n\t\t\tcolor: var(--color-main-text);\n\t\t}\n\t}\n\n\t&__desc {\n\t\tmargin-top: -.2em;\n\t\tmargin-bottom: 1em;\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tmax-width: $maxWidth;\n\t}\n}\n\n</style>\n"],"names":["_sfc_main","_hoisted_1","_hoisted_2","_hoisted_3","_createElementBlock","_mergeProps","_createElementVNode","_hoisted_4","_createCommentVNode","_openBlock","_createTextVNode","_toDisplayString","_createVNode","_renderSlot"],"mappings":";;;;AAoBA,MAAKA,cAAU;AAAA,EACb,MAAM;AAAA,EACN,OAAO,CAAC,OAAO;AAAA,EACf,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,IACP;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,EACF;AACF;AApCA,MAAAC,eAAA,CAAA,eAAA,YAAA;AAAA,MAAAC,eAAA,CAAA,QAAA,SAAA,QAAA;AAYY,MAAAC,eAAA,EAAA,GAAE,oUAAmU;uBAZjV,KAAA,EAAA;;sBACEC,mBAeO,QAfPC,WAAc,KAAM,QAAA;AAAA,IACb,eAAa,OAAK,QAAA,OAAA;AAAA,IAClB,cAAY,OAAK;AAAA,IAClB,OAAM;AAAA,IACN,MAAK;AAAA,IACJ,SAAK,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA,YAAE,KAAK,MAAA,SAAU,MAAM;AAAA;kBACjCD,mBAQM,OAAA;AAAA,MARA,MAAM,OAAS;AAAA,MAChB,OAAM;AAAA,MACL,OAAO,OAAI;AAAA,MACX,QAAQ,OAAI;AAAA,MACb,SAAQ;AAAA;MACXE,mBAEO,QAFPH,cAEO;AAAA,QADQ,OAAK,sBAAlBC,mBAAuC,SAb/CG,8BAa+B,OAAK,KAAA,GAAA,CAAA,KAbpCC,mBAAA,IAAA,IAAA;AAAA;IAAA,GAAA,GAAAN,YAAA;AAAA,EAAA,GAAA,IAAAD,YAAA;;;ACqEA,MAAK,YAAU;AAAA,EACd,MAAM;AAAA,EAEN,YAAY;AAAA,IACX;AAAA,EACA;AAAA,EAED,OAAO;AAAA,IACN,MAAM;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,IACV;AAAA,IACD,aAAa;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,IACD,QAAQ;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,EACD;AAAA,EAED,OAAO;AACN,WAAO;AAAA,MACN,mBAAmB,EAAE,qCAAqC;AAAA,QACzD,MAAM,KAAK;AAAA,MACZ,CAAC;AAAA,IACF;AAAA,EACA;AAAA,EAED,UAAU;AAAA,IACT,iBAAiB;AAChB,aAAO,KAAK,YAAY,SAAS;AAAA,IACjC;AAAA,IACD,YAAY;AACX,aAAO,KAAK,OAAO,SAAS;AAAA,IAC5B;AAAA,EACD;AACF;AAhEM,MAAA,aAAA,EAAA,OAAM,mBAAkB;AACxB,MAAA,aAAA,EAAA,OAAM,yBAAwB;AA5CpC,MAAA,aAAA,CAAA,QAAA,SAAA,YAAA;;EAAA,KAAA;AAAA,EAyDG,OAAM;;;;AAdR,SAAAQ,UAAA,GAAAL,mBAkBM,OAlBN,YAkBM;AAAA,IAjBLE,mBAWK,MAXL,YAWK;AAAA,MAvDPI,gBA6CMC,gBAAA,OAAA,IAAI,IAAG,KACV,CAAA;AAAA,MAAS,SAAS,0BAAlBP,mBAQI,KAAA;AAAA,QAtDP,KAAA;AAAA,QA+CK,MAAM,OAAM;AAAA,QACb,OAAM;AAAA,QACL,OAAO,MAAiB;AAAA,QACxB,cAAY,MAAiB;AAAA,QAC9B,QAAO;AAAA,QACP,KAAI;AAAA;QACJQ,YAAyB,uBAAA,EAAZ,MAAM,GAAE,CAAA;AAAA,MArDzB,GAAA,GAAA,UAAA,KAAAJ,mBAAA,IAAA,IAAA;AAAA;IAwDW,SAAc,+BAAvBJ,mBAGI,KAHJ,YAGIO,gBADA,OAAW,WAAA,GAAA,CAAA,KA1DjBH,mBAAA,IAAA,IAAA;AAAA,IA4DEK,WAAQ,KAAA,QAAA,WAAA,CAAA,GAAA,QAAA,IAAA;AAAA;;;","x_google_ignoreList":[0]}
|
package/dist/chunks/{NcSettingsSelectGroup-DfrKchOy.mjs → NcSettingsSelectGroup-B8uq0KIw.mjs}
RENAMED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import '../assets/NcSettingsSelectGroup-DZcNr_Dq.css';
|
|
2
|
-
import { N as NcSelect } from "./NcSelect-
|
|
3
|
-
import { r as register, f as
|
|
2
|
+
import { N as NcSelect } from "./NcSelect-BkTH-Yqm.mjs";
|
|
3
|
+
import { r as register, f as t45, a as t } from "./_l10n-BNGeEX3W.mjs";
|
|
4
4
|
import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
|
|
5
5
|
import axios from "@nextcloud/axios";
|
|
6
6
|
import debounce from "debounce";
|
|
7
7
|
import { generateOcsUrl } from "@nextcloud/router";
|
|
8
8
|
import { resolveComponent, createElementBlock, openBlock, createCommentVNode, createVNode, withDirectives, toDisplayString, createElementVNode, vShow } from "vue";
|
|
9
9
|
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
10
|
-
register(
|
|
10
|
+
register(t45);
|
|
11
11
|
const _sfc_main = {
|
|
12
12
|
name: "NcSettingsSelectGroup",
|
|
13
13
|
components: {
|
|
@@ -224,4 +224,4 @@ const NcSettingsSelectGroup = /* @__PURE__ */ _export_sfc(_sfc_main, [["render",
|
|
|
224
224
|
export {
|
|
225
225
|
NcSettingsSelectGroup as N
|
|
226
226
|
};
|
|
227
|
-
//# sourceMappingURL=NcSettingsSelectGroup-
|
|
227
|
+
//# sourceMappingURL=NcSettingsSelectGroup-B8uq0KIw.mjs.map
|