@conduction/nextcloud-vue 2.65.0 → 2.67.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 (103) hide show
  1. package/dist/esm/components/CnActionsBar/CnActionsBar.vue2.js +19 -0
  2. package/dist/esm/components/CnActionsBar/CnActionsBar.vue2.js.map +1 -1
  3. package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js +10 -3
  4. package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js.map +1 -1
  5. package/dist/esm/components/CnAppNav/CnAppNav.vue2.js +2 -2
  6. package/dist/esm/components/CnAppNav/CnAppNav.vue2.js.map +1 -1
  7. package/dist/esm/components/CnAppNav/CnAppNav.vue3.js.map +1 -1
  8. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +99 -2
  9. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
  10. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +438 -383
  11. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
  12. package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue2.js +9 -3
  13. package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue2.js.map +1 -1
  14. package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue3.js +1 -1
  15. package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue3.js.map +1 -1
  16. package/dist/esm/components/CnDataTable/CnDataTable.vue2.js +4 -4
  17. package/dist/esm/components/CnDataTable/CnDataTable.vue2.js.map +1 -1
  18. package/dist/esm/components/CnDataTable/CnDataTable.vue3.js.map +1 -1
  19. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +78 -21
  20. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
  21. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js +129 -96
  22. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
  23. package/dist/esm/components/CnFkResolveCell/CnFkResolveCell.vue2.js +3 -1
  24. package/dist/esm/components/CnFkResolveCell/CnFkResolveCell.vue2.js.map +1 -1
  25. package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js +144 -4
  26. package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js.map +1 -1
  27. package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js.map +1 -1
  28. package/dist/esm/components/CnHeaderWidget/CnHeaderWidget.vue2.js +63 -7
  29. package/dist/esm/components/CnHeaderWidget/CnHeaderWidget.vue2.js.map +1 -1
  30. package/dist/esm/components/CnHeaderWidget/CnHeaderWidget.vue3.js +2 -1
  31. package/dist/esm/components/CnHeaderWidget/CnHeaderWidget.vue3.js.map +1 -1
  32. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +31 -1
  33. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
  34. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +335 -313
  35. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
  36. package/dist/esm/components/CnSegmentedControl/CnSegmentedControl.vue2.js +11 -0
  37. package/dist/esm/components/CnSegmentedControl/CnSegmentedControl.vue2.js.map +1 -1
  38. package/dist/esm/components/CnSegmentedControl/CnSegmentedControl.vue3.js +2 -1
  39. package/dist/esm/components/CnSegmentedControl/CnSegmentedControl.vue3.js.map +1 -1
  40. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js +5 -11
  41. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js.map +1 -1
  42. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js.map +1 -1
  43. package/dist/esm/composables/useDependencyCheck.js +44 -1
  44. package/dist/esm/composables/useDependencyCheck.js.map +1 -1
  45. package/dist/esm/composables/useListView.js +43 -1
  46. package/dist/esm/composables/useListView.js.map +1 -1
  47. package/dist/esm/composables/useSetupStatus.js +26 -3
  48. package/dist/esm/composables/useSetupStatus.js.map +1 -1
  49. package/dist/esm/l10n/en.json.js +7 -1
  50. package/dist/esm/l10n/en.json.js.map +1 -1
  51. package/dist/esm/l10n/nl.json.js +7 -1
  52. package/dist/esm/l10n/nl.json.js.map +1 -1
  53. package/dist/esm/mixins/pageViews.js +400 -0
  54. package/dist/esm/mixins/pageViews.js.map +1 -0
  55. package/dist/esm/nextcloud-vue.css +38 -2
  56. package/dist/esm/store/plugins/liveUpdates.js +19 -9
  57. package/dist/esm/store/plugins/liveUpdates.js.map +1 -1
  58. package/dist/esm/store/useObjectStore.js +20 -9
  59. package/dist/esm/store/useObjectStore.js.map +1 -1
  60. package/dist/esm/utils/actionsDispatcher.js +11 -2
  61. package/dist/esm/utils/actionsDispatcher.js.map +1 -1
  62. package/dist/esm/utils/columnFilters.js +27 -3
  63. package/dist/esm/utils/columnFilters.js.map +1 -1
  64. package/dist/esm/utils/schema.js +40 -2
  65. package/dist/esm/utils/schema.js.map +1 -1
  66. package/dist/esm/utils/validateManifestV2.compiled.js +2 -2
  67. package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
  68. package/dist/nextcloud-vue.cjs.js +2377 -1247
  69. package/dist/nextcloud-vue.cjs.js.map +2 -2
  70. package/dist/nextcloud-vue.css +38 -2
  71. package/l10n/en.json +7 -1
  72. package/l10n/nl.json +7 -1
  73. package/package.json +1 -1
  74. package/src/components/CnActionsBar/CnActionsBar.md +2 -1
  75. package/src/components/CnActionsBar/CnActionsBar.vue +25 -1
  76. package/src/components/CnAppNav/CnAppNav.vue +2 -2
  77. package/src/components/CnDashboardPage/CnDashboardPage.vue +165 -8
  78. package/src/components/CnDataTable/CnColumnFilterPopover.vue +11 -5
  79. package/src/components/CnDataTable/CnDataTable.md +1 -1
  80. package/src/components/CnDataTable/CnDataTable.vue +4 -4
  81. package/src/components/CnDetailPage/CnDetailPage.vue +94 -5
  82. package/src/components/CnFkResolveCell/CnFkResolveCell.vue +3 -1
  83. package/src/components/CnFormDialog/CnFormDialog.vue +144 -4
  84. package/src/components/CnHeaderWidget/CnHeaderWidget.vue +67 -8
  85. package/src/components/CnIndexPage/CnIndexPage.md +2 -1
  86. package/src/components/CnIndexPage/CnIndexPage.vue +47 -1
  87. package/src/components/CnSegmentedControl/CnSegmentedControl.md +1 -1
  88. package/src/components/CnSegmentedControl/CnSegmentedControl.vue +12 -0
  89. package/src/components/CnSetupWizard/CnSetupWizard.vue +5 -11
  90. package/src/composables/useDependencyCheck.js +43 -0
  91. package/src/composables/useListView.js +43 -1
  92. package/src/composables/useSetupStatus.js +26 -3
  93. package/src/css/actions-bar.css +20 -2
  94. package/src/css/detail-page.css +5 -0
  95. package/src/mixins/pageViews.js +396 -0
  96. package/src/schemas/app-manifest-v2.schema.json +31 -3
  97. package/src/schemas/app-manifest.schema.json +1 -1
  98. package/src/store/plugins/liveUpdates.js +19 -9
  99. package/src/store/useObjectStore.js +19 -8
  100. package/src/utils/actionsDispatcher.js +11 -2
  101. package/src/utils/columnFilters.js +29 -2
  102. package/src/utils/schema.js +40 -2
  103. package/src/utils/validateManifestV2.compiled.js +2 -2
