@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.
Files changed (290) hide show
  1. package/CHANGELOG.md +114 -19
  2. package/README.md +9 -10
  3. package/dist/Components/ActionButton.js +24 -3
  4. package/dist/Components/ActionButton.js.map +1 -1
  5. package/dist/Components/ActionCaption.js +23 -0
  6. package/dist/Components/ActionCaption.js.map +1 -0
  7. package/dist/Components/ActionCheckbox.js +24 -3
  8. package/dist/Components/ActionCheckbox.js.map +1 -1
  9. package/dist/Components/ActionInput.js +124 -21
  10. package/dist/Components/ActionInput.js.map +1 -1
  11. package/dist/Components/ActionLink.js +24 -3
  12. package/dist/Components/ActionLink.js.map +1 -1
  13. package/dist/Components/ActionRadio.js +24 -3
  14. package/dist/Components/ActionRadio.js.map +1 -1
  15. package/dist/Components/ActionRouter.js +23 -2
  16. package/dist/Components/ActionRouter.js.map +1 -1
  17. package/dist/Components/ActionSeparator.js +1 -1
  18. package/dist/Components/ActionSeparator.js.map +1 -1
  19. package/dist/Components/ActionText.js +23 -2
  20. package/dist/Components/ActionText.js.map +1 -1
  21. package/dist/Components/ActionTextEditable.js +45 -3
  22. package/dist/Components/ActionTextEditable.js.map +1 -1
  23. package/dist/Components/Actions.js +25 -4
  24. package/dist/Components/Actions.js.map +1 -1
  25. package/dist/Components/AppContent.js +21 -1
  26. package/dist/Components/AppContent.js.map +1 -1
  27. package/dist/Components/AppContentDetails.js +1 -1
  28. package/dist/Components/AppContentDetails.js.map +1 -1
  29. package/dist/Components/AppContentList.js +1 -1
  30. package/dist/Components/AppContentList.js.map +1 -1
  31. package/dist/Components/AppNavigation.js +109 -2
  32. package/dist/Components/AppNavigation.js.map +1 -1
  33. package/dist/Components/AppNavigationCaption.js +66 -1
  34. package/dist/Components/AppNavigationCaption.js.map +1 -1
  35. package/dist/Components/AppNavigationCounter.js +2 -2
  36. package/dist/Components/AppNavigationCounter.js.map +1 -1
  37. package/dist/Components/AppNavigationIconBullet.js +2 -2
  38. package/dist/Components/AppNavigationIconBullet.js.map +1 -1
  39. package/dist/Components/AppNavigationItem.js +49 -7
  40. package/dist/Components/AppNavigationItem.js.map +1 -1
  41. package/dist/Components/AppNavigationNew.js +1 -1
  42. package/dist/Components/AppNavigationNew.js.map +1 -1
  43. package/dist/Components/AppNavigationNewItem.js +2 -2
  44. package/dist/Components/AppNavigationNewItem.js.map +1 -1
  45. package/dist/Components/AppNavigationSettings.js +5 -5
  46. package/dist/Components/AppNavigationSettings.js.map +1 -1
  47. package/dist/Components/AppNavigationSpacer.js +1 -1
  48. package/dist/Components/AppNavigationSpacer.js.map +1 -1
  49. package/dist/Components/AppNavigationToggle.js +109 -2
  50. package/dist/Components/AppNavigationToggle.js.map +1 -1
  51. package/dist/Components/AppSettingsDialog.js +64 -22
  52. package/dist/Components/AppSettingsDialog.js.map +1 -1
  53. package/dist/Components/AppSettingsSection.js +1 -1
  54. package/dist/Components/AppSettingsSection.js.map +1 -1
  55. package/dist/Components/AppSidebar.js +38 -17
  56. package/dist/Components/AppSidebar.js.map +1 -1
  57. package/dist/Components/AppSidebarTab.js +1 -1
  58. package/dist/Components/AppSidebarTab.js.map +1 -1
  59. package/dist/Components/Avatar.js +9 -10
  60. package/dist/Components/Avatar.js.map +1 -1
  61. package/dist/Components/Breadcrumb.js +33 -12
  62. package/dist/Components/Breadcrumb.js.map +1 -1
  63. package/dist/Components/Breadcrumbs.js +59 -17
  64. package/dist/Components/Breadcrumbs.js.map +1 -1
  65. package/dist/Components/CheckboxRadioSwitch.js +44 -0
  66. package/dist/Components/CheckboxRadioSwitch.js.map +1 -0
  67. package/dist/Components/ColorPicker.js +6 -7
  68. package/dist/Components/ColorPicker.js.map +1 -1
  69. package/dist/Components/Content.js +2 -2
  70. package/dist/Components/Content.js.map +1 -1
  71. package/dist/Components/CounterBubble.js +23 -0
  72. package/dist/Components/CounterBubble.js.map +1 -0
  73. package/dist/Components/DatetimePicker.js +341 -3
  74. package/dist/Components/DatetimePicker.js.map +1 -1
  75. package/dist/Components/EmojiPicker.js +14 -14
  76. package/dist/Components/EmojiPicker.js.map +1 -1
  77. package/dist/Components/EmptyContent.js +2 -2
  78. package/dist/Components/EmptyContent.js.map +1 -1
  79. package/dist/Components/Highlight.js +3 -3
  80. package/dist/Components/Highlight.js.map +1 -1
  81. package/dist/Components/ListItem.js +130 -0
  82. package/dist/Components/ListItem.js.map +1 -0
  83. package/dist/Components/ListItemIcon.js +20 -21
  84. package/dist/Components/ListItemIcon.js.map +1 -1
  85. package/dist/Components/Modal.js +53 -11
  86. package/dist/Components/Modal.js.map +1 -1
  87. package/dist/Components/Multiselect.js +22 -23
  88. package/dist/Components/Multiselect.js.map +1 -1
  89. package/dist/Components/MultiselectTags.js +24 -25
  90. package/dist/Components/MultiselectTags.js.map +1 -1
  91. package/dist/Components/Popover.js +2 -2
  92. package/dist/Components/Popover.js.map +1 -1
  93. package/dist/Components/PopoverMenu.js +1 -1
  94. package/dist/Components/PopoverMenu.js.map +1 -1
  95. package/dist/Components/ProgressBar.js +2 -2
  96. package/dist/Components/ProgressBar.js.map +1 -1
  97. package/dist/Components/RichContenteditable.js +2 -2
  98. package/dist/Components/RichContenteditable.js.map +1 -1
  99. package/dist/Components/SettingsInputText.js +22 -1
  100. package/dist/Components/SettingsInputText.js.map +1 -1
  101. package/dist/Components/SettingsSection.js +2 -2
  102. package/dist/Components/SettingsSection.js.map +1 -1
  103. package/dist/Components/SettingsSelectGroup.js +41 -21
  104. package/dist/Components/SettingsSelectGroup.js.map +1 -1
  105. package/dist/Components/TimezonePicker.js +340 -0
  106. package/dist/Components/TimezonePicker.js.map +1 -0
  107. package/dist/Components/UserBubble.js +35 -36
  108. package/dist/Components/UserBubble.js.map +1 -1
  109. package/dist/Directives/Focus.js +1 -1
  110. package/dist/Directives/Focus.js.map +1 -1
  111. package/dist/Directives/Linkify.js +1 -1
  112. package/dist/Directives/Linkify.js.map +1 -1
  113. package/dist/Directives/Tooltip.js +2 -2
  114. package/dist/Directives/Tooltip.js.map +1 -1
  115. package/dist/Functions/usernameToColor.js +2 -3
  116. package/dist/Functions/usernameToColor.js.map +1 -1
  117. package/dist/Mixins/excludeClickOutsideClasses.js +2 -2
  118. package/dist/Mixins/excludeClickOutsideClasses.js.map +1 -1
  119. package/dist/Mixins/isFullscreen.js +1 -1
  120. package/dist/Mixins/isFullscreen.js.map +1 -1
  121. package/dist/Mixins/isMobile.js +1 -1
  122. package/dist/Mixins/isMobile.js.map +1 -1
  123. package/dist/Mixins/richEditor.js +1 -1
  124. package/dist/Mixins/richEditor.js.map +1 -1
  125. package/dist/ncvuecomponents.js +276 -69
  126. package/dist/ncvuecomponents.js.map +1 -1
  127. package/package.json +28 -43
  128. package/src/assets/action.scss +0 -132
  129. package/src/assets/iconfont/README.md +0 -30
  130. package/src/assets/iconfont/arrow-left-double.svg +0 -3
  131. package/src/assets/iconfont/arrow-left.svg +0 -3
  132. package/src/assets/iconfont/arrow-right-double.svg +0 -3
  133. package/src/assets/iconfont/arrow-right.svg +0 -3
  134. package/src/assets/iconfont/breadcrumb.svg +0 -1
  135. package/src/assets/iconfont/checkmark.svg +0 -1
  136. package/src/assets/iconfont/close.svg +0 -1
  137. package/src/assets/iconfont/confirm.svg +0 -1
  138. package/src/assets/iconfont/info.svg +0 -1
  139. package/src/assets/iconfont/menu.svg +0 -1
  140. package/src/assets/iconfont/more.svg +0 -1
  141. package/src/assets/iconfont/pause.svg +0 -1
  142. package/src/assets/iconfont/play.svg +0 -1
  143. package/src/assets/iconfont/triangle-s.svg +0 -1
  144. package/src/assets/iconfont/user-status-away.svg +0 -2
  145. package/src/assets/iconfont/user-status-dnd.svg +0 -2
  146. package/src/assets/iconfont/user-status-invisible.svg +0 -2
  147. package/src/assets/iconfont/user-status-online.svg +0 -2
  148. package/src/assets/inputs.scss +0 -104
  149. package/src/assets/variables.scss +0 -57
  150. package/src/components/ActionButton/ActionButton.vue +0 -160
  151. package/src/components/ActionButton/index.js +0 -24
  152. package/src/components/ActionCheckbox/ActionCheckbox.vue +0 -220
  153. package/src/components/ActionCheckbox/index.js +0 -24
  154. package/src/components/ActionInput/ActionInput.vue +0 -418
  155. package/src/components/ActionInput/index.js +0 -24
  156. package/src/components/ActionLink/ActionLink.vue +0 -132
  157. package/src/components/ActionLink/index.js +0 -24
  158. package/src/components/ActionRadio/ActionRadio.vue +0 -219
  159. package/src/components/ActionRadio/index.js +0 -24
  160. package/src/components/ActionRouter/ActionRouter.vue +0 -100
  161. package/src/components/ActionRouter/index.js +0 -24
  162. package/src/components/ActionSeparator/ActionSeparator.vue +0 -43
  163. package/src/components/ActionSeparator/index.js +0 -24
  164. package/src/components/ActionText/ActionText.vue +0 -87
  165. package/src/components/ActionText/index.js +0 -24
  166. package/src/components/ActionTextEditable/ActionTextEditable.vue +0 -306
  167. package/src/components/ActionTextEditable/index.js +0 -24
  168. package/src/components/Actions/Actions.vue +0 -764
  169. package/src/components/Actions/index.js +0 -24
  170. package/src/components/AppContent/AppContent.vue +0 -93
  171. package/src/components/AppContent/index.js +0 -23
  172. package/src/components/AppContentDetails/AppContentDetails.vue +0 -34
  173. package/src/components/AppContentDetails/index.js +0 -23
  174. package/src/components/AppContentList/AppContentList.vue +0 -44
  175. package/src/components/AppContentList/index.js +0 -23
  176. package/src/components/AppNavigation/AppNavigation.vue +0 -190
  177. package/src/components/AppNavigation/index.js +0 -23
  178. package/src/components/AppNavigationCaption/AppNavigationCaption.vue +0 -39
  179. package/src/components/AppNavigationCaption/index.js +0 -3
  180. package/src/components/AppNavigationCounter/AppNavigationCounter.vue +0 -82
  181. package/src/components/AppNavigationCounter/index.js +0 -25
  182. package/src/components/AppNavigationIconBullet/AppNavigationIconBullet.vue +0 -95
  183. package/src/components/AppNavigationIconBullet/index.js +0 -24
  184. package/src/components/AppNavigationItem/AppNavigationIconCollapsible.vue +0 -90
  185. package/src/components/AppNavigationItem/AppNavigationItem.vue +0 -629
  186. package/src/components/AppNavigationItem/InputConfirmCancel.vue +0 -134
  187. package/src/components/AppNavigationItem/index.js +0 -24
  188. package/src/components/AppNavigationNew/AppNavigationNew.vue +0 -76
  189. package/src/components/AppNavigationNew/index.js +0 -23
  190. package/src/components/AppNavigationNewItem/AppNavigationNewItem.vue +0 -165
  191. package/src/components/AppNavigationNewItem/index.js +0 -24
  192. package/src/components/AppNavigationSettings/AppNavigationSettings.vue +0 -105
  193. package/src/components/AppNavigationSettings/index.js +0 -23
  194. package/src/components/AppNavigationSpacer/AppNavigationSpacer.vue +0 -39
  195. package/src/components/AppNavigationSpacer/index.js +0 -23
  196. package/src/components/AppNavigationToggle/AppNavigationToggle.vue +0 -78
  197. package/src/components/AppNavigationToggle/index.js +0 -24
  198. package/src/components/AppSettingsDialog/AppSettingsDialog.vue +0 -331
  199. package/src/components/AppSettingsDialog/index.js +0 -25
  200. package/src/components/AppSettingsSection/AppSettingsSection.vue +0 -64
  201. package/src/components/AppSettingsSection/index.js +0 -25
  202. package/src/components/AppSidebar/AppSidebar.vue +0 -802
  203. package/src/components/AppSidebar/AppSidebarTabs.vue +0 -348
  204. package/src/components/AppSidebar/index.js +0 -23
  205. package/src/components/AppSidebarTab/AppSidebarTab.vue +0 -103
  206. package/src/components/AppSidebarTab/index.js +0 -23
  207. package/src/components/Avatar/Avatar.vue +0 -758
  208. package/src/components/Avatar/index.js +0 -25
  209. package/src/components/Breadcrumb/Breadcrumb.vue +0 -262
  210. package/src/components/Breadcrumb/index.js +0 -25
  211. package/src/components/Breadcrumbs/Breadcrumbs.vue +0 -537
  212. package/src/components/Breadcrumbs/index.js +0 -25
  213. package/src/components/ColorPicker/ColorPicker.vue +0 -380
  214. package/src/components/ColorPicker/index.js +0 -25
  215. package/src/components/Content/Content.vue +0 -77
  216. package/src/components/Content/index.js +0 -23
  217. package/src/components/DatetimePicker/DatetimePicker.vue +0 -195
  218. package/src/components/DatetimePicker/index.js +0 -28
  219. package/src/components/DatetimePicker/index.scss +0 -405
  220. package/src/components/EmojiPicker/EmojiPicker.vue +0 -302
  221. package/src/components/EmojiPicker/index.js +0 -23
  222. package/src/components/EmptyContent/EmptyContent.vue +0 -120
  223. package/src/components/EmptyContent/index.js +0 -24
  224. package/src/components/Highlight/Highlight.vue +0 -183
  225. package/src/components/Highlight/index.js +0 -25
  226. package/src/components/ListItemIcon/ListItemIcon.vue +0 -277
  227. package/src/components/ListItemIcon/index.js +0 -25
  228. package/src/components/Modal/Modal.vue +0 -833
  229. package/src/components/Modal/index.js +0 -27
  230. package/src/components/Multiselect/EllipsisedOption.vue +0 -141
  231. package/src/components/Multiselect/Multiselect.vue +0 -430
  232. package/src/components/Multiselect/index.js +0 -28
  233. package/src/components/Multiselect/index.scss +0 -290
  234. package/src/components/MultiselectTags/MultiselectTags.vue +0 -179
  235. package/src/components/MultiselectTags/api.js +0 -115
  236. package/src/components/MultiselectTags/index.js +0 -23
  237. package/src/components/Popover/Popover.vue +0 -208
  238. package/src/components/Popover/index.js +0 -25
  239. package/src/components/PopoverMenu/PopoverMenu.vue +0 -62
  240. package/src/components/PopoverMenu/PopoverMenuItem.vue +0 -382
  241. package/src/components/PopoverMenu/index.js +0 -24
  242. package/src/components/ProgressBar/ProgressBar.vue +0 -135
  243. package/src/components/ProgressBar/index.js +0 -25
  244. package/src/components/RichContenteditable/AutoCompleteResult.vue +0 -191
  245. package/src/components/RichContenteditable/MentionBubble.vue +0 -165
  246. package/src/components/RichContenteditable/RichContenteditable.vue +0 -517
  247. package/src/components/RichContenteditable/index.js +0 -25
  248. package/src/components/SettingsInputText/SettingsInputText.vue +0 -207
  249. package/src/components/SettingsInputText/index.js +0 -24
  250. package/src/components/SettingsSection/SettingsSection.vue +0 -151
  251. package/src/components/SettingsSection/index.js +0 -24
  252. package/src/components/SettingsSelectGroup/SettingsSelectGroup.vue +0 -149
  253. package/src/components/SettingsSelectGroup/index.js +0 -25
  254. package/src/components/UserBubble/UserBubble.vue +0 -319
  255. package/src/components/UserBubble/index.js +0 -25
  256. package/src/components/index.js +0 -110
  257. package/src/directives/Focus/index.js +0 -29
  258. package/src/directives/Linkify/index.js +0 -31
  259. package/src/directives/Tooltip/index.js +0 -32
  260. package/src/directives/Tooltip/index.scss +0 -117
  261. package/src/directives/index.js +0 -31
  262. package/src/fonts/iconfont-vue-f56d517.eot +0 -0
  263. package/src/fonts/iconfont-vue-f56d517.svg +0 -1
  264. package/src/fonts/iconfont-vue-f56d517.ttf +0 -0
  265. package/src/fonts/iconfont-vue-f56d517.woff +0 -0
  266. package/src/fonts/scss/iconfont-vue.scss +0 -115
  267. package/src/functions/usernameToColor/index.js +0 -25
  268. package/src/functions/usernameToColor/usernameToColor.js +0 -68
  269. package/src/index.js +0 -40
  270. package/src/l10n.js +0 -42
  271. package/src/mixins/actionGlobal.js +0 -59
  272. package/src/mixins/actionText.js +0 -85
  273. package/src/mixins/excludeClickOutsideClasses/index.js +0 -72
  274. package/src/mixins/index.js +0 -35
  275. package/src/mixins/isFullscreen/index.js +0 -46
  276. package/src/mixins/isMobile/index.js +0 -43
  277. package/src/mixins/l10n.js +0 -8
  278. package/src/mixins/richEditor/index.js +0 -160
  279. package/src/mixins/userStatus.js +0 -76
  280. package/src/utils/FindRanges.js +0 -47
  281. package/src/utils/GenColors.js +0 -79
  282. package/src/utils/GenRandomId.js +0 -31
  283. package/src/utils/GetChildren.js +0 -47
  284. package/src/utils/GetParent.js +0 -41
  285. package/src/utils/IsMobileState.js +0 -49
  286. package/src/utils/IsOutOfViewport.js +0 -36
  287. package/src/utils/ScopeComponent.js +0 -37
  288. package/src/utils/Timer.js +0 -61
  289. package/src/utils/ValidateChildren.js +0 -50
  290. package/src/utils/ValidateSlot.js +0 -57
