@conduction/nextcloud-vue 2.100.0 → 2.102.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 (168) hide show
  1. package/dist/esm/components/CnActionsBar/CnActionsBar.vue2.js +22 -0
  2. package/dist/esm/components/CnActionsBar/CnActionsBar.vue2.js.map +1 -1
  3. package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js +8 -6
  4. package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js.map +1 -1
  5. package/dist/esm/components/CnChartWidget/CnChartWidget.vue.js +1 -1
  6. package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js +29 -4
  7. package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js.map +1 -1
  8. package/dist/esm/components/CnChartWidget/CnChartWidget.vue3.js +9 -1
  9. package/dist/esm/components/CnChartWidget/CnChartWidget.vue3.js.map +1 -1
  10. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue.js +1 -1
  11. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue2.js +22 -1
  12. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue2.js.map +1 -1
  13. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue3.js +26 -16
  14. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue3.js.map +1 -1
  15. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue.js +1 -1
  16. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +70 -6
  17. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
  18. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +105 -74
  19. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
  20. package/dist/esm/components/CnExportsWidget/CnExportsWidget.vue.js +9 -0
  21. package/dist/esm/components/CnExportsWidget/CnExportsWidget.vue.js.map +1 -0
  22. package/dist/esm/components/CnExportsWidget/CnExportsWidget.vue2.js +139 -0
  23. package/dist/esm/components/CnExportsWidget/CnExportsWidget.vue2.js.map +1 -0
  24. package/dist/esm/components/CnExportsWidget/CnExportsWidget.vue3.js +76 -0
  25. package/dist/esm/components/CnExportsWidget/CnExportsWidget.vue3.js.map +1 -0
  26. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue.js +1 -1
  27. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js +160 -2
  28. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js.map +1 -1
  29. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js +206 -94
  30. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js.map +1 -1
  31. package/dist/esm/components/CnFilesBrowser/filesReview.js +61 -0
  32. package/dist/esm/components/CnFilesBrowser/filesReview.js.map +1 -0
  33. package/dist/esm/components/CnGroupedCardsWidget/CnGroupedCardsWidget.vue.js +9 -0
  34. package/dist/esm/components/CnGroupedCardsWidget/CnGroupedCardsWidget.vue.js.map +1 -0
  35. package/dist/esm/components/CnGroupedCardsWidget/CnGroupedCardsWidget.vue2.js +279 -0
  36. package/dist/esm/components/CnGroupedCardsWidget/CnGroupedCardsWidget.vue2.js.map +1 -0
  37. package/dist/esm/components/CnGroupedCardsWidget/CnGroupedCardsWidget.vue3.js +122 -0
  38. package/dist/esm/components/CnGroupedCardsWidget/CnGroupedCardsWidget.vue3.js.map +1 -0
  39. package/dist/esm/components/CnGroupedCardsWidget/index.js +29 -0
  40. package/dist/esm/components/CnGroupedCardsWidget/index.js.map +1 -0
  41. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +320 -74
  42. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
  43. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +323 -213
  44. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
  45. package/dist/esm/components/CnIndexPage/useNamedSource.js +30 -3
  46. package/dist/esm/components/CnIndexPage/useNamedSource.js.map +1 -1
  47. package/dist/esm/components/CnMapWidget/CnMapWidget.vue.js +1 -1
  48. package/dist/esm/components/CnMapWidget/CnMapWidget.vue2.js +15 -0
  49. package/dist/esm/components/CnMapWidget/CnMapWidget.vue2.js.map +1 -1
  50. package/dist/esm/components/CnMapWidget/CnMapWidget.vue3.js.map +1 -1
  51. package/dist/esm/components/CnMenuWidget/CnMenuWidget.vue.js +1 -1
  52. package/dist/esm/components/CnMenuWidget/CnMenuWidget.vue2.js +25 -1
  53. package/dist/esm/components/CnMenuWidget/CnMenuWidget.vue2.js.map +1 -1
  54. package/dist/esm/components/CnMenuWidget/CnMenuWidget.vue3.js.map +1 -1
  55. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue.js +1 -1
  56. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js +14 -1
  57. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js.map +1 -1
  58. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js +14 -6
  59. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js.map +1 -1
  60. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue.js +1 -1
  61. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js +10 -0
  62. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js.map +1 -1
  63. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js +6 -1
  64. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js.map +1 -1
  65. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue.js +1 -1
  66. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue2.js +91 -4
  67. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue2.js.map +1 -1
  68. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue3.js +63 -38
  69. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue3.js.map +1 -1
  70. package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue.js +1 -1
  71. package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue2.js +106 -4
  72. package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue2.js.map +1 -1
  73. package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue3.js +70 -25
  74. package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue3.js.map +1 -1
  75. package/dist/esm/components/CnSavedViewAlertWidget/CnSavedViewAlertWidget.vue.js +9 -0
  76. package/dist/esm/components/CnSavedViewAlertWidget/CnSavedViewAlertWidget.vue.js.map +1 -0
  77. package/dist/esm/components/CnSavedViewAlertWidget/CnSavedViewAlertWidget.vue2.js +175 -0
  78. package/dist/esm/components/CnSavedViewAlertWidget/CnSavedViewAlertWidget.vue2.js.map +1 -0
  79. package/dist/esm/components/CnSavedViewAlertWidget/CnSavedViewAlertWidget.vue3.js +77 -0
  80. package/dist/esm/components/CnSavedViewAlertWidget/CnSavedViewAlertWidget.vue3.js.map +1 -0
  81. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue.js +1 -1
  82. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js +35 -2
  83. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js.map +1 -1
  84. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js.map +1 -1
  85. package/dist/esm/components/CnWidgetGrid/builtInWidgets.js +4 -0
  86. package/dist/esm/components/CnWidgetGrid/builtInWidgets.js.map +1 -1
  87. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js +1 -0
  88. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js.map +1 -1
  89. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue.js +1 -1
  90. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js +2 -23
  91. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js.map +1 -1
  92. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue3.js.map +1 -1
  93. package/dist/esm/composables/indexSources.js +176 -20
  94. package/dist/esm/composables/indexSources.js.map +1 -1
  95. package/dist/esm/composables/useEndpointSource.js +28 -6
  96. package/dist/esm/composables/useEndpointSource.js.map +1 -1
  97. package/dist/esm/index.js +1 -0
  98. package/dist/esm/index.js.map +1 -1
  99. package/dist/esm/l10n/en.json.js +41 -1
  100. package/dist/esm/l10n/en.json.js.map +1 -1
  101. package/dist/esm/l10n/nl.json.js +39 -1
  102. package/dist/esm/l10n/nl.json.js.map +1 -1
  103. package/dist/esm/library-style.js +1 -1
  104. package/dist/esm/nextcloud-vue.css +939 -376
  105. package/dist/esm/utils/builtInFormatters.js +24 -4
  106. package/dist/esm/utils/builtInFormatters.js.map +1 -1
  107. package/dist/esm/utils/languageMapText.js +50 -0
  108. package/dist/esm/utils/languageMapText.js.map +1 -0
  109. package/dist/esm/utils/libraryWidgetKeys.js +3 -0
  110. package/dist/esm/utils/libraryWidgetKeys.js.map +1 -1
  111. package/dist/esm/utils/mapList.js +71 -0
  112. package/dist/esm/utils/mapList.js.map +1 -0
  113. package/dist/esm/utils/rowClassRules.js +43 -0
  114. package/dist/esm/utils/rowClassRules.js.map +1 -0
  115. package/dist/esm/utils/validateManifestV2.compiled.js +3 -3
  116. package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
  117. package/dist/esm/utils/visibleWhen.js +19 -2
  118. package/dist/esm/utils/visibleWhen.js.map +1 -1
  119. package/dist/nextcloud-vue.cjs.js +9681 -7136
  120. package/dist/nextcloud-vue.cjs.js.map +2 -2
  121. package/dist/nextcloud-vue.css +939 -376
  122. package/l10n/en.json +41 -1
  123. package/l10n/nl.json +39 -1
  124. package/package.json +1 -1
  125. package/src/components/CnActionsBar/CnActionsBar.md +1 -0
  126. package/src/components/CnActionsBar/CnActionsBar.vue +31 -4
  127. package/src/components/CnChartWidget/CnChartWidget.md +3 -2
  128. package/src/components/CnChartWidget/CnChartWidget.vue +42 -4
  129. package/src/components/CnChoiceCards/CnChoiceCards.md +39 -0
  130. package/src/components/CnChoiceCards/CnChoiceCards.vue +93 -16
  131. package/src/components/CnDashboardPage/CnDashboardPage.vue +110 -21
  132. package/src/components/CnExportsWidget/CnExportsWidget.vue +233 -0
  133. package/src/components/CnExportsWidget/index.js +7 -0
  134. package/src/components/CnFilesBrowser/CnFilesBrowser.vue +324 -0
  135. package/src/components/CnFilesBrowser/filesReview.js +57 -0
  136. package/src/components/CnGroupedCardsWidget/CnGroupedCardsWidget.vue +433 -0
  137. package/src/components/CnGroupedCardsWidget/index.js +28 -0
  138. package/src/components/CnIndexPage/CnIndexPage.md +5 -1
  139. package/src/components/CnIndexPage/CnIndexPage.vue +313 -9
  140. package/src/components/CnIndexPage/useNamedSource.js +30 -3
  141. package/src/components/CnMapWidget/CnMapWidget.vue +37 -0
  142. package/src/components/CnMenuWidget/CnMenuWidget.vue +25 -1
  143. package/src/components/CnObjectListWidget/CnObjectListWidget.vue +29 -1
  144. package/src/components/CnObjectSidebar/CnFilesTab.vue +15 -0
  145. package/src/components/CnOrderedListField/CnOrderedListField.vue +151 -5
  146. package/src/components/CnQuickFilterBar/CnQuickFilterBar.md +1 -0
  147. package/src/components/CnQuickFilterBar/CnQuickFilterBar.vue +159 -5
  148. package/src/components/CnSavedViewAlertWidget/CnSavedViewAlertWidget.vue +272 -0
  149. package/src/components/CnSavedViewAlertWidget/index.js +7 -0
  150. package/src/components/CnSetupWizard/CnSetupWizard.vue +35 -2
  151. package/src/components/CnWidgetGrid/builtInWidgets.js +4 -0
  152. package/src/components/CnWidgetGrid/registerDashboardWidgets.js +1 -0
  153. package/src/components/CnWidgetObjectTable/CnWidgetObjectTable.vue +2 -23
  154. package/src/components/index.js +3 -0
  155. package/src/composables/indexSources.js +175 -19
  156. package/src/composables/useEndpointSource.js +28 -6
  157. package/src/css/index-page.css +117 -0
  158. package/src/css/look-board-index.css +10 -0
  159. package/src/css/look-board.css +44 -0
  160. package/src/index.js +1 -0
  161. package/src/schemas/app-manifest-v2.schema.json +85 -3
  162. package/src/utils/builtInFormatters.js +24 -4
  163. package/src/utils/languageMapText.js +46 -0
  164. package/src/utils/libraryWidgetKeys.js +3 -0
  165. package/src/utils/mapList.js +67 -0
  166. package/src/utils/rowClassRules.js +39 -0
  167. package/src/utils/validateManifestV2.compiled.js +3 -3
  168. package/src/utils/visibleWhen.js +19 -2
