@conduction/nextcloud-vue 2.96.0 → 2.98.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 (163) hide show
  1. package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js +17 -0
  2. package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js.map +1 -1
  3. package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js.map +1 -1
  4. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue.js +1 -1
  5. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js +33 -1
  6. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js.map +1 -1
  7. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue3.js +383 -359
  8. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue3.js.map +1 -1
  9. package/dist/esm/components/CnChartWidget/CnChartWidget.vue.js +1 -1
  10. package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js +106 -2
  11. package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js.map +1 -1
  12. package/dist/esm/components/CnChartWidget/CnChartWidget.vue3.js.map +1 -1
  13. package/dist/esm/components/CnChecklistRunWidget/CnChecklistRunWidget.vue.js +9 -0
  14. package/dist/esm/components/CnChecklistRunWidget/CnChecklistRunWidget.vue.js.map +1 -0
  15. package/dist/esm/components/CnChecklistRunWidget/CnChecklistRunWidget.vue2.js +964 -0
  16. package/dist/esm/components/CnChecklistRunWidget/CnChecklistRunWidget.vue2.js.map +1 -0
  17. package/dist/esm/components/CnChecklistRunWidget/CnChecklistRunWidget.vue3.js +282 -0
  18. package/dist/esm/components/CnChecklistRunWidget/CnChecklistRunWidget.vue3.js.map +1 -0
  19. package/dist/esm/components/CnChecklistRunWidget/index.js +28 -0
  20. package/dist/esm/components/CnChecklistRunWidget/index.js.map +1 -0
  21. package/dist/esm/components/CnConversationThread/CnConversationThread.vue.js +1 -1
  22. package/dist/esm/components/CnConversationThread/CnConversationThread.vue2.js +17 -3
  23. package/dist/esm/components/CnConversationThread/CnConversationThread.vue2.js.map +1 -1
  24. package/dist/esm/components/CnConversationThread/CnConversationThread.vue3.js +61 -43
  25. package/dist/esm/components/CnConversationThread/CnConversationThread.vue3.js.map +1 -1
  26. package/dist/esm/components/CnConversationThread/CnConversationWidget.vue.js +1 -1
  27. package/dist/esm/components/CnConversationThread/CnConversationWidget.vue2.js +159 -18
  28. package/dist/esm/components/CnConversationThread/CnConversationWidget.vue2.js.map +1 -1
  29. package/dist/esm/components/CnConversationThread/CnConversationWidget.vue3.js +9 -7
  30. package/dist/esm/components/CnConversationThread/CnConversationWidget.vue3.js.map +1 -1
  31. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue.js +1 -1
  32. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +1 -0
  33. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
  34. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
  35. package/dist/esm/components/CnDataTable/CnDataTable.vue2.js +26 -8
  36. package/dist/esm/components/CnDataTable/CnDataTable.vue2.js.map +1 -1
  37. package/dist/esm/components/CnDataTable/CnDataTable.vue3.js.map +1 -1
  38. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +188 -5
  39. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
  40. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
  41. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue.js +1 -1
  42. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue2.js +48 -3
  43. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue2.js.map +1 -1
  44. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue3.js +46 -12
  45. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue3.js.map +1 -1
  46. package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue.js +1 -1
  47. package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue2.js +3 -3
  48. package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue2.js.map +1 -1
  49. package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue3.js.map +1 -1
  50. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue.js +1 -1
  51. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue2.js +27 -0
  52. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue2.js.map +1 -1
  53. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue3.js +16 -2
  54. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue3.js.map +1 -1
  55. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue.js +1 -1
  56. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js +144 -0
  57. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js.map +1 -1
  58. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js +488 -399
  59. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js.map +1 -1
  60. package/dist/esm/components/CnFilesBrowser/filesBrowserColumns.js +8 -2
  61. package/dist/esm/components/CnFilesBrowser/filesBrowserColumns.js.map +1 -1
  62. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +344 -21
  63. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
  64. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +29 -7
  65. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
  66. package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue.js +1 -1
  67. package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue2.js +2 -2
  68. package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue2.js.map +1 -1
  69. package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue3.js +2 -2
  70. package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue3.js.map +1 -1
  71. package/dist/esm/components/CnIndexPage/useNamedSource.js +1 -1
  72. package/dist/esm/components/CnIndexPage/useNamedSource.js.map +1 -1
  73. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue.js +1 -1
  74. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js +13 -0
  75. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js.map +1 -1
  76. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js +5 -1
  77. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js.map +1 -1
  78. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue.js +9 -0
  79. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue.js.map +1 -0
  80. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue2.js +220 -0
  81. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue2.js.map +1 -0
  82. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue3.js +121 -0
  83. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue3.js.map +1 -0
  84. package/dist/esm/components/CnUserSettingsDialog/CnUserSettingsDialog.vue.js +1 -1
  85. package/dist/esm/components/CnUserSettingsDialog/CnUserSettingsDialog.vue2.js +83 -9
  86. package/dist/esm/components/CnUserSettingsDialog/CnUserSettingsDialog.vue2.js.map +1 -1
  87. package/dist/esm/components/CnUserSettingsDialog/CnUserSettingsDialog.vue3.js +80 -11
  88. package/dist/esm/components/CnUserSettingsDialog/CnUserSettingsDialog.vue3.js.map +1 -1
  89. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js +1 -0
  90. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js.map +1 -1
  91. package/dist/esm/composables/indexSources.js +420 -5
  92. package/dist/esm/composables/indexSources.js.map +1 -1
  93. package/dist/esm/composables/useOrganisationStore.js +115 -0
  94. package/dist/esm/composables/useOrganisationStore.js.map +1 -0
  95. package/dist/esm/index.js +2 -0
  96. package/dist/esm/index.js.map +1 -1
  97. package/dist/esm/l10n/en.json.js +21 -1
  98. package/dist/esm/l10n/en.json.js.map +1 -1
  99. package/dist/esm/l10n/nl.json.js +36 -1
  100. package/dist/esm/l10n/nl.json.js.map +1 -1
  101. package/dist/esm/library-style.js +1 -1
  102. package/dist/esm/nextcloud-vue.css +725 -383
  103. package/dist/esm/utils/builtInFormatters.js +34 -1
  104. package/dist/esm/utils/builtInFormatters.js.map +1 -1
  105. package/dist/esm/utils/libraryWidgetKeys.js +1 -0
  106. package/dist/esm/utils/libraryWidgetKeys.js.map +1 -1
  107. package/dist/esm/utils/matrixCells.js +158 -0
  108. package/dist/esm/utils/matrixCells.js.map +1 -0
  109. package/dist/esm/utils/nextcloudDirectory.js +121 -0
  110. package/dist/esm/utils/nextcloudDirectory.js.map +1 -0
  111. package/dist/esm/utils/queryPresets.js +13 -2
  112. package/dist/esm/utils/queryPresets.js.map +1 -1
  113. package/dist/esm/utils/scopeListLayout.js +37 -1
  114. package/dist/esm/utils/scopeListLayout.js.map +1 -1
  115. package/dist/esm/utils/validateManifestV2.compiled.js +3 -3
  116. package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
  117. package/dist/nextcloud-vue.cjs.js +14443 -10519
  118. package/dist/nextcloud-vue.cjs.js.map +2 -2
  119. package/dist/nextcloud-vue.css +725 -383
  120. package/l10n/en.json +21 -1
  121. package/l10n/nl.json +36 -1
  122. package/package.json +2 -2
  123. package/scripts/merge-l10n.js +196 -0
  124. package/src/components/CnAppRoot/CnAppRoot.md +1 -0
  125. package/src/components/CnAppRoot/CnAppRoot.vue +17 -0
  126. package/src/components/CnCellRenderer/CnCellRenderer.vue +57 -1
  127. package/src/components/CnChartWidget/CnChartWidget.md +2 -1
  128. package/src/components/CnChartWidget/CnChartWidget.vue +106 -2
  129. package/src/components/CnChecklistRunWidget/CnChecklistRunWidget.vue +1269 -0
  130. package/src/components/CnChecklistRunWidget/index.js +27 -0
  131. package/src/components/CnConversationThread/CnConversationThread.md +12 -0
  132. package/src/components/CnConversationThread/CnConversationThread.vue +30 -4
  133. package/src/components/CnConversationThread/CnConversationWidget.vue +167 -24
  134. package/src/components/CnDashboardPage/CnDashboardPage.vue +1 -0
  135. package/src/components/CnDataTable/CnDataTable.vue +26 -8
  136. package/src/components/CnDetailPage/CnDetailPage.md +48 -0
  137. package/src/components/CnDetailPage/CnDetailPage.vue +188 -5
  138. package/src/components/CnFactsWidget/CnFactsWidget.vue +114 -3
  139. package/src/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue +3 -3
  140. package/src/components/CnFeaturesBoard/CnFeaturesBoard.vue +38 -2
  141. package/src/components/CnFilesBrowser/CnFilesBrowser.vue +508 -236
  142. package/src/components/CnFilesBrowser/filesBrowserColumns.js +8 -2
  143. package/src/components/CnIndexPage/CnIndexPage.md +28 -0
  144. package/src/components/CnIndexPage/CnIndexPage.vue +367 -27
  145. package/src/components/CnIndexPage/CnIndexPageWidgets.vue +13 -4
  146. package/src/components/CnIndexPage/useNamedSource.js +1 -1
  147. package/src/components/CnObjectSidebar/CnFilesTab.vue +17 -0
  148. package/src/components/CnOrderedListField/CnOrderedListField.vue +386 -0
  149. package/src/components/CnOrderedListField/index.js +7 -0
  150. package/src/components/CnUserSettingsDialog/CnUserSettingsDialog.vue +139 -10
  151. package/src/components/CnWidgetGrid/registerDashboardWidgets.js +1 -0
  152. package/src/components/index.js +2 -0
  153. package/src/composables/indexSources.js +419 -4
  154. package/src/composables/useOrganisationStore.js +111 -0
  155. package/src/index.js +2 -0
  156. package/src/schemas/app-manifest-v2.schema.json +42 -5
  157. package/src/utils/builtInFormatters.js +33 -0
  158. package/src/utils/libraryWidgetKeys.js +1 -0
  159. package/src/utils/matrixCells.js +154 -0
  160. package/src/utils/nextcloudDirectory.js +117 -0
  161. package/src/utils/queryPresets.js +13 -2
  162. package/src/utils/scopeListLayout.js +37 -1
  163. package/src/utils/validateManifestV2.compiled.js +3 -3
