@conduction/nextcloud-vue 2.62.0 → 2.63.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 (154) hide show
  1. package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue.js +10 -0
  2. package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue.js.map +1 -0
  3. package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue2.js +189 -0
  4. package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue2.js.map +1 -0
  5. package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue3.js +72 -0
  6. package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue3.js.map +1 -0
  7. package/dist/esm/components/CnAppNav/CnAppNav.vue2.js +271 -32
  8. package/dist/esm/components/CnAppNav/CnAppNav.vue2.js.map +1 -1
  9. package/dist/esm/components/CnAppNav/CnAppNav.vue3.js.map +1 -1
  10. package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js +99 -9
  11. package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js.map +1 -1
  12. package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js +39 -18
  13. package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js.map +1 -1
  14. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue2.js.map +1 -1
  15. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue3.js +53 -37
  16. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue3.js.map +1 -1
  17. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
  18. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +2 -2
  19. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
  20. package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue.js +10 -0
  21. package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue.js.map +1 -0
  22. package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue2.js +293 -0
  23. package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue2.js.map +1 -0
  24. package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue3.js +189 -0
  25. package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue3.js.map +1 -0
  26. package/dist/esm/components/CnDataTable/CnDataTable.vue2.js +216 -8
  27. package/dist/esm/components/CnDataTable/CnDataTable.vue2.js.map +1 -1
  28. package/dist/esm/components/CnDataTable/CnDataTable.vue3.js +118 -50
  29. package/dist/esm/components/CnDataTable/CnDataTable.vue3.js.map +1 -1
  30. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js.map +1 -1
  31. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js +2 -1
  32. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js.map +1 -1
  33. package/dist/esm/components/CnFieldHelper/CnFieldHelper.vue2.js +3 -1
  34. package/dist/esm/components/CnFieldHelper/CnFieldHelper.vue2.js.map +1 -1
  35. package/dist/esm/components/CnFieldHelper/CnFieldHelper.vue3.js +1 -1
  36. package/dist/esm/components/CnFieldHelper/CnFieldHelper.vue3.js.map +1 -1
  37. package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js +234 -9
  38. package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js.map +1 -1
  39. package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js +96 -57
  40. package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js.map +1 -1
  41. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +51 -2
  42. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
  43. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +5 -1
  44. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
  45. package/dist/esm/components/CnIndexPage/selfModeActions.js +3 -3
  46. package/dist/esm/components/CnIndexPage/selfModeActions.js.map +1 -1
  47. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js +36 -1
  48. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js.map +1 -1
  49. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js +4 -1
  50. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js.map +1 -1
  51. package/dist/esm/components/CnResourceSelect/CnResourceSelect.vue2.js +121 -12
  52. package/dist/esm/components/CnResourceSelect/CnResourceSelect.vue2.js.map +1 -1
  53. package/dist/esm/components/CnResourceSelect/CnResourceSelect.vue3.js +3 -1
  54. package/dist/esm/components/CnResourceSelect/CnResourceSelect.vue3.js.map +1 -1
  55. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js +326 -1
  56. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js.map +1 -1
  57. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js +112 -26
  58. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js.map +1 -1
  59. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue.js +10 -0
  60. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue.js.map +1 -0
  61. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue2.js +337 -0
  62. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue2.js.map +1 -0
  63. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue3.js +102 -0
  64. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue3.js.map +1 -0
  65. package/dist/esm/components/CnTimelineWidget/dashboardRegistration.js +34 -0
  66. package/dist/esm/components/CnTimelineWidget/dashboardRegistration.js.map +1 -0
  67. package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue2.js +131 -8
  68. package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue2.js.map +1 -1
  69. package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue3.js +40 -38
  70. package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue3.js.map +1 -1
  71. package/dist/esm/components/CnWidgetGrid/builtInWidgets.js +8 -6
  72. package/dist/esm/components/CnWidgetGrid/builtInWidgets.js.map +1 -1
  73. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js +1 -0
  74. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js.map +1 -1
  75. package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue2.js +19 -0
  76. package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue2.js.map +1 -1
  77. package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue3.js +1 -1
  78. package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue3.js.map +1 -1
  79. package/dist/esm/composables/useDependencyCheck.js +65 -0
  80. package/dist/esm/composables/useDependencyCheck.js.map +1 -0
  81. package/dist/esm/composables/useWalkthrough.js +218 -6
  82. package/dist/esm/composables/useWalkthrough.js.map +1 -1
  83. package/dist/esm/index.js +2 -0
  84. package/dist/esm/index.js.map +1 -1
  85. package/dist/esm/l10n/en.json.js +43 -0
  86. package/dist/esm/l10n/en.json.js.map +1 -1
  87. package/dist/esm/l10n/nl.json.js +43 -0
  88. package/dist/esm/l10n/nl.json.js.map +1 -1
  89. package/dist/esm/nextcloud-vue.css +449 -0
  90. package/dist/esm/store/useObjectStore.js +8 -0
  91. package/dist/esm/store/useObjectStore.js.map +1 -1
  92. package/dist/esm/utils/columnFilters.js +311 -0
  93. package/dist/esm/utils/columnFilters.js.map +1 -0
  94. package/dist/esm/utils/groupAutocomplete.js +123 -0
  95. package/dist/esm/utils/groupAutocomplete.js.map +1 -0
  96. package/dist/esm/utils/libraryWidgetKeys.js +2 -0
  97. package/dist/esm/utils/libraryWidgetKeys.js.map +1 -1
  98. package/dist/esm/utils/pickerOptions.js +198 -0
  99. package/dist/esm/utils/pickerOptions.js.map +1 -0
  100. package/dist/esm/utils/schema.js +83 -7
  101. package/dist/esm/utils/schema.js.map +1 -1
  102. package/dist/esm/utils/timelineEvents.js +174 -0
  103. package/dist/esm/utils/timelineEvents.js.map +1 -0
  104. package/dist/esm/utils/validateManifestV2.compiled.js +2 -2
  105. package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
  106. package/dist/esm/utils/walkthroughSignals.js +88 -0
  107. package/dist/esm/utils/walkthroughSignals.js.map +1 -0
  108. package/dist/nextcloud-vue.cjs.js +9369 -5193
  109. package/dist/nextcloud-vue.cjs.js.map +2 -2
  110. package/dist/nextcloud-vue.css +449 -0
  111. package/l10n/en.json +43 -0
  112. package/l10n/nl.json +43 -0
  113. package/package.json +1 -1
  114. package/src/components/CnAdminActionCard/CnAdminActionCard.vue +234 -0
  115. package/src/components/CnAdminActionCard/index.js +4 -0
  116. package/src/components/CnAppNav/CnAppNav.vue +271 -32
  117. package/src/components/CnAppRoot/CnAppRoot.vue +129 -15
  118. package/src/components/CnChoiceCards/CnChoiceCards.vue +56 -31
  119. package/src/components/CnDashboardPage/CnDashboardPage.vue +2 -2
  120. package/src/components/CnDataTable/CnColumnFilterPopover.vue +524 -0
  121. package/src/components/CnDataTable/CnDataTable.md +3 -0
  122. package/src/components/CnDataTable/CnDataTable.vue +260 -4
  123. package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +2 -2
  124. package/src/components/CnFieldHelper/CnFieldHelper.vue +4 -2
  125. package/src/components/CnFormDialog/CnFormDialog.vue +290 -31
  126. package/src/components/CnIndexPage/CnIndexPage.vue +55 -2
  127. package/src/components/CnIndexPage/selfModeActions.js +3 -3
  128. package/src/components/CnObjectListWidget/CnObjectListWidget.vue +39 -1
  129. package/src/components/CnResourceSelect/CnResourceSelect.vue +123 -12
  130. package/src/components/CnSetupWizard/CnSetupWizard.vue +392 -3
  131. package/src/components/CnTimelineWidget/CnTimelineWidget.vue +477 -0
  132. package/src/components/CnTimelineWidget/dashboardRegistration.js +32 -0
  133. package/src/components/CnTimelineWidget/index.js +4 -0
  134. package/src/components/CnWalkthrough/CnWalkthrough.vue +143 -10
  135. package/src/components/CnWidgetGrid/builtInWidgets.js +2 -0
  136. package/src/components/CnWidgetGrid/registerDashboardWidgets.js +1 -0
  137. package/src/components/CnWizardDialog/CnWizardDialog.vue +20 -1
  138. package/src/components/index.js +2 -0
  139. package/src/composables/useDependencyCheck.js +61 -0
  140. package/src/composables/useWalkthrough.js +217 -5
  141. package/src/css/dashboard.css +49 -0
  142. package/src/css/detail-page.css +19 -0
  143. package/src/css/table.css +81 -0
  144. package/src/index.js +2 -0
  145. package/src/schemas/app-manifest-v2.schema.json +23 -1
  146. package/src/store/useObjectStore.js +8 -0
  147. package/src/utils/columnFilters.js +324 -0
  148. package/src/utils/groupAutocomplete.js +119 -0
  149. package/src/utils/libraryWidgetKeys.js +2 -0
  150. package/src/utils/pickerOptions.js +194 -0
  151. package/src/utils/schema.js +83 -7
  152. package/src/utils/timelineEvents.js +171 -0
  153. package/src/utils/validateManifestV2.compiled.js +2 -2
  154. package/src/utils/walkthroughSignals.js +94 -0