@@ -1,4 +1,4 @@
1
- import { resolveComponent, openBlock, createElementBlock, normalizeClass, normalizeStyle, toDisplayString, createCommentVNode, createBlock, renderSlot, createElementVNode, Fragment, renderList, createVNode, withCtx, createTextVNode, createSlots } from 'vue';
1
+ import { resolveComponent, openBlock, createElementBlock, normalizeClass, normalizeStyle, toDisplayString, createCommentVNode, createBlock, renderSlot, createElementVNode, Fragment, renderList, createVNode, withCtx, createTextVNode, createSlots, mergeProps } from 'vue';
2
2
 
3
3
  const _hoisted_1 = ["href"];
4
4
  const _hoisted_2 = { class: "cn-detail-page__header-left" };
@@ -20,7 +20,7 @@ const _hoisted_7 = {
20
20
  };
21
21
  const _hoisted_8 = { class: "cn-detail-page__header-actions" };
22
22
  const _hoisted_9 = {
23
- key: 0,
23
+ key: 1,
24
24
  class: "cn-detail-page__list-nav",
25
25
  "data-testid": "cn-detail-page-list-nav"
26
26
  };
@@ -70,42 +70,43 @@ const _hoisted_20 = {
70
70
  class: "cn-detail-page__widget-edit"
71
71
  };