@@ -1,4 +1,4 @@
1
- import { resolveComponent, openBlock, createElementBlock, normalizeClass, withModifiers, createElementVNode, createVNode, toDisplayString, createCommentVNode, withCtx, Fragment, renderList, createBlock, createTextVNode, resolveDynamicComponent } from 'vue';
1
+ import { resolveComponent, openBlock, createElementBlock, normalizeClass, withModifiers, createElementVNode, createVNode, toDisplayString, createCommentVNode, withCtx, Fragment, renderList, createBlock, createTextVNode, resolveDynamicComponent, createSlots } from 'vue';
2
2
 
3
3
  const _hoisted_1 = {
4
4
  key: 0,
@@ -38,10 +38,10 @@ const _hoisted_13 = { class: "cn-files-browser__facet-count" };
38
38
  const _hoisted_14 = ["aria-label"];
39
39
  const _hoisted_15 = {
40
40
  class: "cn-files-browser__bulk-count",
41
- "aria-live": "polite"
41
+ "aria-live": "polite",
42
+ "data-testid": "cn-files-browser-bulk-count"
42
43
  };
43
44
  const _hoisted_16 = {
44
- key: 8,
45
45
  class: "cn-files-browser__table",
46
46
  "data-testid": "cn-files-browser-table"
47
47
  };
@@ -98,12 +98,23 @@ const _hoisted_42 = {
98
98
  class: "cn-files-browser__note"
99
99
  };
100
100
  const _hoisted_43 = ["href"];
101
- const _hoisted_44 = {
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 = {
105
+ key: 0,
106
+ class: "cn-files-browser__side-facts"
107
+ };
108
+ const _hoisted_48 = {
109
+ key: 1,
110
+ class: "cn-files-browser__side-actions"
111
+ };
112
+ const _hoisted_49 = {
102
113
  key: 9,
103
114
  class: "cn-files-browser__drop-hint",
104
115
  "data-testid": "cn-files-browser-drop-hint"
105
116
  };
106
- const _hoisted_45 = {
117
+ const _hoisted_50 = {
107
118
  key: 0,
108
119
  class: "cn-files-browser__upload-error",
109
120
  role: "alert"
@@ -371,7 +382,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
371
382
  "aria-label": $options.t('nextcloud-vue', 'Actions for the selected files'),
372
383
  "data-testid": "cn-files-browser-bulk-bar"
373
384
  }, [
374
- createElementVNode("span", _hoisted_15, toDisplayString($options.t('nextcloud-vue', '{count} selected', { count: $data.selectedIds.length })), 1 /* TEXT */),
385
+ createElementVNode("span", _hoisted_15, toDisplayString($options.selectionCountText), 1 /* TEXT */),
375
386
  (openBlock(true), createElementBlock(Fragment, null, renderList($props.bulkActions, (action) => {
376
387
  return (openBlock(), createBlock(_component_NcButton, {
377
388
  key: action.id,
@@ -390,16 +401,19 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
390
401
  _: 2 /* DYNAMIC */
391
402
  }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["data-testid", "onClick"]))
392
403
  }), 128 /* KEYED_FRAGMENT */)),
393
- createVNode(_component_NcButton, {
394
- variant: "tertiary",
395
- "data-testid": "cn-files-browser-bulk-clear",
396
- onClick: $options.clearSelection
397
- }, {
398
- default: withCtx(() => [
399
- createTextVNode(toDisplayString($options.t('nextcloud-vue', 'Clear selection')), 1 /* TEXT */)
400
- ]),
401
- _: 1 /* STABLE */
402
- }, 8 /* PROPS */, ["onClick"])
404
+ ($props.showClearSelection)
405
+ ? (openBlock(), createBlock(_component_NcButton, {
406
+ key: 0,
407
+ variant: "tertiary",
408
+ "data-testid": "cn-files-browser-bulk-clear",
409
+ onClick: $options.clearSelection
410
+ }, {
411
+ default: withCtx(() => [
412
+ createTextVNode(toDisplayString($options.t('nextcloud-vue', 'Clear selection')), 1 /* TEXT */)
413
+ ]),
414
+ _: 1 /* STABLE */
415
+ }, 8 /* PROPS */, ["onClick"]))
416
+ : createCommentVNode("v-if", true)
403
417
  ], 8 /* PROPS */, _hoisted_14))
404
418
  : createCommentVNode("v-if", true),
405
419
  ($data.loading)
@@ -440,406 +454,481 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
440
454
  ]),
441
455
  _: 1 /* STABLE */
442
456
  }, 8 /* PROPS */, ["name", "description"]))
