@nextcloud/vue 8.6.0 → 9.0.0-alpha.1
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 +91 -0
- package/dist/Components/NcActionButton.cjs +2 -132
- package/dist/Components/NcActionButton.cjs.map +1 -1
- package/dist/Components/NcActionButton.mjs +2 -136
- package/dist/Components/NcActionButton.mjs.map +1 -1
- package/dist/Components/NcActionButtonGroup.cjs +1 -1
- package/dist/Components/NcActionButtonGroup.mjs +1 -1
- package/dist/Components/NcActionCaption.cjs +2 -34
- package/dist/Components/NcActionCaption.cjs.map +1 -1
- package/dist/Components/NcActionCaption.mjs +2 -35
- package/dist/Components/NcActionCaption.mjs.map +1 -1
- package/dist/Components/NcActionCheckbox.cjs +2 -92
- package/dist/Components/NcActionCheckbox.cjs.map +1 -1
- package/dist/Components/NcActionCheckbox.mjs +2 -95
- package/dist/Components/NcActionCheckbox.mjs.map +1 -1
- package/dist/Components/NcActionInput.cjs +1 -1
- package/dist/Components/NcActionInput.mjs +1 -1
- package/dist/Components/NcActionLink.cjs +2 -76
- package/dist/Components/NcActionLink.cjs.map +1 -1
- package/dist/Components/NcActionLink.mjs +2 -78
- package/dist/Components/NcActionLink.mjs.map +1 -1
- package/dist/Components/NcActionRadio.cjs +2 -99
- package/dist/Components/NcActionRadio.cjs.map +1 -1
- package/dist/Components/NcActionRadio.mjs +2 -102
- package/dist/Components/NcActionRadio.mjs.map +1 -1
- package/dist/Components/NcActionRouter.cjs +2 -47
- package/dist/Components/NcActionRouter.cjs.map +1 -1
- package/dist/Components/NcActionRouter.mjs +2 -49
- package/dist/Components/NcActionRouter.mjs.map +1 -1
- package/dist/Components/NcActionSeparator.cjs +2 -19
- package/dist/Components/NcActionSeparator.cjs.map +1 -1
- package/dist/Components/NcActionSeparator.mjs +2 -20
- package/dist/Components/NcActionSeparator.mjs.map +1 -1
- package/dist/Components/NcActionText.cjs +2 -28
- package/dist/Components/NcActionText.cjs.map +1 -1
- package/dist/Components/NcActionText.mjs +2 -30
- package/dist/Components/NcActionText.mjs.map +1 -1
- package/dist/Components/NcActionTextEditable.cjs +2 -80
- package/dist/Components/NcActionTextEditable.cjs.map +1 -1
- package/dist/Components/NcActionTextEditable.mjs +1 -83
- package/dist/Components/NcActionTextEditable.mjs.map +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/NcAppContentDetails.cjs +2 -18
- package/dist/Components/NcAppContentDetails.cjs.map +1 -1
- package/dist/Components/NcAppContentDetails.mjs +2 -19
- package/dist/Components/NcAppContentDetails.mjs.map +1 -1
- package/dist/Components/NcAppContentList.cjs +2 -28
- package/dist/Components/NcAppContentList.cjs.map +1 -1
- package/dist/Components/NcAppContentList.mjs +2 -29
- package/dist/Components/NcAppContentList.mjs.map +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/NcAppNavigationIconBullet.cjs +2 -39
- package/dist/Components/NcAppNavigationIconBullet.cjs.map +1 -1
- package/dist/Components/NcAppNavigationIconBullet.mjs +2 -40
- package/dist/Components/NcAppNavigationIconBullet.mjs.map +1 -1
- package/dist/Components/NcAppNavigationItem.cjs +1 -1
- package/dist/Components/NcAppNavigationItem.mjs +1 -1
- package/dist/Components/NcAppNavigationNew.cjs +2 -49
- package/dist/Components/NcAppNavigationNew.cjs.map +1 -1
- package/dist/Components/NcAppNavigationNew.mjs +2 -51
- package/dist/Components/NcAppNavigationNew.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/NcAppNavigationSpacer.cjs +2 -19
- package/dist/Components/NcAppNavigationSpacer.cjs.map +1 -1
- package/dist/Components/NcAppNavigationSpacer.mjs +2 -20
- package/dist/Components/NcAppNavigationSpacer.mjs.map +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/NcAppSettingsSection.cjs +2 -54
- package/dist/Components/NcAppSettingsSection.cjs.map +1 -1
- package/dist/Components/NcAppSettingsSection.mjs +2 -55
- package/dist/Components/NcAppSettingsSection.mjs.map +1 -1
- package/dist/Components/NcAppSidebar.cjs +1 -1
- package/dist/Components/NcAppSidebar.mjs +1 -1
- package/dist/Components/NcAppSidebarTab.cjs +2 -81
- package/dist/Components/NcAppSidebarTab.cjs.map +1 -1
- package/dist/Components/NcAppSidebarTab.mjs +2 -82
- package/dist/Components/NcAppSidebarTab.mjs.map +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/NcButton.cjs +2 -240
- package/dist/Components/NcButton.cjs.map +1 -1
- package/dist/Components/NcButton.mjs +2 -241
- package/dist/Components/NcButton.mjs.map +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/NcCounterBubble.cjs +2 -46
- package/dist/Components/NcCounterBubble.cjs.map +1 -1
- package/dist/Components/NcCounterBubble.mjs +2 -47
- package/dist/Components/NcCounterBubble.mjs.map +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 -301
- package/dist/Components/NcDateTimePicker.cjs.map +1 -1
- package/dist/Components/NcDateTimePicker.mjs +2 -308
- package/dist/Components/NcDateTimePicker.mjs.map +1 -1
- package/dist/Components/NcDateTimePickerNative.cjs +2 -198
- package/dist/Components/NcDateTimePickerNative.cjs.map +1 -1
- package/dist/Components/NcDateTimePickerNative.mjs +2 -200
- package/dist/Components/NcDateTimePickerNative.mjs.map +1 -1
- package/dist/Components/NcDialog.cjs +1 -1
- package/dist/Components/NcDialog.mjs +1 -1
- package/dist/Components/NcDialogButton.cjs +1 -1
- package/dist/Components/NcDialogButton.mjs +1 -1
- package/dist/Components/NcEllipsisedOption.cjs +2 -73
- package/dist/Components/NcEllipsisedOption.cjs.map +1 -1
- package/dist/Components/NcEllipsisedOption.mjs +2 -75
- package/dist/Components/NcEllipsisedOption.mjs.map +1 -1
- package/dist/Components/NcEmojiPicker.cjs +1 -1
- package/dist/Components/NcEmojiPicker.mjs +1 -1
- package/dist/Components/NcEmptyContent.cjs +2 -52
- package/dist/Components/NcEmptyContent.cjs.map +1 -1
- package/dist/Components/NcEmptyContent.mjs +2 -53
- package/dist/Components/NcEmptyContent.mjs.map +1 -1
- package/dist/Components/NcGuestContent.cjs +2 -25
- package/dist/Components/NcGuestContent.cjs.map +1 -1
- package/dist/Components/NcGuestContent.mjs +2 -26
- package/dist/Components/NcGuestContent.mjs.map +1 -1
- package/dist/Components/NcHeaderMenu.cjs +1 -1
- package/dist/Components/NcHeaderMenu.mjs +1 -1
- package/dist/Components/NcHighlight.cjs +2 -2
- package/dist/Components/NcHighlight.mjs +1 -1
- package/dist/Components/NcIconSvgWrapper.cjs +1 -1
- package/dist/Components/NcIconSvgWrapper.mjs +1 -1
- package/dist/Components/NcInputField.cjs +2 -221
- package/dist/Components/NcInputField.cjs.map +1 -1
- package/dist/Components/NcInputField.mjs +2 -226
- package/dist/Components/NcInputField.mjs.map +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/NcLoadingIcon.cjs +2 -53
- package/dist/Components/NcLoadingIcon.cjs.map +1 -1
- package/dist/Components/NcLoadingIcon.mjs +2 -54
- package/dist/Components/NcLoadingIcon.mjs.map +1 -1
- package/dist/Components/NcModal.cjs +318 -142
- package/dist/Components/NcModal.cjs.map +1 -1
- package/dist/Components/NcModal.mjs +329 -151
- package/dist/Components/NcModal.mjs.map +1 -1
- package/dist/Components/NcNoteCard.cjs +2 -200
- package/dist/Components/NcNoteCard.cjs.map +1 -1
- package/dist/Components/NcNoteCard.mjs +2 -201
- package/dist/Components/NcNoteCard.mjs.map +1 -1
- package/dist/Components/NcPasswordField.cjs +1 -1
- package/dist/Components/NcPasswordField.mjs +1 -1
- package/dist/Components/NcPopover.cjs +1 -1
- package/dist/Components/NcPopover.mjs +1 -1
- package/dist/Components/NcProgressBar.cjs +1 -1
- package/dist/Components/NcProgressBar.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/NcSavingIndicatorIcon.cjs +1 -1
- package/dist/Components/NcSavingIndicatorIcon.mjs +1 -1
- 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/NcTextArea.cjs +2 -166
- package/dist/Components/NcTextArea.cjs.map +1 -1
- package/dist/Components/NcTextArea.mjs +1 -169
- package/dist/Components/NcTextArea.mjs.map +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/Components/NcVNodes.cjs +6 -17
- package/dist/Components/NcVNodes.cjs.map +1 -1
- package/dist/Components/NcVNodes.mjs +6 -18
- package/dist/Components/NcVNodes.mjs.map +1 -1
- package/dist/Composables/useIsFullscreen.cjs +5 -7
- package/dist/Composables/useIsFullscreen.cjs.map +1 -1
- package/dist/Composables/useIsFullscreen.mjs +6 -8
- package/dist/Composables/useIsFullscreen.mjs.map +1 -1
- package/dist/Directives/Focus.cjs +1 -1
- package/dist/Directives/Focus.cjs.map +1 -1
- package/dist/Directives/Focus.mjs +1 -1
- package/dist/Directives/Focus.mjs.map +1 -1
- package/dist/Directives/Linkify.cjs +5 -4
- package/dist/Directives/Linkify.cjs.map +1 -1
- package/dist/Directives/Linkify.mjs +6 -5
- package/dist/Directives/Linkify.mjs.map +1 -1
- package/dist/Directives/Tooltip.cjs +1 -2
- package/dist/Directives/Tooltip.cjs.map +1 -1
- package/dist/Directives/Tooltip.mjs +4 -4
- package/dist/Directives/Tooltip.mjs.map +1 -1
- package/dist/Functions/a11y.cjs +25 -0
- package/dist/Functions/a11y.cjs.map +1 -0
- package/dist/Functions/a11y.mjs +25 -0
- package/dist/Functions/a11y.mjs.map +1 -0
- package/dist/Functions/emoji.cjs +8 -0
- package/dist/Functions/emoji.cjs.map +1 -0
- package/dist/Functions/emoji.mjs +8 -0
- package/dist/Functions/emoji.mjs.map +1 -0
- 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/NcActionButton-De4wlKZH.css +134 -0
- package/dist/assets/NcActionCheckbox-T379T-FC.css +106 -0
- package/dist/assets/NcActionInput-MGVmREKR.css +243 -0
- package/dist/assets/NcActionRadio-UC-7SDBI.css +106 -0
- package/dist/assets/NcActionRouter-g0zV3dVT.css +133 -0
- package/dist/assets/NcActionTextEditable-DE_5Sc0w.css +259 -0
- package/dist/assets/NcActions-PR-7NI_x.css +84 -0
- package/dist/assets/NcAppContent-kIkHd4VN.css +116 -0
- package/dist/assets/NcAppNavigation-9xEM_GAn.css +92 -0
- package/dist/assets/NcAppNavigationCaption-0s4Wxc88.css +52 -0
- package/dist/assets/NcAppNavigationItem-_MHs9DEv.css +213 -0
- package/dist/assets/NcAppNavigationNew-PtSC3Wy5.css +36 -0
- package/dist/assets/NcAppNavigationNewItem-ue-H4LQY.css +206 -0
- package/dist/assets/NcAppNavigationSettings-Q_od5CcP.css +88 -0
- package/dist/assets/NcAppNavigationToggle-VrntFGdJ.css +38 -0
- package/dist/assets/NcAppSettingsDialog-HOydlmNi.css +86 -0
- package/dist/assets/NcAppSettingsSection-Gh575p0x.css +41 -0
- package/dist/assets/NcAppSidebar-UFABwmpX.css +318 -0
- package/dist/assets/NcAppSidebarTab-goNfHK4d.css +45 -0
- package/dist/assets/NcAvatar-DCUiVghV.css +144 -0
- package/dist/assets/NcBreadcrumb-ZsIS1jDx.css +80 -0
- package/dist/assets/NcBreadcrumbs-VKFJ9HrE.css +49 -0
- package/dist/assets/NcButton-rKJYdkZn.css +204 -0
- package/dist/assets/NcCheckboxRadioSwitch-dNV4KgTO.css +201 -0
- package/dist/assets/NcColorPicker-FiFz1rof.css +131 -0
- package/dist/assets/NcContent-3Fl9j87E.css +82 -0
- package/dist/assets/NcDashboardWidget-7x3QrWFu.css +83 -0
- package/dist/assets/NcDateTimePicker-CC5ocPIo.css +907 -0
- package/dist/assets/NcDateTimePickerNative-BeREqSH_.css +58 -0
- package/dist/assets/NcDialog-IM0YIgKq.css +126 -0
- package/dist/assets/NcEmojiPicker-nDpi1GKA.css +552 -0
- package/dist/assets/NcEmptyContent-b8eqBVE_.css +75 -0
- package/dist/assets/NcGuestContent-FRQFLxlW.css +51 -0
- package/dist/assets/NcHeaderMenu-kKraSlS3.css +92 -0
- package/dist/assets/NcIconSvgWrapper-0OJxiD3Q.css +44 -0
- package/dist/assets/NcInputConfirmCancel-_GF_RjYc.css +51 -0
- package/dist/assets/NcInputField-qx4Me7uJ.css +194 -0
- package/dist/assets/NcListItem-RylkggkP.css +165 -0
- package/dist/assets/NcListItemIcon-mlEQ7oK0.css +80 -0
- package/dist/assets/NcModal-lgvjJTYz.css +298 -0
- package/dist/assets/NcRelatedResourcesPanel-i1-7CClp.css +76 -0
- package/dist/assets/NcRichContenteditable--bkjerM1.css +268 -0
- package/dist/assets/NcSettingsInputText-JpZtS9DS.css +46 -0
- package/dist/assets/NcSettingsSelectGroup-51HMKLZQ.css +34 -0
- package/dist/assets/NcTextArea-Eqv_-5FR.css +139 -0
- package/dist/assets/NcUserBubble-t1uOyYCF.css +59 -0
- package/dist/assets/NcUserStatusIcon-AXLspcOQ.css +41 -0
- package/dist/assets/referencePickerModal-k5G-IS2z.css +509 -0
- package/dist/chunks/AlertCircleOutline-1fsF7za7.mjs +44 -0
- package/dist/chunks/AlertCircleOutline-1fsF7za7.mjs.map +1 -0
- package/dist/chunks/AlertCircleOutline-M7wVqz_-.cjs +41 -0
- package/dist/chunks/AlertCircleOutline-M7wVqz_-.cjs.map +1 -0
- package/dist/chunks/ArrowLeft-arUkZZ3U.cjs +41 -0
- package/dist/chunks/ArrowLeft-arUkZZ3U.cjs.map +1 -0
- package/dist/chunks/ArrowLeft-uvAzhtxD.mjs +44 -0
- package/dist/chunks/ArrowLeft-uvAzhtxD.mjs.map +1 -0
- package/dist/chunks/ArrowRight-6gYTXvBH.mjs +44 -0
- package/dist/chunks/ArrowRight-6gYTXvBH.mjs.map +1 -0
- package/dist/chunks/ArrowRight-UxW1qyeX.cjs +41 -0
- package/dist/chunks/ArrowRight-UxW1qyeX.cjs.map +1 -0
- package/dist/chunks/Check-fwcsc82n.cjs +41 -0
- package/dist/chunks/Check-fwcsc82n.cjs.map +1 -0
- package/dist/chunks/Check-tQl0Vp18.mjs +44 -0
- package/dist/chunks/Check-tQl0Vp18.mjs.map +1 -0
- package/dist/chunks/ChevronDown-8tkFE94e.cjs +41 -0
- package/dist/chunks/ChevronDown-8tkFE94e.cjs.map +1 -0
- package/dist/chunks/ChevronDown-BxTx7hZm.mjs +44 -0
- package/dist/chunks/ChevronDown-BxTx7hZm.mjs.map +1 -0
- package/dist/chunks/ChevronRight-7GGKl2bX.cjs +41 -0
- package/dist/chunks/ChevronRight-7GGKl2bX.cjs.map +1 -0
- package/dist/chunks/ChevronRight-gF2cX9Cu.mjs +44 -0
- package/dist/chunks/ChevronRight-gF2cX9Cu.mjs.map +1 -0
- package/dist/chunks/Close-e2vDvDm2.cjs +41 -0
- package/dist/chunks/Close-e2vDvDm2.cjs.map +1 -0
- package/dist/chunks/Close-hKJ11hky.mjs +44 -0
- package/dist/chunks/Close-hKJ11hky.mjs.map +1 -0
- package/dist/chunks/DotsHorizontal-JfmEIGBo.mjs +44 -0
- package/dist/chunks/DotsHorizontal-JfmEIGBo.mjs.map +1 -0
- package/dist/chunks/DotsHorizontal-z8LXg-4B.cjs +41 -0
- package/dist/chunks/DotsHorizontal-z8LXg-4B.cjs.map +1 -0
- package/dist/chunks/GenColors-L7jWucCS.mjs +142 -0
- package/dist/chunks/GenColors-L7jWucCS.mjs.map +1 -0
- package/dist/chunks/GenColors-vx_p2Tvw.cjs +141 -0
- package/dist/chunks/GenColors-vx_p2Tvw.cjs.map +1 -0
- package/dist/chunks/NcActionButton-VnbqrtOY.mjs +180 -0
- package/dist/chunks/NcActionButton-VnbqrtOY.mjs.map +1 -0
- package/dist/chunks/NcActionButton-sJpgOVU9.cjs +173 -0
- package/dist/chunks/NcActionButton-sJpgOVU9.cjs.map +1 -0
- package/dist/chunks/NcActionButtonGroup-5PPiueIz.cjs +50 -0
- package/dist/chunks/NcActionButtonGroup-5PPiueIz.cjs.map +1 -0
- package/dist/chunks/NcActionButtonGroup-oFPVvd4U.mjs +55 -0
- package/dist/chunks/NcActionButtonGroup-oFPVvd4U.mjs.map +1 -0
- package/dist/chunks/NcActionCaption-SIz5c1sE.cjs +27 -0
- package/dist/chunks/NcActionCaption-SIz5c1sE.cjs.map +1 -0
- package/dist/chunks/NcActionCaption-vguA2tEL.mjs +31 -0
- package/dist/chunks/NcActionCaption-vguA2tEL.mjs.map +1 -0
- package/dist/chunks/NcActionCheckbox-5-bIAzkC.mjs +113 -0
- package/dist/chunks/NcActionCheckbox-5-bIAzkC.mjs.map +1 -0
- package/dist/chunks/NcActionCheckbox-CUXJQss6.cjs +107 -0
- package/dist/chunks/NcActionCheckbox-CUXJQss6.cjs.map +1 -0
- package/dist/chunks/NcActionInput-of1oXP_n.cjs +335 -0
- package/dist/chunks/NcActionInput-of1oXP_n.cjs.map +1 -0
- package/dist/chunks/NcActionInput-zg13uJ6x.mjs +346 -0
- package/dist/chunks/NcActionInput-zg13uJ6x.mjs.map +1 -0
- package/dist/chunks/NcActionLink-eBaRU5qY.cjs +106 -0
- package/dist/chunks/NcActionLink-eBaRU5qY.cjs.map +1 -0
- package/dist/chunks/NcActionLink-pscYsQ_3.mjs +111 -0
- package/dist/chunks/NcActionLink-pscYsQ_3.mjs.map +1 -0
- package/dist/chunks/NcActionRadio-1QLxEcfl.mjs +121 -0
- package/dist/chunks/NcActionRadio-1QLxEcfl.mjs.map +1 -0
- package/dist/chunks/NcActionRadio-3UkRsS6r.cjs +115 -0
- package/dist/chunks/NcActionRadio-3UkRsS6r.cjs.map +1 -0
- package/dist/chunks/NcActionRouter-BsOXVKlY.mjs +75 -0
- package/dist/chunks/NcActionRouter-BsOXVKlY.mjs.map +1 -0
- package/dist/chunks/NcActionRouter-c6pYto3T.cjs +70 -0
- package/dist/chunks/NcActionRouter-c6pYto3T.cjs.map +1 -0
- package/dist/chunks/NcActionSeparator-0-kc3NRC.mjs +16 -0
- package/dist/chunks/NcActionSeparator-0-kc3NRC.mjs.map +1 -0
- package/dist/chunks/NcActionSeparator-craHv8oO.cjs +12 -0
- package/dist/chunks/NcActionSeparator-craHv8oO.cjs.map +1 -0
- package/dist/chunks/NcActionText-9Ti6bh1b.mjs +57 -0
- package/dist/chunks/NcActionText-9Ti6bh1b.mjs.map +1 -0
- package/dist/chunks/NcActionText-Sw_tMRaW.cjs +52 -0
- package/dist/chunks/NcActionText-Sw_tMRaW.cjs.map +1 -0
- package/dist/chunks/NcActionTextEditable-faJIAtYw.cjs +114 -0
- package/dist/chunks/NcActionTextEditable-faJIAtYw.cjs.map +1 -0
- package/dist/chunks/NcActionTextEditable-xPb_cTMW.mjs +121 -0
- package/dist/chunks/NcActionTextEditable-xPb_cTMW.mjs.map +1 -0
- package/dist/chunks/NcActions-76CtOBCq.mjs +497 -0
- package/dist/chunks/NcActions-76CtOBCq.mjs.map +1 -0
- package/dist/chunks/NcActions-YpbmJ7hS.cjs +488 -0
- package/dist/chunks/NcActions-YpbmJ7hS.cjs.map +1 -0
- package/dist/chunks/NcAppContent-Tw5gNorr.mjs +275 -0
- package/dist/chunks/NcAppContent-Tw5gNorr.mjs.map +1 -0
- package/dist/chunks/NcAppContent-mHc-Ms2b.cjs +264 -0
- package/dist/chunks/NcAppContent-mHc-Ms2b.cjs.map +1 -0
- package/dist/chunks/NcAppContentDetails-BhbsNp93.cjs +11 -0
- package/dist/chunks/NcAppContentDetails-BhbsNp93.cjs.map +1 -0
- package/dist/chunks/NcAppContentDetails-bD9j5H59.mjs +14 -0
- package/dist/chunks/NcAppContentDetails-bD9j5H59.mjs.map +1 -0
- package/dist/chunks/NcAppContentList-_kO9F-p0.mjs +26 -0
- package/dist/chunks/NcAppContentList-_kO9F-p0.mjs.map +1 -0
- package/dist/chunks/NcAppContentList-blRtleBI.cjs +23 -0
- package/dist/chunks/NcAppContentList-blRtleBI.cjs.map +1 -0
- package/dist/chunks/NcAppNavigation-sY7HaHMv.mjs +134 -0
- package/dist/chunks/NcAppNavigation-sY7HaHMv.mjs.map +1 -0
- package/dist/chunks/NcAppNavigation-yEZ-RJA2.cjs +125 -0
- package/dist/chunks/NcAppNavigation-yEZ-RJA2.cjs.map +1 -0
- package/dist/chunks/NcAppNavigationCaption-XpbVXYKV.cjs +42 -0
- package/dist/chunks/NcAppNavigationCaption-XpbVXYKV.cjs.map +1 -0
- package/dist/chunks/NcAppNavigationCaption-pcyV3wRO.mjs +47 -0
- package/dist/chunks/NcAppNavigationCaption-pcyV3wRO.mjs.map +1 -0
- package/dist/chunks/NcAppNavigationIconBullet-GLCjMfFF.cjs +36 -0
- package/dist/chunks/NcAppNavigationIconBullet-GLCjMfFF.cjs.map +1 -0
- package/dist/chunks/NcAppNavigationIconBullet-OqquWWY6.mjs +40 -0
- package/dist/chunks/NcAppNavigationIconBullet-OqquWWY6.mjs.map +1 -0
- package/dist/chunks/NcAppNavigationItem-JLYTEgEH.mjs +608 -0
- package/dist/chunks/NcAppNavigationItem-JLYTEgEH.mjs.map +1 -0
- package/dist/chunks/NcAppNavigationItem-NE1UdZkS.cjs +595 -0
- package/dist/chunks/NcAppNavigationItem-NE1UdZkS.cjs.map +1 -0
- package/dist/chunks/NcAppNavigationNew-6ZAJS_DY.mjs +56 -0
- package/dist/chunks/NcAppNavigationNew-6ZAJS_DY.mjs.map +1 -0
- package/dist/chunks/NcAppNavigationNew-hmJL2IDR.cjs +51 -0
- package/dist/chunks/NcAppNavigationNew-hmJL2IDR.cjs.map +1 -0
- package/dist/chunks/NcAppNavigationNewItem-MjsbS_dO.cjs +106 -0
- package/dist/chunks/NcAppNavigationNewItem-MjsbS_dO.cjs.map +1 -0
- package/dist/chunks/NcAppNavigationNewItem-NzRL8Uwy.mjs +112 -0
- package/dist/chunks/NcAppNavigationNewItem-NzRL8Uwy.mjs.map +1 -0
- package/dist/chunks/NcAppNavigationSettings-DPeH305A.cjs +128 -0
- package/dist/chunks/NcAppNavigationSettings-DPeH305A.cjs.map +1 -0
- package/dist/chunks/NcAppNavigationSettings-LR3QCvNr.mjs +131 -0
- package/dist/chunks/NcAppNavigationSettings-LR3QCvNr.mjs.map +1 -0
- package/dist/chunks/NcAppNavigationSpacer-FIQIP65d.cjs +9 -0
- package/dist/chunks/NcAppNavigationSpacer-FIQIP65d.cjs.map +1 -0
- package/dist/chunks/NcAppNavigationSpacer-gzdnlvnT.mjs +13 -0
- package/dist/chunks/NcAppNavigationSpacer-gzdnlvnT.mjs.map +1 -0
- package/dist/chunks/NcAppNavigationToggle-SEvIEY16.mjs +145 -0
- package/dist/chunks/NcAppNavigationToggle-SEvIEY16.mjs.map +1 -0
- package/dist/chunks/NcAppNavigationToggle-sXvQDqok.cjs +140 -0
- package/dist/chunks/NcAppNavigationToggle-sXvQDqok.cjs.map +1 -0
- package/dist/chunks/NcAppSettingsDialog-HnYa47vg.cjs +211 -0
- package/dist/chunks/NcAppSettingsDialog-HnYa47vg.cjs.map +1 -0
- package/dist/chunks/NcAppSettingsDialog-nbTWBbti.mjs +219 -0
- package/dist/chunks/NcAppSettingsDialog-nbTWBbti.mjs.map +1 -0
- package/dist/chunks/NcAppSettingsSection-LHcKgBpz.cjs +54 -0
- package/dist/chunks/NcAppSettingsSection-LHcKgBpz.cjs.map +1 -0
- package/dist/chunks/NcAppSettingsSection-a0Un2ZRv.mjs +58 -0
- package/dist/chunks/NcAppSettingsSection-a0Un2ZRv.mjs.map +1 -0
- package/dist/chunks/NcAppSidebar-Tvy0LplS.cjs +712 -0
- package/dist/chunks/NcAppSidebar-Tvy0LplS.cjs.map +1 -0
- package/dist/chunks/NcAppSidebar-xWMj1EI8.mjs +731 -0
- package/dist/chunks/NcAppSidebar-xWMj1EI8.mjs.map +1 -0
- package/dist/chunks/NcAppSidebarTab-oPHofCKq.cjs +84 -0
- package/dist/chunks/NcAppSidebarTab-oPHofCKq.cjs.map +1 -0
- package/dist/chunks/NcAppSidebarTab-sMoFkDTb.mjs +88 -0
- package/dist/chunks/NcAppSidebarTab-sMoFkDTb.mjs.map +1 -0
- package/dist/chunks/NcAvatar-JsMCceHU.mjs +542 -0
- package/dist/chunks/NcAvatar-JsMCceHU.mjs.map +1 -0
- package/dist/chunks/NcAvatar-uPVG9WWg.cjs +526 -0
- package/dist/chunks/NcAvatar-uPVG9WWg.cjs.map +1 -0
- package/dist/chunks/NcBreadcrumb-7q3EEfcO.cjs +208 -0
- package/dist/chunks/NcBreadcrumb-7q3EEfcO.cjs.map +1 -0
- package/dist/chunks/NcBreadcrumb-Fr7J33Qv.mjs +216 -0
- package/dist/chunks/NcBreadcrumb-Fr7J33Qv.mjs.map +1 -0
- package/dist/chunks/NcBreadcrumbs-XVIsLfXn.cjs +369 -0
- package/dist/chunks/NcBreadcrumbs-XVIsLfXn.cjs.map +1 -0
- package/dist/chunks/NcBreadcrumbs-ozezYXlM.mjs +381 -0
- package/dist/chunks/NcBreadcrumbs-ozezYXlM.mjs.map +1 -0
- package/dist/chunks/NcButton-7UKtzkX5.cjs +252 -0
- package/dist/chunks/NcButton-7UKtzkX5.cjs.map +1 -0
- package/dist/chunks/NcButton-YOXv3gFY.mjs +255 -0
- package/dist/chunks/NcButton-YOXv3gFY.mjs.map +1 -0
- package/dist/chunks/NcCheckboxRadioSwitch-IA6Ssm8K.cjs +696 -0
- package/dist/chunks/NcCheckboxRadioSwitch-IA6Ssm8K.cjs.map +1 -0
- package/dist/chunks/NcCheckboxRadioSwitch-NwTx_zgG.mjs +701 -0
- package/dist/chunks/NcCheckboxRadioSwitch-NwTx_zgG.mjs.map +1 -0
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_48c28b96_lang-togIrFzp.cjs +3 -0
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_48c28b96_lang-togIrFzp.cjs.map +1 -0
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_48c28b96_lang-yghIE9RS.mjs +3 -0
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_48c28b96_lang-yghIE9RS.mjs.map +1 -0
- package/dist/chunks/NcColorPicker-DNy0FRJb.mjs +254 -0
- package/dist/chunks/NcColorPicker-DNy0FRJb.mjs.map +1 -0
- package/dist/chunks/NcColorPicker-i9PgTYBd.cjs +242 -0
- package/dist/chunks/NcColorPicker-i9PgTYBd.cjs.map +1 -0
- package/dist/chunks/NcContent-HdbQCleH.mjs +111 -0
- package/dist/chunks/NcContent-HdbQCleH.mjs.map +1 -0
- package/dist/chunks/NcContent-MOEEa0z1.cjs +103 -0
- package/dist/chunks/NcContent-MOEEa0z1.cjs.map +1 -0
- package/dist/chunks/NcCounterBubble-0pCAxQl7.cjs +40 -0
- package/dist/chunks/NcCounterBubble-0pCAxQl7.cjs.map +1 -0
- package/dist/chunks/NcCounterBubble-w6SmwTWu.mjs +44 -0
- package/dist/chunks/NcCounterBubble-w6SmwTWu.mjs.map +1 -0
- package/dist/chunks/NcDashboardWidget-JGkvqDWC.mjs +169 -0
- package/dist/chunks/NcDashboardWidget-JGkvqDWC.mjs.map +1 -0
- package/dist/chunks/NcDashboardWidget-qHSuK2yd.cjs +161 -0
- package/dist/chunks/NcDashboardWidget-qHSuK2yd.cjs.map +1 -0
- package/dist/chunks/NcDashboardWidgetItem-fl92G4Pt.cjs +177 -0
- package/dist/chunks/NcDashboardWidgetItem-fl92G4Pt.cjs.map +1 -0
- package/dist/chunks/NcDashboardWidgetItem-oQGp29KO.mjs +184 -0
- package/dist/chunks/NcDashboardWidgetItem-oQGp29KO.mjs.map +1 -0
- package/dist/chunks/NcDateTime-JYO8uPbb.mjs +140 -0
- package/dist/chunks/NcDateTime-JYO8uPbb.mjs.map +1 -0
- package/dist/chunks/NcDateTime-T52KrH65.cjs +136 -0
- package/dist/chunks/NcDateTime-T52KrH65.cjs.map +1 -0
- package/dist/chunks/NcDateTimePicker-X2pCnTer.cjs +328 -0
- package/dist/chunks/NcDateTimePicker-X2pCnTer.cjs.map +1 -0
- package/dist/chunks/NcDateTimePicker-ahgVldMQ.mjs +338 -0
- package/dist/chunks/NcDateTimePicker-ahgVldMQ.mjs.map +1 -0
- package/dist/chunks/NcDateTimePickerNative-3Xru7_OT.mjs +181 -0
- package/dist/chunks/NcDateTimePickerNative-3Xru7_OT.mjs.map +1 -0
- package/dist/chunks/NcDateTimePickerNative-xSITuvpX.cjs +176 -0
- package/dist/chunks/NcDateTimePickerNative-xSITuvpX.cjs.map +1 -0
- package/dist/chunks/NcDialog-BYXi2emF.cjs +237 -0
- package/dist/chunks/NcDialog-BYXi2emF.cjs.map +1 -0
- package/dist/chunks/NcDialog-rTTTdaH3.mjs +245 -0
- package/dist/chunks/NcDialog-rTTTdaH3.mjs.map +1 -0
- package/dist/chunks/NcDialogButton-37TPbyFs.cjs +73 -0
- package/dist/chunks/NcDialogButton-37TPbyFs.cjs.map +1 -0
- package/dist/chunks/NcDialogButton-ax4NTfDU.mjs +78 -0
- package/dist/chunks/NcDialogButton-ax4NTfDU.mjs.map +1 -0
- package/dist/chunks/NcEllipsisedOption-FGgPyI_T.mjs +86 -0
- package/dist/chunks/NcEllipsisedOption-FGgPyI_T.mjs.map +1 -0
- package/dist/chunks/NcEllipsisedOption-eFqGdcUE.cjs +81 -0
- package/dist/chunks/NcEllipsisedOption-eFqGdcUE.cjs.map +1 -0
- package/dist/chunks/NcEmojiPicker-oWZ5anxp.mjs +339 -0
- package/dist/chunks/NcEmojiPicker-oWZ5anxp.mjs.map +1 -0
- package/dist/chunks/NcEmojiPicker-tOE2N9VS.cjs +326 -0
- package/dist/chunks/NcEmojiPicker-tOE2N9VS.cjs.map +1 -0
- package/dist/chunks/NcEmptyContent-Dvt4jhjb.mjs +62 -0
- package/dist/chunks/NcEmptyContent-Dvt4jhjb.mjs.map +1 -0
- package/dist/chunks/NcEmptyContent-M3ClqFZe.cjs +58 -0
- package/dist/chunks/NcEmptyContent-M3ClqFZe.cjs.map +1 -0
- package/dist/chunks/NcGuestContent-8HpHaN1K.mjs +21 -0
- package/dist/chunks/NcGuestContent-8HpHaN1K.mjs.map +1 -0
- package/dist/chunks/NcGuestContent-vbt8h0nE.cjs +17 -0
- package/dist/chunks/NcGuestContent-vbt8h0nE.cjs.map +1 -0
- package/dist/chunks/NcHeaderMenu-67JCzTGo.mjs +225 -0
- package/dist/chunks/NcHeaderMenu-67JCzTGo.mjs.map +1 -0
- package/dist/chunks/NcHeaderMenu-TvFFSvGS.cjs +218 -0
- package/dist/chunks/NcHeaderMenu-TvFFSvGS.cjs.map +1 -0
- package/dist/chunks/NcHighlight-cBMxLCnf.cjs +136 -0
- package/dist/chunks/NcHighlight-cBMxLCnf.cjs.map +1 -0
- package/dist/chunks/NcHighlight-kWLldgWB.mjs +137 -0
- package/dist/chunks/NcHighlight-kWLldgWB.mjs.map +1 -0
- package/dist/chunks/NcIconSvgWrapper-ACaaN_pS.mjs +82 -0
- package/dist/chunks/NcIconSvgWrapper-ACaaN_pS.mjs.map +1 -0
- package/dist/chunks/NcIconSvgWrapper-_hHu9P_M.cjs +77 -0
- package/dist/chunks/NcIconSvgWrapper-_hHu9P_M.cjs.map +1 -0
- package/dist/chunks/NcInputConfirmCancel-DYlc289d.cjs +105 -0
- package/dist/chunks/NcInputConfirmCancel-DYlc289d.cjs.map +1 -0
- package/dist/chunks/NcInputConfirmCancel-lmWu4ouW.mjs +112 -0
- package/dist/chunks/NcInputConfirmCancel-lmWu4ouW.mjs.map +1 -0
- package/dist/chunks/NcInputField-6pRWha3h.mjs +291 -0
- package/dist/chunks/NcInputField-6pRWha3h.mjs.map +1 -0
- package/dist/chunks/NcInputField-6vveMrmf.cjs +283 -0
- package/dist/chunks/NcInputField-6vveMrmf.cjs.map +1 -0
- package/dist/chunks/NcListItem-3QDILDKr.cjs +339 -0
- package/dist/chunks/NcListItem-3QDILDKr.cjs.map +1 -0
- package/dist/chunks/NcListItem-vkgu6Biu.mjs +346 -0
- package/dist/chunks/NcListItem-vkgu6Biu.mjs.map +1 -0
- package/dist/chunks/NcListItemIcon-130Lt3dW.mjs +193 -0
- package/dist/chunks/NcListItemIcon-130Lt3dW.mjs.map +1 -0
- package/dist/chunks/NcListItemIcon-dOvFvjqI.cjs +189 -0
- package/dist/chunks/NcListItemIcon-dOvFvjqI.cjs.map +1 -0
- package/dist/chunks/NcLoadingIcon-DnhhU7Z8.mjs +68 -0
- package/dist/chunks/NcLoadingIcon-DnhhU7Z8.mjs.map +1 -0
- package/dist/chunks/NcLoadingIcon-Fwid-wWE.cjs +64 -0
- package/dist/chunks/NcLoadingIcon-Fwid-wWE.cjs.map +1 -0
- package/dist/chunks/NcNoteCard-MnmgJvKD.mjs +230 -0
- package/dist/chunks/NcNoteCard-MnmgJvKD.mjs.map +1 -0
- package/dist/chunks/NcNoteCard-ujnbiyLI.cjs +226 -0
- package/dist/chunks/NcNoteCard-ujnbiyLI.cjs.map +1 -0
- package/dist/chunks/NcPasswordField-8rboJv29.cjs +255 -0
- package/dist/chunks/NcPasswordField-8rboJv29.cjs.map +1 -0
- package/dist/chunks/NcPasswordField-RHelr3R-.mjs +265 -0
- package/dist/chunks/NcPasswordField-RHelr3R-.mjs.map +1 -0
- package/dist/chunks/NcPopover-J0pw-klF.cjs +216 -0
- package/dist/chunks/NcPopover-J0pw-klF.cjs.map +1 -0
- package/dist/chunks/NcPopover-XgOWyuQF.mjs +223 -0
- package/dist/chunks/NcPopover-XgOWyuQF.mjs.map +1 -0
- package/dist/chunks/NcProgressBar-1EANJyYJ.mjs +127 -0
- package/dist/chunks/NcProgressBar-1EANJyYJ.mjs.map +1 -0
- package/dist/chunks/NcProgressBar-zsehqkEw.cjs +123 -0
- package/dist/chunks/NcProgressBar-zsehqkEw.cjs.map +1 -0
- package/dist/chunks/NcRelatedResourcesPanel-NqDuh_7F.mjs +220 -0
- package/dist/chunks/NcRelatedResourcesPanel-NqDuh_7F.mjs.map +1 -0
- package/dist/chunks/NcRelatedResourcesPanel-QgNIHnCY.cjs +213 -0
- package/dist/chunks/NcRelatedResourcesPanel-QgNIHnCY.cjs.map +1 -0
- package/dist/chunks/NcRichContenteditable-L8aEJNGb.cjs +531 -0
- package/dist/chunks/NcRichContenteditable-L8aEJNGb.cjs.map +1 -0
- package/dist/chunks/NcRichContenteditable-W0BnJp3x.mjs +543 -0
- package/dist/chunks/NcRichContenteditable-W0BnJp3x.mjs.map +1 -0
- package/dist/chunks/NcRichText-91v7gJEe.cjs +331 -0
- package/dist/chunks/NcRichText-91v7gJEe.cjs.map +1 -0
- package/dist/chunks/NcRichText-RTwlrmhz.mjs +348 -0
- package/dist/chunks/NcRichText-RTwlrmhz.mjs.map +1 -0
- package/dist/chunks/NcSavingIndicatorIcon-IpOVvSwW.cjs +71 -0
- package/dist/chunks/NcSavingIndicatorIcon-IpOVvSwW.cjs.map +1 -0
- package/dist/chunks/NcSavingIndicatorIcon-QRgqeOd3.mjs +74 -0
- package/dist/chunks/NcSavingIndicatorIcon-QRgqeOd3.mjs.map +1 -0
- package/dist/chunks/NcSelect-HmmLuUCp.mjs +515 -0
- package/dist/chunks/NcSelect-HmmLuUCp.mjs.map +1 -0
- package/dist/chunks/NcSelect-P2FpWJBr.cjs +503 -0
- package/dist/chunks/NcSelect-P2FpWJBr.cjs.map +1 -0
- package/dist/chunks/NcSelectTags-HX8YbYwd.cjs +256 -0
- package/dist/chunks/NcSelectTags-HX8YbYwd.cjs.map +1 -0
- package/dist/chunks/NcSelectTags-ZoLcdmHG.mjs +263 -0
- package/dist/chunks/NcSelectTags-ZoLcdmHG.mjs.map +1 -0
- package/dist/chunks/NcSettingsInputText-9TVSwO_s.mjs +113 -0
- package/dist/chunks/NcSettingsInputText-9TVSwO_s.mjs.map +1 -0
- package/dist/chunks/NcSettingsInputText-oJ_c6sMr.cjs +108 -0
- package/dist/chunks/NcSettingsInputText-oJ_c6sMr.cjs.map +1 -0
- package/dist/chunks/NcSettingsSection-W7Ieq32P.cjs +114 -0
- package/dist/chunks/NcSettingsSection-W7Ieq32P.cjs.map +1 -0
- package/dist/chunks/NcSettingsSection-bpmpu801.mjs +118 -0
- package/dist/chunks/NcSettingsSection-bpmpu801.mjs.map +1 -0
- package/dist/chunks/NcSettingsSelectGroup-HFDYgsw-.mjs +208 -0
- package/dist/chunks/NcSettingsSelectGroup-HFDYgsw-.mjs.map +1 -0
- package/dist/chunks/NcSettingsSelectGroup-UnB2ao3D.cjs +199 -0
- package/dist/chunks/NcSettingsSelectGroup-UnB2ao3D.cjs.map +1 -0
- package/dist/chunks/NcTextArea-QIkvyzz7.cjs +196 -0
- package/dist/chunks/NcTextArea-QIkvyzz7.cjs.map +1 -0
- package/dist/chunks/NcTextArea-SeSiP6Dy.mjs +203 -0
- package/dist/chunks/NcTextArea-SeSiP6Dy.mjs.map +1 -0
- package/dist/chunks/NcTextField-qqwMB07_.mjs +165 -0
- package/dist/chunks/NcTextField-qqwMB07_.mjs.map +1 -0
- package/dist/chunks/NcTextField-zi19KqEm.cjs +158 -0
- package/dist/chunks/NcTextField-zi19KqEm.cjs.map +1 -0
- package/dist/chunks/NcTimezonePicker-EPCmHeHy.mjs +3790 -0
- package/dist/chunks/NcTimezonePicker-EPCmHeHy.mjs.map +1 -0
- package/dist/chunks/NcTimezonePicker-f6X4yiuj.cjs +3783 -0
- package/dist/chunks/NcTimezonePicker-f6X4yiuj.cjs.map +1 -0
- package/dist/chunks/NcUserBubble-Jw-rOju8.mjs +205 -0
- package/dist/chunks/NcUserBubble-Jw-rOju8.mjs.map +1 -0
- package/dist/chunks/NcUserBubble-NZeBFOmo.cjs +199 -0
- package/dist/chunks/NcUserBubble-NZeBFOmo.cjs.map +1 -0
- package/dist/chunks/NcUserStatusIcon-b0xt-g7X.cjs +146 -0
- package/dist/chunks/NcUserStatusIcon-b0xt-g7X.cjs.map +1 -0
- package/dist/chunks/NcUserStatusIcon-hmLq9dti.mjs +154 -0
- package/dist/chunks/NcUserStatusIcon-hmLq9dti.mjs.map +1 -0
- package/dist/chunks/ScopeComponent-Gzz2FMnQ.cjs +26 -0
- package/dist/chunks/ScopeComponent-Gzz2FMnQ.cjs.map +1 -0
- package/dist/chunks/ScopeComponent-mG7CSpxl.mjs +27 -0
- package/dist/chunks/ScopeComponent-mG7CSpxl.mjs.map +1 -0
- package/dist/chunks/_l10n-Fl7RzbcZ.cjs +64 -0
- package/dist/chunks/_l10n-Fl7RzbcZ.cjs.map +1 -0
- package/dist/chunks/_l10n-uuAvfQgY.mjs +66 -0
- package/dist/chunks/_l10n-uuAvfQgY.mjs.map +1 -0
- package/dist/chunks/_plugin-vue_export-helper-hUChTQA_.mjs +9 -0
- package/dist/chunks/_plugin-vue_export-helper-hUChTQA_.mjs.map +1 -0
- package/dist/chunks/_plugin-vue_export-helper-xG2iG1wl.cjs +8 -0
- package/dist/chunks/_plugin-vue_export-helper-xG2iG1wl.cjs.map +1 -0
- package/dist/chunks/actionGlobal-Cx6Fi9Pj.cjs +46 -0
- package/dist/chunks/actionGlobal-Cx6Fi9Pj.cjs.map +1 -0
- package/dist/chunks/actionGlobal-pi4JQ0yh.mjs +47 -0
- package/dist/chunks/actionGlobal-pi4JQ0yh.mjs.map +1 -0
- package/dist/chunks/actionText-H_SIpDkO.cjs +126 -0
- package/dist/chunks/actionText-H_SIpDkO.cjs.map +1 -0
- package/dist/chunks/actionText-yZ-YQ_fz.mjs +127 -0
- package/dist/chunks/actionText-yZ-YQ_fz.mjs.map +1 -0
- package/dist/chunks/emoji-NrWIXNZ4.cjs +59 -0
- package/dist/chunks/emoji-NrWIXNZ4.cjs.map +1 -0
- package/dist/chunks/emoji-mEkenm2t.mjs +62 -0
- package/dist/chunks/emoji-mEkenm2t.mjs.map +1 -0
- package/dist/chunks/index-6mzaBTml.cjs +159 -0
- package/dist/chunks/index-6mzaBTml.cjs.map +1 -0
- package/dist/chunks/index-clpvFjGU.mjs +165 -0
- package/dist/chunks/index-clpvFjGU.mjs.map +1 -0
- package/dist/chunks/referencePickerModal-Fu9pQBdT.mjs +1129 -0
- package/dist/chunks/referencePickerModal-Fu9pQBdT.mjs.map +1 -0
- package/dist/chunks/referencePickerModal-JVKOIVTG.cjs +1111 -0
- package/dist/chunks/referencePickerModal-JVKOIVTG.cjs.map +1 -0
- package/dist/chunks/usernameToColor-YCPAFxlc.mjs +41 -0
- package/dist/chunks/usernameToColor-YCPAFxlc.mjs.map +1 -0
- package/dist/chunks/usernameToColor-r5M5P032.cjs +39 -0
- package/dist/chunks/usernameToColor-r5M5P032.cjs.map +1 -0
- package/dist/cypress/component/NcButton.cy.d.ts +1 -0
- package/dist/cypress/component/NcSelect.cy.d.ts +1 -0
- package/dist/cypress/component/modal.cy.d.ts +1 -0
- package/dist/cypress/component/richtext.cy.d.ts +1 -0
- package/dist/cypress/support/commands.d.ts +1 -0
- package/dist/cypress/support/component.d.ts +8 -0
- package/dist/cypress/visual/AppNavigationItem.cy.d.ts +1 -0
- package/dist/cypress.config.d.ts +3 -0
- package/dist/index.cjs +142 -167
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +179 -205
- package/dist/index.mjs.map +1 -1
- package/dist/src/components/NcActionButton/NcActionButton.vue.d.ts +206 -0
- package/dist/src/components/NcActionButtonGroup/NcActionButtonGroup.vue.d.ts +26 -0
- package/dist/src/components/NcActionCaption/NcActionCaption.vue.d.ts +18 -0
- package/dist/src/components/NcActionCheckbox/NcActionCheckbox.vue.d.ts +99 -0
- package/dist/src/components/NcActionInput/NcActionInput.vue.d.ts +261 -0
- package/dist/src/components/NcActionLink/NcActionLink.vue.d.ts +2 -0
- package/dist/src/components/NcActionRadio/NcActionRadio.vue.d.ts +115 -0
- package/dist/src/components/NcActionRouter/NcActionRouter.vue.d.ts +68 -0
- package/dist/src/components/NcActionSeparator/NcActionSeparator.vue.d.ts +2 -0
- package/dist/src/components/NcActionText/NcActionText.vue.d.ts +48 -0
- package/dist/src/components/NcActionTextEditable/NcActionTextEditable.vue.d.ts +113 -0
- package/dist/src/components/NcActions/NcActions.vue.d.ts +343 -0
- package/dist/src/components/NcAppContent/NcAppContent.vue.d.ts +162 -0
- package/dist/src/components/NcAppContent/NcAppDetailsToggle.vue.d.ts +6 -0
- package/dist/src/components/NcAppContentDetails/NcAppContentDetails.vue.d.ts +2 -0
- package/dist/src/components/NcAppContentList/NcAppContentList.vue.d.ts +23 -0
- package/dist/src/components/NcAppNavigation/NcAppNavigation.vue.d.ts +55 -0
- package/dist/src/components/NcAppNavigationCaption/NcAppNavigationCaption.vue.d.ts +20 -0
- package/dist/src/components/NcAppNavigationIconBullet/NcAppNavigationIconBullet.vue.d.ts +20 -0
- package/dist/src/components/NcAppNavigationItem/NcAppNavigationIconCollapsible.vue.d.ts +20 -0
- package/dist/src/components/NcAppNavigationItem/NcAppNavigationItem.vue.d.ts +413 -0
- package/dist/src/components/NcAppNavigationItem/NcInputConfirmCancel.vue.d.ts +54 -0
- package/dist/src/components/NcAppNavigationNew/NcAppNavigationNew.vue.d.ts +48 -0
- package/dist/src/components/NcAppNavigationNewItem/NcAppNavigationNewItem.vue.d.ts +92 -0
- package/dist/src/components/NcAppNavigationSettings/NcAppNavigationSettings.vue.d.ts +37 -0
- package/dist/src/components/NcAppNavigationSpacer/NcAppNavigationSpacer.vue.d.ts +2 -0
- package/dist/src/components/NcAppNavigationToggle/NcAppNavigationToggle.vue.d.ts +32 -0
- package/dist/src/components/NcAppSettingsSection/NcAppSettingsSection.vue.d.ts +24 -0
- package/dist/src/components/NcAppSidebar/NcAppSidebar.vue.d.ts +287 -0
- package/dist/src/components/NcAppSidebar/NcAppSidebarTabs.vue.d.ts +91 -0
- package/dist/src/components/NcAppSidebarTab/NcAppSidebarTab.vue.d.ts +75 -0
- package/dist/src/components/NcAvatar/NcAvatar.vue.d.ts +348 -0
- package/dist/src/components/NcBreadcrumb/NcBreadcrumb.vue.d.ts +197 -0
- package/dist/src/components/NcBreadcrumbs/NcBreadcrumbs.vue.d.ts +144 -0
- package/dist/src/components/NcButton/NcButton.vue.d.ts +237 -0
- package/dist/src/components/NcButton/index.d.ts +22 -0
- package/dist/src/components/NcCheckboxRadioSwitch/NcCheckboxContent.vue.d.ts +6 -0
- package/dist/src/components/NcCheckboxRadioSwitch/NcCheckboxRadioSwitch.vue.d.ts +2 -0
- package/dist/src/components/NcColorPicker/NcColorPicker.vue.d.ts +2 -0
- package/dist/src/components/NcContent/NcContent.vue.d.ts +23 -0
- package/dist/src/components/NcCounterBubble/NcCounterBubble.vue.d.ts +41 -0
- package/dist/src/components/NcDashboardWidget/NcDashboardWidget.vue.d.ts +142 -0
- package/dist/src/components/NcDashboardWidgetItem/NcDashboardWidgetItem.vue.d.ts +170 -0
- package/dist/src/components/NcDateTime/NcDateTime.vue.d.ts +2 -0
- package/dist/src/components/NcDateTimePicker/NcDateTimePicker.vue.d.ts +2 -0
- package/dist/src/components/NcDateTimePickerNative/NcDateTimePickerNative.vue.d.ts +2 -0
- package/dist/src/components/NcDialog/NcDialog.vue.d.ts +2 -0
- package/dist/src/components/NcDialogButton/NcDialogButton.vue.d.ts +2 -0
- package/dist/src/components/NcEllipsisedOption/NcEllipsisedOption.vue.d.ts +48 -0
- package/dist/src/components/NcEmojiPicker/NcEmojiPicker.vue.d.ts +184 -0
- package/dist/src/components/NcEmptyContent/NcEmptyContent.vue.d.ts +39 -0
- package/dist/src/components/NcGuestContent/NcGuestContent.vue.d.ts +2 -0
- package/dist/src/components/NcHeaderMenu/NcHeaderMenu.vue.d.ts +147 -0
- package/dist/src/components/NcHighlight/NcHighlight.vue.d.ts +65 -0
- package/dist/src/components/NcIconSvgWrapper/NcIconSvgWrapper.vue.d.ts +83 -0
- package/dist/src/components/NcInputField/NcInputField.vue.d.ts +278 -0
- package/dist/src/components/NcListItem/NcListItem.vue.d.ts +259 -0
- package/dist/src/components/NcListItemIcon/NcListItemIcon.vue.d.ts +207 -0
- package/dist/src/components/NcLoadingIcon/NcLoadingIcon.vue.d.ts +58 -0
- package/dist/src/components/NcModal/NcModal.vue.d.ts +2 -0
- package/dist/src/components/NcNoteCard/NcNoteCard.vue.d.ts +44 -0
- package/dist/src/components/NcPopover/NcPopover.vue.d.ts +2 -0
- package/dist/src/components/NcPopover/NcPopoverTriggerProvider.vue.d.ts +25 -0
- package/dist/src/components/NcProgressBar/NcProgressBar.vue.d.ts +2 -0
- package/dist/src/components/NcRelatedResourcesPanel/NcRelatedResourcesPanel.vue.d.ts +140 -0
- package/dist/src/components/NcRelatedResourcesPanel/NcResource.vue.d.ts +32 -0
- package/dist/src/components/NcRichContenteditable/NcAutoCompleteResult.vue.d.ts +69 -0
- package/dist/src/components/NcRichContenteditable/NcMentionBubble.vue.d.ts +2 -0
- package/dist/src/components/NcRichContenteditable/NcRichContenteditable.vue.d.ts +342 -0
- package/dist/src/components/NcRichText/NcReferenceList.vue.d.ts +72 -0
- package/dist/src/components/NcRichText/NcReferencePicker/NcCustomPickerElement.vue.d.ts +28 -0
- package/dist/src/components/NcRichText/NcReferencePicker/NcProviderList.vue.d.ts +16 -0
- package/dist/src/components/NcRichText/NcReferencePicker/NcRawLinkInput.vue.d.ts +34 -0
- package/dist/src/components/NcRichText/NcReferencePicker/NcReferencePicker.vue.d.ts +84 -0
- package/dist/src/components/NcRichText/NcReferencePicker/NcReferencePickerModal.vue.d.ts +72 -0
- package/dist/src/components/NcRichText/NcReferencePicker/NcSearch.vue.d.ts +69 -0
- package/dist/src/components/NcRichText/NcReferencePicker/NcSearchResult.vue.d.ts +34 -0
- package/dist/src/components/NcRichText/NcReferenceWidget.vue.d.ts +29 -0
- package/dist/src/components/NcRichText/NcRichText.vue.d.ts +140 -0
- package/dist/src/components/NcSavingIndicatorIcon/NcSavingIndicatorIcon.vue.d.ts +73 -0
- package/dist/src/components/NcSelect/NcSelect.vue.d.ts +14 -0
- package/dist/src/components/NcSelectTags/NcSelectTags.vue.d.ts +23 -0
- package/dist/src/components/NcSettingsInputText/NcSettingsInputText.vue.d.ts +97 -0
- package/dist/src/components/NcSettingsSection/NcSettingsSection.vue.d.ts +57 -0
- package/dist/src/components/NcSettingsSelectGroup/NcSettingsSelectGroup.vue.d.ts +144 -0
- package/dist/src/components/NcTextArea/NcTextArea.vue.d.ts +205 -0
- package/dist/src/components/NcTextField/NcTextField.vue.d.ts +20 -0
- package/dist/src/components/NcTimezonePicker/NcTimezonePicker.vue.d.ts +78 -0
- package/dist/src/components/NcUserBubble/NcUserBubble.vue.d.ts +180 -0
- package/dist/src/components/NcUserBubble/NcUserBubbleDiv.vue.d.ts +2 -0
- package/dist/src/components/NcUserStatusIcon/NcUserStatusIcon.vue.d.ts +2 -0
- package/dist/src/components/NcVNodes/NcVNodes.vue.d.ts +20 -0
- package/dist/src/components/index.d.ts +91 -0
- package/dist/src/directives/index.d.ts +24 -0
- package/dist/src/index.d.ts +27 -0
- package/dist/src/plugin.d.ts +16 -0
- package/dist/src/utils/isSlotPopulated.d.ts +29 -0
- package/dist/tests/unit/components/NcActions/NcActionButton.spec.d.ts +22 -0
- package/dist/tests/unit/components/NcActions/NcActions.spec.d.ts +23 -0
- package/dist/tests/unit/components/NcAppSettingsDialog/NcAppSettingsDialog.spec.d.ts +22 -0
- package/dist/tests/unit/components/NcAvatar/NcAvatar.spec.d.ts +22 -0
- package/dist/tests/unit/components/NcInputField/NcInputField.spec.d.ts +1 -0
- package/dist/tests/unit/components/NcListItemIcon/list-item-icon.spec.d.ts +22 -0
- package/dist/tests/unit/components/NcRichContenteditable/NcRichContenteditable.spec.d.ts +1 -0
- package/dist/tests/unit/plugin.spec.d.ts +22 -0
- package/dist/tests/unit/testing-utils.d.ts +6 -0
- package/dist/tests/unit/utils/isSlotPopulated.spec.d.ts +1 -0
- package/dist/vite.config.d.ts +3 -0
- package/dist/vitest.config.d.ts +3 -0
- package/package.json +36 -40
- package/dist/Mixins/isFullscreen.cjs +0 -35
- package/dist/Mixins/isFullscreen.cjs.map +0 -1
- package/dist/Mixins/isFullscreen.mjs +0 -36
- package/dist/Mixins/isFullscreen.mjs.map +0 -1
- package/dist/Mixins/isMobile.cjs +0 -35
- package/dist/Mixins/isMobile.cjs.map +0 -1
- package/dist/Mixins/isMobile.mjs +0 -36
- package/dist/Mixins/isMobile.mjs.map +0 -1
- package/dist/assets/NcActionButton-1Z9lN7ar.css +0 -134
- package/dist/assets/NcActionCheckbox-6Pvlr1E7.css +0 -106
- package/dist/assets/NcActionInput-4zSvDkWm.css +0 -243
- package/dist/assets/NcActionRadio-eOr9Sp-D.css +0 -106
- package/dist/assets/NcActionRouter-MFTD6tYI.css +0 -133
- package/dist/assets/NcActionTextEditable-JrYuWEDd.css +0 -259
- package/dist/assets/NcActions-mSL9fcPO.css +0 -84
- package/dist/assets/NcAppContent-SZz3PTd8.css +0 -115
- package/dist/assets/NcAppNavigation-vjqOL-kR.css +0 -92
- package/dist/assets/NcAppNavigationCaption-l5yRGXZx.css +0 -52
- package/dist/assets/NcAppNavigationItem-n-wauJE7.css +0 -206
- package/dist/assets/NcAppNavigationNew-joyd78FM.css +0 -36
- package/dist/assets/NcAppNavigationNewItem-MQBvffq9.css +0 -199
- package/dist/assets/NcAppNavigationSettings-Jx_6RpSn.css +0 -88
- package/dist/assets/NcAppNavigationToggle-3vMKtCQL.css +0 -38
- package/dist/assets/NcAppSettingsDialog-0eOo3ERv.css +0 -86
- package/dist/assets/NcAppSettingsSection-ahfdhix_.css +0 -41
- package/dist/assets/NcAppSidebar-iU8Zp4Qk.css +0 -318
- package/dist/assets/NcAppSidebarTab-Phau6edJ.css +0 -45
- package/dist/assets/NcAvatar-5H9cqcD1.css +0 -144
- package/dist/assets/NcBreadcrumb-M3hqCbqS.css +0 -80
- package/dist/assets/NcBreadcrumbs-KBV0Jccv.css +0 -49
- package/dist/assets/NcButton-4Wj3KJn8.css +0 -204
- package/dist/assets/NcCheckboxRadioSwitch-mgKotCbU.css +0 -201
- package/dist/assets/NcColorPicker-PzIRM1j1.css +0 -131
- package/dist/assets/NcContent-LWR23l9i.css +0 -84
- package/dist/assets/NcDashboardWidget-01deRW9Z.css +0 -83
- package/dist/assets/NcDateTimePicker-RY_Hm2sB.css +0 -884
- package/dist/assets/NcDateTimePickerNative-5yybtvfx.css +0 -58
- package/dist/assets/NcDialog-DN-rY-55.css +0 -126
- package/dist/assets/NcEmojiPicker-wTIbvcrG.css +0 -550
- package/dist/assets/NcEmptyContent-pSz7F6Oe.css +0 -75
- package/dist/assets/NcGuestContent-mGGTzI2_.css +0 -51
- package/dist/assets/NcHeaderMenu-06vdn4tC.css +0 -92
- package/dist/assets/NcIconSvgWrapper-arqrq5Bj.css +0 -44
- package/dist/assets/NcInputConfirmCancel-ks8z8dIn.css +0 -51
- package/dist/assets/NcInputField-L2Lld_iG.css +0 -194
- package/dist/assets/NcListItem-6sL-frKJ.css +0 -165
- package/dist/assets/NcListItemIcon-PQ2s6ZqX.css +0 -80
- package/dist/assets/NcModal-UZh031V1.css +0 -295
- package/dist/assets/NcRelatedResourcesPanel-m3uf_nvH.css +0 -76
- package/dist/assets/NcRichContenteditable-j9edXOEH.css +0 -268
- package/dist/assets/NcSettingsInputText-MPi6a3Yy.css +0 -46
- package/dist/assets/NcSettingsSelectGroup-_Jpb8yE3.css +0 -34
- package/dist/assets/NcTextArea-4rVwq6GK.css +0 -139
- package/dist/assets/NcUserBubble-jjzI5imn.css +0 -59
- package/dist/assets/NcUserStatusIcon-62u43_6P.css +0 -41
- package/dist/assets/referencePickerModal-iy5QSWj6.css +0 -509
- package/dist/chunks/AlertCircleOutline-HYz1lvHU.cjs +0 -35
- package/dist/chunks/AlertCircleOutline-HYz1lvHU.cjs.map +0 -1
- package/dist/chunks/AlertCircleOutline-XY0EPUmQ.mjs +0 -37
- package/dist/chunks/AlertCircleOutline-XY0EPUmQ.mjs.map +0 -1
- package/dist/chunks/ArrowLeft-fC5aEWWu.cjs +0 -35
- package/dist/chunks/ArrowLeft-fC5aEWWu.cjs.map +0 -1
- package/dist/chunks/ArrowLeft-uW5eNVkY.mjs +0 -37
- package/dist/chunks/ArrowLeft-uW5eNVkY.mjs.map +0 -1
- package/dist/chunks/ArrowRight-16bLxoZc.mjs +0 -37
- package/dist/chunks/ArrowRight-16bLxoZc.mjs.map +0 -1
- package/dist/chunks/ArrowRight-uUC8qW2c.cjs +0 -35
- package/dist/chunks/ArrowRight-uUC8qW2c.cjs.map +0 -1
- package/dist/chunks/Check-QBzDcHpr.cjs +0 -35
- package/dist/chunks/Check-QBzDcHpr.cjs.map +0 -1
- package/dist/chunks/Check-qy5XrF1J.mjs +0 -37
- package/dist/chunks/Check-qy5XrF1J.mjs.map +0 -1
- package/dist/chunks/ChevronDown-Hc_DTRav.cjs +0 -35
- package/dist/chunks/ChevronDown-Hc_DTRav.cjs.map +0 -1
- package/dist/chunks/ChevronDown-suAKKmeb.mjs +0 -37
- package/dist/chunks/ChevronDown-suAKKmeb.mjs.map +0 -1
- package/dist/chunks/ChevronRight-9owhU_17.mjs +0 -37
- package/dist/chunks/ChevronRight-9owhU_17.mjs.map +0 -1
- package/dist/chunks/ChevronRight-MdQC55Yq.cjs +0 -35
- package/dist/chunks/ChevronRight-MdQC55Yq.cjs.map +0 -1
- package/dist/chunks/Close-QtH6_3PP.mjs +0 -37
- package/dist/chunks/Close-QtH6_3PP.mjs.map +0 -1
- package/dist/chunks/Close-dotk0707.cjs +0 -35
- package/dist/chunks/Close-dotk0707.cjs.map +0 -1
- package/dist/chunks/DotsHorizontal-6hepLUSS.cjs +0 -35
- package/dist/chunks/DotsHorizontal-6hepLUSS.cjs.map +0 -1
- package/dist/chunks/DotsHorizontal-IbmXTXRA.mjs +0 -37
- package/dist/chunks/DotsHorizontal-IbmXTXRA.mjs.map +0 -1
- package/dist/chunks/GenColors-OoWIPB3C.mjs +0 -142
- package/dist/chunks/GenColors-OoWIPB3C.mjs.map +0 -1
- package/dist/chunks/GenColors-gc0oVgC_.cjs +0 -141
- package/dist/chunks/GenColors-gc0oVgC_.cjs.map +0 -1
- package/dist/chunks/NcActionButtonGroup-D49ovBAN.mjs +0 -50
- package/dist/chunks/NcActionButtonGroup-D49ovBAN.mjs.map +0 -1
- package/dist/chunks/NcActionButtonGroup-hpwif0u3.cjs +0 -46
- package/dist/chunks/NcActionButtonGroup-hpwif0u3.cjs.map +0 -1
- package/dist/chunks/NcActionInput-cyxUHqTr.mjs +0 -244
- package/dist/chunks/NcActionInput-cyxUHqTr.mjs.map +0 -1
- package/dist/chunks/NcActionInput-m10Amrmc.cjs +0 -235
- package/dist/chunks/NcActionInput-m10Amrmc.cjs.map +0 -1
- package/dist/chunks/NcActions-bAnBpPrc.mjs +0 -540
- package/dist/chunks/NcActions-bAnBpPrc.mjs.map +0 -1
- package/dist/chunks/NcActions-z-BOuDhM.cjs +0 -532
- package/dist/chunks/NcActions-z-BOuDhM.cjs.map +0 -1
- package/dist/chunks/NcAppContent-t8UhBH3s.cjs +0 -222
- package/dist/chunks/NcAppContent-t8UhBH3s.cjs.map +0 -1
- package/dist/chunks/NcAppContent-y9KdCdfx.mjs +0 -231
- package/dist/chunks/NcAppContent-y9KdCdfx.mjs.map +0 -1
- package/dist/chunks/NcAppNavigation-PLg2oNao.cjs +0 -114
- package/dist/chunks/NcAppNavigation-PLg2oNao.cjs.map +0 -1
- package/dist/chunks/NcAppNavigation-hiPB8YDB.mjs +0 -122
- package/dist/chunks/NcAppNavigation-hiPB8YDB.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationCaption-kKsAcV3F.cjs +0 -44
- package/dist/chunks/NcAppNavigationCaption-kKsAcV3F.cjs.map +0 -1
- package/dist/chunks/NcAppNavigationCaption-q8C0HzdM.mjs +0 -47
- package/dist/chunks/NcAppNavigationCaption-q8C0HzdM.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationItem-BTI9BVOR.cjs +0 -497
- package/dist/chunks/NcAppNavigationItem-BTI9BVOR.cjs.map +0 -1
- package/dist/chunks/NcAppNavigationItem-WmNVPGgg.mjs +0 -508
- package/dist/chunks/NcAppNavigationItem-WmNVPGgg.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationNewItem-bEBZNF2D.cjs +0 -87
- package/dist/chunks/NcAppNavigationNewItem-bEBZNF2D.cjs.map +0 -1
- package/dist/chunks/NcAppNavigationNewItem-iJxYhc8O.mjs +0 -91
- package/dist/chunks/NcAppNavigationNewItem-iJxYhc8O.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationSettings--bavO03z.mjs +0 -106
- package/dist/chunks/NcAppNavigationSettings--bavO03z.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationSettings-J7w9P7fI.cjs +0 -104
- package/dist/chunks/NcAppNavigationSettings-J7w9P7fI.cjs.map +0 -1
- package/dist/chunks/NcAppNavigationToggle-8FtmM4XU.mjs +0 -122
- package/dist/chunks/NcAppNavigationToggle-8FtmM4XU.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationToggle-mMhLE73x.cjs +0 -119
- package/dist/chunks/NcAppNavigationToggle-mMhLE73x.cjs.map +0 -1
- package/dist/chunks/NcAppSettingsDialog-FqEZ3lXG.mjs +0 -184
- package/dist/chunks/NcAppSettingsDialog-FqEZ3lXG.mjs.map +0 -1
- package/dist/chunks/NcAppSettingsDialog-tN3bu9XO.cjs +0 -177
- package/dist/chunks/NcAppSettingsDialog-tN3bu9XO.cjs.map +0 -1
- package/dist/chunks/NcAppSidebar-J2XzL1WT.cjs +0 -548
- package/dist/chunks/NcAppSidebar-J2XzL1WT.cjs.map +0 -1
- package/dist/chunks/NcAppSidebar-lE3w-VIf.mjs +0 -565
- package/dist/chunks/NcAppSidebar-lE3w-VIf.mjs.map +0 -1
- package/dist/chunks/NcAvatar-MNJp-c9e.mjs +0 -467
- package/dist/chunks/NcAvatar-MNJp-c9e.mjs.map +0 -1
- package/dist/chunks/NcAvatar-OWW68uV3.cjs +0 -454
- package/dist/chunks/NcAvatar-OWW68uV3.cjs.map +0 -1
- package/dist/chunks/NcBreadcrumb-4FfLWUDX.mjs +0 -179
- package/dist/chunks/NcBreadcrumb-4FfLWUDX.mjs.map +0 -1
- package/dist/chunks/NcBreadcrumb-YClz0EeP.cjs +0 -173
- package/dist/chunks/NcBreadcrumb-YClz0EeP.cjs.map +0 -1
- package/dist/chunks/NcBreadcrumbs-Gln66w_d.mjs +0 -418
- package/dist/chunks/NcBreadcrumbs-Gln66w_d.mjs.map +0 -1
- package/dist/chunks/NcBreadcrumbs-SPqCk2mi.cjs +0 -408
- package/dist/chunks/NcBreadcrumbs-SPqCk2mi.cjs.map +0 -1
- package/dist/chunks/NcCheckboxRadioSwitch-R-zNvd7d.cjs +0 -603
- package/dist/chunks/NcCheckboxRadioSwitch-R-zNvd7d.cjs.map +0 -1
- package/dist/chunks/NcCheckboxRadioSwitch-paTuPXGc.mjs +0 -607
- package/dist/chunks/NcCheckboxRadioSwitch-paTuPXGc.mjs.map +0 -1
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-Ooje-q1U.cjs +0 -4
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-Ooje-q1U.cjs.map +0 -1
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-l6e0b34w.mjs +0 -3
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-l6e0b34w.mjs.map +0 -1
- package/dist/chunks/NcColorPicker-ullH7CFZ.mjs +0 -179
- package/dist/chunks/NcColorPicker-ullH7CFZ.mjs.map +0 -1
- package/dist/chunks/NcColorPicker-vHHSVKQS.cjs +0 -169
- package/dist/chunks/NcColorPicker-vHHSVKQS.cjs.map +0 -1
- package/dist/chunks/NcContent-M_ZUbKIL.cjs +0 -124
- package/dist/chunks/NcContent-M_ZUbKIL.cjs.map +0 -1
- package/dist/chunks/NcContent-RGzECysY.mjs +0 -131
- package/dist/chunks/NcContent-RGzECysY.mjs.map +0 -1
- package/dist/chunks/NcDashboardWidget-KMrDOCQC.mjs +0 -141
- package/dist/chunks/NcDashboardWidget-KMrDOCQC.mjs.map +0 -1
- package/dist/chunks/NcDashboardWidget-mV9UTaUo.cjs +0 -135
- package/dist/chunks/NcDashboardWidget-mV9UTaUo.cjs.map +0 -1
- package/dist/chunks/NcDashboardWidgetItem-Hg805JCn.mjs +0 -143
- package/dist/chunks/NcDashboardWidgetItem-Hg805JCn.mjs.map +0 -1
- package/dist/chunks/NcDashboardWidgetItem-_dvqhu7z.cjs +0 -138
- package/dist/chunks/NcDashboardWidgetItem-_dvqhu7z.cjs.map +0 -1
- package/dist/chunks/NcDateTime-TRJPnoyx.cjs +0 -142
- package/dist/chunks/NcDateTime-TRJPnoyx.cjs.map +0 -1
- package/dist/chunks/NcDateTime-t_L5Vf2V.mjs +0 -146
- package/dist/chunks/NcDateTime-t_L5Vf2V.mjs.map +0 -1
- package/dist/chunks/NcDialog-652A8lMI.mjs +0 -214
- package/dist/chunks/NcDialog-652A8lMI.mjs.map +0 -1
- package/dist/chunks/NcDialog-dPYf81Dr.cjs +0 -207
- package/dist/chunks/NcDialog-dPYf81Dr.cjs.map +0 -1
- package/dist/chunks/NcDialogButton-QuoJDLGH.mjs +0 -73
- package/dist/chunks/NcDialogButton-QuoJDLGH.mjs.map +0 -1
- package/dist/chunks/NcDialogButton-V3nj_xwS.cjs +0 -68
- package/dist/chunks/NcDialogButton-V3nj_xwS.cjs.map +0 -1
- package/dist/chunks/NcEmojiPicker-SiFuLrOy.cjs +0 -239
- package/dist/chunks/NcEmojiPicker-SiFuLrOy.cjs.map +0 -1
- package/dist/chunks/NcEmojiPicker-t9ZKXOeE.mjs +0 -249
- package/dist/chunks/NcEmojiPicker-t9ZKXOeE.mjs.map +0 -1
- package/dist/chunks/NcHeaderMenu-BSi8E43v.cjs +0 -185
- package/dist/chunks/NcHeaderMenu-BSi8E43v.cjs.map +0 -1
- package/dist/chunks/NcHeaderMenu-Vytc8Eqg.mjs +0 -191
- package/dist/chunks/NcHeaderMenu-Vytc8Eqg.mjs.map +0 -1
- package/dist/chunks/NcIconSvgWrapper-R7a7dIg4.cjs +0 -81
- package/dist/chunks/NcIconSvgWrapper-R7a7dIg4.cjs.map +0 -1
- package/dist/chunks/NcIconSvgWrapper-n3MnAe1S.mjs +0 -85
- package/dist/chunks/NcIconSvgWrapper-n3MnAe1S.mjs.map +0 -1
- package/dist/chunks/NcInputConfirmCancel-QI-5lWEZ.cjs +0 -92
- package/dist/chunks/NcInputConfirmCancel-QI-5lWEZ.cjs.map +0 -1
- package/dist/chunks/NcInputConfirmCancel-iPOBMuwq.mjs +0 -97
- package/dist/chunks/NcInputConfirmCancel-iPOBMuwq.mjs.map +0 -1
- package/dist/chunks/NcListItem-J1Ru_eFH.cjs +0 -243
- package/dist/chunks/NcListItem-J1Ru_eFH.cjs.map +0 -1
- package/dist/chunks/NcListItem-m2T3a1c4.mjs +0 -248
- package/dist/chunks/NcListItem-m2T3a1c4.mjs.map +0 -1
- package/dist/chunks/NcListItemIcon-RHDhF_NC.mjs +0 -165
- package/dist/chunks/NcListItemIcon-RHDhF_NC.mjs.map +0 -1
- package/dist/chunks/NcListItemIcon-aE0JNfCX.cjs +0 -162
- package/dist/chunks/NcListItemIcon-aE0JNfCX.cjs.map +0 -1
- package/dist/chunks/NcPasswordField-h__iqTKL.mjs +0 -238
- package/dist/chunks/NcPasswordField-h__iqTKL.mjs.map +0 -1
- package/dist/chunks/NcPasswordField-rgZThnoq.cjs +0 -229
- package/dist/chunks/NcPasswordField-rgZThnoq.cjs.map +0 -1
- package/dist/chunks/NcPopover-T4GMXmKV.mjs +0 -218
- package/dist/chunks/NcPopover-T4GMXmKV.mjs.map +0 -1
- package/dist/chunks/NcPopover-judBGW5r.cjs +0 -212
- package/dist/chunks/NcPopover-judBGW5r.cjs.map +0 -1
- package/dist/chunks/NcProgressBar-BthaVVHU.cjs +0 -96
- package/dist/chunks/NcProgressBar-BthaVVHU.cjs.map +0 -1
- package/dist/chunks/NcProgressBar-h2ufKS6c.mjs +0 -99
- package/dist/chunks/NcProgressBar-h2ufKS6c.mjs.map +0 -1
- package/dist/chunks/NcRelatedResourcesPanel-DCGxBHHT.mjs +0 -205
- package/dist/chunks/NcRelatedResourcesPanel-DCGxBHHT.mjs.map +0 -1
- package/dist/chunks/NcRelatedResourcesPanel-u1ob1njl.cjs +0 -200
- package/dist/chunks/NcRelatedResourcesPanel-u1ob1njl.cjs.map +0 -1
- package/dist/chunks/NcRichContenteditable-03_DWRDq.cjs +0 -505
- package/dist/chunks/NcRichContenteditable-03_DWRDq.cjs.map +0 -1
- package/dist/chunks/NcRichContenteditable-_Ac_ZEfF.mjs +0 -515
- package/dist/chunks/NcRichContenteditable-_Ac_ZEfF.mjs.map +0 -1
- package/dist/chunks/NcRichText-4Y574QZM.mjs +0 -353
- package/dist/chunks/NcRichText-4Y574QZM.mjs.map +0 -1
- package/dist/chunks/NcRichText-Qh1uk4U8.cjs +0 -337
- package/dist/chunks/NcRichText-Qh1uk4U8.cjs.map +0 -1
- package/dist/chunks/NcSavingIndicatorIcon-IqoMFcDK.mjs +0 -62
- package/dist/chunks/NcSavingIndicatorIcon-IqoMFcDK.mjs.map +0 -1
- package/dist/chunks/NcSavingIndicatorIcon-wcQ0mBIL.cjs +0 -59
- package/dist/chunks/NcSavingIndicatorIcon-wcQ0mBIL.cjs.map +0 -1
- package/dist/chunks/NcSelect-BnTLFd27.cjs +0 -464
- package/dist/chunks/NcSelect-BnTLFd27.cjs.map +0 -1
- package/dist/chunks/NcSelect-DzZqm1fn.mjs +0 -475
- package/dist/chunks/NcSelect-DzZqm1fn.mjs.map +0 -1
- package/dist/chunks/NcSelectTags-PgYBpBfS.cjs +0 -261
- package/dist/chunks/NcSelectTags-PgYBpBfS.cjs.map +0 -1
- package/dist/chunks/NcSelectTags-qBzjNabg.mjs +0 -267
- package/dist/chunks/NcSelectTags-qBzjNabg.mjs.map +0 -1
- package/dist/chunks/NcSettingsInputText-DROaqnIE.mjs +0 -95
- package/dist/chunks/NcSettingsInputText-DROaqnIE.mjs.map +0 -1
- package/dist/chunks/NcSettingsInputText-FH_6k117.cjs +0 -92
- package/dist/chunks/NcSettingsInputText-FH_6k117.cjs.map +0 -1
- package/dist/chunks/NcSettingsSection-HGZQAB56.cjs +0 -96
- package/dist/chunks/NcSettingsSection-HGZQAB56.cjs.map +0 -1
- package/dist/chunks/NcSettingsSection-pxZK64xe.mjs +0 -98
- package/dist/chunks/NcSettingsSection-pxZK64xe.mjs.map +0 -1
- package/dist/chunks/NcSettingsSelectGroup-NtqYZTN-.mjs +0 -192
- package/dist/chunks/NcSettingsSelectGroup-NtqYZTN-.mjs.map +0 -1
- package/dist/chunks/NcSettingsSelectGroup-d0wrSLXq.cjs +0 -185
- package/dist/chunks/NcSettingsSelectGroup-d0wrSLXq.cjs.map +0 -1
- package/dist/chunks/NcTextField-2P7HaQ-i.cjs +0 -140
- package/dist/chunks/NcTextField-2P7HaQ-i.cjs.map +0 -1
- package/dist/chunks/NcTextField-RnMWfagW.mjs +0 -146
- package/dist/chunks/NcTextField-RnMWfagW.mjs.map +0 -1
- package/dist/chunks/NcTimezonePicker-98XoQsZ0.cjs +0 -7195
- package/dist/chunks/NcTimezonePicker-98XoQsZ0.cjs.map +0 -1
- package/dist/chunks/NcTimezonePicker-HvUUs7VK.mjs +0 -7201
- package/dist/chunks/NcTimezonePicker-HvUUs7VK.mjs.map +0 -1
- package/dist/chunks/NcUserBubble-pCJK4AXS.cjs +0 -192
- package/dist/chunks/NcUserBubble-pCJK4AXS.cjs.map +0 -1
- package/dist/chunks/NcUserBubble-y-RdfxGU.mjs +0 -197
- package/dist/chunks/NcUserBubble-y-RdfxGU.mjs.map +0 -1
- package/dist/chunks/NcUserStatusIcon-Wwtp8zH3.mjs +0 -174
- package/dist/chunks/NcUserStatusIcon-Wwtp8zH3.mjs.map +0 -1
- package/dist/chunks/NcUserStatusIcon-iczxs1an.cjs +0 -167
- package/dist/chunks/NcUserStatusIcon-iczxs1an.cjs.map +0 -1
- package/dist/chunks/ScopeComponent-3zN8-DXa.mjs +0 -29
- package/dist/chunks/ScopeComponent-3zN8-DXa.mjs.map +0 -1
- package/dist/chunks/ScopeComponent-_Qe2Qn0v.cjs +0 -28
- package/dist/chunks/ScopeComponent-_Qe2Qn0v.cjs.map +0 -1
- package/dist/chunks/_l10n--bDJ_Qyj.mjs +0 -66
- package/dist/chunks/_l10n--bDJ_Qyj.mjs.map +0 -1
- package/dist/chunks/_l10n-mEcF7TYU.cjs +0 -64
- package/dist/chunks/_l10n-mEcF7TYU.cjs.map +0 -1
- package/dist/chunks/_plugin-vue2_normalizer-DCfUPqga.cjs +0 -31
- package/dist/chunks/_plugin-vue2_normalizer-DCfUPqga.cjs.map +0 -1
- package/dist/chunks/_plugin-vue2_normalizer-u6G_3nkj.mjs +0 -32
- package/dist/chunks/_plugin-vue2_normalizer-u6G_3nkj.mjs.map +0 -1
- package/dist/chunks/actionGlobal-_f-PhW84.cjs +0 -45
- package/dist/chunks/actionGlobal-_f-PhW84.cjs.map +0 -1
- package/dist/chunks/actionGlobal-ejpd0zqm.mjs +0 -46
- package/dist/chunks/actionGlobal-ejpd0zqm.mjs.map +0 -1
- package/dist/chunks/actionText-AoAs4kqP.mjs +0 -127
- package/dist/chunks/actionText-AoAs4kqP.mjs.map +0 -1
- package/dist/chunks/actionText-pGrMQtZ3.cjs +0 -126
- package/dist/chunks/actionText-pGrMQtZ3.cjs.map +0 -1
- package/dist/chunks/emoji-mJIuLpNR.cjs +0 -58
- package/dist/chunks/emoji-mJIuLpNR.cjs.map +0 -1
- package/dist/chunks/emoji-tllD0Rvt.mjs +0 -61
- package/dist/chunks/emoji-tllD0Rvt.mjs.map +0 -1
- package/dist/chunks/index-2phCrsSH.mjs +0 -149
- package/dist/chunks/index-2phCrsSH.mjs.map +0 -1
- package/dist/chunks/index-FO4BaGaF.cjs +0 -148
- package/dist/chunks/index-FO4BaGaF.cjs.map +0 -1
- package/dist/chunks/index-U21dQVa7.cjs +0 -151
- package/dist/chunks/index-U21dQVa7.cjs.map +0 -1
- package/dist/chunks/index-n2q3iT69.mjs +0 -157
- package/dist/chunks/index-n2q3iT69.mjs.map +0 -1
- package/dist/chunks/referencePickerModal-Cnscu3tI.cjs +0 -880
- package/dist/chunks/referencePickerModal-Cnscu3tI.cjs.map +0 -1
- package/dist/chunks/referencePickerModal-oI8JiWDV.mjs +0 -897
- package/dist/chunks/referencePickerModal-oI8JiWDV.mjs.map +0 -1
- package/dist/chunks/usernameToColor-HiPZbTLh.mjs +0 -41
- package/dist/chunks/usernameToColor-HiPZbTLh.mjs.map +0 -1
- package/dist/chunks/usernameToColor-nIJ4GOsW.cjs +0 -39
- package/dist/chunks/usernameToColor-nIJ4GOsW.cjs.map +0 -1
- package/dist/plugin.d.ts +0 -17
- /package/dist/{functions → src/functions}/a11y/index.d.ts +0 -0
- /package/dist/{functions → src/functions}/emoji/emoji.d.ts +0 -0
- /package/dist/{functions → src/functions}/emoji/index.d.ts +0 -0
- /package/dist/{utils → src/utils}/UserStatus.d.ts +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NcAvatar-MNJp-c9e.mjs","sources":["../../src/mixins/userStatus.js","../../src/components/NcAvatar/NcAvatar.vue"],"sourcesContent":["/**\n * @copyright Copyright (c) 2020 Georg Ehrke <georg-nextcloud@ehrke.email>\n *\n * @author Georg Ehrke <georg-nextcloud@ehrke.email>\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 { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\thasStatus: false,\n\t\t\tuserStatus: {\n\t\t\t\tstatus: null,\n\t\t\t\tmessage: null,\n\t\t\t\ticon: null,\n\t\t\t},\n\t\t}\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Fetches the user-status from the server\n\t\t *\n\t\t * @param {string} userId UserId of the user to fetch the status for\n\t\t *\n\t\t * @return {Promise<void>}\n\t\t */\n\t\tasync fetchUserStatus(userId) {\n\t\t\tif (!userId) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst capabilities = getCapabilities()\n\t\t\tif (!Object.prototype.hasOwnProperty.call(capabilities, 'user_status') || !capabilities.user_status.enabled) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// User status endpoint is not available for guests.\n\t\t\tif (!getCurrentUser()) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst { data } = await axios.get(generateOcsUrl('apps/user_status/api/v1/statuses/{userId}', { userId }))\n\t\t\t\tconst {\n\t\t\t\t\tstatus,\n\t\t\t\t\tmessage,\n\t\t\t\t\ticon,\n\t\t\t\t} = data.ocs.data\n\t\t\t\tthis.userStatus.status = status\n\t\t\t\tthis.userStatus.message = message || ''\n\t\t\t\tthis.userStatus.icon = icon || ''\n\t\t\t\tthis.hasStatus = true\n\t\t\t} catch (e) {\n\t\t\t\tif (e.response.status === 404 && e.response.data.ocs?.data?.length === 0) {\n\t\t\t\t\t// User just has no status set, so don't log it\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tconsole.error(e)\n\t\t\t}\n\t\t},\n\t},\n}\n","<!--\n - @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\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\n<docs>\n\n### Basic user avatar\n\n```vue\n\t<NcAvatar user=\"willywonka\" display-name=\"Willy Wonka\" />\n```\n\n### Avatar with image\n\n```vue\n\t<NcAvatar url=\"https://nextcloud.com/wp-content/themes/next/assets/img/common/nextcloud-square-logo.png\" />\n```\n\n### Avatar with material design icon\n\n```\n <template>\n\t<NcAvatar>\n\t\t<template #icon>\n\t\t\t<AccountMultiple :size=\"20\" />\n\t\t</template>\n\t</NcAvatar>\n</template>\n<script>\nimport AccountMultiple from 'vue-material-design-icons/AccountMultiple'\n\nexport default {\n\tcomponents: {\n\t\tAccountMultiple,\n\t},\n }\n </script>\n```\n\n### Avatar with preloaded status\n```\n <template>\n\t<NcAvatar user=\"janedoe\"\n\t\tdisplay-name=\"Jane Doe\"\n\t\t:preloaded-user-status=\"status\">\n\t</NcAvatar>\n</template>\n<script>\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tstatus: {\n\t\t\t\ticon: '',\n\t\t\t\tstatus: 'dnd',\n\t\t\t\tmessage: 'Not busy',\n\t\t\t},\n\t\t}\n\t},\n }\n </script>\n```\n\n### Avatar for non-users\n\n```vue\n\t<NcAvatar display-name=\"Robbie Hyeon-Jeong\" :is-no-user=\"true\" />\n```\n\n### Avatar on complex background\n\n```\n<template>\n\t<div class=\"avatar-background\">\n\t\t<NcAvatar class=\"avatar\" :is-no-user=\"true\" display-name=\"Cecilia Rohese\" />\n\t</div>\n</template>\n<style scoped>\n.avatar-background {\n\twidth: 80px;\n\theight: 60px;\n\tbackground: linear-gradient(to bottom, #0057b8 0%, #0057b8 49.99%, #ffd700 50%, #ffd700 100%);\n}\n\n.avatar {\n\tmargin: 15px 25px;\n}\n</style>\n```\n\n</docs>\n<template>\n\t<span ref=\"main\"\n\t\tv-click-outside=\"closeMenu\"\n\t\t:class=\"{\n\t\t\t'avatardiv--unknown': userDoesNotExist,\n\t\t\t'avatardiv--with-menu': hasMenu,\n\t\t\t'avatardiv--with-menu-loading': contactsMenuLoading\n\t\t}\"\n\t\t:style=\"avatarStyle\"\n\t\tclass=\"avatardiv popovermenu-wrapper\">\n\t\t<!-- @slot Icon slot -->\n\t\t<slot name=\"icon\">\n\t\t\t<!-- Avatar icon or image -->\n\t\t\t<span v-if=\"iconClass\" :class=\"iconClass\" class=\"avatar-class-icon\" />\n\t\t\t<img v-else-if=\"isAvatarLoaded && !userDoesNotExist\"\n\t\t\t\t:src=\"avatarUrlLoaded\"\n\t\t\t\t:srcset=\"avatarSrcSetLoaded\"\n\t\t\t\talt=\"\">\n\t\t</slot>\n\n\t\t<!-- Contact menu -->\n\t\t<!-- We show a button if the menu is not loaded yet. -->\n\t\t<NcButton v-if=\"hasMenu && menu.length === 0\"\n\t\t\ttype=\"tertiary-no-background\"\n\t\t\tclass=\"action-item action-item__menutoggle\"\n\t\t\t:aria-label=\"avatarAriaLabel\"\n\t\t\t:title=\"tooltip\"\n\t\t\t@click=\"toggleMenu\">\n\t\t\t<template #icon>\n\t\t\t\t<NcLoadingIcon v-if=\"contactsMenuLoading\" />\n\t\t\t\t<DotsHorizontal v-else :size=\"20\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<NcActions v-else-if=\"hasMenu\"\n\t\t\tforce-menu\n\t\t\tmanual-open\n\t\t\ttype=\"tertiary-no-background\"\n\t\t\t:container=\"menuContainer\"\n\t\t\t:open.sync=\"contactsMenuOpenState\"\n\t\t\t:aria-label=\"avatarAriaLabel\"\n\t\t\t:title=\"tooltip\"\n\t\t\t@click=\"toggleMenu\">\n\t\t\t<NcActionLink v-for=\"(item, key) in menu\"\n\t\t\t\t:key=\"key\"\n\t\t\t\t:href=\"item.href\"\n\t\t\t\t:icon=\"item.icon\">\n\t\t\t\t{{ item.text }}\n\t\t\t</NcActionLink>\n\t\t\t<template v-if=\"contactsMenuLoading\" #icon>\n\t\t\t\t<NcLoadingIcon />\n\t\t\t</template>\n\t\t</NcActions>\n\n\t\t<!-- Avatar status -->\n\t\t<span v-if=\"showUserStatusIconOnAvatar\" class=\"avatardiv__user-status avatardiv__user-status--icon\">\n\t\t\t{{ userStatus.icon }}\n\t\t</span>\n\t\t<NcUserStatusIcon v-else-if=\"canDisplayUserStatus\"\n\t\t\tclass=\"avatardiv__user-status\"\n\t\t\t:status=\"userStatus.status\"\n\t\t\t:aria-hidden=\"String(hasMenu)\" />\n\n\t\t<!-- Show the letter if no avatar nor icon class -->\n\t\t<span v-if=\"showInitials\"\n\t\t\t:style=\"initialsWrapperStyle\"\n\t\t\tclass=\"avatardiv__initials-wrapper\">\n\t\t\t<span :style=\"initialsStyle\" class=\"avatardiv__initials\">\n\t\t\t\t{{ initials }}\n\t\t\t</span>\n\t\t</span>\n\t</span>\n</template>\n\n<script>\nimport NcActions from '../NcActions/index.js'\nimport NcActionLink from '../NcActionLink/index.js'\nimport NcButton from '../NcButton/index.js'\nimport NcLoadingIcon from '../NcLoadingIcon/index.js'\nimport NcUserStatusIcon from '../NcUserStatusIcon/index.js'\nimport usernameToColor from '../../functions/usernameToColor/index.js'\nimport { getUserStatusText } from '../../utils/UserStatus.ts'\nimport { userStatus } from '../../mixins/index.js'\nimport { t } from '../../l10n.js'\n\nimport axios from '@nextcloud/axios'\nimport DotsHorizontal from 'vue-material-design-icons/DotsHorizontal.vue'\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport { getBuilder } from '@nextcloud/browser-storage'\nimport { generateUrl } from '@nextcloud/router'\nimport { vOnClickOutside as ClickOutside } from '@vueuse/components'\n\nconst browserStorage = getBuilder('nextcloud').persist().build()\n\n/**\n * @param {string} userId The id of the user\n */\nfunction getUserHasAvatar(userId) {\n\tconst flag = browserStorage.getItem('user-has-avatar.' + userId)\n\tif (typeof flag === 'string') {\n\t\treturn Boolean(flag)\n\t}\n\treturn null\n}\n\n/**\n * @param {string} userId The id of the user\n * @param {boolean} flag Has the user an avatar\n */\nfunction setUserHasAvatar(userId, flag) {\n\tif (userId) {\n\t\tbrowserStorage.setItem('user-has-avatar.' + userId, flag)\n\t}\n}\n\nexport default {\n\tname: 'NcAvatar',\n\n\tdirectives: {\n\t\tClickOutside,\n\t},\n\tcomponents: {\n\t\tDotsHorizontal,\n\t\tNcActions,\n\t\tNcActionLink,\n\t\tNcButton,\n\t\tNcLoadingIcon,\n\t\tNcUserStatusIcon,\n\t},\n\tmixins: [userStatus],\n\tprops: {\n\t\t/**\n\t\t * Set a custom url to the avatar image\n\t\t * either the url, user or displayName property must be defined\n\t\t */\n\t\turl: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Set a css icon-class for an icon to be used instead of the avatar.\n\t\t */\n\t\ticonClass: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Set the user id to fetch the avatar\n\t\t * either the url, user or displayName property must be defined\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 * Whether or not to display the user-status\n\t\t */\n\t\tshowUserStatus: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\t/**\n\t\t * Whether or not to the status-icon should be used instead of online/away\n\t\t */\n\t\tshowUserStatusCompact: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\t/**\n\t\t * When the user status was preloaded via another source it can be handed in with this property to save the request.\n\t\t * If this property is not set the status will be fetched automatically.\n\t\t * If a preloaded no-status is available provide this object with properties \"status\", \"icon\" and \"message\" set to null.\n\t\t */\n\t\tpreloadedUserStatus: {\n\t\t\ttype: Object,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Is the user a guest user (then we have to user a different endpoint)\n\t\t */\n\t\tisGuest: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Set a display name that will be rendered as a tooltip\n\t\t * either the url, user or displayName property must be defined\n\t\t * specify just the displayname to generate a placeholder avatar without\n\t\t * trying to fetch the avatar based on the user id\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 * Set a size in px for the rendered avatar\n\t\t */\n\t\tsize: {\n\t\t\ttype: Number,\n\t\t\tdefault: 32,\n\t\t},\n\t\t/**\n\t\t * Placeholder avatars will be automatically generated when this is set to true\n\t\t */\n\t\tallowPlaceholder: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\t/**\n\t\t * Disable the tooltip\n\t\t */\n\t\tdisableTooltip: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Disable the menu\n\t\t */\n\t\tdisableMenu: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Declares a custom tooltip when not null\n\t\t * Fallback will be the displayName\n\t\t *\n\t\t * requires disableTooltip not to be set to true\n\t\t */\n\t\ttooltipMessage: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Declares username is not a user's name, when true.\n\t\t * Prevents loading user's avatar from server and forces generating colored initials,\n\t\t * i.e. if the user is a group\n\t\t */\n\t\tisNoUser: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Selector for the popover menu container\n\t\t */\n\t\tmenuContainer: {\n\t\t\ttype: [String, Object, Element, Boolean],\n\t\t\tdefault: 'body',\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tavatarUrlLoaded: null,\n\t\t\tavatarSrcSetLoaded: null,\n\t\t\tuserDoesNotExist: false,\n\t\t\tisAvatarLoaded: false,\n\t\t\tisMenuLoaded: false,\n\t\t\tcontactsMenuLoading: false,\n\t\t\tcontactsMenuActions: [],\n\t\t\tcontactsMenuOpenState: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tavatarAriaLabel() {\n\t\t\t// aria-label is only allowed on interactive elements\n\t\t\tif (!this.hasMenu) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (this.canDisplayUserStatus || this.showUserStatusIconOnAvatar) {\n\t\t\t\treturn t('Avatar of {displayName}, {status}', { displayName: this.displayName ?? this.user, status: getUserStatusText(this.userStatus.status) })\n\t\t\t}\n\t\t\treturn t('Avatar of {displayName}', { displayName: this.displayName ?? this.user })\n\t\t},\n\t\tcanDisplayUserStatus() {\n\t\t\treturn this.showUserStatus\n\t\t\t\t&& this.hasStatus\n\t\t\t\t&& ['online', 'away', 'busy', 'dnd'].includes(this.userStatus.status)\n\t\t},\n\t\tshowUserStatusIconOnAvatar() {\n\t\t\treturn this.showUserStatus\n\t\t\t\t&& this.showUserStatusCompact\n\t\t\t\t&& this.hasStatus\n\t\t\t\t&& this.userStatus.status !== 'dnd'\n\t\t\t\t&& this.userStatus.icon\n\t\t},\n\t\t/**\n\t\t * The user identifier, either the display name if set or the user property\n\t\t * If both properties are not set an empty string is returned\n\t\t */\n\t\tuserIdentifier() {\n\t\t\tif (this.isDisplayNameDefined) {\n\t\t\t\treturn this.displayName\n\t\t\t}\n\t\t\tif (this.isUserDefined) {\n\t\t\t\treturn this.user\n\t\t\t}\n\t\t\treturn ''\n\t\t},\n\t\tisUserDefined() {\n\t\t\treturn typeof this.user !== 'undefined'\n\t\t},\n\t\tisDisplayNameDefined() {\n\t\t\treturn typeof this.displayName !== 'undefined'\n\t\t},\n\t\tisUrlDefined() {\n\t\t\treturn typeof this.url !== 'undefined'\n\t\t},\n\t\thasMenu() {\n\t\t\tif (this.disableMenu) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif (this.isMenuLoaded) {\n\t\t\t\treturn this.menu.length > 0\n\t\t\t}\n\t\t\treturn !(this.user === getCurrentUser()?.uid || this.userDoesNotExist || this.url)\n\t\t},\n\n\t\t/**\n\t\t * True if initials should be shown as the user icon fallback\n\t\t */\n\t\tshowInitials() {\n\t\t\treturn this.allowPlaceholder && this.userDoesNotExist && !(this.iconClass || this.$slots.icon)\n\t\t},\n\n\t\tavatarStyle() {\n\t\t\tconst style = {\n\t\t\t\t'--size': this.size + 'px',\n\t\t\t\tlineHeight: this.size + 'px',\n\t\t\t\tfontSize: Math.round(this.size * 0.45) + 'px',\n\t\t\t}\n\t\t\treturn style\n\t\t},\n\t\tinitialsWrapperStyle() {\n\t\t\tconst { r, g, b } = usernameToColor(this.userIdentifier)\n\t\t\treturn {\n\t\t\t\tbackgroundColor: `rgba(${r}, ${g}, ${b}, 0.1)`,\n\t\t\t}\n\t\t},\n\t\tinitialsStyle() {\n\t\t\tconst { r, g, b } = usernameToColor(this.userIdentifier)\n\t\t\treturn {\n\t\t\t\tcolor: `rgb(${r}, ${g}, ${b})`,\n\t\t\t}\n\t\t},\n\t\ttooltip() {\n\t\t\tif (this.disableTooltip) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif (this.tooltipMessage) {\n\t\t\t\treturn this.tooltipMessage\n\t\t\t}\n\n\t\t\treturn this.displayName\n\t\t},\n\n\t\t/**\n\t\t * Get the (max. two) initials of the user as uppcase string\n\t\t */\n\t\tinitials() {\n\t\t\tlet initials = '?'\n\t\t\tif (this.showInitials) {\n\t\t\t\tconst user = this.userIdentifier.trim()\n\t\t\t\tif (user === '') {\n\t\t\t\t\treturn '?'\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Filtered user name, without special characters so only letters and numbers are allowed (prevent e.g. '(' as an initial)\n\t\t\t\t * \\p{L}: Letters of all languages\n\t\t\t\t * \\p{N}: Numbers of all languages\n\t\t\t\t * \\s: White space for breaking the string\n\t\t\t\t * @type {string}\n\t\t\t\t */\n\t\t\t\tconst filtered = user.match(/[\\p{L}\\p{N}\\s]/gu).join('')\n\t\t\t\tconst idx = filtered.lastIndexOf(' ')\n\t\t\t\tinitials = String.fromCodePoint(filtered.codePointAt(0))\n\t\t\t\tif (idx !== -1) {\n\t\t\t\t\tinitials = initials.concat(String.fromCodePoint(filtered.codePointAt(idx + 1)))\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn initials.toLocaleUpperCase()\n\t\t},\n\t\tmenu() {\n\t\t\tconst actions = this.contactsMenuActions.map((item) => {\n\t\t\t\treturn {\n\t\t\t\t\thref: item.hyperlink,\n\t\t\t\t\ticon: item.icon,\n\t\t\t\t\ttext: item.title,\n\t\t\t\t}\n\t\t\t})\n\n\t\t\t/**\n\t\t\t * @param {string} html The HTML to escape\n\t\t\t */\n\t\t\tfunction escape(html) {\n\t\t\t\tconst text = document.createTextNode(html)\n\t\t\t\tconst p = document.createElement('p')\n\t\t\t\tp.appendChild(text)\n\t\t\t\treturn p.innerHTML\n\t\t\t}\n\n\t\t\tif (this.showUserStatus && (this.userStatus.icon || this.userStatus.message)) {\n\t\t\t\treturn [{\n\t\t\t\t\thref: '#',\n\t\t\t\t\ticon: `data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><text x='0' y='14' font-size='14'>${escape(this.userStatus.icon)}</text></svg>`,\n\t\t\t\t\ttext: `${this.userStatus.message}`,\n\t\t\t\t}].concat(actions)\n\t\t\t}\n\n\t\t\treturn actions\n\t\t},\n\t},\n\n\twatch: {\n\t\turl() {\n\t\t\tthis.userDoesNotExist = false\n\t\t\tthis.loadAvatarUrl()\n\t\t},\n\t\tuser() {\n\t\t\tthis.userDoesNotExist = false\n\t\t\tthis.isMenuLoaded = false\n\t\t\tthis.loadAvatarUrl()\n\t\t},\n\t},\n\n\tmounted() {\n\t\tthis.loadAvatarUrl()\n\t\tsubscribe('settings:avatar:updated', this.loadAvatarUrl)\n\t\tsubscribe('settings:display-name:updated', this.loadAvatarUrl)\n\t\tif (this.showUserStatus && this.user && !this.isNoUser) {\n\t\t\tif (!this.preloadedUserStatus) {\n\t\t\t\tthis.fetchUserStatus(this.user)\n\t\t\t} else {\n\t\t\t\tthis.userStatus.status = this.preloadedUserStatus.status || ''\n\t\t\t\tthis.userStatus.message = this.preloadedUserStatus.message || ''\n\t\t\t\tthis.userStatus.icon = this.preloadedUserStatus.icon || ''\n\t\t\t\tthis.hasStatus = this.preloadedUserStatus.status !== null\n\t\t\t}\n\t\t\tsubscribe('user_status:status.updated', this.handleUserStatusUpdated)\n\t\t}\n\t},\n\n\tbeforeDestroy() {\n\t\tunsubscribe('settings:avatar:updated', this.loadAvatarUrl)\n\t\tunsubscribe('settings:display-name:updated', this.loadAvatarUrl)\n\t\tif (this.showUserStatus && this.user && !this.isNoUser) {\n\t\t\tunsubscribe('user_status:status.updated', this.handleUserStatusUpdated)\n\t\t}\n\t},\n\n\tmethods: {\n\t\tt,\n\t\thandleUserStatusUpdated(state) {\n\t\t\tif (this.user === state.userId) {\n\t\t\t\tthis.userStatus = {\n\t\t\t\t\tstatus: state.status,\n\t\t\t\t\ticon: state.icon,\n\t\t\t\t\tmessage: state.message,\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Toggle the popover menu on click or enter\n\t\t * @param {KeyboardEvent|MouseEvent} event the UI event\n\t\t */\n\t\tasync toggleMenu(event) {\n\t\t\tif (event.type === 'keydown' && event.key !== 'Enter') {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (!this.contactsMenuOpenState) {\n\t\t\t\tawait this.fetchContactsMenu()\n\t\t\t}\n\t\t\tthis.contactsMenuOpenState = !this.contactsMenuOpenState\n\t\t},\n\t\tcloseMenu() {\n\t\t\tthis.contactsMenuOpenState = false\n\t\t},\n\t\tasync fetchContactsMenu() {\n\t\t\tthis.contactsMenuLoading = true\n\t\t\ttry {\n\t\t\t\tconst user = encodeURIComponent(this.user)\n\t\t\t\tconst { data } = await axios.post(generateUrl('contactsmenu/findOne'), `shareType=0&shareWith=${user}`)\n\t\t\t\tthis.contactsMenuActions = data.topAction ? [data.topAction].concat(data.actions) : data.actions\n\t\t\t} catch (e) {\n\t\t\t\tthis.contactsMenuOpenState = false\n\t\t\t}\n\t\t\tthis.contactsMenuLoading = false\n\t\t\tthis.isMenuLoaded = true\n\t\t},\n\n\t\t/**\n\t\t * Handle avatar loading if user or url defined\n\t\t */\n\t\tloadAvatarUrl() {\n\t\t\tthis.isAvatarLoaded = false\n\n\t\t\t/** Only run avatar image loading if either user or url property is defined */\n\t\t\tif (!this.isUrlDefined && (!this.isUserDefined || this.isNoUser)) {\n\t\t\t\tthis.isAvatarLoaded = true\n\t\t\t\tthis.userDoesNotExist = true\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Directly use the url if defined\n\t\t\tif (this.isUrlDefined) {\n\t\t\t\tthis.updateImageIfValid(this.url)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (this.size <= 64) {\n\t\t\t\tconst avatarUrl = this.avatarUrlGenerator(this.user, 64)\n\t\t\t\tconst srcset = [\n\t\t\t\t\tavatarUrl + ' 1x',\n\t\t\t\t\tthis.avatarUrlGenerator(this.user, 512) + ' 8x',\n\t\t\t\t].join(', ')\n\n\t\t\t\tthis.updateImageIfValid(avatarUrl, srcset)\n\t\t\t} else {\n\t\t\t\tconst avatarUrl = this.avatarUrlGenerator(this.user, 512)\n\t\t\t\tthis.updateImageIfValid(avatarUrl)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Generate an avatar url from the server's avatar endpoint\n\t\t *\n\t\t * @param {string} user the user id\n\t\t * @param {number} size the desired size\n\t\t * @return {string}\n\t\t */\n\t\tavatarUrlGenerator(user, size) {\n\t\t\tconst darkTheme = window.getComputedStyle(document.body)\n\t\t\t\t.getPropertyValue('--background-invert-if-dark') === 'invert(100%)'\n\t\t\tlet url = '/avatar/{user}/{size}' + (darkTheme ? '/dark' : '')\n\t\t\tif (this.isGuest) {\n\t\t\t\turl = '/avatar/guest/{user}/{size}' + (darkTheme ? '/dark' : '')\n\t\t\t}\n\n\t\t\tlet avatarUrl = generateUrl(\n\t\t\t\turl,\n\t\t\t\t{\n\t\t\t\t\tuser,\n\t\t\t\t\tsize,\n\t\t\t\t})\n\n\t\t\t// eslint-disable-next-line camelcase\n\t\t\tif (user === getCurrentUser()?.uid && typeof oc_userconfig !== 'undefined') {\n\t\t\t\tavatarUrl += '?v=' + oc_userconfig.avatar.version\n\t\t\t}\n\n\t\t\treturn avatarUrl\n\t\t},\n\n\t\t/**\n\t\t * Check if the provided url is valid and update Avatar if so\n\t\t *\n\t\t * @param {string} url the avatar url\n\t\t * @param {Array} srcset the avatar srcset\n\t\t */\n\t\tupdateImageIfValid(url, srcset = null) {\n\t\t\t// skip loading\n\t\t\tconst userHasAvatar = getUserHasAvatar(this.user)\n\t\t\tif (this.isUserDefined && typeof userHasAvatar === 'boolean') {\n\t\t\t\tthis.isAvatarLoaded = true\n\t\t\t\tthis.avatarUrlLoaded = url\n\t\t\t\tif (srcset) {\n\t\t\t\t\tthis.avatarSrcSetLoaded = srcset\n\t\t\t\t}\n\t\t\t\tif (userHasAvatar === false) {\n\t\t\t\t\tthis.userDoesNotExist = true\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst img = new Image()\n\t\t\timg.onload = () => {\n\t\t\t\tthis.avatarUrlLoaded = url\n\t\t\t\tif (srcset) {\n\t\t\t\t\tthis.avatarSrcSetLoaded = srcset\n\t\t\t\t}\n\t\t\t\tthis.isAvatarLoaded = true\n\t\t\t\t// re-get to avoid concurrent access\n\t\t\t\tsetUserHasAvatar(this.user, true)\n\t\t\t}\n\t\t\timg.onerror = () => {\n\t\t\t\tconsole.debug('Invalid avatar url', url)\n\t\t\t\t// Avatar is invalid, reset\n\t\t\t\tthis.avatarUrlLoaded = null\n\t\t\t\tthis.avatarSrcSetLoaded = null\n\n\t\t\t\tthis.userDoesNotExist = true\n\t\t\t\tthis.isAvatarLoaded = false\n\t\t\t\tsetUserHasAvatar(this.user, false)\n\t\t\t}\n\n\t\t\tif (srcset) {\n\t\t\t\timg.srcset = srcset\n\t\t\t}\n\t\t\timg.src = url\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.avatardiv {\n\tposition: relative;\n\tdisplay: inline-block;\n\twidth: var(--size);\n\theight: var(--size);\n\n\t&--unknown {\n\t\tposition: relative;\n\t\tbackground-color: var(--color-main-background);\n\t\twhite-space: normal;\n\t}\n\n\t&:not(&--unknown) {\n\t\t// White/black background for avatars with transparency\n\t\tbackground-color: var(--color-main-background) !important;\n\t\tbox-shadow: 0 0 5px rgba(0, 0, 0, 0.05) inset;\n\t}\n\n\t&--with-menu {\n\t\tcursor: pointer;\n\t\t.action-item {\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t}\n\t\t:deep(.action-item__menutoggle) {\n\t\t\tcursor: pointer;\n\t\t\topacity: 0;\n\t\t}\n\t\t&:focus-within,\n\t\t&:hover,\n\t\t&#{&}-loading {\n\t\t\t:deep(.action-item__menutoggle) {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t\timg {\n\t\t\t\topacity: 0.3;\n\t\t\t}\n\t\t}\n\t\t:deep(.action-item__menutoggle),\n\t\timg {\n\t\t\ttransition: opacity var(--animation-quick);\n\t\t}\n\t\t:deep() {\n\t\t\t.button-vue,\n\t\t\t.button-vue__icon {\n\t\t\t\theight: var(--size);\n\t\t\t\tmin-height: var(--size);\n\t\t\t\twidth: var(--size) !important;\n\t\t\t\tmin-width: var(--size);\n\t\t\t}\n\t\t}\n\t}\n\n\t.avatardiv__initials-wrapper {\n\t\tdisplay: block;\n\t\theight: var(--size);\n\t\twidth: var(--size);\n\t\tbackground-color: var(--color-main-background);\n\t\tborder-radius: 50%;\n\n\t\t.avatardiv__initials {\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\tdisplay: block;\n\t\t\twidth: 100%;\n\t\t\ttext-align: center;\n\t\t\tfont-weight: normal;\n\t\t}\n\t}\n\n\timg {\n\t\t// Cover entire area\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\t// Keep ratio\n\t\tobject-fit: cover;\n\t}\n\n\t.material-design-icon {\n\t\twidth: var(--size);\n\t\theight: var(--size);\n\t}\n\n\t.avatardiv__user-status {\n\t\tbox-sizing: border-box;\n\t\tposition: absolute;\n\t\tright: -4px;\n\t\tbottom: -4px;\n\t\tmin-height: 18px;\n\t\tmin-width: 18px;\n\t\tmax-height: 18px;\n\t\tmax-width: 18px;\n\t\theight: 40%;\n\t\twidth: 40%;\n\t\tline-height: 15px;\n\t\tfont-size: var(--default-font-size);\n\t\tborder: 2px solid var(--color-main-background);\n\t\tbackground-color: var(--color-main-background);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-size: 16px;\n\t\tbackground-position: center;\n\t\tborder-radius: 50%;\n\n\t\t.acli:hover & {\n\t\t\tborder-color: var(--color-background-hover);\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\t\t.acli.active & {\n\t\t\tborder-color: var(--color-primary-element-light);\n\t\t\tbackground-color: var(--color-primary-element-light);\n\t\t}\n\n\t\t&--icon {\n\t\t\tborder: none;\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\n\t.popovermenu-wrapper {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t}\n}\n\n.avatar-class-icon {\n\tdisplay: block;\n\tborder-radius: 50%;\n\tbackground-color: var(--color-background-darker);\n\theight: 100%;\n}\n\n</style>\n"],"names":["userStatus","userId","capabilities","getCapabilities","getCurrentUser","data","axios","generateOcsUrl","status","message","icon","browserStorage","getBuilder","getUserHasAvatar","flag","setUserHasAvatar","_sfc_main","ClickOutside","DotsHorizontal","NcActions","NcActionLink","NcButton","NcLoadingIcon","NcUserStatusIcon","t","getUserStatusText","r","g","b","usernameToColor","initials","user","filtered","idx","actions","item","escape","html","text","p","subscribe","unsubscribe","state","event","generateUrl","avatarUrl","srcset","size","darkTheme","url","userHasAvatar","img"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BA,MAAeA,IAAA;AAAA,EACd,OAAO;AACN,WAAO;AAAA,MACN,WAAW;AAAA,MACX,YAAY;AAAA,QACX,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,MAAM;AAAA,MACN;AAAA,IACD;AAAA,EACD;AAAA,EACD,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQR,MAAM,gBAAgBC,GAAQ;AAC7B,UAAI,CAACA;AACJ;AAED,YAAMC,IAAeC,EAAiB;AACtC,UAAI,GAAC,OAAO,UAAU,eAAe,KAAKD,GAAc,aAAa,KAAK,CAACA,EAAa,YAAY,YAK/FE,EAAc;AAInB,YAAI;AACH,gBAAM,EAAE,MAAAC,MAAS,MAAMC,EAAM,IAAIC,EAAe,6CAA6C,EAAE,QAAAN,EAAM,CAAE,CAAC,GAClG;AAAA,YACL,QAAAO;AAAA,YACA,SAAAC;AAAA,YACA,MAAAC;AAAA,UACL,IAAQL,EAAK,IAAI;AACb,eAAK,WAAW,SAASG,GACzB,KAAK,WAAW,UAAUC,KAAW,IACrC,KAAK,WAAW,OAAOC,KAAQ,IAC/B,KAAK,YAAY;AAAA,QACjB,SAAQ,GAAG;AACX,cAAI,EAAE,SAAS,WAAW,OAAO,EAAE,SAAS,KAAK,KAAK,MAAM,WAAW;AAEtE;AAED,kBAAQ,MAAM,CAAC;AAAA,QACf;AAAA,IACD;AAAA,EACD;AACF;;AC0HA,MAAAC,IAAAC,EAAA,WAAA,EAAA,QAAA,EAAA,MAAA;AAKA,SAAAC,EAAAZ,GAAA;AACA,QAAAa,IAAAH,EAAA,QAAA,qBAAAV,CAAA;AACA,SAAA,OAAAa,KAAA,WACA,EAAAA,IAEA;AACA;AAMA,SAAAC,EAAAd,GAAAa,GAAA;AACA,EAAAb,KACAU,EAAA,QAAA,qBAAAV,GAAAa,CAAA;AAEA;AAEA,MAAAE,IAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,cAAAC;AAAAA,EACA;AAAA,EACA,YAAA;AAAA,IACA,gBAAAC;AAAA,IACA,WAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC;AAAA,IACA,eAAAC;AAAA,IACA,kBAAAC;AAAA,EACA;AAAA,EACA,QAAA,CAAAvB,CAAA;AAAA,EACA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,KAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,gBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,uBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,qBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,SAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,kBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,gBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,gBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,eAAA;AAAA,MACA,MAAA,CAAA,QAAA,QAAA,SAAA,OAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,OAAA;AACA,WAAA;AAAA,MACA,iBAAA;AAAA,MACA,oBAAA;AAAA,MACA,kBAAA;AAAA,MACA,gBAAA;AAAA,MACA,cAAA;AAAA,MACA,qBAAA;AAAA,MACA,qBAAA,CAAA;AAAA,MACA,uBAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,UAAA;AAAA,IACA,kBAAA;AAEA,UAAA,KAAA;AAGA,eAAA,KAAA,wBAAA,KAAA,6BACAwB,EAAA,qCAAA,EAAA,aAAA,KAAA,eAAA,KAAA,MAAA,QAAAC,EAAA,KAAA,WAAA,MAAA,EAAA,CAAA,IAEAD,EAAA,2BAAA,EAAA,aAAA,KAAA,eAAA,KAAA,MAAA;AAAA,IACA;AAAA,IACA,uBAAA;AACA,aAAA,KAAA,kBACA,KAAA,aACA,CAAA,UAAA,QAAA,QAAA,KAAA,EAAA,SAAA,KAAA,WAAA,MAAA;AAAA,IACA;AAAA,IACA,6BAAA;AACA,aAAA,KAAA,kBACA,KAAA,yBACA,KAAA,aACA,KAAA,WAAA,WAAA,SACA,KAAA,WAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,iBAAA;AACA,aAAA,KAAA,uBACA,KAAA,cAEA,KAAA,gBACA,KAAA,OAEA;AAAA,IACA;AAAA,IACA,gBAAA;AACA,aAAA,OAAA,KAAA,OAAA;AAAA,IACA;AAAA,IACA,uBAAA;AACA,aAAA,OAAA,KAAA,cAAA;AAAA,IACA;AAAA,IACA,eAAA;AACA,aAAA,OAAA,KAAA,MAAA;AAAA,IACA;AAAA,IACA,UAAA;AACA,aAAA,KAAA,cACA,KAEA,KAAA,eACA,KAAA,KAAA,SAAA,IAEA,EAAA,KAAA,SAAApB,EAAA,GAAA,OAAA,KAAA,oBAAA,KAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,eAAA;AACA,aAAA,KAAA,oBAAA,KAAA,oBAAA,EAAA,KAAA,aAAA,KAAA,OAAA;AAAA,IACA;AAAA,IAEA,cAAA;AAMA,aALA;AAAA,QACA,UAAA,KAAA,OAAA;AAAA,QACA,YAAA,KAAA,OAAA;AAAA,QACA,UAAA,KAAA,MAAA,KAAA,OAAA,IAAA,IAAA;AAAA,MACA;AAAA,IAEA;AAAA,IACA,uBAAA;AACA,YAAA,EAAA,GAAAsB,GAAA,GAAAC,GAAA,GAAAC,EAAA,IAAAC,EAAA,KAAA,cAAA;AACA,aAAA;AAAA,QACA,iBAAA,QAAAH,CAAA,KAAAC,CAAA,KAAAC,CAAA;AAAA,MACA;AAAA,IACA;AAAA,IACA,gBAAA;AACA,YAAA,EAAA,GAAAF,GAAA,GAAAC,GAAA,GAAAC,EAAA,IAAAC,EAAA,KAAA,cAAA;AACA,aAAA;AAAA,QACA,OAAA,OAAAH,CAAA,KAAAC,CAAA,KAAAC,CAAA;AAAA,MACA;AAAA,IACA;AAAA,IACA,UAAA;AACA,aAAA,KAAA,iBACA,KAEA,KAAA,iBACA,KAAA,iBAGA,KAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AACA,UAAAE,IAAA;AACA,UAAA,KAAA,cAAA;AACA,cAAAC,IAAA,KAAA,eAAA,KAAA;AACA,YAAAA,MAAA;AACA,iBAAA;AAUA,cAAAC,IAAAD,EAAA,MAAA,kBAAA,EAAA,KAAA,EAAA,GACAE,IAAAD,EAAA,YAAA,GAAA;AACA,QAAAF,IAAA,OAAA,cAAAE,EAAA,YAAA,CAAA,CAAA,GACAC,MAAA,OACAH,IAAAA,EAAA,OAAA,OAAA,cAAAE,EAAA,YAAAC,IAAA,CAAA,CAAA,CAAA;AAAA,MAEA;AACA,aAAAH,EAAA,kBAAA;AAAA,IACA;AAAA,IACA,OAAA;AACA,YAAAI,IAAA,KAAA,oBAAA,IAAA,CAAAC,OACA;AAAA,QACA,MAAAA,EAAA;AAAA,QACA,MAAAA,EAAA;AAAA,QACA,MAAAA,EAAA;AAAA,MACA,EACA;AAKA,eAAAC,EAAAC,GAAA;AACA,cAAAC,IAAA,SAAA,eAAAD,CAAA,GACAE,IAAA,SAAA,cAAA,GAAA;AACA,eAAAA,EAAA,YAAAD,CAAA,GACAC,EAAA;AAAA,MACA;AAEA,aAAA,KAAA,mBAAA,KAAA,WAAA,QAAA,KAAA,WAAA,WACA,CAAA;AAAA,QACA,MAAA;AAAA,QACA,MAAA,qGAAAH,EAAA,KAAA,WAAA,IAAA,CAAA;AAAA,QACA,MAAA,GAAA,KAAA,WAAA,OAAA;AAAA,MACA,CAAA,EAAA,OAAAF,CAAA,IAGAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,MAAA;AACA,WAAA,mBAAA,IACA,KAAA,cAAA;AAAA,IACA;AAAA,IACA,OAAA;AACA,WAAA,mBAAA,IACA,KAAA,eAAA,IACA,KAAA,cAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AACA,SAAA,cAAA,GACAM,EAAA,2BAAA,KAAA,aAAA,GACAA,EAAA,iCAAA,KAAA,aAAA,GACA,KAAA,kBAAA,KAAA,QAAA,CAAA,KAAA,aACA,KAAA,uBAGA,KAAA,WAAA,SAAA,KAAA,oBAAA,UAAA,IACA,KAAA,WAAA,UAAA,KAAA,oBAAA,WAAA,IACA,KAAA,WAAA,OAAA,KAAA,oBAAA,QAAA,IACA,KAAA,YAAA,KAAA,oBAAA,WAAA,QALA,KAAA,gBAAA,KAAA,IAAA,GAOAA,EAAA,8BAAA,KAAA,uBAAA;AAAA,EAEA;AAAA,EAEA,gBAAA;AACA,IAAAC,EAAA,2BAAA,KAAA,aAAA,GACAA,EAAA,iCAAA,KAAA,aAAA,GACA,KAAA,kBAAA,KAAA,QAAA,CAAA,KAAA,YACAA,EAAA,8BAAA,KAAA,uBAAA;AAAA,EAEA;AAAA,EAEA,SAAA;AAAA,IACA,GAAAjB;AAAA,IACA,wBAAAkB,GAAA;AACA,MAAA,KAAA,SAAAA,EAAA,WACA,KAAA,aAAA;AAAA,QACA,QAAAA,EAAA;AAAA,QACA,MAAAA,EAAA;AAAA,QACA,SAAAA,EAAA;AAAA,MACA;AAAA,IAEA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,MAAA,WAAAC,GAAA;AACA,MAAAA,EAAA,SAAA,aAAAA,EAAA,QAAA,YAGA,KAAA,yBACA,MAAA,KAAA,kBAAA,GAEA,KAAA,wBAAA,CAAA,KAAA;AAAA,IACA;AAAA,IACA,YAAA;AACA,WAAA,wBAAA;AAAA,IACA;AAAA,IACA,MAAA,oBAAA;AACA,WAAA,sBAAA;AACA,UAAA;AACA,cAAAZ,IAAA,mBAAA,KAAA,IAAA,GACA,EAAA,MAAA1B,EAAA,IAAA,MAAAC,EAAA,KAAAsC,EAAA,sBAAA,GAAA,yBAAAb,CAAA,EAAA;AACA,aAAA,sBAAA1B,EAAA,YAAA,CAAAA,EAAA,SAAA,EAAA,OAAAA,EAAA,OAAA,IAAAA,EAAA;AAAA,MACA,QAAA;AACA,aAAA,wBAAA;AAAA,MACA;AACA,WAAA,sBAAA,IACA,KAAA,eAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,gBAAA;AAIA,UAHA,KAAA,iBAAA,IAGA,CAAA,KAAA,iBAAA,CAAA,KAAA,iBAAA,KAAA,WAAA;AACA,aAAA,iBAAA,IACA,KAAA,mBAAA;AACA;AAAA,MACA;AAGA,UAAA,KAAA,cAAA;AACA,aAAA,mBAAA,KAAA,GAAA;AACA;AAAA,MACA;AAEA,UAAA,KAAA,QAAA,IAAA;AACA,cAAAwC,IAAA,KAAA,mBAAA,KAAA,MAAA,EAAA,GACAC,IAAA;AAAA,UACAD,IAAA;AAAA,UACA,KAAA,mBAAA,KAAA,MAAA,GAAA,IAAA;AAAA,QACA,EAAA,KAAA,IAAA;AAEA,aAAA,mBAAAA,GAAAC,CAAA;AAAA,MACA,OAAA;AACA,cAAAD,IAAA,KAAA,mBAAA,KAAA,MAAA,GAAA;AACA,aAAA,mBAAAA,CAAA;AAAA,MACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,mBAAAd,GAAAgB,GAAA;AACA,YAAAC,IAAA,OAAA,iBAAA,SAAA,IAAA,EACA,iBAAA,6BAAA,MAAA;AACA,UAAAC,IAAA,2BAAAD,IAAA,UAAA;AACA,MAAA,KAAA,YACAC,IAAA,iCAAAD,IAAA,UAAA;AAGA,UAAAH,IAAAD;AAAA,QACAK;AAAA,QACA;AAAA,UACA,MAAAlB;AAAA,UACA,MAAAgB;AAAA,QACA;AAAA,MAAA;AAGA,aAAAhB,MAAA3B,EAAA,GAAA,OAAA,OAAA,gBAAA,QACAyC,KAAA,QAAA,cAAA,OAAA,UAGAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,mBAAAI,GAAAH,IAAA,MAAA;AAEA,YAAAI,IAAArC,EAAA,KAAA,IAAA;AACA,UAAA,KAAA,iBAAA,OAAAqC,KAAA,WAAA;AACA,aAAA,iBAAA,IACA,KAAA,kBAAAD,GACAH,MACA,KAAA,qBAAAA,IAEAI,MAAA,OACA,KAAA,mBAAA;AAEA;AAAA,MACA;AAEA,YAAAC,IAAA,IAAA,MAAA;AACA,MAAAA,EAAA,SAAA,MAAA;AACA,aAAA,kBAAAF,GACAH,MACA,KAAA,qBAAAA,IAEA,KAAA,iBAAA,IAEA/B,EAAA,KAAA,MAAA,EAAA;AAAA,MACA,GACAoC,EAAA,UAAA,MAAA;AACA,gBAAA,MAAA,sBAAAF,CAAA,GAEA,KAAA,kBAAA,MACA,KAAA,qBAAA,MAEA,KAAA,mBAAA,IACA,KAAA,iBAAA,IACAlC,EAAA,KAAA,MAAA,EAAA;AAAA,MACA,GAEA+B,MACAK,EAAA,SAAAL,IAEAK,EAAA,MAAAF;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,454 +0,0 @@
|
|
|
1
|
-
require('../assets/NcMentionBubble-2OXF_uEJ.css');
|
|
2
|
-
require('../assets/NcAvatar-5H9cqcD1.css');
|
|
3
|
-
"use strict";
|
|
4
|
-
const g = require("./NcActions-z-BOuDhM.cjs"), S = require("../Components/NcActionLink.cjs"), m = require("../Components/NcButton.cjs"), y = require("../Components/NcLoadingIcon.cjs"), l = require("./NcUserStatusIcon-iczxs1an.cjs"), c = require("./usernameToColor-nIJ4GOsW.cjs");
|
|
5
|
-
require("../Composables/useIsFullscreen.cjs");
|
|
6
|
-
require("../Composables/useIsMobile.cjs");
|
|
7
|
-
const o = require("@nextcloud/router");
|
|
8
|
-
;/* empty css */
|
|
9
|
-
const U = require("./_plugin-vue2_normalizer-DCfUPqga.cjs");
|
|
10
|
-
require("linkify-string");
|
|
11
|
-
require("escape-html");
|
|
12
|
-
require("striptags");
|
|
13
|
-
require("vue");
|
|
14
|
-
const u = require("@nextcloud/auth"), _ = require("@nextcloud/axios"), N = require("@nextcloud/capabilities"), n = require("./_l10n-mEcF7TYU.cjs"), b = require("./DotsHorizontal-6hepLUSS.cjs"), i = require("@nextcloud/event-bus"), A = require("@nextcloud/browser-storage"), M = require("@vueuse/components"), L = (e) => e && e.__esModule ? e : { default: e }, h = /* @__PURE__ */ L(_);
|
|
15
|
-
/**
|
|
16
|
-
* @copyright Copyright (c) 2020 Georg Ehrke <georg-nextcloud@ehrke.email>
|
|
17
|
-
*
|
|
18
|
-
* @author Georg Ehrke <georg-nextcloud@ehrke.email>
|
|
19
|
-
*
|
|
20
|
-
* @license AGPL-3.0-or-later
|
|
21
|
-
*
|
|
22
|
-
* This program is free software: you can redistribute it and/or modify
|
|
23
|
-
* it under the terms of the GNU Affero General Public License as
|
|
24
|
-
* published by the Free Software Foundation, either version 3 of the
|
|
25
|
-
* License, or (at your option) any later version.
|
|
26
|
-
*
|
|
27
|
-
* This program is distributed in the hope that it will be useful,
|
|
28
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
29
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
30
|
-
* GNU Affero General Public License for more details.
|
|
31
|
-
*
|
|
32
|
-
* You should have received a copy of the GNU Affero General Public License
|
|
33
|
-
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
34
|
-
*
|
|
35
|
-
*/
|
|
36
|
-
const f = {
|
|
37
|
-
data() {
|
|
38
|
-
return {
|
|
39
|
-
hasStatus: !1,
|
|
40
|
-
userStatus: {
|
|
41
|
-
status: null,
|
|
42
|
-
message: null,
|
|
43
|
-
icon: null
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
},
|
|
47
|
-
methods: {
|
|
48
|
-
/**
|
|
49
|
-
* Fetches the user-status from the server
|
|
50
|
-
*
|
|
51
|
-
* @param {string} userId UserId of the user to fetch the status for
|
|
52
|
-
*
|
|
53
|
-
* @return {Promise<void>}
|
|
54
|
-
*/
|
|
55
|
-
async fetchUserStatus(e) {
|
|
56
|
-
if (!e)
|
|
57
|
-
return;
|
|
58
|
-
const t = N.getCapabilities();
|
|
59
|
-
if (!(!Object.prototype.hasOwnProperty.call(t, "user_status") || !t.user_status.enabled) && u.getCurrentUser())
|
|
60
|
-
try {
|
|
61
|
-
const { data: s } = await h.default.get(o.generateOcsUrl("apps/user_status/api/v1/statuses/{userId}", { userId: e })), {
|
|
62
|
-
status: a,
|
|
63
|
-
message: r,
|
|
64
|
-
icon: v
|
|
65
|
-
} = s.ocs.data;
|
|
66
|
-
this.userStatus.status = a, this.userStatus.message = r || "", this.userStatus.icon = v || "", this.hasStatus = !0;
|
|
67
|
-
} catch (s) {
|
|
68
|
-
if (s.response.status === 404 && s.response.data.ocs?.data?.length === 0)
|
|
69
|
-
return;
|
|
70
|
-
console.error(s);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
n.register(n.t9);
|
|
76
|
-
const p = A.getBuilder("nextcloud").persist().build();
|
|
77
|
-
function w(e) {
|
|
78
|
-
const t = p.getItem("user-has-avatar." + e);
|
|
79
|
-
return typeof t == "string" ? !!t : null;
|
|
80
|
-
}
|
|
81
|
-
function d(e, t) {
|
|
82
|
-
e && p.setItem("user-has-avatar." + e, t);
|
|
83
|
-
}
|
|
84
|
-
const C = {
|
|
85
|
-
name: "NcAvatar",
|
|
86
|
-
directives: {
|
|
87
|
-
ClickOutside: M.vOnClickOutside
|
|
88
|
-
},
|
|
89
|
-
components: {
|
|
90
|
-
DotsHorizontal: b.DotsHorizontal,
|
|
91
|
-
NcActions: g.NcActions,
|
|
92
|
-
NcActionLink: S,
|
|
93
|
-
NcButton: m,
|
|
94
|
-
NcLoadingIcon: y,
|
|
95
|
-
NcUserStatusIcon: l.NcUserStatusIcon
|
|
96
|
-
},
|
|
97
|
-
mixins: [f],
|
|
98
|
-
props: {
|
|
99
|
-
/**
|
|
100
|
-
* Set a custom url to the avatar image
|
|
101
|
-
* either the url, user or displayName property must be defined
|
|
102
|
-
*/
|
|
103
|
-
url: {
|
|
104
|
-
type: String,
|
|
105
|
-
default: void 0
|
|
106
|
-
},
|
|
107
|
-
/**
|
|
108
|
-
* Set a css icon-class for an icon to be used instead of the avatar.
|
|
109
|
-
*/
|
|
110
|
-
iconClass: {
|
|
111
|
-
type: String,
|
|
112
|
-
default: void 0
|
|
113
|
-
},
|
|
114
|
-
/**
|
|
115
|
-
* Set the user id to fetch the avatar
|
|
116
|
-
* either the url, user or displayName property must be defined
|
|
117
|
-
*/
|
|
118
|
-
user: {
|
|
119
|
-
type: String,
|
|
120
|
-
default: void 0
|
|
121
|
-
},
|
|
122
|
-
/**
|
|
123
|
-
* Whether or not to display the user-status
|
|
124
|
-
*/
|
|
125
|
-
showUserStatus: {
|
|
126
|
-
type: Boolean,
|
|
127
|
-
default: !0
|
|
128
|
-
},
|
|
129
|
-
/**
|
|
130
|
-
* Whether or not to the status-icon should be used instead of online/away
|
|
131
|
-
*/
|
|
132
|
-
showUserStatusCompact: {
|
|
133
|
-
type: Boolean,
|
|
134
|
-
default: !0
|
|
135
|
-
},
|
|
136
|
-
/**
|
|
137
|
-
* When the user status was preloaded via another source it can be handed in with this property to save the request.
|
|
138
|
-
* If this property is not set the status will be fetched automatically.
|
|
139
|
-
* If a preloaded no-status is available provide this object with properties "status", "icon" and "message" set to null.
|
|
140
|
-
*/
|
|
141
|
-
preloadedUserStatus: {
|
|
142
|
-
type: Object,
|
|
143
|
-
default: void 0
|
|
144
|
-
},
|
|
145
|
-
/**
|
|
146
|
-
* Is the user a guest user (then we have to user a different endpoint)
|
|
147
|
-
*/
|
|
148
|
-
isGuest: {
|
|
149
|
-
type: Boolean,
|
|
150
|
-
default: !1
|
|
151
|
-
},
|
|
152
|
-
/**
|
|
153
|
-
* Set a display name that will be rendered as a tooltip
|
|
154
|
-
* either the url, user or displayName property must be defined
|
|
155
|
-
* specify just the displayname to generate a placeholder avatar without
|
|
156
|
-
* trying to fetch the avatar based on the user id
|
|
157
|
-
*/
|
|
158
|
-
displayName: {
|
|
159
|
-
type: String,
|
|
160
|
-
default: void 0
|
|
161
|
-
},
|
|
162
|
-
/**
|
|
163
|
-
* Set a size in px for the rendered avatar
|
|
164
|
-
*/
|
|
165
|
-
size: {
|
|
166
|
-
type: Number,
|
|
167
|
-
default: 32
|
|
168
|
-
},
|
|
169
|
-
/**
|
|
170
|
-
* Placeholder avatars will be automatically generated when this is set to true
|
|
171
|
-
*/
|
|
172
|
-
allowPlaceholder: {
|
|
173
|
-
type: Boolean,
|
|
174
|
-
default: !0
|
|
175
|
-
},
|
|
176
|
-
/**
|
|
177
|
-
* Disable the tooltip
|
|
178
|
-
*/
|
|
179
|
-
disableTooltip: {
|
|
180
|
-
type: Boolean,
|
|
181
|
-
default: !1
|
|
182
|
-
},
|
|
183
|
-
/**
|
|
184
|
-
* Disable the menu
|
|
185
|
-
*/
|
|
186
|
-
disableMenu: {
|
|
187
|
-
type: Boolean,
|
|
188
|
-
default: !1
|
|
189
|
-
},
|
|
190
|
-
/**
|
|
191
|
-
* Declares a custom tooltip when not null
|
|
192
|
-
* Fallback will be the displayName
|
|
193
|
-
*
|
|
194
|
-
* requires disableTooltip not to be set to true
|
|
195
|
-
*/
|
|
196
|
-
tooltipMessage: {
|
|
197
|
-
type: String,
|
|
198
|
-
default: null
|
|
199
|
-
},
|
|
200
|
-
/**
|
|
201
|
-
* Declares username is not a user's name, when true.
|
|
202
|
-
* Prevents loading user's avatar from server and forces generating colored initials,
|
|
203
|
-
* i.e. if the user is a group
|
|
204
|
-
*/
|
|
205
|
-
isNoUser: {
|
|
206
|
-
type: Boolean,
|
|
207
|
-
default: !1
|
|
208
|
-
},
|
|
209
|
-
/**
|
|
210
|
-
* Selector for the popover menu container
|
|
211
|
-
*/
|
|
212
|
-
menuContainer: {
|
|
213
|
-
type: [String, Object, Element, Boolean],
|
|
214
|
-
default: "body"
|
|
215
|
-
}
|
|
216
|
-
},
|
|
217
|
-
data() {
|
|
218
|
-
return {
|
|
219
|
-
avatarUrlLoaded: null,
|
|
220
|
-
avatarSrcSetLoaded: null,
|
|
221
|
-
userDoesNotExist: !1,
|
|
222
|
-
isAvatarLoaded: !1,
|
|
223
|
-
isMenuLoaded: !1,
|
|
224
|
-
contactsMenuLoading: !1,
|
|
225
|
-
contactsMenuActions: [],
|
|
226
|
-
contactsMenuOpenState: !1
|
|
227
|
-
};
|
|
228
|
-
},
|
|
229
|
-
computed: {
|
|
230
|
-
avatarAriaLabel() {
|
|
231
|
-
if (this.hasMenu)
|
|
232
|
-
return this.canDisplayUserStatus || this.showUserStatusIconOnAvatar ? n.t("Avatar of {displayName}, {status}", { displayName: this.displayName ?? this.user, status: l.getUserStatusText(this.userStatus.status) }) : n.t("Avatar of {displayName}", { displayName: this.displayName ?? this.user });
|
|
233
|
-
},
|
|
234
|
-
canDisplayUserStatus() {
|
|
235
|
-
return this.showUserStatus && this.hasStatus && ["online", "away", "busy", "dnd"].includes(this.userStatus.status);
|
|
236
|
-
},
|
|
237
|
-
showUserStatusIconOnAvatar() {
|
|
238
|
-
return this.showUserStatus && this.showUserStatusCompact && this.hasStatus && this.userStatus.status !== "dnd" && this.userStatus.icon;
|
|
239
|
-
},
|
|
240
|
-
/**
|
|
241
|
-
* The user identifier, either the display name if set or the user property
|
|
242
|
-
* If both properties are not set an empty string is returned
|
|
243
|
-
*/
|
|
244
|
-
userIdentifier() {
|
|
245
|
-
return this.isDisplayNameDefined ? this.displayName : this.isUserDefined ? this.user : "";
|
|
246
|
-
},
|
|
247
|
-
isUserDefined() {
|
|
248
|
-
return typeof this.user < "u";
|
|
249
|
-
},
|
|
250
|
-
isDisplayNameDefined() {
|
|
251
|
-
return typeof this.displayName < "u";
|
|
252
|
-
},
|
|
253
|
-
isUrlDefined() {
|
|
254
|
-
return typeof this.url < "u";
|
|
255
|
-
},
|
|
256
|
-
hasMenu() {
|
|
257
|
-
return this.disableMenu ? !1 : this.isMenuLoaded ? this.menu.length > 0 : !(this.user === u.getCurrentUser()?.uid || this.userDoesNotExist || this.url);
|
|
258
|
-
},
|
|
259
|
-
/**
|
|
260
|
-
* True if initials should be shown as the user icon fallback
|
|
261
|
-
*/
|
|
262
|
-
showInitials() {
|
|
263
|
-
return this.allowPlaceholder && this.userDoesNotExist && !(this.iconClass || this.$slots.icon);
|
|
264
|
-
},
|
|
265
|
-
avatarStyle() {
|
|
266
|
-
return {
|
|
267
|
-
"--size": this.size + "px",
|
|
268
|
-
lineHeight: this.size + "px",
|
|
269
|
-
fontSize: Math.round(this.size * 0.45) + "px"
|
|
270
|
-
};
|
|
271
|
-
},
|
|
272
|
-
initialsWrapperStyle() {
|
|
273
|
-
const { r: e, g: t, b: s } = c.usernameToColor(this.userIdentifier);
|
|
274
|
-
return {
|
|
275
|
-
backgroundColor: `rgba(${e}, ${t}, ${s}, 0.1)`
|
|
276
|
-
};
|
|
277
|
-
},
|
|
278
|
-
initialsStyle() {
|
|
279
|
-
const { r: e, g: t, b: s } = c.usernameToColor(this.userIdentifier);
|
|
280
|
-
return {
|
|
281
|
-
color: `rgb(${e}, ${t}, ${s})`
|
|
282
|
-
};
|
|
283
|
-
},
|
|
284
|
-
tooltip() {
|
|
285
|
-
return this.disableTooltip ? !1 : this.tooltipMessage ? this.tooltipMessage : this.displayName;
|
|
286
|
-
},
|
|
287
|
-
/**
|
|
288
|
-
* Get the (max. two) initials of the user as uppcase string
|
|
289
|
-
*/
|
|
290
|
-
initials() {
|
|
291
|
-
let e = "?";
|
|
292
|
-
if (this.showInitials) {
|
|
293
|
-
const t = this.userIdentifier.trim();
|
|
294
|
-
if (t === "")
|
|
295
|
-
return "?";
|
|
296
|
-
const s = t.match(/[\p{L}\p{N}\s]/gu).join(""), a = s.lastIndexOf(" ");
|
|
297
|
-
e = String.fromCodePoint(s.codePointAt(0)), a !== -1 && (e = e.concat(String.fromCodePoint(s.codePointAt(a + 1))));
|
|
298
|
-
}
|
|
299
|
-
return e.toLocaleUpperCase();
|
|
300
|
-
},
|
|
301
|
-
menu() {
|
|
302
|
-
const e = this.contactsMenuActions.map((s) => ({
|
|
303
|
-
href: s.hyperlink,
|
|
304
|
-
icon: s.icon,
|
|
305
|
-
text: s.title
|
|
306
|
-
}));
|
|
307
|
-
function t(s) {
|
|
308
|
-
const a = document.createTextNode(s), r = document.createElement("p");
|
|
309
|
-
return r.appendChild(a), r.innerHTML;
|
|
310
|
-
}
|
|
311
|
-
return this.showUserStatus && (this.userStatus.icon || this.userStatus.message) ? [{
|
|
312
|
-
href: "#",
|
|
313
|
-
icon: `data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><text x='0' y='14' font-size='14'>${t(this.userStatus.icon)}</text></svg>`,
|
|
314
|
-
text: `${this.userStatus.message}`
|
|
315
|
-
}].concat(e) : e;
|
|
316
|
-
}
|
|
317
|
-
},
|
|
318
|
-
watch: {
|
|
319
|
-
url() {
|
|
320
|
-
this.userDoesNotExist = !1, this.loadAvatarUrl();
|
|
321
|
-
},
|
|
322
|
-
user() {
|
|
323
|
-
this.userDoesNotExist = !1, this.isMenuLoaded = !1, this.loadAvatarUrl();
|
|
324
|
-
}
|
|
325
|
-
},
|
|
326
|
-
mounted() {
|
|
327
|
-
this.loadAvatarUrl(), i.subscribe("settings:avatar:updated", this.loadAvatarUrl), i.subscribe("settings:display-name:updated", this.loadAvatarUrl), this.showUserStatus && this.user && !this.isNoUser && (this.preloadedUserStatus ? (this.userStatus.status = this.preloadedUserStatus.status || "", this.userStatus.message = this.preloadedUserStatus.message || "", this.userStatus.icon = this.preloadedUserStatus.icon || "", this.hasStatus = this.preloadedUserStatus.status !== null) : this.fetchUserStatus(this.user), i.subscribe("user_status:status.updated", this.handleUserStatusUpdated));
|
|
328
|
-
},
|
|
329
|
-
beforeDestroy() {
|
|
330
|
-
i.unsubscribe("settings:avatar:updated", this.loadAvatarUrl), i.unsubscribe("settings:display-name:updated", this.loadAvatarUrl), this.showUserStatus && this.user && !this.isNoUser && i.unsubscribe("user_status:status.updated", this.handleUserStatusUpdated);
|
|
331
|
-
},
|
|
332
|
-
methods: {
|
|
333
|
-
t: n.t,
|
|
334
|
-
handleUserStatusUpdated(e) {
|
|
335
|
-
this.user === e.userId && (this.userStatus = {
|
|
336
|
-
status: e.status,
|
|
337
|
-
icon: e.icon,
|
|
338
|
-
message: e.message
|
|
339
|
-
});
|
|
340
|
-
},
|
|
341
|
-
/**
|
|
342
|
-
* Toggle the popover menu on click or enter
|
|
343
|
-
* @param {KeyboardEvent|MouseEvent} event the UI event
|
|
344
|
-
*/
|
|
345
|
-
async toggleMenu(e) {
|
|
346
|
-
e.type === "keydown" && e.key !== "Enter" || (this.contactsMenuOpenState || await this.fetchContactsMenu(), this.contactsMenuOpenState = !this.contactsMenuOpenState);
|
|
347
|
-
},
|
|
348
|
-
closeMenu() {
|
|
349
|
-
this.contactsMenuOpenState = !1;
|
|
350
|
-
},
|
|
351
|
-
async fetchContactsMenu() {
|
|
352
|
-
this.contactsMenuLoading = !0;
|
|
353
|
-
try {
|
|
354
|
-
const e = encodeURIComponent(this.user), { data: t } = await h.default.post(o.generateUrl("contactsmenu/findOne"), `shareType=0&shareWith=${e}`);
|
|
355
|
-
this.contactsMenuActions = t.topAction ? [t.topAction].concat(t.actions) : t.actions;
|
|
356
|
-
} catch {
|
|
357
|
-
this.contactsMenuOpenState = !1;
|
|
358
|
-
}
|
|
359
|
-
this.contactsMenuLoading = !1, this.isMenuLoaded = !0;
|
|
360
|
-
},
|
|
361
|
-
/**
|
|
362
|
-
* Handle avatar loading if user or url defined
|
|
363
|
-
*/
|
|
364
|
-
loadAvatarUrl() {
|
|
365
|
-
if (this.isAvatarLoaded = !1, !this.isUrlDefined && (!this.isUserDefined || this.isNoUser)) {
|
|
366
|
-
this.isAvatarLoaded = !0, this.userDoesNotExist = !0;
|
|
367
|
-
return;
|
|
368
|
-
}
|
|
369
|
-
if (this.isUrlDefined) {
|
|
370
|
-
this.updateImageIfValid(this.url);
|
|
371
|
-
return;
|
|
372
|
-
}
|
|
373
|
-
if (this.size <= 64) {
|
|
374
|
-
const e = this.avatarUrlGenerator(this.user, 64), t = [
|
|
375
|
-
e + " 1x",
|
|
376
|
-
this.avatarUrlGenerator(this.user, 512) + " 8x"
|
|
377
|
-
].join(", ");
|
|
378
|
-
this.updateImageIfValid(e, t);
|
|
379
|
-
} else {
|
|
380
|
-
const e = this.avatarUrlGenerator(this.user, 512);
|
|
381
|
-
this.updateImageIfValid(e);
|
|
382
|
-
}
|
|
383
|
-
},
|
|
384
|
-
/**
|
|
385
|
-
* Generate an avatar url from the server's avatar endpoint
|
|
386
|
-
*
|
|
387
|
-
* @param {string} user the user id
|
|
388
|
-
* @param {number} size the desired size
|
|
389
|
-
* @return {string}
|
|
390
|
-
*/
|
|
391
|
-
avatarUrlGenerator(e, t) {
|
|
392
|
-
const s = window.getComputedStyle(document.body).getPropertyValue("--background-invert-if-dark") === "invert(100%)";
|
|
393
|
-
let a = "/avatar/{user}/{size}" + (s ? "/dark" : "");
|
|
394
|
-
this.isGuest && (a = "/avatar/guest/{user}/{size}" + (s ? "/dark" : ""));
|
|
395
|
-
let r = o.generateUrl(
|
|
396
|
-
a,
|
|
397
|
-
{
|
|
398
|
-
user: e,
|
|
399
|
-
size: t
|
|
400
|
-
}
|
|
401
|
-
);
|
|
402
|
-
return e === u.getCurrentUser()?.uid && typeof oc_userconfig < "u" && (r += "?v=" + oc_userconfig.avatar.version), r;
|
|
403
|
-
},
|
|
404
|
-
/**
|
|
405
|
-
* Check if the provided url is valid and update Avatar if so
|
|
406
|
-
*
|
|
407
|
-
* @param {string} url the avatar url
|
|
408
|
-
* @param {Array} srcset the avatar srcset
|
|
409
|
-
*/
|
|
410
|
-
updateImageIfValid(e, t = null) {
|
|
411
|
-
const s = w(this.user);
|
|
412
|
-
if (this.isUserDefined && typeof s == "boolean") {
|
|
413
|
-
this.isAvatarLoaded = !0, this.avatarUrlLoaded = e, t && (this.avatarSrcSetLoaded = t), s === !1 && (this.userDoesNotExist = !0);
|
|
414
|
-
return;
|
|
415
|
-
}
|
|
416
|
-
const a = new Image();
|
|
417
|
-
a.onload = () => {
|
|
418
|
-
this.avatarUrlLoaded = e, t && (this.avatarSrcSetLoaded = t), this.isAvatarLoaded = !0, d(this.user, !0);
|
|
419
|
-
}, a.onerror = () => {
|
|
420
|
-
console.debug("Invalid avatar url", e), this.avatarUrlLoaded = null, this.avatarSrcSetLoaded = null, this.userDoesNotExist = !0, this.isAvatarLoaded = !1, d(this.user, !1);
|
|
421
|
-
}, t && (a.srcset = t), a.src = e;
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
};
|
|
425
|
-
var x = function() {
|
|
426
|
-
var t = this, s = t._self._c;
|
|
427
|
-
return s("span", { directives: [{ name: "click-outside", rawName: "v-click-outside", value: t.closeMenu, expression: "closeMenu" }], ref: "main", staticClass: "avatardiv popovermenu-wrapper", class: {
|
|
428
|
-
"avatardiv--unknown": t.userDoesNotExist,
|
|
429
|
-
"avatardiv--with-menu": t.hasMenu,
|
|
430
|
-
"avatardiv--with-menu-loading": t.contactsMenuLoading
|
|
431
|
-
}, style: t.avatarStyle }, [t._t("icon", function() {
|
|
432
|
-
return [t.iconClass ? s("span", { staticClass: "avatar-class-icon", class: t.iconClass }) : t.isAvatarLoaded && !t.userDoesNotExist ? s("img", { attrs: { src: t.avatarUrlLoaded, srcset: t.avatarSrcSetLoaded, alt: "" } }) : t._e()];
|
|
433
|
-
}), t.hasMenu && t.menu.length === 0 ? s("NcButton", { staticClass: "action-item action-item__menutoggle", attrs: { type: "tertiary-no-background", "aria-label": t.avatarAriaLabel, title: t.tooltip }, on: { click: t.toggleMenu }, scopedSlots: t._u([{ key: "icon", fn: function() {
|
|
434
|
-
return [t.contactsMenuLoading ? s("NcLoadingIcon") : s("DotsHorizontal", { attrs: { size: 20 } })];
|
|
435
|
-
}, proxy: !0 }], null, !1, 2617833509) }) : t.hasMenu ? s("NcActions", { attrs: { "force-menu": "", "manual-open": "", type: "tertiary-no-background", container: t.menuContainer, open: t.contactsMenuOpenState, "aria-label": t.avatarAriaLabel, title: t.tooltip }, on: { "update:open": function(a) {
|
|
436
|
-
t.contactsMenuOpenState = a;
|
|
437
|
-
}, click: t.toggleMenu }, scopedSlots: t._u([t.contactsMenuLoading ? { key: "icon", fn: function() {
|
|
438
|
-
return [s("NcLoadingIcon")];
|
|
439
|
-
}, proxy: !0 } : null], null, !0) }, t._l(t.menu, function(a, r) {
|
|
440
|
-
return s("NcActionLink", { key: r, attrs: { href: a.href, icon: a.icon } }, [t._v(" " + t._s(a.text) + " ")]);
|
|
441
|
-
}), 1) : t._e(), t.showUserStatusIconOnAvatar ? s("span", { staticClass: "avatardiv__user-status avatardiv__user-status--icon" }, [t._v(" " + t._s(t.userStatus.icon) + " ")]) : t.canDisplayUserStatus ? s("NcUserStatusIcon", { staticClass: "avatardiv__user-status", attrs: { status: t.userStatus.status, "aria-hidden": String(t.hasMenu) } }) : t._e(), t.showInitials ? s("span", { staticClass: "avatardiv__initials-wrapper", style: t.initialsWrapperStyle }, [s("span", { staticClass: "avatardiv__initials", style: t.initialsStyle }, [t._v(" " + t._s(t.initials) + " ")])]) : t._e()], 2);
|
|
442
|
-
}, I = [], D = /* @__PURE__ */ U.normalizeComponent(
|
|
443
|
-
C,
|
|
444
|
-
x,
|
|
445
|
-
I,
|
|
446
|
-
!1,
|
|
447
|
-
null,
|
|
448
|
-
"de3f465f",
|
|
449
|
-
null,
|
|
450
|
-
null
|
|
451
|
-
);
|
|
452
|
-
const k = D.exports;
|
|
453
|
-
exports.NcAvatar = k;
|
|
454
|
-
exports.userStatus = f;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NcAvatar-OWW68uV3.cjs","sources":["../../src/mixins/userStatus.js","../../src/components/NcAvatar/NcAvatar.vue"],"sourcesContent":["/**\n * @copyright Copyright (c) 2020 Georg Ehrke <georg-nextcloud@ehrke.email>\n *\n * @author Georg Ehrke <georg-nextcloud@ehrke.email>\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 { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\thasStatus: false,\n\t\t\tuserStatus: {\n\t\t\t\tstatus: null,\n\t\t\t\tmessage: null,\n\t\t\t\ticon: null,\n\t\t\t},\n\t\t}\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Fetches the user-status from the server\n\t\t *\n\t\t * @param {string} userId UserId of the user to fetch the status for\n\t\t *\n\t\t * @return {Promise<void>}\n\t\t */\n\t\tasync fetchUserStatus(userId) {\n\t\t\tif (!userId) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst capabilities = getCapabilities()\n\t\t\tif (!Object.prototype.hasOwnProperty.call(capabilities, 'user_status') || !capabilities.user_status.enabled) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// User status endpoint is not available for guests.\n\t\t\tif (!getCurrentUser()) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst { data } = await axios.get(generateOcsUrl('apps/user_status/api/v1/statuses/{userId}', { userId }))\n\t\t\t\tconst {\n\t\t\t\t\tstatus,\n\t\t\t\t\tmessage,\n\t\t\t\t\ticon,\n\t\t\t\t} = data.ocs.data\n\t\t\t\tthis.userStatus.status = status\n\t\t\t\tthis.userStatus.message = message || ''\n\t\t\t\tthis.userStatus.icon = icon || ''\n\t\t\t\tthis.hasStatus = true\n\t\t\t} catch (e) {\n\t\t\t\tif (e.response.status === 404 && e.response.data.ocs?.data?.length === 0) {\n\t\t\t\t\t// User just has no status set, so don't log it\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tconsole.error(e)\n\t\t\t}\n\t\t},\n\t},\n}\n","<!--\n - @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\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\n<docs>\n\n### Basic user avatar\n\n```vue\n\t<NcAvatar user=\"willywonka\" display-name=\"Willy Wonka\" />\n```\n\n### Avatar with image\n\n```vue\n\t<NcAvatar url=\"https://nextcloud.com/wp-content/themes/next/assets/img/common/nextcloud-square-logo.png\" />\n```\n\n### Avatar with material design icon\n\n```\n <template>\n\t<NcAvatar>\n\t\t<template #icon>\n\t\t\t<AccountMultiple :size=\"20\" />\n\t\t</template>\n\t</NcAvatar>\n</template>\n<script>\nimport AccountMultiple from 'vue-material-design-icons/AccountMultiple'\n\nexport default {\n\tcomponents: {\n\t\tAccountMultiple,\n\t},\n }\n </script>\n```\n\n### Avatar with preloaded status\n```\n <template>\n\t<NcAvatar user=\"janedoe\"\n\t\tdisplay-name=\"Jane Doe\"\n\t\t:preloaded-user-status=\"status\">\n\t</NcAvatar>\n</template>\n<script>\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tstatus: {\n\t\t\t\ticon: '',\n\t\t\t\tstatus: 'dnd',\n\t\t\t\tmessage: 'Not busy',\n\t\t\t},\n\t\t}\n\t},\n }\n </script>\n```\n\n### Avatar for non-users\n\n```vue\n\t<NcAvatar display-name=\"Robbie Hyeon-Jeong\" :is-no-user=\"true\" />\n```\n\n### Avatar on complex background\n\n```\n<template>\n\t<div class=\"avatar-background\">\n\t\t<NcAvatar class=\"avatar\" :is-no-user=\"true\" display-name=\"Cecilia Rohese\" />\n\t</div>\n</template>\n<style scoped>\n.avatar-background {\n\twidth: 80px;\n\theight: 60px;\n\tbackground: linear-gradient(to bottom, #0057b8 0%, #0057b8 49.99%, #ffd700 50%, #ffd700 100%);\n}\n\n.avatar {\n\tmargin: 15px 25px;\n}\n</style>\n```\n\n</docs>\n<template>\n\t<span ref=\"main\"\n\t\tv-click-outside=\"closeMenu\"\n\t\t:class=\"{\n\t\t\t'avatardiv--unknown': userDoesNotExist,\n\t\t\t'avatardiv--with-menu': hasMenu,\n\t\t\t'avatardiv--with-menu-loading': contactsMenuLoading\n\t\t}\"\n\t\t:style=\"avatarStyle\"\n\t\tclass=\"avatardiv popovermenu-wrapper\">\n\t\t<!-- @slot Icon slot -->\n\t\t<slot name=\"icon\">\n\t\t\t<!-- Avatar icon or image -->\n\t\t\t<span v-if=\"iconClass\" :class=\"iconClass\" class=\"avatar-class-icon\" />\n\t\t\t<img v-else-if=\"isAvatarLoaded && !userDoesNotExist\"\n\t\t\t\t:src=\"avatarUrlLoaded\"\n\t\t\t\t:srcset=\"avatarSrcSetLoaded\"\n\t\t\t\talt=\"\">\n\t\t</slot>\n\n\t\t<!-- Contact menu -->\n\t\t<!-- We show a button if the menu is not loaded yet. -->\n\t\t<NcButton v-if=\"hasMenu && menu.length === 0\"\n\t\t\ttype=\"tertiary-no-background\"\n\t\t\tclass=\"action-item action-item__menutoggle\"\n\t\t\t:aria-label=\"avatarAriaLabel\"\n\t\t\t:title=\"tooltip\"\n\t\t\t@click=\"toggleMenu\">\n\t\t\t<template #icon>\n\t\t\t\t<NcLoadingIcon v-if=\"contactsMenuLoading\" />\n\t\t\t\t<DotsHorizontal v-else :size=\"20\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<NcActions v-else-if=\"hasMenu\"\n\t\t\tforce-menu\n\t\t\tmanual-open\n\t\t\ttype=\"tertiary-no-background\"\n\t\t\t:container=\"menuContainer\"\n\t\t\t:open.sync=\"contactsMenuOpenState\"\n\t\t\t:aria-label=\"avatarAriaLabel\"\n\t\t\t:title=\"tooltip\"\n\t\t\t@click=\"toggleMenu\">\n\t\t\t<NcActionLink v-for=\"(item, key) in menu\"\n\t\t\t\t:key=\"key\"\n\t\t\t\t:href=\"item.href\"\n\t\t\t\t:icon=\"item.icon\">\n\t\t\t\t{{ item.text }}\n\t\t\t</NcActionLink>\n\t\t\t<template v-if=\"contactsMenuLoading\" #icon>\n\t\t\t\t<NcLoadingIcon />\n\t\t\t</template>\n\t\t</NcActions>\n\n\t\t<!-- Avatar status -->\n\t\t<span v-if=\"showUserStatusIconOnAvatar\" class=\"avatardiv__user-status avatardiv__user-status--icon\">\n\t\t\t{{ userStatus.icon }}\n\t\t</span>\n\t\t<NcUserStatusIcon v-else-if=\"canDisplayUserStatus\"\n\t\t\tclass=\"avatardiv__user-status\"\n\t\t\t:status=\"userStatus.status\"\n\t\t\t:aria-hidden=\"String(hasMenu)\" />\n\n\t\t<!-- Show the letter if no avatar nor icon class -->\n\t\t<span v-if=\"showInitials\"\n\t\t\t:style=\"initialsWrapperStyle\"\n\t\t\tclass=\"avatardiv__initials-wrapper\">\n\t\t\t<span :style=\"initialsStyle\" class=\"avatardiv__initials\">\n\t\t\t\t{{ initials }}\n\t\t\t</span>\n\t\t</span>\n\t</span>\n</template>\n\n<script>\nimport NcActions from '../NcActions/index.js'\nimport NcActionLink from '../NcActionLink/index.js'\nimport NcButton from '../NcButton/index.js'\nimport NcLoadingIcon from '../NcLoadingIcon/index.js'\nimport NcUserStatusIcon from '../NcUserStatusIcon/index.js'\nimport usernameToColor from '../../functions/usernameToColor/index.js'\nimport { getUserStatusText } from '../../utils/UserStatus.ts'\nimport { userStatus } from '../../mixins/index.js'\nimport { t } from '../../l10n.js'\n\nimport axios from '@nextcloud/axios'\nimport DotsHorizontal from 'vue-material-design-icons/DotsHorizontal.vue'\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport { getBuilder } from '@nextcloud/browser-storage'\nimport { generateUrl } from '@nextcloud/router'\nimport { vOnClickOutside as ClickOutside } from '@vueuse/components'\n\nconst browserStorage = getBuilder('nextcloud').persist().build()\n\n/**\n * @param {string} userId The id of the user\n */\nfunction getUserHasAvatar(userId) {\n\tconst flag = browserStorage.getItem('user-has-avatar.' + userId)\n\tif (typeof flag === 'string') {\n\t\treturn Boolean(flag)\n\t}\n\treturn null\n}\n\n/**\n * @param {string} userId The id of the user\n * @param {boolean} flag Has the user an avatar\n */\nfunction setUserHasAvatar(userId, flag) {\n\tif (userId) {\n\t\tbrowserStorage.setItem('user-has-avatar.' + userId, flag)\n\t}\n}\n\nexport default {\n\tname: 'NcAvatar',\n\n\tdirectives: {\n\t\tClickOutside,\n\t},\n\tcomponents: {\n\t\tDotsHorizontal,\n\t\tNcActions,\n\t\tNcActionLink,\n\t\tNcButton,\n\t\tNcLoadingIcon,\n\t\tNcUserStatusIcon,\n\t},\n\tmixins: [userStatus],\n\tprops: {\n\t\t/**\n\t\t * Set a custom url to the avatar image\n\t\t * either the url, user or displayName property must be defined\n\t\t */\n\t\turl: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Set a css icon-class for an icon to be used instead of the avatar.\n\t\t */\n\t\ticonClass: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Set the user id to fetch the avatar\n\t\t * either the url, user or displayName property must be defined\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 * Whether or not to display the user-status\n\t\t */\n\t\tshowUserStatus: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\t/**\n\t\t * Whether or not to the status-icon should be used instead of online/away\n\t\t */\n\t\tshowUserStatusCompact: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\t/**\n\t\t * When the user status was preloaded via another source it can be handed in with this property to save the request.\n\t\t * If this property is not set the status will be fetched automatically.\n\t\t * If a preloaded no-status is available provide this object with properties \"status\", \"icon\" and \"message\" set to null.\n\t\t */\n\t\tpreloadedUserStatus: {\n\t\t\ttype: Object,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Is the user a guest user (then we have to user a different endpoint)\n\t\t */\n\t\tisGuest: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Set a display name that will be rendered as a tooltip\n\t\t * either the url, user or displayName property must be defined\n\t\t * specify just the displayname to generate a placeholder avatar without\n\t\t * trying to fetch the avatar based on the user id\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 * Set a size in px for the rendered avatar\n\t\t */\n\t\tsize: {\n\t\t\ttype: Number,\n\t\t\tdefault: 32,\n\t\t},\n\t\t/**\n\t\t * Placeholder avatars will be automatically generated when this is set to true\n\t\t */\n\t\tallowPlaceholder: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\t/**\n\t\t * Disable the tooltip\n\t\t */\n\t\tdisableTooltip: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Disable the menu\n\t\t */\n\t\tdisableMenu: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Declares a custom tooltip when not null\n\t\t * Fallback will be the displayName\n\t\t *\n\t\t * requires disableTooltip not to be set to true\n\t\t */\n\t\ttooltipMessage: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Declares username is not a user's name, when true.\n\t\t * Prevents loading user's avatar from server and forces generating colored initials,\n\t\t * i.e. if the user is a group\n\t\t */\n\t\tisNoUser: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Selector for the popover menu container\n\t\t */\n\t\tmenuContainer: {\n\t\t\ttype: [String, Object, Element, Boolean],\n\t\t\tdefault: 'body',\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tavatarUrlLoaded: null,\n\t\t\tavatarSrcSetLoaded: null,\n\t\t\tuserDoesNotExist: false,\n\t\t\tisAvatarLoaded: false,\n\t\t\tisMenuLoaded: false,\n\t\t\tcontactsMenuLoading: false,\n\t\t\tcontactsMenuActions: [],\n\t\t\tcontactsMenuOpenState: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tavatarAriaLabel() {\n\t\t\t// aria-label is only allowed on interactive elements\n\t\t\tif (!this.hasMenu) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (this.canDisplayUserStatus || this.showUserStatusIconOnAvatar) {\n\t\t\t\treturn t('Avatar of {displayName}, {status}', { displayName: this.displayName ?? this.user, status: getUserStatusText(this.userStatus.status) })\n\t\t\t}\n\t\t\treturn t('Avatar of {displayName}', { displayName: this.displayName ?? this.user })\n\t\t},\n\t\tcanDisplayUserStatus() {\n\t\t\treturn this.showUserStatus\n\t\t\t\t&& this.hasStatus\n\t\t\t\t&& ['online', 'away', 'busy', 'dnd'].includes(this.userStatus.status)\n\t\t},\n\t\tshowUserStatusIconOnAvatar() {\n\t\t\treturn this.showUserStatus\n\t\t\t\t&& this.showUserStatusCompact\n\t\t\t\t&& this.hasStatus\n\t\t\t\t&& this.userStatus.status !== 'dnd'\n\t\t\t\t&& this.userStatus.icon\n\t\t},\n\t\t/**\n\t\t * The user identifier, either the display name if set or the user property\n\t\t * If both properties are not set an empty string is returned\n\t\t */\n\t\tuserIdentifier() {\n\t\t\tif (this.isDisplayNameDefined) {\n\t\t\t\treturn this.displayName\n\t\t\t}\n\t\t\tif (this.isUserDefined) {\n\t\t\t\treturn this.user\n\t\t\t}\n\t\t\treturn ''\n\t\t},\n\t\tisUserDefined() {\n\t\t\treturn typeof this.user !== 'undefined'\n\t\t},\n\t\tisDisplayNameDefined() {\n\t\t\treturn typeof this.displayName !== 'undefined'\n\t\t},\n\t\tisUrlDefined() {\n\t\t\treturn typeof this.url !== 'undefined'\n\t\t},\n\t\thasMenu() {\n\t\t\tif (this.disableMenu) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif (this.isMenuLoaded) {\n\t\t\t\treturn this.menu.length > 0\n\t\t\t}\n\t\t\treturn !(this.user === getCurrentUser()?.uid || this.userDoesNotExist || this.url)\n\t\t},\n\n\t\t/**\n\t\t * True if initials should be shown as the user icon fallback\n\t\t */\n\t\tshowInitials() {\n\t\t\treturn this.allowPlaceholder && this.userDoesNotExist && !(this.iconClass || this.$slots.icon)\n\t\t},\n\n\t\tavatarStyle() {\n\t\t\tconst style = {\n\t\t\t\t'--size': this.size + 'px',\n\t\t\t\tlineHeight: this.size + 'px',\n\t\t\t\tfontSize: Math.round(this.size * 0.45) + 'px',\n\t\t\t}\n\t\t\treturn style\n\t\t},\n\t\tinitialsWrapperStyle() {\n\t\t\tconst { r, g, b } = usernameToColor(this.userIdentifier)\n\t\t\treturn {\n\t\t\t\tbackgroundColor: `rgba(${r}, ${g}, ${b}, 0.1)`,\n\t\t\t}\n\t\t},\n\t\tinitialsStyle() {\n\t\t\tconst { r, g, b } = usernameToColor(this.userIdentifier)\n\t\t\treturn {\n\t\t\t\tcolor: `rgb(${r}, ${g}, ${b})`,\n\t\t\t}\n\t\t},\n\t\ttooltip() {\n\t\t\tif (this.disableTooltip) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif (this.tooltipMessage) {\n\t\t\t\treturn this.tooltipMessage\n\t\t\t}\n\n\t\t\treturn this.displayName\n\t\t},\n\n\t\t/**\n\t\t * Get the (max. two) initials of the user as uppcase string\n\t\t */\n\t\tinitials() {\n\t\t\tlet initials = '?'\n\t\t\tif (this.showInitials) {\n\t\t\t\tconst user = this.userIdentifier.trim()\n\t\t\t\tif (user === '') {\n\t\t\t\t\treturn '?'\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Filtered user name, without special characters so only letters and numbers are allowed (prevent e.g. '(' as an initial)\n\t\t\t\t * \\p{L}: Letters of all languages\n\t\t\t\t * \\p{N}: Numbers of all languages\n\t\t\t\t * \\s: White space for breaking the string\n\t\t\t\t * @type {string}\n\t\t\t\t */\n\t\t\t\tconst filtered = user.match(/[\\p{L}\\p{N}\\s]/gu).join('')\n\t\t\t\tconst idx = filtered.lastIndexOf(' ')\n\t\t\t\tinitials = String.fromCodePoint(filtered.codePointAt(0))\n\t\t\t\tif (idx !== -1) {\n\t\t\t\t\tinitials = initials.concat(String.fromCodePoint(filtered.codePointAt(idx + 1)))\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn initials.toLocaleUpperCase()\n\t\t},\n\t\tmenu() {\n\t\t\tconst actions = this.contactsMenuActions.map((item) => {\n\t\t\t\treturn {\n\t\t\t\t\thref: item.hyperlink,\n\t\t\t\t\ticon: item.icon,\n\t\t\t\t\ttext: item.title,\n\t\t\t\t}\n\t\t\t})\n\n\t\t\t/**\n\t\t\t * @param {string} html The HTML to escape\n\t\t\t */\n\t\t\tfunction escape(html) {\n\t\t\t\tconst text = document.createTextNode(html)\n\t\t\t\tconst p = document.createElement('p')\n\t\t\t\tp.appendChild(text)\n\t\t\t\treturn p.innerHTML\n\t\t\t}\n\n\t\t\tif (this.showUserStatus && (this.userStatus.icon || this.userStatus.message)) {\n\t\t\t\treturn [{\n\t\t\t\t\thref: '#',\n\t\t\t\t\ticon: `data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><text x='0' y='14' font-size='14'>${escape(this.userStatus.icon)}</text></svg>`,\n\t\t\t\t\ttext: `${this.userStatus.message}`,\n\t\t\t\t}].concat(actions)\n\t\t\t}\n\n\t\t\treturn actions\n\t\t},\n\t},\n\n\twatch: {\n\t\turl() {\n\t\t\tthis.userDoesNotExist = false\n\t\t\tthis.loadAvatarUrl()\n\t\t},\n\t\tuser() {\n\t\t\tthis.userDoesNotExist = false\n\t\t\tthis.isMenuLoaded = false\n\t\t\tthis.loadAvatarUrl()\n\t\t},\n\t},\n\n\tmounted() {\n\t\tthis.loadAvatarUrl()\n\t\tsubscribe('settings:avatar:updated', this.loadAvatarUrl)\n\t\tsubscribe('settings:display-name:updated', this.loadAvatarUrl)\n\t\tif (this.showUserStatus && this.user && !this.isNoUser) {\n\t\t\tif (!this.preloadedUserStatus) {\n\t\t\t\tthis.fetchUserStatus(this.user)\n\t\t\t} else {\n\t\t\t\tthis.userStatus.status = this.preloadedUserStatus.status || ''\n\t\t\t\tthis.userStatus.message = this.preloadedUserStatus.message || ''\n\t\t\t\tthis.userStatus.icon = this.preloadedUserStatus.icon || ''\n\t\t\t\tthis.hasStatus = this.preloadedUserStatus.status !== null\n\t\t\t}\n\t\t\tsubscribe('user_status:status.updated', this.handleUserStatusUpdated)\n\t\t}\n\t},\n\n\tbeforeDestroy() {\n\t\tunsubscribe('settings:avatar:updated', this.loadAvatarUrl)\n\t\tunsubscribe('settings:display-name:updated', this.loadAvatarUrl)\n\t\tif (this.showUserStatus && this.user && !this.isNoUser) {\n\t\t\tunsubscribe('user_status:status.updated', this.handleUserStatusUpdated)\n\t\t}\n\t},\n\n\tmethods: {\n\t\tt,\n\t\thandleUserStatusUpdated(state) {\n\t\t\tif (this.user === state.userId) {\n\t\t\t\tthis.userStatus = {\n\t\t\t\t\tstatus: state.status,\n\t\t\t\t\ticon: state.icon,\n\t\t\t\t\tmessage: state.message,\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Toggle the popover menu on click or enter\n\t\t * @param {KeyboardEvent|MouseEvent} event the UI event\n\t\t */\n\t\tasync toggleMenu(event) {\n\t\t\tif (event.type === 'keydown' && event.key !== 'Enter') {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (!this.contactsMenuOpenState) {\n\t\t\t\tawait this.fetchContactsMenu()\n\t\t\t}\n\t\t\tthis.contactsMenuOpenState = !this.contactsMenuOpenState\n\t\t},\n\t\tcloseMenu() {\n\t\t\tthis.contactsMenuOpenState = false\n\t\t},\n\t\tasync fetchContactsMenu() {\n\t\t\tthis.contactsMenuLoading = true\n\t\t\ttry {\n\t\t\t\tconst user = encodeURIComponent(this.user)\n\t\t\t\tconst { data } = await axios.post(generateUrl('contactsmenu/findOne'), `shareType=0&shareWith=${user}`)\n\t\t\t\tthis.contactsMenuActions = data.topAction ? [data.topAction].concat(data.actions) : data.actions\n\t\t\t} catch (e) {\n\t\t\t\tthis.contactsMenuOpenState = false\n\t\t\t}\n\t\t\tthis.contactsMenuLoading = false\n\t\t\tthis.isMenuLoaded = true\n\t\t},\n\n\t\t/**\n\t\t * Handle avatar loading if user or url defined\n\t\t */\n\t\tloadAvatarUrl() {\n\t\t\tthis.isAvatarLoaded = false\n\n\t\t\t/** Only run avatar image loading if either user or url property is defined */\n\t\t\tif (!this.isUrlDefined && (!this.isUserDefined || this.isNoUser)) {\n\t\t\t\tthis.isAvatarLoaded = true\n\t\t\t\tthis.userDoesNotExist = true\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Directly use the url if defined\n\t\t\tif (this.isUrlDefined) {\n\t\t\t\tthis.updateImageIfValid(this.url)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (this.size <= 64) {\n\t\t\t\tconst avatarUrl = this.avatarUrlGenerator(this.user, 64)\n\t\t\t\tconst srcset = [\n\t\t\t\t\tavatarUrl + ' 1x',\n\t\t\t\t\tthis.avatarUrlGenerator(this.user, 512) + ' 8x',\n\t\t\t\t].join(', ')\n\n\t\t\t\tthis.updateImageIfValid(avatarUrl, srcset)\n\t\t\t} else {\n\t\t\t\tconst avatarUrl = this.avatarUrlGenerator(this.user, 512)\n\t\t\t\tthis.updateImageIfValid(avatarUrl)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Generate an avatar url from the server's avatar endpoint\n\t\t *\n\t\t * @param {string} user the user id\n\t\t * @param {number} size the desired size\n\t\t * @return {string}\n\t\t */\n\t\tavatarUrlGenerator(user, size) {\n\t\t\tconst darkTheme = window.getComputedStyle(document.body)\n\t\t\t\t.getPropertyValue('--background-invert-if-dark') === 'invert(100%)'\n\t\t\tlet url = '/avatar/{user}/{size}' + (darkTheme ? '/dark' : '')\n\t\t\tif (this.isGuest) {\n\t\t\t\turl = '/avatar/guest/{user}/{size}' + (darkTheme ? '/dark' : '')\n\t\t\t}\n\n\t\t\tlet avatarUrl = generateUrl(\n\t\t\t\turl,\n\t\t\t\t{\n\t\t\t\t\tuser,\n\t\t\t\t\tsize,\n\t\t\t\t})\n\n\t\t\t// eslint-disable-next-line camelcase\n\t\t\tif (user === getCurrentUser()?.uid && typeof oc_userconfig !== 'undefined') {\n\t\t\t\tavatarUrl += '?v=' + oc_userconfig.avatar.version\n\t\t\t}\n\n\t\t\treturn avatarUrl\n\t\t},\n\n\t\t/**\n\t\t * Check if the provided url is valid and update Avatar if so\n\t\t *\n\t\t * @param {string} url the avatar url\n\t\t * @param {Array} srcset the avatar srcset\n\t\t */\n\t\tupdateImageIfValid(url, srcset = null) {\n\t\t\t// skip loading\n\t\t\tconst userHasAvatar = getUserHasAvatar(this.user)\n\t\t\tif (this.isUserDefined && typeof userHasAvatar === 'boolean') {\n\t\t\t\tthis.isAvatarLoaded = true\n\t\t\t\tthis.avatarUrlLoaded = url\n\t\t\t\tif (srcset) {\n\t\t\t\t\tthis.avatarSrcSetLoaded = srcset\n\t\t\t\t}\n\t\t\t\tif (userHasAvatar === false) {\n\t\t\t\t\tthis.userDoesNotExist = true\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst img = new Image()\n\t\t\timg.onload = () => {\n\t\t\t\tthis.avatarUrlLoaded = url\n\t\t\t\tif (srcset) {\n\t\t\t\t\tthis.avatarSrcSetLoaded = srcset\n\t\t\t\t}\n\t\t\t\tthis.isAvatarLoaded = true\n\t\t\t\t// re-get to avoid concurrent access\n\t\t\t\tsetUserHasAvatar(this.user, true)\n\t\t\t}\n\t\t\timg.onerror = () => {\n\t\t\t\tconsole.debug('Invalid avatar url', url)\n\t\t\t\t// Avatar is invalid, reset\n\t\t\t\tthis.avatarUrlLoaded = null\n\t\t\t\tthis.avatarSrcSetLoaded = null\n\n\t\t\t\tthis.userDoesNotExist = true\n\t\t\t\tthis.isAvatarLoaded = false\n\t\t\t\tsetUserHasAvatar(this.user, false)\n\t\t\t}\n\n\t\t\tif (srcset) {\n\t\t\t\timg.srcset = srcset\n\t\t\t}\n\t\t\timg.src = url\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.avatardiv {\n\tposition: relative;\n\tdisplay: inline-block;\n\twidth: var(--size);\n\theight: var(--size);\n\n\t&--unknown {\n\t\tposition: relative;\n\t\tbackground-color: var(--color-main-background);\n\t\twhite-space: normal;\n\t}\n\n\t&:not(&--unknown) {\n\t\t// White/black background for avatars with transparency\n\t\tbackground-color: var(--color-main-background) !important;\n\t\tbox-shadow: 0 0 5px rgba(0, 0, 0, 0.05) inset;\n\t}\n\n\t&--with-menu {\n\t\tcursor: pointer;\n\t\t.action-item {\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t}\n\t\t:deep(.action-item__menutoggle) {\n\t\t\tcursor: pointer;\n\t\t\topacity: 0;\n\t\t}\n\t\t&:focus-within,\n\t\t&:hover,\n\t\t&#{&}-loading {\n\t\t\t:deep(.action-item__menutoggle) {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t\timg {\n\t\t\t\topacity: 0.3;\n\t\t\t}\n\t\t}\n\t\t:deep(.action-item__menutoggle),\n\t\timg {\n\t\t\ttransition: opacity var(--animation-quick);\n\t\t}\n\t\t:deep() {\n\t\t\t.button-vue,\n\t\t\t.button-vue__icon {\n\t\t\t\theight: var(--size);\n\t\t\t\tmin-height: var(--size);\n\t\t\t\twidth: var(--size) !important;\n\t\t\t\tmin-width: var(--size);\n\t\t\t}\n\t\t}\n\t}\n\n\t.avatardiv__initials-wrapper {\n\t\tdisplay: block;\n\t\theight: var(--size);\n\t\twidth: var(--size);\n\t\tbackground-color: var(--color-main-background);\n\t\tborder-radius: 50%;\n\n\t\t.avatardiv__initials {\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\tdisplay: block;\n\t\t\twidth: 100%;\n\t\t\ttext-align: center;\n\t\t\tfont-weight: normal;\n\t\t}\n\t}\n\n\timg {\n\t\t// Cover entire area\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\t// Keep ratio\n\t\tobject-fit: cover;\n\t}\n\n\t.material-design-icon {\n\t\twidth: var(--size);\n\t\theight: var(--size);\n\t}\n\n\t.avatardiv__user-status {\n\t\tbox-sizing: border-box;\n\t\tposition: absolute;\n\t\tright: -4px;\n\t\tbottom: -4px;\n\t\tmin-height: 18px;\n\t\tmin-width: 18px;\n\t\tmax-height: 18px;\n\t\tmax-width: 18px;\n\t\theight: 40%;\n\t\twidth: 40%;\n\t\tline-height: 15px;\n\t\tfont-size: var(--default-font-size);\n\t\tborder: 2px solid var(--color-main-background);\n\t\tbackground-color: var(--color-main-background);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-size: 16px;\n\t\tbackground-position: center;\n\t\tborder-radius: 50%;\n\n\t\t.acli:hover & {\n\t\t\tborder-color: var(--color-background-hover);\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\t\t.acli.active & {\n\t\t\tborder-color: var(--color-primary-element-light);\n\t\t\tbackground-color: var(--color-primary-element-light);\n\t\t}\n\n\t\t&--icon {\n\t\t\tborder: none;\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\n\t.popovermenu-wrapper {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t}\n}\n\n.avatar-class-icon {\n\tdisplay: block;\n\tborder-radius: 50%;\n\tbackground-color: var(--color-background-darker);\n\theight: 100%;\n}\n\n</style>\n"],"names":["userStatus","userId","capabilities","getCapabilities","getCurrentUser","data","axios","generateOcsUrl","status","message","icon","e","browserStorage","getBuilder","getUserHasAvatar","flag","setUserHasAvatar","_sfc_main","ClickOutside","DotsHorizontal","NcActions","NcActionLink","NcButton","NcLoadingIcon","NcUserStatusIcon","t","getUserStatusText","r","g","b","usernameToColor","initials","user","filtered","idx","actions","item","escape","html","text","p","subscribe","unsubscribe","state","event","generateUrl","avatarUrl","srcset","size","darkTheme","url","userHasAvatar","img"],"mappings":"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"}
|