72
72
  const _hoisted_21 = ["id"];
73
- const _hoisted_22 = {
73
+ const _hoisted_22 = ["id", "aria-label"];
74
+ const _hoisted_23 = {
74
75
  key: 3,
75
76
  class: "cn-detail-page__stats"
76
77
  };
77
- const _hoisted_23 = {
78
+ const _hoisted_24 = {
78
79
  key: 0,
79
80
  class: "cn-detail-page__section-title"
80
81
  };
81
- const _hoisted_24 = { class: "cn-detail-page__stats-table" };
82
- const _hoisted_25 = { key: 0 };
83
- const _hoisted_26 = {
82
+ const _hoisted_25 = { class: "cn-detail-page__stats-table" };
83
+ const _hoisted_26 = { key: 0 };
84
+ const _hoisted_27 = {
84
85
  key: 4,
85
86
  class: "cn-detail-page__content"
86
87
  };
87
- const _hoisted_27 = {
88
+ const _hoisted_28 = {
88
89
  key: 0,
89
90
  class: "cn-detail-page__content"
90
91
  };
91
- const _hoisted_28 = {
92
+ const _hoisted_29 = {
92
93
  key: 1,
93
94
  class: "cn-detail-page__sections"
94
95
  };
95
- const _hoisted_29 = {
96
+ const _hoisted_30 = {
96
97
  key: 6,
97
98
  class: "cn-detail-page__related-collections"
98
99
  };
99
- const _hoisted_30 = {
100
+ const _hoisted_31 = {
100
101
  key: 0,
101
102
  class: "cn-detail-page__relation-links"
102
103
  };
103
- const _hoisted_31 = {
104
+ const _hoisted_32 = {
104
105
  key: 9,
105
106
  class: "cn-detail-page__footer"
106
107
  };
107
- const _hoisted_32 = ["aria-label"];
108
- const _hoisted_33 = ["data-testid"];
108
+ const _hoisted_33 = ["aria-label"];
109
+ const _hoisted_34 = ["data-testid"];
109
110
 
110
111
  function render(_ctx, _cache, $props, $setup, $data, $options) {
111
112
  const _component_CnBreadcrumbs = resolveComponent("CnBreadcrumbs");
@@ -113,6 +114,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
113
114
  const _component_CnStatusBadge = resolveComponent("CnStatusBadge");
114
115
  const _component_CnTranslatedBadge = resolveComponent("CnTranslatedBadge");
115
116
  const _component_CnSummaryAggregates = resolveComponent("CnSummaryAggregates");
117
+ const _component_CnSegmentedControl = resolveComponent("CnSegmentedControl");
116
118
  const _component_ChevronLeft = resolveComponent("ChevronLeft");
117
119
  const _component_NcButton = resolveComponent("NcButton");
118
120
  const _component_ChevronRight = resolveComponent("ChevronRight");
@@ -138,6 +140,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
138
140
  const _component_CnBodySections = resolveComponent("CnBodySections");
139
141
  const _component_Cog = resolveComponent("Cog");
140
142
  const _component_CnDashboardGrid = resolveComponent("CnDashboardGrid");
143
+ const _component_ViewDashboardOutline = resolveComponent("ViewDashboardOutline");
141
144
  const _component_Plus = resolveComponent("Plus");
142
145
  const _component_CnRelatedCollections = resolveComponent("CnRelatedCollections");
143
146
  const _component_CnWidgetStyleEditorModal = resolveComponent("CnWidgetStyleEditorModal");
@@ -236,6 +239,18 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
236
239
  ])
237
240
  ]),
238
241
  createElementVNode("div", _hoisted_8, [
242
+ (_ctx.showsPageViewSwitch)
243
+ ? (openBlock(), createBlock(_component_CnSegmentedControl, {
244
+ key: 0,
245
+ class: "cn-page-view-switch",
246
+ options: _ctx.viewSwitchOptions,
247
+ modelValue: _ctx.activeViewId,
248
+ ariaLabel: _ctx.viewSwitchLabel,
249
+ controls: _ctx.viewRegionId,
250
+ "data-testid": "cn-detail-page-view-switch",
251
+ "onUpdate:modelValue": _ctx.selectView
252
+ }, null, 8 /* PROPS */, ["options", "modelValue", "ariaLabel", "controls", "onUpdate:modelValue"]))
253
+ : createCommentVNode("v-if", true),
239
254
  ($props.listNavigation && $props.listNavigation.available)
240
255
  ? (openBlock(), createElementBlock("div", _hoisted_9, [
241
256
  createVNode(_component_NcButton, {
@@ -271,7 +286,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
271
286
  : createCommentVNode("v-if", true),
272
287
  ($options.effectivePrimaryLabel && !$options.showsNextStepCard)
273
288
  ? (openBlock(), createBlock(_component_NcButton, {
274
- key: 1,
289
+ key: 2,
275
290
  id: $options.primaryActionAnchorId,
276
291
  ref: "primaryActionButton",
277
292
  variant: "primary",
@@ -318,7 +333,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
318
333
  }), 128 /* KEYED_FRAGMENT */)),
319
334
  ($options.showsLifecycleActions)
320
335
  ? (openBlock(), createBlock(_component_CnLifecycleActions, {
321
- key: 2,
336
+ key: 3,
322
337
  objectId: $props.objectId,
323
338
  object: $options.currentObject,
324
339
  config: $props.lifecycleActions,
@@ -331,7 +346,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
331
346
  : createCommentVNode("v-if", true),
332
347
  ($options.effectiveHeaderActions.length > 0)
333
348
  ? (openBlock(), createBlock(_component_CnActionButtons, {
334
- key: 3,
349
+ key: 4,
335
350
  actions: $options.effectiveHeaderActions,
336
351
  display: "menu",
337
352
  "data-testid": "cn-detail-page-header-actions",
@@ -350,7 +365,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
350
365
  }),
351
366
  ($options.canEditRecord && !$options.foldsEditIntoActions)
352
367
  ? (openBlock(), createBlock(_component_NcButton, {
353
- key: 4,
368
+ key: 5,
354
369
  variant: "secondary",
355
370
  "data-testid": "cn-detail-page-edit",
356
371
  "aria-label": $options.editActionLabel,
@@ -669,87 +684,105 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
669
684
  "data-testid": "cn-detail-body-sections-before-body"
670
685
  }, null, 8 /* PROPS */, ["sections", "context"]))
671
686
  : createCommentVNode("v-if", true),
672
- ($options.hasBodyGrid)
673
- ? (openBlock(), createBlock(_component_CnDashboardGrid, {
674
- key: `cn-detail-grid-${$options.editingBody ? 'editing' : 'live'}`,
675
- layout: $options.bodyGridLayout,
676
- editable: $options.editingBody,
677
- columns: 12,
678
- columnOpts: $props.columnOpts,
679
- class: "cn-detail-page__grid",
680
- onLayoutChange: $options.onBodyLayoutChange
681
- }, {
682
- widget: withCtx(({ item }) => [
683
- createElementVNode("div", {
684
- class: normalizeClass(["cn-detail-page__grid-item", { 'cn-detail-page__grid-item--fit': !!item.sizeToContent }]),
685
- "aria-labelledby": $options.showGridTitle(item) ? `widget-title-${item.id}` : undefined
686
- }, [
687
- ($options.showsCog(item))
688
- ? (openBlock(), createElementBlock("div", _hoisted_20, [
689
- createVNode(_component_NcButton, {
690
- variant: "tertiary",
691
- "aria-label": _ctx.t('nextcloud-vue', 'Configure widget'),
692
- onClick: $event => ($options.configureWidget(item))
693
- }, {
694
- icon: withCtx(() => [
695
- createVNode(_component_Cog, { size: 18 })
696
- ]),
697
- _: 1 /* STABLE */
698
- }, 8 /* PROPS */, ["aria-label", "onClick"])
699
- ]))
700
- : createCommentVNode("v-if", true),
701
- ($options.showGridTitle(item))
702
- ? (openBlock(), createElementBlock("h3", {
703
- key: 1,
704
- id: `widget-title-${item.id}`,
705
- class: "cn-detail-page__widget-title"
706
- }, toDisplayString($options.gridTitle(item)), 9 /* TEXT, PROPS */, _hoisted_21))
707
- : createCommentVNode("v-if", true),
708
- renderSlot(_ctx.$slots, `widget-${item.widgetId}`, {
709
- item: item,
687
+ (openBlock(true), createElementBlock(Fragment, null, renderList($options.bodyGridSections, (section) => {
688
+ return (openBlock(), createBlock(_component_CnDashboardGrid, mergeProps({
689
+ key: `cn-detail-grid-${section.key}-${$options.editingBody ? 'editing' : 'live'}`
690
+ }, { ref_for: true }, section.attrs, {
691
+ layout: section.layout,
692
+ editable: $options.editingBody,
693
+ columns: 12,
694
+ columnOpts: $props.columnOpts,
695
+ class: "cn-detail-page__grid",
696
+ onLayoutChange: $event => (section.view ? _ctx.onViewLayoutChange($event) : $options.onBodyLayoutChange($event))
697
+ }), {
698
+ widget: withCtx(({ item }) => [
699
+ createElementVNode("div", {
700
+ class: normalizeClass(["cn-detail-page__grid-item", { 'cn-detail-page__grid-item--fit': !!item.sizeToContent }]),
701
+ "aria-labelledby": $options.showGridTitle(item) ? `widget-title-${item.id}` : undefined
702
+ }, [
703
+ ($options.showsCog(item))
704
+ ? (openBlock(), createElementBlock("div", _hoisted_20, [
705
+ createVNode(_component_NcButton, {
706
+ variant: "tertiary",
707
+ "aria-label": _ctx.t('nextcloud-vue', 'Configure widget'),
708
+ onClick: $event => ($options.configureWidget(item))
709
+ }, {
710
+ icon: withCtx(() => [
711
+ createVNode(_component_Cog, { size: 18 })
712
+ ]),
713
+ _: 1 /* STABLE */
714
+ }, 8 /* PROPS */, ["aria-label", "onClick"])
715
+ ]))
716
+ : createCommentVNode("v-if", true),
717
+ ($options.showGridTitle(item))
718
+ ? (openBlock(), createElementBlock("h3", {
719
+ key: 1,
720
+ id: `widget-title-${item.id}`,
721
+ class: "cn-detail-page__widget-title"
722
+ }, toDisplayString($options.gridTitle(item)), 9 /* TEXT, PROPS */, _hoisted_21))
723
+ : createCommentVNode("v-if", true),
724
+ renderSlot(_ctx.$slots, `widget-${item.widgetId}`, {
725
+ item: item,
726
+ widget: $options.findWidget(item),
727
+ objectId: $props.objectId,
728
+ object: $options.resolvedObject,
729
+ objectData: $options.resolvedObject,
730
+ objectType: $options.resolvedObjectType,
731
+ register: $props.register,
732
+ schema: $props.schema
733
+ }, () => [
734
+ createVNode(_component_CnDetailWidgetHost, {
710
735
  widget: $options.findWidget(item),
736
+ chrome: "card",
737
+ showCardTitle: $options.showCardTitle(item),
711
738
  objectId: $props.objectId,
712
- object: $options.resolvedObject,
713
- objectData: $options.resolvedObject,
739
+ object: $options.currentObject,
714
740
  objectType: $options.resolvedObjectType,
741
+ schemaObject: $options.currentSchema,
715
742
  register: $props.register,
716
- schema: $props.schema
717
- }, () => [
718
- createVNode(_component_CnDetailWidgetHost, {
719
- widget: $options.findWidget(item),
720
- chrome: "card",
721
- showCardTitle: $options.showCardTitle(item),
722
- objectId: $props.objectId,
723
- object: $options.currentObject,
724
- objectType: $options.resolvedObjectType,
725
- schemaObject: $options.currentSchema,
726
- register: $props.register,
727
- schema: $props.schema,
728
- store: $options.effectiveObjectStore,
729
- surface: $props.surface,
730
- integrationContext: $options.effectiveIntegrationContext,
731
- hideEmpty: $props.hideEmpty,
732
- cnRegistry: $options.cnRegistry,
733
- availableWidgets: $options.bodyGridWidgets,
734
- onGeoSaved: $options.onGeoSaved,
735
- onOpenIntegration: $options.onAutoBodyOpenIntegration
736
- }, null, 8 /* PROPS */, ["widget", "showCardTitle", "objectId", "object", "objectType", "schemaObject", "register", "schema", "store", "surface", "integrationContext", "hideEmpty", "cnRegistry", "availableWidgets", "onGeoSaved", "onOpenIntegration"])
737
- ])
738
- ], 10 /* CLASS, PROPS */, _hoisted_19)
739
- ]),
740
- _: 3 /* FORWARDED */
741
- }, 8 /* PROPS */, ["layout", "editable", "columnOpts", "onLayoutChange"]))
743
+ schema: $props.schema,
744
+ store: $options.effectiveObjectStore,
745
+ surface: $props.surface,
746
+ integrationContext: $options.effectiveIntegrationContext,
747
+ hideEmpty: $props.hideEmpty,
748
+ cnRegistry: $options.cnRegistry,
749
+ availableWidgets: $options.bodyGridWidgets,
750
+ onGeoSaved: $options.onGeoSaved,
751
+ onOpenIntegration: $options.onAutoBodyOpenIntegration
752
+ }, null, 8 /* PROPS */, ["widget", "showCardTitle", "objectId", "object", "objectType", "schemaObject", "register", "schema", "store", "surface", "integrationContext", "hideEmpty", "cnRegistry", "availableWidgets", "onGeoSaved", "onOpenIntegration"])
753
+ ])
754
+ ], 10 /* CLASS, PROPS */, _hoisted_19)
755
+ ]),
756
+ _: 3 /* FORWARDED */
757
+ }, 16 /* FULL_PROPS */, ["layout", "editable", "columnOpts", "onLayoutChange"]))
758
+ }), 128 /* KEYED_FRAGMENT */)),
759
+ ($options.viewIsEmpty)
760
+ ? (openBlock(), createElementBlock("div", {
761
+ key: 2,
762
+ id: _ctx.viewRegionId,
763
+ role: "region",
764
+ "aria-label": _ctx.activeView ? _ctx.activeView.label : null,
765
+ class: "cn-page-view-region cn-page-view-region--empty",
766
+ "data-testid": "cn-detail-page-view-empty"
767
+ }, [
768
+ createVNode(_component_NcEmptyContent, { description: _ctx.viewEmptyText }, {
769
+ icon: withCtx(() => [
770
+ createVNode(_component_ViewDashboardOutline, { size: 48 })
771
+ ]),
772
+ _: 1 /* STABLE */
773
+ }, 8 /* PROPS */, ["description"])
774
+ ], 8 /* PROPS */, _hoisted_22))
742
775
  : createCommentVNode("v-if", true),
743
776
  ($options.hasStats)
744
- ? (openBlock(), createElementBlock("div", _hoisted_22, [
777
+ ? (openBlock(), createElementBlock("div", _hoisted_23, [
745
778
  renderSlot(_ctx.$slots, "stats-header", {}, () => [
746
779
  ($props.statsTitle)
747
- ? (openBlock(), createElementBlock("h3", _hoisted_23, toDisplayString($options.resolvedStatsTitle), 1 /* TEXT */))
780
+ ? (openBlock(), createElementBlock("h3", _hoisted_24, toDisplayString($options.resolvedStatsTitle), 1 /* TEXT */))
748
781
  : createCommentVNode("v-if", true)
749
782
  ]),
750
- createElementVNode("table", _hoisted_24, [
783
+ createElementVNode("table", _hoisted_25, [
751
784
  ($props.statsColumns.length > 0)
752
- ? (openBlock(), createElementBlock("thead", _hoisted_25, [
785
+ ? (openBlock(), createElementBlock("thead", _hoisted_26, [
753
786
  createElementVNode("tr", null, [
754
787
  (openBlock(true), createElementBlock(Fragment, null, renderList($props.statsColumns, (col) => {
755
788
  return (openBlock(), createElementBlock("th", {
@@ -780,14 +813,14 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
780
813
  ])
781
814
  ])
782
815
  ]))
783
- : (openBlock(), createElementBlock("div", _hoisted_26, [
816
+ : (openBlock(), createElementBlock("div", _hoisted_27, [
784
817
  (!$options.hasBodyGrid)
785
- ? (openBlock(), createElementBlock("div", _hoisted_27, [
818
+ ? (openBlock(), createElementBlock("div", _hoisted_28, [
786
819
  renderSlot(_ctx.$slots, "default")
787
820
  ]))
788
821
  : createCommentVNode("v-if", true),
789
822
  (_ctx.$slots.sections)
790
- ? (openBlock(), createElementBlock("div", _hoisted_28, [
823
+ ? (openBlock(), createElementBlock("div", _hoisted_29, [
791
824
  renderSlot(_ctx.$slots, "sections")
792
825
  ]))
793
826
  : createCommentVNode("v-if", true)
@@ -802,9 +835,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
802
835
  }, null, 8 /* PROPS */, ["sections", "context"]))
803
836
  : createCommentVNode("v-if", true),
804
837
  (($props.relatedCollections && $props.relatedCollections.length > 0) || ($props.relationLinks && $props.relationLinks.length > 0))
805
- ? (openBlock(), createElementBlock("div", _hoisted_29, [
838
+ ? (openBlock(), createElementBlock("div", _hoisted_30, [
806
839
  ($props.relationLinks && $props.relationLinks.length > 0)
807
- ? (openBlock(), createElementBlock("div", _hoisted_30, [
840
+ ? (openBlock(), createElementBlock("div", _hoisted_31, [
808
841
  (openBlock(true), createElementBlock(Fragment, null, renderList($props.relationLinks, (link, li) => {
809
842
  return (openBlock(), createBlock(_component_NcButton, {
810
843
  key: li,
@@ -851,7 +884,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
851
884
  }, null, 8 /* PROPS */, ["sections", "context"]))
852
885
  : createCommentVNode("v-if", true),
853
886
  (_ctx.$slots.footer)
854
- ? (openBlock(), createElementBlock("div", _hoisted_31, [
887
+ ? (openBlock(), createElementBlock("div", _hoisted_32, [
855
888
  renderSlot(_ctx.$slots, "footer")
856
889
  ]))
857
890
  : createCommentVNode("v-if", true)
@@ -899,9 +932,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
899
932
  onOpenIntegration: $options.onAutoBodyOpenIntegration
900
933
  }, null, 8 /* PROPS */, ["widget", "objectId", "object", "objectType", "schemaObject", "register", "schema", "store", "surface", "integrationContext", "hideEmpty", "cnRegistry", "availableWidgets", "onGeoSaved", "onOpenIntegration"])
901
934
  ])
902
- ], 8 /* PROPS */, _hoisted_33))
935
+ ], 8 /* PROPS */, _hoisted_34))
903
936
  }), 128 /* KEYED_FRAGMENT */))
904
- ], 8 /* PROPS */, _hoisted_32))
937
+ ], 8 /* PROPS */, _hoisted_33))
905
938
  : createCommentVNode("v-if", true),
906
939
  ($data.showWidgetConfig)
907
940
  ? (openBlock(), createBlock(_component_CnWidgetStyleEditorModal, {