@conduction/nextcloud-vue 2.75.0 → 2.76.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 (67) hide show
  1. package/dist/esm/components/CnCardGrid/CnCardGrid.vue2.js +6 -0
  2. package/dist/esm/components/CnCardGrid/CnCardGrid.vue2.js.map +1 -1
  3. package/dist/esm/components/CnCardGrid/CnCardGrid.vue3.js +3 -2
  4. package/dist/esm/components/CnCardGrid/CnCardGrid.vue3.js.map +1 -1
  5. package/dist/esm/components/CnCredentials/CnCredentials.vue2.js +11 -10
  6. package/dist/esm/components/CnCredentials/CnCredentials.vue2.js.map +1 -1
  7. package/dist/esm/components/CnCredentials/CnCredentials.vue3.js.map +1 -1
  8. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +8 -5
  9. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
  10. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
  11. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +144 -6
  12. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
  13. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +12 -11
  14. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
  15. package/dist/esm/components/CnIndexPage/selfModeActions.js +90 -14
  16. package/dist/esm/components/CnIndexPage/selfModeActions.js.map +1 -1
  17. package/dist/esm/components/CnIndexPage/useSelfFetchList.js +15 -3
  18. package/dist/esm/components/CnIndexPage/useSelfFetchList.js.map +1 -1
  19. package/dist/esm/components/CnObjectCard/CnObjectCard.vue2.js +26 -0
  20. package/dist/esm/components/CnObjectCard/CnObjectCard.vue2.js.map +1 -1
  21. package/dist/esm/components/CnObjectCard/CnObjectCard.vue3.js +26 -9
  22. package/dist/esm/components/CnObjectCard/CnObjectCard.vue3.js.map +1 -1
  23. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js +19 -3
  24. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js.map +1 -1
  25. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js.map +1 -1
  26. package/dist/esm/components/CnRelatedObjectsWidget/CnRelatedObjectsWidget.vue2.js +153 -38
  27. package/dist/esm/components/CnRelatedObjectsWidget/CnRelatedObjectsWidget.vue2.js.map +1 -1
  28. package/dist/esm/components/CnRelatedObjectsWidget/CnRelatedObjectsWidget.vue3.js +74 -56
  29. package/dist/esm/components/CnRelatedObjectsWidget/CnRelatedObjectsWidget.vue3.js.map +1 -1
  30. package/dist/esm/composables/useObjectLock.js +41 -10
  31. package/dist/esm/composables/useObjectLock.js.map +1 -1
  32. package/dist/esm/index.js +1 -0
  33. package/dist/esm/index.js.map +1 -1
  34. package/dist/esm/l10n/en.json.js +7 -1
  35. package/dist/esm/l10n/en.json.js.map +1 -1
  36. package/dist/esm/l10n/nl.json.js +8 -2
  37. package/dist/esm/l10n/nl.json.js.map +1 -1
  38. package/dist/esm/nextcloud-vue.css +88 -1
  39. package/dist/esm/store/useObjectStore.js +37 -9
  40. package/dist/esm/store/useObjectStore.js.map +1 -1
  41. package/dist/esm/utils/objectSignals.js +44 -0
  42. package/dist/esm/utils/objectSignals.js.map +1 -0
  43. package/dist/nextcloud-vue.cjs.js +871 -328
  44. package/dist/nextcloud-vue.cjs.js.map +2 -2
  45. package/dist/nextcloud-vue.css +88 -1
  46. package/l10n/en.json +7 -1
  47. package/l10n/nl.json +8 -2
  48. package/package.json +1 -1
  49. package/src/components/CnCardGrid/CnCardGrid.md +1 -0
  50. package/src/components/CnCardGrid/CnCardGrid.vue +7 -0
  51. package/src/components/CnCredentials/CnCredentials.vue +17 -16
  52. package/src/components/CnDetailPage/CnDetailPage.vue +8 -5
  53. package/src/components/CnIndexPage/CnIndexPage.md +15 -0
  54. package/src/components/CnIndexPage/CnIndexPage.vue +155 -16
  55. package/src/components/CnIndexPage/selfModeActions.js +89 -13
  56. package/src/components/CnIndexPage/useSelfFetchList.js +15 -3
  57. package/src/components/CnObjectCard/CnObjectCard.md +1 -0
  58. package/src/components/CnObjectCard/CnObjectCard.vue +89 -1
  59. package/src/components/CnObjectListWidget/CnObjectListWidget.vue +19 -3
  60. package/src/components/CnRelatedObjectsWidget/CnRelatedObjectsWidget.vue +181 -38
  61. package/src/composables/__tests__/useObjectLock.endpoints.spec.js +83 -0
  62. package/src/composables/useObjectLock.js +41 -10
  63. package/src/css/look-board-index.css +35 -1
  64. package/src/index.js +1 -0
  65. package/src/store/useObjectStore.js +37 -9
  66. package/src/utils/index.js +1 -0
  67. package/src/utils/objectSignals.js +41 -0
