@conduction/nextcloud-vue 2.78.0 → 2.79.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 (115) hide show
  1. package/dist/bundled-packages.json +0 -2
  2. package/dist/esm/bundled-packages.json +0 -2
  3. package/dist/esm/components/CnActionsBar/CnActionsBar.vue2.js.map +1 -1
  4. package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js +113 -104
  5. package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js.map +1 -1
  6. package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js +12 -2
  7. package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js.map +1 -1
  8. package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js.map +1 -1
  9. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js +80 -0
  10. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js.map +1 -1
  11. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue3.js +115 -91
  12. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue3.js.map +1 -1
  13. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +139 -1
  14. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
  15. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +140 -92
  16. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
  17. package/dist/esm/components/CnDataTable/CnDataTable.vue2.js +77 -0
  18. package/dist/esm/components/CnDataTable/CnDataTable.vue2.js.map +1 -1
  19. package/dist/esm/components/CnDataTable/CnDataTable.vue3.js +4 -2
  20. package/dist/esm/components/CnDataTable/CnDataTable.vue3.js.map +1 -1
  21. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js +61 -1
  22. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js.map +1 -1
  23. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js.map +1 -1
  24. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js +173 -5
  25. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js.map +1 -1
  26. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js +181 -99
  27. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js.map +1 -1
  28. package/dist/esm/components/CnFilesBrowser/filesBrowser.js +29 -11
  29. package/dist/esm/components/CnFilesBrowser/filesBrowser.js.map +1 -1
  30. package/dist/esm/components/CnFilesBrowser/openRegisterSource.js +252 -0
  31. package/dist/esm/components/CnFilesBrowser/openRegisterSource.js.map +1 -0
  32. package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js +1 -1
  33. package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js.map +1 -1
  34. package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js.map +1 -1
  35. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +25 -2
  36. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
  37. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +3 -2
  38. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
  39. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js +100 -3
  40. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js.map +1 -1
  41. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js +4 -2
  42. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js.map +1 -1
  43. package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue2.js +3 -2
  44. package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue2.js.map +1 -1
  45. package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue3.js.map +1 -1
  46. package/dist/esm/components/CnSavedViewsControl/CnSavedViewsControl.vue2.js.map +1 -1
  47. package/dist/esm/components/CnSavedViewsControl/CnSavedViewsControl.vue3.js +1 -1
  48. package/dist/esm/components/CnSavedViewsControl/CnSavedViewsControl.vue3.js.map +1 -1
  49. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js +30 -1
  50. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js.map +1 -1
  51. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue3.js.map +1 -1
  52. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js +13 -0
  53. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js.map +1 -1
  54. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue3.js.map +1 -1
  55. package/dist/esm/composables/useAppManifest.js +8 -3
  56. package/dist/esm/composables/useAppManifest.js.map +1 -1
  57. package/dist/esm/index.js +1 -0
  58. package/dist/esm/index.js.map +1 -1
  59. package/dist/esm/l10n/en.json.js +61 -1
  60. package/dist/esm/l10n/en.json.js.map +1 -1
  61. package/dist/esm/l10n/nl.json.js +106 -2
  62. package/dist/esm/l10n/nl.json.js.map +1 -1
  63. package/dist/esm/nextcloud-vue.css +314 -15
  64. package/dist/esm/utils/boardDate.js +193 -0
  65. package/dist/esm/utils/boardDate.js.map +1 -0
  66. package/dist/esm/utils/dynamicProperties.js +5 -1
  67. package/dist/esm/utils/dynamicProperties.js.map +1 -1
  68. package/dist/esm/utils/validateManifestV2.compiled.js +57 -6
  69. package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
  70. package/dist/nextcloud-vue.cjs.js +2039 -581
  71. package/dist/nextcloud-vue.cjs.js.map +2 -2
  72. package/dist/nextcloud-vue.css +314 -15
  73. package/l10n/en.json +61 -1
  74. package/l10n/nl.json +106 -2
  75. package/package.json +1 -1
  76. package/scripts/build-validators.js +26 -0
  77. package/src/components/CnActionsBar/CnActionsBar.vue +48 -39
  78. package/src/components/CnAppRoot/CnAppRoot.vue +12 -2
  79. package/src/components/CnCellRenderer/CnCellRenderer.vue +119 -2
  80. package/src/components/CnDashboardPage/CnDashboardPage.vue +219 -4
  81. package/src/components/CnDataTable/CnDataTable.md +2 -0
  82. package/src/components/CnDataTable/CnDataTable.vue +81 -2
  83. package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +61 -1
  84. package/src/components/CnFilesBrowser/CnFilesBrowser.vue +232 -11
  85. package/src/components/CnFilesBrowser/filesBrowser.js +43 -2
  86. package/src/components/CnFilesBrowser/index.js +1 -0
  87. package/src/components/CnFilesBrowser/openRegisterSource.js +248 -0
  88. package/src/components/CnFormDialog/CnFormDialog.vue +1 -1
  89. package/src/components/CnIndexPage/CnIndexPage.vue +27 -3
  90. package/src/components/CnObjectSidebar/CnFilesTab.vue +103 -4
  91. package/src/components/CnQuickFilterBar/CnQuickFilterBar.vue +3 -2
  92. package/src/components/CnSavedViewsControl/CnSavedViewsControl.vue +1 -1
  93. package/src/components/CnTabsWidget/CnTabsWidget.vue +30 -1
  94. package/src/components/CnWidgetObjectTable/CnWidgetObjectTable.vue +13 -0
  95. package/src/components/index.js +1 -1
  96. package/src/composables/useAppManifest.js +8 -3
  97. package/src/css/look-board-detail.css +10 -0
  98. package/src/css/look-board-index.css +92 -14
  99. package/src/css/look-board.css +77 -0
  100. package/src/css/table.css +37 -0
  101. package/src/index.js +4 -0
  102. package/src/schemas/app-manifest-v2.schema.json +46 -1
  103. package/src/utils/boardDate.js +189 -0
  104. package/src/utils/dynamicProperties.js +5 -1
  105. package/src/utils/validateManifestV2.compiled.js +57 -2
  106. package/dist/esm/_virtual/equal.js +0 -4
  107. package/dist/esm/_virtual/equal.js.map +0 -1
  108. package/dist/esm/_virtual/ucs2length.js +0 -4
  109. package/dist/esm/_virtual/ucs2length.js.map +0 -1
  110. package/dist/esm/node_modules/ajv/dist/runtime/equal.js +0 -9
  111. package/dist/esm/node_modules/ajv/dist/runtime/equal.js.map +0 -1
  112. package/dist/esm/node_modules/ajv/dist/runtime/ucs2length.js +0 -25
  113. package/dist/esm/node_modules/ajv/dist/runtime/ucs2length.js.map +0 -1
  114. package/dist/esm/node_modules/fast-deep-equal/index.js +0 -47
  115. 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,