@@ -1,4 +1,4 @@
1
- import { resolveComponent, openBlock, createElementBlock, normalizeClass, withModifiers, createElementVNode, createVNode, toDisplayString, createCommentVNode, withCtx, Fragment, renderList, createBlock, createTextVNode, resolveDynamicComponent, createSlots } from 'vue';
1
+ import { resolveComponent, openBlock, createElementBlock, normalizeClass, withModifiers, createElementVNode, createVNode, toDisplayString, createCommentVNode, withCtx, Fragment, renderList, createBlock, createTextVNode, createSlots, renderSlot, withDirectives, normalizeStyle, vShow, resolveDynamicComponent } from 'vue';
2
2
 
3
3
  const _hoisted_1 = {
4
4
  key: 0,
@@ -29,92 +29,115 @@ const _hoisted_9 = {
29
29
  };
30
30
  const _hoisted_10 = {
31
31
  key: 3,
32
+ class: "cn-files-browser__review",
33
+ "data-testid": "cn-files-browser-review"
34
+ };
35
+ const _hoisted_11 = { class: "cn-files-browser__review-head" };
36
+ const _hoisted_12 = { class: "cn-files-browser__review-title" };
37
+ const _hoisted_13 = {
38
+ key: 0,
39
+ class: "cn-files-browser__review-sub"
40
+ };
41
+ const _hoisted_14 = ["aria-label"];
42
+ const _hoisted_15 = { class: "cn-files-browser__review-legend" };
43
+ const _hoisted_16 = {
44
+ key: 4,
32
45
  class: "cn-files-browser__facets",
33
46
  "data-testid": "cn-files-browser-facets"
34
47
  };
35
- const _hoisted_11 = ["aria-label"];
36
- const _hoisted_12 = ["aria-pressed", "onClick"];
37
- const _hoisted_13 = { class: "cn-files-browser__facet-count" };
38
- const _hoisted_14 = ["aria-label"];
39
- const _hoisted_15 = {
48
+ const _hoisted_17 = ["aria-label"];
49
+ const _hoisted_18 = ["aria-pressed", "onClick"];
50
+ const _hoisted_19 = { class: "cn-files-browser__facet-count" };
51
+ const _hoisted_20 = ["aria-label"];
52
+ const _hoisted_21 = {
40
53
  class: "cn-files-browser__bulk-count",
41
54
  "aria-live": "polite",
42
55
  "data-testid": "cn-files-browser-bulk-count"
43
56
  };
44
- const _hoisted_16 = {
57
+ const _hoisted_22 = {
45
58
  class: "cn-files-browser__table",
46
59
  "data-testid": "cn-files-browser-table"
47
60
  };
48
- const _hoisted_17 = {
61
+ const _hoisted_23 = {
49
62
  key: 0,
50
63
  class: "cn-files-browser__col-select",
51
64
  scope: "col"
52
65
  };
53
- const _hoisted_18 = ["checked", ".indeterminate", "disabled", "aria-label"];
54
- const _hoisted_19 = {
66
+ const _hoisted_24 = ["checked", ".indeterminate", "disabled", "aria-label"];
67
+ const _hoisted_25 = {
55
68
  class: "cn-files-browser__col-icon",
56
69
  scope: "col"
57
70
  };
58
- const _hoisted_20 = { class: "hidden-visually" };
59
- const _hoisted_21 = ["aria-sort", "data-testid"];
60
- const _hoisted_22 = ["onClick"];
61
- const _hoisted_23 = {
71
+ const _hoisted_26 = { class: "hidden-visually" };
72
+ const _hoisted_27 = ["aria-sort", "data-testid"];
73
+ const _hoisted_28 = ["onClick"];
74
+ const _hoisted_29 = {
62
75
  class: "cn-files-browser__col-actions",
63
76
  scope: "col"
64
77
  };
65
- const _hoisted_24 = { class: "hidden-visually" };
66
- const _hoisted_25 = {
78
+ const _hoisted_30 = { class: "hidden-visually" };
79
+ const _hoisted_31 = {
67
80
  key: 0,
68
81
  class: "cn-files-browser__group",
69
82
  "data-testid": "cn-files-browser-group"
70
83
  };
71
- const _hoisted_26 = ["colspan"];
72
- const _hoisted_27 = { class: "cn-files-browser__group-count" };
73
- const _hoisted_28 = ["data-name", "onClick", "onAuxclick"];
74
- const _hoisted_29 = ["checked", "aria-label", "onChange"];
75
- const _hoisted_30 = { class: "cn-files-browser__col-icon" };
76
- const _hoisted_31 = ["src", "onError"];
77
- const _hoisted_32 = ["src"];
78
- const _hoisted_33 = ["data-testid"];
79
- const _hoisted_34 = {
84
+ const _hoisted_32 = ["colspan"];
85
+ const _hoisted_33 = { class: "cn-files-browser__group-count" };
86
+ const _hoisted_34 = ["data-name", "onClick", "onAuxclick"];
87
+ const _hoisted_35 = ["checked", "aria-label", "onChange"];
88
+ const _hoisted_36 = { class: "cn-files-browser__col-icon" };
89
+ const _hoisted_37 = ["src", "onError"];
90
+ const _hoisted_38 = ["src"];
91
+ const _hoisted_39 = ["data-testid"];
92
+ const _hoisted_40 = {
80
93
  key: 0,
81
94
  class: "cn-files-browser__name"
82
95
  };
83
- const _hoisted_35 = {
96
+ const _hoisted_41 = {
97
+ key: 1,
98
+ class: "cn-files-browser__name-secondary",
99
+ "data-testid": "cn-files-browser-name-secondary"
100
+ };
101
+ const _hoisted_42 = {
84
102
  key: 0,
85
103
  class: "cn-files-browser__no-match-row"
86
104
  };
87
- const _hoisted_36 = ["colspan"];
88
- const _hoisted_37 = ["data-name", "onClick", "onAuxclick"];
89
- const _hoisted_38 = {
105
+ const _hoisted_43 = ["colspan"];
106
+ const _hoisted_44 = ["data-name", "onClick", "onAuxclick"];
107
+ const _hoisted_45 = {
90
108
  key: 0,
91
109
  class: "cn-files-browser__col-select"
92
110
  };
93
- const _hoisted_39 = { class: "cn-files-browser__col-icon" };
94
- const _hoisted_40 = ["src"];
95
- const _hoisted_41 = { class: "cn-files-browser__name" };
96
- const _hoisted_42 = {
111
+ const _hoisted_46 = { class: "cn-files-browser__col-icon" };
112
+ const _hoisted_47 = ["src"];
113
+ const _hoisted_48 = { class: "cn-files-browser__name" };
114
+ const _hoisted_49 = {
97
115
  key: 0,
98
116
  class: "cn-files-browser__note"
99
117
  };
100
- const _hoisted_43 = ["href"];
101
- const _hoisted_44 = ["aria-label"];
102
- const _hoisted_45 = ["data-testid"];
103
- const _hoisted_46 = { class: "cn-files-browser__side-title" };
104
- const _hoisted_47 = {
118
+ const _hoisted_50 = ["href"];
119
+ const _hoisted_51 = ["aria-label"];
120
+ const _hoisted_52 = ["data-testid"];
121
+ const _hoisted_53 = { class: "cn-files-browser__side-title" };
122
+ const _hoisted_54 = {
105
123
  key: 0,
106
124
  class: "cn-files-browser__side-facts"
107
125
  };
108
- const _hoisted_48 = {
126
+ const _hoisted_55 = {
109
127
  key: 1,
110
128
  class: "cn-files-browser__side-actions"
111
129
  };
112
- const _hoisted_49 = {
113
- key: 9,
130
+ const _hoisted_56 = {
131
+ key: 10,
114
132
  class: "cn-files-browser__drop-hint",
115
133
  "data-testid": "cn-files-browser-drop-hint"
116
134
  };
117
- const _hoisted_50 = {
135
+ const _hoisted_57 = {
136
+ key: 11,
137
+ class: "cn-files-browser__footnote",
138
+ "data-testid": "cn-files-browser-footnote"
139
+ };
140
+ const _hoisted_58 = {
118
141
  key: 0,
119
142
  class: "cn-files-browser__upload-error",
120
143
  role: "alert"
@@ -290,6 +313,34 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
290
313
  _: 1 /* STABLE */
291
314
  }, 8 /* PROPS */, ["menuName", "variant", "disabled"]))
292
315
  : createCommentVNode("v-if", true),
316
+ (openBlock(true), createElementBlock(Fragment, null, renderList($props.headerActions, (action) => {
317
+ return (openBlock(), createBlock(_component_NcButton, {
318
+ key: `header-${action.id}`,
319
+ variant: action.variant === 'primary' ? 'primary' : 'secondary',
320
+ disabled: $data.folder === null,
321
+ "data-testid": `cn-files-browser-header-action-${action.id}`,
322
+ onClick: $event => ($options.runHostAction(action, null))
323
+ }, createSlots({
324
+ default: withCtx(() => [
325
+ createTextVNode(" " + toDisplayString($options.hostLabel(action)), 1 /* TEXT */)
326
+ ]),
327
+ _: 2 /* DYNAMIC */
328
+ }, [
329
+ (action.icon)
330
+ ? {
331
+ name: "icon",
332
+ fn: withCtx(() => [
333
+ createVNode(_component_CnIcon, {
334
+ name: action.icon,
335
+ size: 20
336
+ }, null, 8 /* PROPS */, ["name"])
337
+ ]),
338
+ key: "0"
339
+ }
340
+ : undefined
341
+ ]), 1032 /* PROPS, DYNAMIC_SLOTS */, ["variant", "disabled", "data-testid", "onClick"]))
342
+ }), 128 /* KEYED_FRAGMENT */)),
343
+ renderSlot(_ctx.$slots, "header-actions"),
293
344
  ($props.uploadButton && $options.canChange)
294
345
  ? (openBlock(), createBlock(_component_NcButton, {
295
346
  key: 2,
@@ -335,8 +386,48 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
335
386
  }), 128 /* KEYED_FRAGMENT */))
336
387
  ]))
337
388
  : createCommentVNode("v-if", true),
338
- ($options.facetGroups.length > 0 && !$data.loading && $data.error === '')
389
+ ($options.review && $options.review.total > 0 && !$data.loading && $data.error === '')
339
390
  ? (openBlock(), createElementBlock("div", _hoisted_10, [
391
+ createElementVNode("div", _hoisted_11, [
392
+ createElementVNode("strong", _hoisted_12, toDisplayString($options.reviewTitle), 1 /* TEXT */),
393
+ ($options.reviewSubtitle)
394
+ ? (openBlock(), createElementBlock("span", _hoisted_13, toDisplayString($options.reviewSubtitle), 1 /* TEXT */))
395
+ : createCommentVNode("v-if", true)
396
+ ]),
397
+ createElementVNode("span", {
398
+ class: "cn-files-browser__review-bar",
399
+ role: "img",
400
+ "aria-label": $options.reviewTitle
401
+ }, [
402
+ (openBlock(true), createElementBlock(Fragment, null, renderList($options.review.segments, (segment) => {
403
+ return withDirectives((openBlock(), createElementBlock("span", {
404
+ key: segment.value,
405
+ class: normalizeClass(`cn-files-browser__review-part cn-files-browser__review-part--${segment.tone}`),
406
+ style: normalizeStyle({ width: `${segment.share}%` })
407
+ }, null, 6 /* CLASS, STYLE */)), [
408
+ [vShow, segment.count > 0 && !$options.isOpenValue(segment.value)]
409
+ ])
410
+ }), 128 /* KEYED_FRAGMENT */))
411
+ ], 8 /* PROPS */, _hoisted_14),
412
+ createElementVNode("ul", _hoisted_15, [
413
+ (openBlock(true), createElementBlock(Fragment, null, renderList($options.review.segments, (segment) => {
414
+ return (openBlock(), createElementBlock("li", {
415
+ key: segment.value,
416
+ "data-testid": "cn-files-browser-review-entry"
417
+ }, [
418
+ createElementVNode("span", {
419
+ class: normalizeClass(`cn-files-browser__review-dot cn-files-browser__review-part--${segment.tone}`),
420
+ "aria-hidden": "true"
421
+ }, null, 2 /* CLASS */),
422
+ createTextVNode(" " + toDisplayString($options.hostLabel(segment)) + " ", 1 /* TEXT */),
423
+ createElementVNode("strong", null, toDisplayString(segment.count), 1 /* TEXT */)
424
+ ]))
425
+ }), 128 /* KEYED_FRAGMENT */))
426
+ ])
427
+ ]))
428
+ : createCommentVNode("v-if", true),
429
+ ($options.facetGroups.length > 0 && !$data.loading && $data.error === '')
430
+ ? (openBlock(), createElementBlock("div", _hoisted_16, [
340
431
  (openBlock(true), createElementBlock(Fragment, null, renderList($options.facetGroups, (facet) => {
341
432
  return (openBlock(), createElementBlock("div", {
342
433
  key: facet.key,
@@ -354,10 +445,10 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
354
445
  onClick: $event => ($options.toggleFacet(facet.key, option.value))
355
446
  }, [
356
447
  createTextVNode(toDisplayString(option.value) + " ", 1 /* TEXT */),
357
- createElementVNode("strong", _hoisted_13, toDisplayString(option.count), 1 /* TEXT */)
358
- ], 10 /* CLASS, PROPS */, _hoisted_12))
448
+ createElementVNode("strong", _hoisted_19, toDisplayString(option.count), 1 /* TEXT */)
449
+ ], 10 /* CLASS, PROPS */, _hoisted_18))
359
450
  }), 128 /* KEYED_FRAGMENT */))
360
- ], 8 /* PROPS */, _hoisted_11))
451
+ ], 8 /* PROPS */, _hoisted_17))
361
452
  }), 128 /* KEYED_FRAGMENT */)),
