@conduction/nextcloud-vue 2.64.0 → 2.65.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 (51) hide show
  1. package/dist/esm/components/CnAppNav/CnAppNav.vue2.js +99 -3
  2. package/dist/esm/components/CnAppNav/CnAppNav.vue2.js.map +1 -1
  3. package/dist/esm/components/CnAppNav/CnAppNav.vue3.js +23 -7
  4. package/dist/esm/components/CnAppNav/CnAppNav.vue3.js.map +1 -1
  5. package/dist/esm/components/CnBreadcrumbs/CnBreadcrumbs.vue2.js +13 -0
  6. package/dist/esm/components/CnBreadcrumbs/CnBreadcrumbs.vue2.js.map +1 -1
  7. package/dist/esm/components/CnBreadcrumbs/CnBreadcrumbs.vue3.js +2 -1
  8. package/dist/esm/components/CnBreadcrumbs/CnBreadcrumbs.vue3.js.map +1 -1
  9. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +26 -2
  10. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
  11. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +6 -3
  12. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
  13. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +64 -5
  14. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
  15. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js +66 -28
  16. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
  17. package/dist/esm/components/CnHeaderWidget/CnHeaderWidget.vue2.js +22 -5
  18. package/dist/esm/components/CnHeaderWidget/CnHeaderWidget.vue2.js.map +1 -1
  19. package/dist/esm/components/CnHeaderWidget/CnHeaderWidget.vue3.js +1 -1
  20. package/dist/esm/components/CnHeaderWidget/CnHeaderWidget.vue3.js.map +1 -1
  21. package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue2.js.map +1 -1
  22. package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue3.js.map +1 -1
  23. package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js +22 -3
  24. package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js.map +1 -1
  25. package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js +10 -3
  26. package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js.map +1 -1
  27. package/dist/esm/nextcloud-vue.css +164 -0
  28. package/dist/esm/store/useObjectStore.js +118 -33
  29. package/dist/esm/store/useObjectStore.js.map +1 -1
  30. package/dist/esm/utils/actionsDispatcher.js +14 -0
  31. package/dist/esm/utils/actionsDispatcher.js.map +1 -1
  32. package/dist/esm/utils/validateManifestV2.compiled.js +2 -2
  33. package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
  34. package/dist/nextcloud-vue.cjs.js +488 -96
  35. package/dist/nextcloud-vue.cjs.js.map +2 -2
  36. package/dist/nextcloud-vue.css +164 -0
  37. package/package.json +1 -1
  38. package/src/components/CnAppNav/CnAppNav.vue +148 -7
  39. package/src/components/CnBreadcrumbs/CnBreadcrumbs.vue +14 -0
  40. package/src/components/CnDashboardPage/CnDashboardPage.vue +29 -2
  41. package/src/components/CnDetailPage/CnDetailPage.md +5 -1
  42. package/src/components/CnDetailPage/CnDetailPage.vue +114 -6
  43. package/src/components/CnHeaderWidget/CnHeaderWidget.vue +34 -6
  44. package/src/components/CnStagesWidget/CnStagesWidget.vue +9 -0
  45. package/src/components/CnStatWidget/CnStatWidget.vue +33 -5
  46. package/src/css/detail-page.css +22 -0
  47. package/src/css/kpi-card.css +47 -0
  48. package/src/schemas/app-manifest-v2.schema.json +23 -2
  49. package/src/store/useObjectStore.js +118 -33
  50. package/src/utils/actionsDispatcher.js +14 -0
  51. package/src/utils/validateManifestV2.compiled.js +2 -2
@@ -1,38 +1,38 @@
1
1
  import { resolveComponent, openBlock, createElementBlock, normalizeClass, normalizeStyle, toDisplayString, createCommentVNode, createBlock, renderSlot, createElementVNode, Fragment, renderList, createVNode, withCtx, createTextVNode, createSlots } from 'vue';
2
2
 
3
3
  const _hoisted_1 = ["href"];