@@ -34,59 +34,66 @@ const _hoisted_15 = {
34
34
  };
35
35
  const _hoisted_16 = {
36
36
  key: 2,
37
+ class: "cn-related-objects-widget__section-status",
38
+ "data-testid": "cn-related-pending",
39
+ role: "status"
40
+ };
41
+ const _hoisted_17 = ["data-section"];
42
+ const _hoisted_18 = {
43
+ key: 3,
37
44
  class: "cn-related-objects-widget__empty"
38
45
  };
39
- const _hoisted_17 = {
46
+ const _hoisted_19 = {
40
47
  key: 0,
41
48
  class: "cn-related-objects-widget__group"
42
49
  };
43
- const _hoisted_18 = { class: "cn-related-objects-widget__group-title" };
44
- const _hoisted_19 = { class: "cn-related-objects-widget__count" };
45
- const _hoisted_20 = { class: "cn-related-objects-widget__list" };
46
- const _hoisted_21 = ["onClick", "onKeydown"];
47
- const _hoisted_22 = { class: "cn-related-objects-widget__label" };
48
- const _hoisted_23 = {
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 = {
49
56
  key: 0,
50
57
  class: "cn-related-objects-widget__meta"
51
58
  };
52
- const _hoisted_24 = {
59
+ const _hoisted_26 = {
53
60
  key: 1,
54
61
  class: "cn-related-objects-widget__group"
55
62
  };
56
- const _hoisted_25 = { class: "cn-related-objects-widget__group-title" };
57
- const _hoisted_26 = { class: "cn-related-objects-widget__count" };
58
- const _hoisted_27 = { class: "cn-related-objects-widget__list" };
59
- const _hoisted_28 = ["onClick", "onKeydown"];
60
- const _hoisted_29 = { class: "cn-related-objects-widget__label" };
61
- const _hoisted_30 = {
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 = {
62
69
  key: 0,
63
70
  class: "cn-related-objects-widget__meta"
64
71
  };
65
- const _hoisted_31 = {
72
+ const _hoisted_33 = {
66
73
  key: 0,
67
74
  class: "cn-related-objects-widget__group-title"
68
75
  };
69
- const _hoisted_32 = { class: "cn-related-objects-widget__count" };
70
- const _hoisted_33 = {
76
+ const _hoisted_34 = { class: "cn-related-objects-widget__count" };
77
+ const _hoisted_35 = {
71
78
  key: 1,
72
79
  class: "cn-related-objects-widget__list"
73
80
  };
74
- const _hoisted_34 = ["onClick", "onKeydown"];
75
- const _hoisted_35 = { class: "cn-related-objects-widget__label" };
76
- const _hoisted_36 = {
81
+ const _hoisted_36 = ["onClick", "onKeydown"];
82
+ const _hoisted_37 = { class: "cn-related-objects-widget__label" };
83
+ const _hoisted_38 = {
77
84
  key: 2,
78
85
  class: "cn-related-objects-widget__group"
79
86
  };
80
- const _hoisted_37 = { class: "cn-related-objects-widget__group-title" };
81
- const _hoisted_38 = { class: "cn-related-objects-widget__list cn-related-objects-widget__list--apps" };
82
- const _hoisted_39 = ["onClick", "onKeydown"];
83
- const _hoisted_40 = { class: "cn-related-objects-widget__label" };
84
- const _hoisted_41 = {
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 = {
85
92
  key: 3,
86
93
  class: "cn-related-objects-widget__empty"
87
94
  };
88
- const _hoisted_42 = { class: "cn-related-objects-widget__footer" };
89
- const _hoisted_43 = {
95
+ const _hoisted_44 = { class: "cn-related-objects-widget__footer" };
96
+ const _hoisted_45 = {
90
97
  key: 2,
91
98
  class: "cn-related-objects-widget__add-error"
92
99
  };
@@ -190,11 +197,22 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
190
197
  ])
191
198
  ]))
192
199
  : createCommentVNode("v-if", true),
200
+ ($options.visibleGroups.length && $data.pendingSections.length)
201
+ ? (openBlock(), createElementBlock("p", _hoisted_16, toDisplayString($options.pendingLabel), 1 /* TEXT */))
202
+ : createCommentVNode("v-if", true),
203
+ (openBlock(true), createElementBlock(Fragment, null, renderList($data.failedSections, (failed) => {
204
+ return (openBlock(), createElementBlock("p", {
205
+ key: `failed-${failed.key}`,
206
+ class: "cn-related-objects-widget__section-error",
207
+ "data-testid": "cn-related-section-error",
208
+ "data-section": failed.key
209
+ }, toDisplayString($options.t('nextcloud-vue', 'Could not load {section}.', { section: failed.label })), 9 /* TEXT, PROPS */, _hoisted_17))
210
+ }), 128 /* KEYED_FRAGMENT */)),
193
211
  ($data.loading && !$options.visibleGroups.length)
194
- ? (openBlock(), createElementBlock("div", _hoisted_16, toDisplayString($options.loadingLabel), 1 /* TEXT */))
212
+ ? (openBlock(), createElementBlock("div", _hoisted_18, toDisplayString($options.loadingLabel), 1 /* TEXT */))
195
213
  : ($data.hasLoaded && !$options.visibleGroups.length)
196
214
  ? (openBlock(), createBlock(_component_CnEmptyContent, {
197
- key: 3,
215
+ key: 4,
198
216
  class: "cn-related-objects-widget__empty-state",
199
217
  name: $options.resolvedEmptyLabel
200
218
  }, {
@@ -210,12 +228,12 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
210
228
  ], 64 /* STABLE_FRAGMENT */))
211
229
  : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
212
230
  ($props.showObjects && $data.objectItems.length)
213
- ? (openBlock(), createElementBlock("section", _hoisted_17, [
214
- createElementVNode("h4", _hoisted_18, [
231
+ ? (openBlock(), createElementBlock("section", _hoisted_19, [
232
+ createElementVNode("h4", _hoisted_20, [
215
233
  createTextVNode(toDisplayString($props.objectsLabel) + " ", 1 /* TEXT */),
216
- createElementVNode("span", _hoisted_19, toDisplayString($data.objectItems.length), 1 /* TEXT */)
234
+ createElementVNode("span", _hoisted_21, toDisplayString($data.objectItems.length), 1 /* TEXT */)
217
235
  ]),
218
- createElementVNode("ul", _hoisted_20, [
236
+ createElementVNode("ul", _hoisted_22, [
219
237
  (openBlock(true), createElementBlock(Fragment, null, renderList($data.objectItems, (item) => {
220
238
  return (openBlock(), createElementBlock("li", {
221
239
  key: `obj-${item.id}`,
@@ -229,22 +247,22 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
229
247
  class: "cn-related-objects-widget__icon",
230
248
  size: 20
231
249
  }),
232
- createElementVNode("span", _hoisted_22, toDisplayString(item.label), 1 /* TEXT */),
250
+ createElementVNode("span", _hoisted_24, toDisplayString(item.label), 1 /* TEXT */),
233
251
  (item.meta)
234
- ? (openBlock(), createElementBlock("span", _hoisted_23, toDisplayString(item.meta), 1 /* TEXT */))
252
+ ? (openBlock(), createElementBlock("span", _hoisted_25, toDisplayString(item.meta), 1 /* TEXT */))
235
253
  : createCommentVNode("v-if", true)
236
- ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_21))
254
+ ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_23))
237
255
  }), 128 /* KEYED_FRAGMENT */))
238
256
  ])
239
257
  ]))
240
258
  : createCommentVNode("v-if", true),
241
259
  ($props.showFiles && $data.fileItems.length)
242
- ? (openBlock(), createElementBlock("section", _hoisted_24, [
243
- createElementVNode("h4", _hoisted_25, [
260
+ ? (openBlock(), createElementBlock("section", _hoisted_26, [
261
+ createElementVNode("h4", _hoisted_27, [
244
262
  createTextVNode(toDisplayString($props.filesLabel) + " ", 1 /* TEXT */),
245
- createElementVNode("span", _hoisted_26, toDisplayString($data.fileItems.length), 1 /* TEXT */)
263
+ createElementVNode("span", _hoisted_28, toDisplayString($data.fileItems.length), 1 /* TEXT */)
246
264
  ]),
247
- createElementVNode("ul", _hoisted_27, [
265
+ createElementVNode("ul", _hoisted_29, [
248
266
  (openBlock(true), createElementBlock(Fragment, null, renderList($data.fileItems, (item) => {
249
267
  return (openBlock(), createElementBlock("li", {
250
268
  key: `file-${item.id}`,
@@ -258,11 +276,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
258
276
  class: "cn-related-objects-widget__icon",
259
277
  size: 20
260
278
  }),
261
- createElementVNode("span", _hoisted_29, toDisplayString(item.label), 1 /* TEXT */),
279
+ createElementVNode("span", _hoisted_31, toDisplayString(item.label), 1 /* TEXT */),
262
280
  (item.meta)
263
- ? (openBlock(), createElementBlock("span", _hoisted_30, toDisplayString(item.meta), 1 /* TEXT */))
281
+ ? (openBlock(), createElementBlock("span", _hoisted_32, toDisplayString(item.meta), 1 /* TEXT */))
264
282
  : createCommentVNode("v-if", true)
265
- ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_28))
283
+ ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_30))
266
284
  }), 128 /* KEYED_FRAGMENT */))
267
285
  ])
268
286
  ]))
@@ -273,13 +291,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
273
291
  class: "cn-related-objects-widget__group"
274
292
  }, [
275
293
  ((section.items || []).length)
276
- ? (openBlock(), createElementBlock("h4", _hoisted_31, [
294
+ ? (openBlock(), createElementBlock("h4", _hoisted_33, [
277
295
  createTextVNode(toDisplayString(section.label) + " ", 1 /* TEXT */),
278
- createElementVNode("span", _hoisted_32, toDisplayString(section.items.length), 1 /* TEXT */)
296
+ createElementVNode("span", _hoisted_34, toDisplayString(section.items.length), 1 /* TEXT */)
279
297
  ]))
280
298
  : createCommentVNode("v-if", true),
281
299
  ((section.items || []).length)
282
- ? (openBlock(), createElementBlock("ul", _hoisted_33, [
300
+ ? (openBlock(), createElementBlock("ul", _hoisted_35, [
283
301
  (openBlock(true), createElementBlock(Fragment, null, renderList(section.items, (item, i) => {
284
302
  return (openBlock(), createElementBlock("li", {
285
303
  key: `extra-${section.key}-${i}`,
@@ -297,17 +315,17 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
297
315
  class: "cn-related-objects-widget__icon"
298
316
  }, null, 8 /* PROPS */, ["name"]))
299
317
  : createCommentVNode("v-if", true),
300
- createElementVNode("span", _hoisted_35, toDisplayString(item.label || item.title || item.name), 1 /* TEXT */)
301
- ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_34))
318
+ createElementVNode("span", _hoisted_37, toDisplayString(item.label || item.title || item.name), 1 /* TEXT */)
319
+ ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_36))
302
320
  }), 128 /* KEYED_FRAGMENT */))
303
321
  ]))
304
322
  : createCommentVNode("v-if", true)
305
323
  ]))
306
324
  }), 128 /* KEYED_FRAGMENT */)),
307
325
  ($props.showIntegrations && $options.linkedApps.length)
308
- ? (openBlock(), createElementBlock("section", _hoisted_36, [
309
- createElementVNode("h4", _hoisted_37, toDisplayString($props.linkedAppsLabel), 1 /* TEXT */),
310
- createElementVNode("ul", _hoisted_38, [
326
+ ? (openBlock(), createElementBlock("section", _hoisted_38, [
327
+ createElementVNode("h4", _hoisted_39, toDisplayString($props.linkedAppsLabel), 1 /* TEXT */),
328
+ createElementVNode("ul", _hoisted_40, [
311
329
  (openBlock(true), createElementBlock(Fragment, null, renderList($options.linkedApps, (app) => {
312
330
  return (openBlock(), createElementBlock("li", {
313
331
  key: `app-${app.id}`,
@@ -322,18 +340,18 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
322
340
  size: 20,
323
341
  class: "cn-related-objects-widget__icon"
324
342
  }, null, 8 /* PROPS */, ["name"]),
325
- createElementVNode("span", _hoisted_40, toDisplayString(app.label), 1 /* TEXT */),
343
+ createElementVNode("span", _hoisted_42, toDisplayString(app.label), 1 /* TEXT */),
326
344
  createVNode(_component_ChevronRight, {
327
345
  class: "cn-related-objects-widget__chevron",
328
346
  size: 20
329
347
  })
330
- ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_39))
348
+ ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_41))
331
349
  }), 128 /* KEYED_FRAGMENT */))
332
350
  ])
333
351
  ]))
334
352
  : createCommentVNode("v-if", true),
335
353
  ($data.loading && $options.isEmpty)
336
- ? (openBlock(), createElementBlock("div", _hoisted_41, toDisplayString($options.loadingLabel), 1 /* TEXT */))
354
+ ? (openBlock(), createElementBlock("div", _hoisted_43, toDisplayString($options.loadingLabel), 1 /* TEXT */))
337
355
  : ($data.hasLoaded && $options.isEmpty)
338
356
  ? (openBlock(), createBlock(_component_CnEmptyContent, {
339
357
  key: 4,
@@ -367,7 +385,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
367
385
  ? {
368
386
  name: "footer",
369
387
  fn: withCtx(() => [
370
- createElementVNode("div", _hoisted_42, [
388
+ createElementVNode("div", _hoisted_44, [
371
389
  ($options.soleAddable && $options.soleAddable.key === 'files')
372
390
  ? (openBlock(), createBlock(_component_NcButton, {
373
391
  key: 0,
@@ -450,7 +468,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
450
468
  _: 1 /* STABLE */
451
469
  }, 8 /* PROPS */, ["menuName"])),
452
470
  ($data.addError)
453
- ? (openBlock(), createElementBlock("span", _hoisted_43, toDisplayString($data.addError), 1 /* TEXT */))
471
+ ? (openBlock(), createElementBlock("span", _hoisted_45, toDisplayString($data.addError), 1 /* TEXT */))
454
472
  : createCommentVNode("v-if", true),
455
473
  createElementVNode("input", {
456
474
  ref: $options.fileInputRef,