@conduction/nextcloud-vue 2.78.0 → 2.80.0

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 (259) hide show
  1. package/dist/bundled-packages.json +0 -2
  2. package/dist/esm/bundled-packages.json +0 -2
  3. package/dist/esm/components/CnActionButtons/CnActionButtons.vue2.js.map +1 -1
  4. package/dist/esm/components/CnActionButtons/CnActionButtons.vue3.js +3 -1
  5. package/dist/esm/components/CnActionButtons/CnActionButtons.vue3.js.map +1 -1
  6. package/dist/esm/components/CnActionsBar/CnActionsBar.vue2.js +32 -3
  7. package/dist/esm/components/CnActionsBar/CnActionsBar.vue2.js.map +1 -1
  8. package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js +115 -104
  9. package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js.map +1 -1
  10. package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js +12 -2
  11. package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js.map +1 -1
  12. package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js.map +1 -1
  13. package/dist/esm/components/CnBannerWidget/CnBannerWidget.vue2.js +39 -3
  14. package/dist/esm/components/CnBannerWidget/CnBannerWidget.vue2.js.map +1 -1
  15. package/dist/esm/components/CnBannerWidget/CnBannerWidget.vue3.js.map +1 -1
  16. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js +158 -0
  17. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js.map +1 -1
  18. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue3.js +157 -96
  19. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue3.js.map +1 -1
  20. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +139 -1
  21. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
  22. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +140 -92
  23. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
  24. package/dist/esm/components/CnDataTable/CnDataTable.vue2.js +77 -0
  25. package/dist/esm/components/CnDataTable/CnDataTable.vue2.js.map +1 -1
  26. package/dist/esm/components/CnDataTable/CnDataTable.vue3.js +5 -2
  27. package/dist/esm/components/CnDataTable/CnDataTable.vue3.js.map +1 -1
  28. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +62 -4
  29. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
  30. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
  31. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js +85 -1
  32. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js.map +1 -1
  33. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js +43 -4
  34. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js.map +1 -1
  35. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue.js +11 -0
  36. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue.js.map +1 -0
  37. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue2.js +736 -0
  38. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue2.js.map +1 -0
  39. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue3.js +238 -0
  40. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue3.js.map +1 -0
  41. package/dist/esm/components/CnFactsWidget/index.js +30 -0
  42. package/dist/esm/components/CnFactsWidget/index.js.map +1 -0
  43. package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue.js +10 -0
  44. package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue.js.map +1 -0
  45. package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue2.js +551 -0
  46. package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue2.js.map +1 -0
  47. package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue3.js +183 -0
  48. package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue3.js.map +1 -0
  49. package/dist/esm/components/CnFieldListWidget/index.js +29 -0
  50. package/dist/esm/components/CnFieldListWidget/index.js.map +1 -0
  51. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js +173 -5
  52. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js.map +1 -1
  53. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js +181 -99
  54. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js.map +1 -1
  55. package/dist/esm/components/CnFilesBrowser/filesBrowser.js +29 -11
  56. package/dist/esm/components/CnFilesBrowser/filesBrowser.js.map +1 -1
  57. package/dist/esm/components/CnFilesBrowser/openRegisterSource.js +252 -0
  58. package/dist/esm/components/CnFilesBrowser/openRegisterSource.js.map +1 -0
  59. package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js +66 -18
  60. package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js.map +1 -1
  61. package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js +4 -4
  62. package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js.map +1 -1
  63. package/dist/esm/components/CnFormPage/CnFormPage.vue2.js +18 -3
  64. package/dist/esm/components/CnFormPage/CnFormPage.vue2.js.map +1 -1
  65. package/dist/esm/components/CnFormPage/CnFormPage.vue3.js.map +1 -1
  66. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +330 -74
  67. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
  68. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +34 -15
  69. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
  70. package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue.js +10 -0
  71. package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue.js.map +1 -0
  72. package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue2.js +99 -0
  73. package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue2.js.map +1 -0
  74. package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue3.js +48 -0
  75. package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue3.js.map +1 -0
  76. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js +100 -3
  77. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js.map +1 -1
  78. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js +4 -2
  79. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js.map +1 -1
  80. package/dist/esm/components/CnPageRenderer/CnPageRenderer.vue2.js +29 -1
  81. package/dist/esm/components/CnPageRenderer/CnPageRenderer.vue2.js.map +1 -1
  82. package/dist/esm/components/CnPageRenderer/CnPageRenderer.vue3.js.map +1 -1
  83. package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue2.js +3 -2
  84. package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue2.js.map +1 -1
  85. package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue3.js.map +1 -1
  86. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue.js +10 -0
  87. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue.js.map +1 -0
  88. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js +387 -0
  89. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js.map +1 -0
  90. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue3.js +169 -0
  91. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue3.js.map +1 -0
  92. package/dist/esm/components/CnRecordListWidget/index.js +31 -0
  93. package/dist/esm/components/CnRecordListWidget/index.js.map +1 -0
  94. package/dist/esm/components/CnSavedViewsControl/CnSavedViewsControl.vue2.js.map +1 -1
  95. package/dist/esm/components/CnSavedViewsControl/CnSavedViewsControl.vue3.js +1 -1
  96. package/dist/esm/components/CnSavedViewsControl/CnSavedViewsControl.vue3.js.map +1 -1
  97. package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue.js +10 -0
  98. package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue.js.map +1 -0
  99. package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue2.js +351 -0
  100. package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue2.js.map +1 -0
  101. package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue3.js +71 -0
  102. package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue3.js.map +1 -0
  103. package/dist/esm/components/CnSectionsWidget/index.js +35 -0
  104. package/dist/esm/components/CnSectionsWidget/index.js.map +1 -0
  105. package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue2.js +81 -2
  106. package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue2.js.map +1 -1
  107. package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue3.js.map +1 -1
  108. package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js.map +1 -1
  109. package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js +1 -0
  110. package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js.map +1 -1
  111. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js +152 -8
  112. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js.map +1 -1
  113. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue3.js +84 -23
  114. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue3.js.map +1 -1
  115. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js +4 -0
  116. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js.map +1 -1
  117. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js +13 -0
  118. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js.map +1 -1
  119. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue3.js.map +1 -1
  120. package/dist/esm/components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue2.js +106 -2
  121. package/dist/esm/components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue2.js.map +1 -1
  122. package/dist/esm/components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue3.js +105 -53
  123. package/dist/esm/components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue3.js.map +1 -1
  124. package/dist/esm/composables/useAppManifest.js +8 -3
  125. package/dist/esm/composables/useAppManifest.js.map +1 -1
  126. package/dist/esm/composables/useFormDraft.js +140 -9
  127. package/dist/esm/composables/useFormDraft.js.map +1 -1
  128. package/dist/esm/index.js +5 -0
  129. package/dist/esm/index.js.map +1 -1
  130. package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue2.js +28 -20
  131. package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue2.js.map +1 -1
  132. package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue3.js +9 -0
  133. package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue3.js.map +1 -1
  134. package/dist/esm/integrations/builtin/field-inspection.js +21 -0
  135. package/dist/esm/integrations/builtin/field-inspection.js.map +1 -1
  136. package/dist/esm/integrations/offline/checklistSubmission.js +141 -0
  137. package/dist/esm/integrations/offline/checklistSubmission.js.map +1 -0
  138. package/dist/esm/integrations/offline/fieldCollectionHelpers.js +70 -5
  139. package/dist/esm/integrations/offline/fieldCollectionHelpers.js.map +1 -1
  140. package/dist/esm/integrations/offline/index.js +2 -1
  141. package/dist/esm/integrations/offline/index.js.map +1 -1
  142. package/dist/esm/integrations/offline/offlineDb.js +6 -1
  143. package/dist/esm/integrations/offline/offlineDb.js.map +1 -1
  144. package/dist/esm/integrations/offline/syncReplayService.js +8 -2
  145. package/dist/esm/integrations/offline/syncReplayService.js.map +1 -1
  146. package/dist/esm/l10n/en.json.js +72 -1
  147. package/dist/esm/l10n/en.json.js.map +1 -1
  148. package/dist/esm/l10n/nl.json.js +120 -2
  149. package/dist/esm/l10n/nl.json.js.map +1 -1
  150. package/dist/esm/nextcloud-vue.css +1314 -74
  151. package/dist/esm/utils/boardDate.js +193 -0
  152. package/dist/esm/utils/boardDate.js.map +1 -0
  153. package/dist/esm/utils/detailActionModel.js +60 -3
  154. package/dist/esm/utils/detailActionModel.js.map +1 -1
  155. package/dist/esm/utils/dynamicProperties.js +5 -1
  156. package/dist/esm/utils/dynamicProperties.js.map +1 -1
  157. package/dist/esm/utils/fillTemplate.js +114 -0
  158. package/dist/esm/utils/fillTemplate.js.map +1 -0
  159. package/dist/esm/utils/libraryWidgetKeys.js +4 -0
  160. package/dist/esm/utils/libraryWidgetKeys.js.map +1 -1
  161. package/dist/esm/utils/queryPresets.js +96 -0
  162. package/dist/esm/utils/queryPresets.js.map +1 -0
  163. package/dist/esm/utils/resolveFilterTokens.js +11 -0
  164. package/dist/esm/utils/resolveFilterTokens.js.map +1 -1
  165. package/dist/esm/utils/schema.js +21 -0
  166. package/dist/esm/utils/schema.js.map +1 -1
  167. package/dist/esm/utils/sentinelTokens.js +3 -3
  168. package/dist/esm/utils/sentinelTokens.js.map +1 -1
  169. package/dist/esm/utils/validateManifestV2.compiled.js +57 -6
  170. package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
  171. package/dist/esm/utils/widgetDispatch.js +7 -1
  172. package/dist/esm/utils/widgetDispatch.js.map +1 -1
  173. package/dist/nextcloud-vue.cjs.js +14278 -8169
  174. package/dist/nextcloud-vue.cjs.js.map +2 -2
  175. package/dist/nextcloud-vue.css +1314 -74
  176. package/l10n/en.json +72 -1
  177. package/l10n/nl.json +120 -2
  178. package/package.json +1 -1
  179. package/scripts/build-validators.js +26 -0
  180. package/src/components/CnActionButtons/CnActionButtons.vue +2 -0
  181. package/src/components/CnActionsBar/CnActionsBar.md +4 -0
  182. package/src/components/CnActionsBar/CnActionsBar.vue +83 -42
  183. package/src/components/CnAppRoot/CnAppRoot.vue +12 -2
  184. package/src/components/CnBannerWidget/CnBannerWidget.vue +39 -3
  185. package/src/components/CnCellRenderer/CnCellRenderer.vue +306 -2
  186. package/src/components/CnDashboardPage/CnDashboardPage.vue +219 -4
  187. package/src/components/CnDataTable/CnDataTable.md +2 -0
  188. package/src/components/CnDataTable/CnDataTable.vue +82 -2
  189. package/src/components/CnDetailPage/CnDetailPage.md +1 -1
  190. package/src/components/CnDetailPage/CnDetailPage.vue +63 -3
  191. package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +127 -1
  192. package/src/components/CnFactsWidget/CnFactsWidget.vue +1050 -0
  193. package/src/components/CnFactsWidget/index.js +29 -0
  194. package/src/components/CnFieldListWidget/CnFieldListWidget.vue +746 -0
  195. package/src/components/CnFieldListWidget/index.js +28 -0
  196. package/src/components/CnFilesBrowser/CnFilesBrowser.vue +232 -11
  197. package/src/components/CnFilesBrowser/filesBrowser.js +43 -2
  198. package/src/components/CnFilesBrowser/index.js +1 -0
  199. package/src/components/CnFilesBrowser/openRegisterSource.js +248 -0
  200. package/src/components/CnFormDialog/CnFormDialog.md +9 -3
  201. package/src/components/CnFormDialog/CnFormDialog.vue +70 -22
  202. package/src/components/CnFormPage/CnFormPage.vue +18 -3
  203. package/src/components/CnIndexPage/CnIndexPage.vue +281 -9
  204. package/src/components/CnIndexPage/CnIndexPageWidgets.vue +169 -0
  205. package/src/components/CnObjectSidebar/CnFilesTab.vue +103 -4
  206. package/src/components/CnPageRenderer/CnPageRenderer.vue +29 -1
  207. package/src/components/CnQuickFilterBar/CnQuickFilterBar.vue +3 -2
  208. package/src/components/CnRecordListWidget/CnRecordListWidget.vue +603 -0
  209. package/src/components/CnRecordListWidget/index.js +30 -0
  210. package/src/components/CnSavedViewsControl/CnSavedViewsControl.vue +1 -1
  211. package/src/components/CnSectionsWidget/CnSectionsWidget.vue +489 -0
  212. package/src/components/CnSectionsWidget/index.js +34 -0
  213. package/src/components/CnStagesWidget/CnStagesWidget.vue +81 -2
  214. package/src/components/CnStatWidget/CnStatWidget.vue +1 -1
  215. package/src/components/CnTabsWidget/CnTabsWidget.vue +214 -9
  216. package/src/components/CnWidgetGrid/registerDashboardWidgets.js +4 -0
  217. package/src/components/CnWidgetObjectTable/CnWidgetObjectTable.vue +13 -0
  218. package/src/components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue +188 -4
  219. package/src/components/index.js +5 -1
  220. package/src/composables/__tests__/useFormDraft.spec.js +69 -0
  221. package/src/composables/useAppManifest.js +8 -3
  222. package/src/composables/useFormDraft.js +139 -8
  223. package/src/css/form-field.css +14 -0
  224. package/src/css/index-page.css +71 -0
  225. package/src/css/kpi-card.css +32 -0
  226. package/src/css/look-board-detail.css +87 -0
  227. package/src/css/look-board-index.css +143 -14
  228. package/src/css/look-board.css +114 -2
  229. package/src/css/table.css +56 -0
  230. package/src/index.js +8 -0
  231. package/src/integrations/builtin/field-inspection/CnFieldInspectionCard.vue +35 -20
  232. package/src/integrations/builtin/field-inspection.js +21 -0
  233. package/src/integrations/offline/checklistSubmission.js +137 -0
  234. package/src/integrations/offline/fieldCollectionHelpers.js +69 -4
  235. package/src/integrations/offline/index.js +3 -0
  236. package/src/integrations/offline/offlineDb.js +6 -1
  237. package/src/integrations/offline/syncReplayService.js +8 -2
  238. package/src/schemas/app-manifest-v2.schema.json +149 -5
  239. package/src/utils/boardDate.js +189 -0
  240. package/src/utils/detailActionModel.js +59 -2
  241. package/src/utils/dynamicProperties.js +5 -1
  242. package/src/utils/fillTemplate.js +110 -0
  243. package/src/utils/libraryWidgetKeys.js +4 -0
  244. package/src/utils/queryPresets.js +93 -0
  245. package/src/utils/resolveFilterTokens.js +11 -0
  246. package/src/utils/schema.js +21 -0
  247. package/src/utils/sentinelTokens.js +3 -3
  248. package/src/utils/validateManifestV2.compiled.js +57 -2
  249. package/src/utils/widgetDispatch.js +7 -1
  250. package/dist/esm/_virtual/equal.js +0 -4
  251. package/dist/esm/_virtual/equal.js.map +0 -1
  252. package/dist/esm/_virtual/ucs2length.js +0 -4
  253. package/dist/esm/_virtual/ucs2length.js.map +0 -1
  254. package/dist/esm/node_modules/ajv/dist/runtime/equal.js +0 -9
  255. package/dist/esm/node_modules/ajv/dist/runtime/equal.js.map +0 -1
  256. package/dist/esm/node_modules/ajv/dist/runtime/ucs2length.js +0 -25
  257. package/dist/esm/node_modules/ajv/dist/runtime/ucs2length.js.map +0 -1
  258. package/dist/esm/node_modules/fast-deep-equal/index.js +0 -47
  259. package/dist/esm/node_modules/fast-deep-equal/index.js.map +0 -1
