@conduction/nextcloud-vue 2.105.0 → 2.106.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 (153) hide show
  1. package/dist/esm/components/CnCardGrid/CnCardGrid.vue.js +1 -1
  2. package/dist/esm/components/CnCardGrid/CnCardGrid.vue2.js +18 -0
  3. package/dist/esm/components/CnCardGrid/CnCardGrid.vue2.js.map +1 -1
  4. package/dist/esm/components/CnCardGrid/CnCardGrid.vue3.js +3 -1
  5. package/dist/esm/components/CnCardGrid/CnCardGrid.vue3.js.map +1 -1
  6. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue.js +1 -1
  7. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js +18 -0
  8. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js.map +1 -1
  9. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue3.js +1 -1
  10. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue3.js.map +1 -1
  11. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +53 -4
  12. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
  13. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
  14. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHeaderItems.vue.js +9 -0
  15. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHeaderItems.vue.js.map +1 -0
  16. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHeaderItems.vue2.js +24 -0
  17. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHeaderItems.vue2.js.map +1 -0
  18. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHeaderItems.vue3.js +49 -0
  19. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHeaderItems.vue3.js.map +1 -0
  20. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue.js +1 -1
  21. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js +36 -18
  22. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js.map +1 -1
  23. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js +17 -38
  24. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js.map +1 -1
  25. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue.js +1 -1
  26. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue2.js.map +1 -1
  27. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue3.js.map +1 -1
  28. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue.js +1 -1
  29. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js +53 -2
  30. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js.map +1 -1
  31. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js +119 -111
  32. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js.map +1 -1
  33. package/dist/esm/components/CnFlowRunsWidget/CnFlowRunsWidget.vue.js +1 -1
  34. package/dist/esm/components/CnFlowRunsWidget/CnFlowRunsWidget.vue2.js +62 -1
  35. package/dist/esm/components/CnFlowRunsWidget/CnFlowRunsWidget.vue2.js.map +1 -1
  36. package/dist/esm/components/CnFlowRunsWidget/CnFlowRunsWidget.vue3.js.map +1 -1
  37. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +159 -50
  38. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
  39. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +121 -98
  40. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
  41. package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue.js +1 -1
  42. package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue2.js +24 -0
  43. package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue2.js.map +1 -1
  44. package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue3.js +20 -4
  45. package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue3.js.map +1 -1
  46. package/dist/esm/components/CnIndexPage/useSelfFetchList.js +22 -4
  47. package/dist/esm/components/CnIndexPage/useSelfFetchList.js.map +1 -1
  48. package/dist/esm/components/CnIndexSidebar/CnIndexSidebar.vue2.js +112 -1
  49. package/dist/esm/components/CnIndexSidebar/CnIndexSidebar.vue2.js.map +1 -1
  50. package/dist/esm/components/CnIndexSidebar/CnIndexSidebar.vue3.js +100 -44
  51. package/dist/esm/components/CnIndexSidebar/CnIndexSidebar.vue3.js.map +1 -1
  52. package/dist/esm/components/CnNcWidgetWidget/CnNcWidgetWidget.vue.js +1 -1
  53. package/dist/esm/components/CnNcWidgetWidget/CnNcWidgetWidget.vue2.js +67 -4
  54. package/dist/esm/components/CnNcWidgetWidget/CnNcWidgetWidget.vue2.js.map +1 -1
  55. package/dist/esm/components/CnNcWidgetWidget/CnNcWidgetWidget.vue3.js +1 -1
  56. package/dist/esm/components/CnNcWidgetWidget/CnNcWidgetWidget.vue3.js.map +1 -1
  57. package/dist/esm/components/CnObjectCard/CnObjectCard.vue.js +1 -1
  58. package/dist/esm/components/CnObjectCard/CnObjectCard.vue2.js +295 -12
  59. package/dist/esm/components/CnObjectCard/CnObjectCard.vue2.js.map +1 -1
  60. package/dist/esm/components/CnObjectCard/CnObjectCard.vue3.js +267 -144
  61. package/dist/esm/components/CnObjectCard/CnObjectCard.vue3.js.map +1 -1
  62. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue.js +1 -1
  63. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js +4 -0
  64. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js.map +1 -1
  65. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js +3 -1
  66. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js.map +1 -1
  67. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue.js +1 -1
  68. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js +93 -1
  69. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js.map +1 -1
  70. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue3.js +322 -246
  71. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue3.js.map +1 -1
  72. package/dist/esm/components/CnRelatedObjectsWidget/CnRelatedObjectsWidget.vue.js +1 -1
  73. package/dist/esm/components/CnRelatedObjectsWidget/CnRelatedObjectsWidget.vue2.js +122 -7
  74. package/dist/esm/components/CnRelatedObjectsWidget/CnRelatedObjectsWidget.vue2.js.map +1 -1
  75. package/dist/esm/components/CnRelatedObjectsWidget/CnRelatedObjectsWidget.vue3.js +189 -93
  76. package/dist/esm/components/CnRelatedObjectsWidget/CnRelatedObjectsWidget.vue3.js.map +1 -1
  77. package/dist/esm/components/CnTabs/CnTabs.vue.js +1 -1
  78. package/dist/esm/components/CnTabs/CnTabs.vue2.js.map +1 -1
  79. package/dist/esm/components/CnTabs/CnTabs.vue3.js.map +1 -1
  80. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue.js +1 -1
  81. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js +42 -0
  82. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js.map +1 -1
  83. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue3.js +38 -19
  84. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue3.js.map +1 -1
  85. package/dist/esm/components/CnTeamWorkloadWidget/CnTeamWorkloadWidget.vue.js +9 -0
  86. package/dist/esm/components/CnTeamWorkloadWidget/CnTeamWorkloadWidget.vue.js.map +1 -0
  87. package/dist/esm/components/CnTeamWorkloadWidget/CnTeamWorkloadWidget.vue2.js +258 -0
  88. package/dist/esm/components/CnTeamWorkloadWidget/CnTeamWorkloadWidget.vue2.js.map +1 -0
  89. package/dist/esm/components/CnTeamWorkloadWidget/CnTeamWorkloadWidget.vue3.js +69 -0
  90. package/dist/esm/components/CnTeamWorkloadWidget/CnTeamWorkloadWidget.vue3.js.map +1 -0
  91. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js +12 -0
  92. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js.map +1 -1
  93. package/dist/esm/index.js +1 -0
  94. package/dist/esm/index.js.map +1 -1
  95. package/dist/esm/l10n/en.json.js +21 -1
  96. package/dist/esm/l10n/en.json.js.map +1 -1
  97. package/dist/esm/l10n/nl.json.js +21 -1
  98. package/dist/esm/l10n/nl.json.js.map +1 -1
  99. package/dist/esm/library-style.js +1 -1
  100. package/dist/esm/nextcloud-vue.css +803 -453
  101. package/dist/esm/utils/dueText.js +18 -3
  102. package/dist/esm/utils/dueText.js.map +1 -1
  103. package/dist/esm/utils/libraryWidgetKeys.js +1 -0
  104. package/dist/esm/utils/libraryWidgetKeys.js.map +1 -1
  105. package/dist/esm/utils/sortOrder.js +11 -1
  106. package/dist/esm/utils/sortOrder.js.map +1 -1
  107. package/dist/esm/utils/validateManifestV2.compiled.js +3 -3
  108. package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
  109. package/dist/nextcloud-vue.cjs.js +8281 -6350
  110. package/dist/nextcloud-vue.cjs.js.map +2 -2
  111. package/dist/nextcloud-vue.css +803 -453
  112. package/l10n/en.json +21 -1
  113. package/l10n/nl.json +21 -1
  114. package/package.json +1 -1
  115. package/src/components/CnCardGrid/CnCardGrid.md +2 -0
  116. package/src/components/CnCardGrid/CnCardGrid.vue +20 -0
  117. package/src/components/CnCellRenderer/CnCellRenderer.vue +19 -1
  118. package/src/components/CnDetailPage/CnDetailPage.md +2 -2
  119. package/src/components/CnDetailPage/CnDetailPage.vue +53 -4
  120. package/src/components/CnDetailWidgetHost/CnDetailWidgetHeaderItems.vue +60 -0
  121. package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +36 -29
  122. package/src/components/CnFactsWidget/CnFactsWidget.vue +4 -0
  123. package/src/components/CnFilesBrowser/CnFilesBrowser.vue +70 -4
  124. package/src/components/CnFlowRunsWidget/CnFlowRunsWidget.vue +62 -1
  125. package/src/components/CnIndexPage/CnIndexPage.md +7 -5
  126. package/src/components/CnIndexPage/CnIndexPage.vue +187 -58
  127. package/src/components/CnIndexPage/CnIndexPageWidgets.vue +36 -1
  128. package/src/components/CnIndexPage/useSelfFetchList.js +22 -4
  129. package/src/components/CnIndexSidebar/CnIndexSidebar.md +2 -0
  130. package/src/components/CnIndexSidebar/CnIndexSidebar.vue +148 -1
  131. package/src/components/CnNcWidgetWidget/CnNcWidgetWidget.vue +68 -5
  132. package/src/components/CnObjectCard/CnObjectCard.md +1 -0
  133. package/src/components/CnObjectCard/CnObjectCard.vue +354 -13
  134. package/src/components/CnObjectSidebar/CnFilesTab.vue +6 -0
  135. package/src/components/CnRecordListWidget/CnRecordListWidget.vue +190 -4
  136. package/src/components/CnRelatedObjectsWidget/CnRelatedObjectsWidget.vue +209 -9
  137. package/src/components/CnTabs/CnTabs.vue +11 -0
  138. package/src/components/CnTabsWidget/CnTabsWidget.vue +91 -18
  139. package/src/components/CnTeamWorkloadWidget/CnTeamWorkloadWidget.md +11 -0
  140. package/src/components/CnTeamWorkloadWidget/CnTeamWorkloadWidget.vue +382 -0
  141. package/src/components/CnTeamWorkloadWidget/index.js +14 -0
  142. package/src/components/CnWidgetGrid/registerDashboardWidgets.js +12 -0
  143. package/src/components/index.js +1 -0
  144. package/src/css/index-page.css +14 -2
  145. package/src/css/look-board-detail.css +48 -4
  146. package/src/css/look-board-index.css +64 -2
  147. package/src/css/look-board.css +25 -2
  148. package/src/index.js +1 -1
  149. package/src/schemas/app-manifest-v2.schema.json +75 -6
  150. package/src/utils/dueText.js +18 -3
  151. package/src/utils/libraryWidgetKeys.js +1 -0
  152. package/src/utils/sortOrder.js +10 -0
  153. package/src/utils/validateManifestV2.compiled.js +3 -3