4
- const _hoisted_2 = {
5
- key: 2,
6
- class: "cn-detail-page__header",
7
- "data-testid": "cn-detail-page-header"
8
- };
9
- const _hoisted_3 = { class: "cn-detail-page__header-left" };
10
- const _hoisted_4 = { class: "cn-detail-page__header-text" };
11
- const _hoisted_5 = {
4
+ const _hoisted_2 = { class: "cn-detail-page__header-left" };
5
+ const _hoisted_3 = { class: "cn-detail-page__header-text" };
6
+ const _hoisted_4 = {
12
7
  key: 0,
13
8
  class: "cn-detail-page__pills",
14
9
  "data-testid": "cn-detail-page-pills"
15
10
  };
16
- const _hoisted_6 = {
11
+ const _hoisted_5 = {
17
12
  key: 1,
18
13
  class: "cn-detail-page__type-eyebrow",
19
14
  "data-testid": "cn-detail-page-type-eyebrow"
20
15
  };
21
- const _hoisted_7 = ["title"];
22
- const _hoisted_8 = {
16
+ const _hoisted_6 = ["title"];
17
+ const _hoisted_7 = {
23
18
  key: 3,
24
19
  class: "cn-detail-page__description"
25
20
  };
26
- const _hoisted_9 = { class: "cn-detail-page__header-actions" };
27
- const _hoisted_10 = {
21
+ const _hoisted_8 = { class: "cn-detail-page__header-actions" };
22
+ const _hoisted_9 = {
28
23
  key: 0,
29
24
  class: "cn-detail-page__list-nav",
30
25
  "data-testid": "cn-detail-page-list-nav"
31
26
  };
32
- const _hoisted_11 = {
27
+ const _hoisted_10 = {
33
28
  class: "cn-detail-page__list-nav-position",
34
29
  "data-testid": "cn-detail-page-list-position"
35
30
  };
31
+ const _hoisted_11 = {
32
+ key: 0,
33
+ class: "cn-detail-page__header-widget",
34
+ "data-testid": "cn-detail-page-header-widget"
35
+ };
36
36
  const _hoisted_12 = {
37
37
  key: 4,
38
38
  class: "cn-detail-page__lock-refusal",
@@ -125,6 +125,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
125
125
  const _component_NcActionLink = resolveComponent("NcActionLink");
126
126
  const _component_NcActionButton = resolveComponent("NcActionButton");
127
127
  const _component_CnActionsMenu = resolveComponent("CnActionsMenu");
128
+ const _component_CnDetailWidgetHost = resolveComponent("CnDetailWidgetHost");
128
129
  const _component_CnLockedBanner = resolveComponent("CnLockedBanner");
129
130
  const _component_CnNextStepCard = resolveComponent("CnNextStepCard");
130
131
  const _component_FileQuestionOutline = resolveComponent("FileQuestionOutline");
@@ -136,7 +137,6 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
136
137
  const _component_InformationOutline = resolveComponent("InformationOutline");
137
138
  const _component_CnBodySections = resolveComponent("CnBodySections");
138
139
  const _component_Cog = resolveComponent("Cog");
139
- const _component_CnDetailWidgetHost = resolveComponent("CnDetailWidgetHost");
140
140
  const _component_CnDashboardGrid = resolveComponent("CnDashboardGrid");
141
141
  const _component_Plus = resolveComponent("Plus");
142
142
  const _component_CnRelatedCollections = resolveComponent("CnRelatedCollections");
@@ -163,18 +163,23 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
163
163
  key: 1,
164
164
  class: "cn-detail-page__breadcrumbs",
165
165
  crumbs: $options.breadcrumbCrumbs,
166
+ rootText: $options.breadcrumbCrumbs[0].icon === undefined,
166
167
  "data-testid": "cn-detail-page-breadcrumbs"
167
- }, null, 8 /* PROPS */, ["crumbs"]))
168
+ }, null, 8 /* PROPS */, ["crumbs", "rootText"]))
168
169
  : createCommentVNode("v-if", true),
169
170
  (!$data.objectNotFound)