@@ -21,43 +21,51 @@ const _hoisted_8 = {
21
21
  class: "cn-form-dialog__select-wrapper"
22
22
  };
23
23
  const _hoisted_9 = {
24
- key: 5,
25
- class: "cn-form-dialog__select-wrapper"
24
+ key: 4,
25
+ class: "cn-form-dialog__switch-wrapper"
26
26
  };
27
27
  const _hoisted_10 = {
28
- key: 6,
28
+ key: 5,
29
29
  class: "cn-form-dialog__select-wrapper"
30
30
  };
31
31
  const _hoisted_11 = {
32
- key: 7,
32
+ key: 6,
33
33
  class: "cn-form-dialog__select-wrapper"
34
34
  };
35
35
  const _hoisted_12 = {
36
- key: 9,
36
+ key: 7,
37
37
  class: "cn-form-dialog__select-wrapper"
38
38
  };
39
- const _hoisted_13 = ["for"];
39
+ const _hoisted_13 = {
40
+ key: 8,
41
+ class: "cn-form-dialog__switch-wrapper"
42
+ };
40
43
  const _hoisted_14 = {
41
- key: 10,
42
- class: "cn-form-dialog__json-wrapper"
44
+ key: 9,
45
+ class: "cn-form-dialog__select-wrapper"
43
46
  };
