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