@nextcloud/vue 3.10.2 → 4.1.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 +114 -19
- package/README.md +9 -10
- package/dist/Components/ActionButton.js +24 -3
- package/dist/Components/ActionButton.js.map +1 -1
- package/dist/Components/ActionCaption.js +23 -0
- package/dist/Components/ActionCaption.js.map +1 -0
- package/dist/Components/ActionCheckbox.js +24 -3
- package/dist/Components/ActionCheckbox.js.map +1 -1
- package/dist/Components/ActionInput.js +124 -21
- package/dist/Components/ActionInput.js.map +1 -1
- package/dist/Components/ActionLink.js +24 -3
- package/dist/Components/ActionLink.js.map +1 -1
- package/dist/Components/ActionRadio.js +24 -3
- package/dist/Components/ActionRadio.js.map +1 -1
- package/dist/Components/ActionRouter.js +23 -2
- package/dist/Components/ActionRouter.js.map +1 -1
- package/dist/Components/ActionSeparator.js +1 -1
- package/dist/Components/ActionSeparator.js.map +1 -1
- package/dist/Components/ActionText.js +23 -2
- package/dist/Components/ActionText.js.map +1 -1
- package/dist/Components/ActionTextEditable.js +45 -3
- package/dist/Components/ActionTextEditable.js.map +1 -1
- package/dist/Components/Actions.js +25 -4
- package/dist/Components/Actions.js.map +1 -1
- package/dist/Components/AppContent.js +21 -1
- package/dist/Components/AppContent.js.map +1 -1
- package/dist/Components/AppContentDetails.js +1 -1
- package/dist/Components/AppContentDetails.js.map +1 -1
- package/dist/Components/AppContentList.js +1 -1
- package/dist/Components/AppContentList.js.map +1 -1
- package/dist/Components/AppNavigation.js +109 -2
- package/dist/Components/AppNavigation.js.map +1 -1
- package/dist/Components/AppNavigationCaption.js +66 -1
- package/dist/Components/AppNavigationCaption.js.map +1 -1
- package/dist/Components/AppNavigationCounter.js +2 -2
- package/dist/Components/AppNavigationCounter.js.map +1 -1
- package/dist/Components/AppNavigationIconBullet.js +2 -2
- package/dist/Components/AppNavigationIconBullet.js.map +1 -1
- package/dist/Components/AppNavigationItem.js +49 -7
- package/dist/Components/AppNavigationItem.js.map +1 -1
- package/dist/Components/AppNavigationNew.js +1 -1
- package/dist/Components/AppNavigationNew.js.map +1 -1
- package/dist/Components/AppNavigationNewItem.js +2 -2
- package/dist/Components/AppNavigationNewItem.js.map +1 -1
- package/dist/Components/AppNavigationSettings.js +5 -5
- package/dist/Components/AppNavigationSettings.js.map +1 -1
- package/dist/Components/AppNavigationSpacer.js +1 -1
- package/dist/Components/AppNavigationSpacer.js.map +1 -1
- package/dist/Components/AppNavigationToggle.js +109 -2
- package/dist/Components/AppNavigationToggle.js.map +1 -1
- package/dist/Components/AppSettingsDialog.js +64 -22
- package/dist/Components/AppSettingsDialog.js.map +1 -1
- package/dist/Components/AppSettingsSection.js +1 -1
- package/dist/Components/AppSettingsSection.js.map +1 -1
- package/dist/Components/AppSidebar.js +38 -17
- package/dist/Components/AppSidebar.js.map +1 -1
- package/dist/Components/AppSidebarTab.js +1 -1
- package/dist/Components/AppSidebarTab.js.map +1 -1
- package/dist/Components/Avatar.js +9 -10
- package/dist/Components/Avatar.js.map +1 -1
- package/dist/Components/Breadcrumb.js +33 -12
- package/dist/Components/Breadcrumb.js.map +1 -1
- package/dist/Components/Breadcrumbs.js +59 -17
- package/dist/Components/Breadcrumbs.js.map +1 -1
- package/dist/Components/CheckboxRadioSwitch.js +44 -0
- package/dist/Components/CheckboxRadioSwitch.js.map +1 -0
- package/dist/Components/ColorPicker.js +6 -7
- package/dist/Components/ColorPicker.js.map +1 -1
- package/dist/Components/Content.js +2 -2
- package/dist/Components/Content.js.map +1 -1
- package/dist/Components/CounterBubble.js +23 -0
- package/dist/Components/CounterBubble.js.map +1 -0
- package/dist/Components/DatetimePicker.js +341 -3
- package/dist/Components/DatetimePicker.js.map +1 -1
- package/dist/Components/EmojiPicker.js +14 -14
- package/dist/Components/EmojiPicker.js.map +1 -1
- package/dist/Components/EmptyContent.js +2 -2
- package/dist/Components/EmptyContent.js.map +1 -1
- package/dist/Components/Highlight.js +3 -3
- package/dist/Components/Highlight.js.map +1 -1
- package/dist/Components/ListItem.js +130 -0
- package/dist/Components/ListItem.js.map +1 -0
- package/dist/Components/ListItemIcon.js +20 -21
- package/dist/Components/ListItemIcon.js.map +1 -1
- package/dist/Components/Modal.js +53 -11
- package/dist/Components/Modal.js.map +1 -1
- package/dist/Components/Multiselect.js +22 -23
- package/dist/Components/Multiselect.js.map +1 -1
- package/dist/Components/MultiselectTags.js +24 -25
- package/dist/Components/MultiselectTags.js.map +1 -1
- package/dist/Components/Popover.js +2 -2
- package/dist/Components/Popover.js.map +1 -1
- package/dist/Components/PopoverMenu.js +1 -1
- package/dist/Components/PopoverMenu.js.map +1 -1
- package/dist/Components/ProgressBar.js +2 -2
- package/dist/Components/ProgressBar.js.map +1 -1
- package/dist/Components/RichContenteditable.js +2 -2
- package/dist/Components/RichContenteditable.js.map +1 -1
- package/dist/Components/SettingsInputText.js +22 -1
- package/dist/Components/SettingsInputText.js.map +1 -1
- package/dist/Components/SettingsSection.js +2 -2
- package/dist/Components/SettingsSection.js.map +1 -1
- package/dist/Components/SettingsSelectGroup.js +41 -21
- package/dist/Components/SettingsSelectGroup.js.map +1 -1
- package/dist/Components/TimezonePicker.js +340 -0
- package/dist/Components/TimezonePicker.js.map +1 -0
- package/dist/Components/UserBubble.js +35 -36
- package/dist/Components/UserBubble.js.map +1 -1
- package/dist/Directives/Focus.js +1 -1
- package/dist/Directives/Focus.js.map +1 -1
- package/dist/Directives/Linkify.js +1 -1
- package/dist/Directives/Linkify.js.map +1 -1
- package/dist/Directives/Tooltip.js +2 -2
- package/dist/Directives/Tooltip.js.map +1 -1
- package/dist/Functions/usernameToColor.js +2 -3
- package/dist/Functions/usernameToColor.js.map +1 -1
- package/dist/Mixins/excludeClickOutsideClasses.js +2 -2
- package/dist/Mixins/excludeClickOutsideClasses.js.map +1 -1
- package/dist/Mixins/isFullscreen.js +1 -1
- package/dist/Mixins/isFullscreen.js.map +1 -1
- package/dist/Mixins/isMobile.js +1 -1
- package/dist/Mixins/isMobile.js.map +1 -1
- package/dist/Mixins/richEditor.js +1 -1
- package/dist/Mixins/richEditor.js.map +1 -1
- package/dist/ncvuecomponents.js +276 -69
- package/dist/ncvuecomponents.js.map +1 -1
- package/package.json +28 -43
- package/src/assets/action.scss +0 -132
- package/src/assets/iconfont/README.md +0 -30
- package/src/assets/iconfont/arrow-left-double.svg +0 -3
- package/src/assets/iconfont/arrow-left.svg +0 -3
- package/src/assets/iconfont/arrow-right-double.svg +0 -3
- package/src/assets/iconfont/arrow-right.svg +0 -3
- package/src/assets/iconfont/breadcrumb.svg +0 -1
- package/src/assets/iconfont/checkmark.svg +0 -1
- package/src/assets/iconfont/close.svg +0 -1
- package/src/assets/iconfont/confirm.svg +0 -1
- package/src/assets/iconfont/info.svg +0 -1
- package/src/assets/iconfont/menu.svg +0 -1
- package/src/assets/iconfont/more.svg +0 -1
- package/src/assets/iconfont/pause.svg +0 -1
- package/src/assets/iconfont/play.svg +0 -1
- package/src/assets/iconfont/triangle-s.svg +0 -1
- package/src/assets/iconfont/user-status-away.svg +0 -2
- package/src/assets/iconfont/user-status-dnd.svg +0 -2
- package/src/assets/iconfont/user-status-invisible.svg +0 -2
- package/src/assets/iconfont/user-status-online.svg +0 -2
- package/src/assets/inputs.scss +0 -104
- package/src/assets/variables.scss +0 -57
- package/src/components/ActionButton/ActionButton.vue +0 -160
- package/src/components/ActionButton/index.js +0 -24
- package/src/components/ActionCheckbox/ActionCheckbox.vue +0 -220
- package/src/components/ActionCheckbox/index.js +0 -24
- package/src/components/ActionInput/ActionInput.vue +0 -418
- package/src/components/ActionInput/index.js +0 -24
- package/src/components/ActionLink/ActionLink.vue +0 -132
- package/src/components/ActionLink/index.js +0 -24
- package/src/components/ActionRadio/ActionRadio.vue +0 -219
- package/src/components/ActionRadio/index.js +0 -24
- package/src/components/ActionRouter/ActionRouter.vue +0 -100
- package/src/components/ActionRouter/index.js +0 -24
- package/src/components/ActionSeparator/ActionSeparator.vue +0 -43
- package/src/components/ActionSeparator/index.js +0 -24
- package/src/components/ActionText/ActionText.vue +0 -87
- package/src/components/ActionText/index.js +0 -24
- package/src/components/ActionTextEditable/ActionTextEditable.vue +0 -306
- package/src/components/ActionTextEditable/index.js +0 -24
- package/src/components/Actions/Actions.vue +0 -764
- package/src/components/Actions/index.js +0 -24
- package/src/components/AppContent/AppContent.vue +0 -93
- package/src/components/AppContent/index.js +0 -23
- package/src/components/AppContentDetails/AppContentDetails.vue +0 -34
- package/src/components/AppContentDetails/index.js +0 -23
- package/src/components/AppContentList/AppContentList.vue +0 -44
- package/src/components/AppContentList/index.js +0 -23
- package/src/components/AppNavigation/AppNavigation.vue +0 -190
- package/src/components/AppNavigation/index.js +0 -23
- package/src/components/AppNavigationCaption/AppNavigationCaption.vue +0 -39
- package/src/components/AppNavigationCaption/index.js +0 -3
- package/src/components/AppNavigationCounter/AppNavigationCounter.vue +0 -82
- package/src/components/AppNavigationCounter/index.js +0 -25
- package/src/components/AppNavigationIconBullet/AppNavigationIconBullet.vue +0 -95
- package/src/components/AppNavigationIconBullet/index.js +0 -24
- package/src/components/AppNavigationItem/AppNavigationIconCollapsible.vue +0 -90
- package/src/components/AppNavigationItem/AppNavigationItem.vue +0 -629
- package/src/components/AppNavigationItem/InputConfirmCancel.vue +0 -134
- package/src/components/AppNavigationItem/index.js +0 -24
- package/src/components/AppNavigationNew/AppNavigationNew.vue +0 -76
- package/src/components/AppNavigationNew/index.js +0 -23
- package/src/components/AppNavigationNewItem/AppNavigationNewItem.vue +0 -165
- package/src/components/AppNavigationNewItem/index.js +0 -24
- package/src/components/AppNavigationSettings/AppNavigationSettings.vue +0 -105
- package/src/components/AppNavigationSettings/index.js +0 -23
- package/src/components/AppNavigationSpacer/AppNavigationSpacer.vue +0 -39
- package/src/components/AppNavigationSpacer/index.js +0 -23
- package/src/components/AppNavigationToggle/AppNavigationToggle.vue +0 -78
- package/src/components/AppNavigationToggle/index.js +0 -24
- package/src/components/AppSettingsDialog/AppSettingsDialog.vue +0 -331
- package/src/components/AppSettingsDialog/index.js +0 -25
- package/src/components/AppSettingsSection/AppSettingsSection.vue +0 -64
- package/src/components/AppSettingsSection/index.js +0 -25
- package/src/components/AppSidebar/AppSidebar.vue +0 -802
- package/src/components/AppSidebar/AppSidebarTabs.vue +0 -348
- package/src/components/AppSidebar/index.js +0 -23
- package/src/components/AppSidebarTab/AppSidebarTab.vue +0 -103
- package/src/components/AppSidebarTab/index.js +0 -23
- package/src/components/Avatar/Avatar.vue +0 -758
- package/src/components/Avatar/index.js +0 -25
- package/src/components/Breadcrumb/Breadcrumb.vue +0 -262
- package/src/components/Breadcrumb/index.js +0 -25
- package/src/components/Breadcrumbs/Breadcrumbs.vue +0 -537
- package/src/components/Breadcrumbs/index.js +0 -25
- package/src/components/ColorPicker/ColorPicker.vue +0 -380
- package/src/components/ColorPicker/index.js +0 -25
- package/src/components/Content/Content.vue +0 -77
- package/src/components/Content/index.js +0 -23
- package/src/components/DatetimePicker/DatetimePicker.vue +0 -195
- package/src/components/DatetimePicker/index.js +0 -28
- package/src/components/DatetimePicker/index.scss +0 -405
- package/src/components/EmojiPicker/EmojiPicker.vue +0 -302
- package/src/components/EmojiPicker/index.js +0 -23
- package/src/components/EmptyContent/EmptyContent.vue +0 -120
- package/src/components/EmptyContent/index.js +0 -24
- package/src/components/Highlight/Highlight.vue +0 -183
- package/src/components/Highlight/index.js +0 -25
- package/src/components/ListItemIcon/ListItemIcon.vue +0 -277
- package/src/components/ListItemIcon/index.js +0 -25
- package/src/components/Modal/Modal.vue +0 -833
- package/src/components/Modal/index.js +0 -27
- package/src/components/Multiselect/EllipsisedOption.vue +0 -141
- package/src/components/Multiselect/Multiselect.vue +0 -430
- package/src/components/Multiselect/index.js +0 -28
- package/src/components/Multiselect/index.scss +0 -290
- package/src/components/MultiselectTags/MultiselectTags.vue +0 -179
- package/src/components/MultiselectTags/api.js +0 -115
- package/src/components/MultiselectTags/index.js +0 -23
- package/src/components/Popover/Popover.vue +0 -208
- package/src/components/Popover/index.js +0 -25
- package/src/components/PopoverMenu/PopoverMenu.vue +0 -62
- package/src/components/PopoverMenu/PopoverMenuItem.vue +0 -382
- package/src/components/PopoverMenu/index.js +0 -24
- package/src/components/ProgressBar/ProgressBar.vue +0 -135
- package/src/components/ProgressBar/index.js +0 -25
- package/src/components/RichContenteditable/AutoCompleteResult.vue +0 -191
- package/src/components/RichContenteditable/MentionBubble.vue +0 -165
- package/src/components/RichContenteditable/RichContenteditable.vue +0 -517
- package/src/components/RichContenteditable/index.js +0 -25
- package/src/components/SettingsInputText/SettingsInputText.vue +0 -207
- package/src/components/SettingsInputText/index.js +0 -24
- package/src/components/SettingsSection/SettingsSection.vue +0 -151
- package/src/components/SettingsSection/index.js +0 -24
- package/src/components/SettingsSelectGroup/SettingsSelectGroup.vue +0 -149
- package/src/components/SettingsSelectGroup/index.js +0 -25
- package/src/components/UserBubble/UserBubble.vue +0 -319
- package/src/components/UserBubble/index.js +0 -25
- package/src/components/index.js +0 -110
- package/src/directives/Focus/index.js +0 -29
- package/src/directives/Linkify/index.js +0 -31
- package/src/directives/Tooltip/index.js +0 -32
- package/src/directives/Tooltip/index.scss +0 -117
- package/src/directives/index.js +0 -31
- package/src/fonts/iconfont-vue-f56d517.eot +0 -0
- package/src/fonts/iconfont-vue-f56d517.svg +0 -1
- package/src/fonts/iconfont-vue-f56d517.ttf +0 -0
- package/src/fonts/iconfont-vue-f56d517.woff +0 -0
- package/src/fonts/scss/iconfont-vue.scss +0 -115
- package/src/functions/usernameToColor/index.js +0 -25
- package/src/functions/usernameToColor/usernameToColor.js +0 -68
- package/src/index.js +0 -40
- package/src/l10n.js +0 -42
- package/src/mixins/actionGlobal.js +0 -59
- package/src/mixins/actionText.js +0 -85
- package/src/mixins/excludeClickOutsideClasses/index.js +0 -72
- package/src/mixins/index.js +0 -35
- package/src/mixins/isFullscreen/index.js +0 -46
- package/src/mixins/isMobile/index.js +0 -43
- package/src/mixins/l10n.js +0 -8
- package/src/mixins/richEditor/index.js +0 -160
- package/src/mixins/userStatus.js +0 -76
- package/src/utils/FindRanges.js +0 -47
- package/src/utils/GenColors.js +0 -79
- package/src/utils/GenRandomId.js +0 -31
- package/src/utils/GetChildren.js +0 -47
- package/src/utils/GetParent.js +0 -41
- package/src/utils/IsMobileState.js +0 -49
- package/src/utils/IsOutOfViewport.js +0 -36
- package/src/utils/ScopeComponent.js +0 -37
- package/src/utils/Timer.js +0 -61
- package/src/utils/ValidateChildren.js +0 -50
- package/src/utils/ValidateSlot.js +0 -57
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @copyright Copyright (c) 2019 Greta Doci <gretadoci@gmail.com>
|
|
3
|
-
*
|
|
4
|
-
* @author Greta Doci <gretadoci@gmail.com>
|
|
5
|
-
*
|
|
6
|
-
* @license GNU AGPL version 3 or any later version
|
|
7
|
-
*
|
|
8
|
-
* This program is free software: you can redistribute it and/or modify
|
|
9
|
-
* it under the terms of the GNU Affero General Public License as
|
|
10
|
-
* published by the Free Software Foundation, either version 3 of the
|
|
11
|
-
* License, or (at your option) any later version.
|
|
12
|
-
*
|
|
13
|
-
* This program is distributed in the hope that it will be useful,
|
|
14
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
-
* GNU Affero General Public License for more details.
|
|
17
|
-
*
|
|
18
|
-
* You should have received a copy of the GNU Affero General Public License
|
|
19
|
-
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
-
*
|
|
21
|
-
*/
|
|
22
|
-
import SettingsSelectGroup from './SettingsSelectGroup'
|
|
23
|
-
|
|
24
|
-
export default SettingsSelectGroup
|
|
25
|
-
export { SettingsSelectGroup }
|
|
@@ -1,319 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
- @copyright Copyright (c) 2019 Jonas Sulzer <jonas@violoncello.ch>
|
|
3
|
-
-
|
|
4
|
-
- @author Marco Ambrosini <marcoambrosini@pm.me>
|
|
5
|
-
- @author Jonas Sulzer <jonas@violoncello.ch>
|
|
6
|
-
-
|
|
7
|
-
- @license GNU AGPL version 3 or any later version
|
|
8
|
-
-
|
|
9
|
-
- This program is free software: you can redistribute it and/or modify
|
|
10
|
-
- it under the terms of the GNU Affero General Public License as
|
|
11
|
-
- published by the Free Software Foundation, either version 3 of the
|
|
12
|
-
- License, or (at your option) any later version.
|
|
13
|
-
-
|
|
14
|
-
- This program is distributed in the hope that it will be useful,
|
|
15
|
-
- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
-
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17
|
-
- GNU Affero General Public License for more details.
|
|
18
|
-
-
|
|
19
|
-
- You should have received a copy of the GNU Affero General Public License
|
|
20
|
-
- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
-
-->
|
|
22
|
-
|
|
23
|
-
<docs>
|
|
24
|
-
|
|
25
|
-
### General description
|
|
26
|
-
|
|
27
|
-
This component displays a user together with a small avatar in a grey bubble.
|
|
28
|
-
It's possible to use an actual user's avatar, just an image/icon as a url or an icon-class,
|
|
29
|
-
to link the bubble to e.g. a users profile
|
|
30
|
-
and to show a popover on hover with e.g. the full user name handle / email address or something else.
|
|
31
|
-
|
|
32
|
-
This component has the following slot:
|
|
33
|
-
* a default slot which is for the content of the popover (this is passed to the popover component directly).
|
|
34
|
-
|
|
35
|
-
### Examples
|
|
36
|
-
|
|
37
|
-
```vue
|
|
38
|
-
<p>
|
|
39
|
-
Some text before <UserBubble user="admin" display-name="Admin Example" :url="'/test'">@admin@foreign-host.com</UserBubble> and after the bubble.
|
|
40
|
-
<UserBubble avatar-image="icon-group" display-name="test group xyz" :primary="true">Hey there!</UserBubble>
|
|
41
|
-
</p>
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
### Example with title slot
|
|
45
|
-
|
|
46
|
-
```vue
|
|
47
|
-
<template>
|
|
48
|
-
<UserBubble
|
|
49
|
-
:margin="4"
|
|
50
|
-
:size="30"
|
|
51
|
-
display-name="Administrator"
|
|
52
|
-
user="admin">
|
|
53
|
-
<template #title>
|
|
54
|
-
<a href="#"
|
|
55
|
-
title="Remove user"
|
|
56
|
-
class="icon-close"
|
|
57
|
-
@click="alert" />
|
|
58
|
-
</template>
|
|
59
|
-
</UserBubble>
|
|
60
|
-
</template>
|
|
61
|
-
|
|
62
|
-
<style>
|
|
63
|
-
.icon-close {
|
|
64
|
-
display: block;
|
|
65
|
-
height: 100%;
|
|
66
|
-
}
|
|
67
|
-
</style>
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
</docs>
|
|
71
|
-
<template>
|
|
72
|
-
<Popover :is="isPopoverComponent"
|
|
73
|
-
trigger="hover focus"
|
|
74
|
-
:open="open"
|
|
75
|
-
class="user-bubble__wrapper"
|
|
76
|
-
@update:open="onOpenChange">
|
|
77
|
-
<!-- Main userbubble structure -->
|
|
78
|
-
<div slot="trigger"
|
|
79
|
-
v-bind="isLinkComponent"
|
|
80
|
-
class="user-bubble__content"
|
|
81
|
-
:style="styles.content"
|
|
82
|
-
:class="primary ? 'user-bubble__content--primary' : ''"
|
|
83
|
-
@click="onClick">
|
|
84
|
-
<!-- Avatar -->
|
|
85
|
-
<Avatar :url="isCustomAvatar && isAvatarUrl ? avatarImage : undefined"
|
|
86
|
-
:icon-class="isCustomAvatar && !isAvatarUrl ? avatarImage : undefined"
|
|
87
|
-
:user="user"
|
|
88
|
-
:display-name="displayName"
|
|
89
|
-
:size="size - (margin * 2)"
|
|
90
|
-
:style="styles.avatar"
|
|
91
|
-
:disable-tooltip="true"
|
|
92
|
-
:disable-menu="true"
|
|
93
|
-
v-bind="$props"
|
|
94
|
-
class="user-bubble__avatar" />
|
|
95
|
-
|
|
96
|
-
<!-- Title -->
|
|
97
|
-
<span class="user-bubble__title">
|
|
98
|
-
{{ displayName || user }}
|
|
99
|
-
</span>
|
|
100
|
-
|
|
101
|
-
<!-- @slot Optional slot just after the title -->
|
|
102
|
-
<span v-if="$slots.title" class="user-bubble__secondary">
|
|
103
|
-
<slot name="title" />
|
|
104
|
-
</span>
|
|
105
|
-
</div>
|
|
106
|
-
|
|
107
|
-
<!-- @slot Main Popover content on userbubble hover/focus -->
|
|
108
|
-
<slot />
|
|
109
|
-
</Popover>
|
|
110
|
-
</template>
|
|
111
|
-
|
|
112
|
-
<script>
|
|
113
|
-
import Popover from '../Popover'
|
|
114
|
-
import Avatar from '../Avatar'
|
|
115
|
-
|
|
116
|
-
export default {
|
|
117
|
-
name: 'UserBubble',
|
|
118
|
-
components: {
|
|
119
|
-
Popover,
|
|
120
|
-
Avatar,
|
|
121
|
-
},
|
|
122
|
-
props: {
|
|
123
|
-
/**
|
|
124
|
-
* Override generated avatar, can be an url or an icon class
|
|
125
|
-
*/
|
|
126
|
-
avatarImage: {
|
|
127
|
-
type: String,
|
|
128
|
-
default: undefined,
|
|
129
|
-
},
|
|
130
|
-
/**
|
|
131
|
-
* Provide the user id if this is a user
|
|
132
|
-
*/
|
|
133
|
-
user: {
|
|
134
|
-
type: String,
|
|
135
|
-
default: undefined,
|
|
136
|
-
},
|
|
137
|
-
/**
|
|
138
|
-
* Displayed label
|
|
139
|
-
*/
|
|
140
|
-
displayName: {
|
|
141
|
-
type: String,
|
|
142
|
-
required: true,
|
|
143
|
-
},
|
|
144
|
-
/**
|
|
145
|
-
* Whether or not to display the user-status
|
|
146
|
-
*/
|
|
147
|
-
showUserStatus: {
|
|
148
|
-
type: Boolean,
|
|
149
|
-
default: false,
|
|
150
|
-
},
|
|
151
|
-
/**
|
|
152
|
-
* Define the whole bubble as a link
|
|
153
|
-
*/
|
|
154
|
-
url: {
|
|
155
|
-
type: String,
|
|
156
|
-
default: undefined,
|
|
157
|
-
validator: url => {
|
|
158
|
-
try {
|
|
159
|
-
url = new URL(url)
|
|
160
|
-
return !!url
|
|
161
|
-
} catch (error) {
|
|
162
|
-
return false
|
|
163
|
-
}
|
|
164
|
-
},
|
|
165
|
-
},
|
|
166
|
-
/**
|
|
167
|
-
* Default popover state. Requires the UserBubble
|
|
168
|
-
* to have some content to render inside the popover
|
|
169
|
-
*/
|
|
170
|
-
open: {
|
|
171
|
-
type: Boolean,
|
|
172
|
-
default: false,
|
|
173
|
-
},
|
|
174
|
-
/**
|
|
175
|
-
* Use the primary colour
|
|
176
|
-
*/
|
|
177
|
-
primary: {
|
|
178
|
-
type: Boolean,
|
|
179
|
-
default: false,
|
|
180
|
-
},
|
|
181
|
-
/**
|
|
182
|
-
* This is the height of the component
|
|
183
|
-
*/
|
|
184
|
-
size: {
|
|
185
|
-
type: Number,
|
|
186
|
-
default: 20,
|
|
187
|
-
},
|
|
188
|
-
/**
|
|
189
|
-
* This is the margin of the avatar (size - margin = avatar size)
|
|
190
|
-
*/
|
|
191
|
-
margin: {
|
|
192
|
-
type: Number,
|
|
193
|
-
default: 2,
|
|
194
|
-
},
|
|
195
|
-
},
|
|
196
|
-
computed: {
|
|
197
|
-
/**
|
|
198
|
-
* If userbubble is empty, let's NOT
|
|
199
|
-
* use the Popover component
|
|
200
|
-
* @returns {string} 'Popover' or 'div'
|
|
201
|
-
*/
|
|
202
|
-
isPopoverComponent() {
|
|
203
|
-
return !this.popoverEmpty
|
|
204
|
-
? 'Popover'
|
|
205
|
-
: 'div'
|
|
206
|
-
},
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* Is the provided avatar url valid or not
|
|
210
|
-
* @returns {boolean}
|
|
211
|
-
*/
|
|
212
|
-
isAvatarUrl() {
|
|
213
|
-
if (!this.avatarImage) {
|
|
214
|
-
return false
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
try {
|
|
218
|
-
const url = new URL(this.avatarImage)
|
|
219
|
-
return !!url
|
|
220
|
-
} catch (error) {
|
|
221
|
-
return false
|
|
222
|
-
}
|
|
223
|
-
},
|
|
224
|
-
/**
|
|
225
|
-
* Do we have a custom avatar or not
|
|
226
|
-
* @returns {boolean}
|
|
227
|
-
*/
|
|
228
|
-
isCustomAvatar() {
|
|
229
|
-
return !!this.avatarImage
|
|
230
|
-
},
|
|
231
|
-
|
|
232
|
-
isLinkComponent() {
|
|
233
|
-
if (this.url && this.url.trim() !== '') {
|
|
234
|
-
return { is: 'a', href: this.url }
|
|
235
|
-
}
|
|
236
|
-
return { is: 'div' }
|
|
237
|
-
},
|
|
238
|
-
|
|
239
|
-
popoverEmpty() {
|
|
240
|
-
if ('default' in this.$slots) {
|
|
241
|
-
return false
|
|
242
|
-
}
|
|
243
|
-
return true
|
|
244
|
-
},
|
|
245
|
-
|
|
246
|
-
styles() {
|
|
247
|
-
return {
|
|
248
|
-
content: {
|
|
249
|
-
height: this.size + 'px',
|
|
250
|
-
lineHeight: this.size + 'px',
|
|
251
|
-
borderRadius: this.size / 2 + 'px',
|
|
252
|
-
},
|
|
253
|
-
avatar: {
|
|
254
|
-
marginLeft: this.margin + 'px',
|
|
255
|
-
},
|
|
256
|
-
}
|
|
257
|
-
},
|
|
258
|
-
},
|
|
259
|
-
methods: {
|
|
260
|
-
onOpenChange(state) {
|
|
261
|
-
this.$emit('update:open', state)
|
|
262
|
-
},
|
|
263
|
-
/**
|
|
264
|
-
* Catch and forward click event to parent
|
|
265
|
-
* @param {Event} event the click event
|
|
266
|
-
*/
|
|
267
|
-
onClick(event) {
|
|
268
|
-
this.$emit('click', event)
|
|
269
|
-
},
|
|
270
|
-
},
|
|
271
|
-
}
|
|
272
|
-
</script>
|
|
273
|
-
|
|
274
|
-
<style lang="scss" scoped>
|
|
275
|
-
.user-bubble {
|
|
276
|
-
&__wrapper {
|
|
277
|
-
// align inline with text
|
|
278
|
-
display: inline-block;
|
|
279
|
-
vertical-align: middle;
|
|
280
|
-
// shrink and allow grow to fit
|
|
281
|
-
min-width: 0;
|
|
282
|
-
max-width: 100%;
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
&__content {
|
|
286
|
-
display: inline-flex;
|
|
287
|
-
max-width: 100%;
|
|
288
|
-
background-color: var(--color-background-dark);
|
|
289
|
-
|
|
290
|
-
&--primary {
|
|
291
|
-
color: var(--color-primary-text);
|
|
292
|
-
background-color: var(--color-primary-element);
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
> :last-child {
|
|
296
|
-
// border radius left padding
|
|
297
|
-
padding-right: 8px;
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
&__avatar {
|
|
302
|
-
align-self: center;
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
&__title {
|
|
306
|
-
overflow: hidden;
|
|
307
|
-
white-space: nowrap;
|
|
308
|
-
text-overflow: ellipsis;
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
&__title,
|
|
312
|
-
&__secondary {
|
|
313
|
-
// proper spacing between avatar, title & slot
|
|
314
|
-
padding: 0;
|
|
315
|
-
padding-left: 4px;
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
</style>
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @copyright Copyright (c) 2019 Marco Ambrosini <marcoambrosini@pm.me>
|
|
3
|
-
*
|
|
4
|
-
* @author Marco Ambrosini <marcoambrosini@pm.me>
|
|
5
|
-
*
|
|
6
|
-
* @license GNU AGPL version 3 or any later version
|
|
7
|
-
*
|
|
8
|
-
* This program is free software: you can redistribute it and/or modify
|
|
9
|
-
* it under the terms of the GNU Affero General Public License as
|
|
10
|
-
* published by the Free Software Foundation, either version 3 of the
|
|
11
|
-
* License, or (at your option) any later version.
|
|
12
|
-
*
|
|
13
|
-
* This program is distributed in the hope that it will be useful,
|
|
14
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
-
* GNU Affero General Public License for more details.
|
|
17
|
-
*
|
|
18
|
-
* You should have received a copy of the GNU Affero General Public License
|
|
19
|
-
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
-
*
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
import UserBubble from './UserBubble'
|
|
24
|
-
|
|
25
|
-
export default UserBubble
|
package/src/components/index.js
DELETED
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>
|
|
4
|
-
*
|
|
5
|
-
* @author John Molakvoæ <skjnldsv@protonmail.com>
|
|
6
|
-
*
|
|
7
|
-
* @license GNU AGPL version 3 or any later version
|
|
8
|
-
*
|
|
9
|
-
* This program is free software: you can redistribute it and/or modify
|
|
10
|
-
* it under the terms of the GNU Affero General Public License as
|
|
11
|
-
* published by the Free Software Foundation, either version 3 of the
|
|
12
|
-
* License, or (at your option) any later version.
|
|
13
|
-
*
|
|
14
|
-
* This program is distributed in the hope that it will be useful,
|
|
15
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17
|
-
* GNU Affero General Public License for more details.
|
|
18
|
-
*
|
|
19
|
-
* You should have received a copy of the GNU Affero General Public License
|
|
20
|
-
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
-
*
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
import ActionButton from './ActionButton'
|
|
25
|
-
import ActionCheckbox from './ActionCheckbox'
|
|
26
|
-
import ActionInput from './ActionInput'
|
|
27
|
-
import ActionLink from './ActionLink'
|
|
28
|
-
import ActionRadio from './ActionRadio'
|
|
29
|
-
import ActionRouter from './ActionRouter'
|
|
30
|
-
import Actions from './Actions'
|
|
31
|
-
import ActionSeparator from './ActionSeparator'
|
|
32
|
-
import ActionText from './ActionText'
|
|
33
|
-
import ActionTextEditable from './ActionTextEditable'
|
|
34
|
-
import AppContent from './AppContent'
|
|
35
|
-
import AppContentDetails from './AppContentDetails'
|
|
36
|
-
import AppContentList from './AppContentList'
|
|
37
|
-
import AppNavigation from './AppNavigation'
|
|
38
|
-
import AppNavigationCaption from './AppNavigationCaption'
|
|
39
|
-
import AppNavigationCounter from './AppNavigationCounter'
|
|
40
|
-
import AppNavigationIconBullet from './AppNavigationIconBullet'
|
|
41
|
-
import AppNavigationItem from './AppNavigationItem'
|
|
42
|
-
import AppNavigationNew from './AppNavigationNew'
|
|
43
|
-
import AppNavigationNewItem from './AppNavigationNewItem'
|
|
44
|
-
import AppNavigationSettings from './AppNavigationSettings'
|
|
45
|
-
import AppNavigationSpacer from './AppNavigationSpacer'
|
|
46
|
-
import AppSettingsDialog from './AppSettingsDialog'
|
|
47
|
-
import AppSettingsSection from './AppSettingsSection'
|
|
48
|
-
import AppSidebar from './AppSidebar'
|
|
49
|
-
import AppSidebarTab from './AppSidebarTab'
|
|
50
|
-
import Avatar from './Avatar'
|
|
51
|
-
import Breadcrumb from './Breadcrumb'
|
|
52
|
-
import Breadcrumbs from './Breadcrumbs'
|
|
53
|
-
import ColorPicker from './ColorPicker'
|
|
54
|
-
import Content from './Content'
|
|
55
|
-
import DatetimePicker from './DatetimePicker'
|
|
56
|
-
import EmptyContent from './EmptyContent'
|
|
57
|
-
import ListItemIcon from './ListItemIcon'
|
|
58
|
-
import Modal from './Modal'
|
|
59
|
-
import Multiselect from './Multiselect'
|
|
60
|
-
import MultiselectTags from './MultiselectTags'
|
|
61
|
-
import Popover from './Popover'
|
|
62
|
-
import PopoverMenu from './PopoverMenu'
|
|
63
|
-
import RichContenteditable from './RichContenteditable'
|
|
64
|
-
import SettingsSection from './SettingsSection'
|
|
65
|
-
import UserBubble from './UserBubble'
|
|
66
|
-
|
|
67
|
-
export {
|
|
68
|
-
ActionButton,
|
|
69
|
-
ActionCheckbox,
|
|
70
|
-
ActionInput,
|
|
71
|
-
ActionLink,
|
|
72
|
-
ActionRadio,
|
|
73
|
-
ActionRouter,
|
|
74
|
-
Actions,
|
|
75
|
-
ActionSeparator,
|
|
76
|
-
ActionText,
|
|
77
|
-
ActionTextEditable,
|
|
78
|
-
AppContent,
|
|
79
|
-
AppContentDetails,
|
|
80
|
-
AppContentList,
|
|
81
|
-
AppNavigation,
|
|
82
|
-
AppNavigationCaption,
|
|
83
|
-
AppNavigationCounter,
|
|
84
|
-
AppNavigationIconBullet,
|
|
85
|
-
AppNavigationItem,
|
|
86
|
-
AppNavigationNew,
|
|
87
|
-
AppNavigationNewItem,
|
|
88
|
-
AppNavigationSettings,
|
|
89
|
-
AppNavigationSpacer,
|
|
90
|
-
AppSettingsDialog,
|
|
91
|
-
AppSettingsSection,
|
|
92
|
-
AppSidebar,
|
|
93
|
-
AppSidebarTab,
|
|
94
|
-
Avatar,
|
|
95
|
-
Breadcrumb,
|
|
96
|
-
Breadcrumbs,
|
|
97
|
-
ColorPicker,
|
|
98
|
-
Content,
|
|
99
|
-
DatetimePicker,
|
|
100
|
-
EmptyContent,
|
|
101
|
-
ListItemIcon,
|
|
102
|
-
Modal,
|
|
103
|
-
Multiselect,
|
|
104
|
-
MultiselectTags,
|
|
105
|
-
Popover,
|
|
106
|
-
PopoverMenu,
|
|
107
|
-
RichContenteditable,
|
|
108
|
-
SettingsSection,
|
|
109
|
-
UserBubble,
|
|
110
|
-
}
|