@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,25 +0,0 @@
1
- /**
2
- * @copyright Copyright (c) 2020 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
- import RichContenteditable from './RichContenteditable'
24
-
25
- export default RichContenteditable
@@ -1,207 +0,0 @@
1
- <!--
2
- -
3
- - @author Julius Härtl <jus@bitgrid.net>
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
-
23
- <template>
24
- <form ref="form"
25
- :disabled="disabled"
26
- @submit.prevent.stop="onSubmit">
27
- <div class="input-wrapper">
28
- <label :for="id" class="action-input__label">{{ label }}</label>
29
- <input :id="id"
30
- type="text"
31
- :value="value"
32
- :disabled="disabled"
33
- @input="onInput"
34
- @change="onChange">
35
- <input :id="idSubmit"
36
- :value="submitTranslated"
37
- type="submit"
38
- class="action-input__submit">
39
- <label v-show="!disabled" :for="idSubmit" class="action-input__label" />
40
- <p v-if="hint" class="hint">
41
- {{ hint }}
42
- </p>
43
- </div>
44
- </form>
45
- </template>
46
-
47
- <script>
48
- import { t } from '../../l10n'
49
- import GenRandomId from '../../utils/GenRandomId'
50
-
51
- export default {
52
- name: 'SettingsInputText',
53
- props: {
54
- /**
55
- * label of the select group element
56
- */
57
- label: {
58
- type: String,
59
- required: true,
60
- },
61
-
62
- /**
63
- * hint of the select group input
64
- */
65
- hint: {
66
- type: String,
67
- default: '',
68
- },
69
-
70
- /**
71
- * value of the select group input
72
- */
73
- value: {
74
- type: String,
75
- default: '',
76
- },
77
-
78
- /**
79
- * disabled state of the settings select group input
80
- */
81
- disabled: {
82
- type: Boolean,
83
- default: false,
84
- },
85
-
86
- /**
87
- * id attribute of the select group element
88
- */
89
- id: {
90
- type: String,
91
- default: () => 'settings-input-text-' + GenRandomId(),
92
- validator: id => id.trim() !== '',
93
- },
94
- },
95
-
96
- data() {
97
- return {
98
- submitTranslated: t('Submit'),
99
- }
100
- },
101
-
102
- computed: {
103
- /**
104
- * @returns {string}
105
- */
106
- idSubmit() {
107
- return this.id + '-submit'
108
- },
109
- },
110
- methods: {
111
- onInput(event) {
112
- this.$emit('input', event)
113
- /**
114
- * Emitted when the inputs value changes
115
- * @type {string}
116
- */
117
- this.$emit('update:value', event.target.value)
118
- },
119
- onSubmit(event) {
120
- if (!this.disabled) {
121
- /**
122
- * Emitted on submit of the input field
123
- * @type {Event}
124
- */
125
- this.$emit('submit', event)
126
- }
127
- },
128
- onChange(event) {
129
- /**
130
- * Emitted on change of the input field
131
- * @type {Event}
132
- */
133
- this.$emit('change', event)
134
- },
135
- },
136
- }
137
- </script>
138
-
139
- <style lang="scss" scoped>
140
-
141
- $input-margin: 4px;
142
-
143
- .input-wrapper {
144
- display: flex;
145
- align-items: flex-start;
146
- flex-wrap: wrap;
147
- width: 100%;
148
- max-width: 400px;
149
- &__form {
150
- display: flex;
151
- align-items: center;
152
- flex: 1 1 auto;
153
-
154
- margin: $input-margin 0;
155
- padding-right: $icon-margin;
156
- }
157
-
158
- &__submit {
159
- position: absolute;
160
- left: -10000px;
161
- top: auto;
162
- width: 1px;
163
- height: 1px;
164
- overflow: hidden;
165
- }
166
-
167
- &__label {
168
- display: flex;
169
- align-items: center;
170
- justify-content: center;
171
-
172
- width: #{$clickable-area - $input-margin * 2};
173
- height: #{$clickable-area - $input-margin * 2};
174
-
175
- cursor: pointer;
176
-
177
- opacity: $opacity_full;
178
- color: var(--color-text-lighter);
179
- border: 1px solid var(--color-border-dark);
180
- border-left-color: transparent;
181
- border-radius: 0 var(--border-radius) var(--border-radius) 0;
182
- /* Avoid background under border */
183
- background-color: var(--color-main-background);
184
- background-clip: padding-box;
185
-
186
- font-size: $icon-size;
187
- }
188
-
189
- &__input[type=text] {
190
- flex-grow: 1;
191
- white-space: nowrap;
192
- text-overflow: ellipsis;
193
- overflow: hidden;
194
- cursor: text;
195
- }
196
-
197
- // if disabled, change cursor
198
- &:disabled {
199
- cursor: default;
200
- }
201
-
202
- .hint {
203
- color: var(--color-text-lighter);
204
- }
205
- }
206
-
207
- </style>
@@ -1,24 +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 SettingsInputText from './SettingsInputText'
23
-
24
- export default SettingsInputText
@@ -1,151 +0,0 @@
1
- <!--
2
- - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>
3
- -
4
- - @author Julius Härtl <jus@bitgrid.net>
5
- - @author Greta Doci <gretadoci@gmail.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
- <docs>
25
- ### General description
26
-
27
- This component is to be used in the settings section of nextcloud.
28
-
29
- ### Examples
30
-
31
- ```vue
32
- <template>
33
- <SettingsSection
34
- title="Two-Factor Authentication"
35
- description="Two-factor authentication can be enforced for all users and specific groups."
36
- doc-url="https://docs.nextcloud.com/server/19/go.php?to=admin-2fa">
37
- Your settings here
38
- </SettingsSection>
39
- </template>
40
- ```
41
- </docs>
42
-
43
- <template>
44
- <div class="settings-section">
45
- <h2 class="settings-section__title">
46
- {{ title }}
47
- <a v-if="hasDocUrl"
48
- :href="docUrl"
49
- class="settings-section__info"
50
- role=""
51
- :title="docTitleTranslated" />
52
- </h2>
53
- <p v-if="hasDescription"
54
- class="settings-section__desc">
55
- {{ description }}
56
- </p>
57
- <slot />
58
- </div>
59
- </template>
60
-
61
- <script>
62
- import { t } from '../../l10n'
63
-
64
- export default {
65
- name: 'SettingsSection',
66
- components: {
67
-
68
- },
69
-
70
- props: {
71
- title: {
72
- type: String,
73
- required: true,
74
- },
75
- description: {
76
- type: String,
77
- default: '',
78
- },
79
- docUrl: {
80
- type: String,
81
- default: '',
82
- },
83
- },
84
-
85
- data() {
86
- return {
87
- docTitleTranslated: t('External documentation for {title}', {
88
- title: this.title,
89
- }),
90
- }
91
- },
92
-
93
- computed: {
94
- hasDescription() {
95
- return this.description.length > 0
96
- },
97
- hasDocUrl() {
98
- return this.docUrl.length > 0
99
- },
100
- },
101
- }
102
-
103
- </script>
104
-
105
- <style lang="scss" scoped>
106
- @import '../../fonts/scss/iconfont-vue';
107
-
108
- .settings-section {
109
- display: block;
110
- margin-bottom: auto;
111
- padding: 30px;
112
-
113
- &:not(:last-child) {
114
- border-bottom: 1px solid var(--color-border);
115
- }
116
-
117
- &__title {
118
- display: inline-flex;
119
- align-items: center;
120
- justify-content: center;
121
- font-size: 20px;
122
- font-weight: bold;
123
- }
124
-
125
- &__info {
126
- display: flex;
127
- align-items: center;
128
- justify-content: center;
129
- width: $clickable-area;
130
- height: $clickable-area;
131
- // make sure to properly align the icon with the text
132
- margin: -$icon-margin;
133
- margin-left: 0;
134
- opacity: $opacity_normal;
135
- font-size: $icon-size;
136
-
137
- @include iconfont('info');
138
-
139
- &:hover, &:focus, &:active {
140
- opacity: $opacity_full;
141
- }
142
- }
143
-
144
- &__desc {
145
- margin-top: -0.2em;
146
- margin-bottom: 1em;
147
- opacity: $opacity_normal;
148
- }
149
- }
150
-
151
- </style>
@@ -1,24 +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 SettingsSection from './SettingsSection'
23
-
24
- export default SettingsSection
@@ -1,149 +0,0 @@
1
- <!--
2
- - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>
3
- -
4
- - @author Julius Härtl <jus@bitgrid.net>
5
- - @author Greta Doci <gretadoci@gmail.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
- <template>
25
- <Multiselect :value="inputValue"
26
- :options="groupsArray"
27
- :options-limit="5"
28
- :placeholder="label"
29
- track-by="id"
30
- label="displayname"
31
- class="multiselect-vue"
32
- :multiple="true"
33
- :close-on-select="false"
34
- :tag-width="60"
35
- :disabled="disabled"
36
- @input="update"
37
- @search-change="findGroup">
38
- <span slot="noResult">{{ t( 'No results') }}</span>
39
- </Multiselect>
40
- </template>
41
-
42
- <script>
43
- import axios from '@nextcloud/axios'
44
- import Multiselect from '../../components/Multiselect/Multiselect'
45
- import GenRandomId from '../../utils/GenRandomId'
46
- import { generateOcsUrl } from '@nextcloud/router'
47
- import { showError } from '@nextcloud/dialogs'
48
- import l10n from '../../mixins/l10n'
49
- export default {
50
- name: 'SettingsSelectGroup',
51
- components: {
52
- Multiselect,
53
- },
54
- mixins: [l10n],
55
- props: {
56
- /**
57
- * label of the select group element
58
- */
59
- label: {
60
- type: String,
61
- required: true,
62
- },
63
-
64
- /**
65
- * hint of the select group input
66
- */
67
- hint: {
68
- type: String,
69
- default: '',
70
- },
71
-
72
- /**
73
- * id attribute of the select group element
74
- */
75
- id: {
76
- type: String,
77
- default: () => 'action-' + GenRandomId(),
78
- validator: id => id.trim() !== '',
79
- },
80
-
81
- /**
82
- * value of the select group input
83
- */
84
- value: {
85
- type: Array,
86
- default: () => [],
87
- },
88
-
89
- /**
90
- * disabled state of the settings select group input
91
- */
92
- disabled: {
93
- type: Boolean,
94
- default: false,
95
- },
96
- },
97
- data() {
98
- return {
99
- groups: {},
100
- randId: GenRandomId(),
101
- }
102
- },
103
- computed: {
104
- inputValue() {
105
- return this.getValueObject()
106
- },
107
- getValueObject() {
108
- return this.value.filter((group) => group !== '' && typeof group !== 'undefined').map(
109
- (id) => {
110
- if (typeof this.groups[id] === 'undefined') {
111
- return {
112
- id,
113
- displayname: id,
114
- }
115
- }
116
- return this.groups[id]
117
- }
118
- )
119
- },
120
- groupsArray() {
121
- return Object.values(this.groups)
122
- },
123
- },
124
- methods: {
125
- update() {
126
- this.$emit('input', this.inputValue.map((element) => element.id))
127
- },
128
- async findGroup(query) {
129
- try {
130
- query = typeof query === 'string' ? encodeURI(query) : ''
131
- const response = await axios.get(generateOcsUrl(`cloud/groups/details?search=${query}&limit=10`, 2))
132
-
133
- if (Object.keys(response.data.ocs.data.groups).length > 0) {
134
- response.data.ocs.data.groups.forEach((element) => {
135
- if (typeof this.groups[element.id] === 'undefined') {
136
- this.$set(this.groups, element.id, element)
137
- }
138
- })
139
- return true
140
- }
141
- } catch (error) {
142
- this.$emit('error', error)
143
- showError(t('Unable to search the group'))
144
- }
145
- return false
146
- },
147
- },
148
- }
149
- </script>