@@ -67,6 +67,11 @@ const _hoisted_29 = {
67
67
  class: "cn-files-browser__drop-hint",
68
68
  "data-testid": "cn-files-browser-drop-hint"
69
69
  };
70
+ const _hoisted_30 = {
71
+ key: 0,
72
+ class: "cn-files-browser__upload-error",
73
+ role: "alert"
74
+ };
70
75
 
71
76
  function render(_ctx, _cache, $props, $setup, $data, $options) {
72
77
  const _component_Upload = resolveComponent("Upload");
@@ -88,20 +93,21 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
88
93
  const _component_NcDateTime = resolveComponent("NcDateTime");
89
94
  const _component_CnCellRenderer = resolveComponent("CnCellRenderer");
90
95
  const _component_NcActionSeparator = resolveComponent("NcActionSeparator");
96
+ const _component_Download = resolveComponent("Download");
97
+ const _component_NcActionLink = resolveComponent("NcActionLink");
98
+ const _component_TrashCanOutline = resolveComponent("TrashCanOutline");
91
99
  const _component_Pencil = resolveComponent("Pencil");
92
100
  const _component_OpenInNew = resolveComponent("OpenInNew");
93
- const _component_NcActionLink = resolveComponent("NcActionLink");
94
- const _component_Download = resolveComponent("Download");
95
101
  const _component_NcTextField = resolveComponent("NcTextField");
96
102
  const _component_NcDialog = resolveComponent("NcDialog");
97
103
 
98
104
  return (openBlock(), createElementBlock("div", {
99
105
  class: normalizeClass(["cn-files-browser", { 'cn-files-browser--dragging': $data.dragging }]),
100
106
  "data-testid": "cn-files-browser",
101
- onDragenter: _cache[16] || (_cache[16] = withModifiers((...args) => ($options.onDragEnter && $options.onDragEnter(...args)), ["prevent"])),
102
- onDragover: _cache[17] || (_cache[17] = withModifiers((...args) => ($options.onDragOver && $options.onDragOver(...args)), ["prevent"])),
103
- onDragleave: _cache[18] || (_cache[18] = withModifiers((...args) => ($options.onDragLeave && $options.onDragLeave(...args)), ["prevent"])),
104
- onDrop: _cache[19] || (_cache[19] = withModifiers((...args) => ($options.onDrop && $options.onDrop(...args)), ["prevent"]))
107
+ onDragenter: _cache[18] || (_cache[18] = withModifiers((...args) => ($options.onDragEnter && $options.onDragEnter(...args)), ["prevent"])),
108
+ onDragover: _cache[19] || (_cache[19] = withModifiers((...args) => ($options.onDragOver && $options.onDragOver(...args)), ["prevent"])),
109
+ onDragleave: _cache[20] || (_cache[20] = withModifiers((...args) => ($options.onDragLeave && $options.onDragLeave(...args)), ["prevent"])),
110
+ onDrop: _cache[21] || (_cache[21] = withModifiers((...args) => ($options.onDrop && $options.onDrop(...args)), ["prevent"]))
105
111
  }, [
106
112
  ($props.dropOverlay && $data.dragging)
107
113
  ? (openBlock(), createElementBlock("div", _hoisted_1, [
@@ -158,85 +164,88 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
158
164
  _: 1 /* STABLE */
159
165
  }, 8 /* PROPS */, ["menuName"]))
160
166
  : createCommentVNode("v-if", true),
161
- createVNode(_component_NcActions, {
162
- menuName: $props.newLabel,
163
- forceMenu: true,
164
- forceName: true,
165
- variant: $props.uploadButton ? 'secondary' : 'primary',
166
- disabled: $data.folder === null,
167
- "data-testid": "cn-files-browser-new"
168
- }, {
169
- icon: withCtx(() => [
170
- createVNode(_component_Plus, { size: 20 })
171
- ]),
172
- default: withCtx(() => [
173
- createVNode(_component_NcActionButton, {
174
- closeAfterClick: true,
175
- "data-testid": "cn-files-browser-upload",
176
- onClick: $options.pickFiles
167
+ ($options.canChange)
168
+ ? (openBlock(), createBlock(_component_NcActions, {
169
+ key: 1,
170
+ menuName: $props.newLabel,
171
+ forceMenu: true,
172
+ forceName: true,
173
+ variant: $props.uploadButton ? 'secondary' : 'primary',
174
+ disabled: $data.folder === null,
175
+ "data-testid": "cn-files-browser-new"
177
176
  }, {
178
177
  icon: withCtx(() => [
179
- createVNode(_component_Upload, { size: 20 })
178
+ createVNode(_component_Plus, { size: 20 })
180
179
  ]),
181
180
  default: withCtx(() => [
182
- createTextVNode(" " + toDisplayString($props.uploadLabel), 1 /* TEXT */)
181
+ createVNode(_component_NcActionButton, {
182
+ closeAfterClick: true,
183
+ "data-testid": "cn-files-browser-upload",
184
+ onClick: $options.pickFiles
185
+ }, {
186
+ icon: withCtx(() => [
187
+ createVNode(_component_Upload, { size: 20 })
188
+ ]),
189
+ default: withCtx(() => [
190
+ createTextVNode(" " + toDisplayString($props.uploadLabel), 1 /* TEXT */)
191
+ ]),
192
+ _: 1 /* STABLE */
193
+ }, 8 /* PROPS */, ["onClick"]),
194
+ (openBlock(true), createElementBlock(Fragment, null, renderList($options.newMenuEntries, (entry) => {
195
+ return (openBlock(), createBlock(_component_NcActionButton, {
196
+ key: entry.id,
197
+ closeAfterClick: true,
198
+ "data-testid": `cn-files-browser-new-${entry.id}`,
199
+ onClick: $event => ($options.runNewEntry(entry))
200
+ }, {
201
+ icon: withCtx(() => [
202
+ (entry.iconSvgInline)
203
+ ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {
204
+ key: 0,
205
+ svg: entry.iconSvgInline
206
+ }, null, 8 /* PROPS */, ["svg"]))
207
+ : (entry.iconClass)
208
+ ? (openBlock(), createElementBlock("span", {
209
+ key: 1,
210
+ class: normalizeClass(entry.iconClass)
211
+ }, null, 2 /* CLASS */))
212
+ : (openBlock(), createBlock(_component_Plus, {
213
+ key: 2,
214
+ size: 20
215
+ }))
216
+ ]),
217
+ default: withCtx(() => [
218
+ createTextVNode(" " + toDisplayString(entry.displayName), 1 /* TEXT */)
219
+ ]),
220
+ _: 2 /* DYNAMIC */
221
+ }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["data-testid", "onClick"]))
222
+ }), 128 /* KEYED_FRAGMENT */)),
223
+ (openBlock(true), createElementBlock(Fragment, null, renderList($props.newActions, (action) => {
224
+ return (openBlock(), createBlock(_component_NcActionButton, {
225
+ key: `host-${action.id}`,
226
+ closeAfterClick: true,
227
+ "data-testid": `cn-files-browser-new-host-${action.id}`,
228
+ onClick: $event => ($options.runHostAction(action, null))
229
+ }, {
230
+ icon: withCtx(() => [
231
+ createVNode(_component_CnIcon, {
232
+ name: action.icon || 'Plus',
233
+ size: 20
234
+ }, null, 8 /* PROPS */, ["name"])
235
+ ]),
236
+ default: withCtx(() => [
237
+ createTextVNode(" " + toDisplayString(action.label), 1 /* TEXT */)
238
+ ]),
239
+ _: 2 /* DYNAMIC */
240
+ }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["data-testid", "onClick"]))
241
+ }), 128 /* KEYED_FRAGMENT */))
183
242
  ]),
184
243
  _: 1 /* STABLE */
185
- }, 8 /* PROPS */, ["onClick"]),
186
- (openBlock(true), createElementBlock(Fragment, null, renderList($options.newMenuEntries, (entry) => {
187
- return (openBlock(), createBlock(_component_NcActionButton, {
188
- key: entry.id,
189
- closeAfterClick: true,
190
- "data-testid": `cn-files-browser-new-${entry.id}`,
191
- onClick: $event => ($options.runNewEntry(entry))
192
- }, {
193
- icon: withCtx(() => [
194
- (entry.iconSvgInline)
195
- ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {
196
- key: 0,
197
- svg: entry.iconSvgInline
198
- }, null, 8 /* PROPS */, ["svg"]))
199
- : (entry.iconClass)
200
- ? (openBlock(), createElementBlock("span", {
201
- key: 1,
202
- class: normalizeClass(entry.iconClass)
203
- }, null, 2 /* CLASS */))
204
- : (openBlock(), createBlock(_component_Plus, {
205
- key: 2,
206
- size: 20
207
- }))
208
- ]),
209
- default: withCtx(() => [
210
- createTextVNode(" " + toDisplayString(entry.displayName), 1 /* TEXT */)
211
- ]),
212
- _: 2 /* DYNAMIC */
213
- }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["data-testid", "onClick"]))
214
- }), 128 /* KEYED_FRAGMENT */)),
215
- (openBlock(true), createElementBlock(Fragment, null, renderList($props.newActions, (action) => {
216
- return (openBlock(), createBlock(_component_NcActionButton, {
217
- key: `host-${action.id}`,
218
- closeAfterClick: true,
219
- "data-testid": `cn-files-browser-new-host-${action.id}`,
220
- onClick: $event => ($options.runHostAction(action, null))
221
- }, {
222
- icon: withCtx(() => [
223
- createVNode(_component_CnIcon, {
224
- name: action.icon || 'Plus',
225
- size: 20
226
- }, null, 8 /* PROPS */, ["name"])
227
- ]),
228
- default: withCtx(() => [
229
- createTextVNode(" " + toDisplayString(action.label), 1 /* TEXT */)
230
- ]),
231
- _: 2 /* DYNAMIC */
232
- }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["data-testid", "onClick"]))
233
- }), 128 /* KEYED_FRAGMENT */))
234
- ]),
235
- _: 1 /* STABLE */
236
- }, 8 /* PROPS */, ["menuName", "variant", "disabled"]),
237
- ($props.uploadButton)
244
+ }, 8 /* PROPS */, ["menuName", "variant", "disabled"]))
245
+ : createCommentVNode("v-if", true),
246
+ ($props.uploadButton && $options.canChange)
238
247
  ? (openBlock(), createBlock(_component_NcButton, {
239
- key: 1,
248
+ key: 2,
240
249
  variant: "primary",
241
250
  disabled: $data.folder === null,
242
251
  "data-testid": "cn-files-browser-upload-button",
@@ -309,7 +318,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
309
318
  ? (openBlock(), createBlock(_component_CnEmptyContent, {
310
319
  key: 5,
311
320
  name: $props.emptyLabel,
312
- description: $props.emptyHint,
321
+ description: $options.canChange ? $props.emptyHint : '',
313
322
  class: "cn-files-browser__state"
314
323
  }, {
315
324
  icon: withCtx(() => [
@@ -474,22 +483,58 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
474
483
  ($options.actionsFor(node).length > 0 || (!$options.isFolder(node) && $props.rowActions.length > 0))
475
484
  ? (openBlock(), createBlock(_component_NcActionSeparator, { key: 1 }))
476
485
  : createCommentVNode("v-if", true),
477
- createVNode(_component_NcActionButton, {
478
- closeAfterClick: true,
479
- "data-testid": "cn-files-browser-action-rename",
480
- onClick: $event => ($options.askRename(node))
481
- }, {
482
- icon: withCtx(() => [
483
- createVNode(_component_Pencil, { size: 20 })
484
- ]),
485
- default: withCtx(() => [
486
- createTextVNode(" " + toDisplayString($props.renameLabel), 1 /* TEXT */)
487
- ]),
488
- _: 1 /* STABLE */
489
- }, 8 /* PROPS */, ["onClick"]),
490
- (node.fileid)
486
+ ($props.source && $options.sourceDownloadUrl(node))
491
487
  ? (openBlock(), createBlock(_component_NcActionLink, {
492
488
  key: 2,
489
+ href: $options.sourceDownloadUrl(node),
490
+ download: node.basename,
491
+ closeAfterClick: true,
492
+ "data-testid": "cn-files-browser-action-download"
493
+ }, {
494
+ icon: withCtx(() => [
495
+ createVNode(_component_Download, { size: 20 })
496
+ ]),
497
+ default: withCtx(() => [
498
+ createTextVNode(" " + toDisplayString($props.downloadLabel), 1 /* TEXT */)
499
+ ]),
500
+ _: 1 /* STABLE */
501
+ }, 8 /* PROPS */, ["href", "download"]))
502
+ : createCommentVNode("v-if", true),
503
+ ($props.source && $options.canChange)
504
+ ? (openBlock(), createBlock(_component_NcActionButton, {
505
+ key: 3,
506
+ closeAfterClick: true,
507
+ "data-testid": "cn-files-browser-action-delete",
508
+ onClick: $event => ($options.askRemove(node))
509
+ }, {
510
+ icon: withCtx(() => [
511
+ createVNode(_component_TrashCanOutline, { size: 20 })
512
+ ]),
513
+ default: withCtx(() => [
514
+ createTextVNode(" " + toDisplayString($props.deleteLabel), 1 /* TEXT */)
515
+ ]),
516
+ _: 1 /* STABLE */
517
+ }, 8 /* PROPS */, ["onClick"]))
518
+ : createCommentVNode("v-if", true),
519
+ ($options.canChange)
520
+ ? (openBlock(), createBlock(_component_NcActionButton, {
521
+ key: 4,
522
+ closeAfterClick: true,
523
+ "data-testid": "cn-files-browser-action-rename",
524
+ onClick: $event => ($options.askRename(node))
525
+ }, {
526
+ icon: withCtx(() => [
527
+ createVNode(_component_Pencil, { size: 20 })
528
+ ]),
529
+ default: withCtx(() => [
530
+ createTextVNode(" " + toDisplayString($props.renameLabel), 1 /* TEXT */)
531
+ ]),
532
+ _: 1 /* STABLE */
533
+ }, 8 /* PROPS */, ["onClick"]))
534
+ : createCommentVNode("v-if", true),
535
+ (node.fileid && !$props.source)
536
+ ? (openBlock(), createBlock(_component_NcActionLink, {
537
+ key: 5,
493
538
  href: $options.permalink(node),
494
539
  target: "_blank",
495
540
  closeAfterClick: true
@@ -620,7 +665,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
620
665
  }), 128 /* KEYED_FRAGMENT */))
621
666
  ])
622
667
  ])),
623
- ($props.dropHint && !$data.loading && $data.error === '')
668
+ ($props.dropHint && $options.canChange && !$data.loading && $data.error === '')
624
669
  ? (openBlock(), createElementBlock("p", _hoisted_29, [
625
670
  createVNode(_component_Upload, { size: 16 }),
626
671
  createTextVNode(" " + toDisplayString($props.dropHintLabel), 1 /* TEXT */)
@@ -673,17 +718,54 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
673
718
  _: 1 /* STABLE */
674
719
  }, 8 /* PROPS */, ["name"]))
675
720
  : createCommentVNode("v-if", true),
676
- ($data.newFolderOpen)
721
+ ($data.removing !== null)
677
722
  ? (openBlock(), createBlock(_component_NcDialog, {
678
723
  key: 9,
724
+ name: $props.deleteLabel,
725
+ size: "small",
726
+ "data-testid": "cn-files-browser-delete",
727
+ onClosing: _cache[13] || (_cache[13] = $event => ($data.removing = null))
728
+ }, {
729
+ actions: withCtx(() => [
730
+ createVNode(_component_NcButton, {
731
+ onClick: _cache[12] || (_cache[12] = $event => ($data.removing = null))
732
+ }, {
733
+ default: withCtx(() => [
734
+ createTextVNode(toDisplayString($options.t('nextcloud-vue', 'Cancel')), 1 /* TEXT */)
735
+ ]),
736
+ _: 1 /* STABLE */
737
+ }),
738
+ createVNode(_component_NcButton, {
739
+ variant: "error",
740
+ "data-testid": "cn-files-browser-delete-confirm",
741
+ onClick: $options.remove
742
+ }, {
743
+ default: withCtx(() => [
744
+ createTextVNode(toDisplayString($props.deleteLabel), 1 /* TEXT */)
745
+ ]),
746
+ _: 1 /* STABLE */
747
+ }, 8 /* PROPS */, ["onClick"])
748
+ ]),
749
+ default: withCtx(() => [
750
+ createElementVNode("p", null, toDisplayString($options.t('nextcloud-vue', 'Delete {name}? This cannot be undone here.', { name: $data.removing.basename })), 1 /* TEXT */),
751
+ ($data.removeError)
752
+ ? (openBlock(), createElementBlock("p", _hoisted_30, toDisplayString($data.removeError), 1 /* TEXT */))
753
+ : createCommentVNode("v-if", true)
754
+ ]),
755
+ _: 1 /* STABLE */
756
+ }, 8 /* PROPS */, ["name"]))
757
+ : createCommentVNode("v-if", true),
758
+ ($data.newFolderOpen)
759
+ ? (openBlock(), createBlock(_component_NcDialog, {
760
+ key: 10,
679
761
  name: $props.newFolderLabel,
680
762
  size: "small",
681
763
  "data-testid": "cn-files-browser-new-folder",
682
- onClosing: _cache[15] || (_cache[15] = $event => ($data.newFolderOpen = false))
764
+ onClosing: _cache[17] || (_cache[17] = $event => ($data.newFolderOpen = false))
683
765
  }, {
684
766
  actions: withCtx(() => [
685
767
  createVNode(_component_NcButton, {
686
- onClick: _cache[14] || (_cache[14] = $event => ($data.newFolderOpen = false))
768
+ onClick: _cache[16] || (_cache[16] = $event => ($data.newFolderOpen = false))
687
769
  }, {
688
770
  default: withCtx(() => [
689
771
  createTextVNode(toDisplayString($options.t('nextcloud-vue', 'Cancel')), 1 /* TEXT */)
@@ -705,11 +787,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
705
787
  default: withCtx(() => [
706
788
  createElementVNode("form", {
707
789
  class: "cn-files-browser__new-folder",
708
- onSubmit: _cache[13] || (_cache[13] = withModifiers((...args) => ($options.createFolder && $options.createFolder(...args)), ["prevent"]))
790
+ onSubmit: _cache[15] || (_cache[15] = withModifiers((...args) => ($options.createFolder && $options.createFolder(...args)), ["prevent"]))
709
791
  }, [
710
792
  createVNode(_component_NcTextField, {
711
793
  modelValue: $data.newFolderName,
712
- "onUpdate:modelValue": _cache[12] || (_cache[12] = $event => (($data.newFolderName) = $event)),
794
+ "onUpdate:modelValue": _cache[14] || (_cache[14] = $event => (($data.newFolderName) = $event)),
713
795
  label: $options.t('nextcloud-vue', 'Folder name'),
714
796
  error: $data.newFolderError !== '',
715
797
  helperText: $data.newFolderError,