@@ -1,24 +0,0 @@
1
- /**
2
- * @copyright Copyright (c) 2018 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 Actions from './Actions'
23
-
24
- export default Actions
@@ -1,93 +0,0 @@
1
- <!--
2
- - @copyright Copyright (c) 2019 Christoph Wurst <christoph@winzerhof-wurst.at>
3
- -
4
- - @author Christoph Wurst <christoph@winzerhof-wurst.at>
5
- - @author Marco Ambrosini <marcoambrosini@pm.me>
6
- - @author John Molakvoæ <skjnldsv@protonmail.com>
7
- -
8
- - @license GNU AGPL version 3 or any later version
9
- -
10
- - This program is free software: you can redistribute it and/or modify
11
- - it under the terms of the GNU Affero General Public License as
12
- - published by the Free Software Foundation, either version 3 of the
13
- - License, or (at your option) any later version.
14
- -
15
- - This program is distributed in the hope that it will be useful,
16
- - but WITHOUT ANY WARRANTY; without even the implied warranty of
17
- - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
- - GNU Affero General Public License for more details.
19
- -
20
- - You should have received a copy of the GNU Affero General Public License
21
- - along with this program. If not, see <http://www.gnu.org/licenses/>.
22
- -
23
- -->
24
-
25
- <template>
26
- <main id="app-content-vue" class="app-content no-snapper">
27
- <!-- @slot Provide content to the app content -->
28
- <slot />
29
- </main>
30
- </template>
31
-
32
- <script>
33
- import Hammer from 'hammerjs'
34
- import { emit } from '@nextcloud/event-bus'
35
-
36
- /**
37
- * App content container to be used for the main content of your app
38
- *
39
- */
40
- export default {
41
- name: 'AppContent',
42
-
43
- props: {
44
- // Allows to disable the control by swipe of the app navigation open state
45
- allowSwipeNavigation: {
46
- type: Boolean,
47
- default: true,
48
- },
49
- },
50
-
51
- mounted() {
52
- if (this.allowSwipeNavigation) {
53
- this.mc = new Hammer(this.$el, { cssProps: { userSelect: 'text' } })
54
- this.mc.on('swipeleft swiperight', this.handleSwipe)
55
- }
56
- },
57
- beforeDestroy() {
58
- this.mc.off('swipeleft swiperight', this.handleSwipe)
59
- },
60
- methods: {
61
- // handle the swipe event
62
- handleSwipe(e) {
63
- const minSwipeX = 70
64
- const touchzone = 40
65
- const startX = e.srcEvent.pageX - e.deltaX
66
- const hasEnoughDistance = Math.abs(e.deltaX) > minSwipeX
67
- if (hasEnoughDistance && startX < touchzone) {
68
- emit('toggle-navigation', {
69
- open: true,
70
- })
71
- } else if (hasEnoughDistance && startX < touchzone + 300) {
72
- emit('toggle-navigation', {
73
- open: false,
74
- })
75
- }
76
- },
77
- },
78
- }
79
- </script>
80
- <style lang="scss" scoped>
81
-
82
- .app-content {
83
- position: relative;
84
- z-index: 1000;
85
- flex-basis: 100vw;
86
- min-width: 0;
87
- min-height: 100%;
88
- // Overriding server styles TODO: cleanup!
89
- margin: 0 !important;
90
- background-color: var(--color-main-background);
91
- }
92
-
93
- </style>
@@ -1,23 +0,0 @@
1
- /*
2
- * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>
3
- *
4
- * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>
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
- import AppContent from './AppContent'
22
-
23
- export default AppContent
@@ -1,34 +0,0 @@
1
- <!--
2
- - @copyright Copyright (c) 2019 Christoph Wurst <christoph@winzerhof-wurst.at>
3
- -
4
- - @author Christoph Wurst <christoph@winzerhof-wurst.at>
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
- <template>
24
- <div class="app-content-details">
25
- <!-- @slot Provide content to the details view -->
26
- <slot />
27
- </div>
28
- </template>
29
-
30
- <script>
31
- export default {
32
- name: 'AppContentDetails',
33
- }
34
- </script>
@@ -1,23 +0,0 @@
1
- /*
2
- * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>
3
- *
4
- * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>
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
- import AppContentDetails from './AppContentDetails'
22
-
23
- export default AppContentDetails
@@ -1,44 +0,0 @@
1
- <!--
2
- - @copyright Copyright (c) 2019 Christoph Wurst <christoph@winzerhof-wurst.at>
3
- -
4
- - @author Christoph Wurst <christoph@winzerhof-wurst.at>
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
- <template>
24
- <div class="app-content-list"
25
- :class="{selection, showdetails: showDetails}">
26
- <slot />
27
- </div>
28
- </template>
29
-
30
- <script>
31
- export default {
32
- name: 'AppContentList',
33
- props: {
34
- selection: {
35
- type: Boolean,
36
- default: false,
37
- },
38
- showDetails: {
39
- type: Boolean,
40
- default: false,
41
- },
42
- },
43
- }
44
- </script>
@@ -1,23 +0,0 @@
1
- /*
2
- * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>
3
- *
4
- * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>
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
- import AppContentList from './AppContentList'
22
-
23
- export default AppContentList
@@ -1,190 +0,0 @@
1
- <!--
2
- - @copyright Copyright (c) 2019 Christoph Wurst <christoph@winzerhof-wurst.at>
3
- -
4
- - @author Christoph Wurst <christoph@winzerhof-wurst.at>
5
- - @author John Molakvoæ <skjnldsv@protonmail.com>
6
- - @author Marco Ambrosini <marcoambrosini@pm.me>
7
- -
8
- - @license GNU AGPL version 3 or any later version
9
- -
10
- - This program is free software: you can redistribute it and/or modify
11
- - it under the terms of the GNU Affero General Public License as
12
- - published by the Free Software Foundation, either version 3 of the
13
- - License, or (at your option) any later version.
14
- -
15
- - This program is distributed in the hope that it will be useful,
16
- - but WITHOUT ANY WARRANTY; without even the implied warranty of
17
- - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
- - GNU Affero General Public License for more details.
19
- -
20
- - You should have received a copy of the GNU Affero General Public License
21
- - along with this program. If not, see <http://www.gnu.org/licenses/>.
22
- -
23
- -->
24
- <docs>
25
- The navigation bar can be open and closed from anywhere in the app using the
26
- nextcloud event bus.
27
-
28
- ### Install the event bus package
29
-
30
- ```bash
31
- npm i -S @nextcloud/event-bus
32
- ```
33
-
34
- ### Usage
35
-
36
- #### Open the navigation
37
-
38
- ```js static
39
- import { emit } from '@nextcloud/event-bus'
40
- emit('toggle-navigation', {
41
- open: true,
42
- })
43
- ```
44
-
45
- #### Close the navigation
46
-
47
- ```js static
48
- import { emit } from '@nextcloud/event-bus'
49
- emit('toggle-navigation', {
50
- open: false,
51
- })
52
- ```
53
-
54
- </docs>
55
-
56
- <template>
57
- <div
58
- id="app-navigation-vue"
59
- class="app-navigation"
60
- role="navigation"
61
- :class="{'app-navigation--close':!open }">
62
- <AppNavigationToggle :open="open" @update:open="toggleNavigation" />
63
- <slot />
64
-
65
- <!-- List for Navigation li-items -->
66
- <ul class="app-navigation__list">
67
- <slot name="list" />
68
- </ul>
69
-
70
- <!-- Footer for e.g. AppNavigationSettings -->
71
- <slot name="footer" />
72
- </div>
73
- </template>
74
-
75
- <script>
76
- import { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'
77
- import AppNavigationToggle from '../AppNavigationToggle/AppNavigationToggle'
78
- import isMobile from '../../mixins/isMobile'
79
-
80
- export default {
81
- name: 'AppNavigation',
82
-
83
- components: {
84
- AppNavigationToggle,
85
- },
86
-
87
- mixins: [isMobile],
88
-
89
- data() {
90
- return {
91
- open: true,
92
- }
93
- },
94
-
95
- watch: {
96
- isMobile() {
97
- this.open = !this.isMobile
98
- },
99
- },
100
-
101
- mounted() {
102
- subscribe('toggle-navigation', this.toggleNavigationByEventBus)
103
- // Emit an event with the initial state of the navigation
104
- emit('navigation-toggled', {
105
- open: this.open,
106
- })
107
- },
108
- unmounted() {
109
- this.mc.off('swipeleft swiperight')
110
- this.mc.destroy()
111
- unsubscribe('toggle-navigation', this.toggleNavigationByEventBus)
112
- },
113
-
114
- methods: {
115
- /**
116
- * Toggle the navigation
117
- *
118
- * @param {Boolean} [state] set the state instead of inverting the current one
119
- */
120
- toggleNavigation(state) {
121
- this.open = (typeof state === 'undefined') ? !this.open : state
122
- const bodyStyles = getComputedStyle(document.body)
123
- const animationLength = parseInt(bodyStyles.getPropertyValue('--animation-quick')) || 100
124
-
125
- setTimeout(() => {
126
- emit('navigation-toggled', {
127
- open: this.open,
128
- })
129
- // We wait for 1.5 times the animation length to give the animation time to really finish.
130
- }, 1.5 * animationLength)
131
- },
132
- toggleNavigationByEventBus({ open }) {
133
- this.toggleNavigation(open)
134
- },
135
- },
136
- }
137
- </script>
138
-
139
- <style lang="scss" scoped>
140
-
141
- .app-navigation {
142
- will-change: transform;
143
- transition: transform var(--animation-quick), margin var(--animation-quick);
144
- width: $navigation-width;
145
- position: sticky;
146
- position: -webkit-sticky;
147
- top: $header-height;
148
- left: 0;
149
- // Above appcontent
150
- z-index: 1800;
151
- height: calc(100vh - #{$header-height});
152
- box-sizing: border-box;
153
- background-color: var(--color-main-background);
154
- -webkit-user-select: none;
155
- -moz-user-select: none;
156
- -ms-user-select: none;
157
- user-select: none;
158
- border-right: 1px solid var(--color-border);
159
- display: flex;
160
- flex-direction: column;
161
- flex-grow: 0;
162
- flex-shrink: 0;
163
-
164
- &--close {
165
- margin-left: - $navigation-width;
166
- transform: translateX(-100%);
167
- }
168
-
169
- //list of navigation items
170
- ul,
171
- &__list {
172
- position: relative;
173
- height: 100%;
174
- width: inherit;
175
- overflow-x: hidden;
176
- overflow-y: auto;
177
- box-sizing: border-box;
178
- display: flex;
179
- flex-direction: column;
180
- }
181
- }
182
-
183
- // When on mobile, we make the navigation slide over the appcontent
184
- @media only screen and (max-width: $breakpoint-mobile) {
185
- .app-navigation:not(.app-navigation--close) {
186
- margin-left: - $navigation-width;
187
- }
188
- }
189
-
190
- </style>