@@ -1,99 +1,116 @@
1
- import { resolveComponent, openBlock, createBlock, createSlots, withCtx, createElementVNode, createElementBlock, Fragment, renderList, normalizeClass, createVNode, toDisplayString, createCommentVNode, withKeys, createTextVNode } from 'vue';
1
+ import { resolveComponent, openBlock, createBlock, createSlots, withCtx, createElementVNode, createElementBlock, Fragment, renderList, toDisplayString, createCommentVNode, createTextVNode, createVNode, withKeys, normalizeClass } from 'vue';
2
2
 
3
3
  const _hoisted_1 = { class: "cn-related-objects-widget__count" };
4
4
  const _hoisted_2 = { class: "cn-related-objects-widget" };
5
- const _hoisted_3 = {
5
+ const _hoisted_3 = ["aria-labelledby"];
6
+ const _hoisted_4 = { class: "cn-related-objects-widget__section-head" };
7
+ const _hoisted_5 = ["id"];
8
+ const _hoisted_6 = ["onClick"];
9
+ const _hoisted_7 = { class: "cn-related-objects-widget__list" };
10
+ const _hoisted_8 = ["href"];
11
+ const _hoisted_9 = { class: "cn-related-objects-widget__label" };
12
+ const _hoisted_10 = {
6
13
  key: 0,
14
+ class: "cn-related-objects-widget__meta"
15
+ };
16
+ const _hoisted_11 = ["onClick", "onKeydown"];
17
+ const _hoisted_12 = { class: "cn-related-objects-widget__label" };
18
+ const _hoisted_13 = {
19
+ key: 0,
20
+ class: "cn-related-objects-widget__meta"
21
+ };
22
+ const _hoisted_14 = {
23
+ key: 1,
7
24
  class: "cn-related-objects-widget__tabs",
8
25
  role: "tablist"
9
26
  };
10
- const _hoisted_4 = ["aria-selected", "onClick"];
11
- const _hoisted_5 = { class: "cn-related-objects-widget__tab-label" };
12
- const _hoisted_6 = { class: "cn-related-objects-widget__count" };
13
- const _hoisted_7 = {
14
- key: 1,
27
+ const _hoisted_15 = ["aria-selected", "onClick"];
28
+ const _hoisted_16 = { class: "cn-related-objects-widget__tab-label" };
29
+ const _hoisted_17 = { class: "cn-related-objects-widget__count" };
30
+ const _hoisted_18 = {
31
+ key: 2,
15
32
  class: "cn-related-objects-widget__panel",
16
33
  role: "tabpanel"
17
34
  };
18
- const _hoisted_8 = { class: "cn-related-objects-widget__list" };
19
- const _hoisted_9 = ["href"];
20
- const _hoisted_10 = { class: "cn-related-objects-widget__label" };
21
- const _hoisted_11 = {
35
+ const _hoisted_19 = { class: "cn-related-objects-widget__list" };
36
+ const _hoisted_20 = ["href"];
37
+ const _hoisted_21 = { class: "cn-related-objects-widget__label" };
38
+ const _hoisted_22 = {
22
39
  key: 0,
23
40
  class: "cn-related-objects-widget__meta"
24
41
  };
25
- const _hoisted_12 = ["onClick", "onKeydown"];
26
- const _hoisted_13 = { class: "cn-related-objects-widget__label" };
27
- const _hoisted_14 = {
42
+ const _hoisted_23 = ["onClick", "onKeydown"];
43
+ const _hoisted_24 = { class: "cn-related-objects-widget__label" };
44
+ const _hoisted_25 = {
28
45
  key: 0,
29
46
  class: "cn-related-objects-widget__meta"
30
47
  };
31
- const _hoisted_15 = {
48
+ const _hoisted_26 = {
32
49
  key: 1,
33
50
  class: "cn-related-objects-widget__detail"
34
51
  };
35
- const _hoisted_16 = {
36
- key: 2,
52
+ const _hoisted_27 = {
53
+ key: 3,
37
54
  class: "cn-related-objects-widget__section-status",
38
55
  "data-testid": "cn-related-pending",
39
56
  role: "status"
40
57
  };
41
- const _hoisted_17 = ["data-section"];
42
- const _hoisted_18 = {
43
- key: 3,
58
+ const _hoisted_28 = ["data-section"];
59
+ const _hoisted_29 = {
60
+ key: 4,
44
61
  class: "cn-related-objects-widget__empty"
45
62
  };
46
- const _hoisted_19 = {
63
+ const _hoisted_30 = {
47
64
  key: 0,
48
65
  class: "cn-related-objects-widget__group"
49
66
  };
50
- const _hoisted_20 = { class: "cn-related-objects-widget__group-title" };
51
- const _hoisted_21 = { class: "cn-related-objects-widget__count" };
52
- const _hoisted_22 = { class: "cn-related-objects-widget__list" };
53
- const _hoisted_23 = ["onClick", "onKeydown"];
54
- const _hoisted_24 = { class: "cn-related-objects-widget__label" };
55
- const _hoisted_25 = {
67
+ const _hoisted_31 = { class: "cn-related-objects-widget__group-title" };
68
+ const _hoisted_32 = { class: "cn-related-objects-widget__count" };
69
+ const _hoisted_33 = { class: "cn-related-objects-widget__list" };
70
+ const _hoisted_34 = ["onClick", "onKeydown"];
71
+ const _hoisted_35 = { class: "cn-related-objects-widget__label" };
72
+ const _hoisted_36 = {
56
73
  key: 0,
57
74
  class: "cn-related-objects-widget__meta"
58
75
  };
59
- const _hoisted_26 = {
76
+ const _hoisted_37 = {
60
77
  key: 1,
61
78
  class: "cn-related-objects-widget__group"
62
79
  };
63
- const _hoisted_27 = { class: "cn-related-objects-widget__group-title" };
64
- const _hoisted_28 = { class: "cn-related-objects-widget__count" };
65
- const _hoisted_29 = { class: "cn-related-objects-widget__list" };
66
- const _hoisted_30 = ["onClick", "onKeydown"];
67
- const _hoisted_31 = { class: "cn-related-objects-widget__label" };
68
- const _hoisted_32 = {
80
+ const _hoisted_38 = { class: "cn-related-objects-widget__group-title" };
81
+ const _hoisted_39 = { class: "cn-related-objects-widget__count" };
82
+ const _hoisted_40 = { class: "cn-related-objects-widget__list" };
83
+ const _hoisted_41 = ["onClick", "onKeydown"];
84
+ const _hoisted_42 = { class: "cn-related-objects-widget__label" };
85
+ const _hoisted_43 = {
69
86
  key: 0,
70
87
  class: "cn-related-objects-widget__meta"
71
88
  };
72
- const _hoisted_33 = {
89
+ const _hoisted_44 = {
73
90
  key: 0,
74
91
  class: "cn-related-objects-widget__group-title"
75
92
  };
76
- const _hoisted_34 = { class: "cn-related-objects-widget__count" };
77
- const _hoisted_35 = {
93
+ const _hoisted_45 = { class: "cn-related-objects-widget__count" };
94
+ const _hoisted_46 = {
78
95
  key: 1,
79
96
  class: "cn-related-objects-widget__list"
80
97
  };
81
- const _hoisted_36 = ["onClick", "onKeydown"];
82
- const _hoisted_37 = { class: "cn-related-objects-widget__label" };
83
- const _hoisted_38 = {
98
+ const _hoisted_47 = ["onClick", "onKeydown"];
99
+ const _hoisted_48 = { class: "cn-related-objects-widget__label" };
100
+ const _hoisted_49 = {
84
101
  key: 2,
85
102
  class: "cn-related-objects-widget__group"
86
103
  };
87
- const _hoisted_39 = { class: "cn-related-objects-widget__group-title" };
88
- const _hoisted_40 = { class: "cn-related-objects-widget__list cn-related-objects-widget__list--apps" };
89
- const _hoisted_41 = ["onClick", "onKeydown"];
90
- const _hoisted_42 = { class: "cn-related-objects-widget__label" };
91
- const _hoisted_43 = {
104
+ const _hoisted_50 = { class: "cn-related-objects-widget__group-title" };
105
+ const _hoisted_51 = { class: "cn-related-objects-widget__list cn-related-objects-widget__list--apps" };
106
+ const _hoisted_52 = ["onClick", "onKeydown"];
107
+ const _hoisted_53 = { class: "cn-related-objects-widget__label" };
108
+ const _hoisted_54 = {
92
109
  key: 3,
93
110
  class: "cn-related-objects-widget__empty"
94
111
  };
95
- const _hoisted_44 = { class: "cn-related-objects-widget__footer" };
96
- const _hoisted_45 = {
112
+ const _hoisted_55 = { class: "cn-related-objects-widget__footer" };
113
+ const _hoisted_56 = {
97
114
  key: 2,
98
115
  class: "cn-related-objects-widget__add-error"
99
116
  };
@@ -124,8 +141,87 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
124
141
  createElementVNode("div", _hoisted_2, [
125
142
  ($options.useTabs)
126
143
  ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
127
- ($options.tabStripVisible)
128
- ? (openBlock(), createElementBlock("div", _hoisted_3, [
144
+ ($props.layout === 'sections')
145
+ ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList($options.visibleGroups, (group) => {
146
+ return (openBlock(), createElementBlock("section", {
147
+ key: `section-${group.key}`,
148
+ class: "cn-related-objects-widget__section",
149
+ "aria-labelledby": `${$data.sectionIdBase}-${group.key}`,
150
+ "data-testid": "cn-related-section"
151
+ }, [
152
+ createElementVNode("div", _hoisted_4, [
153
+ createElementVNode("h4", {
154
+ id: `${$data.sectionIdBase}-${group.key}`,
155
+ class: "cn-related-objects-widget__section-title"
156
+ }, toDisplayString(group.label), 9 /* TEXT, PROPS */, _hoisted_5),
157
+ ($options.groupAction(group))
158
+ ? (openBlock(), createElementBlock("button", {
159
+ key: 0,
160
+ type: "button",
161
+ class: "cn-related-objects-widget__section-action",
162
+ "data-testid": "cn-related-section-action",
163
+ onClick: $event => ($options.onGroupAction(group))
164
+ }, [
165
+ ($options.groupAction(group).icon)
166
+ ? (openBlock(), createBlock(_component_CnIcon, {
167
+ key: 0,
168
+ name: $options.groupAction(group).icon,
169
+ size: 16
170
+ }, null, 8 /* PROPS */, ["name"]))
171
+ : createCommentVNode("v-if", true),
172
+ createTextVNode(" " + toDisplayString($options.groupAction(group).label), 1 /* TEXT */)
173
+ ], 8 /* PROPS */, _hoisted_6))
174
+ : createCommentVNode("v-if", true)
175
+ ]),
176
+ createElementVNode("ul", _hoisted_7, [
177
+ (openBlock(true), createElementBlock(Fragment, null, renderList(group.items, (item, i) => {
178
+ return (openBlock(), createElementBlock("li", {
179
+ key: `item-${group.key}-${item.id || i}`
180
+ }, [
181
+ ($options.groupHref(group, item))
182
+ ? (openBlock(), createElementBlock("a", {
183
+ key: 0,
184
+ class: "cn-related-objects-widget__row",
185
+ href: $options.groupHref(group, item),
186
+ target: "_blank",
187
+ rel: "noopener noreferrer"
188
+ }, [
189
+ createVNode(_component_CnIcon, {
190
+ name: group.icon,
191
+ size: 20,
192
+ class: "cn-related-objects-widget__icon"
193
+ }, null, 8 /* PROPS */, ["name"]),
194
+ createElementVNode("span", _hoisted_9, toDisplayString(item.label), 1 /* TEXT */),
195
+ (item.meta)
196
+ ? (openBlock(), createElementBlock("span", _hoisted_10, toDisplayString(item.meta), 1 /* TEXT */))
197
+ : createCommentVNode("v-if", true)
198
+ ], 8 /* PROPS */, _hoisted_8))
199
+ : (openBlock(), createElementBlock("div", {
200
+ key: 1,
201
+ class: "cn-related-objects-widget__row",
202
+ tabindex: "0",
203
+ role: "button",
204
+ onClick: $event => ($options.onSelectGroupItem(group, item)),
205
+ onKeydown: withKeys($event => ($options.onSelectGroupItem(group, item)), ["enter"])
206
+ }, [
207
+ createVNode(_component_CnIcon, {
208
+ name: group.icon,
209
+ size: 20,
210
+ class: "cn-related-objects-widget__icon"
211
+ }, null, 8 /* PROPS */, ["name"]),
212
+ createElementVNode("span", _hoisted_12, toDisplayString(item.label), 1 /* TEXT */),
213
+ (item.meta)
214
+ ? (openBlock(), createElementBlock("span", _hoisted_13, toDisplayString(item.meta), 1 /* TEXT */))
215
+ : createCommentVNode("v-if", true)
216
+ ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_11))
217
+ ]))
218
+ }), 128 /* KEYED_FRAGMENT */))
219
+ ])
220
+ ], 8 /* PROPS */, _hoisted_3))
221
+ }), 128 /* KEYED_FRAGMENT */))
222
+ : createCommentVNode("v-if", true),
223
+ ($props.layout !== 'sections' && $options.tabStripVisible)
224
+ ? (openBlock(), createElementBlock("div", _hoisted_14, [
129
225
  (openBlock(true), createElementBlock(Fragment, null, renderList($options.visibleGroups, (group) => {
130
226
  return (openBlock(), createElementBlock("button", {
131
227
  key: `tab-${group.key}`,
@@ -140,15 +236,15 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
140
236
  size: 18,
141
237
  class: "cn-related-objects-widget__tab-icon"
142
238
  }, null, 8 /* PROPS */, ["name"]),
143
- createElementVNode("span", _hoisted_5, toDisplayString(group.label), 1 /* TEXT */),
144
- createElementVNode("span", _hoisted_6, toDisplayString(group.total), 1 /* TEXT */)
145
- ], 10 /* CLASS, PROPS */, _hoisted_4))
239
+ createElementVNode("span", _hoisted_16, toDisplayString(group.label), 1 /* TEXT */),
240
+ createElementVNode("span", _hoisted_17, toDisplayString(group.total), 1 /* TEXT */)
241
+ ], 10 /* CLASS, PROPS */, _hoisted_15))
146
242
  }), 128 /* KEYED_FRAGMENT */))
147
243
  ]))
148
244
  : createCommentVNode("v-if", true),
149
- ($options.activeGroup)
150
- ? (openBlock(), createElementBlock("section", _hoisted_7, [
151
- createElementVNode("ul", _hoisted_8, [
245
+ ($props.layout !== 'sections' && $options.activeGroup)
246
+ ? (openBlock(), createElementBlock("section", _hoisted_18, [
247
+ createElementVNode("ul", _hoisted_19, [
152
248
  (openBlock(true), createElementBlock(Fragment, null, renderList($options.activeGroup.items, (item, i) => {
153
249
  return (openBlock(), createElementBlock("li", {
154
250
  key: `item-${$options.activeGroup.key}-${item.id || i}`
@@ -166,11 +262,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
166
262
  size: 20,
167
263
  class: "cn-related-objects-widget__icon"
168
264
  }, null, 8 /* PROPS */, ["name"]),
169
- createElementVNode("span", _hoisted_10, toDisplayString(item.label), 1 /* TEXT */),
265
+ createElementVNode("span", _hoisted_21, toDisplayString(item.label), 1 /* TEXT */),
170
266
  (item.meta)
171
- ? (openBlock(), createElementBlock("span", _hoisted_11, toDisplayString(item.meta), 1 /* TEXT */))
267
+ ? (openBlock(), createElementBlock("span", _hoisted_22, toDisplayString(item.meta), 1 /* TEXT */))
172
268
  : createCommentVNode("v-if", true)
173
- ], 8 /* PROPS */, _hoisted_9))
269
+ ], 8 /* PROPS */, _hoisted_20))
174
270
  : (openBlock(), createElementBlock("div", {
175
271
  key: 1,
176
272
  class: normalizeClass(["cn-related-objects-widget__row", { 'cn-related-objects-widget__row--expanded': $options.isExpanded($options.activeGroup.key, item) }]),
@@ -184,21 +280,21 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
184
280
  size: 20,
185
281
  class: "cn-related-objects-widget__icon"
186
282
  }, null, 8 /* PROPS */, ["name"]),
187
- createElementVNode("span", _hoisted_13, toDisplayString(item.label), 1 /* TEXT */),
283
+ createElementVNode("span", _hoisted_24, toDisplayString(item.label), 1 /* TEXT */),
188
284
  (item.meta)
189
- ? (openBlock(), createElementBlock("span", _hoisted_14, toDisplayString(item.meta), 1 /* TEXT */))
285
+ ? (openBlock(), createElementBlock("span", _hoisted_25, toDisplayString(item.meta), 1 /* TEXT */))
190
286
  : createCommentVNode("v-if", true),
191
287
  (item.detail && $options.isExpanded($options.activeGroup.key, item))
192
- ? (openBlock(), createElementBlock("p", _hoisted_15, toDisplayString(item.detail), 1 /* TEXT */))
288
+ ? (openBlock(), createElementBlock("p", _hoisted_26, toDisplayString(item.detail), 1 /* TEXT */))
193
289
  : createCommentVNode("v-if", true)
194
- ], 42 /* CLASS, PROPS, NEED_HYDRATION */, _hoisted_12))
290
+ ], 42 /* CLASS, PROPS, NEED_HYDRATION */, _hoisted_23))
195
291
  ]))
196
292
  }), 128 /* KEYED_FRAGMENT */))
197
293
  ])
198
294
  ]))
199
295
  : createCommentVNode("v-if", true),
200
296
  ($options.visibleGroups.length && $data.pendingSections.length)
201
- ? (openBlock(), createElementBlock("p", _hoisted_16, toDisplayString($options.pendingLabel), 1 /* TEXT */))
297
+ ? (openBlock(), createElementBlock("p", _hoisted_27, toDisplayString($options.pendingLabel), 1 /* TEXT */))
202
298
  : createCommentVNode("v-if", true),
203
299
  (openBlock(true), createElementBlock(Fragment, null, renderList($data.failedSections, (failed) => {
204
300
  return (openBlock(), createElementBlock("p", {
@@ -206,13 +302,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
206
302
  class: "cn-related-objects-widget__section-error",
207
303
  "data-testid": "cn-related-section-error",
208
304
  "data-section": failed.key
209
- }, toDisplayString($options.t('nextcloud-vue', 'Could not load {section}.', { section: failed.label })), 9 /* TEXT, PROPS */, _hoisted_17))
305
+ }, toDisplayString($options.t('nextcloud-vue', 'Could not load {section}.', { section: failed.label })), 9 /* TEXT, PROPS */, _hoisted_28))
210
306
  }), 128 /* KEYED_FRAGMENT */)),
211
307
  ($data.loading && !$options.visibleGroups.length)
212
- ? (openBlock(), createElementBlock("div", _hoisted_18, toDisplayString($options.loadingLabel), 1 /* TEXT */))
308
+ ? (openBlock(), createElementBlock("div", _hoisted_29, toDisplayString($options.loadingLabel), 1 /* TEXT */))
213
309
  : ($data.hasLoaded && !$options.visibleGroups.length)
214
310
  ? (openBlock(), createBlock(_component_CnEmptyContent, {
215
- key: 4,
311
+ key: 5,
216
312
  class: "cn-related-objects-widget__empty-state",
217
313
  name: $options.resolvedEmptyLabel
218
314
  }, {
@@ -228,12 +324,12 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
228
324
  ], 64 /* STABLE_FRAGMENT */))
229
325
  : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
230
326
  ($props.showObjects && $data.objectItems.length)
231
- ? (openBlock(), createElementBlock("section", _hoisted_19, [
232
- createElementVNode("h4", _hoisted_20, [
327
+ ? (openBlock(), createElementBlock("section", _hoisted_30, [
328
+ createElementVNode("h4", _hoisted_31, [
233
329
  createTextVNode(toDisplayString($props.objectsLabel) + " ", 1 /* TEXT */),
234
- createElementVNode("span", _hoisted_21, toDisplayString($data.objectItems.length), 1 /* TEXT */)
330
+ createElementVNode("span", _hoisted_32, toDisplayString($data.objectItems.length), 1 /* TEXT */)
235
331
  ]),
236
- createElementVNode("ul", _hoisted_22, [
332
+ createElementVNode("ul", _hoisted_33, [
237
333
  (openBlock(true), createElementBlock(Fragment, null, renderList($data.objectItems, (item) => {
238
334
  return (openBlock(), createElementBlock("li", {
239
335
  key: `obj-${item.id}`,
@@ -247,22 +343,22 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
247
343
  class: "cn-related-objects-widget__icon",
248
344
  size: 20
249
345
  }),
250
- createElementVNode("span", _hoisted_24, toDisplayString(item.label), 1 /* TEXT */),
346
+ createElementVNode("span", _hoisted_35, toDisplayString(item.label), 1 /* TEXT */),
251
347
  (item.meta)
252
- ? (openBlock(), createElementBlock("span", _hoisted_25, toDisplayString(item.meta), 1 /* TEXT */))
348
+ ? (openBlock(), createElementBlock("span", _hoisted_36, toDisplayString(item.meta), 1 /* TEXT */))
253
349
  : createCommentVNode("v-if", true)
254
- ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_23))
350
+ ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_34))
255
351
  }), 128 /* KEYED_FRAGMENT */))
256
352
  ])
257
353
  ]))
258
354
  : createCommentVNode("v-if", true),
259
355
  ($props.showFiles && $data.fileItems.length)
260
- ? (openBlock(), createElementBlock("section", _hoisted_26, [
261
- createElementVNode("h4", _hoisted_27, [
356
+ ? (openBlock(), createElementBlock("section", _hoisted_37, [
357
+ createElementVNode("h4", _hoisted_38, [
262
358
  createTextVNode(toDisplayString($props.filesLabel) + " ", 1 /* TEXT */),
263
- createElementVNode("span", _hoisted_28, toDisplayString($data.fileItems.length), 1 /* TEXT */)
359
+ createElementVNode("span", _hoisted_39, toDisplayString($data.fileItems.length), 1 /* TEXT */)
264
360
  ]),
265
- createElementVNode("ul", _hoisted_29, [
361
+ createElementVNode("ul", _hoisted_40, [
266
362
  (openBlock(true), createElementBlock(Fragment, null, renderList($data.fileItems, (item) => {
267
363
  return (openBlock(), createElementBlock("li", {
268
364
  key: `file-${item.id}`,
@@ -276,11 +372,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
276
372
  class: "cn-related-objects-widget__icon",
277
373
  size: 20
278
374
  }),
279
- createElementVNode("span", _hoisted_31, toDisplayString(item.label), 1 /* TEXT */),
375
+ createElementVNode("span", _hoisted_42, toDisplayString(item.label), 1 /* TEXT */),
280
376
  (item.meta)
281
- ? (openBlock(), createElementBlock("span", _hoisted_32, toDisplayString(item.meta), 1 /* TEXT */))
377
+ ? (openBlock(), createElementBlock("span", _hoisted_43, toDisplayString(item.meta), 1 /* TEXT */))
282
378
  : createCommentVNode("v-if", true)
283
- ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_30))
379
+ ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_41))
284
380
  }), 128 /* KEYED_FRAGMENT */))
285
381
  ])
286
382
  ]))
@@ -291,13 +387,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
291
387
  class: "cn-related-objects-widget__group"
292
388
  }, [
293
389
  ((section.items || []).length)
294
- ? (openBlock(), createElementBlock("h4", _hoisted_33, [
390
+ ? (openBlock(), createElementBlock("h4", _hoisted_44, [
295
391
  createTextVNode(toDisplayString(section.label) + " ", 1 /* TEXT */),
296
- createElementVNode("span", _hoisted_34, toDisplayString(section.items.length), 1 /* TEXT */)
392
+ createElementVNode("span", _hoisted_45, toDisplayString(section.items.length), 1 /* TEXT */)
297
393
  ]))
298
394
  : createCommentVNode("v-if", true),
299
395
  ((section.items || []).length)
300
- ? (openBlock(), createElementBlock("ul", _hoisted_35, [
396
+ ? (openBlock(), createElementBlock("ul", _hoisted_46, [
301
397
  (openBlock(true), createElementBlock(Fragment, null, renderList(section.items, (item, i) => {
302
398
  return (openBlock(), createElementBlock("li", {
303
399
  key: `extra-${section.key}-${i}`,
@@ -315,17 +411,17 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
315
411
  class: "cn-related-objects-widget__icon"
316
412
  }, null, 8 /* PROPS */, ["name"]))
317
413
  : createCommentVNode("v-if", true),
318
- createElementVNode("span", _hoisted_37, toDisplayString(item.label || item.title || item.name), 1 /* TEXT */)
319
- ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_36))
414
+ createElementVNode("span", _hoisted_48, toDisplayString(item.label || item.title || item.name), 1 /* TEXT */)
415
+ ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_47))
320
416
  }), 128 /* KEYED_FRAGMENT */))
321
417
  ]))
322
418
  : createCommentVNode("v-if", true)
323
419
  ]))
324
420
  }), 128 /* KEYED_FRAGMENT */)),
325
421
  ($props.showIntegrations && $options.linkedApps.length)
326
- ? (openBlock(), createElementBlock("section", _hoisted_38, [
327
- createElementVNode("h4", _hoisted_39, toDisplayString($props.linkedAppsLabel), 1 /* TEXT */),
328
- createElementVNode("ul", _hoisted_40, [
422
+ ? (openBlock(), createElementBlock("section", _hoisted_49, [
423
+ createElementVNode("h4", _hoisted_50, toDisplayString($props.linkedAppsLabel), 1 /* TEXT */),
424
+ createElementVNode("ul", _hoisted_51, [
329
425
  (openBlock(true), createElementBlock(Fragment, null, renderList($options.linkedApps, (app) => {
330
426
  return (openBlock(), createElementBlock("li", {
331
427
  key: `app-${app.id}`,
@@ -340,18 +436,18 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
340
436
  size: 20,
341
437
  class: "cn-related-objects-widget__icon"
342
438
  }, null, 8 /* PROPS */, ["name"]),
343
- createElementVNode("span", _hoisted_42, toDisplayString(app.label), 1 /* TEXT */),
439
+ createElementVNode("span", _hoisted_53, toDisplayString(app.label), 1 /* TEXT */),
344
440
  createVNode(_component_ChevronRight, {
345
441
  class: "cn-related-objects-widget__chevron",
346
442
  size: 20
347
443
  })
348
- ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_41))
444
+ ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_52))
349
445
  }), 128 /* KEYED_FRAGMENT */))
350
446
  ])
351
447
  ]))
352
448
  : createCommentVNode("v-if", true),
353
449
  ($data.loading && $options.isEmpty)
354
- ? (openBlock(), createElementBlock("div", _hoisted_43, toDisplayString($options.loadingLabel), 1 /* TEXT */))
450
+ ? (openBlock(), createElementBlock("div", _hoisted_54, toDisplayString($options.loadingLabel), 1 /* TEXT */))
355
451
  : ($data.hasLoaded && $options.isEmpty)
356
452
  ? (openBlock(), createBlock(_component_CnEmptyContent, {
357
453
  key: 4,
@@ -385,7 +481,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
385
481
  ? {
386
482
  name: "footer",
387
483
  fn: withCtx(() => [
388
- createElementVNode("div", _hoisted_44, [
484
+ createElementVNode("div", _hoisted_55, [
389
485
  ($options.soleAddable && $options.soleAddable.key === 'files')
390
486
  ? (openBlock(), createBlock(_component_NcButton, {
391
487
  key: 0,
@@ -468,7 +564,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
468
564
  _: 1 /* STABLE */
469
565
  }, 8 /* PROPS */, ["menuName"])),
470
566
  ($data.addError)
471
- ? (openBlock(), createElementBlock("span", _hoisted_45, toDisplayString($data.addError), 1 /* TEXT */))
567
+ ? (openBlock(), createElementBlock("span", _hoisted_56, toDisplayString($data.addError), 1 /* TEXT */))
472
568
  : createCommentVNode("v-if", true),
473
569
  createElementVNode("input", {
474
570
  ref: $options.fileInputRef,