443
- : (openBlock(), createElementBlock("table", _hoisted_16, [
444
- createElementVNode("thead", null, [
445
- createElementVNode("tr", null, [
446
- ($options.bulkEnabled)
447
- ? (openBlock(), createElementBlock("th", _hoisted_17, [
448
- createElementVNode("input", {
449
- type: "checkbox",
450
- class: "cn-files-browser__select",
451
- checked: $options.allSelected,
452
- ".indeterminate": $options.someSelected && !$options.allSelected,
453
- disabled: $options.selectableIds.length === 0,
454
- "aria-label": $options.t('nextcloud-vue', 'Select all files'),
455
- "data-testid": "cn-files-browser-select-all",
456
- onChange: _cache[1] || (_cache[1] = $event => ($options.toggleAll($event.target.checked)))
457
- }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_18)
458
- ]))
459
- : createCommentVNode("v-if", true),
460
- createElementVNode("th", _hoisted_19, [
461
- createElementVNode("span", _hoisted_20, toDisplayString($options.t('nextcloud-vue', 'Type')), 1 /* TEXT */)
462
- ]),
463
- (openBlock(true), createElementBlock(Fragment, null, renderList($options.renderedColumns, (column) => {
464
- return (openBlock(), createElementBlock("th", {
465
- key: column.key,
466
- scope: "col",
467
- class: normalizeClass(`cn-files-browser__col-${column.key}`),
468
- "aria-sort": $options.ariaSort($options.sortTokenOf(column)),
469
- "data-testid": `cn-files-browser-header-${column.key}`
470
- }, [
471
- (column.sortable !== false)
472
- ? (openBlock(), createElementBlock("button", {
473
- key: 0,
474
- type: "button",
475
- class: "cn-files-browser__sort",
476
- onClick: $event => ($options.sortBy($options.sortTokenOf(column)))
477
- }, [
478
- createTextVNode(toDisplayString($options.columnLabel(column)) + " ", 1 /* TEXT */),
479
- ($data.sortKey === $options.sortTokenOf(column))
480
- ? (openBlock(), createBlock(resolveDynamicComponent($options.sortIcon($options.sortTokenOf(column))), {
481
- key: 0,
482
- size: 16
483
- }))
484
- : createCommentVNode("v-if", true)
485
- ], 8 /* PROPS */, _hoisted_22))
486
- : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
487
- createTextVNode(toDisplayString($options.columnLabel(column)), 1 /* TEXT */)
488
- ], 64 /* STABLE_FRAGMENT */))
489
- ], 10 /* CLASS, PROPS */, _hoisted_21))
490
- }), 128 /* KEYED_FRAGMENT */)),
491
- createElementVNode("th", _hoisted_23, [
492
- createElementVNode("span", _hoisted_24, toDisplayString($options.t('nextcloud-vue', 'Actions')), 1 /* TEXT */)
457
+ : (openBlock(), createElementBlock("div", {
458
+ key: 8,
459
+ class: normalizeClass(["cn-files-browser__body", { 'cn-files-browser__body--with-side': $options.sideNode !== null }])
460
+ }, [
461
+ createElementVNode("table", _hoisted_16, [
462
+ createElementVNode("thead", null, [
463
+ createElementVNode("tr", null, [
464
+ ($options.bulkEnabled)
465
+ ? (openBlock(), createElementBlock("th", _hoisted_17, [
466
+ createElementVNode("input", {
467
+ type: "checkbox",
468
+ class: "cn-files-browser__select",
469
+ checked: $options.allSelected,
470
+ ".indeterminate": $options.someSelected && !$options.allSelected,
471
+ disabled: $options.selectableIds.length === 0,
472
+ "aria-label": $options.t('nextcloud-vue', 'Select all files'),
473
+ "data-testid": "cn-files-browser-select-all",
474
+ onChange: _cache[1] || (_cache[1] = $event => ($options.toggleAll($event.target.checked)))
475
+ }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_18)
476
+ ]))
477
+ : createCommentVNode("v-if", true),
478
+ createElementVNode("th", _hoisted_19, [
479
+ createElementVNode("span", _hoisted_20, toDisplayString($options.t('nextcloud-vue', 'Type')), 1 /* TEXT */)
480
+ ]),
481
+ (openBlock(true), createElementBlock(Fragment, null, renderList($options.renderedColumns, (column) => {
482
+ return (openBlock(), createElementBlock("th", {
483
+ key: column.key,
484
+ scope: "col",
485
+ class: normalizeClass(`cn-files-browser__col-${column.key}`),
486
+ "aria-sort": $options.ariaSort($options.sortTokenOf(column)),
487
+ "data-testid": `cn-files-browser-header-${column.key}`
488
+ }, [
489
+ (column.sortable !== false)
490
+ ? (openBlock(), createElementBlock("button", {
491
+ key: 0,
492
+ type: "button",
493
+ class: "cn-files-browser__sort",
494
+ onClick: $event => ($options.sortBy($options.sortTokenOf(column)))
495
+ }, [
496
+ createTextVNode(toDisplayString($options.columnLabel(column)) + " ", 1 /* TEXT */),
497
+ ($data.sortKey === $options.sortTokenOf(column))
498
+ ? (openBlock(), createBlock(resolveDynamicComponent($options.sortIcon($options.sortTokenOf(column))), {
499
+ key: 0,
500
+ size: 16
501
+ }))
502
+ : createCommentVNode("v-if", true)
503
+ ], 8 /* PROPS */, _hoisted_22))
504
+ : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
505
+ createTextVNode(toDisplayString($options.columnLabel(column)), 1 /* TEXT */)
506
+ ], 64 /* STABLE_FRAGMENT */))
507
+ ], 10 /* CLASS, PROPS */, _hoisted_21))
508
+ }), 128 /* KEYED_FRAGMENT */)),
509
+ createElementVNode("th", _hoisted_23, [
510
+ createElementVNode("span", _hoisted_24, toDisplayString($options.t('nextcloud-vue', 'Actions')), 1 /* TEXT */)
511
+ ])
493
512
  ])
494
- ])
495
- ]),
496
- createElementVNode("tbody", null, [
497
- (openBlock(true), createElementBlock(Fragment, null, renderList($options.displayRows, ({ key, group, node }) => {
498
- return (openBlock(), createElementBlock(Fragment, { key: key }, [
499
- group
500
- ? (openBlock(), createElementBlock("tr", _hoisted_25, [
501
- createElementVNode("th", {
502
- colspan: $options.columnCount,
503
- scope: "rowgroup",
504
- class: "cn-files-browser__group-heading"
513
+ ]),
514
+ createElementVNode("tbody", null, [
515
+ (openBlock(true), createElementBlock(Fragment, null, renderList($options.displayRows, ({ key, group, node }) => {
516
+ return (openBlock(), createElementBlock(Fragment, { key: key }, [
517
+ group
518
+ ? (openBlock(), createElementBlock("tr", _hoisted_25, [
519
+ createElementVNode("th", {
520
+ colspan: $options.columnCount,
521
+ scope: "rowgroup",
522
+ class: "cn-files-browser__group-heading"
523
+ }, [
524
+ createTextVNode(toDisplayString(group.label) + " ", 1 /* TEXT */),
525
+ createElementVNode("span", _hoisted_27, toDisplayString(group.count), 1 /* TEXT */)
526
+ ], 8 /* PROPS */, _hoisted_26)
527
+ ]))
528
+ : (openBlock(), createElementBlock("tr", {
529
+ key: key,
530
+ class: normalizeClass(["cn-files-browser__row", { 'cn-files-browser__row--folder': $options.isFolder(node) }]),
531
+ "data-testid": "cn-files-browser-row",
532
+ "data-name": node.basename,
533
+ onClick: $event => ($options.onRowClick(node, $event)),
534
+ onMousedown: _cache[6] || (_cache[6] = (...args) => ($options.preventMiddleClickAutoscroll && $options.preventMiddleClickAutoscroll(...args))),
535
+ onAuxclick: $event => ($options.onRowAuxClick(node, $event))
505
536
  }, [
506
- createTextVNode(toDisplayString(group.label) + " ", 1 /* TEXT */),
507
- createElementVNode("span", _hoisted_27, toDisplayString(group.count), 1 /* TEXT */)
508
- ], 8 /* PROPS */, _hoisted_26)
509
- ]))
510
- : (openBlock(), createElementBlock("tr", {
511
- key: key,
512
- class: normalizeClass(["cn-files-browser__row", { 'cn-files-browser__row--folder': $options.isFolder(node) }]),
513
- "data-testid": "cn-files-browser-row",
514
- "data-name": node.basename,
515
- onClick: $event => ($options.onRowClick(node, $event)),
516
- onMousedown: _cache[6] || (_cache[6] = (...args) => ($options.preventMiddleClickAutoscroll && $options.preventMiddleClickAutoscroll(...args))),
517
- onAuxclick: $event => ($options.onRowAuxClick(node, $event))
518
- }, [
519
- ($options.bulkEnabled)
520
- ? (openBlock(), createElementBlock("td", {
521
- key: 0,
522
- class: "cn-files-browser__col-select",
523
- onClick: _cache[2] || (_cache[2] = withModifiers(() => {}, ["stop"])),
524
- onAuxclick: _cache[3] || (_cache[3] = withModifiers(() => {}, ["stop"]))
525
- }, [
526
- (!$options.isFolder(node))
527
- ? (openBlock(), createElementBlock("input", {
528
- key: 0,
529
- type: "checkbox",
530
- class: "cn-files-browser__select",
531
- checked: $options.isSelected(node),
532
- "aria-label": $options.t('nextcloud-vue', 'Select {name}', { name: node.basename }),
533
- "data-testid": "cn-files-browser-select",
534
- onChange: $event => ($options.toggleSelected(node, $event.target.checked))
535
- }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_29))
536
- : createCommentVNode("v-if", true)
537
- ], 32 /* NEED_HYDRATION */))
538
- : createCommentVNode("v-if", true),
539
- createElementVNode("td", _hoisted_30, [
540
- ($options.previewUrlFor(node))
541
- ? (openBlock(), createElementBlock("img", {
537
+ ($options.bulkEnabled)
538
+ ? (openBlock(), createElementBlock("td", {
542
539
  key: 0,
543
- class: "cn-files-browser__thumb",
544
- src: $options.previewUrlFor(node),
545
- alt: "",
546
- loading: "lazy",
547
- onError: $event => ($options.onPreviewError(node))
548
- }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_31))
549
- : ($options.mimeIconFor(node))
540
+ class: "cn-files-browser__col-select",
541
+ onClick: _cache[2] || (_cache[2] = withModifiers(() => {}, ["stop"])),
542
+ onAuxclick: _cache[3] || (_cache[3] = withModifiers(() => {}, ["stop"]))
543
+ }, [
544
+ (!$options.isFolder(node))
545
+ ? (openBlock(), createElementBlock("input", {
546
+ key: 0,
547
+ type: "checkbox",
548
+ class: "cn-files-browser__select",
549
+ checked: $options.isSelected(node),
550
+ "aria-label": $options.t('nextcloud-vue', 'Select {name}', { name: node.basename }),
551
+ "data-testid": "cn-files-browser-select",
552
+ onChange: $event => ($options.toggleSelected(node, $event.target.checked))
553
+ }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_29))
554
+ : createCommentVNode("v-if", true)
555
+ ], 32 /* NEED_HYDRATION */))
556
+ : createCommentVNode("v-if", true),
557
+ createElementVNode("td", _hoisted_30, [
558
+ ($options.previewUrlFor(node))
550
559
  ? (openBlock(), createElementBlock("img", {
551
- key: 1,
552
- class: "cn-files-browser__mime",
553
- src: $options.mimeIconFor(node),
554
- alt: ""
555
- }, null, 8 /* PROPS */, _hoisted_32))
556
- : ($options.isFolder(node))
557
- ? (openBlock(), createBlock(_component_FolderOutline, {
558
- key: 2,
559
- size: 32
560
- }))
561
- : (openBlock(), createBlock(_component_FileOutline, {
562
- key: 3,
563
- size: 32
564
- }))
565
- ]),
566
- (openBlock(true), createElementBlock(Fragment, null, renderList($options.renderedColumns, (column) => {
567
- return (openBlock(), createElementBlock("td", {
568
- key: column.key,
569
- class: normalizeClass(`cn-files-browser__col-${column.key}`),
570
- "data-testid": `cn-files-browser-cell-${column.key}`
560
+ key: 0,
561
+ class: "cn-files-browser__thumb",
562
+ src: $options.previewUrlFor(node),
563
+ alt: "",
564
+ loading: "lazy",
565
+ onError: $event => ($options.onPreviewError(node))
566
+ }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_31))
567
+ : ($options.mimeIconFor(node))
568
+ ? (openBlock(), createElementBlock("img", {
569
+ key: 1,
570
+ class: "cn-files-browser__mime",
571
+ src: $options.mimeIconFor(node),
572
+ alt: ""
573
+ }, null, 8 /* PROPS */, _hoisted_32))
574
+ : ($options.isFolder(node))
575
+ ? (openBlock(), createBlock(_component_FolderOutline, {
576
+ key: 2,
577
+ size: 32
578
+ }))
579
+ : (openBlock(), createBlock(_component_FileOutline, {
580
+ key: 3,
581
+ size: 32
582
+ }))
583
+ ]),
584
+ (openBlock(true), createElementBlock(Fragment, null, renderList($options.renderedColumns, (column) => {
585
+ return (openBlock(), createElementBlock("td", {
586
+ key: column.key,
587
+ class: normalizeClass(`cn-files-browser__col-${column.key}`),
588
+ "data-testid": `cn-files-browser-cell-${column.key}`
589
+ }, [
590
+ (column.key === 'name')
591
+ ? (openBlock(), createElementBlock("span", _hoisted_34, toDisplayString(node.basename), 1 /* TEXT */))
592
+ : (column.key === 'size')
593
+ ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
594
+ createTextVNode(toDisplayString($options.isFolder(node) ? '' : $options.formatSize(node.size)), 1 /* TEXT */)
595
+ ], 64 /* STABLE_FRAGMENT */))
596
+ : (column.key === 'modified')
597
+ ? (openBlock(), createBlock(_component_NcDateTime, {
598
+ key: 2,
599
+ timestamp: node.mtime,
600
+ ignoreSeconds: true
601
+ }, null, 8 /* PROPS */, ["timestamp"]))
602
+ : (openBlock(), createBlock(_component_CnCellRenderer, {
603
+ key: 3,
604
+ class: normalizeClass(column.widget !== 'badge' && $options.toneOf(column, node) ? `cn-files-browser__tone cn-files-browser__tone--${$options.toneOf(column, node)}` : null),
605
+ value: $options.cellValue(column, node),
606
+ formatter: column.formatter || null,
607
+ formatterOptions: column.formatterOptions || null,
608
+ widget: column.widget || null,
609
+ widgetProps: $options.cellWidgetProps(column, node),
610
+ row: node
611
+ }, null, 8 /* PROPS */, ["class", "value", "formatter", "formatterOptions", "widget", "widgetProps", "row"]))
612
+ ], 10 /* CLASS, PROPS */, _hoisted_33))
613
+ }), 128 /* KEYED_FRAGMENT */)),
614
+ createElementVNode("td", {
615
+ class: "cn-files-browser__col-actions",
616
+ onClick: _cache[4] || (_cache[4] = withModifiers(() => {}, ["stop"])),
617
+ onAuxclick: _cache[5] || (_cache[5] = withModifiers(() => {}, ["stop"]))
571
618
  }, [
572
- (column.key === 'name')
573
- ? (openBlock(), createElementBlock("span", _hoisted_34, toDisplayString(node.basename), 1 /* TEXT */))
574
- : (column.key === 'size')
575
- ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
576
- createTextVNode(toDisplayString($options.isFolder(node) ? '' : $options.formatSize(node.size)), 1 /* TEXT */)
577
- ], 64 /* STABLE_FRAGMENT */))
578
- : (column.key === 'modified')
579
- ? (openBlock(), createBlock(_component_NcDateTime, {
619
+ createVNode(_component_NcActions, {
620
+ forceMenu: true,
621
+ ariaLabel: $options.t('nextcloud-vue', 'Actions for {name}', { name: node.basename })
622
+ }, {
623
+ default: withCtx(() => [
624
+ (openBlock(true), createElementBlock(Fragment, null, renderList($options.actionsFor(node), (action) => {
625
+ return (openBlock(), createBlock(_component_NcActionButton, {
626
+ key: action.id,
627
+ closeAfterClick: true,
628
+ "data-testid": `cn-files-browser-action-${action.id}`,
629
+ onClick: $event => ($options.run(action, node))
630
+ }, {
631
+ icon: withCtx(() => [
632
+ createVNode(_component_NcIconSvgWrapper, {
633
+ svg: $options.iconOf(action, node)
634
+ }, null, 8 /* PROPS */, ["svg"])
635
+ ]),
636
+ default: withCtx(() => [
637
+ createTextVNode(" " + toDisplayString($options.labelOf(action, node)), 1 /* TEXT */)
638
+ ]),
639
+ _: 2 /* DYNAMIC */
640
+ }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["data-testid", "onClick"]))
641
+ }), 128 /* KEYED_FRAGMENT */)),
642
+ (!$options.isFolder(node))
643
+ ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList($options.hostActionsFor(node), (action) => {
644
+ return (openBlock(), createBlock(_component_NcActionButton, {
645
+ key: `host-${action.id}`,
646
+ closeAfterClick: true,
647
+ "data-testid": `cn-files-browser-host-action-${action.id}`,
648
+ onClick: $event => ($options.runHostAction(action, node))
649
+ }, {
650
+ icon: withCtx(() => [
651
+ createVNode(_component_CnIcon, {
652
+ name: action.icon || 'FileDocumentEditOutline',
653
+ size: 20
654
+ }, null, 8 /* PROPS */, ["name"])
655
+ ]),
656
+ default: withCtx(() => [
657
+ createTextVNode(" " + toDisplayString($options.hostLabel(action)), 1 /* TEXT */)
658
+ ]),
659
+ _: 2 /* DYNAMIC */
660
+ }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["data-testid", "onClick"]))
661
+ }), 128 /* KEYED_FRAGMENT */))
662
+ : createCommentVNode("v-if", true),
663
+ ($options.actionsFor(node).length > 0 || (!$options.isFolder(node) && $options.hostActionsFor(node).length > 0))
664
+ ? (openBlock(), createBlock(_component_NcActionSeparator, { key: 1 }))
665
+ : createCommentVNode("v-if", true),
666
+ ($props.source && $options.sourceDownloadUrl(node))
667
+ ? (openBlock(), createBlock(_component_NcActionLink, {
580
668
  key: 2,
581
- timestamp: node.mtime,
582
- ignoreSeconds: true
583
- }, null, 8 /* PROPS */, ["timestamp"]))
584
- : (openBlock(), createBlock(_component_CnCellRenderer, {
669
+ href: $options.sourceDownloadUrl(node),
670
+ download: node.basename,
671
+ closeAfterClick: true,
672
+ "data-testid": "cn-files-browser-action-download"
673
+ }, {
674
+ icon: withCtx(() => [
675
+ createVNode(_component_Download, { size: 20 })
676
+ ]),
677
+ default: withCtx(() => [
678
+ createTextVNode(" " + toDisplayString($props.downloadLabel), 1 /* TEXT */)
679
+ ]),
680
+ _: 1 /* STABLE */
681
+ }, 8 /* PROPS */, ["href", "download"]))
682
+ : createCommentVNode("v-if", true),
683
+ ($props.source && $options.canChange)
684
+ ? (openBlock(), createBlock(_component_NcActionButton, {
585
685
  key: 3,
586
- value: $options.cellValue(column, node),
587
- formatter: column.formatter || null,
588
- formatterOptions: column.formatterOptions || null,
589
- widget: column.widget || null,
590
- row: node
591
- }, null, 8 /* PROPS */, ["value", "formatter", "formatterOptions", "widget", "row"]))
592
- ], 10 /* CLASS, PROPS */, _hoisted_33))
593
- }), 128 /* KEYED_FRAGMENT */)),
594
- createElementVNode("td", {
595
- class: "cn-files-browser__col-actions",
596
- onClick: _cache[4] || (_cache[4] = withModifiers(() => {}, ["stop"])),
597
- onAuxclick: _cache[5] || (_cache[5] = withModifiers(() => {}, ["stop"]))
598
- }, [
599
- createVNode(_component_NcActions, {
600
- forceMenu: true,
601
- ariaLabel: $options.t('nextcloud-vue', 'Actions for {name}', { name: node.basename })
602
- }, {
603
- default: withCtx(() => [
604
- (openBlock(true), createElementBlock(Fragment, null, renderList($options.actionsFor(node), (action) => {
605
- return (openBlock(), createBlock(_component_NcActionButton, {
606
- key: action.id,
607
- closeAfterClick: true,
608
- "data-testid": `cn-files-browser-action-${action.id}`,
609
- onClick: $event => ($options.run(action, node))
610
- }, {
611
- icon: withCtx(() => [
612
- createVNode(_component_NcIconSvgWrapper, {
613
- svg: $options.iconOf(action, node)
614
- }, null, 8 /* PROPS */, ["svg"])
615
- ]),
616
- default: withCtx(() => [
617
- createTextVNode(" " + toDisplayString($options.labelOf(action, node)), 1 /* TEXT */)
618
- ]),
619
- _: 2 /* DYNAMIC */
620
- }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["data-testid", "onClick"]))
621
- }), 128 /* KEYED_FRAGMENT */)),
622
- (!$options.isFolder(node))
623
- ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList($options.hostActionsFor(node), (action) => {
624
- return (openBlock(), createBlock(_component_NcActionButton, {
625
- key: `host-${action.id}`,
626
686
  closeAfterClick: true,
627
- "data-testid": `cn-files-browser-host-action-${action.id}`,
628
- onClick: $event => ($options.runHostAction(action, node))
687
+ "data-testid": "cn-files-browser-action-delete",
688
+ onClick: $event => ($options.askRemove(node))
629
689
  }, {
630
690
  icon: withCtx(() => [
631
- createVNode(_component_CnIcon, {
632
- name: action.icon || 'FileDocumentEditOutline',
633
- size: 20
634
- }, null, 8 /* PROPS */, ["name"])
691
+ createVNode(_component_TrashCanOutline, { size: 20 })
635
692
  ]),
636
693
  default: withCtx(() => [
637
- createTextVNode(" " + toDisplayString($options.hostLabel(action)), 1 /* TEXT */)
694
+ createTextVNode(" " + toDisplayString($props.deleteLabel), 1 /* TEXT */)
638
695
  ]),
639
- _: 2 /* DYNAMIC */
640
- }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["data-testid", "onClick"]))
641
- }), 128 /* KEYED_FRAGMENT */))
642
- : createCommentVNode("v-if", true),
643
- ($options.actionsFor(node).length > 0 || (!$options.isFolder(node) && $options.hostActionsFor(node).length > 0))
644
- ? (openBlock(), createBlock(_component_NcActionSeparator, { key: 1 }))
645
- : createCommentVNode("v-if", true),
646
- ($props.source && $options.sourceDownloadUrl(node))
647
- ? (openBlock(), createBlock(_component_NcActionLink, {
648
- key: 2,
649
- href: $options.sourceDownloadUrl(node),
650
- download: node.basename,
651
- closeAfterClick: true,
652
- "data-testid": "cn-files-browser-action-download"
653
- }, {
654
- icon: withCtx(() => [
655
- createVNode(_component_Download, { size: 20 })
656
- ]),
657
- default: withCtx(() => [
658
- createTextVNode(" " + toDisplayString($props.downloadLabel), 1 /* TEXT */)
659
- ]),
660
- _: 1 /* STABLE */
661
- }, 8 /* PROPS */, ["href", "download"]))
662
- : createCommentVNode("v-if", true),
663
- ($props.source && $options.canChange)
664
- ? (openBlock(), createBlock(_component_NcActionButton, {
665
- key: 3,
666
- closeAfterClick: true,
667
- "data-testid": "cn-files-browser-action-delete",
668
- onClick: $event => ($options.askRemove(node))
669
- }, {
670
- icon: withCtx(() => [
671
- createVNode(_component_TrashCanOutline, { size: 20 })
672
- ]),
673
- default: withCtx(() => [
674
- createTextVNode(" " + toDisplayString($props.deleteLabel), 1 /* TEXT */)
675
- ]),
676
- _: 1 /* STABLE */
677
- }, 8 /* PROPS */, ["onClick"]))
678
- : createCommentVNode("v-if", true),
679
- ($options.canChange)
680
- ? (openBlock(), createBlock(_component_NcActionButton, {
681
- key: 4,
682
- closeAfterClick: true,
683
- "data-testid": "cn-files-browser-action-rename",
684
- onClick: $event => ($options.askRename(node))
685
- }, {
686
- icon: withCtx(() => [
687
- createVNode(_component_Pencil, { size: 20 })
688
- ]),
689
- default: withCtx(() => [
690
- createTextVNode(" " + toDisplayString($props.renameLabel), 1 /* TEXT */)
691
- ]),
692
- _: 1 /* STABLE */
693
- }, 8 /* PROPS */, ["onClick"]))
694
- : createCommentVNode("v-if", true),
695
- (node.fileid && !$props.source)
696
- ? (openBlock(), createBlock(_component_NcActionLink, {
697
- key: 5,
698
- href: $options.permalink(node),
699
- target: "_blank",
700
- closeAfterClick: true
701
- }, {
702
- icon: withCtx(() => [
703
- createVNode(_component_OpenInNew, { size: 20 })
704
- ]),
705
- default: withCtx(() => [
706
- createTextVNode(" " + toDisplayString($props.showInFilesLabel), 1 /* TEXT */)
707
- ]),
708
- _: 1 /* STABLE */
709
- }, 8 /* PROPS */, ["href"]))
696
+ _: 1 /* STABLE */
697
+ }, 8 /* PROPS */, ["onClick"]))
698
+ : createCommentVNode("v-if", true),
699
+ ($options.canChange)
700
+ ? (openBlock(), createBlock(_component_NcActionButton, {
701
+ key: 4,
702
+ closeAfterClick: true,
703
+ "data-testid": "cn-files-browser-action-rename",
704
+ onClick: $event => ($options.askRename(node))
705
+ }, {
706
+ icon: withCtx(() => [
707
+ createVNode(_component_Pencil, { size: 20 })
708
+ ]),
709
+ default: withCtx(() => [
710
+ createTextVNode(" " + toDisplayString($props.renameLabel), 1 /* TEXT */)
711
+ ]),
712
+ _: 1 /* STABLE */
713
+ }, 8 /* PROPS */, ["onClick"]))
714
+ : createCommentVNode("v-if", true),
715
+ (node.fileid && !$props.source)
716
+ ? (openBlock(), createBlock(_component_NcActionLink, {
717
+ key: 5,
718
+ href: $options.permalink(node),
719
+ target: "_blank",
720
+ closeAfterClick: true
721
+ }, {
722
+ icon: withCtx(() => [
723
+ createVNode(_component_OpenInNew, { size: 20 })
724
+ ]),
725
+ default: withCtx(() => [
726
+ createTextVNode(" " + toDisplayString($props.showInFilesLabel), 1 /* TEXT */)
727
+ ]),
728
+ _: 1 /* STABLE */
729
+ }, 8 /* PROPS */, ["href"]))
730
+ : createCommentVNode("v-if", true)
731
+ ]),
732
+ _: 2 /* DYNAMIC */
733
+ }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["ariaLabel"])
734
+ ], 32 /* NEED_HYDRATION */)
735
+ ], 42 /* CLASS, PROPS, NEED_HYDRATION */, _hoisted_28))
736
+ ], 64 /* STABLE_FRAGMENT */))
737
+ }), 128 /* KEYED_FRAGMENT */)),
738
+ ($options.facetActive && $options.filteredFiles.length === 0)
739
+ ? (openBlock(), createElementBlock("tr", _hoisted_35, [
740
+ createElementVNode("td", {
741
+ colspan: $options.columnCount,
742
+ class: "cn-files-browser__no-match",
743
+ "data-testid": "cn-files-browser-no-match"
744
+ }, toDisplayString($options.t('nextcloud-vue', 'No files match the filter.')), 9 /* TEXT, PROPS */, _hoisted_36)
745
+ ]))
746
+ : createCommentVNode("v-if", true),
747
+ (openBlock(true), createElementBlock(Fragment, null, renderList($props.linkedItems, (item) => {
748
+ return (openBlock(), createElementBlock("tr", {
749
+ key: `linked-${item.id}`,
750
+ class: "cn-files-browser__row cn-files-browser__row--linked",
751
+ "data-testid": "cn-files-browser-linked-row",
752
+ "data-name": item.name,
753
+ onClick: $event => ($options.openLinked(item)),
754
+ onMousedown: _cache[10] || (_cache[10] = (...args) => ($options.preventMiddleClickAutoscroll && $options.preventMiddleClickAutoscroll(...args))),
755
+ onAuxclick: $event => ($options.onLinkedAuxClick(item, $event))
756
+ }, [
757
+ ($options.bulkEnabled)
758
+ ? (openBlock(), createElementBlock("td", _hoisted_38))
759
+ : createCommentVNode("v-if", true),
760
+ createElementVNode("td", _hoisted_39, [
761
+ ($options.mimeIconFor({ mime: item.mime }))
762
+ ? (openBlock(), createElementBlock("img", {
763
+ key: 0,
764
+ class: "cn-files-browser__mime",
765
+ src: $options.mimeIconFor({ mime: item.mime }),
766
+ alt: ""
767
+ }, null, 8 /* PROPS */, _hoisted_40))
768
+ : (openBlock(), createBlock(_component_FileOutline, {
769
+ key: 1,
770
+ size: 32
771
+ }))
772
+ ]),
773
+ (openBlock(true), createElementBlock(Fragment, null, renderList($options.renderedColumns, (column) => {
774
+ return (openBlock(), createElementBlock("td", {
775
+ key: column.key,
776
+ class: normalizeClass(`cn-files-browser__col-${column.key}`)
777
+ }, [
778
+ (column.key === 'name')
779
+ ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
780
+ createElementVNode("span", _hoisted_41, toDisplayString(item.name), 1 /* TEXT */),
781
+ (item.note)
782
+ ? (openBlock(), createElementBlock("span", _hoisted_42, [
783
+ (item.noteHref)
784
+ ? (openBlock(), createElementBlock("a", {
785
+ key: 0,
786
+ href: item.noteHref,
787
+ class: "cn-files-browser__note-link",
788
+ onClick: _cache[7] || (_cache[7] = withModifiers(() => {}, ["stop"]))
789
+ }, toDisplayString(item.note), 9 /* TEXT, PROPS */, _hoisted_43))
790
+ : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
791
+ createTextVNode(toDisplayString(item.note), 1 /* TEXT */)
792
+ ], 64 /* STABLE_FRAGMENT */))
793
+ ]))
710
794
  : createCommentVNode("v-if", true)
711
- ]),
712
- _: 2 /* DYNAMIC */
713
- }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["ariaLabel"])
714
- ], 32 /* NEED_HYDRATION */)
715
- ], 42 /* CLASS, PROPS, NEED_HYDRATION */, _hoisted_28))
716
- ], 64 /* STABLE_FRAGMENT */))
717
- }), 128 /* KEYED_FRAGMENT */)),
718
- ($options.facetActive && $options.filteredFiles.length === 0)
719
- ? (openBlock(), createElementBlock("tr", _hoisted_35, [
795
+ ], 64 /* STABLE_FRAGMENT */))
796
+ : (column.key === 'size')
797
+ ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
798
+ createTextVNode(toDisplayString(item.size ? $options.formatSize(item.size) : ''), 1 /* TEXT */)
799
+ ], 64 /* STABLE_FRAGMENT */))
800
+ : (column.key === 'modified' && item.mtime)
801
+ ? (openBlock(), createBlock(_component_NcDateTime, {
802
+ key: 2,
803
+ timestamp: item.mtime,
804
+ ignoreSeconds: true
805
+ }, null, 8 /* PROPS */, ["timestamp"]))
806
+ : createCommentVNode("v-if", true)
807
+ ], 2 /* CLASS */))
808
+ }), 128 /* KEYED_FRAGMENT */)),
720
809
  createElementVNode("td", {
721
- colspan: $options.columnCount,
722
- class: "cn-files-browser__no-match",
723
- "data-testid": "cn-files-browser-no-match"
724
- }, toDisplayString($options.t('nextcloud-vue', 'No files match the filter.')), 9 /* TEXT, PROPS */, _hoisted_36)
725
- ]))
726
- : createCommentVNode("v-if", true),
727
- (openBlock(true), createElementBlock(Fragment, null, renderList($props.linkedItems, (item) => {
728
- return (openBlock(), createElementBlock("tr", {
729
- key: `linked-${item.id}`,
730
- class: "cn-files-browser__row cn-files-browser__row--linked",
731
- "data-testid": "cn-files-browser-linked-row",
732
- "data-name": item.name,
733
- onClick: $event => ($options.openLinked(item)),
734
- onMousedown: _cache[10] || (_cache[10] = (...args) => ($options.preventMiddleClickAutoscroll && $options.preventMiddleClickAutoscroll(...args))),
735
- onAuxclick: $event => ($options.onLinkedAuxClick(item, $event))
736
- }, [
737
- ($options.bulkEnabled)
738
- ? (openBlock(), createElementBlock("td", _hoisted_38))
739
- : createCommentVNode("v-if", true),
740
- createElementVNode("td", _hoisted_39, [
741
- ($options.mimeIconFor({ mime: item.mime }))
742
- ? (openBlock(), createElementBlock("img", {
743
- key: 0,
744
- class: "cn-files-browser__mime",
745
- src: $options.mimeIconFor({ mime: item.mime }),
746
- alt: ""
747
- }, null, 8 /* PROPS */, _hoisted_40))
748
- : (openBlock(), createBlock(_component_FileOutline, {
749
- key: 1,
750
- size: 32
751
- }))
752
- ]),
753
- (openBlock(true), createElementBlock(Fragment, null, renderList($options.renderedColumns, (column) => {
754
- return (openBlock(), createElementBlock("td", {
755
- key: column.key,
756
- class: normalizeClass(`cn-files-browser__col-${column.key}`)
810
+ class: "cn-files-browser__col-actions",
811
+ onClick: _cache[8] || (_cache[8] = withModifiers(() => {}, ["stop"])),
812
+ onAuxclick: _cache[9] || (_cache[9] = withModifiers(() => {}, ["stop"]))
757
813
  }, [
758
- (column.key === 'name')
759
- ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
760
- createElementVNode("span", _hoisted_41, toDisplayString(item.name), 1 /* TEXT */),
761
- (item.note)
762
- ? (openBlock(), createElementBlock("span", _hoisted_42, [
763
- (item.noteHref)
764
- ? (openBlock(), createElementBlock("a", {
765
- key: 0,
766
- href: item.noteHref,
767
- class: "cn-files-browser__note-link",
768
- onClick: _cache[7] || (_cache[7] = withModifiers(() => {}, ["stop"]))
769
- }, toDisplayString(item.note), 9 /* TEXT, PROPS */, _hoisted_43))
770
- : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
771
- createTextVNode(toDisplayString(item.note), 1 /* TEXT */)
772
- ], 64 /* STABLE_FRAGMENT */))
773
- ]))
774
- : createCommentVNode("v-if", true)
775
- ], 64 /* STABLE_FRAGMENT */))
776
- : (column.key === 'size')
777
- ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
778
- createTextVNode(toDisplayString(item.size ? $options.formatSize(item.size) : ''), 1 /* TEXT */)
779
- ], 64 /* STABLE_FRAGMENT */))
780
- : (column.key === 'modified' && item.mtime)
781
- ? (openBlock(), createBlock(_component_NcDateTime, {
782
- key: 2,
783
- timestamp: item.mtime,
784
- ignoreSeconds: true
785
- }, null, 8 /* PROPS */, ["timestamp"]))
814
+ createVNode(_component_NcActions, {
815
+ forceMenu: true,
816
+ ariaLabel: $options.t('nextcloud-vue', 'Actions for {name}', { name: item.name })
817
+ }, {
818
+ default: withCtx(() => [
819
+ (item.href)
820
+ ? (openBlock(), createBlock(_component_NcActionLink, {
821
+ key: 0,
822
+ href: item.href,
823
+ target: "_blank",
824
+ closeAfterClick: true,
825
+ "data-testid": "cn-files-browser-linked-open"
826
+ }, {
827
+ icon: withCtx(() => [
828
+ createVNode(_component_OpenInNew, { size: 20 })
829
+ ]),
830
+ default: withCtx(() => [
831
+ createTextVNode(" " + toDisplayString($props.openLinkedLabel), 1 /* TEXT */)
832
+ ]),
833
+ _: 1 /* STABLE */
834
+ }, 8 /* PROPS */, ["href"]))
835
+ : createCommentVNode("v-if", true),
836
+ (item.downloadHref)
837
+ ? (openBlock(), createBlock(_component_NcActionLink, {
838
+ key: 1,
839
+ href: item.downloadHref,
840
+ download: item.name,
841
+ closeAfterClick: true,
842
+ "data-testid": "cn-files-browser-linked-download"
843
+ }, {
844
+ icon: withCtx(() => [
845
+ createVNode(_component_Download, { size: 20 })
846
+ ]),
847
+ default: withCtx(() => [
848
+ createTextVNode(" " + toDisplayString($props.downloadLabel), 1 /* TEXT */)
849
+ ]),
850
+ _: 1 /* STABLE */
851
+ }, 8 /* PROPS */, ["href", "download"]))
786
852
  : createCommentVNode("v-if", true)
787
- ], 2 /* CLASS */))
788
- }), 128 /* KEYED_FRAGMENT */)),
789
- createElementVNode("td", {
790
- class: "cn-files-browser__col-actions",
791
- onClick: _cache[8] || (_cache[8] = withModifiers(() => {}, ["stop"])),
792
- onAuxclick: _cache[9] || (_cache[9] = withModifiers(() => {}, ["stop"]))
793
- }, [
794
- createVNode(_component_NcActions, {
795
- forceMenu: true,
796
- ariaLabel: $options.t('nextcloud-vue', 'Actions for {name}', { name: item.name })
797
- }, {
798
- default: withCtx(() => [
799
- (item.href)
800
- ? (openBlock(), createBlock(_component_NcActionLink, {
801
- key: 0,
802
- href: item.href,
803
- target: "_blank",
804
- closeAfterClick: true,
805
- "data-testid": "cn-files-browser-linked-open"
806
- }, {
807
- icon: withCtx(() => [
808
- createVNode(_component_OpenInNew, { size: 20 })
809
- ]),
810
- default: withCtx(() => [
811
- createTextVNode(" " + toDisplayString($props.openLinkedLabel), 1 /* TEXT */)
812
- ]),
813
- _: 1 /* STABLE */
814
- }, 8 /* PROPS */, ["href"]))
815
- : createCommentVNode("v-if", true),
816
- (item.downloadHref)
817
- ? (openBlock(), createBlock(_component_NcActionLink, {
818
- key: 1,
819
- href: item.downloadHref,
820
- download: item.name,
821
- closeAfterClick: true,
822
- "data-testid": "cn-files-browser-linked-download"
823
- }, {
824
- icon: withCtx(() => [
825
- createVNode(_component_Download, { size: 20 })
826
- ]),
827
- default: withCtx(() => [
828
- createTextVNode(" " + toDisplayString($props.downloadLabel), 1 /* TEXT */)
829
- ]),
830
- _: 1 /* STABLE */
831
- }, 8 /* PROPS */, ["href", "download"]))
832
- : createCommentVNode("v-if", true)
833
- ]),
834
- _: 2 /* DYNAMIC */
835
- }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["ariaLabel"])
836
- ], 32 /* NEED_HYDRATION */)
837
- ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_37))
838
- }), 128 /* KEYED_FRAGMENT */))
839
- ])
840
- ])),
853
+ ]),
854
+ _: 2 /* DYNAMIC */
855
+ }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["ariaLabel"])
856
+ ], 32 /* NEED_HYDRATION */)
857
+ ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_37))
858
+ }), 128 /* KEYED_FRAGMENT */))
859
+ ])
860
+ ]),
861
+ ($options.sideNode !== null)
862
+ ? (openBlock(), createElementBlock("aside", {
863
+ key: 0,
864
+ class: "cn-files-browser__side",
865
+ "aria-label": $options.t('nextcloud-vue', 'About {name}', { name: $options.sideNode.basename }),
866
+ "data-testid": "cn-files-browser-side"
867
+ }, [
868
+ (openBlock(true), createElementBlock(Fragment, null, renderList($options.sideCardsFor($options.sideNode), (card) => {
869
+ return (openBlock(), createElementBlock("section", {
870
+ key: card.id,
871
+ class: "cn-files-browser__side-card",
872
+ "data-testid": `cn-files-browser-side-card-${card.id}`
873
+ }, [
874
+ createElementVNode("h3", _hoisted_46, toDisplayString(card.title), 1 /* TEXT */),
875
+ (card.fields.length > 0)
876
+ ? (openBlock(), createElementBlock("dl", _hoisted_47, [
877
+ (openBlock(true), createElementBlock(Fragment, null, renderList(card.fields, (field) => {
878
+ return (openBlock(), createElementBlock(Fragment, {
879
+ key: field.key
880
+ }, [
881
+ createElementVNode("dt", null, toDisplayString(field.label), 1 /* TEXT */),
882
+ createElementVNode("dd", {
883
+ class: normalizeClass(field.tone ? `cn-files-browser__tone cn-files-browser__tone--${field.tone}` : '')
884
+ }, [
885
+ createVNode(_component_CnCellRenderer, {
886
+ value: field.value,
887
+ formatter: field.formatter || null,
888
+ formatterOptions: field.formatterOptions || null,
889
+ row: $options.sideNode
890
+ }, null, 8 /* PROPS */, ["value", "formatter", "formatterOptions", "row"])
891
+ ], 2 /* CLASS */)
892
+ ], 64 /* STABLE_FRAGMENT */))
893
+ }), 128 /* KEYED_FRAGMENT */))
894
+ ]))
895
+ : createCommentVNode("v-if", true),
896
+ (card.actions.length > 0)
897
+ ? (openBlock(), createElementBlock("div", _hoisted_48, [
898
+ (openBlock(true), createElementBlock(Fragment, null, renderList(card.actions, (action) => {
899
+ return (openBlock(), createBlock(_component_NcButton, {
900
+ key: action.id,
901
+ "data-testid": `cn-files-browser-side-action-${action.id}`,
902
+ onClick: $event => ($options.runHostAction(action, $options.sideNode))
903
+ }, createSlots({
904
+ default: withCtx(() => [
905
+ createTextVNode(" " + toDisplayString($options.hostLabel(action)), 1 /* TEXT */)
906
+ ]),
907
+ _: 2 /* DYNAMIC */
908
+ }, [
909
+ (action.icon)
910
+ ? {
911
+ name: "icon",
912
+ fn: withCtx(() => [
913
+ createVNode(_component_CnIcon, {
914
+ name: action.icon,
915
+ size: 20
916
+ }, null, 8 /* PROPS */, ["name"])
917
+ ]),
918
+ key: "0"
919
+ }
920
+ : undefined
921
+ ]), 1032 /* PROPS, DYNAMIC_SLOTS */, ["data-testid", "onClick"]))
922
+ }), 128 /* KEYED_FRAGMENT */))
923
+ ]))
924
+ : createCommentVNode("v-if", true)
925
+ ], 8 /* PROPS */, _hoisted_45))
926
+ }), 128 /* KEYED_FRAGMENT */))
927
+ ], 8 /* PROPS */, _hoisted_44))
928
+ : createCommentVNode("v-if", true)
929
+ ], 2 /* CLASS */)),
841
930
  ($props.dropHint && $options.canChange && !$data.loading && $data.error === '')
842
- ? (openBlock(), createElementBlock("p", _hoisted_44, [
931
+ ? (openBlock(), createElementBlock("p", _hoisted_49, [
843
932
  createVNode(_component_Upload, { size: 16 }),
844
933
  createTextVNode(" " + toDisplayString($props.dropHintLabel), 1 /* TEXT */)
845
934
  ]))
@@ -922,7 +1011,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
922
1011
  default: withCtx(() => [
923
1012
  createElementVNode("p", null, toDisplayString($options.t('nextcloud-vue', 'Delete {name}? This cannot be undone here.', { name: $data.removing.basename })), 1 /* TEXT */),
924
1013
  ($data.removeError)
925
- ? (openBlock(), createElementBlock("p", _hoisted_45, toDisplayString($data.removeError), 1 /* TEXT */))
1014
+ ? (openBlock(), createElementBlock("p", _hoisted_50, toDisplayString($data.removeError), 1 /* TEXT */))
926
1015
  : createCommentVNode("v-if", true)
927
1016
  ]),
928
1017
  _: 1 /* STABLE */