@conduction/nextcloud-vue 2.92.0 → 2.93.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 (121) hide show
  1. package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js +57 -4
  2. package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js.map +1 -1
  3. package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js +44 -17
  4. package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js.map +1 -1
  5. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue.js +1 -1
  6. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue2.js +44 -2
  7. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue2.js.map +1 -1
  8. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue3.js +140 -59
  9. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue3.js.map +1 -1
  10. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue.js +1 -1
  11. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +20 -6
  12. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
  13. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +3 -2
  14. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
  15. package/dist/esm/components/CnDataTable/CnDataTable.vue2.js +2 -36
  16. package/dist/esm/components/CnDataTable/CnDataTable.vue2.js.map +1 -1
  17. package/dist/esm/components/CnDataTable/CnDataTable.vue3.js.map +1 -1
  18. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +5 -3
  19. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
  20. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
  21. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue.js +1 -1
  22. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue2.js +6 -4
  23. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue2.js.map +1 -1
  24. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue3.js.map +1 -1
  25. package/dist/esm/components/CnFeaturesAndRoadmapPage/CnFeaturesAndRoadmapPage.vue2.js +46 -0
  26. package/dist/esm/components/CnFeaturesAndRoadmapPage/CnFeaturesAndRoadmapPage.vue2.js.map +1 -1
  27. package/dist/esm/components/CnFeaturesAndRoadmapPage/CnFeaturesAndRoadmapPage.vue3.js +6 -2
  28. package/dist/esm/components/CnFeaturesAndRoadmapPage/CnFeaturesAndRoadmapPage.vue3.js.map +1 -1
  29. package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue.js +1 -1
  30. package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue2.js +82 -9
  31. package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue2.js.map +1 -1
  32. package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue3.js +104 -90
  33. package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue3.js.map +1 -1
  34. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue.js +9 -0
  35. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue.js.map +1 -0
  36. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue2.js +355 -0
  37. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue2.js.map +1 -0
  38. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue3.js +462 -0
  39. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue3.js.map +1 -0
  40. package/dist/esm/components/CnFormDialog/CnFormDialog.vue.js +1 -1
  41. package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js +21 -0
  42. package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js.map +1 -1
  43. package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js +402 -391
  44. package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js.map +1 -1
  45. package/dist/esm/components/CnIcon/semanticIcons.js +2 -2
  46. package/dist/esm/components/CnIcon/semanticIcons.js.map +1 -1
  47. package/dist/esm/components/CnNcWidgetWidget/CnNcWidgetWidget.vue.js +1 -1
  48. package/dist/esm/components/CnNcWidgetWidget/CnNcWidgetWidget.vue2.js +22 -1
  49. package/dist/esm/components/CnNcWidgetWidget/CnNcWidgetWidget.vue2.js.map +1 -1
  50. package/dist/esm/components/CnNcWidgetWidget/CnNcWidgetWidget.vue3.js +20 -14
  51. package/dist/esm/components/CnNcWidgetWidget/CnNcWidgetWidget.vue3.js.map +1 -1
  52. package/dist/esm/components/CnNotificationPreferences/CnNotificationPreferences.vue.js +1 -1
  53. package/dist/esm/components/CnNotificationPreferences/CnNotificationPreferences.vue2.js +2 -0
  54. package/dist/esm/components/CnNotificationPreferences/CnNotificationPreferences.vue2.js.map +1 -1
  55. package/dist/esm/components/CnNotificationPreferences/CnNotificationPreferences.vue3.js +15 -5
  56. package/dist/esm/components/CnNotificationPreferences/CnNotificationPreferences.vue3.js.map +1 -1
  57. package/dist/esm/components/CnRoadmapTab/CnRoadmapTab.vue.js +1 -1
  58. package/dist/esm/components/CnRoadmapTab/CnRoadmapTab.vue2.js +8 -30
  59. package/dist/esm/components/CnRoadmapTab/CnRoadmapTab.vue2.js.map +1 -1
  60. package/dist/esm/components/CnRoadmapTab/CnRoadmapTab.vue3.js.map +1 -1
  61. package/dist/esm/components/CnUserSettingsDialog/CnUserSettingsDialog.vue.js +9 -0
  62. package/dist/esm/components/CnUserSettingsDialog/CnUserSettingsDialog.vue.js.map +1 -0
  63. package/dist/esm/components/CnUserSettingsDialog/CnUserSettingsDialog.vue2.js +164 -0
  64. package/dist/esm/components/CnUserSettingsDialog/CnUserSettingsDialog.vue2.js.map +1 -0
  65. package/dist/esm/components/CnUserSettingsDialog/CnUserSettingsDialog.vue3.js +93 -0
  66. package/dist/esm/components/CnUserSettingsDialog/CnUserSettingsDialog.vue3.js.map +1 -0
  67. package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue.js +1 -1
  68. package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue2.js +12 -0
  69. package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue2.js.map +1 -1
  70. package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue3.js.map +1 -1
  71. package/dist/esm/l10n/en.json.js +24 -1
  72. package/dist/esm/l10n/en.json.js.map +1 -1
  73. package/dist/esm/l10n/nl.json.js +24 -1
  74. package/dist/esm/l10n/nl.json.js.map +1 -1
  75. package/dist/esm/library-style.js +1 -1
  76. package/dist/esm/nextcloud-vue.css +887 -247
  77. package/dist/esm/utils/featureCatalog.js +135 -0
  78. package/dist/esm/utils/featureCatalog.js.map +1 -0
  79. package/dist/esm/utils/fillTemplate.js +74 -3
  80. package/dist/esm/utils/fillTemplate.js.map +1 -1
  81. package/dist/esm/utils/headerMeta.js +62 -12
  82. package/dist/esm/utils/headerMeta.js.map +1 -1
  83. package/dist/esm/utils/roadmapIssues.js +86 -0
  84. package/dist/esm/utils/roadmapIssues.js.map +1 -0
  85. package/dist/esm/utils/userDisplayName.js +47 -0
  86. package/dist/esm/utils/userDisplayName.js.map +1 -0
  87. package/dist/esm/utils/validateManifestV2.compiled.js +3 -3
  88. package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
  89. package/dist/nextcloud-vue.cjs.js +14820 -12966
  90. package/dist/nextcloud-vue.cjs.js.map +2 -2
  91. package/dist/nextcloud-vue.css +887 -247
  92. package/l10n/en.json +24 -1
  93. package/l10n/nl.json +24 -1
  94. package/package.json +1 -1
  95. package/src/components/CnAppRoot/CnAppRoot.md +2 -0
  96. package/src/components/CnAppRoot/CnAppRoot.vue +66 -5
  97. package/src/components/CnChoiceCards/CnChoiceCards.md +27 -0
  98. package/src/components/CnChoiceCards/CnChoiceCards.vue +168 -3
  99. package/src/components/CnDashboardPage/CnDashboardPage.vue +45 -6
  100. package/src/components/CnDataTable/CnDataTable.vue +2 -36
  101. package/src/components/CnDetailPage/CnDetailPage.vue +5 -3
  102. package/src/components/CnFactsWidget/CnFactsWidget.vue +6 -4
  103. package/src/components/CnFeaturesAndRoadmapPage/CnFeaturesAndRoadmapPage.vue +51 -1
  104. package/src/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue +98 -13
  105. package/src/components/CnFeaturesBoard/CnFeaturesBoard.vue +1053 -0
  106. package/src/components/CnFormDialog/CnFormDialog.vue +606 -562
  107. package/src/components/CnNcWidgetWidget/CnNcWidgetWidget.vue +23 -2
  108. package/src/components/CnNotificationPreferences/CnNotificationPreferences.vue +5 -0
  109. package/src/components/CnRoadmapTab/CnRoadmapTab.vue +6 -28
  110. package/src/components/CnUserSettingsDialog/CnUserSettingsDialog.vue +305 -0
  111. package/src/components/CnWidgetWrapper/CnWidgetWrapper.vue +12 -0
  112. package/src/css/dialog.css +47 -0
  113. package/src/css/look-board-detail.css +8 -0
  114. package/src/css/look-board.css +33 -0
  115. package/src/schemas/app-manifest-v2.schema.json +9 -3
  116. package/src/utils/featureCatalog.js +132 -0
  117. package/src/utils/fillTemplate.js +73 -2
  118. package/src/utils/headerMeta.js +62 -12
  119. package/src/utils/roadmapIssues.js +82 -0
  120. package/src/utils/userDisplayName.js +54 -0
  121. package/src/utils/validateManifestV2.compiled.js +3 -3
@@ -15,109 +15,114 @@ const _hoisted_2 = {
15
15
  };
16
16
  const _hoisted_3 = ["max", "value"];
17
17
  const _hoisted_4 = { class: "cn-form-dialog__draft-actions" };
