@nextcloud/vue 8.9.1 → 8.10.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 +28 -0
- package/README.md +4 -2
- package/dist/Components/NcActionButtonGroup.cjs +1 -1
- package/dist/Components/NcActionButtonGroup.mjs +1 -1
- package/dist/Components/NcActionInput.cjs +1 -1
- package/dist/Components/NcActionInput.mjs +1 -1
- package/dist/Components/NcActions.cjs +1 -1
- package/dist/Components/NcActions.mjs +1 -1
- package/dist/Components/NcAppContent.cjs +1 -1
- package/dist/Components/NcAppContent.mjs +1 -1
- package/dist/Components/NcAppNavigation.cjs +1 -1
- package/dist/Components/NcAppNavigation.mjs +1 -1
- package/dist/Components/NcAppNavigationCaption.cjs +1 -1
- package/dist/Components/NcAppNavigationCaption.mjs +1 -1
- package/dist/Components/NcAppNavigationItem.cjs +1 -1
- package/dist/Components/NcAppNavigationItem.mjs +1 -1
- package/dist/Components/NcAppNavigationList.cjs +6 -6
- package/dist/Components/NcAppNavigationList.cjs.map +1 -1
- package/dist/Components/NcAppNavigationList.mjs +8 -8
- package/dist/Components/NcAppNavigationList.mjs.map +1 -1
- package/dist/Components/NcAppNavigationNewItem.cjs +1 -1
- package/dist/Components/NcAppNavigationNewItem.mjs +1 -1
- package/dist/Components/NcAppNavigationSettings.cjs +1 -1
- package/dist/Components/NcAppNavigationSettings.mjs +1 -1
- package/dist/Components/NcAppNavigationToggle.cjs +1 -1
- package/dist/Components/NcAppNavigationToggle.mjs +1 -1
- package/dist/Components/NcAppSettingsDialog.cjs +1 -1
- package/dist/Components/NcAppSettingsDialog.mjs +1 -1
- package/dist/Components/NcAppSidebar.cjs +1 -1
- package/dist/Components/NcAppSidebar.mjs +1 -1
- package/dist/Components/NcAvatar.cjs +1 -1
- package/dist/Components/NcAvatar.mjs +1 -1
- package/dist/Components/NcBreadcrumb.cjs +1 -1
- package/dist/Components/NcBreadcrumb.mjs +1 -1
- package/dist/Components/NcBreadcrumbs.cjs +1 -1
- package/dist/Components/NcBreadcrumbs.mjs +1 -1
- package/dist/Components/NcCheckboxRadioSwitch.cjs +1 -1
- package/dist/Components/NcCheckboxRadioSwitch.mjs +1 -1
- package/dist/Components/NcColorPicker.cjs +1 -1
- package/dist/Components/NcColorPicker.mjs +1 -1
- package/dist/Components/NcContent.cjs +1 -1
- package/dist/Components/NcContent.mjs +1 -1
- package/dist/Components/NcDashboardWidget.cjs +1 -1
- package/dist/Components/NcDashboardWidget.mjs +1 -1
- package/dist/Components/NcDashboardWidgetItem.cjs +1 -1
- package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
- package/dist/Components/NcDateTime.cjs +1 -1
- package/dist/Components/NcDateTime.mjs +1 -1
- package/dist/Components/NcDateTimePicker.cjs +2 -2
- package/dist/Components/NcDateTimePicker.mjs +4 -4
- package/dist/Components/NcDateTimePickerNative.cjs +1 -1
- package/dist/Components/NcDateTimePickerNative.mjs +1 -1
- package/dist/Components/NcEmojiPicker.cjs +1 -1
- package/dist/Components/NcEmojiPicker.mjs +1 -1
- package/dist/Components/NcListItem.cjs +1 -1
- package/dist/Components/NcListItem.mjs +1 -1
- package/dist/Components/NcListItemIcon.cjs +1 -1
- package/dist/Components/NcListItemIcon.mjs +1 -1
- package/dist/Components/NcModal.cjs +1 -1
- package/dist/Components/NcModal.mjs +3 -3
- package/dist/Components/NcPasswordField.cjs +1 -1
- package/dist/Components/NcPasswordField.mjs +1 -1
- package/dist/Components/NcRelatedResourcesPanel.cjs +1 -1
- package/dist/Components/NcRelatedResourcesPanel.mjs +1 -1
- package/dist/Components/NcRichContenteditable.cjs +1 -1
- package/dist/Components/NcRichContenteditable.mjs +2 -2
- package/dist/Components/NcRichText.cjs +1 -1
- package/dist/Components/NcRichText.mjs +3 -3
- package/dist/Components/NcSelect.cjs +1 -1
- package/dist/Components/NcSelect.mjs +1 -1
- package/dist/Components/NcSelectTags.cjs +1 -1
- package/dist/Components/NcSelectTags.mjs +1 -1
- package/dist/Components/NcSettingsInputText.cjs +1 -1
- package/dist/Components/NcSettingsInputText.mjs +1 -1
- package/dist/Components/NcSettingsSection.cjs +1 -1
- package/dist/Components/NcSettingsSection.mjs +1 -1
- package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
- package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
- package/dist/Components/NcTextField.cjs +1 -1
- package/dist/Components/NcTextField.mjs +1 -1
- package/dist/Components/NcTimezonePicker.cjs +1 -1
- package/dist/Components/NcTimezonePicker.mjs +1 -1
- package/dist/Components/NcUserBubble.cjs +1 -1
- package/dist/Components/NcUserBubble.mjs +1 -1
- package/dist/Components/NcUserStatusIcon.cjs +1 -1
- package/dist/Components/NcUserStatusIcon.mjs +1 -1
- package/dist/Functions/reference.cjs +1 -1
- package/dist/Functions/reference.mjs +1 -1
- package/dist/Functions/usernameToColor.cjs +1 -1
- package/dist/Functions/usernameToColor.mjs +1 -1
- package/dist/Mixins/richEditor.cjs +1 -1
- package/dist/Mixins/richEditor.mjs +1 -1
- package/dist/assets/{NcActions-CEbgl0_n.css → NcActions-DL7ZZIjx.css} +12 -12
- package/dist/assets/{NcAppContent-Cv8rRTyy.css → NcAppContent-DcXMrsBz.css} +32 -23
- package/dist/assets/{NcAppNavigation-D2eVie5R.css → NcAppNavigation-BgGJuJPv.css} +15 -9
- package/dist/assets/{NcAppNavigationList-BGig8-Dj.css → NcAppNavigationList-CUnaMQQD.css} +4 -8
- package/dist/assets/{NcDateTimePicker-C3D1hmlB.css → NcDateTimePicker-DR7jRFm4.css} +10 -10
- package/dist/assets/NcListItem-DLFj1G31.css +175 -0
- package/dist/assets/{NcRelatedResourcesPanel-COW9gzml.css → NcRelatedResourcesPanel-D6K7OQFJ.css} +19 -13
- package/dist/assets/{NcRichContenteditable-CtbqXSHe.css → NcRichContenteditable-DvTdg1DO.css} +12 -12
- package/dist/assets/{NcRichText-BMe-xENJ.css → NcRichText-D2BBsB-_.css} +65 -65
- package/dist/assets/{referencePickerModal-C1KJzICb.css → referencePickerModal-DZ7qJeiJ.css} +19 -19
- package/dist/chunks/{GenColors-vI-bx9ZY.cjs → GenColors-DQEIzxqb.cjs} +1 -1
- package/dist/chunks/{GenColors-vI-bx9ZY.cjs.map → GenColors-DQEIzxqb.cjs.map} +1 -1
- package/dist/chunks/{GenColors-BteFtwOv.mjs → GenColors-SIdMEx1i.mjs} +1 -1
- package/dist/chunks/{GenColors-BteFtwOv.mjs.map → GenColors-SIdMEx1i.mjs.map} +1 -1
- package/dist/chunks/{NcActionButtonGroup-BdxkXNwc.cjs → NcActionButtonGroup-B47_9Jpc.cjs} +1 -1
- package/dist/chunks/{NcActionButtonGroup-BdxkXNwc.cjs.map → NcActionButtonGroup-B47_9Jpc.cjs.map} +1 -1
- package/dist/chunks/{NcActionButtonGroup-SS3PkUD2.mjs → NcActionButtonGroup-D6_CIr2e.mjs} +1 -1
- package/dist/chunks/{NcActionButtonGroup-SS3PkUD2.mjs.map → NcActionButtonGroup-D6_CIr2e.mjs.map} +1 -1
- package/dist/chunks/{NcActionInput-D308ZntG.cjs → NcActionInput-BPPLjfW5.cjs} +1 -1
- package/dist/chunks/{NcActionInput-D308ZntG.cjs.map → NcActionInput-BPPLjfW5.cjs.map} +1 -1
- package/dist/chunks/{NcActionInput-BHq3Le0q.mjs → NcActionInput-GZcIfn-2.mjs} +4 -4
- package/dist/chunks/{NcActionInput-BHq3Le0q.mjs.map → NcActionInput-GZcIfn-2.mjs.map} +1 -1
- package/dist/chunks/{NcActions-Dfkog_G0.cjs → NcActions-B049TCK5.cjs} +144 -85
- package/dist/chunks/NcActions-B049TCK5.cjs.map +1 -0
- package/dist/chunks/{NcActions-CpU9WXzM.mjs → NcActions-D2wvJbMw.mjs} +144 -85
- package/dist/chunks/NcActions-D2wvJbMw.mjs.map +1 -0
- package/dist/chunks/{NcAppContent-BDwOdxJE.mjs → NcAppContent-CUnQ4EVa.mjs} +67 -40
- package/dist/chunks/NcAppContent-CUnQ4EVa.mjs.map +1 -0
- package/dist/chunks/{NcAppContent-kqYjKpzU.cjs → NcAppContent-CuOJJPbt.cjs} +59 -32
- package/dist/chunks/NcAppContent-CuOJJPbt.cjs.map +1 -0
- package/dist/chunks/{NcAppNavigation-C1Qe3lsk.mjs → NcAppNavigation-Dl1g_orJ.mjs} +25 -23
- package/dist/chunks/NcAppNavigation-Dl1g_orJ.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigation-C423R_m2.cjs → NcAppNavigation-DtxPGDOf.cjs} +25 -24
- package/dist/chunks/NcAppNavigation-DtxPGDOf.cjs.map +1 -0
- package/dist/chunks/{NcAppNavigationCaption-BKchbDsJ.cjs → NcAppNavigationCaption-BefNtbTx.cjs} +1 -1
- package/dist/chunks/{NcAppNavigationCaption-BKchbDsJ.cjs.map → NcAppNavigationCaption-BefNtbTx.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationCaption-DsT6O4Hx.mjs → NcAppNavigationCaption-g4NsNSvL.mjs} +1 -1
- package/dist/chunks/{NcAppNavigationCaption-DsT6O4Hx.mjs.map → NcAppNavigationCaption-g4NsNSvL.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationItem-bjPcEx5D.mjs → NcAppNavigationItem-BSV20azN.mjs} +3 -3
- package/dist/chunks/{NcAppNavigationItem-bjPcEx5D.mjs.map → NcAppNavigationItem-BSV20azN.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationItem-CABF2T4q.cjs → NcAppNavigationItem-DVlpQH-e.cjs} +1 -1
- package/dist/chunks/{NcAppNavigationItem-CABF2T4q.cjs.map → NcAppNavigationItem-DVlpQH-e.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationNewItem-BHCgaCoK.mjs → NcAppNavigationNewItem-C7PviElx.mjs} +1 -1
- package/dist/chunks/{NcAppNavigationNewItem-BHCgaCoK.mjs.map → NcAppNavigationNewItem-C7PviElx.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationNewItem-t45tM5u1.cjs → NcAppNavigationNewItem-DG-KzABc.cjs} +1 -1
- package/dist/chunks/{NcAppNavigationNewItem-t45tM5u1.cjs.map → NcAppNavigationNewItem-DG-KzABc.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSettings-CBeUiVLk.cjs → NcAppNavigationSettings-CoutbNdC.cjs} +1 -1
- package/dist/chunks/{NcAppNavigationSettings-CBeUiVLk.cjs.map → NcAppNavigationSettings-CoutbNdC.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSettings-BQD7JA4m.mjs → NcAppNavigationSettings-D8MkJD-a.mjs} +1 -1
- package/dist/chunks/{NcAppNavigationSettings-BQD7JA4m.mjs.map → NcAppNavigationSettings-D8MkJD-a.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationToggle-DDChOnAq.cjs → NcAppNavigationToggle-ACf6tmPq.cjs} +1 -1
- package/dist/chunks/{NcAppNavigationToggle-DDChOnAq.cjs.map → NcAppNavigationToggle-ACf6tmPq.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationToggle-BZxbkhCr.mjs → NcAppNavigationToggle-n8ES2H5d.mjs} +1 -1
- package/dist/chunks/{NcAppNavigationToggle-BZxbkhCr.mjs.map → NcAppNavigationToggle-n8ES2H5d.mjs.map} +1 -1
- package/dist/chunks/{NcAppSettingsDialog-DeFBTD2J.mjs → NcAppSettingsDialog-CmQPplb5.mjs} +1 -1
- package/dist/chunks/{NcAppSettingsDialog-DeFBTD2J.mjs.map → NcAppSettingsDialog-CmQPplb5.mjs.map} +1 -1
- package/dist/chunks/{NcAppSettingsDialog-EUys9Os_.cjs → NcAppSettingsDialog-DYr9eXTI.cjs} +1 -1
- package/dist/chunks/{NcAppSettingsDialog-EUys9Os_.cjs.map → NcAppSettingsDialog-DYr9eXTI.cjs.map} +1 -1
- package/dist/chunks/{NcAppSidebar-Du-IRmEO.cjs → NcAppSidebar-BsbmJ5H_.cjs} +2 -2
- package/dist/chunks/{NcAppSidebar-Du-IRmEO.cjs.map → NcAppSidebar-BsbmJ5H_.cjs.map} +1 -1
- package/dist/chunks/{NcAppSidebar-CdSvRI6l.mjs → NcAppSidebar-CSjqjYTb.mjs} +3 -3
- package/dist/chunks/{NcAppSidebar-CdSvRI6l.mjs.map → NcAppSidebar-CSjqjYTb.mjs.map} +1 -1
- package/dist/chunks/{NcAvatar-e0M-nnF6.mjs → NcAvatar-BdtXzaRJ.mjs} +4 -4
- package/dist/chunks/{NcAvatar-e0M-nnF6.mjs.map → NcAvatar-BdtXzaRJ.mjs.map} +1 -1
- package/dist/chunks/{NcAvatar-BEet_8fB.cjs → NcAvatar-Bn9oT7sS.cjs} +2 -2
- package/dist/chunks/{NcAvatar-BEet_8fB.cjs.map → NcAvatar-Bn9oT7sS.cjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumb-CVMyBckA.mjs → NcBreadcrumb-D8yGqnFJ.mjs} +1 -1
- package/dist/chunks/{NcBreadcrumb-CVMyBckA.mjs.map → NcBreadcrumb-D8yGqnFJ.mjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumb-DVXsgQkE.cjs → NcBreadcrumb-DApyHRGZ.cjs} +1 -1
- package/dist/chunks/{NcBreadcrumb-DVXsgQkE.cjs.map → NcBreadcrumb-DApyHRGZ.cjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumbs-DkgzO9f5.cjs → NcBreadcrumbs-BoA2lxaY.cjs} +1 -1
- package/dist/chunks/{NcBreadcrumbs-DkgzO9f5.cjs.map → NcBreadcrumbs-BoA2lxaY.cjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumbs-DqRU0BfB.mjs → NcBreadcrumbs-DVyfjkgH.mjs} +2 -2
- package/dist/chunks/{NcBreadcrumbs-DqRU0BfB.mjs.map → NcBreadcrumbs-DVyfjkgH.mjs.map} +1 -1
- package/dist/chunks/{NcCheckboxRadioSwitch-Dt96X5bR.cjs → NcCheckboxRadioSwitch-BEYj-jaN.cjs} +2 -2
- package/dist/chunks/{NcCheckboxRadioSwitch-Dt96X5bR.cjs.map → NcCheckboxRadioSwitch-BEYj-jaN.cjs.map} +1 -1
- package/dist/chunks/{NcCheckboxRadioSwitch-7Yib86y3.mjs → NcCheckboxRadioSwitch-DiNnRbJI.mjs} +2 -2
- package/dist/chunks/{NcCheckboxRadioSwitch-7Yib86y3.mjs.map → NcCheckboxRadioSwitch-DiNnRbJI.mjs.map} +1 -1
- package/dist/chunks/{NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-CKROuACA.mjs → NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-DMJGZndr.mjs} +1 -1
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-DMJGZndr.mjs.map +1 -0
- package/dist/chunks/{NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-C1WLneXl.cjs → NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-Dh3GUSYj.cjs} +1 -1
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-Dh3GUSYj.cjs.map +1 -0
- package/dist/chunks/{NcColorPicker-BVqwn1Fr.cjs → NcColorPicker-Acx2mFFG.cjs} +1 -1
- package/dist/chunks/{NcColorPicker-BVqwn1Fr.cjs.map → NcColorPicker-Acx2mFFG.cjs.map} +1 -1
- package/dist/chunks/{NcColorPicker-Dkxeigs5.mjs → NcColorPicker-sge8Yr9m.mjs} +2 -2
- package/dist/chunks/{NcColorPicker-Dkxeigs5.mjs.map → NcColorPicker-sge8Yr9m.mjs.map} +1 -1
- package/dist/chunks/{NcContent-Bmeq8hLO.cjs → NcContent-COHfXhM3.cjs} +1 -1
- package/dist/chunks/{NcContent-Bmeq8hLO.cjs.map → NcContent-COHfXhM3.cjs.map} +1 -1
- package/dist/chunks/{NcContent-COIw1X7V.mjs → NcContent-kTlEGtKt.mjs} +1 -1
- package/dist/chunks/{NcContent-COIw1X7V.mjs.map → NcContent-kTlEGtKt.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidget-Cxz_n1AN.mjs → NcDashboardWidget-CL7e1yAw.mjs} +3 -3
- package/dist/chunks/{NcDashboardWidget-Cxz_n1AN.mjs.map → NcDashboardWidget-CL7e1yAw.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidget-DArU3jbL.cjs → NcDashboardWidget-CyrKw12p.cjs} +1 -1
- package/dist/chunks/{NcDashboardWidget-DArU3jbL.cjs.map → NcDashboardWidget-CyrKw12p.cjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidgetItem-BAhzcFfs.cjs → NcDashboardWidgetItem-C6Npm5U9.cjs} +1 -1
- package/dist/chunks/{NcDashboardWidgetItem-BAhzcFfs.cjs.map → NcDashboardWidgetItem-C6Npm5U9.cjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidgetItem-BV2tuXoj.mjs → NcDashboardWidgetItem-Cq-HAbIB.mjs} +2 -2
- package/dist/chunks/{NcDashboardWidgetItem-BV2tuXoj.mjs.map → NcDashboardWidgetItem-Cq-HAbIB.mjs.map} +1 -1
- package/dist/chunks/{NcDateTime-B0oaElJX.mjs → NcDateTime-B1X22iSf.mjs} +1 -1
- package/dist/chunks/{NcDateTime-B0oaElJX.mjs.map → NcDateTime-B1X22iSf.mjs.map} +1 -1
- package/dist/chunks/{NcDateTime-Dl0XztMt.cjs → NcDateTime-CyKYSWsT.cjs} +1 -1
- package/dist/chunks/{NcDateTime-Dl0XztMt.cjs.map → NcDateTime-CyKYSWsT.cjs.map} +1 -1
- package/dist/chunks/{NcEmojiPicker-BCdoIKXJ.cjs → NcEmojiPicker-DuZc08BD.cjs} +1 -1
- package/dist/chunks/{NcEmojiPicker-BCdoIKXJ.cjs.map → NcEmojiPicker-DuZc08BD.cjs.map} +1 -1
- package/dist/chunks/{NcEmojiPicker-fRx7dTTf.mjs → NcEmojiPicker-r6eAlCKl.mjs} +4 -4
- package/dist/chunks/{NcEmojiPicker-fRx7dTTf.mjs.map → NcEmojiPicker-r6eAlCKl.mjs.map} +1 -1
- package/dist/chunks/{NcInputConfirmCancel-DpgXTGmT.cjs → NcInputConfirmCancel-DAaMkW9I.cjs} +1 -1
- package/dist/chunks/{NcInputConfirmCancel-DpgXTGmT.cjs.map → NcInputConfirmCancel-DAaMkW9I.cjs.map} +1 -1
- package/dist/chunks/{NcInputConfirmCancel-BXZqwqY6.mjs → NcInputConfirmCancel-fwl4-RD4.mjs} +1 -1
- package/dist/chunks/{NcInputConfirmCancel-BXZqwqY6.mjs.map → NcInputConfirmCancel-fwl4-RD4.mjs.map} +1 -1
- package/dist/chunks/{NcListItem-wxqWqs4s.cjs → NcListItem-8heZoa83.cjs} +28 -23
- package/dist/chunks/NcListItem-8heZoa83.cjs.map +1 -0
- package/dist/chunks/{NcListItem-C5oWvAZQ.mjs → NcListItem-DxnCJdGU.mjs} +27 -22
- package/dist/chunks/NcListItem-DxnCJdGU.mjs.map +1 -0
- package/dist/chunks/{NcListItemIcon-DfdkSCin.cjs → NcListItemIcon-D5NW3bY2.cjs} +1 -1
- package/dist/chunks/{NcListItemIcon-DfdkSCin.cjs.map → NcListItemIcon-D5NW3bY2.cjs.map} +1 -1
- package/dist/chunks/{NcListItemIcon-WH9TUCxb.mjs → NcListItemIcon-DyE902SK.mjs} +1 -1
- package/dist/chunks/{NcListItemIcon-WH9TUCxb.mjs.map → NcListItemIcon-DyE902SK.mjs.map} +1 -1
- package/dist/chunks/{NcPasswordField-BPAivxc_.mjs → NcPasswordField-BeIfZq-I.mjs} +1 -1
- package/dist/chunks/{NcPasswordField-BPAivxc_.mjs.map → NcPasswordField-BeIfZq-I.mjs.map} +1 -1
- package/dist/chunks/{NcPasswordField-BgNcvN0V.cjs → NcPasswordField-Bx3rarNt.cjs} +1 -1
- package/dist/chunks/{NcPasswordField-BgNcvN0V.cjs.map → NcPasswordField-Bx3rarNt.cjs.map} +1 -1
- package/dist/chunks/{NcRelatedResourcesPanel-Cp8Au2iI.cjs → NcRelatedResourcesPanel-BmE02hfU.cjs} +4 -4
- package/dist/chunks/NcRelatedResourcesPanel-BmE02hfU.cjs.map +1 -0
- package/dist/chunks/{NcRelatedResourcesPanel-LTNqJecS.mjs → NcRelatedResourcesPanel-C8HsjDiN.mjs} +8 -8
- package/dist/chunks/NcRelatedResourcesPanel-C8HsjDiN.mjs.map +1 -0
- package/dist/chunks/{NcRichContenteditable-CHggLQuR.mjs → NcRichContenteditable-COl1GELF.mjs} +35 -26
- package/dist/chunks/NcRichContenteditable-COl1GELF.mjs.map +1 -0
- package/dist/chunks/{NcRichContenteditable-hT5m_2tr.cjs → NcRichContenteditable-DVCrsKyc.cjs} +41 -32
- package/dist/chunks/NcRichContenteditable-DVCrsKyc.cjs.map +1 -0
- package/dist/chunks/{NcRichText-BBXbh0Hh.mjs → NcRichText-BEoKx41c.mjs} +45 -29
- package/dist/chunks/NcRichText-BEoKx41c.mjs.map +1 -0
- package/dist/chunks/{NcRichText-BWX8BLVh.cjs → NcRichText-Dow2nMvP.cjs} +35 -19
- package/dist/chunks/NcRichText-Dow2nMvP.cjs.map +1 -0
- package/dist/chunks/{NcSelect-BVmjiQFa.mjs → NcSelect-C_dMqtoe.mjs} +2 -2
- package/dist/chunks/{NcSelect-BVmjiQFa.mjs.map → NcSelect-C_dMqtoe.mjs.map} +1 -1
- package/dist/chunks/{NcSelect-DjTSAsNL.cjs → NcSelect-CyESQ4uQ.cjs} +1 -1
- package/dist/chunks/{NcSelect-DjTSAsNL.cjs.map → NcSelect-CyESQ4uQ.cjs.map} +1 -1
- package/dist/chunks/{NcSelectTags-BJvxyO8E.cjs → NcSelectTags-Bl95j2Kh.cjs} +1 -1
- package/dist/chunks/{NcSelectTags-BJvxyO8E.cjs.map → NcSelectTags-Bl95j2Kh.cjs.map} +1 -1
- package/dist/chunks/{NcSelectTags-Ccv-eQzZ.mjs → NcSelectTags-BoX-3tOa.mjs} +2 -2
- package/dist/chunks/{NcSelectTags-Ccv-eQzZ.mjs.map → NcSelectTags-BoX-3tOa.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsInputText-CcO2Du6E.cjs → NcSettingsInputText-DlBTOZRv.cjs} +1 -1
- package/dist/chunks/{NcSettingsInputText-CcO2Du6E.cjs.map → NcSettingsInputText-DlBTOZRv.cjs.map} +1 -1
- package/dist/chunks/{NcSettingsInputText-DXxmqvcd.mjs → NcSettingsInputText-fLyjAE06.mjs} +1 -1
- package/dist/chunks/{NcSettingsInputText-DXxmqvcd.mjs.map → NcSettingsInputText-fLyjAE06.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSection-DBe4fKFA.mjs → NcSettingsSection-COSdi50c.mjs} +1 -1
- package/dist/chunks/{NcSettingsSection-DBe4fKFA.mjs.map → NcSettingsSection-COSdi50c.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSection-qgIYSB_M.cjs → NcSettingsSection-CoHKnYDP.cjs} +1 -1
- package/dist/chunks/{NcSettingsSection-qgIYSB_M.cjs.map → NcSettingsSection-CoHKnYDP.cjs.map} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-DD8PEgvQ.cjs → NcSettingsSelectGroup-2wsNrz7x.cjs} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-DD8PEgvQ.cjs.map → NcSettingsSelectGroup-2wsNrz7x.cjs.map} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-d2TLOW1O.mjs → NcSettingsSelectGroup-BZG67QrR.mjs} +2 -2
- package/dist/chunks/{NcSettingsSelectGroup-d2TLOW1O.mjs.map → NcSettingsSelectGroup-BZG67QrR.mjs.map} +1 -1
- package/dist/chunks/{NcTextField-CU-YIhL3.mjs → NcTextField-BEpgHsY2.mjs} +1 -1
- package/dist/chunks/{NcTextField-CU-YIhL3.mjs.map → NcTextField-BEpgHsY2.mjs.map} +1 -1
- package/dist/chunks/{NcTextField-CsnzlYWD.cjs → NcTextField-C-2-Of6b.cjs} +1 -1
- package/dist/chunks/{NcTextField-CsnzlYWD.cjs.map → NcTextField-C-2-Of6b.cjs.map} +1 -1
- package/dist/chunks/{NcTimezonePicker-C-Ci2IuC.cjs → NcTimezonePicker-BMlKQe6-.cjs} +1 -1
- package/dist/chunks/{NcTimezonePicker-C-Ci2IuC.cjs.map → NcTimezonePicker-BMlKQe6-.cjs.map} +1 -1
- package/dist/chunks/{NcTimezonePicker-gvp9MAcg.mjs → NcTimezonePicker-JJeMG5Mo.mjs} +2 -2
- package/dist/chunks/{NcTimezonePicker-gvp9MAcg.mjs.map → NcTimezonePicker-JJeMG5Mo.mjs.map} +1 -1
- package/dist/chunks/{NcUserBubble-COhpp9l_.cjs → NcUserBubble-DMBDwtwW.cjs} +1 -1
- package/dist/chunks/{NcUserBubble-COhpp9l_.cjs.map → NcUserBubble-DMBDwtwW.cjs.map} +1 -1
- package/dist/chunks/{NcUserBubble-CbufscPi.mjs → NcUserBubble-RZlZRmxZ.mjs} +1 -1
- package/dist/chunks/{NcUserBubble-CbufscPi.mjs.map → NcUserBubble-RZlZRmxZ.mjs.map} +1 -1
- package/dist/chunks/{NcUserStatusIcon-C7dfcW39.cjs → NcUserStatusIcon-7yBYL8ur.cjs} +4 -4
- package/dist/chunks/NcUserStatusIcon-7yBYL8ur.cjs.map +1 -0
- package/dist/chunks/{NcUserStatusIcon-0SGYQL9L.mjs → NcUserStatusIcon-DMQxYiY6.mjs} +9 -9
- package/dist/chunks/NcUserStatusIcon-DMQxYiY6.mjs.map +1 -0
- package/dist/chunks/{ScopeComponent-DFDrMcn0.mjs → ScopeComponent-9FoStIVM.mjs} +1 -1
- package/dist/chunks/{ScopeComponent-DFDrMcn0.mjs.map → ScopeComponent-9FoStIVM.mjs.map} +1 -1
- package/dist/chunks/{ScopeComponent-DXQGLon_.cjs → ScopeComponent-DdL1psE0.cjs} +1 -1
- package/dist/chunks/{ScopeComponent-DXQGLon_.cjs.map → ScopeComponent-DdL1psE0.cjs.map} +1 -1
- package/dist/chunks/{_l10n-D8Scz3mH.mjs → _l10n-CAwwH-o2.mjs} +3 -3
- package/dist/chunks/_l10n-CAwwH-o2.mjs.map +1 -0
- package/dist/chunks/{_l10n-B986q8RC.cjs → _l10n-DZggkcVs.cjs} +3 -3
- package/dist/chunks/_l10n-DZggkcVs.cjs.map +1 -0
- package/dist/chunks/{index-DYXjj9ET.mjs → index-BAVa4G2v.mjs} +31 -31
- package/dist/chunks/index-BAVa4G2v.mjs.map +1 -0
- package/dist/chunks/{index-CIsMzBte.cjs → index-CVsxVZon.cjs} +19 -19
- package/dist/chunks/index-CVsxVZon.cjs.map +1 -0
- package/dist/chunks/{referencePickerModal-DUhJWt2e.mjs → referencePickerModal-CtIcJRWz.mjs} +417 -414
- package/dist/chunks/referencePickerModal-CtIcJRWz.mjs.map +1 -0
- package/dist/chunks/{referencePickerModal-DV7-XzCc.cjs → referencePickerModal-Ig4S8WI3.cjs} +298 -295
- package/dist/chunks/referencePickerModal-Ig4S8WI3.cjs.map +1 -0
- package/dist/chunks/{usernameToColor-iYF-oKTP.mjs → usernameToColor-3Z3jKEos.mjs} +1 -1
- package/dist/chunks/{usernameToColor-iYF-oKTP.mjs.map → usernameToColor-3Z3jKEos.mjs.map} +1 -1
- package/dist/chunks/{usernameToColor-DibvD_OP.cjs → usernameToColor-7pQQJMR_.cjs} +1 -1
- package/dist/chunks/{usernameToColor-DibvD_OP.cjs.map → usernameToColor-7pQQJMR_.cjs.map} +1 -1
- package/dist/index.cjs +8 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +45 -45
- package/package.json +1 -1
- package/dist/assets/NcListItem-vwt4bCl6.css +0 -165
- package/dist/chunks/NcActions-CpU9WXzM.mjs.map +0 -1
- package/dist/chunks/NcActions-Dfkog_G0.cjs.map +0 -1
- package/dist/chunks/NcAppContent-BDwOdxJE.mjs.map +0 -1
- package/dist/chunks/NcAppContent-kqYjKpzU.cjs.map +0 -1
- package/dist/chunks/NcAppNavigation-C1Qe3lsk.mjs.map +0 -1
- package/dist/chunks/NcAppNavigation-C423R_m2.cjs.map +0 -1
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-C1WLneXl.cjs.map +0 -1
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-CKROuACA.mjs.map +0 -1
- package/dist/chunks/NcListItem-C5oWvAZQ.mjs.map +0 -1
- package/dist/chunks/NcListItem-wxqWqs4s.cjs.map +0 -1
- package/dist/chunks/NcRelatedResourcesPanel-Cp8Au2iI.cjs.map +0 -1
- package/dist/chunks/NcRelatedResourcesPanel-LTNqJecS.mjs.map +0 -1
- package/dist/chunks/NcRichContenteditable-CHggLQuR.mjs.map +0 -1
- package/dist/chunks/NcRichContenteditable-hT5m_2tr.cjs.map +0 -1
- package/dist/chunks/NcRichText-BBXbh0Hh.mjs.map +0 -1
- package/dist/chunks/NcRichText-BWX8BLVh.cjs.map +0 -1
- package/dist/chunks/NcUserStatusIcon-0SGYQL9L.mjs.map +0 -1
- package/dist/chunks/NcUserStatusIcon-C7dfcW39.cjs.map +0 -1
- package/dist/chunks/_l10n-B986q8RC.cjs.map +0 -1
- package/dist/chunks/_l10n-D8Scz3mH.mjs.map +0 -1
- package/dist/chunks/index-CIsMzBte.cjs.map +0 -1
- package/dist/chunks/index-DYXjj9ET.mjs.map +0 -1
- package/dist/chunks/referencePickerModal-DUhJWt2e.mjs.map +0 -1
- package/dist/chunks/referencePickerModal-DV7-XzCc.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcUserBubble-CbufscPi.mjs","sources":["../../src/components/NcUserBubble/NcUserBubbleDiv.vue","../../src/components/NcUserBubble/NcUserBubble.vue"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2021 Raimund Schlüßler <raimund.schluessler@mailbox.org>\n -\n - @author Raimund Schlüßler <raimund.schluessler@mailbox.org>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<template>\n\t<div>\n\t\t<slot name=\"trigger\" />\n\t</div>\n</template>\n\n<script>\nexport default {\n\tname: 'NcUserBubbleDiv',\n}\n</script>\n","<!--\n - @copyright Copyright (c) 2019 Jonas Sulzer <jonas@violoncello.ch>\n -\n - @author Marco Ambrosini <marcoambrosini@icloud.com>\n - @author Jonas Sulzer <jonas@violoncello.ch>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n-->\n\n<docs>\n\n### General description\n\nThis component displays a user together with a small avatar in a grey bubble.\nIt's possible to use an actual user's avatar, just an image/icon as a url or an icon-class,\nto link the bubble to e.g. a users profile\nand to show a popover on hover with e.g. the full user name handle / email address or something else.\n\nThis component has the following slot:\n* a default slot which is for the content of the popover (this is passed to the popover component directly).\n\n### Examples\n\n```vue\n<p>\n\tSome text before <NcUserBubble user=\"admin\" display-name=\"Admin Example\" url=\"/test\">@admin@foreign-host.com</NcUserBubble> and after the bubble.\n\t<NcUserBubble avatar-image=\"icon-group\" display-name=\"test group xyz\" :primary=\"true\">Hey there!</NcUserBubble>\n</p>\n```\n\n### Example with name slot\n\n```vue\n<template>\n<NcUserBubble\n\t:margin=\"4\"\n\t:size=\"30\"\n\tdisplay-name=\"Administrator\"\n\tuser=\"admin\">\n\t<template #name>\n\t\t<a href=\"#\"\n\t\t\ttitle=\"Remove user\"\n\t\t\tclass=\"icon-close\"\n\t\t\t@click=\"alert\" />\n\t</template>\n</NcUserBubble>\n</template>\n<script>\nexport default {\n\tmethods: {\n\t\talert() {\n\t\t\talert('Removed')\n\t\t},\n\t},\n}\n</script>\n<style>\n.icon-close {\n\tdisplay: block;\n\theight: 100%;\n}\n</style>\n```\n\n</docs>\n<template>\n\t<component :is=\"isPopoverComponent\"\n\t\ttrigger=\"hover focus\"\n\t\t:shown=\"open\"\n\t\tclass=\"user-bubble__wrapper\"\n\t\t@update:open=\"onOpenChange\">\n\t\t<!-- Main userbubble structure -->\n\t\t<template #trigger=\"{ attrs }\">\n\t\t\t<component :is=\"isLinkComponent\"\n\t\t\t\tclass=\"user-bubble__content\"\n\t\t\t\t:style=\"styles.content\"\n\t\t\t\t:href=\"hasUrl ? url : null\"\n\t\t\t\t:class=\"{ 'user-bubble__content--primary': primary }\"\n\t\t\t\tv-bind=\"attrs\"\n\t\t\t\t@click=\"onClick\">\n\t\t\t\t<!-- NcAvatar -->\n\t\t\t\t<NcAvatar :url=\"isCustomAvatar && isAvatarUrl ? avatarImage : undefined\"\n\t\t\t\t\t:icon-class=\"isCustomAvatar && !isAvatarUrl ? avatarImage : undefined\"\n\t\t\t\t\t:user=\"user\"\n\t\t\t\t\t:display-name=\"displayName\"\n\t\t\t\t\t:size=\"size - (margin * 2)\"\n\t\t\t\t\t:style=\"styles.avatar\"\n\t\t\t\t\t:disable-tooltip=\"true\"\n\t\t\t\t\t:disable-menu=\"true\"\n\t\t\t\t\t:show-user-status=\"showUserStatus\"\n\t\t\t\t\tclass=\"user-bubble__avatar\" />\n\n\t\t\t\t<!-- Name -->\n\t\t\t\t<span class=\"user-bubble__name\">\n\t\t\t\t\t{{ displayName || user }}\n\t\t\t\t</span>\n\n\t\t\t\t<!-- @slot Optional slot just after the name -->\n\t\t\t\t<span v-if=\"$slots.name\" class=\"user-bubble__secondary\">\n\t\t\t\t\t<slot name=\"name\" />\n\t\t\t\t</span>\n\t\t\t</component>\n\t\t</template>\n\n\t\t<!-- @slot Main Popover content on userbubble hover/focus -->\n\t\t<slot />\n\t</component>\n</template>\n\n<script>\nimport NcUserBubbleDiv from './NcUserBubbleDiv.vue'\nimport NcAvatar from '../NcAvatar/index.js'\nimport NcPopover from '../NcPopover/index.js'\nimport Vue from 'vue'\n\nexport default {\n\tname: 'NcUserBubble',\n\tcomponents: {\n\t\tNcAvatar,\n\t\tNcPopover,\n\t\tNcUserBubbleDiv,\n\t},\n\tprops: {\n\t\t/**\n\t\t * Override generated avatar, can be an url or an icon class\n\t\t */\n\t\tavatarImage: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Provide the user id if this is a user\n\t\t */\n\t\tuser: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Displayed label\n\t\t */\n\t\tdisplayName: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Whether or not to display the user-status\n\t\t */\n\t\tshowUserStatus: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Define the whole bubble as a link\n\t\t */\n\t\turl: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t\tvalidator: (url) => {\n\t\t\t\ttry {\n\t\t\t\t\turl = new URL(url, url?.startsWith?.('/') ? window.location.href : undefined)\n\t\t\t\t\treturn true\n\t\t\t\t} catch (error) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Default popover state. Requires the UserBubble\n\t\t * to have some content to render inside the popover\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Use the primary colour\n\t\t */\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * This is the height of the component\n\t\t */\n\t\tsize: {\n\t\t\ttype: Number,\n\t\t\tdefault: 20,\n\t\t},\n\t\t/**\n\t\t * This is the margin of the avatar (size - margin = avatar size)\n\t\t */\n\t\tmargin: {\n\t\t\ttype: Number,\n\t\t\tdefault: 2,\n\t\t},\n\t},\n\temits: [\n\t\t'click',\n\t\t'update:open',\n\t],\n\tcomputed: {\n\t\t/**\n\t\t * If userbubble is empty, let's NOT\n\t\t * use the Popover component\n\t\t * We need a component instead of a simple div here,\n\t\t * because otherwise the trigger template will not be shown.\n\t\t *\n\t\t * @return {string} 'Popover' or 'UserBubbleDiv'\n\t\t */\n\t\tisPopoverComponent() {\n\t\t\treturn !this.popoverEmpty\n\t\t\t\t? 'NcPopover'\n\t\t\t\t: 'NcUserBubbleDiv'\n\t\t},\n\n\t\t/**\n\t\t * Is the provided avatar url valid or not\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisAvatarUrl() {\n\t\t\tif (!this.avatarImage) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst url = new URL(this.avatarImage)\n\t\t\t\treturn !!url\n\t\t\t} catch (error) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Do we have a custom avatar or not\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisCustomAvatar() {\n\t\t\treturn !!this.avatarImage\n\t\t},\n\n\t\thasUrl() {\n\t\t\treturn this.url && this.url.trim() !== ''\n\t\t},\n\n\t\tisLinkComponent() {\n\t\t\treturn this.hasUrl ? 'a' : 'div'\n\t\t},\n\n\t\tpopoverEmpty() {\n\t\t\tif ('default' in this.$slots) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\n\t\tstyles() {\n\t\t\treturn {\n\t\t\t\tcontent: {\n\t\t\t\t\theight: this.size + 'px',\n\t\t\t\t\tlineHeight: this.size + 'px',\n\t\t\t\t\tborderRadius: this.size / 2 + 'px',\n\t\t\t\t},\n\t\t\t\tavatar: {\n\t\t\t\t\tmarginLeft: this.margin + 'px',\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\t},\n\tmounted() {\n\t\tif (!this.displayName && !this.user) {\n\t\t\tVue.util.warn('[NcUserBubble] At least `displayName` or `user` property should be set.')\n\t\t}\n\t},\n\tmethods: {\n\t\tonOpenChange(state) {\n\t\t\tthis.$emit('update:open', state)\n\t\t},\n\t\t/**\n\t\t * Catch and forward click event to parent\n\t\t *\n\t\t * @param {Event} event the click event\n\t\t */\n\t\tonClick(event) {\n\t\t\tthis.$emit('click', event)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.user-bubble {\n\t&__wrapper {\n\t\t// align inline with text\n\t\tdisplay: inline-block;\n\t\tvertical-align: middle;\n\t\t// shrink and allow grow to fit\n\t\tmin-width: 0;\n\t\tmax-width: 100%;\n\t}\n\n\t&__content {\n\t\tdisplay: inline-flex;\n\t\tmax-width: 100%;\n\t\tbackground-color: var(--color-background-dark);\n\n\t\t&--primary {\n\t\t\tcolor: var(--color-primary-element-text);\n\t\t\tbackground-color: var(--color-primary-element);\n\t\t}\n\n\t\t> :last-child {\n\t\t\t// border radius left padding\n\t\t\tpadding-right: 8px;\n\t\t}\n\t}\n\n\t&__avatar {\n\t\talign-self: center;\n\t}\n\n\t&__name {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t&__name,\n\t&__secondary {\n\t\t// proper spacing between avatar, name & slot\n\t\tpadding: 0;\n\t\tpadding-left: 4px;\n\t}\n}\n\n</style>\n"],"names":["_sfc_main","NcAvatar","NcPopover","NcUserBubbleDiv","url","_a","Vue","state","event"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NcUserBubble-RZlZRmxZ.mjs","sources":["../../src/components/NcUserBubble/NcUserBubbleDiv.vue","../../src/components/NcUserBubble/NcUserBubble.vue"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2021 Raimund Schlüßler <raimund.schluessler@mailbox.org>\n -\n - @author Raimund Schlüßler <raimund.schluessler@mailbox.org>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<template>\n\t<div>\n\t\t<slot name=\"trigger\" />\n\t</div>\n</template>\n\n<script>\nexport default {\n\tname: 'NcUserBubbleDiv',\n}\n</script>\n","<!--\n - @copyright Copyright (c) 2019 Jonas Sulzer <jonas@violoncello.ch>\n -\n - @author Marco Ambrosini <marcoambrosini@icloud.com>\n - @author Jonas Sulzer <jonas@violoncello.ch>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n-->\n\n<docs>\n\n### General description\n\nThis component displays a user together with a small avatar in a grey bubble.\nIt's possible to use an actual user's avatar, just an image/icon as a url or an icon-class,\nto link the bubble to e.g. a users profile\nand to show a popover on hover with e.g. the full user name handle / email address or something else.\n\nThis component has the following slot:\n* a default slot which is for the content of the popover (this is passed to the popover component directly).\n\n### Examples\n\n```vue\n<p>\n\tSome text before <NcUserBubble user=\"admin\" display-name=\"Admin Example\" url=\"/test\">@admin@foreign-host.com</NcUserBubble> and after the bubble.\n\t<NcUserBubble avatar-image=\"icon-group\" display-name=\"test group xyz\" :primary=\"true\">Hey there!</NcUserBubble>\n</p>\n```\n\n### Example with name slot\n\n```vue\n<template>\n<NcUserBubble\n\t:margin=\"4\"\n\t:size=\"30\"\n\tdisplay-name=\"Administrator\"\n\tuser=\"admin\">\n\t<template #name>\n\t\t<a href=\"#\"\n\t\t\ttitle=\"Remove user\"\n\t\t\tclass=\"icon-close\"\n\t\t\t@click=\"alert\" />\n\t</template>\n</NcUserBubble>\n</template>\n<script>\nexport default {\n\tmethods: {\n\t\talert() {\n\t\t\talert('Removed')\n\t\t},\n\t},\n}\n</script>\n<style>\n.icon-close {\n\tdisplay: block;\n\theight: 100%;\n}\n</style>\n```\n\n</docs>\n<template>\n\t<component :is=\"isPopoverComponent\"\n\t\ttrigger=\"hover focus\"\n\t\t:shown=\"open\"\n\t\tclass=\"user-bubble__wrapper\"\n\t\t@update:open=\"onOpenChange\">\n\t\t<!-- Main userbubble structure -->\n\t\t<template #trigger=\"{ attrs }\">\n\t\t\t<component :is=\"isLinkComponent\"\n\t\t\t\tclass=\"user-bubble__content\"\n\t\t\t\t:style=\"styles.content\"\n\t\t\t\t:href=\"hasUrl ? url : null\"\n\t\t\t\t:class=\"{ 'user-bubble__content--primary': primary }\"\n\t\t\t\tv-bind=\"attrs\"\n\t\t\t\t@click=\"onClick\">\n\t\t\t\t<!-- NcAvatar -->\n\t\t\t\t<NcAvatar :url=\"isCustomAvatar && isAvatarUrl ? avatarImage : undefined\"\n\t\t\t\t\t:icon-class=\"isCustomAvatar && !isAvatarUrl ? avatarImage : undefined\"\n\t\t\t\t\t:user=\"user\"\n\t\t\t\t\t:display-name=\"displayName\"\n\t\t\t\t\t:size=\"size - (margin * 2)\"\n\t\t\t\t\t:style=\"styles.avatar\"\n\t\t\t\t\t:disable-tooltip=\"true\"\n\t\t\t\t\t:disable-menu=\"true\"\n\t\t\t\t\t:show-user-status=\"showUserStatus\"\n\t\t\t\t\tclass=\"user-bubble__avatar\" />\n\n\t\t\t\t<!-- Name -->\n\t\t\t\t<span class=\"user-bubble__name\">\n\t\t\t\t\t{{ displayName || user }}\n\t\t\t\t</span>\n\n\t\t\t\t<!-- @slot Optional slot just after the name -->\n\t\t\t\t<span v-if=\"$slots.name\" class=\"user-bubble__secondary\">\n\t\t\t\t\t<slot name=\"name\" />\n\t\t\t\t</span>\n\t\t\t</component>\n\t\t</template>\n\n\t\t<!-- @slot Main Popover content on userbubble hover/focus -->\n\t\t<slot />\n\t</component>\n</template>\n\n<script>\nimport NcUserBubbleDiv from './NcUserBubbleDiv.vue'\nimport NcAvatar from '../NcAvatar/index.js'\nimport NcPopover from '../NcPopover/index.js'\nimport Vue from 'vue'\n\nexport default {\n\tname: 'NcUserBubble',\n\tcomponents: {\n\t\tNcAvatar,\n\t\tNcPopover,\n\t\tNcUserBubbleDiv,\n\t},\n\tprops: {\n\t\t/**\n\t\t * Override generated avatar, can be an url or an icon class\n\t\t */\n\t\tavatarImage: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Provide the user id if this is a user\n\t\t */\n\t\tuser: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Displayed label\n\t\t */\n\t\tdisplayName: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Whether or not to display the user-status\n\t\t */\n\t\tshowUserStatus: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Define the whole bubble as a link\n\t\t */\n\t\turl: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t\tvalidator: (url) => {\n\t\t\t\ttry {\n\t\t\t\t\turl = new URL(url, url?.startsWith?.('/') ? window.location.href : undefined)\n\t\t\t\t\treturn true\n\t\t\t\t} catch (error) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Default popover state. Requires the UserBubble\n\t\t * to have some content to render inside the popover\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Use the primary colour\n\t\t */\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * This is the height of the component\n\t\t */\n\t\tsize: {\n\t\t\ttype: Number,\n\t\t\tdefault: 20,\n\t\t},\n\t\t/**\n\t\t * This is the margin of the avatar (size - margin = avatar size)\n\t\t */\n\t\tmargin: {\n\t\t\ttype: Number,\n\t\t\tdefault: 2,\n\t\t},\n\t},\n\temits: [\n\t\t'click',\n\t\t'update:open',\n\t],\n\tcomputed: {\n\t\t/**\n\t\t * If userbubble is empty, let's NOT\n\t\t * use the Popover component\n\t\t * We need a component instead of a simple div here,\n\t\t * because otherwise the trigger template will not be shown.\n\t\t *\n\t\t * @return {string} 'Popover' or 'UserBubbleDiv'\n\t\t */\n\t\tisPopoverComponent() {\n\t\t\treturn !this.popoverEmpty\n\t\t\t\t? 'NcPopover'\n\t\t\t\t: 'NcUserBubbleDiv'\n\t\t},\n\n\t\t/**\n\t\t * Is the provided avatar url valid or not\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisAvatarUrl() {\n\t\t\tif (!this.avatarImage) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst url = new URL(this.avatarImage)\n\t\t\t\treturn !!url\n\t\t\t} catch (error) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Do we have a custom avatar or not\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisCustomAvatar() {\n\t\t\treturn !!this.avatarImage\n\t\t},\n\n\t\thasUrl() {\n\t\t\treturn this.url && this.url.trim() !== ''\n\t\t},\n\n\t\tisLinkComponent() {\n\t\t\treturn this.hasUrl ? 'a' : 'div'\n\t\t},\n\n\t\tpopoverEmpty() {\n\t\t\tif ('default' in this.$slots) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\n\t\tstyles() {\n\t\t\treturn {\n\t\t\t\tcontent: {\n\t\t\t\t\theight: this.size + 'px',\n\t\t\t\t\tlineHeight: this.size + 'px',\n\t\t\t\t\tborderRadius: this.size / 2 + 'px',\n\t\t\t\t},\n\t\t\t\tavatar: {\n\t\t\t\t\tmarginLeft: this.margin + 'px',\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\t},\n\tmounted() {\n\t\tif (!this.displayName && !this.user) {\n\t\t\tVue.util.warn('[NcUserBubble] At least `displayName` or `user` property should be set.')\n\t\t}\n\t},\n\tmethods: {\n\t\tonOpenChange(state) {\n\t\t\tthis.$emit('update:open', state)\n\t\t},\n\t\t/**\n\t\t * Catch and forward click event to parent\n\t\t *\n\t\t * @param {Event} event the click event\n\t\t */\n\t\tonClick(event) {\n\t\t\tthis.$emit('click', event)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.user-bubble {\n\t&__wrapper {\n\t\t// align inline with text\n\t\tdisplay: inline-block;\n\t\tvertical-align: middle;\n\t\t// shrink and allow grow to fit\n\t\tmin-width: 0;\n\t\tmax-width: 100%;\n\t}\n\n\t&__content {\n\t\tdisplay: inline-flex;\n\t\tmax-width: 100%;\n\t\tbackground-color: var(--color-background-dark);\n\n\t\t&--primary {\n\t\t\tcolor: var(--color-primary-element-text);\n\t\t\tbackground-color: var(--color-primary-element);\n\t\t}\n\n\t\t> :last-child {\n\t\t\t// border radius left padding\n\t\t\tpadding-right: 8px;\n\t\t}\n\t}\n\n\t&__avatar {\n\t\talign-self: center;\n\t}\n\n\t&__name {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t&__name,\n\t&__secondary {\n\t\t// proper spacing between avatar, name & slot\n\t\tpadding: 0;\n\t\tpadding-left: 4px;\n\t}\n}\n\n</style>\n"],"names":["_sfc_main","NcAvatar","NcPopover","NcUserBubbleDiv","url","_a","Vue","state","event"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require('../assets/NcUserStatusIcon-Dra7jf_o.css');
|
|
2
2
|
"use strict";
|
|
3
|
-
const
|
|
3
|
+
const d = require("vue"), v = require("@nextcloud/axios"), f = require("@nextcloud/router"), g = require("@nextcloud/capabilities"), s = require("./_l10n-DZggkcVs.cjs"), p = require("./_plugin-vue2_normalizer-GXKvuwrq.cjs"), c = (t) => t && t.__esModule ? t : { default: t }, w = /* @__PURE__ */ c(d), _ = /* @__PURE__ */ c(v), S = '<!-- This icon is part of Material UI Icons. Copyright 2020 Google Inc., Apache-2.0 License -->\n<svg viewBox="0 0 16 16" width="16" height="16" xmlns="http://www.w3.org/2000/svg">\n <path fill="var(--color-success)" d="M4.8 11.2h6.4V4.8H4.8v6.4zM8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8z" />\n</svg>\n', o = '<!-- This icon is part of Material UI Icons. Copyright 2020 Google Inc., Apache-2.0 License -->\n<svg viewBox="0 0 16 16" width="16" height="16" xmlns="http://www.w3.org/2000/svg">\n <path fill="none" d="M-4-4h24v24H-4z" />\n <path fill="var(--color-warning)" d="M6.9.1C3 .6-.1 4-.1 8c0 4.4 3.6 8 8 8 4 0 7.4-3 8-6.9-1.2 1.3-2.9 2.1-4.7 2.1-3.5 0-6.4-2.9-6.4-6.4 0-1.9.8-3.6 2.1-4.7z" />\n</svg>\n', b = '<!-- This icon is part of Material UI Icons. Copyright 2020 Google Inc., Apache-2.0 License -->\n<svg viewBox="0 0 16 16" width="16" height="16" xmlns="http://www.w3.org/2000/svg">\n <path fill="none" d="M-4-4h24v24H-4V-4z" />\n <path fill="var(--color-error)" d="M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8z" />\n <path fill="#fdffff" d="M5 6.5h6c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5H5c-.8 0-1.5-.7-1.5-1.5S4.2 6.5 5 6.5z" />\n</svg>\n', u = '<!-- This icon is part of Material UI Icons. Copyright 2020 Google Inc., Apache-2.0 License -->\n<svg viewBox="0 0 16 16" width="16" height="16" xmlns="http://www.w3.org/2000/svg">\n <path fill="none" d="M-4-4h24v24H-4V-4z" />\n <path d="M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 3.2c2.7 0 4.8 2.1 4.8 4.8s-2.1 4.8-4.8 4.8S3.2 10.7 3.2 8 5.3 3.2 8 3.2z" />\n</svg>\n';
|
|
4
4
|
s.register(s.t10);
|
|
5
5
|
/**
|
|
6
6
|
* @copyright 2023 Christopher Ng <chrng8@gmail.com>
|
|
@@ -23,7 +23,7 @@ s.register(s.t10);
|
|
|
23
23
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
24
24
|
*
|
|
25
25
|
*/
|
|
26
|
-
const
|
|
26
|
+
const h = (t) => {
|
|
27
27
|
switch (t) {
|
|
28
28
|
case "away":
|
|
29
29
|
return s.t("away");
|
|
@@ -105,7 +105,7 @@ const m = {
|
|
|
105
105
|
}[this.activeStatus]) != null ? e : null;
|
|
106
106
|
},
|
|
107
107
|
ariaLabel() {
|
|
108
|
-
return this.ariaHidden === "true" ? null : s.t("User status: {status}", { status:
|
|
108
|
+
return this.ariaHidden === "true" ? null : s.t("User status: {status}", { status: h(this.activeStatus) });
|
|
109
109
|
}
|
|
110
110
|
},
|
|
111
111
|
watch: {
|
|
@@ -147,4 +147,4 @@ var y = function() {
|
|
|
147
147
|
);
|
|
148
148
|
const M = I.exports;
|
|
149
149
|
exports.NcUserStatusIcon = M;
|
|
150
|
-
exports.getUserStatusText =
|
|
150
|
+
exports.getUserStatusText = h;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcUserStatusIcon-7yBYL8ur.cjs","sources":["../../src/assets/status-icons/user-status-online.svg?raw","../../src/assets/status-icons/user-status-away.svg?raw","../../src/assets/status-icons/user-status-dnd.svg?raw","../../src/assets/status-icons/user-status-invisible.svg?raw","../../src/utils/UserStatus.ts","../../src/components/NcUserStatusIcon/NcUserStatusIcon.vue"],"sourcesContent":["export default \"<!-- This icon is part of Material UI Icons. Copyright 2020 Google Inc., Apache-2.0 License -->\\n<svg viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path fill=\\\"var(--color-success)\\\" d=\\\"M4.8 11.2h6.4V4.8H4.8v6.4zM8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8z\\\" />\\n</svg>\\n\"","export default \"<!-- This icon is part of Material UI Icons. Copyright 2020 Google Inc., Apache-2.0 License -->\\n<svg viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path fill=\\\"none\\\" d=\\\"M-4-4h24v24H-4z\\\" />\\n\\t<path fill=\\\"var(--color-warning)\\\" d=\\\"M6.9.1C3 .6-.1 4-.1 8c0 4.4 3.6 8 8 8 4 0 7.4-3 8-6.9-1.2 1.3-2.9 2.1-4.7 2.1-3.5 0-6.4-2.9-6.4-6.4 0-1.9.8-3.6 2.1-4.7z\\\" />\\n</svg>\\n\"","export default \"<!-- This icon is part of Material UI Icons. Copyright 2020 Google Inc., Apache-2.0 License -->\\n<svg viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path fill=\\\"none\\\" d=\\\"M-4-4h24v24H-4V-4z\\\" />\\n\\t<path fill=\\\"var(--color-error)\\\" d=\\\"M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8z\\\" />\\n\\t<path fill=\\\"#fdffff\\\" d=\\\"M5 6.5h6c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5H5c-.8 0-1.5-.7-1.5-1.5S4.2 6.5 5 6.5z\\\" />\\n</svg>\\n\"","export default \"<!-- This icon is part of Material UI Icons. Copyright 2020 Google Inc., Apache-2.0 License -->\\n<svg viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path fill=\\\"none\\\" d=\\\"M-4-4h24v24H-4V-4z\\\" />\\n\\t<path d=\\\"M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 3.2c2.7 0 4.8 2.1 4.8 4.8s-2.1 4.8-4.8 4.8S3.2 10.7 3.2 8 5.3 3.2 8 3.2z\\\" />\\n</svg>\\n\"","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { t } from '../l10n.js'\n\ntype Status = 'online' | 'away' | 'busy' | 'dnd' | 'invisible' | 'offline'\n\nexport const getUserStatusText = (status: Status): string => {\n\tswitch (status) {\n\tcase 'away': return t('away') // TRANSLATORS: User status if the user is currently away from keyboard\n\tcase 'busy': return t('busy')\n\tcase 'dnd': return t('do not disturb')\n\tcase 'online': return t('online')\n\tcase 'invisible': return t('invisible')\n\tcase 'offline': return t('offline')\n\tdefault: return status\n\t}\n}\n","<!--\n - @copyright 2024 Christopher Ng <chrng8@gmail.com>\n -\n - @author Christopher Ng <chrng8@gmail.com>\n -\n - @license AGPL-3.0-or-later\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n-->\n\n<docs>\n### Description\n\nThis component displays a user status icon.\n\n### Example\n\n```vue\n<template>\n\t<div class=\"row\">\n\t\t<NcUserStatusIcon status=\"online\" />\n\t\t<NcUserStatusIcon status=\"away\" />\n\t\t<NcUserStatusIcon status=\"dnd\" />\n\t\t<NcUserStatusIcon status=\"invisible\" />\n\t</div>\n</template>\n\n<style>\n.row {\n\tdisplay: flex;\n\tgap: 10px;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<span v-if=\"activeStatus\"\n\t\tclass=\"user-status-icon\"\n\t\t:class=\"{\n\t\t\t'user-status-icon--invisible': ['invisible', 'offline'].includes(status),\n\t\t}\"\n\t\trole=\"img\"\n\t\t:aria-hidden=\"ariaHidden\"\n\t\t:aria-label=\"ariaLabel\"\n\t\tv-html=\"activeSvg\" /> <!-- eslint-disable-line vue/no-v-html -->\n</template>\n\n<script>\nimport Vue from 'vue'\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { getCapabilities } from '@nextcloud/capabilities'\n\nimport onlineSvg from '../../assets/status-icons/user-status-online.svg?raw'\nimport awaySvg from '../../assets/status-icons/user-status-away.svg?raw'\nimport dndSvg from '../../assets/status-icons/user-status-dnd.svg?raw'\nimport invisibleSvg from '../../assets/status-icons/user-status-invisible.svg?raw'\n\nimport { getUserStatusText } from '../../utils/UserStatus.ts'\nimport { t } from '../../l10n.js'\n\nexport default {\n\tname: 'NcUserStatusIcon',\n\n\tprops: {\n\t\t/**\n\t\t * Set the user id to fetch the status\n\t\t */\n\t\tuser: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Set the status\n\t\t *\n\t\t * @type {'online' | 'away' | 'busy' | 'dnd' | 'invisible' | 'offline'}\n\t\t */\n\t\tstatus: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t\tvalidator: (value) => [\n\t\t\t\t'online',\n\t\t\t\t'away',\n\t\t\t\t'busy',\n\t\t\t\t'dnd',\n\t\t\t\t'invisible',\n\t\t\t\t'offline',\n\t\t\t].includes(value),\n\t\t},\n\n\t\t/**\n\t\t * Set the `aria-hidden` attribute\n\t\t *\n\t\t * @type {'true' | 'false'}\n\t\t */\n\t\tariaHidden: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t\tvalidator: (value) => [\n\t\t\t\t'true',\n\t\t\t\t'false',\n\t\t\t].includes(value),\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tfetchedUserStatus: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tactiveStatus() {\n\t\t\treturn this.status ?? this.fetchedUserStatus\n\t\t},\n\n\t\tactiveSvg() {\n\t\t\tconst matchSvg = {\n\t\t\t\tonline: onlineSvg,\n\t\t\t\taway: awaySvg,\n\t\t\t\tbusy: awaySvg,\n\t\t\t\tdnd: dndSvg,\n\t\t\t\tinvisible: invisibleSvg,\n\t\t\t\toffline: invisibleSvg,\n\t\t\t}\n\t\t\treturn matchSvg[this.activeStatus] ?? null\n\t\t},\n\n\t\tariaLabel() {\n\t\t\tif (this.ariaHidden === 'true') {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\treturn t('User status: {status}', { status: getUserStatusText(this.activeStatus) })\n\t\t},\n\t},\n\n\twatch: {\n\t\tuser: {\n\t\t\timmediate: true,\n\t\t\tasync handler(user, _oldUser) {\n\t\t\t\tif (!user || !getCapabilities()?.user_status?.enabled) {\n\t\t\t\t\tthis.fetchedUserStatus = null\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tconst { data } = await axios.get(generateOcsUrl('/apps/user_status/api/v1/statuses/{user}', { user }))\n\t\t\t\t\tthis.fetchedUserStatus = data.ocs?.data?.status\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.fetchedUserStatus = null\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n\n\tmounted() {\n\t\tif (!this.user && !this.status) {\n\t\t\tVue.util.warn('[NcUserStatusIcon] The `user` or `status` prop should be set.')\n\t\t}\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.user-status-icon {\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\tmin-width: 16px;\n\tmin-height: 16px;\n\tmax-width: 20px;\n\tmax-height: 20px;\n\n\t&--invisible {\n\t\tfilter: var(--background-invert-if-dark);\n\t}\n}\n</style>\n"],"names":["onlineSvg","awaySvg","dndSvg","invisibleSvg","getUserStatusText","status","t","_sfc_main","value","_a","user","_oldUser","getCapabilities","data","axios","generateOcsUrl","_d","_c","Vue"],"mappings":";wUAAeA,IAAA,2TCAAC,IAAA,iZCAAC,IAAA,6bCAAC,IAAA;;ACAf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0Ba,MAAAC,IAAoB,CAACC,MAA2B;AAC5D,UAAQA,GAAQ;AAAA,IAChB,KAAK;AAAQ,aAAOC,EAAAA,EAAE,MAAM;AAAA,IAC5B,KAAK;AAAQ,aAAOA,EAAAA,EAAE,MAAM;AAAA,IAC5B,KAAK;AAAO,aAAOA,EAAAA,EAAE,gBAAgB;AAAA,IACrC,KAAK;AAAU,aAAOA,EAAAA,EAAE,QAAQ;AAAA,IAChC,KAAK;AAAa,aAAOA,EAAAA,EAAE,WAAW;AAAA,IACtC,KAAK;AAAW,aAAOA,EAAAA,EAAE,SAAS;AAAA,IAClC;AAAgB,aAAAD;AAAA,EAChB;AACD;;ACsCA,MAAAE,IAAA;AAAA,EACA,MAAA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAAC,MAAA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACA,EAAA,SAAAA,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAAA,MAAA;AAAA,QACA;AAAA,QACA;AAAA,MACA,EAAA,SAAAA,CAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,mBAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,eAAA;;AACA,cAAAC,IAAA,KAAA,WAAA,OAAAA,IAAA,KAAA;AAAA,IACA;AAAA,IAEA,YAAA;;AASA,cAAAA,IARA;AAAA,QACA,QAAAT;AAAA,QACA,MAAAC;AAAA,QACA,MAAAA;AAAA,QACA,KAAAC;AAAA,QACA,WAAAC;AAAA,QACA,SAAAA;AAAA,MACA,EACA,KAAA,YAAA,MAAA,OAAAM,IAAA;AAAA,IACA;AAAA,IAEA,YAAA;AACA,aAAA,KAAA,eAAA,SACA,OAEAH,EAAAA,EAAA,yBAAA,EAAA,QAAAF,EAAA,KAAA,YAAA,GAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,MAAA;AAAA,MACA,WAAA;AAAA,MACA,MAAA,QAAAM,GAAAC,GAAA;;AACA,YAAA,CAAAD,KAAA,GAAAE,KAAAA,IAAAA,EAAA,gBAAA,MAAAA,gBAAAA,EAAA,gBAAAA,QAAAA,EAAA,UAAA;AACA,eAAA,oBAAA;AACA;AAAA,QACA;AACA,YAAA;AACA,gBAAA,EAAA,MAAAC,MAAA,MAAAC,UAAA,IAAAC,EAAAA,eAAA,4CAAA,EAAA,MAAAL,EAAA,CAAA,CAAA;AACA,eAAA,qBAAAM,KAAAC,IAAAJ,EAAA,QAAA,gBAAAI,EAAA,SAAA,gBAAAD,EAAA;AAAA,QACA,QAAA;AACA,eAAA,oBAAA;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AACA,IAAA,CAAA,KAAA,QAAA,CAAA,KAAA,UACAE,UAAA,KAAA,KAAA,+DAAA;AAAA,EAEA;AACA;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import '../assets/NcUserStatusIcon-Dra7jf_o.css';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
2
|
+
import h from "vue";
|
|
3
|
+
import d from "@nextcloud/axios";
|
|
4
4
|
import { generateOcsUrl as v } from "@nextcloud/router";
|
|
5
5
|
import { getCapabilities as f } from "@nextcloud/capabilities";
|
|
6
|
-
import { r as u, J as p, a as e, K as g } from "./_l10n-
|
|
7
|
-
import { n as
|
|
8
|
-
const
|
|
6
|
+
import { r as u, J as p, a as e, K as g } from "./_l10n-CAwwH-o2.mjs";
|
|
7
|
+
import { n as w } from "./_plugin-vue2_normalizer-Bj5bLKV4.mjs";
|
|
8
|
+
const m = '<!-- This icon is part of Material UI Icons. Copyright 2020 Google Inc., Apache-2.0 License -->\n<svg viewBox="0 0 16 16" width="16" height="16" xmlns="http://www.w3.org/2000/svg">\n <path fill="var(--color-success)" d="M4.8 11.2h6.4V4.8H4.8v6.4zM8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8z" />\n</svg>\n', l = '<!-- This icon is part of Material UI Icons. Copyright 2020 Google Inc., Apache-2.0 License -->\n<svg viewBox="0 0 16 16" width="16" height="16" xmlns="http://www.w3.org/2000/svg">\n <path fill="none" d="M-4-4h24v24H-4z" />\n <path fill="var(--color-warning)" d="M6.9.1C3 .6-.1 4-.1 8c0 4.4 3.6 8 8 8 4 0 7.4-3 8-6.9-1.2 1.3-2.9 2.1-4.7 2.1-3.5 0-6.4-2.9-6.4-6.4 0-1.9.8-3.6 2.1-4.7z" />\n</svg>\n', S = '<!-- This icon is part of Material UI Icons. Copyright 2020 Google Inc., Apache-2.0 License -->\n<svg viewBox="0 0 16 16" width="16" height="16" xmlns="http://www.w3.org/2000/svg">\n <path fill="none" d="M-4-4h24v24H-4V-4z" />\n <path fill="var(--color-error)" d="M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8z" />\n <path fill="#fdffff" d="M5 6.5h6c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5H5c-.8 0-1.5-.7-1.5-1.5S4.2 6.5 5 6.5z" />\n</svg>\n', c = '<!-- This icon is part of Material UI Icons. Copyright 2020 Google Inc., Apache-2.0 License -->\n<svg viewBox="0 0 16 16" width="16" height="16" xmlns="http://www.w3.org/2000/svg">\n <path fill="none" d="M-4-4h24v24H-4V-4z" />\n <path d="M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 3.2c2.7 0 4.8 2.1 4.8 4.8s-2.1 4.8-4.8 4.8S3.2 10.7 3.2 8 5.3 3.2 8 3.2z" />\n</svg>\n';
|
|
9
9
|
u(p);
|
|
10
10
|
/**
|
|
11
11
|
* @copyright 2023 Christopher Ng <chrng8@gmail.com>
|
|
@@ -101,7 +101,7 @@ const _ = {
|
|
|
101
101
|
activeSvg() {
|
|
102
102
|
var s;
|
|
103
103
|
return (s = {
|
|
104
|
-
online:
|
|
104
|
+
online: m,
|
|
105
105
|
away: l,
|
|
106
106
|
busy: l,
|
|
107
107
|
dnd: S,
|
|
@@ -123,7 +123,7 @@ const _ = {
|
|
|
123
123
|
return;
|
|
124
124
|
}
|
|
125
125
|
try {
|
|
126
|
-
const { data: o } = await
|
|
126
|
+
const { data: o } = await d.get(v("/apps/user_status/api/v1/statuses/{user}", { user: t }));
|
|
127
127
|
this.fetchedUserStatus = (r = (i = o.ocs) == null ? void 0 : i.data) == null ? void 0 : r.status;
|
|
128
128
|
} catch {
|
|
129
129
|
this.fetchedUserStatus = null;
|
|
@@ -132,7 +132,7 @@ const _ = {
|
|
|
132
132
|
}
|
|
133
133
|
},
|
|
134
134
|
mounted() {
|
|
135
|
-
!this.user && !this.status &&
|
|
135
|
+
!this.user && !this.status && h.util.warn("[NcUserStatusIcon] The `user` or `status` prop should be set.");
|
|
136
136
|
}
|
|
137
137
|
};
|
|
138
138
|
var y = function() {
|
|
@@ -140,7 +140,7 @@ var y = function() {
|
|
|
140
140
|
return s.activeStatus ? a("span", { staticClass: "user-status-icon", class: {
|
|
141
141
|
"user-status-icon--invisible": ["invisible", "offline"].includes(s.status)
|
|
142
142
|
}, attrs: { role: "img", "aria-hidden": s.ariaHidden, "aria-label": s.ariaLabel }, domProps: { innerHTML: s._s(s.activeSvg) } }) : s._e();
|
|
143
|
-
}, U = [], I = /* @__PURE__ */
|
|
143
|
+
}, U = [], I = /* @__PURE__ */ w(
|
|
144
144
|
_,
|
|
145
145
|
y,
|
|
146
146
|
U,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcUserStatusIcon-DMQxYiY6.mjs","sources":["../../src/assets/status-icons/user-status-online.svg?raw","../../src/assets/status-icons/user-status-away.svg?raw","../../src/assets/status-icons/user-status-dnd.svg?raw","../../src/assets/status-icons/user-status-invisible.svg?raw","../../src/utils/UserStatus.ts","../../src/components/NcUserStatusIcon/NcUserStatusIcon.vue"],"sourcesContent":["export default \"<!-- This icon is part of Material UI Icons. Copyright 2020 Google Inc., Apache-2.0 License -->\\n<svg viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path fill=\\\"var(--color-success)\\\" d=\\\"M4.8 11.2h6.4V4.8H4.8v6.4zM8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8z\\\" />\\n</svg>\\n\"","export default \"<!-- This icon is part of Material UI Icons. Copyright 2020 Google Inc., Apache-2.0 License -->\\n<svg viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path fill=\\\"none\\\" d=\\\"M-4-4h24v24H-4z\\\" />\\n\\t<path fill=\\\"var(--color-warning)\\\" d=\\\"M6.9.1C3 .6-.1 4-.1 8c0 4.4 3.6 8 8 8 4 0 7.4-3 8-6.9-1.2 1.3-2.9 2.1-4.7 2.1-3.5 0-6.4-2.9-6.4-6.4 0-1.9.8-3.6 2.1-4.7z\\\" />\\n</svg>\\n\"","export default \"<!-- This icon is part of Material UI Icons. Copyright 2020 Google Inc., Apache-2.0 License -->\\n<svg viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path fill=\\\"none\\\" d=\\\"M-4-4h24v24H-4V-4z\\\" />\\n\\t<path fill=\\\"var(--color-error)\\\" d=\\\"M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8z\\\" />\\n\\t<path fill=\\\"#fdffff\\\" d=\\\"M5 6.5h6c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5H5c-.8 0-1.5-.7-1.5-1.5S4.2 6.5 5 6.5z\\\" />\\n</svg>\\n\"","export default \"<!-- This icon is part of Material UI Icons. Copyright 2020 Google Inc., Apache-2.0 License -->\\n<svg viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path fill=\\\"none\\\" d=\\\"M-4-4h24v24H-4V-4z\\\" />\\n\\t<path d=\\\"M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 3.2c2.7 0 4.8 2.1 4.8 4.8s-2.1 4.8-4.8 4.8S3.2 10.7 3.2 8 5.3 3.2 8 3.2z\\\" />\\n</svg>\\n\"","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { t } from '../l10n.js'\n\ntype Status = 'online' | 'away' | 'busy' | 'dnd' | 'invisible' | 'offline'\n\nexport const getUserStatusText = (status: Status): string => {\n\tswitch (status) {\n\tcase 'away': return t('away') // TRANSLATORS: User status if the user is currently away from keyboard\n\tcase 'busy': return t('busy')\n\tcase 'dnd': return t('do not disturb')\n\tcase 'online': return t('online')\n\tcase 'invisible': return t('invisible')\n\tcase 'offline': return t('offline')\n\tdefault: return status\n\t}\n}\n","<!--\n - @copyright 2024 Christopher Ng <chrng8@gmail.com>\n -\n - @author Christopher Ng <chrng8@gmail.com>\n -\n - @license AGPL-3.0-or-later\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n-->\n\n<docs>\n### Description\n\nThis component displays a user status icon.\n\n### Example\n\n```vue\n<template>\n\t<div class=\"row\">\n\t\t<NcUserStatusIcon status=\"online\" />\n\t\t<NcUserStatusIcon status=\"away\" />\n\t\t<NcUserStatusIcon status=\"dnd\" />\n\t\t<NcUserStatusIcon status=\"invisible\" />\n\t</div>\n</template>\n\n<style>\n.row {\n\tdisplay: flex;\n\tgap: 10px;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<span v-if=\"activeStatus\"\n\t\tclass=\"user-status-icon\"\n\t\t:class=\"{\n\t\t\t'user-status-icon--invisible': ['invisible', 'offline'].includes(status),\n\t\t}\"\n\t\trole=\"img\"\n\t\t:aria-hidden=\"ariaHidden\"\n\t\t:aria-label=\"ariaLabel\"\n\t\tv-html=\"activeSvg\" /> <!-- eslint-disable-line vue/no-v-html -->\n</template>\n\n<script>\nimport Vue from 'vue'\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { getCapabilities } from '@nextcloud/capabilities'\n\nimport onlineSvg from '../../assets/status-icons/user-status-online.svg?raw'\nimport awaySvg from '../../assets/status-icons/user-status-away.svg?raw'\nimport dndSvg from '../../assets/status-icons/user-status-dnd.svg?raw'\nimport invisibleSvg from '../../assets/status-icons/user-status-invisible.svg?raw'\n\nimport { getUserStatusText } from '../../utils/UserStatus.ts'\nimport { t } from '../../l10n.js'\n\nexport default {\n\tname: 'NcUserStatusIcon',\n\n\tprops: {\n\t\t/**\n\t\t * Set the user id to fetch the status\n\t\t */\n\t\tuser: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Set the status\n\t\t *\n\t\t * @type {'online' | 'away' | 'busy' | 'dnd' | 'invisible' | 'offline'}\n\t\t */\n\t\tstatus: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t\tvalidator: (value) => [\n\t\t\t\t'online',\n\t\t\t\t'away',\n\t\t\t\t'busy',\n\t\t\t\t'dnd',\n\t\t\t\t'invisible',\n\t\t\t\t'offline',\n\t\t\t].includes(value),\n\t\t},\n\n\t\t/**\n\t\t * Set the `aria-hidden` attribute\n\t\t *\n\t\t * @type {'true' | 'false'}\n\t\t */\n\t\tariaHidden: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t\tvalidator: (value) => [\n\t\t\t\t'true',\n\t\t\t\t'false',\n\t\t\t].includes(value),\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tfetchedUserStatus: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tactiveStatus() {\n\t\t\treturn this.status ?? this.fetchedUserStatus\n\t\t},\n\n\t\tactiveSvg() {\n\t\t\tconst matchSvg = {\n\t\t\t\tonline: onlineSvg,\n\t\t\t\taway: awaySvg,\n\t\t\t\tbusy: awaySvg,\n\t\t\t\tdnd: dndSvg,\n\t\t\t\tinvisible: invisibleSvg,\n\t\t\t\toffline: invisibleSvg,\n\t\t\t}\n\t\t\treturn matchSvg[this.activeStatus] ?? null\n\t\t},\n\n\t\tariaLabel() {\n\t\t\tif (this.ariaHidden === 'true') {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\treturn t('User status: {status}', { status: getUserStatusText(this.activeStatus) })\n\t\t},\n\t},\n\n\twatch: {\n\t\tuser: {\n\t\t\timmediate: true,\n\t\t\tasync handler(user, _oldUser) {\n\t\t\t\tif (!user || !getCapabilities()?.user_status?.enabled) {\n\t\t\t\t\tthis.fetchedUserStatus = null\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tconst { data } = await axios.get(generateOcsUrl('/apps/user_status/api/v1/statuses/{user}', { user }))\n\t\t\t\t\tthis.fetchedUserStatus = data.ocs?.data?.status\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.fetchedUserStatus = null\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n\n\tmounted() {\n\t\tif (!this.user && !this.status) {\n\t\t\tVue.util.warn('[NcUserStatusIcon] The `user` or `status` prop should be set.')\n\t\t}\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.user-status-icon {\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\tmin-width: 16px;\n\tmin-height: 16px;\n\tmax-width: 20px;\n\tmax-height: 20px;\n\n\t&--invisible {\n\t\tfilter: var(--background-invert-if-dark);\n\t}\n}\n</style>\n"],"names":["onlineSvg","awaySvg","dndSvg","invisibleSvg","getUserStatusText","status","t","_sfc_main","value","_a","user","_oldUser","_b","getCapabilities","data","axios","generateOcsUrl","_d","_c","Vue"],"mappings":";;;;;;AAAA,MAAeA,IAAA,2TCAAC,IAAA,iZCAAC,IAAA,6bCAAC,IAAA;;ACAf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0Ba,MAAAC,IAAoB,CAACC,MAA2B;AAC5D,UAAQA,GAAQ;AAAA,IAChB,KAAK;AAAQ,aAAOC,EAAE,MAAM;AAAA,IAC5B,KAAK;AAAQ,aAAOA,EAAE,MAAM;AAAA,IAC5B,KAAK;AAAO,aAAOA,EAAE,gBAAgB;AAAA,IACrC,KAAK;AAAU,aAAOA,EAAE,QAAQ;AAAA,IAChC,KAAK;AAAa,aAAOA,EAAE,WAAW;AAAA,IACtC,KAAK;AAAW,aAAOA,EAAE,SAAS;AAAA,IAClC;AAAgB,aAAAD;AAAA,EAChB;AACD;;ACsCA,MAAAE,IAAA;AAAA,EACA,MAAA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAAC,MAAA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACA,EAAA,SAAAA,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAAA,MAAA;AAAA,QACA;AAAA,QACA;AAAA,MACA,EAAA,SAAAA,CAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,mBAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,eAAA;;AACA,cAAAC,IAAA,KAAA,WAAA,OAAAA,IAAA,KAAA;AAAA,IACA;AAAA,IAEA,YAAA;;AASA,cAAAA,IARA;AAAA,QACA,QAAAT;AAAA,QACA,MAAAC;AAAA,QACA,MAAAA;AAAA,QACA,KAAAC;AAAA,QACA,WAAAC;AAAA,QACA,SAAAA;AAAA,MACA,EACA,KAAA,YAAA,MAAA,OAAAM,IAAA;AAAA,IACA;AAAA,IAEA,YAAA;AACA,aAAA,KAAA,eAAA,SACA,OAEAH,EAAA,yBAAA,EAAA,QAAAF,EAAA,KAAA,YAAA,GAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,MAAA;AAAA,MACA,WAAA;AAAA,MACA,MAAA,QAAAM,GAAAC,GAAA;;AACA,YAAA,CAAAD,KAAA,GAAAE,KAAAH,IAAAI,EAAA,MAAA,gBAAAJ,EAAA,gBAAA,QAAAG,EAAA,UAAA;AACA,eAAA,oBAAA;AACA;AAAA,QACA;AACA,YAAA;AACA,gBAAA,EAAA,MAAAE,MAAA,MAAAC,EAAA,IAAAC,EAAA,4CAAA,EAAA,MAAAN,EAAA,CAAA,CAAA;AACA,eAAA,qBAAAO,KAAAC,IAAAJ,EAAA,QAAA,gBAAAI,EAAA,SAAA,gBAAAD,EAAA;AAAA,QACA,QAAA;AACA,eAAA,oBAAA;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AACA,IAAA,CAAA,KAAA,QAAA,CAAA,KAAA,UACAE,EAAA,KAAA,KAAA,+DAAA;AAAA,EAEA;AACA;;;;;;;;;;;;;;;;;"}
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
*/
|
|
22
22
|
const e = (t) => {
|
|
23
23
|
t.mounted ? Array.isArray(t.mounted) || (t.mounted = [t.mounted]) : t.mounted = [], t.mounted.push(function() {
|
|
24
|
-
this.$el.setAttribute("data-v-
|
|
24
|
+
this.$el.setAttribute("data-v-770c3d7", "");
|
|
25
25
|
});
|
|
26
26
|
};
|
|
27
27
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScopeComponent-
|
|
1
|
+
{"version":3,"file":"ScopeComponent-9FoStIVM.mjs","sources":["../../src/utils/ScopeComponent.js"],"sourcesContent":["/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nconst ScopeComponent = (Component) => {\n\t// Init mounted vue if none\n\tif (!Component.mounted) {\n\t\tComponent.mounted = []\n\t} else if (!Array.isArray(Component.mounted)) {\n\t\tComponent.mounted = [Component.mounted]\n\t}\n\n\t// Inject root scoping function\n\tComponent.mounted.push(function() {\n\t\tthis.$el.setAttribute(`data-v-${SCOPE_VERSION}`, '')\n\t})\n}\n\nexport default ScopeComponent\n"],"names":["ScopeComponent","Component"],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBK,MAACA,IAAiB,CAACC,MAAc;AAErC,EAAKA,EAAU,UAEH,MAAM,QAAQA,EAAU,OAAO,MAC1CA,EAAU,UAAU,CAACA,EAAU,OAAO,KAFtCA,EAAU,UAAU,CAAE,GAMvBA,EAAU,QAAQ,KAAK,WAAW;AACjC,SAAK,IAAI,aAAa,kBAA2B,EAAE;AAAA,EACrD,CAAE;AACF;"}
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
*/
|
|
23
23
|
const e = (t) => {
|
|
24
24
|
t.mounted ? Array.isArray(t.mounted) || (t.mounted = [t.mounted]) : t.mounted = [], t.mounted.push(function() {
|
|
25
|
-
this.$el.setAttribute("data-v-
|
|
25
|
+
this.$el.setAttribute("data-v-770c3d7", "");
|
|
26
26
|
});
|
|
27
27
|
};
|
|
28
28
|
exports.ScopeComponent = e;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScopeComponent-
|
|
1
|
+
{"version":3,"file":"ScopeComponent-DdL1psE0.cjs","sources":["../../src/utils/ScopeComponent.js"],"sourcesContent":["/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nconst ScopeComponent = (Component) => {\n\t// Init mounted vue if none\n\tif (!Component.mounted) {\n\t\tComponent.mounted = []\n\t} else if (!Array.isArray(Component.mounted)) {\n\t\tComponent.mounted = [Component.mounted]\n\t}\n\n\t// Inject root scoping function\n\tComponent.mounted.push(function() {\n\t\tthis.$el.setAttribute(`data-v-${SCOPE_VERSION}`, '')\n\t})\n}\n\nexport default ScopeComponent\n"],"names":["ScopeComponent","Component"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBK,MAACA,IAAiB,CAACC,MAAc;AAErC,EAAKA,EAAU,UAEH,MAAM,QAAQA,EAAU,OAAO,MAC1CA,EAAU,UAAU,CAACA,EAAU,OAAO,KAFtCA,EAAU,UAAU,CAAE,GAMvBA,EAAU,QAAQ,KAAK,WAAW;AACjC,SAAK,IAAI,aAAa,kBAA2B,EAAE;AAAA,EACrD,CAAE;AACF;;"}
|