362
453
  ($options.facetActive)
363
454
  ? (openBlock(), createBlock(_component_NcButton, {
@@ -376,13 +467,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
376
467
  : createCommentVNode("v-if", true),
377
468
  ($options.bulkEnabled && $data.selectedIds.length > 0)
378
469
  ? (openBlock(), createElementBlock("div", {
379
- key: 4,
470
+ key: 5,
380
471
  class: "cn-files-browser__bulk-bar",
381
472
  role: "toolbar",
382
473
  "aria-label": $options.t('nextcloud-vue', 'Actions for the selected files'),
383
474
  "data-testid": "cn-files-browser-bulk-bar"
384
475
  }, [
385
- createElementVNode("span", _hoisted_15, toDisplayString($options.selectionCountText), 1 /* TEXT */),
476
+ createElementVNode("span", _hoisted_21, toDisplayString($options.selectionCountText), 1 /* TEXT */),
386
477
  (openBlock(true), createElementBlock(Fragment, null, renderList($props.bulkActions, (action) => {
387
478
  return (openBlock(), createBlock(_component_NcButton, {
388
479
  key: action.id,
@@ -414,17 +505,17 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
414
505
  _: 1 /* STABLE */
415
506
  }, 8 /* PROPS */, ["onClick"]))
416
507
  : createCommentVNode("v-if", true)
417
- ], 8 /* PROPS */, _hoisted_14))
508
+ ], 8 /* PROPS */, _hoisted_20))
418
509
  : createCommentVNode("v-if", true),
419
510
  ($data.loading)
420
511
  ? (openBlock(), createBlock(_component_NcLoadingIcon, {
421
- key: 5,
512
+ key: 6,
422
513
  size: 32,
423
514
  class: "cn-files-browser__loading"
424
515
  }))
425
516
  : ($data.error !== '')
426
517
  ? (openBlock(), createBlock(_component_CnEmptyContent, {
427
- key: 6,
518
+ key: 7,
428
519
  error: "",
429
520
  name: $data.error,
430
521
  class: "cn-files-browser__state"
@@ -444,7 +535,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
444
535
  }, 8 /* PROPS */, ["name"]))
445
536
  : ($options.sorted.length === 0 && $props.linkedItems.length === 0)
446
537
  ? (openBlock(), createBlock(_component_CnEmptyContent, {
447
- key: 7,
538
+ key: 8,
448
539
  name: $props.emptyLabel,
449
540
  description: $options.canChange ? $props.emptyHint : '',
450
541
  class: "cn-files-browser__state"
@@ -455,14 +546,14 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
455
546
  _: 1 /* STABLE */
456
547
  }, 8 /* PROPS */, ["name", "description"]))
457
548
  : (openBlock(), createElementBlock("div", {
458
- key: 8,
549
+ key: 9,
459
550
  class: normalizeClass(["cn-files-browser__body", { 'cn-files-browser__body--with-side': $options.sideNode !== null }])
460
551
  }, [
461
- createElementVNode("table", _hoisted_16, [
552
+ createElementVNode("table", _hoisted_22, [
462
553
  createElementVNode("thead", null, [
463
554
  createElementVNode("tr", null, [
464
555
  ($options.bulkEnabled)
465
- ? (openBlock(), createElementBlock("th", _hoisted_17, [
556
+ ? (openBlock(), createElementBlock("th", _hoisted_23, [
466
557
  createElementVNode("input", {
467
558
  type: "checkbox",
468
559
  class: "cn-files-browser__select",
@@ -472,11 +563,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
472
563
  "aria-label": $options.t('nextcloud-vue', 'Select all files'),
473
564
  "data-testid": "cn-files-browser-select-all",
474
565
  onChange: _cache[1] || (_cache[1] = $event => ($options.toggleAll($event.target.checked)))
475
- }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_18)
566
+ }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_24)
476
567
  ]))
477
568
  : createCommentVNode("v-if", true),
478
- createElementVNode("th", _hoisted_19, [
479
- createElementVNode("span", _hoisted_20, toDisplayString($options.t('nextcloud-vue', 'Type')), 1 /* TEXT */)
569
+ createElementVNode("th", _hoisted_25, [
570
+ createElementVNode("span", _hoisted_26, toDisplayString($options.t('nextcloud-vue', 'Type')), 1 /* TEXT */)
480
571
  ]),
481
572
  (openBlock(true), createElementBlock(Fragment, null, renderList($options.renderedColumns, (column) => {
482
573
  return (openBlock(), createElementBlock("th", {
@@ -500,14 +591,14 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
500
591
  size: 16
501
592
  }))
502
593
  : createCommentVNode("v-if", true)
503
- ], 8 /* PROPS */, _hoisted_22))
594
+ ], 8 /* PROPS */, _hoisted_28))
504
595
  : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
505
596
  createTextVNode(toDisplayString($options.columnLabel(column)), 1 /* TEXT */)
506
597
  ], 64 /* STABLE_FRAGMENT */))
507
- ], 10 /* CLASS, PROPS */, _hoisted_21))
598
+ ], 10 /* CLASS, PROPS */, _hoisted_27))
508
599
  }), 128 /* KEYED_FRAGMENT */)),
509
- createElementVNode("th", _hoisted_23, [
510
- createElementVNode("span", _hoisted_24, toDisplayString($options.t('nextcloud-vue', 'Actions')), 1 /* TEXT */)
600
+ createElementVNode("th", _hoisted_29, [
601
+ createElementVNode("span", _hoisted_30, toDisplayString($options.t('nextcloud-vue', 'Actions')), 1 /* TEXT */)
511
602
  ])
512
603
  ])
513
604
  ]),
@@ -515,15 +606,15 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
515
606
  (openBlock(true), createElementBlock(Fragment, null, renderList($options.displayRows, ({ key, group, node }) => {
516
607
  return (openBlock(), createElementBlock(Fragment, { key: key }, [
517
608
  group
518
- ? (openBlock(), createElementBlock("tr", _hoisted_25, [
609
+ ? (openBlock(), createElementBlock("tr", _hoisted_31, [
519
610
  createElementVNode("th", {
520
611
  colspan: $options.columnCount,
521
612
  scope: "rowgroup",
522
613
  class: "cn-files-browser__group-heading"
523
614
  }, [
524
615
  createTextVNode(toDisplayString(group.label) + " ", 1 /* TEXT */),
525
- createElementVNode("span", _hoisted_27, toDisplayString(group.count), 1 /* TEXT */)
526
- ], 8 /* PROPS */, _hoisted_26)
616
+ createElementVNode("span", _hoisted_33, toDisplayString(group.count), 1 /* TEXT */)
617
+ ], 8 /* PROPS */, _hoisted_32)
527
618
  ]))
528
619
  : (openBlock(), createElementBlock("tr", {
529
620
  key: key,
@@ -550,11 +641,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
550
641
  "aria-label": $options.t('nextcloud-vue', 'Select {name}', { name: node.basename }),
551
642
  "data-testid": "cn-files-browser-select",
552
643
  onChange: $event => ($options.toggleSelected(node, $event.target.checked))
553
- }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_29))
644
+ }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_35))
554
645
  : createCommentVNode("v-if", true)
555
646
  ], 32 /* NEED_HYDRATION */))
556
647
  : createCommentVNode("v-if", true),
557
- createElementVNode("td", _hoisted_30, [
648
+ createElementVNode("td", _hoisted_36, [
558
649
  ($options.previewUrlFor(node))
559
650
  ? (openBlock(), createElementBlock("img", {
560
651
  key: 0,
@@ -563,14 +654,14 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
563
654
  alt: "",
564
655
  loading: "lazy",
565
656
  onError: $event => ($options.onPreviewError(node))
566
- }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_31))
657
+ }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_37))
567
658
  : ($options.mimeIconFor(node))
568
659
  ? (openBlock(), createElementBlock("img", {
569
660
  key: 1,
570
661
  class: "cn-files-browser__mime",
571
662
  src: $options.mimeIconFor(node),
572
663
  alt: ""
573
- }, null, 8 /* PROPS */, _hoisted_32))
664
+ }, null, 8 /* PROPS */, _hoisted_38))
574
665
  : ($options.isFolder(node))
575
666
  ? (openBlock(), createBlock(_component_FolderOutline, {
576
667
  key: 2,
@@ -588,19 +679,22 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
588
679
  "data-testid": `cn-files-browser-cell-${column.key}`
589
680
  }, [
590
681
  (column.key === 'name')
591
- ? (openBlock(), createElementBlock("span", _hoisted_34, toDisplayString(node.basename), 1 /* TEXT */))
682
+ ? (openBlock(), createElementBlock("span", _hoisted_40, toDisplayString(node.basename), 1 /* TEXT */))
683
+ : createCommentVNode("v-if", true),
684
+ (column.key === 'name' && $options.nameSecondaryOf(node))
685
+ ? (openBlock(), createElementBlock("span", _hoisted_41, toDisplayString($options.nameSecondaryOf(node)), 1 /* TEXT */))
592
686
  : (column.key === 'size')
593
- ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
687
+ ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [
594
688
  createTextVNode(toDisplayString($options.isFolder(node) ? '' : $options.formatSize(node.size)), 1 /* TEXT */)
595
689
  ], 64 /* STABLE_FRAGMENT */))
596
690
  : (column.key === 'modified')
597
691
  ? (openBlock(), createBlock(_component_NcDateTime, {
598
- key: 2,
692
+ key: 3,
599
693
  timestamp: node.mtime,
600
694
  ignoreSeconds: true
601
695
  }, null, 8 /* PROPS */, ["timestamp"]))
602
696
  : (openBlock(), createBlock(_component_CnCellRenderer, {
603
- key: 3,
697
+ key: 4,
604
698
  class: normalizeClass(column.widget !== 'badge' && $options.toneOf(column, node) ? `cn-files-browser__tone cn-files-browser__tone--${$options.toneOf(column, node)}` : null),
605
699
  value: $options.cellValue(column, node),
606
700
  formatter: column.formatter || null,
@@ -609,13 +703,28 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
609
703
  widgetProps: $options.cellWidgetProps(column, node),
610
704
  row: node
611
705
  }, null, 8 /* PROPS */, ["class", "value", "formatter", "formatterOptions", "widget", "widgetProps", "row"]))
612
- ], 10 /* CLASS, PROPS */, _hoisted_33))
706
+ ], 10 /* CLASS, PROPS */, _hoisted_39))
613
707
  }), 128 /* KEYED_FRAGMENT */)),
