@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,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
|
|
3
|
-
*
|
|
4
|
-
* @author John Molakvoæ <skjnldsv@protonmail.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
|
-
|
|
23
|
-
// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556
|
|
24
|
-
// recommended is 48px
|
|
25
|
-
// 44px is what we choose and have very good visual-to-usability ratio
|
|
26
|
-
$clickable-area: 44px;
|
|
27
|
-
|
|
28
|
-
// background icon size
|
|
29
|
-
// also used for the scss icon font
|
|
30
|
-
$icon-size: 16px;
|
|
31
|
-
|
|
32
|
-
// icon padding for a $clickable-area width and a $icon-size icon
|
|
33
|
-
// ( 44px - 16px ) / 2
|
|
34
|
-
$icon-margin: ($clickable-area - $icon-size) / 2;
|
|
35
|
-
|
|
36
|
-
// transparency background for icons
|
|
37
|
-
$icon-focus-bg: rgba(127, 127, 127, .25);
|
|
38
|
-
|
|
39
|
-
// popovermenu arrow width from the triangle center
|
|
40
|
-
$arrow-width: 9px;
|
|
41
|
-
|
|
42
|
-
// opacities
|
|
43
|
-
$opacity_disabled: .5;
|
|
44
|
-
$opacity_normal: .7;
|
|
45
|
-
$opacity_full: 1;
|
|
46
|
-
|
|
47
|
-
// menu round background hover feedback
|
|
48
|
-
// good looking on dark AND white bg
|
|
49
|
-
$action-background-hover: rgba(127, 127, 127, .25);
|
|
50
|
-
|
|
51
|
-
// various structure data used in the
|
|
52
|
-
// `AppNavigation` component
|
|
53
|
-
$header-height: 50px;
|
|
54
|
-
$navigation-width: 300px;
|
|
55
|
-
|
|
56
|
-
// mobile breakpoint
|
|
57
|
-
$breakpoint-mobile: 1024px;
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
- @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
|
|
3
|
-
-
|
|
4
|
-
- @author John Molakvoæ <skjnldsv@protonmail.com>
|
|
5
|
-
- @author Marco Ambrosini <marcoambrosini@pm.me>
|
|
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
|
-
<docs>
|
|
25
|
-
This component is made to be used inside of the [Actions](#Actions) component slots.
|
|
26
|
-
|
|
27
|
-
```vue
|
|
28
|
-
<Actions>
|
|
29
|
-
<ActionButton icon="icon-delete" @click="alert('Delete')">Delete</ActionButton>
|
|
30
|
-
<ActionButton icon="icon-delete" :close-after-click="true" @click="alert('Delete and close menu')">Delete and close</ActionButton>
|
|
31
|
-
<ActionButton icon="icon-delete" :disabled="true" @click="alert('Disabled')">Disabled button</ActionButton>
|
|
32
|
-
</Actions>
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
If you're using a long text you can specify a title
|
|
36
|
-
|
|
37
|
-
```vue
|
|
38
|
-
<Actions>
|
|
39
|
-
<ActionButton icon="icon-add" @click="alert('Add')">Add new</ActionButton>
|
|
40
|
-
<ActionButton icon="icon-delete" title="Long button" @click="alert('Delete')">This button is associated with a very long text.\nAnd with new lines too.</ActionButton>
|
|
41
|
-
</Actions>
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
You can also use a custom icon, for example from the vue-material-design-icons library:
|
|
45
|
-
|
|
46
|
-
```vue
|
|
47
|
-
<template>
|
|
48
|
-
<Actions>
|
|
49
|
-
<ActionButton>
|
|
50
|
-
<HandLeft
|
|
51
|
-
slot="icon"
|
|
52
|
-
:size="16"
|
|
53
|
-
decorative
|
|
54
|
-
title="" />
|
|
55
|
-
Raise left hand
|
|
56
|
-
</ActionButton>
|
|
57
|
-
<ActionButton>
|
|
58
|
-
<HandRight
|
|
59
|
-
slot="icon"
|
|
60
|
-
:size="16"
|
|
61
|
-
decorative
|
|
62
|
-
title="" />
|
|
63
|
-
Raise right hand
|
|
64
|
-
</ActionButton>
|
|
65
|
-
</Actions>
|
|
66
|
-
</template>
|
|
67
|
-
<script>
|
|
68
|
-
import HandLeft from 'vue-material-design-icons/HandLeft'
|
|
69
|
-
import HandRight from 'vue-material-design-icons/HandRight'
|
|
70
|
-
|
|
71
|
-
export default {
|
|
72
|
-
components: {
|
|
73
|
-
HandLeft,
|
|
74
|
-
HandRight,
|
|
75
|
-
},
|
|
76
|
-
}
|
|
77
|
-
</script>
|
|
78
|
-
```
|
|
79
|
-
</docs>
|
|
80
|
-
|
|
81
|
-
<template>
|
|
82
|
-
<li class="action" :class="{ 'action--disabled': disabled }">
|
|
83
|
-
<button
|
|
84
|
-
class="action-button"
|
|
85
|
-
:class="{ focusable: isFocusable }"
|
|
86
|
-
:aria-label="ariaLabel"
|
|
87
|
-
type="button"
|
|
88
|
-
@click="onClick">
|
|
89
|
-
<span :class="[isIconUrl ? 'action-button__icon--url' : icon]"
|
|
90
|
-
:style="{ backgroundImage: isIconUrl ? `url(${icon})` : null }"
|
|
91
|
-
class="action-button__icon">
|
|
92
|
-
<!-- @slot Manually provide icon -->
|
|
93
|
-
<slot name="icon" />
|
|
94
|
-
</span>
|
|
95
|
-
|
|
96
|
-
<!-- long text with title -->
|
|
97
|
-
<p v-if="title">
|
|
98
|
-
<strong class="action-button__title">
|
|
99
|
-
{{ title }}
|
|
100
|
-
</strong>
|
|
101
|
-
<br>
|
|
102
|
-
<!-- white space is shown on longtext, so we can't
|
|
103
|
-
put {{ text }} on a new line for code readability -->
|
|
104
|
-
<span class="action-button__longtext" v-text="text" />
|
|
105
|
-
</p>
|
|
106
|
-
|
|
107
|
-
<!-- long text only -->
|
|
108
|
-
<!-- white space is shown on longtext, so we can't
|
|
109
|
-
put {{ text }} on a new line for code readability -->
|
|
110
|
-
<p v-else-if="isLongText"
|
|
111
|
-
class="action-button__longtext"
|
|
112
|
-
v-text="text" />
|
|
113
|
-
|
|
114
|
-
<!-- default text display -->
|
|
115
|
-
<span v-else class="action-button__text">{{ text }}</span>
|
|
116
|
-
|
|
117
|
-
<!-- fake slot to gather inner text -->
|
|
118
|
-
<slot v-if="false" />
|
|
119
|
-
</button>
|
|
120
|
-
</li>
|
|
121
|
-
</template>
|
|
122
|
-
|
|
123
|
-
<script>
|
|
124
|
-
import ActionTextMixin from '../../mixins/actionText'
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Button component to be used in Actions
|
|
128
|
-
*/
|
|
129
|
-
export default {
|
|
130
|
-
name: 'ActionButton',
|
|
131
|
-
|
|
132
|
-
mixins: [ActionTextMixin],
|
|
133
|
-
|
|
134
|
-
props: {
|
|
135
|
-
/**
|
|
136
|
-
* disabled state of the action button
|
|
137
|
-
*/
|
|
138
|
-
disabled: {
|
|
139
|
-
type: Boolean,
|
|
140
|
-
default: false,
|
|
141
|
-
},
|
|
142
|
-
},
|
|
143
|
-
computed: {
|
|
144
|
-
/**
|
|
145
|
-
* determines if the action is focusable
|
|
146
|
-
* @returns {boolean} is the action focusable ?
|
|
147
|
-
*/
|
|
148
|
-
isFocusable() {
|
|
149
|
-
return !this.disabled
|
|
150
|
-
},
|
|
151
|
-
},
|
|
152
|
-
}
|
|
153
|
-
</script>
|
|
154
|
-
|
|
155
|
-
<style lang="scss" scoped>
|
|
156
|
-
@import '../../assets/action';
|
|
157
|
-
@include action-active;
|
|
158
|
-
@include action--disabled;
|
|
159
|
-
@include action-item('button');
|
|
160
|
-
</style>
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
|
|
3
|
-
*
|
|
4
|
-
* @author John Molakvoæ <skjnldsv@protonmail.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 ActionButton from './ActionButton'
|
|
23
|
-
|
|
24
|
-
export default ActionButton
|
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
- @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
|
|
3
|
-
-
|
|
4
|
-
- @author John Molakvoæ <skjnldsv@protonmail.com>
|
|
5
|
-
- @author Marco Ambrosini <marcoambrosini@pm.me>
|
|
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
|
-
<docs>
|
|
25
|
-
This component is made to be used inside of the [Actions](#Actions) component slots.
|
|
26
|
-
|
|
27
|
-
```vue
|
|
28
|
-
<Actions>
|
|
29
|
-
<ActionCheckbox @change="alert('(un)checked !')">First choice</ActionCheckbox>
|
|
30
|
-
<ActionCheckbox value="second" @change="alert('(un)checked !')">Second choice</ActionCheckbox>
|
|
31
|
-
<ActionCheckbox :checked="true" @change="alert('(un)checked !')">Third choice (checked)</ActionCheckbox>
|
|
32
|
-
<ActionCheckbox :disabled="true" @change="alert('(un)checked !')">Second choice (disabled)</ActionCheckbox>
|
|
33
|
-
</Actions>
|
|
34
|
-
```
|
|
35
|
-
</docs>
|
|
36
|
-
|
|
37
|
-
<template>
|
|
38
|
-
<li class="action" :class="{ 'action--disabled': disabled }">
|
|
39
|
-
<span class="action-checkbox">
|
|
40
|
-
<input :id="id"
|
|
41
|
-
ref="checkbox"
|
|
42
|
-
:disabled="disabled"
|
|
43
|
-
:checked="checked"
|
|
44
|
-
:value="value"
|
|
45
|
-
:class="{ focusable: isFocusable }"
|
|
46
|
-
type="checkbox"
|
|
47
|
-
class="checkbox action-checkbox__checkbox"
|
|
48
|
-
@keydown.enter.exact.prevent="checkInput"
|
|
49
|
-
@change="onChange">
|
|
50
|
-
<label ref="label" :for="id" class="action-checkbox__label">{{ text }}</label>
|
|
51
|
-
|
|
52
|
-
<!-- fake slot to gather inner text -->
|
|
53
|
-
<slot v-if="false" />
|
|
54
|
-
</span>
|
|
55
|
-
</li>
|
|
56
|
-
</template>
|
|
57
|
-
|
|
58
|
-
<script>
|
|
59
|
-
import ActionGlobalMixin from '../../mixins/actionGlobal'
|
|
60
|
-
import GenRandomId from '../../utils/GenRandomId'
|
|
61
|
-
|
|
62
|
-
export default {
|
|
63
|
-
name: 'ActionCheckbox',
|
|
64
|
-
|
|
65
|
-
mixins: [ActionGlobalMixin],
|
|
66
|
-
|
|
67
|
-
props: {
|
|
68
|
-
/**
|
|
69
|
-
* id attribute of the checkbox element
|
|
70
|
-
*/
|
|
71
|
-
id: {
|
|
72
|
-
type: String,
|
|
73
|
-
default: () => 'action-' + GenRandomId(),
|
|
74
|
-
validator: id => id.trim() !== '',
|
|
75
|
-
},
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* checked state of the the checkbox element
|
|
79
|
-
*/
|
|
80
|
-
checked: {
|
|
81
|
-
type: Boolean,
|
|
82
|
-
default: false,
|
|
83
|
-
},
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* value of the checkbox input
|
|
87
|
-
*/
|
|
88
|
-
value: {
|
|
89
|
-
type: [String, Number],
|
|
90
|
-
default: '',
|
|
91
|
-
},
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* disabled state of the checkbox element
|
|
95
|
-
*/
|
|
96
|
-
disabled: {
|
|
97
|
-
type: Boolean,
|
|
98
|
-
default: false,
|
|
99
|
-
},
|
|
100
|
-
},
|
|
101
|
-
|
|
102
|
-
computed: {
|
|
103
|
-
/**
|
|
104
|
-
* determines if the action is focusable
|
|
105
|
-
* @returns {boolean} is the action focusable ?
|
|
106
|
-
*/
|
|
107
|
-
isFocusable() {
|
|
108
|
-
return !this.disabled
|
|
109
|
-
},
|
|
110
|
-
},
|
|
111
|
-
|
|
112
|
-
methods: {
|
|
113
|
-
checkInput(event) {
|
|
114
|
-
// by clicking we also trigger the change event
|
|
115
|
-
this.$refs.label.click()
|
|
116
|
-
},
|
|
117
|
-
onChange(event) {
|
|
118
|
-
/**
|
|
119
|
-
* Emitted when the checkbox state is changed
|
|
120
|
-
* @type {boolean}
|
|
121
|
-
*/
|
|
122
|
-
this.$emit('update:checked', this.$refs.checkbox.checked)
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* Emitted when the checkbox state is changed
|
|
126
|
-
* @type {Event}
|
|
127
|
-
*/
|
|
128
|
-
this.$emit('change', event)
|
|
129
|
-
|
|
130
|
-
if (this.$refs.checkbox.checked) {
|
|
131
|
-
/**
|
|
132
|
-
* Emitted when the checkbox is checked
|
|
133
|
-
* @type {Event}
|
|
134
|
-
*/
|
|
135
|
-
this.$emit('check')
|
|
136
|
-
} else {
|
|
137
|
-
/**
|
|
138
|
-
* Emitted when the checkbox is unchecked
|
|
139
|
-
* @type {Event}
|
|
140
|
-
*/
|
|
141
|
-
this.$emit('uncheck')
|
|
142
|
-
}
|
|
143
|
-
},
|
|
144
|
-
},
|
|
145
|
-
}
|
|
146
|
-
</script>
|
|
147
|
-
|
|
148
|
-
<style lang="scss" scoped>
|
|
149
|
-
@import '../../assets/action';
|
|
150
|
-
@include action-active;
|
|
151
|
-
@include action--disabled;
|
|
152
|
-
|
|
153
|
-
.action-checkbox {
|
|
154
|
-
display: flex;
|
|
155
|
-
align-items: flex-start;
|
|
156
|
-
|
|
157
|
-
width: 100%;
|
|
158
|
-
height: auto;
|
|
159
|
-
margin: 0;
|
|
160
|
-
padding: 0;
|
|
161
|
-
|
|
162
|
-
cursor: pointer;
|
|
163
|
-
white-space: nowrap;
|
|
164
|
-
|
|
165
|
-
color: var(--color-main-text);
|
|
166
|
-
border: 0;
|
|
167
|
-
border-radius: 0; // otherwise Safari will cut the border-radius area
|
|
168
|
-
background-color: transparent;
|
|
169
|
-
box-shadow: none;
|
|
170
|
-
|
|
171
|
-
font-weight: normal;
|
|
172
|
-
line-height: $clickable-area;
|
|
173
|
-
|
|
174
|
-
/* checkbox/radio fixes */
|
|
175
|
-
&__checkbox {
|
|
176
|
-
position: absolute;
|
|
177
|
-
top: auto;
|
|
178
|
-
left: -10000px;
|
|
179
|
-
|
|
180
|
-
overflow: hidden;
|
|
181
|
-
|
|
182
|
-
width: 1px;
|
|
183
|
-
height: 1px;
|
|
184
|
-
&:focus + .action-checkbox__label {
|
|
185
|
-
opacity: $opacity_full;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
&__label {
|
|
190
|
-
display: flex;
|
|
191
|
-
align-items: center; // align checkbox to text
|
|
192
|
-
|
|
193
|
-
width: 100%;
|
|
194
|
-
padding: 0 !important;
|
|
195
|
-
padding-right: $icon-margin !important;
|
|
196
|
-
|
|
197
|
-
opacity: $opacity_normal;
|
|
198
|
-
// checkbox-width is 12px, border is 2
|
|
199
|
-
// (44 - 14 - 2) / 2 = 14
|
|
200
|
-
&::before {
|
|
201
|
-
margin: 0 14px 0 !important;
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
&--disabled {
|
|
206
|
-
&,
|
|
207
|
-
.action-checkbox__label {
|
|
208
|
-
cursor: pointer;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
&:not(.action-checkbox--disabled):hover,
|
|
213
|
-
&:not(.action-checkbox--disabled):focus {
|
|
214
|
-
.action-checkbox__label {
|
|
215
|
-
opacity: $opacity_full;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
</style>
|