44
47
  const _hoisted_15 = ["for"];
45
48
  const _hoisted_16 = {
46
- key: 11,
49
+ key: 10,
47
50
  class: "cn-form-dialog__json-wrapper"
48
51
  };
49
52
  const _hoisted_17 = ["for"];
50
53
  const _hoisted_18 = {
51
- key: 12,
52
- class: "cn-form-dialog__icon-wrapper"
54
+ key: 11,
55
+ class: "cn-form-dialog__json-wrapper"
53
56
  };
54
57
  const _hoisted_19 = ["for"];
55
58
  const _hoisted_20 = {
59
+ key: 12,
60
+ class: "cn-form-dialog__icon-wrapper"
61
+ };
62
+ const _hoisted_21 = ["for"];
63
+ const _hoisted_22 = {
56
64
  key: 0,
57
65
  class: "cn-form-dialog__dynamic-loading",
58
66
  "data-testid": "cn-form-dialog-dynamic-loading"
59
67
  };
60
- const _hoisted_21 = {
68
+ const _hoisted_23 = {
61
69
  class: "cn-form-dialog__draft-state",
62
70
  "aria-live": "polite",
63
71
  "data-testid": "cn-form-dialog-draft-state"
@@ -75,6 +83,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
75
83
  const _component_CnJsonViewer = resolveComponent("CnJsonViewer");
76
84
  const _component_CnIconBrowser = resolveComponent("CnIconBrowser");
77
85
  const _component_NcLoadingIcon = resolveComponent("NcLoadingIcon");
86
+ const _component_CnFormDialog = resolveComponent("CnFormDialog", true);
78
87
  const _component_Plus = resolveComponent("Plus");
79
88
  const _component_ContentSaveOutline = resolveComponent("ContentSaveOutline");
80
89
  const _component_NcDialog = resolveComponent("NcDialog");
@@ -86,7 +95,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
86
95
  onClosing: _cache[1] || (_cache[1] = $event => (_ctx.$emit('close')))
87
96
  }, {
88
97
  actions: withCtx(() => [
89
- createElementVNode("span", _hoisted_21, toDisplayString($options.draftIndicatorLabel), 1 /* TEXT */),
98
+ createElementVNode("span", _hoisted_23, toDisplayString($options.draftIndicatorLabel), 1 /* TEXT */),
90
99
  createVNode(_component_NcButton, {
91
100
  onClick: _cache[0] || (_cache[0] = $event => (_ctx.$emit('close')))
92
101
  }, {
@@ -315,19 +324,23 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
315
324
  error: $data.errors[field.key]
316
325
  }, null, 8 /* PROPS */, ["text", "more", "error"])
317
326
  ]))
318
- : ($options.isReferenceField(field) && field.allowCreate)
327
+ : (($options.isReferenceField(field) || $options.isReferenceArrayField(field)) && field.allowCreate)
319
328
  ? (openBlock(), createElementBlock("div", _hoisted_8, [
320
329
  createVNode(_component_CnResourceSelect, {
321
330
  inputId: 'cn-form-' + field.key,
322
331
  inputLabel: field.label + (field.required ? ' *' : ''),
323
332
  register: $options.referenceRegister(field),
324
- schema: field.reference.schema,
333
+ schema: String(field.reference.schema),
325
334
  labelField: $options.referenceLabelField(field),
326
- modelValue: $data.formData[field.key] != null ? String($data.formData[field.key]) : '',
327
- clearable: !field.required,
335
+ multiple: !!field.reference.multiple,
336
+ modelValue: $options.referenceModelValue(field),
337
+ clearable: !field.required || !!field.reference.multiple,
338
+ disabled: field.readOnly,
339
+ preload: true,
340
+ createHandler: term => $options.openNestedCreate(field, term),
328
341
  "onUpdate:modelValue": value => $options.onReferenceSelected(field, value),
329
342
  onCreate: obj => $options.onReferenceCreated(field, obj)
330
- }, null, 8 /* PROPS */, ["inputId", "inputLabel", "register", "schema", "labelField", "modelValue", "clearable", "onUpdate:modelValue", "onCreate"]),
343
+ }, null, 8 /* PROPS */, ["inputId", "inputLabel", "register", "schema", "labelField", "multiple", "modelValue", "clearable", "disabled", "createHandler", "onUpdate:modelValue", "onCreate"]),
331
344
  createVNode(_component_CnFieldHelper, {
332
345
  text: field.description,
333
346
  more: field.descriptionLong,
@@ -335,20 +348,26 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
335
348
  }, null, 8 /* PROPS */, ["text", "more", "error"])
336
349
  ]))