614
708
  createElementVNode("td", {
615
709
  class: "cn-files-browser__col-actions",
616
710
  onClick: _cache[4] || (_cache[4] = withModifiers(() => {}, ["stop"])),
617
711
  onAuxclick: _cache[5] || (_cache[5] = withModifiers(() => {}, ["stop"]))
618
712
  }, [
713
+ ($props.rowButton && !$options.isFolder(node) && $options.hostActionApplies($props.rowButton, node))
714
+ ? (openBlock(), createBlock(_component_NcButton, {
715
+ key: 0,
716
+ variant: $options.rowButtonPrimary(node) ? 'primary' : 'secondary',
717
+ class: "cn-files-browser__row-button",
718
+ "aria-label": $options.t('nextcloud-vue', '{action}: {name}', { action: $options.hostLabel($props.rowButton), name: node.basename }),
719
+ "data-testid": "cn-files-browser-row-button",
720
+ onClick: $event => ($options.runHostAction($props.rowButton, node))
721
+ }, {
722
+ default: withCtx(() => [
723
+ createTextVNode(toDisplayString($options.hostLabel($props.rowButton)), 1 /* TEXT */)
724
+ ]),
725
+ _: 1 /* STABLE */
726
+ }, 8 /* PROPS */, ["variant", "aria-label", "onClick"]))
727
+ : createCommentVNode("v-if", true),
619
728
  createVNode(_component_NcActions, {
620
729
  forceMenu: true,
621
730
  ariaLabel: $options.t('nextcloud-vue', 'Actions for {name}', { name: node.basename })
@@ -732,16 +841,16 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
732
841
  _: 2 /* DYNAMIC */
733
842
  }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["ariaLabel"])
734
843
  ], 32 /* NEED_HYDRATION */)