170
- ? (openBlock(), createElementBlock("div", _hoisted_2, [
171
+ ? (openBlock(), createElementBlock("div", {
172
+ key: 2,
173
+ class: normalizeClass(["cn-detail-page__header", { 'cn-detail-page__header--card': $props.headerCard, 'cn-detail-page__header--with-widget': $options.headerWidgetDef !== null }]),
174
+ "data-testid": "cn-detail-page-header"
175
+ }, [
171
176
  renderSlot(_ctx.$slots, "header", {
172
177
  title: $props.title,
173
178
  description: $props.description,
174
179
  icon: $props.icon,
175
180
  iconSize: $props.iconSize
176
181
  }, () => [
177
- createElementVNode("div", _hoisted_3, [
182
+ createElementVNode("div", _hoisted_2, [
178
183
  renderSlot(_ctx.$slots, "icon", {}, () => [
179
184
  ($props.icon)
180
185
  ? (openBlock(), createBlock(_component_CnIcon, {
@@ -185,9 +190,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
185
190
  }, null, 8 /* PROPS */, ["name", "size"]))
186
191
  : createCommentVNode("v-if", true)
187
192
  ]),
188
- createElementVNode("div", _hoisted_4, [
193
+ createElementVNode("div", _hoisted_3, [
189
194
  ($options.headerPills.length > 0)
190
- ? (openBlock(), createElementBlock("div", _hoisted_5, [
195
+ ? (openBlock(), createElementBlock("div", _hoisted_4, [
191
196
  (openBlock(true), createElementBlock(Fragment, null, renderList($options.headerPills, (pill) => {
192
197
  return (openBlock(), createBlock(_component_CnStatusBadge, {
193
198
  key: pill.key,
@@ -201,14 +206,14 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
201
206
  ]))
202
207
  : createCommentVNode("v-if", true),
203
208
  ($options.typeEyebrow && $props.showTypeEyebrow)
204
- ? (openBlock(), createElementBlock("p", _hoisted_6, toDisplayString($options.typeEyebrow), 1 /* TEXT */))
209
+ ? (openBlock(), createElementBlock("p", _hoisted_5, toDisplayString($options.typeEyebrow), 1 /* TEXT */))
205
210
  : createCommentVNode("v-if", true),
206
211
  ($options.displayTitle)
207
212
  ? (openBlock(), createElementBlock("h2", {
208
213
  key: 2,
209
214
  class: "cn-detail-page__title",
210
215
  title: $options.displayTitle
211
- }, toDisplayString($options.displayTitle), 9 /* TEXT, PROPS */, _hoisted_7))
216
+ }, toDisplayString($options.displayTitle), 9 /* TEXT, PROPS */, _hoisted_6))
212
217
  : createCommentVNode("v-if", true),
213
218
  renderSlot(_ctx.$slots, "translation-badge", { object: $options.resolvedObject }, () => [
214
219
  ($options.resolvedObject)
@@ -219,7 +224,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
219
224
  : createCommentVNode("v-if", true)
220
225
  ]),
221
226
  ($props.description)
222
- ? (openBlock(), createElementBlock("p", _hoisted_8, toDisplayString($options.resolvedDescription), 1 /* TEXT */))
227
+ ? (openBlock(), createElementBlock("p", _hoisted_7, toDisplayString($options.resolvedDescription), 1 /* TEXT */))
223
228
  : createCommentVNode("v-if", true),
224
229
  ($props.summaryAggregates && $props.summaryAggregates.length > 0)
225
230
  ? (openBlock(), createBlock(_component_CnSummaryAggregates, {
@@ -230,9 +235,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
230
235
  ])
231
236
  ])
232
237
  ]),
233
- createElementVNode("div", _hoisted_9, [
238
+ createElementVNode("div", _hoisted_8, [
234
239
  ($props.listNavigation && $props.listNavigation.available)
235
- ? (openBlock(), createElementBlock("div", _hoisted_10, [
240
+ ? (openBlock(), createElementBlock("div", _hoisted_9, [
236
241
  createVNode(_component_NcButton, {
237
242
  variant: "tertiary",
238
243
  disabled: $props.listNavigation.isFirst,
@@ -247,7 +252,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
247
252
  ]),
248
253
  _: 1 /* STABLE */
249
254
  }, 8 /* PROPS */, ["disabled", "to", "aria-label", "title"]),
250
- createElementVNode("span", _hoisted_11, toDisplayString($options.listPositionLabel), 1 /* TEXT */),
255
+ createElementVNode("span", _hoisted_10, toDisplayString($options.listPositionLabel), 1 /* TEXT */),
251
256
  createVNode(_component_NcButton, {
252
257
  variant: "tertiary",
253
258
  disabled: $props.listNavigation.isLast,
@@ -475,8 +480,41 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
475
480
  }
476
481
  : undefined
477
482
  ]), 1032 /* PROPS, DYNAMIC_SLOTS */, ["showRefresh", "refreshing", "showRequestFeature", "showReportBug", "showDocumentation", "actionsMenuLabel", "hasPrimaryItems", "documentationUrl", "docsAnchor", "documentationLabel", "widgetId", "title", "surface", "onRefresh", "onRequestFeature"])
478
- ])
479
- ]))
483
+ ]),
484
+ ($options.headerWidgetDef !== null)
485
+ ? (openBlock(), createElementBlock("div", _hoisted_11, [
486
+ renderSlot(_ctx.$slots, `widget-${$options.headerWidgetDef.id}`, {
487
+ item: { id: $options.headerWidgetDef.id, widgetId: $options.headerWidgetDef.id },
488
+ widget: $options.headerWidgetDef,
489
+ objectId: $props.objectId,
490
+ object: $options.resolvedObject,
491
+ objectData: $options.resolvedObject,
492
+ objectType: $options.resolvedObjectType,
493
+ register: $props.register,
494
+ schema: $props.schema
495
+ }, () => [
496
+ createVNode(_component_CnDetailWidgetHost, {
497
+ widget: $options.headerWidgetDef,
498
+ chrome: "bare",
499
+ objectId: $props.objectId,
500
+ object: $options.currentObject,
501
+ objectType: $options.resolvedObjectType,
502
+ schemaObject: $options.currentSchema,
503
+ register: $props.register,
504
+ schema: $props.schema,
505
+ store: $options.effectiveObjectStore,
506
+ surface: $props.surface,
507
+ integrationContext: $options.effectiveIntegrationContext,
508
+ hideEmpty: $props.hideEmpty,
509
+ cnRegistry: $options.cnRegistry,
510
+ availableWidgets: _ctx.widgets,
511
+ onGeoSaved: $options.onGeoSaved,
512
+ onOpenIntegration: $options.onAutoBodyOpenIntegration
513
+ }, null, 8 /* PROPS */, ["widget", "objectId", "object", "objectType", "schemaObject", "register", "schema", "store", "surface", "integrationContext", "hideEmpty", "cnRegistry", "availableWidgets", "onGeoSaved", "onOpenIntegration"])
514
+ ])
515
+ ]))
516
+ : createCommentVNode("v-if", true)
517
+ ], 2 /* CLASS */))
480
518
  : createCommentVNode("v-if", true),
481
519
  ($setup.lockState && $setup.lockState.locked.value)
482
520
  ? (openBlock(), createBlock(_component_CnLockedBanner, {