337
350
  : (field.widget === 'switch')
338
- ? (openBlock(), createBlock(_component_NcCheckboxRadioSwitch, {
339
- key: 4,
340
- modelValue: $options.isSwitchOn(field),
341
- disabled: field.readOnly,
342
- type: "switch",
343
- "onUpdate:modelValue": value => $options.updateField(field.key, $options.switchValueFor(field, value))
344
- }, {
345
- default: withCtx(() => [
346
- createTextVNode(toDisplayString(field.label) + toDisplayString(field.required ? ' *' : ''), 1 /* TEXT */)
347
- ]),
348
- _: 2 /* DYNAMIC */
349
- }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["modelValue", "disabled", "onUpdate:modelValue"]))
350
- : (field.widget === 'select' || field.widget === 'user')
351
- ? (openBlock(), createElementBlock("div", _hoisted_9, [
351
+ ? (openBlock(), createElementBlock("div", _hoisted_9, [
352
+ createVNode(_component_NcCheckboxRadioSwitch, {
353
+ modelValue: $options.isSwitchOn(field),
354
+ disabled: field.readOnly,
355
+ type: "switch",
356
+ "onUpdate:modelValue": value => $options.updateField(field.key, $options.switchValueFor(field, value))
357
+ }, {
358
+ default: withCtx(() => [
359
+ createTextVNode(toDisplayString(field.label) + toDisplayString(field.required ? ' *' : ''), 1 /* TEXT */)
360
+ ]),
361
+ _: 2 /* DYNAMIC */
362
+ }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["modelValue", "disabled", "onUpdate:modelValue"]),
363
+ createVNode(_component_CnFieldHelper, {
364
+ text: field.description,
365
+ more: field.descriptionLong,
366
+ error: $data.errors[field.key]
367
+ }, null, 8 /* PROPS */, ["text", "more", "error"])
368
+ ]))
369
+ : (field.widget === 'select' || field.widget === 'user' || field.widget === 'group')
370
+ ? (openBlock(), createElementBlock("div", _hoisted_10, [
352
371
  (openBlock(), createBlock(resolveDynamicComponent($options.isUserField(field) ? 'NcSelectUsers' : 'NcSelect'), {
353
372
  inputId: 'cn-form-' + field.key,
354
373
  inputLabel: field.label + (field.required ? ' *' : ''),
@@ -386,8 +405,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
386
405
  error: $data.errors[field.key]
387
406
  }, null, 8 /* PROPS */, ["text", "more", "error"])
388
407
  ]))
389
- : (field.widget === 'multiselect' || field.widget === 'user-multiselect')
390
- ? (openBlock(), createElementBlock("div", _hoisted_10, [
408
+ : (field.widget === 'multiselect' || field.widget === 'user-multiselect' || field.widget === 'group-multiselect')
409
+ ? (openBlock(), createElementBlock("div", _hoisted_11, [
391
410
  createVNode(_component_NcSelect, {
392
411
  inputId: 'cn-form-' + field.key,
393
412
  inputLabel: field.label + (field.required ? ' *' : ''),
@@ -428,7 +447,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
428
447
  }, null, 8 /* PROPS */, ["text", "more", "error"])
429
448
  ]))
430
449
  : (field.widget === 'tags')
431
- ? (openBlock(), createElementBlock("div", _hoisted_11, [
450
+ ? (openBlock(), createElementBlock("div", _hoisted_12, [
432
451
  createVNode(_component_NcSelect, {
433
452
  inputId: 'cn-form-' + field.key,
434
453
  inputLabel: field.label + (field.required ? ' *' : ''),
@@ -470,24 +489,30 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
470
489
  }, null, 8 /* PROPS */, ["text", "more", "error"])
471
490
  ]))
472
491
  : (field.widget === 'checkbox')
473
- ? (openBlock(), createBlock(_component_NcCheckboxRadioSwitch, {
474
- key: 8,
475
- modelValue: !!$data.formData[field.key],
476
- disabled: field.readOnly,
477
- type: "switch",
478
- "onUpdate:modelValue": value => $options.updateField(field.key, value)
479
- }, {
480
- default: withCtx(() => [
481
- createTextVNode(toDisplayString(field.label) + toDisplayString(field.required ? ' *' : ''), 1 /* TEXT */)
482
- ]),
483
- _: 2 /* DYNAMIC */
484
- }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["modelValue", "disabled", "onUpdate:modelValue"]))
492
+ ? (openBlock(), createElementBlock("div", _hoisted_13, [
493
+ createVNode(_component_NcCheckboxRadioSwitch, {
494
+ modelValue: !!$data.formData[field.key],
495
+ disabled: field.readOnly,
496
+ type: "switch",
497
+ "onUpdate:modelValue": value => $options.updateField(field.key, value)
498
+ }, {
499
+ default: withCtx(() => [
500
+ createTextVNode(toDisplayString(field.label) + toDisplayString(field.required ? ' *' : ''), 1 /* TEXT */)
501
+ ]),
502
+ _: 2 /* DYNAMIC */
503
+ }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["modelValue", "disabled", "onUpdate:modelValue"]),
504
+ createVNode(_component_CnFieldHelper, {
505
+ text: field.description,
506
+ more: field.descriptionLong,
507
+ error: $data.errors[field.key]
508
+ }, null, 8 /* PROPS */, ["text", "more", "error"])
509
+ ]))
485
510
  : (field.widget === 'date' || field.widget === 'datetime')
486
- ? (openBlock(), createElementBlock("div", _hoisted_12, [
511
+ ? (openBlock(), createElementBlock("div", _hoisted_14, [
487
512
  createElementVNode("label", {
488
513
  for: 'cn-form-' + field.key,
489
514
  class: "cn-form-dialog__label"
490
- }, toDisplayString(field.label) + toDisplayString(field.required ? ' *' : ''), 9 /* TEXT, PROPS */, _hoisted_13),
515
+ }, toDisplayString(field.label) + toDisplayString(field.required ? ' *' : ''), 9 /* TEXT, PROPS */, _hoisted_15),
491
516
  createVNode(_component_NcDateTimePickerNative, {
492
517
  id: 'cn-form-' + field.key,
493
518
  type: field.widget === 'datetime' ? 'datetime-local' : 'date',
@@ -504,11 +529,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
504
529
  }, null, 8 /* PROPS */, ["text", "more", "error"])
505
530
  ]))
506
531
  : (field.widget === 'json')
507
- ? (openBlock(), createElementBlock("div", _hoisted_14, [
532
+ ? (openBlock(), createElementBlock("div", _hoisted_16, [
508
533
  createElementVNode("label", {
509
534
  for: 'cn-form-' + field.key,
510
535
  class: "cn-form-dialog__label"
511
- }, toDisplayString(field.label) + toDisplayString(field.required ? ' *' : ''), 9 /* TEXT, PROPS */, _hoisted_15),
536
+ }, toDisplayString(field.label) + toDisplayString(field.required ? ' *' : ''), 9 /* TEXT, PROPS */, _hoisted_17),
512
537
  createVNode(_component_CnJsonViewer, {
513
538
  value: $options.jsonStringFor(field),
514
539
  language: "json",
@@ -523,11 +548,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
523
548
  }, null, 8 /* PROPS */, ["text", "more", "error"])
524
549
  ]))
525
550
  : (field.widget === 'code')
526
- ? (openBlock(), createElementBlock("div", _hoisted_16, [
551
+ ? (openBlock(), createElementBlock("div", _hoisted_18, [
527
552
  createElementVNode("label", {
528
553
  for: 'cn-form-' + field.key,
529
554
  class: "cn-form-dialog__label"
530
- }, toDisplayString(field.label) + toDisplayString(field.required ? ' *' : ''), 9 /* TEXT, PROPS */, _hoisted_17),
555
+ }, toDisplayString(field.label) + toDisplayString(field.required ? ' *' : ''), 9 /* TEXT, PROPS */, _hoisted_19),
531
556
  createVNode(_component_CnJsonViewer, {
532
557
  value: $data.formData[field.key] != null ? String($data.formData[field.key]) : '',
533
558
  language: field.language || 'auto',
@@ -541,11 +566,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
541
566
  }, null, 8 /* PROPS */, ["text", "more", "error"])
542
567
  ]))
543
568
  : (field.widget === 'icon')
544
- ? (openBlock(), createElementBlock("div", _hoisted_18, [
569
+ ? (openBlock(), createElementBlock("div", _hoisted_20, [
545
570
  createElementVNode("label", {
546
571
  for: 'cn-form-' + field.key,
547
572
  class: "cn-form-dialog__label"
548
- }, toDisplayString(field.label) + toDisplayString(field.required ? ' *' : ''), 9 /* TEXT, PROPS */, _hoisted_19),
573
+ }, toDisplayString(field.label) + toDisplayString(field.required ? ' *' : ''), 9 /* TEXT, PROPS */, _hoisted_21),
549
574
  createVNode(_component_CnIconBrowser, {
550
575
  value: $data.formData[field.key] != null ? String($data.formData[field.key]) : null,
551
576
  sources: field.iconSources || ['mdi'],
@@ -579,14 +604,28 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
579
604
  ], 10 /* CLASS, PROPS */, _hoisted_3))
580
605
  }), 128 /* KEYED_FRAGMENT */)),
581
606
  ($data.dynamicLoading)
582
- ? (openBlock(), createElementBlock("div", _hoisted_20, [
607
+ ? (openBlock(), createElementBlock("div", _hoisted_22, [
583
608
  createVNode(_component_NcLoadingIcon, { size: 20 }),
584
609
  createElementVNode("span", null, toDisplayString($props.dynamicLoadingLabel), 1 /* TEXT */)
585
610
  ]))
586
611
  : createCommentVNode("v-if", true),
587
612
  renderSlot(_ctx.$slots, "after-fields")
588
613
  ], 64 /* STABLE_FRAGMENT */))
589
- ], 2 /* CLASS */))
614
+ ], 2 /* CLASS */)),
615
+ ($data.nestedCreate !== null)
616
+ ? (openBlock(), createBlock(_component_CnFormDialog, {
617
+ key: 2,
618
+ ref: "nestedCreateDialog",
619
+ schema: $data.nestedCreate.schema,
620
+ register: $data.nestedCreate.register,
621
+ item: null,
622
+ initialData: $data.nestedCreate.initialData,
623
+ recoverDraft: false,
624
+ "data-testid": "cn-form-dialog-nested-create",
625
+ onConfirm: $options.onNestedCreateConfirm,
626
+ onClose: $options.onNestedCreateClose
627
+ }, null, 8 /* PROPS */, ["schema", "register", "initialData", "onConfirm", "onClose"]))
628
+ : createCommentVNode("v-if", true)
590
629
  ]),
591
630
  _: 3 /* FORWARDED */
592
631
  }, 8 /* PROPS */, ["name", "size", "noClose"]))