735
- ], 42 /* CLASS, PROPS, NEED_HYDRATION */, _hoisted_28))
844
+ ], 42 /* CLASS, PROPS, NEED_HYDRATION */, _hoisted_34))
736
845
  ], 64 /* STABLE_FRAGMENT */))
737
846
  }), 128 /* KEYED_FRAGMENT */)),
738
847
  ($options.facetActive && $options.filteredFiles.length === 0)
739
- ? (openBlock(), createElementBlock("tr", _hoisted_35, [
848
+ ? (openBlock(), createElementBlock("tr", _hoisted_42, [
740
849
  createElementVNode("td", {
741
850
  colspan: $options.columnCount,
742
851
  class: "cn-files-browser__no-match",
743
852
  "data-testid": "cn-files-browser-no-match"
744
- }, toDisplayString($options.t('nextcloud-vue', 'No files match the filter.')), 9 /* TEXT, PROPS */, _hoisted_36)
853
+ }, toDisplayString($options.t('nextcloud-vue', 'No files match the filter.')), 9 /* TEXT, PROPS */, _hoisted_43)
745
854
  ]))
746
855
  : createCommentVNode("v-if", true),
747
856
  (openBlock(true), createElementBlock(Fragment, null, renderList($props.linkedItems, (item) => {
@@ -755,16 +864,16 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
755
864
  onAuxclick: $event => ($options.onLinkedAuxClick(item, $event))
756
865
  }, [
757
866
  ($options.bulkEnabled)
758
- ? (openBlock(), createElementBlock("td", _hoisted_38))
867
+ ? (openBlock(), createElementBlock("td", _hoisted_45))
759
868
  : createCommentVNode("v-if", true),
760
- createElementVNode("td", _hoisted_39, [
869
+ createElementVNode("td", _hoisted_46, [
761
870
  ($options.mimeIconFor({ mime: item.mime }))
762
871
  ? (openBlock(), createElementBlock("img", {
763
872
  key: 0,
764
873
  class: "cn-files-browser__mime",
765
874
  src: $options.mimeIconFor({ mime: item.mime }),
766
875
  alt: ""
767
- }, null, 8 /* PROPS */, _hoisted_40))
876
+ }, null, 8 /* PROPS */, _hoisted_47))
768
877
  : (openBlock(), createBlock(_component_FileOutline, {
769
878
  key: 1,
770
879
  size: 32
@@ -777,16 +886,16 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
777
886
  }, [
778
887
  (column.key === 'name')
779
888
  ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
780
- createElementVNode("span", _hoisted_41, toDisplayString(item.name), 1 /* TEXT */),
889
+ createElementVNode("span", _hoisted_48, toDisplayString(item.name), 1 /* TEXT */),
781
890
  (item.note)
782
- ? (openBlock(), createElementBlock("span", _hoisted_42, [
891
+ ? (openBlock(), createElementBlock("span", _hoisted_49, [
783
892
  (item.noteHref)
784
893
  ? (openBlock(), createElementBlock("a", {
785
894
  key: 0,
786
895
  href: item.noteHref,
787
896
  class: "cn-files-browser__note-link",
788
897
  onClick: _cache[7] || (_cache[7] = withModifiers(() => {}, ["stop"]))
789
- }, toDisplayString(item.note), 9 /* TEXT, PROPS */, _hoisted_43))
898
+ }, toDisplayString(item.note), 9 /* TEXT, PROPS */, _hoisted_50))
790
899
  : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
791
900
  createTextVNode(toDisplayString(item.note), 1 /* TEXT */)
792
901
  ], 64 /* STABLE_FRAGMENT */))
@@ -854,7 +963,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
854
963
  _: 2 /* DYNAMIC */
855
964
  }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["ariaLabel"])
856
965
  ], 32 /* NEED_HYDRATION */)
857
- ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_37))
966
+ ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_44))
858
967
  }), 128 /* KEYED_FRAGMENT */))