18
- const _hoisted_5 = ["data-cn-field"];
19
- const _hoisted_6 = ["title"];
20
- const _hoisted_7 = {
18
+ const _hoisted_5 = {
19
+ key: 0,
20
+ class: "cn-form-dialog__section",
21
+ "data-testid": "cn-form-dialog-section"
22
+ };
23
+ const _hoisted_6 = ["data-cn-field"];
24
+ const _hoisted_7 = ["title"];
25
+ const _hoisted_8 = {
21
26
  key: 4,
22
27
  class: "cn-form-dialog__coded-fallback"
23
28
  };
24
- const _hoisted_8 = {
29
+ const _hoisted_9 = {
25
30
  key: 2,
26
31
  class: "cn-form-dialog__textarea-wrapper"
27
32
  };
28
- const _hoisted_9 = ["for"];
29
- const _hoisted_10 = ["id", "value", "disabled", "placeholder", "onInput"];
30
- const _hoisted_11 = {
33
+ const _hoisted_10 = ["for"];
34
+ const _hoisted_11 = ["id", "value", "disabled", "placeholder", "onInput"];
35
+ const _hoisted_12 = {
31
36
  key: 3,
32
37
  class: "cn-form-dialog__select-wrapper"
33
38
  };
34
- const _hoisted_12 = {
39
+ const _hoisted_13 = {
35
40
  key: 4,
36
41
  class: "cn-form-dialog__switch-wrapper"
37
42
  };
38
- const _hoisted_13 = {
43
+ const _hoisted_14 = {
39
44
  key: 5,
40
45
  class: "cn-form-dialog__select-wrapper"
41
46
  };
42
- const _hoisted_14 = { class: "cn-form-dialog__option" };
43
- const _hoisted_15 = {
47
+ const _hoisted_15 = { class: "cn-form-dialog__option" };
48
+ const _hoisted_16 = {
44
49
  key: 6,
45
50
  class: "cn-form-dialog__select-wrapper"
46
51
  };
47
- const _hoisted_16 = { class: "cn-form-dialog__option" };
48
52
  const _hoisted_17 = { class: "cn-form-dialog__option" };
49
- const _hoisted_18 = {
53
+ const _hoisted_18 = { class: "cn-form-dialog__option" };
54
+ const _hoisted_19 = {
50
55
  key: 7,
51
56
  class: "cn-form-dialog__select-wrapper"
52
57
  };
53
- const _hoisted_19 = { class: "cn-form-dialog__option" };
54
58
  const _hoisted_20 = { class: "cn-form-dialog__option" };
55
- const _hoisted_21 = {
59
+ const _hoisted_21 = { class: "cn-form-dialog__option" };
60
+ const _hoisted_22 = {
56
61
  key: 8,
57
62
  class: "cn-form-dialog__switch-wrapper"
58
63
  };
59
- const _hoisted_22 = {
64
+ const _hoisted_23 = {
60
65
  key: 9,
61
66
  class: "cn-form-dialog__select-wrapper"
62
67
  };
63
- const _hoisted_23 = ["for"];
64
- const _hoisted_24 = {
68
+ const _hoisted_24 = ["for"];
69
+ const _hoisted_25 = {
65
70
  key: 10,
66
71
  class: "cn-form-dialog__json-wrapper"
67
72
  };
68
- const _hoisted_25 = ["for"];
69
- const _hoisted_26 = {
73
+ const _hoisted_26 = ["for"];
74
+ const _hoisted_27 = {
70
75
  key: 11,
71
76
  class: "cn-form-dialog__json-wrapper"
72
77
  };
73
- const _hoisted_27 = ["for"];
74
- const _hoisted_28 = {
78
+ const _hoisted_28 = ["for"];
79
+ const _hoisted_29 = {
75
80
  key: 12,
76
81
  class: "cn-form-dialog__file-wrapper"
77
82
  };
78
- const _hoisted_29 = {
83
+ const _hoisted_30 = {
79
84
  key: 13,
80
85
  class: "cn-form-dialog__duration-wrapper"
81
86
  };
82
- const _hoisted_30 = {
87
+ const _hoisted_31 = {
83
88
  key: 14,
84
89
  class: "cn-form-dialog__child-records-wrapper"
85
90
  };
86
- const _hoisted_31 = {
91
+ const _hoisted_32 = {
87
92
  key: 15,
88
93
  class: "cn-form-dialog__sub-objects-wrapper"
89
94
  };
90
- const _hoisted_32 = {
95
+ const _hoisted_33 = {
91
96
  key: 16,
92
97
  class: "cn-form-dialog__property-source-wrapper"
93
98
  };
94
- const _hoisted_33 = {
99
+ const _hoisted_34 = {
95
100
  key: 17,
96
101
  class: "cn-form-dialog__icon-wrapper"
97
102
  };
98
- const _hoisted_34 = ["for"];
99
- const _hoisted_35 = {
103
+ const _hoisted_35 = ["for"];
104
+ const _hoisted_36 = {
100
105
  key: 19,
101
106
  class: "cn-form-dialog__assigned",
102
107
  "aria-live": "polite",
103
108
  "data-testid": "cn-form-dialog-assigned"
104
109
  };
105
- const _hoisted_36 = {
110
+ const _hoisted_37 = {
106
111
  key: 0,
107
112
  class: "cn-form-dialog__dynamic-loading",
108
113
  "data-testid": "cn-form-dialog-dynamic-loading"
109
114
  };
110
- const _hoisted_37 = {
115
+ const _hoisted_38 = {
111
116
  key: 0,
112
117
  class: "cn-dialog__tertiary",
113
118
  "data-testid": "cn-dialog-tertiary"
114
119
  };
115
- const _hoisted_38 = {
120
+ const _hoisted_39 = {
116
121
  class: "cn-form-dialog__draft-state",
117
122
  "aria-live": "polite",
118
123
  "data-testid": "cn-form-dialog-draft-state"
119
124
  };
120
- const _hoisted_39 = {
125
+ const _hoisted_40 = {
121
126
  key: 1,
122
127
  class: "cn-form-dialog__draft-state",
123
128
  "aria-live": "polite",
@@ -163,7 +168,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
163
168
  }, {
164
169
  actions: withCtx(() => [
165
170
  (_ctx.isBoardLook)
166
- ? (openBlock(), createElementBlock("span", _hoisted_37, [
171
+ ? (openBlock(), createElementBlock("span", _hoisted_38, [
167
172
  ($data.result === null && $options.canSaveDraft)
168
173
  ? (openBlock(), createBlock(_component_NcButton, {
169
174
  key: 0,
@@ -178,9 +183,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
178
183
  _: 1 /* STABLE */
179
184
  }, 8 /* PROPS */, ["disabled", "onClick"]))
180
185
  : createCommentVNode("v-if", true),
181
- createElementVNode("span", _hoisted_38, toDisplayString($options.draftIndicatorLabel), 1 /* TEXT */)
186
+ createElementVNode("span", _hoisted_39, toDisplayString($options.draftIndicatorLabel), 1 /* TEXT */)
182
187
  ]))
183
- : (openBlock(), createElementBlock("span", _hoisted_39, toDisplayString($options.draftIndicatorLabel), 1 /* TEXT */)),
188
+ : (openBlock(), createElementBlock("span", _hoisted_40, toDisplayString($options.draftIndicatorLabel), 1 /* TEXT */)),
184
189
  createVNode(_component_NcButton, {
185
190
  onClick: _cache[2] || (_cache[2] = $event => (_ctx.$emit('close')))
186
191
  }, {
@@ -351,97 +356,79 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
351
356
  : (openBlock(), createElementBlock(Fragment, { key: 3 }, [
352
357
  renderSlot(_ctx.$slots, "before-fields"),
353
358
  (openBlock(true), createElementBlock(Fragment, null, renderList($options.visibleFields, (field) => {
354
- return (openBlock(), createElementBlock("div", {
355
- key: field.key,
356
- "data-cn-field": field.key,
357
- class: normalizeClass(["cn-form-dialog__field", {
358
- 'cn-form-dialog__field--wide': $options.fieldSpansBothColumns(field),
359
- 'cn-form-field--half': _ctx.isBoardLook && field.width === 'half',
360
- 'cn-form-field--invalid': _ctx.isBoardLook && !!$data.errors[field.key],
361
- }])
359
+ return (openBlock(), createElementBlock(Fragment, {
360
+ key: field.key
362
361
  }, [
363
- ($options.showsOuterLabel(field))
364
- ? (openBlock(), createBlock(_component_CnFormField, {
365
- key: 0,
366
- controlId: 'cn-form-' + field.key,
367
- text: field.label,
368
- optional: !field.required,
369
- optionalLabel: $props.optionalLabel,
370
- error: $data.errors[field.key] || '',
371
- errorId: $options.errorIdFor(field)
372
- }, null, 8 /* PROPS */, ["controlId", "text", "optional", "optionalLabel", "error", "errorId"]))
362
+ ($options.sectionStarts[field.key])
363
+ ? (openBlock(), createElementBlock("h3", _hoisted_5, toDisplayString($options.sectionStarts[field.key]), 1 /* TEXT */))
373
364
  : createCommentVNode("v-if", true),
374
- (_ctx.$slots['field-' + field.key])
375
- ? renderSlot(_ctx.$slots, 'field-' + field.key, {
376
- field: field,
377
- value: $data.formData[field.key],
378
- error: $data.errors[field.key],
379
- updateField: $options.updateField
380
- }, undefined, undefined, 1)
381
- : ($options.resolveReferenceWidget(field))
382
- ? (openBlock(), createBlock(resolveDynamicComponent($options.resolveReferenceWidget(field)), mergeProps({
383
- key: 2,
384
- ref_for: true
385
- }, $options.referenceWidgetProps(field), {
386
- onInput: value => $options.updateField(field.key, value)
387
- }), null, 16 /* FULL_PROPS */, ["onInput"]))
388
- : (field.referenceSemanticType && !$options.isSemanticResolved(field))
389
- ? (openBlock(), createElementBlock("div", {
390
- key: 3,
391
- class: "cn-form-dialog__semantic-unresolved",
392
- title: $options.semanticUnavailableText(field)
393
- }, [
394
- createVNode(_component_NcTextField, mergeProps({
395
- id: $options.fieldControlId(field),
396
- label: $options.fieldLabelText(field),
397
- labelOutside: _ctx.isBoardLook
398
- }, { ref_for: true }, $options.fieldAria(field), {
399
- modelValue: $data.formData[field.key] != null ? String($data.formData[field.key]) : '',
400
- helperText: $options.isSemanticLoading(field) ? '' : $options.semanticUnavailableText(field),
401
- disabled: true,
402
- loading: $options.isSemanticLoading(field),
403
- placeholder: field.description
404
- }), null, 16 /* FULL_PROPS */, ["id", "label", "labelOutside", "modelValue", "helperText", "loading", "placeholder"])
405
- ], 8 /* PROPS */, _hoisted_6))
406
- : (field.codeList && $data.codedFailed[field.key])
407
- ? (openBlock(), createElementBlock("div", _hoisted_7, [
365
+ createElementVNode("div", {
366
+ "data-cn-field": field.key,
367
+ class: normalizeClass(["cn-form-dialog__field", {
368
+ 'cn-form-dialog__field--wide': $options.fieldSpansBothColumns(field),
369
+ 'cn-form-field--half': _ctx.isBoardLook && field.width === 'half',
370
+ 'cn-form-field--invalid': _ctx.isBoardLook && !!$data.errors[field.key],
371
+ }])
372
+ }, [
373
+ ($options.showsOuterLabel(field))
374
+ ? (openBlock(), createBlock(_component_CnFormField, {
375
+ key: 0,
376
+ controlId: 'cn-form-' + field.key,
377
+ text: field.label,
378
+ optional: !field.required,
379
+ optionalLabel: $props.optionalLabel,
380
+ error: $data.errors[field.key] || '',
381
+ errorId: $options.errorIdFor(field)
382
+ }, null, 8 /* PROPS */, ["controlId", "text", "optional", "optionalLabel", "error", "errorId"]))
383
+ : createCommentVNode("v-if", true),
384
+ (_ctx.$slots['field-' + field.key])
385
+ ? renderSlot(_ctx.$slots, 'field-' + field.key, {
386
+ field: field,
387
+ value: $data.formData[field.key],
388
+ error: $data.errors[field.key],
389
+ updateField: $options.updateField
390
+ }, undefined, undefined, 1)
391
+ : ($options.resolveReferenceWidget(field))
392
+ ? (openBlock(), createBlock(resolveDynamicComponent($options.resolveReferenceWidget(field)), mergeProps({
393
+ key: 2,
394
+ ref_for: true
395
+ }, $options.referenceWidgetProps(field), {
396
+ onInput: value => $options.updateField(field.key, value)
397
+ }), null, 16 /* FULL_PROPS */, ["onInput"]))
398
+ : (field.referenceSemanticType && !$options.isSemanticResolved(field))
399
+ ? (openBlock(), createElementBlock("div", {
400
+ key: 3,
401
+ class: "cn-form-dialog__semantic-unresolved",
402
+ title: $options.semanticUnavailableText(field)
403
+ }, [
408
404
  createVNode(_component_NcTextField, mergeProps({
409
405
  id: $options.fieldControlId(field),
410
406
  label: $options.fieldLabelText(field),
411
407
  labelOutside: _ctx.isBoardLook
412
408
  }, { ref_for: true }, $options.fieldAria(field), {
413
- modelValue: $options.codedFallbackText(field),
414
- disabled: field.readOnly,
415
- helperText: _ctx.t('nextcloud-vue', 'The list of choices could not be loaded. Enter the value by hand.'),
416
- "onUpdate:modelValue": $event => ($options.onCodedFallbackInput(field, $event))
417
- }), null, 16 /* FULL_PROPS */, ["id", "label", "labelOutside", "modelValue", "disabled", "helperText", "onUpdate:modelValue"])
418
- ]))
419
- : (openBlock(), createElementBlock(Fragment, { key: 5 }, [
420
- (field.widget === 'text' || field.widget === 'email' || field.widget === 'url')
421
- ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
422
- createVNode(_component_NcTextField, mergeProps({
423
- id: $options.fieldControlId(field),
424
- label: $options.fieldLabelText(field),
425
- labelOutside: _ctx.isBoardLook
426
- }, { ref_for: true }, $options.fieldAria(field), {
427
- modelValue: $data.formData[field.key] != null ? String($data.formData[field.key]) : '',
428
- error: !!$data.errors[field.key],
429
- type: field.widget === 'email' ? 'email' : field.widget === 'url' ? 'url' : 'text',
430
- disabled: field.readOnly,
431
- placeholder: $options.fieldPlaceholder(field),
432
- "onUpdate:modelValue": value => $options.updateField(field.key, value)
433
- }), null, 16 /* FULL_PROPS */, ["id", "label", "labelOutside", "modelValue", "error", "type", "disabled", "placeholder", "onUpdate:modelValue"]),
434
- createVNode(_component_CnFieldHelper, {
435
- id: $options.helpId(field),
436
- text: field.description,
437
- more: field.descriptionLong,
438
- help: field.help,
439
- label: field.label,
440
- error: $options.helperError(field)
441
- }, null, 8 /* PROPS */, ["id", "text", "more", "help", "label", "error"])
442
- ], 64 /* STABLE_FRAGMENT */))
443
- : (field.widget === 'number')
444
- ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
409
+ modelValue: $data.formData[field.key] != null ? String($data.formData[field.key]) : '',
410
+ helperText: $options.isSemanticLoading(field) ? '' : $options.semanticUnavailableText(field),
411
+ disabled: true,
412
+ loading: $options.isSemanticLoading(field),
413
+ placeholder: field.description
414
+ }), null, 16 /* FULL_PROPS */, ["id", "label", "labelOutside", "modelValue", "helperText", "loading", "placeholder"])
415
+ ], 8 /* PROPS */, _hoisted_7))
416
+ : (field.codeList && $data.codedFailed[field.key])
417
+ ? (openBlock(), createElementBlock("div", _hoisted_8, [
418
+ createVNode(_component_NcTextField, mergeProps({
419
+ id: $options.fieldControlId(field),
420
+ label: $options.fieldLabelText(field),
421
+ labelOutside: _ctx.isBoardLook
422
+ }, { ref_for: true }, $options.fieldAria(field), {
423
+ modelValue: $options.codedFallbackText(field),
424
+ disabled: field.readOnly,
425
+ helperText: _ctx.t('nextcloud-vue', 'The list of choices could not be loaded. Enter the value by hand.'),
426
+ "onUpdate:modelValue": $event => ($options.onCodedFallbackInput(field, $event))
427
+ }), null, 16 /* FULL_PROPS */, ["id", "label", "labelOutside", "modelValue", "disabled", "helperText", "onUpdate:modelValue"])
428
+ ]))
429
+ : (openBlock(), createElementBlock(Fragment, { key: 5 }, [
430
+ (field.widget === 'text' || field.widget === 'email' || field.widget === 'url')
431
+ ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
445
432
  createVNode(_component_NcTextField, mergeProps({
446
433
  id: $options.fieldControlId(field),
447
434
  label: $options.fieldLabelText(field),
@@ -449,11 +436,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
449
436
  }, { ref_for: true }, $options.fieldAria(field), {
450
437
  modelValue: $data.formData[field.key] != null ? String($data.formData[field.key]) : '',
451
438
  error: !!$data.errors[field.key],
452
- type: "number",
439
+ type: field.widget === 'email' ? 'email' : field.widget === 'url' ? 'url' : 'text',
453
440
  disabled: field.readOnly,
454
441
  placeholder: $options.fieldPlaceholder(field),
455
- "onUpdate:modelValue": value => $options.updateField(field.key, value !== '' ? Number(value) : null)
456
- }), null, 16 /* FULL_PROPS */, ["id", "label", "labelOutside", "modelValue", "error", "disabled", "placeholder", "onUpdate:modelValue"]),
442
+ "onUpdate:modelValue": value => $options.updateField(field.key, value)
443
+ }), null, 16 /* FULL_PROPS */, ["id", "label", "labelOutside", "modelValue", "error", "type", "disabled", "placeholder", "onUpdate:modelValue"]),
457
444
  createVNode(_component_CnFieldHelper, {
458
445
  id: $options.helpId(field),
459
446
  text: field.description,
@@ -463,25 +450,20 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
463
450
  error: $options.helperError(field)
464
451
  }, null, 8 /* PROPS */, ["id", "text", "more", "help", "label", "error"])
465
452
  ], 64 /* STABLE_FRAGMENT */))
466
- : (field.widget === 'textarea')
467
- ? (openBlock(), createElementBlock("div", _hoisted_8, [
468
- (!$options.showsOuterLabel(field))
469
- ? (openBlock(), createElementBlock("label", {
470
- key: 0,
471
- for: 'cn-form-' + field.key,
472
- class: "cn-form-dialog__label"
473
- }, toDisplayString(field.label) + toDisplayString($options.requiredSuffix(field)), 9 /* TEXT, PROPS */, _hoisted_9))
474
- : createCommentVNode("v-if", true),
475
- createElementVNode("textarea", mergeProps({
476
- id: 'cn-form-' + field.key,
477
- class: "cn-form-dialog__textarea"
453
+ : (field.widget === 'number')
454
+ ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
455
+ createVNode(_component_NcTextField, mergeProps({
456
+ id: $options.fieldControlId(field),
457
+ label: $options.fieldLabelText(field),
458
+ labelOutside: _ctx.isBoardLook
478
459
  }, { ref_for: true }, $options.fieldAria(field), {
479
- value: $data.formData[field.key] || '',
460
+ modelValue: $data.formData[field.key] != null ? String($data.formData[field.key]) : '',
461
+ error: !!$data.errors[field.key],
462
+ type: "number",
480
463
  disabled: field.readOnly,
481
464
  placeholder: $options.fieldPlaceholder(field),
482
- rows: "4",
483
- onInput: $event => ($options.updateField(field.key, $event.target.value))
484
- }), null, 16 /* FULL_PROPS */, _hoisted_10),
465
+ "onUpdate:modelValue": value => $options.updateField(field.key, value !== '' ? Number(value) : null)
466
+ }), null, 16 /* FULL_PROPS */, ["id", "label", "labelOutside", "modelValue", "error", "disabled", "placeholder", "onUpdate:modelValue"]),
485
467
  createVNode(_component_CnFieldHelper, {
486
468
  id: $options.helpId(field),
487
469
  text: field.description,
@@ -490,25 +472,26 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
490
472
  label: field.label,
491
473
  error: $options.helperError(field)
492
474
  }, null, 8 /* PROPS */, ["id", "text", "more", "help", "label", "error"])
493
- ]))
494
- : (($options.isReferenceField(field) || $options.isReferenceArrayField(field)) && field.allowCreate)
495
- ? (openBlock(), createElementBlock("div", _hoisted_11, [
496
- createVNode(_component_CnResourceSelect, {
497
- inputId: 'cn-form-' + field.key,
498
- inputLabel: $options.fieldLabelText(field),
499
- labelOutside: _ctx.isBoardLook,
500
- register: $options.referenceRegister(field),
501
- schema: String(field.reference.schema),
502
- labelField: $options.referenceLabelField(field),
503
- multiple: !!field.reference.multiple,
504
- modelValue: $options.referenceModelValue(field),
505
- clearable: !field.required || !!field.reference.multiple,
475
+ ], 64 /* STABLE_FRAGMENT */))
476
+ : (field.widget === 'textarea')
477
+ ? (openBlock(), createElementBlock("div", _hoisted_9, [
478
+ (!$options.showsOuterLabel(field))
479
+ ? (openBlock(), createElementBlock("label", {
480
+ key: 0,
481
+ for: 'cn-form-' + field.key,
482
+ class: "cn-form-dialog__label"
483
+ }, toDisplayString(field.label) + toDisplayString($options.requiredSuffix(field)), 9 /* TEXT, PROPS */, _hoisted_10))
484
+ : createCommentVNode("v-if", true),
485
+ createElementVNode("textarea", mergeProps({
486
+ id: 'cn-form-' + field.key,
487
+ class: "cn-form-dialog__textarea"
488
+ }, { ref_for: true }, $options.fieldAria(field), {
489
+ value: $data.formData[field.key] || '',
506
490
  disabled: field.readOnly,
507
- preload: true,
508
- createHandler: term => $options.openNestedCreate(field, term),
509
- "onUpdate:modelValue": value => $options.onReferenceSelected(field, value),
510
- onCreate: obj => $options.onReferenceCreated(field, obj)
511
- }, null, 8 /* PROPS */, ["inputId", "inputLabel", "labelOutside", "register", "schema", "labelField", "multiple", "modelValue", "clearable", "disabled", "createHandler", "onUpdate:modelValue", "onCreate"]),
491
+ placeholder: $options.fieldPlaceholder(field),
492
+ rows: "4",
493
+ onInput: $event => ($options.updateField(field.key, $event.target.value))
494
+ }), null, 16 /* FULL_PROPS */, _hoisted_11),
512
495
  createVNode(_component_CnFieldHelper, {
513
496
  id: $options.helpId(field),
514
497
  text: field.description,
@@ -518,19 +501,24 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
518
501
  error: $options.helperError(field)
519
502
  }, null, 8 /* PROPS */, ["id", "text", "more", "help", "label", "error"])
520
503
  ]))
521
- : (field.widget === 'switch')
504
+ : (($options.isReferenceField(field) || $options.isReferenceArrayField(field)) && field.allowCreate)
522
505
  ? (openBlock(), createElementBlock("div", _hoisted_12, [
523
- createVNode(_component_NcCheckboxRadioSwitch, {
524
- modelValue: $options.isSwitchOn(field),
506
+ createVNode(_component_CnResourceSelect, {
507
+ inputId: 'cn-form-' + field.key,
508
+ inputLabel: $options.fieldLabelText(field),
509
+ labelOutside: _ctx.isBoardLook,
510
+ register: $options.referenceRegister(field),
511
+ schema: String(field.reference.schema),
512
+ labelField: $options.referenceLabelField(field),
513
+ multiple: !!field.reference.multiple,
514
+ modelValue: $options.referenceModelValue(field),
515
+ clearable: !field.required || !!field.reference.multiple,
525
516
  disabled: field.readOnly,
526
- type: "switch",
527
- "onUpdate:modelValue": value => $options.updateField(field.key, $options.switchValueFor(field, value))
528
- }, {
529
- default: withCtx(() => [
530
- createTextVNode(toDisplayString(field.label) + toDisplayString($options.requiredSuffix(field)), 1 /* TEXT */)
531
- ]),
532
- _: 2 /* DYNAMIC */
533
- }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["modelValue", "disabled", "onUpdate:modelValue"]),
517
+ preload: true,
518
+ createHandler: term => $options.openNestedCreate(field, term),
519
+ "onUpdate:modelValue": value => $options.onReferenceSelected(field, value),
520
+ onCreate: obj => $options.onReferenceCreated(field, obj)
521
+ }, null, 8 /* PROPS */, ["inputId", "inputLabel", "labelOutside", "register", "schema", "labelField", "multiple", "modelValue", "clearable", "disabled", "createHandler", "onUpdate:modelValue", "onCreate"]),
534
522
  createVNode(_component_CnFieldHelper, {
535
523
  id: $options.helpId(field),
536
524
  text: field.description,
@@ -540,50 +528,19 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
540
528
  error: $options.helperError(field)
541
529
  }, null, 8 /* PROPS */, ["id", "text", "more", "help", "label", "error"])
542
530
  ]))
543
- : (field.widget === 'select' || field.widget === 'user' || field.widget === 'group')
531
+ : (field.widget === 'switch')
544
532
  ? (openBlock(), createElementBlock("div", _hoisted_13, [
545
- withDirectives((openBlock(), createBlock(resolveDynamicComponent($options.isUserField(field) ? 'NcSelectUsers' : 'NcSelect'), {
546
- inputId: 'cn-form-' + field.key,
547
- inputLabel: $options.fieldLabelText(field),
548
- labelOutside: _ctx.isBoardLook,
549
- options: $options.getEffectiveOptions(field),
550
- modelValue: $options.getEffectiveSelectedOption(field),
551
- clearable: !field.required,
533
+ createVNode(_component_NcCheckboxRadioSwitch, {
534
+ modelValue: $options.isSwitchOn(field),
552
535
  disabled: field.readOnly,
553
- loading: $options.isFieldLoading(field),
554
- filterable: !$options.isAsyncEnum(field),
555
- "onUpdate:modelValue": $event => ($options.onEffectiveSelectChange(field, $event)),
556
- onSearch: $event => ($options.isAsyncEnum(field) ? $options.onAsyncSearch(field, $event) : undefined)
557
- }, createSlots({ _: 2 /* DYNAMIC */ }, [
558
- (_ctx.$slots['field-' + field.key + '-option'])
559
- ? {
560
- name: "option",
561
- fn: withCtx((optionProps) => [
562
- renderSlot(_ctx.$slots, 'field-' + field.key + '-option', mergeProps({ ref_for: true }, optionProps))
563
- ]),
564
- key: "0"
565
- }
566
- : (!$options.isUserField(field))
567
- ? {
568
- name: "option",
569
- fn: withCtx((optionProps) => [
570
- createElementVNode("span", _hoisted_14, toDisplayString($options.optionText(optionProps)), 1 /* TEXT */)
571
- ]),
572
- key: "1"
573
- }
574
- : undefined,
575
- (_ctx.$slots['field-' + field.key + '-selected-option'])
576
- ? {
577
- name: "selected-option",
578
- fn: withCtx((optionProps) => [
579
- renderSlot(_ctx.$slots, 'field-' + field.key + '-selected-option', mergeProps({ ref_for: true }, optionProps))
580
- ]),
581
- key: "2"
582
- }
583
- : undefined
584
- ]), 1064 /* PROPS, NEED_HYDRATION, DYNAMIC_SLOTS */, ["inputId", "inputLabel", "labelOutside", "options", "modelValue", "clearable", "disabled", "loading", "filterable", "onUpdate:modelValue", "onSearch"])), [
585
- [_directive_cn_select_aria, $options.fieldAria(field)]
586
- ]),
536
+ type: "switch",
537
+ "onUpdate:modelValue": value => $options.updateField(field.key, $options.switchValueFor(field, value))
538
+ }, {
539
+ default: withCtx(() => [
540
+ createTextVNode(toDisplayString(field.label) + toDisplayString($options.requiredSuffix(field)), 1 /* TEXT */)
541
+ ]),
542
+ _: 2 /* DYNAMIC */
543
+ }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["modelValue", "disabled", "onUpdate:modelValue"]),
587
544
  createVNode(_component_CnFieldHelper, {
588
545
  id: $options.helpId(field),
589
546
  text: field.description,
@@ -593,22 +550,20 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
593
550
  error: $options.helperError(field)
594
551
  }, null, 8 /* PROPS */, ["id", "text", "more", "help", "label", "error"])
595
552
  ]))
596
- : (field.widget === 'multiselect' || field.widget === 'user-multiselect' || field.widget === 'group-multiselect')
597
- ? (openBlock(), createElementBlock("div", _hoisted_15, [
598
- withDirectives((openBlock(), createBlock(_component_NcSelect, {
553
+ : (field.widget === 'select' || field.widget === 'user' || field.widget === 'group')
554
+ ? (openBlock(), createElementBlock("div", _hoisted_14, [
555
+ withDirectives((openBlock(), createBlock(resolveDynamicComponent($options.isUserField(field) ? 'NcSelectUsers' : 'NcSelect'), {
599
556
  inputId: 'cn-form-' + field.key,
600
557
  inputLabel: $options.fieldLabelText(field),
601
558
  labelOutside: _ctx.isBoardLook,
602
- options: $options.getEffectiveArrayOptions(field),
603
- modelValue: $options.getEffectiveSelectedArrayOptions(field),
604
- multiple: true,
605
- keepOpen: true,
606
- clearable: true,
559
+ options: $options.getEffectiveOptions(field),
560
+ modelValue: $options.getEffectiveSelectedOption(field),
561
+ clearable: !field.required,
607
562
  disabled: field.readOnly,
608
563
  loading: $options.isFieldLoading(field),
609
- filterable: !$options.isAsyncItemsEnum(field),
610
- "onUpdate:modelValue": $event => ($options.onEffectiveMultiSelectChange(field, $event)),
611
- onSearch: $event => ($options.isAsyncItemsEnum(field) ? $options.onAsyncSearch(field, $event) : undefined)
564
+ filterable: !$options.isAsyncEnum(field),
565
+ "onUpdate:modelValue": $event => ($options.onEffectiveSelectChange(field, $event)),
566
+ onSearch: $event => ($options.isAsyncEnum(field) ? $options.onAsyncSearch(field, $event) : undefined)
612
567
  }, createSlots({ _: 2 /* DYNAMIC */ }, [
613
568
  (_ctx.$slots['field-' + field.key + '-option'])
614
569
  ? {
@@ -618,13 +573,15 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
618
573
  ]),
619
574
  key: "0"
620
575
  }
621
- : {
622
- name: "option",
623
- fn: withCtx((optionProps) => [
624
- createElementVNode("span", _hoisted_16, toDisplayString($options.optionText(optionProps)), 1 /* TEXT */)
625
- ]),
626
- key: "1"
627
- },
576
+ : (!$options.isUserField(field))
577
+ ? {
578
+ name: "option",
579
+ fn: withCtx((optionProps) => [
580
+ createElementVNode("span", _hoisted_15, toDisplayString($options.optionText(optionProps)), 1 /* TEXT */)
581
+ ]),
582
+ key: "1"
583
+ }
584
+ : undefined,
628
585
  (_ctx.$slots['field-' + field.key + '-selected-option'])
629
586
  ? {
630
587
  name: "selected-option",
@@ -633,14 +590,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
633
590
  ]),
634
591
  key: "2"
635
592
  }
636
- : {
637
- name: "selected-option",
638
- fn: withCtx((optionProps) => [
639
- createElementVNode("span", _hoisted_17, toDisplayString($options.optionText(optionProps)), 1 /* TEXT */)
640
- ]),
641
- key: "3"
642
- }
643
- ]), 1032 /* PROPS, DYNAMIC_SLOTS */, ["inputId", "inputLabel", "labelOutside", "options", "modelValue", "disabled", "loading", "filterable", "onUpdate:modelValue", "onSearch"])), [
593
+ : undefined
594
+ ]), 1064 /* PROPS, NEED_HYDRATION, DYNAMIC_SLOTS */, ["inputId", "inputLabel", "labelOutside", "options", "modelValue", "clearable", "disabled", "loading", "filterable", "onUpdate:modelValue", "onSearch"])), [
644
595
  [_directive_cn_select_aria, $options.fieldAria(field)]
645
596
  ]),
646
597
  createVNode(_component_CnFieldHelper, {
@@ -652,23 +603,22 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
652
603
  error: $options.helperError(field)
653
604
  }, null, 8 /* PROPS */, ["id", "text", "more", "help", "label", "error"])
654
605
  ]))
655
- : (field.widget === 'tags')
656
- ? (openBlock(), createElementBlock("div", _hoisted_18, [
606
+ : (field.widget === 'multiselect' || field.widget === 'user-multiselect' || field.widget === 'group-multiselect')
607
+ ? (openBlock(), createElementBlock("div", _hoisted_16, [
657
608
  withDirectives((openBlock(), createBlock(_component_NcSelect, {
658
609
  inputId: 'cn-form-' + field.key,
659
610
  inputLabel: $options.fieldLabelText(field),
660
611
  labelOutside: _ctx.isBoardLook,
661
- modelValue: $data.formData[field.key] || [],
662
- options: $options.isFieldAsync(field) ? (($data.asyncState[field.key] && $data.asyncState[field.key].options) || []) : [],
612
+ options: $options.getEffectiveArrayOptions(field),
613
+ modelValue: $options.getEffectiveSelectedArrayOptions(field),
663
614
  multiple: true,
664
615
  keepOpen: true,
665
- taggable: true,
666
616
  clearable: true,
667
617
  disabled: field.readOnly,
668
618
  loading: $options.isFieldLoading(field),
669
- filterable: !$options.isFieldAsync(field),
670
- "onUpdate:modelValue": $event => ($options.updateField(field.key, $event)),
671
- onSearch: $event => ($options.isFieldAsync(field) ? $options.onAsyncSearch(field, $event) : undefined)
619
+ filterable: !$options.isAsyncItemsEnum(field),
620
+ "onUpdate:modelValue": $event => ($options.onEffectiveMultiSelectChange(field, $event)),
621
+ onSearch: $event => ($options.isAsyncItemsEnum(field) ? $options.onAsyncSearch(field, $event) : undefined)
672
622
  }, createSlots({ _: 2 /* DYNAMIC */ }, [
673
623
  (_ctx.$slots['field-' + field.key + '-option'])
674
624
  ? {
@@ -681,7 +631,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
681
631
  : {
682
632
  name: "option",
683
633
  fn: withCtx((optionProps) => [
684
- createElementVNode("span", _hoisted_19, toDisplayString($options.optionText(optionProps)), 1 /* TEXT */)
634
+ createElementVNode("span", _hoisted_17, toDisplayString($options.optionText(optionProps)), 1 /* TEXT */)
685
635
  ]),
686
636
  key: "1"
687
637
  },
@@ -696,11 +646,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
696
646
  : {
697
647
  name: "selected-option",
698
648
  fn: withCtx((optionProps) => [
699
- createElementVNode("span", _hoisted_20, toDisplayString($options.optionText(optionProps)), 1 /* TEXT */)
649
+ createElementVNode("span", _hoisted_18, toDisplayString($options.optionText(optionProps)), 1 /* TEXT */)
700
650
  ]),
701
651
  key: "3"
702
652
  }
703
- ]), 1032 /* PROPS, DYNAMIC_SLOTS */, ["inputId", "inputLabel", "labelOutside", "modelValue", "options", "disabled", "loading", "filterable", "onUpdate:modelValue", "onSearch"])), [
653
+ ]), 1032 /* PROPS, DYNAMIC_SLOTS */, ["inputId", "inputLabel", "labelOutside", "options", "modelValue", "disabled", "loading", "filterable", "onUpdate:modelValue", "onSearch"])), [
704
654
  [_directive_cn_select_aria, $options.fieldAria(field)]
705
655
  ]),
706
656
  createVNode(_component_CnFieldHelper, {
@@ -712,19 +662,57 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
712
662
  error: $options.helperError(field)
713
663
  }, null, 8 /* PROPS */, ["id", "text", "more", "help", "label", "error"])
714
664
  ]))
715
- : (field.widget === 'checkbox')
716
- ? (openBlock(), createElementBlock("div", _hoisted_21, [
717
- createVNode(_component_NcCheckboxRadioSwitch, {
718
- modelValue: !!$data.formData[field.key],
665
+ : (field.widget === 'tags')
666
+ ? (openBlock(), createElementBlock("div", _hoisted_19, [
667
+ withDirectives((openBlock(), createBlock(_component_NcSelect, {
668
+ inputId: 'cn-form-' + field.key,
669
+ inputLabel: $options.fieldLabelText(field),
670
+ labelOutside: _ctx.isBoardLook,
671
+ modelValue: $data.formData[field.key] || [],
672
+ options: $options.isFieldAsync(field) ? (($data.asyncState[field.key] && $data.asyncState[field.key].options) || []) : [],
673
+ multiple: true,
674
+ keepOpen: true,
675
+ taggable: true,
676
+ clearable: true,
719
677
  disabled: field.readOnly,
720
- type: "switch",
721
- "onUpdate:modelValue": value => $options.updateField(field.key, value)
722
- }, {
723
- default: withCtx(() => [
724
- createTextVNode(toDisplayString(field.label) + toDisplayString($options.requiredSuffix(field)), 1 /* TEXT */)
725
- ]),
726
- _: 2 /* DYNAMIC */
727
- }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["modelValue", "disabled", "onUpdate:modelValue"]),
678
+ loading: $options.isFieldLoading(field),
679
+ filterable: !$options.isFieldAsync(field),
680
+ "onUpdate:modelValue": $event => ($options.updateField(field.key, $event)),
681
+ onSearch: $event => ($options.isFieldAsync(field) ? $options.onAsyncSearch(field, $event) : undefined)
682
+ }, createSlots({ _: 2 /* DYNAMIC */ }, [
683
+ (_ctx.$slots['field-' + field.key + '-option'])
684
+ ? {
685
+ name: "option",
686
+ fn: withCtx((optionProps) => [
687
+ renderSlot(_ctx.$slots, 'field-' + field.key + '-option', mergeProps({ ref_for: true }, optionProps))
688
+ ]),
689
+ key: "0"
690
+ }
691
+ : {
692
+ name: "option",
693
+ fn: withCtx((optionProps) => [
694
+ createElementVNode("span", _hoisted_20, toDisplayString($options.optionText(optionProps)), 1 /* TEXT */)
695
+ ]),
696
+ key: "1"
697
+ },
698
+ (_ctx.$slots['field-' + field.key + '-selected-option'])
699
+ ? {
700
+ name: "selected-option",
701
+ fn: withCtx((optionProps) => [
702
+ renderSlot(_ctx.$slots, 'field-' + field.key + '-selected-option', mergeProps({ ref_for: true }, optionProps))
703
+ ]),
704
+ key: "2"
705
+ }
706
+ : {
707
+ name: "selected-option",
708
+ fn: withCtx((optionProps) => [
709
+ createElementVNode("span", _hoisted_21, toDisplayString($options.optionText(optionProps)), 1 /* TEXT */)
710
+ ]),
711
+ key: "3"
712
+ }
713
+ ]), 1032 /* PROPS, DYNAMIC_SLOTS */, ["inputId", "inputLabel", "labelOutside", "modelValue", "options", "disabled", "loading", "filterable", "onUpdate:modelValue", "onSearch"])), [
714
+ [_directive_cn_select_aria, $options.fieldAria(field)]
715
+ ]),
728
716
  createVNode(_component_CnFieldHelper, {
729
717
  id: $options.helpId(field),
730
718
  text: field.description,
@@ -734,24 +722,19 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
734
722
  error: $options.helperError(field)
735
723
  }, null, 8 /* PROPS */, ["id", "text", "more", "help", "label", "error"])
736
724
  ]))
737
- : (field.widget === 'date' || field.widget === 'datetime')
725
+ : (field.widget === 'checkbox')
738
726
  ? (openBlock(), createElementBlock("div", _hoisted_22, [
739
- (!$options.showsOuterLabel(field))
740
- ? (openBlock(), createElementBlock("label", {
741
- key: 0,
742
- for: 'cn-form-' + field.key,
743
- class: "cn-form-dialog__label"
744
- }, toDisplayString(field.label) + toDisplayString($options.requiredSuffix(field)), 9 /* TEXT, PROPS */, _hoisted_23))
745
- : createCommentVNode("v-if", true),
746
- createVNode(_component_NcDateTimePickerNative, {
747
- id: 'cn-form-' + field.key,
748
- type: field.widget === 'datetime' ? 'datetime-local' : 'date',
749
- label: field.label,
750
- hideLabel: true,
751
- modelValue: $options.dateValueFor(field),
727
+ createVNode(_component_NcCheckboxRadioSwitch, {
728
+ modelValue: !!$data.formData[field.key],
752
729
  disabled: field.readOnly,
753
- "onUpdate:modelValue": date => $options.onDateFieldInput(field, date)
754
- }, null, 8 /* PROPS */, ["id", "type", "label", "modelValue", "disabled", "onUpdate:modelValue"]),
730
+ type: "switch",
731
+ "onUpdate:modelValue": value => $options.updateField(field.key, value)
732
+ }, {
733
+ default: withCtx(() => [
734
+ createTextVNode(toDisplayString(field.label) + toDisplayString($options.requiredSuffix(field)), 1 /* TEXT */)
735
+ ]),
736
+ _: 2 /* DYNAMIC */
737
+ }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["modelValue", "disabled", "onUpdate:modelValue"]),
755
738
  createVNode(_component_CnFieldHelper, {
756
739
  id: $options.helpId(field),
757
740
  text: field.description,
@@ -761,22 +744,24 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
761
744
  error: $options.helperError(field)
762
745
  }, null, 8 /* PROPS */, ["id", "text", "more", "help", "label", "error"])
763
746
  ]))
764
- : (field.widget === 'json')
765
- ? (openBlock(), createElementBlock("div", _hoisted_24, [
747
+ : (field.widget === 'date' || field.widget === 'datetime')
748
+ ? (openBlock(), createElementBlock("div", _hoisted_23, [
766
749
  (!$options.showsOuterLabel(field))
767
750
  ? (openBlock(), createElementBlock("label", {
768
751
  key: 0,
769
752
  for: 'cn-form-' + field.key,
770
753
  class: "cn-form-dialog__label"
771
- }, toDisplayString(field.label) + toDisplayString($options.requiredSuffix(field)), 9 /* TEXT, PROPS */, _hoisted_25))
754
+ }, toDisplayString(field.label) + toDisplayString($options.requiredSuffix(field)), 9 /* TEXT, PROPS */, _hoisted_24))
772
755
  : createCommentVNode("v-if", true),
773
- createVNode(_component_CnJsonViewer, {
774
- value: $options.jsonStringFor(field),
775
- language: "json",
776
- readOnly: field.readOnly,
777
- errorText: $data.jsonErrors[field.key] || '',
778
- "onUpdate:value": value => $options.onJsonFieldInput(field, value)
779
- }, null, 8 /* PROPS */, ["value", "readOnly", "errorText", "onUpdate:value"]),
756
+ createVNode(_component_NcDateTimePickerNative, {
757
+ id: 'cn-form-' + field.key,
758
+ type: field.widget === 'datetime' ? 'datetime-local' : 'date',
759
+ label: field.label,
760
+ hideLabel: true,
761
+ modelValue: $options.dateValueFor(field),
762
+ disabled: field.readOnly,
763
+ "onUpdate:modelValue": date => $options.onDateFieldInput(field, date)
764
+ }, null, 8 /* PROPS */, ["id", "type", "label", "modelValue", "disabled", "onUpdate:modelValue"]),
780
765
  createVNode(_component_CnFieldHelper, {
781
766
  id: $options.helpId(field),
782
767
  text: field.description,
@@ -786,21 +771,22 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
786
771
  error: $options.helperError(field)
787
772
  }, null, 8 /* PROPS */, ["id", "text", "more", "help", "label", "error"])
788
773
  ]))
789
- : (field.widget === 'code')
790
- ? (openBlock(), createElementBlock("div", _hoisted_26, [
774
+ : (field.widget === 'json')
775
+ ? (openBlock(), createElementBlock("div", _hoisted_25, [
791
776
  (!$options.showsOuterLabel(field))
792
777
  ? (openBlock(), createElementBlock("label", {
793
778
  key: 0,
794
779
  for: 'cn-form-' + field.key,
795
780
  class: "cn-form-dialog__label"
796
- }, toDisplayString(field.label) + toDisplayString($options.requiredSuffix(field)), 9 /* TEXT, PROPS */, _hoisted_27))
781
+ }, toDisplayString(field.label) + toDisplayString($options.requiredSuffix(field)), 9 /* TEXT, PROPS */, _hoisted_26))
797
782
  : createCommentVNode("v-if", true),
798
783
  createVNode(_component_CnJsonViewer, {
799
- value: $data.formData[field.key] != null ? String($data.formData[field.key]) : '',
800
- language: field.language || 'auto',
784
+ value: $options.jsonStringFor(field),
785
+ language: "json",
801
786
  readOnly: field.readOnly,
802
- "onUpdate:value": value => $options.updateField(field.key, value)
803
- }, null, 8 /* PROPS */, ["value", "language", "readOnly", "onUpdate:value"]),
787
+ errorText: $data.jsonErrors[field.key] || '',
788
+ "onUpdate:value": value => $options.onJsonFieldInput(field, value)
789
+ }, null, 8 /* PROPS */, ["value", "readOnly", "errorText", "onUpdate:value"]),
804
790
  createVNode(_component_CnFieldHelper, {
805
791
  id: $options.helpId(field),
806
792
  text: field.description,
@@ -810,75 +796,82 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
810
796
  error: $options.helperError(field)
811
797
  }, null, 8 /* PROPS */, ["id", "text", "more", "help", "label", "error"])
812
798
  ]))
813
- : (field.widget === 'file')
814
- ? (openBlock(), createElementBlock("div", _hoisted_28, [
815
- createVNode(_component_CnFileField, mergeProps({
816
- modelValue: $data.formData[field.key],
817
- label: $options.fieldLabelText(field),
818
- accept: field.file ? field.file.accept : '',
819
- multiple: !!(field.file && field.file.multiple),
820
- capture: field.file ? field.file.capture : ''
821
- }, { ref_for: true }, $options.fileLimits(field), {
822
- disabled: field.readOnly,
823
- helperText: $data.errors[field.key] || '',
824
- "onUpdate:modelValue": value => $options.updateField(field.key, value)
825
- }), null, 16 /* FULL_PROPS */, ["modelValue", "label", "accept", "multiple", "capture", "disabled", "helperText", "onUpdate:modelValue"]),
799
+ : (field.widget === 'code')
800
+ ? (openBlock(), createElementBlock("div", _hoisted_27, [
801
+ (!$options.showsOuterLabel(field))
802
+ ? (openBlock(), createElementBlock("label", {
803
+ key: 0,
804
+ for: 'cn-form-' + field.key,
805
+ class: "cn-form-dialog__label"
806
+ }, toDisplayString(field.label) + toDisplayString($options.requiredSuffix(field)), 9 /* TEXT, PROPS */, _hoisted_28))
807
+ : createCommentVNode("v-if", true),
808
+ createVNode(_component_CnJsonViewer, {
809
+ value: $data.formData[field.key] != null ? String($data.formData[field.key]) : '',
810
+ language: field.language || 'auto',
811
+ readOnly: field.readOnly,
812
+ "onUpdate:value": value => $options.updateField(field.key, value)
813
+ }, null, 8 /* PROPS */, ["value", "language", "readOnly", "onUpdate:value"]),
826
814
  createVNode(_component_CnFieldHelper, {
815
+ id: $options.helpId(field),
827
816
  text: field.description,
828
817
  more: field.descriptionLong,
829
818
  help: field.help,
830
- label: field.label
831
- }, null, 8 /* PROPS */, ["text", "more", "help", "label"])
819
+ label: field.label,
820
+ error: $options.helperError(field)
821
+ }, null, 8 /* PROPS */, ["id", "text", "more", "help", "label", "error"])
832
822
  ]))
833
- : (field.widget === 'duration')
823
+ : (field.widget === 'file')
834
824
  ? (openBlock(), createElementBlock("div", _hoisted_29, [
835
- createVNode(_component_CnDurationField, {
836
- modelValue: $data.formData[field.key] != null ? String($data.formData[field.key]) : null,
837
- inputLabel: $options.fieldLabelText(field),
825
+ createVNode(_component_CnFileField, mergeProps({
826
+ modelValue: $data.formData[field.key],
827
+ label: $options.fieldLabelText(field),
828
+ accept: field.file ? field.file.accept : '',
829
+ multiple: !!(field.file && field.file.multiple),
830
+ capture: field.file ? field.file.capture : ''
831
+ }, { ref_for: true }, $options.fileLimits(field), {
838
832
  disabled: field.readOnly,
839
- error: !!$data.errors[field.key],
833
+ helperText: $data.errors[field.key] || '',
840
834
  "onUpdate:modelValue": value => $options.updateField(field.key, value)
841
- }, null, 8 /* PROPS */, ["modelValue", "inputLabel", "disabled", "error", "onUpdate:modelValue"]),
835
+ }), null, 16 /* FULL_PROPS */, ["modelValue", "label", "accept", "multiple", "capture", "disabled", "helperText", "onUpdate:modelValue"]),
842
836
  createVNode(_component_CnFieldHelper, {
843
- id: $options.helpId(field),
844
837
  text: field.description,
845
838
  more: field.descriptionLong,
846
839
  help: field.help,
847
- label: field.label,
848
- error: $options.helperError(field)
849
- }, null, 8 /* PROPS */, ["id", "text", "more", "help", "label", "error"])
840
+ label: field.label
841
+ }, null, 8 /* PROPS */, ["text", "more", "help", "label"])
850
842
  ]))
851
- : (field.widget === 'child-records' && field.childRecords)
843
+ : (field.widget === 'duration')
852
844
  ? (openBlock(), createElementBlock("div", _hoisted_30, [
853
- createVNode(_component_CnChildRecordsField, {
854
- modelValue: Array.isArray($data.formData[field.key]) ? $data.formData[field.key] : [],
855
- config: field.childRecords,
856
- register: $props.register,
857
- parentId: $props.item ? ($props.item.id || $props.item.uuid || '') : '',
845
+ createVNode(_component_CnDurationField, {
846
+ modelValue: $data.formData[field.key] != null ? String($data.formData[field.key]) : null,
858
847
  inputLabel: $options.fieldLabelText(field),
859
848
  disabled: field.readOnly,
860
- error: $data.errors[field.key] || '',
861
- "onUpdate:modelValue": value => $options.updateField(field.key, value),
862
- onLoaded: rows => { $data.childOriginals[field.key] = rows; },
863
- onValidity: problems => { $data.childProblems[field.key] = problems; }
864
- }, null, 8 /* PROPS */, ["modelValue", "config", "register", "parentId", "inputLabel", "disabled", "error", "onUpdate:modelValue", "onLoaded", "onValidity"]),
849
+ error: !!$data.errors[field.key],
850
+ "onUpdate:modelValue": value => $options.updateField(field.key, value)
851
+ }, null, 8 /* PROPS */, ["modelValue", "inputLabel", "disabled", "error", "onUpdate:modelValue"]),
865
852
  createVNode(_component_CnFieldHelper, {
853
+ id: $options.helpId(field),
866
854
  text: field.description,
867
855
  more: field.descriptionLong,
868
856
  help: field.help,
869
- label: field.label
870
- }, null, 8 /* PROPS */, ["text", "more", "help", "label"])
857
+ label: field.label,
858
+ error: $options.helperError(field)
859
+ }, null, 8 /* PROPS */, ["id", "text", "more", "help", "label", "error"])
871
860
  ]))
872
- : (field.widget === 'sub-objects' && field.items)
861
+ : (field.widget === 'child-records' && field.childRecords)
873
862
  ? (openBlock(), createElementBlock("div", _hoisted_31, [
874
- createVNode(_component_CnSubObjectsField, {
863
+ createVNode(_component_CnChildRecordsField, {
875
864
  modelValue: Array.isArray($data.formData[field.key]) ? $data.formData[field.key] : [],
876
- items: field.items,
865
+ config: field.childRecords,
866
+ register: $props.register,
867
+ parentId: $props.item ? ($props.item.id || $props.item.uuid || '') : '',
877
868
  inputLabel: $options.fieldLabelText(field),
878
869
  disabled: field.readOnly,
879
870
  error: $data.errors[field.key] || '',
880
- "onUpdate:modelValue": value => $options.updateField(field.key, value)
881
- }, null, 8 /* PROPS */, ["modelValue", "items", "inputLabel", "disabled", "error", "onUpdate:modelValue"]),
871
+ "onUpdate:modelValue": value => $options.updateField(field.key, value),
872
+ onLoaded: rows => { $data.childOriginals[field.key] = rows; },
873
+ onValidity: problems => { $data.childProblems[field.key] = problems; }
874
+ }, null, 8 /* PROPS */, ["modelValue", "config", "register", "parentId", "inputLabel", "disabled", "error", "onUpdate:modelValue", "onLoaded", "onValidity"]),
882
875
  createVNode(_component_CnFieldHelper, {
883
876
  text: field.description,
884
877
  more: field.descriptionLong,
@@ -886,66 +879,36 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
886
879
  label: field.label
887
880
  }, null, 8 /* PROPS */, ["text", "more", "help", "label"])
888
881
  ]))
889
- : (field.widget === 'property-source' && field.propertySource)
882
+ : (field.widget === 'sub-objects' && field.items)
890
883
  ? (openBlock(), createElementBlock("div", _hoisted_32, [
891
- createVNode(_component_CnPropertySourceField, {
892
- provider: field.propertySource.provider,
893
- mode: field.propertySource.mode,
894
- inputId: 'cn-form-' + field.key,
884
+ createVNode(_component_CnSubObjectsField, {
885
+ modelValue: Array.isArray($data.formData[field.key]) ? $data.formData[field.key] : [],
886
+ items: field.items,
895
887
  inputLabel: $options.fieldLabelText(field),
896
- modelValue: $data.formData[field.key] != null ? String($data.formData[field.key]) : '',
897
888
  disabled: field.readOnly,
898
- error: !!$data.errors[field.key],
899
- "onUpdate:modelValue": value => $options.updateField(field.key, value),
900
- onResolved: payload => $options.onPropertySourceResolved(field, payload)
901
- }, null, 8 /* PROPS */, ["provider", "mode", "inputId", "inputLabel", "modelValue", "disabled", "error", "onUpdate:modelValue", "onResolved"]),
889
+ error: $data.errors[field.key] || '',
890
+ "onUpdate:modelValue": value => $options.updateField(field.key, value)
891
+ }, null, 8 /* PROPS */, ["modelValue", "items", "inputLabel", "disabled", "error", "onUpdate:modelValue"]),
902
892
  createVNode(_component_CnFieldHelper, {
903
- id: $options.helpId(field),
904
893
  text: field.description,
905
894
  more: field.descriptionLong,
906
895
  help: field.help,
907
- label: field.label,
908
- error: $options.helperError(field)
909
- }, null, 8 /* PROPS */, ["id", "text", "more", "help", "label", "error"])
896
+ label: field.label
897
+ }, null, 8 /* PROPS */, ["text", "more", "help", "label"])
910
898
  ]))
911
- : (field.widget === 'icon')
899
+ : (field.widget === 'property-source' && field.propertySource)
912
900
  ? (openBlock(), createElementBlock("div", _hoisted_33, [
913
- (!$options.showsOuterLabel(field))
914
- ? (openBlock(), createElementBlock("label", {
915
- key: 0,
916
- for: 'cn-form-' + field.key,
917
- class: "cn-form-dialog__label"
918
- }, toDisplayString(field.label) + toDisplayString($options.requiredSuffix(field)), 9 /* TEXT, PROPS */, _hoisted_34))
919
- : createCommentVNode("v-if", true),
920
- createVNode(_component_CnIconBrowser, {
921
- value: $data.formData[field.key] != null ? String($data.formData[field.key]) : null,
922
- sources: field.iconSources || ['mdi'],
923
- catalogues: field.catalogues || {},
924
- allowCustomSvg: !!field.allowCustomSvg,
925
- clearable: !field.required,
926
- onInput: value => $options.updateField(field.key, value)
927
- }, null, 8 /* PROPS */, ["value", "sources", "catalogues", "allowCustomSvg", "clearable", "onInput"]),
928
- createVNode(_component_CnFieldHelper, {
929
- id: $options.helpId(field),
930
- text: field.description,
931
- more: field.descriptionLong,
932
- help: field.help,
933
- label: field.label,
934
- error: $options.helperError(field)
935
- }, null, 8 /* PROPS */, ["id", "text", "more", "help", "label", "error"])
936
- ]))
937
- : (openBlock(), createElementBlock(Fragment, { key: 18 }, [
938
- createVNode(_component_NcTextField, mergeProps({
939
- id: $options.fieldControlId(field),
940
- label: $options.fieldLabelText(field),
941
- labelOutside: _ctx.isBoardLook
942
- }, { ref_for: true }, $options.fieldAria(field), {
901
+ createVNode(_component_CnPropertySourceField, {
902
+ provider: field.propertySource.provider,
903
+ mode: field.propertySource.mode,
904
+ inputId: 'cn-form-' + field.key,
905
+ inputLabel: $options.fieldLabelText(field),
943
906
  modelValue: $data.formData[field.key] != null ? String($data.formData[field.key]) : '',
944
- error: !!$data.errors[field.key],
945
907
  disabled: field.readOnly,
946
- placeholder: $options.fieldPlaceholder(field),
947
- "onUpdate:modelValue": value => $options.updateField(field.key, value)
948
- }), null, 16 /* FULL_PROPS */, ["id", "label", "labelOutside", "modelValue", "error", "disabled", "placeholder", "onUpdate:modelValue"]),
908
+ error: !!$data.errors[field.key],
909
+ "onUpdate:modelValue": value => $options.updateField(field.key, value),
910
+ onResolved: payload => $options.onPropertySourceResolved(field, payload)
911
+ }, null, 8 /* PROPS */, ["provider", "mode", "inputId", "inputLabel", "modelValue", "disabled", "error", "onUpdate:modelValue", "onResolved"]),
949
912
  createVNode(_component_CnFieldHelper, {
950
913
  id: $options.helpId(field),
951
914
  text: field.description,
@@ -954,15 +917,63 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
954
917
  label: field.label,
955
918
  error: $options.helperError(field)
956
919
  }, null, 8 /* PROPS */, ["id", "text", "more", "help", "label", "error"])
957
- ], 64 /* STABLE_FRAGMENT */)),
958
- ($data.assignedFrom[field.key])
959
- ? (openBlock(), createElementBlock("small", _hoisted_35, toDisplayString(_ctx.t('nextcloud-vue', 'Filled in from {field}', { field: $data.assignedFrom[field.key] })), 1 /* TEXT */))
960
- : createCommentVNode("v-if", true)
961
- ], 64 /* STABLE_FRAGMENT */))
962
- ], 10 /* CLASS, PROPS */, _hoisted_5))
920
+ ]))
921
+ : (field.widget === 'icon')
922
+ ? (openBlock(), createElementBlock("div", _hoisted_34, [
923
+ (!$options.showsOuterLabel(field))
924
+ ? (openBlock(), createElementBlock("label", {
925
+ key: 0,
926
+ for: 'cn-form-' + field.key,
927
+ class: "cn-form-dialog__label"
928
+ }, toDisplayString(field.label) + toDisplayString($options.requiredSuffix(field)), 9 /* TEXT, PROPS */, _hoisted_35))
929
+ : createCommentVNode("v-if", true),
930
+ createVNode(_component_CnIconBrowser, {
931
+ value: $data.formData[field.key] != null ? String($data.formData[field.key]) : null,
932
+ sources: field.iconSources || ['mdi'],
933
+ catalogues: field.catalogues || {},
934
+ allowCustomSvg: !!field.allowCustomSvg,
935
+ clearable: !field.required,
936
+ onInput: value => $options.updateField(field.key, value)
937
+ }, null, 8 /* PROPS */, ["value", "sources", "catalogues", "allowCustomSvg", "clearable", "onInput"]),
938
+ createVNode(_component_CnFieldHelper, {
939
+ id: $options.helpId(field),
940
+ text: field.description,
941
+ more: field.descriptionLong,
942
+ help: field.help,
943
+ label: field.label,
944
+ error: $options.helperError(field)
945
+ }, null, 8 /* PROPS */, ["id", "text", "more", "help", "label", "error"])
946
+ ]))
947
+ : (openBlock(), createElementBlock(Fragment, { key: 18 }, [
948
+ createVNode(_component_NcTextField, mergeProps({
949
+ id: $options.fieldControlId(field),
950
+ label: $options.fieldLabelText(field),
951
+ labelOutside: _ctx.isBoardLook
952
+ }, { ref_for: true }, $options.fieldAria(field), {
953
+ modelValue: $data.formData[field.key] != null ? String($data.formData[field.key]) : '',
954
+ error: !!$data.errors[field.key],
955
+ disabled: field.readOnly,
956
+ placeholder: $options.fieldPlaceholder(field),
957
+ "onUpdate:modelValue": value => $options.updateField(field.key, value)
958
+ }), null, 16 /* FULL_PROPS */, ["id", "label", "labelOutside", "modelValue", "error", "disabled", "placeholder", "onUpdate:modelValue"]),
959
+ createVNode(_component_CnFieldHelper, {
960
+ id: $options.helpId(field),
961
+ text: field.description,
962
+ more: field.descriptionLong,
963
+ help: field.help,
964
+ label: field.label,
965
+ error: $options.helperError(field)
966
+ }, null, 8 /* PROPS */, ["id", "text", "more", "help", "label", "error"])
967
+ ], 64 /* STABLE_FRAGMENT */)),
968
+ ($data.assignedFrom[field.key])
969
+ ? (openBlock(), createElementBlock("small", _hoisted_36, toDisplayString(_ctx.t('nextcloud-vue', 'Filled in from {field}', { field: $data.assignedFrom[field.key] })), 1 /* TEXT */))
970
+ : createCommentVNode("v-if", true)
971
+ ], 64 /* STABLE_FRAGMENT */))
972
+ ], 10 /* CLASS, PROPS */, _hoisted_6)
973
+ ], 64 /* STABLE_FRAGMENT */))
963
974
  }), 128 /* KEYED_FRAGMENT */)),
964
975
  ($data.dynamicLoading)
965
- ? (openBlock(), createElementBlock("div", _hoisted_36, [
976
+ ? (openBlock(), createElementBlock("div", _hoisted_37, [
966
977
  createVNode(_component_NcLoadingIcon, { size: 20 }),
967
978
  createElementVNode("span", null, toDisplayString($props.dynamicLoadingLabel), 1 /* TEXT */)
968
979
  ]))