859
968
  ])
860
969
  ]),
@@ -871,9 +980,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
871
980
  class: "cn-files-browser__side-card",
872
981
  "data-testid": `cn-files-browser-side-card-${card.id}`
873
982
  }, [
874
- createElementVNode("h3", _hoisted_46, toDisplayString(card.title), 1 /* TEXT */),
983
+ createElementVNode("h3", _hoisted_53, toDisplayString(card.title), 1 /* TEXT */),
875
984
  (card.fields.length > 0)
876
- ? (openBlock(), createElementBlock("dl", _hoisted_47, [
985
+ ? (openBlock(), createElementBlock("dl", _hoisted_54, [
877
986
  (openBlock(true), createElementBlock(Fragment, null, renderList(card.fields, (field) => {
878
987
  return (openBlock(), createElementBlock(Fragment, {
879
988
  key: field.key
@@ -894,7 +1003,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
894
1003
  ]))
895
1004
  : createCommentVNode("v-if", true),
896
1005
  (card.actions.length > 0)
897
- ? (openBlock(), createElementBlock("div", _hoisted_48, [
1006
+ ? (openBlock(), createElementBlock("div", _hoisted_55, [
898
1007
  (openBlock(true), createElementBlock(Fragment, null, renderList(card.actions, (action) => {
899
1008
  return (openBlock(), createBlock(_component_NcButton, {
900
1009
  key: action.id,
@@ -922,20 +1031,23 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
922
1031
  }), 128 /* KEYED_FRAGMENT */))
923
1032
  ]))
924
1033
  : createCommentVNode("v-if", true)
925
- ], 8 /* PROPS */, _hoisted_45))
1034
+ ], 8 /* PROPS */, _hoisted_52))
926
1035
  }), 128 /* KEYED_FRAGMENT */))
927
- ], 8 /* PROPS */, _hoisted_44))
1036
+ ], 8 /* PROPS */, _hoisted_51))
928
1037
  : createCommentVNode("v-if", true)
929
1038
  ], 2 /* CLASS */)),
930
1039
  ($props.dropHint && $options.canChange && !$data.loading && $data.error === '')
931
- ? (openBlock(), createElementBlock("p", _hoisted_49, [
1040
+ ? (openBlock(), createElementBlock("p", _hoisted_56, [
932
1041
  createVNode(_component_Upload, { size: 16 }),
933
1042
  createTextVNode(" " + toDisplayString($props.dropHintLabel), 1 /* TEXT */)
934
1043
  ]))
935
1044
  : createCommentVNode("v-if", true),
1045
+ ($props.footnote && !$data.loading && $data.error === '')
1046
+ ? (openBlock(), createElementBlock("p", _hoisted_57, toDisplayString($options.cnTranslate($props.footnote)), 1 /* TEXT */))
1047
+ : createCommentVNode("v-if", true),
936
1048
  ($data.renaming !== null)
937
1049
  ? (openBlock(), createBlock(_component_NcDialog, {
938
- key: 10,
1050
+ key: 12,
939
1051
  name: $props.renameLabel,
940
1052
  size: "small",
941
1053
  "data-testid": "cn-files-browser-rename",
@@ -982,7 +1094,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
982
1094
  : createCommentVNode("v-if", true),
983
1095
  ($data.removing !== null)
984
1096
  ? (openBlock(), createBlock(_component_NcDialog, {
985
- key: 11,
1097
+ key: 13,
986
1098
  name: $props.deleteLabel,
987
1099
  size: "small",
988
1100
  "data-testid": "cn-files-browser-delete",
@@ -1011,7 +1123,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1011
1123
  default: withCtx(() => [
1012
1124
  createElementVNode("p", null, toDisplayString($options.t('nextcloud-vue', 'Delete {name}? This cannot be undone here.', { name: $data.removing.basename })), 1 /* TEXT */),
1013
1125
  ($data.removeError)
1014
- ? (openBlock(), createElementBlock("p", _hoisted_50, toDisplayString($data.removeError), 1 /* TEXT */))
1126
+ ? (openBlock(), createElementBlock("p", _hoisted_58, toDisplayString($data.removeError), 1 /* TEXT */))
1015
1127
  : createCommentVNode("v-if", true)
1016
1128
  ]),
1017
1129
  _: 1 /* STABLE */
@@ -1019,7 +1131,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1019
1131
  : createCommentVNode("v-if", true),
1020
1132
  ($data.newFolderOpen)
1021
1133
  ? (openBlock(), createBlock(_component_NcDialog, {
1022
- key: 12,
1134
+ key: 14,
1023
1135
  name: $props.newFolderLabel,
1024
1136
  size: "small",
1025
1137
  "data-testid": "cn-files-browser-new-folder",