jsonforms-nuxt-ui-renderers 0.2.0 → 0.2.2
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.
- package/README.md +36 -4
- package/dist/index.cjs +296 -248
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +22 -1
- package/dist/index.d.ts +22 -1
- package/dist/index.js +169 -123
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -26,14 +26,49 @@ import {
|
|
|
26
26
|
getFirstPrimitiveProp
|
|
27
27
|
} from "@jsonforms/core";
|
|
28
28
|
import { DispatchRenderer, rendererProps, useJsonFormsArrayControl } from "@jsonforms/vue";
|
|
29
|
-
import { computed as computed2, defineComponent, h, resolveComponent } from "vue";
|
|
29
|
+
import { computed as computed2, defineComponent, h as h2, resolveComponent } from "vue";
|
|
30
30
|
|
|
31
31
|
// src/renderers/util.ts
|
|
32
|
+
import { h } from "vue";
|
|
32
33
|
import { computed } from "vue";
|
|
34
|
+
function getDocsPathFromSchema(schema) {
|
|
35
|
+
if (!schema || typeof schema !== "object" || Array.isArray(schema))
|
|
36
|
+
return null;
|
|
37
|
+
const s = schema;
|
|
38
|
+
const path = s["x-docs-path"];
|
|
39
|
+
if (typeof path === "string" && path.startsWith("/")) return path;
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
function renderDocsHintSlot(schema, label, docsUrl, resolveComponent10) {
|
|
43
|
+
const path = getDocsPathFromSchema(schema);
|
|
44
|
+
if (!path || !docsUrl) return void 0;
|
|
45
|
+
const ULink = resolveComponent10("ULink");
|
|
46
|
+
const UIcon = resolveComponent10("UIcon");
|
|
47
|
+
if (!ULink || !UIcon) return void 0;
|
|
48
|
+
const href = docsUrl(path);
|
|
49
|
+
return () => h(
|
|
50
|
+
ULink,
|
|
51
|
+
{
|
|
52
|
+
href,
|
|
53
|
+
target: "_blank",
|
|
54
|
+
rel: "noopener noreferrer",
|
|
55
|
+
class: "inline-flex items-center text-muted hover:text-primary",
|
|
56
|
+
"aria-label": `${label} docs`,
|
|
57
|
+
title: `${label} docs`
|
|
58
|
+
},
|
|
59
|
+
() => h(UIcon, { name: "i-heroicons-information-circle" })
|
|
60
|
+
);
|
|
61
|
+
}
|
|
33
62
|
function trimmedOrUndefined(input) {
|
|
34
63
|
const v = input?.trim();
|
|
35
64
|
return v ? v : void 0;
|
|
36
65
|
}
|
|
66
|
+
function controlDescription(control) {
|
|
67
|
+
const d = control.description?.trim();
|
|
68
|
+
if (d) return d;
|
|
69
|
+
const sd = control.schema?.description;
|
|
70
|
+
return typeof sd === "string" && sd.trim() ? sd.trim() : void 0;
|
|
71
|
+
}
|
|
37
72
|
|
|
38
73
|
// src/renderers/complex/NuxtUiArrayListRenderer.ts
|
|
39
74
|
function createNuxtUiArrayListRenderer(theme) {
|
|
@@ -106,10 +141,10 @@ function createNuxtUiArrayListRenderer(theme) {
|
|
|
106
141
|
if (!control.value.visible) return null;
|
|
107
142
|
const UFormField = resolveComponent("UFormField");
|
|
108
143
|
const UButton = resolveComponent("UButton");
|
|
109
|
-
return
|
|
144
|
+
return h2(
|
|
110
145
|
"div",
|
|
111
146
|
{},
|
|
112
|
-
|
|
147
|
+
h2(
|
|
113
148
|
UFormField,
|
|
114
149
|
{
|
|
115
150
|
label: control.value.label,
|
|
@@ -118,14 +153,14 @@ function createNuxtUiArrayListRenderer(theme) {
|
|
|
118
153
|
error: errorMessage.value
|
|
119
154
|
},
|
|
120
155
|
{
|
|
121
|
-
default: () =>
|
|
122
|
-
|
|
123
|
-
|
|
156
|
+
default: () => h2("div", { class: theme.layoutVertical }, [
|
|
157
|
+
h2("div", { class: theme.flexBetween }, [
|
|
158
|
+
h2(
|
|
124
159
|
"div",
|
|
125
160
|
{ class: theme.textMutedXs },
|
|
126
161
|
`${items.value.length} items`
|
|
127
162
|
),
|
|
128
|
-
|
|
163
|
+
h2(
|
|
129
164
|
UButton,
|
|
130
165
|
{
|
|
131
166
|
type: "button",
|
|
@@ -138,26 +173,26 @@ function createNuxtUiArrayListRenderer(theme) {
|
|
|
138
173
|
{ default: () => "Add" }
|
|
139
174
|
)
|
|
140
175
|
]),
|
|
141
|
-
items.value.length === 0 ?
|
|
176
|
+
items.value.length === 0 ? h2("div", { class: theme.textMuted }, "No items.") : null,
|
|
142
177
|
...items.value.map(
|
|
143
|
-
(_item, index) =>
|
|
178
|
+
(_item, index) => h2(
|
|
144
179
|
"div",
|
|
145
180
|
{
|
|
146
181
|
key: `${control.value.path}-${index}`,
|
|
147
182
|
class: theme.panel
|
|
148
183
|
},
|
|
149
184
|
[
|
|
150
|
-
|
|
185
|
+
h2(
|
|
151
186
|
"div",
|
|
152
187
|
{ class: theme.arrayItemToolbar },
|
|
153
188
|
[
|
|
154
|
-
|
|
155
|
-
|
|
189
|
+
h2("div", { class: "jf-min-w-0" }, [
|
|
190
|
+
h2(
|
|
156
191
|
"div",
|
|
157
192
|
{ class: theme.textItemTitle },
|
|
158
193
|
[
|
|
159
194
|
`Item ${index + 1}`,
|
|
160
|
-
childLabelForIndex(index) ?
|
|
195
|
+
childLabelForIndex(index) ? h2(
|
|
161
196
|
"span",
|
|
162
197
|
{ class: theme.textItemSuffix },
|
|
163
198
|
` \u2014 ${childLabelForIndex(index)}`
|
|
@@ -165,8 +200,8 @@ function createNuxtUiArrayListRenderer(theme) {
|
|
|
165
200
|
]
|
|
166
201
|
)
|
|
167
202
|
]),
|
|
168
|
-
|
|
169
|
-
|
|
203
|
+
h2("div", { class: theme.flexActions }, [
|
|
204
|
+
h2(
|
|
170
205
|
UButton,
|
|
171
206
|
{
|
|
172
207
|
type: "button",
|
|
@@ -178,7 +213,7 @@ function createNuxtUiArrayListRenderer(theme) {
|
|
|
178
213
|
},
|
|
179
214
|
{ default: () => "Up" }
|
|
180
215
|
),
|
|
181
|
-
|
|
216
|
+
h2(
|
|
182
217
|
UButton,
|
|
183
218
|
{
|
|
184
219
|
type: "button",
|
|
@@ -190,7 +225,7 @@ function createNuxtUiArrayListRenderer(theme) {
|
|
|
190
225
|
},
|
|
191
226
|
{ default: () => "Down" }
|
|
192
227
|
),
|
|
193
|
-
|
|
228
|
+
h2(
|
|
194
229
|
UButton,
|
|
195
230
|
{
|
|
196
231
|
type: "button",
|
|
@@ -207,7 +242,7 @@ function createNuxtUiArrayListRenderer(theme) {
|
|
|
207
242
|
])
|
|
208
243
|
]
|
|
209
244
|
),
|
|
210
|
-
|
|
245
|
+
h2(DispatchRenderer, {
|
|
211
246
|
schema: control.value.schema,
|
|
212
247
|
uischema: childUiSchema.value,
|
|
213
248
|
path: composePaths(control.value.path, `${index}`),
|
|
@@ -234,7 +269,7 @@ import {
|
|
|
234
269
|
rendererProps as rendererProps2,
|
|
235
270
|
useJsonFormsControlWithDetail
|
|
236
271
|
} from "@jsonforms/vue";
|
|
237
|
-
import { computed as computed3, defineComponent as defineComponent2, h as
|
|
272
|
+
import { computed as computed3, defineComponent as defineComponent2, h as h3 } from "vue";
|
|
238
273
|
var NuxtUiObjectRenderer = defineComponent2({
|
|
239
274
|
name: "NuxtUiObjectRenderer",
|
|
240
275
|
components: { DispatchRenderer: DispatchRenderer2 },
|
|
@@ -271,7 +306,7 @@ var NuxtUiObjectRenderer = defineComponent2({
|
|
|
271
306
|
});
|
|
272
307
|
return () => {
|
|
273
308
|
if (!control.value.visible) return null;
|
|
274
|
-
return
|
|
309
|
+
return h3(DispatchRenderer2, {
|
|
275
310
|
visible: control.value.visible,
|
|
276
311
|
enabled: control.value.enabled,
|
|
277
312
|
schema: control.value.schema,
|
|
@@ -286,7 +321,7 @@ var NuxtUiObjectRenderer = defineComponent2({
|
|
|
286
321
|
|
|
287
322
|
// src/renderers/controls/NuxtUiBooleanControl.ts
|
|
288
323
|
import { rendererProps as rendererProps3, useJsonFormsControl } from "@jsonforms/vue";
|
|
289
|
-
import { computed as computed4, defineComponent as defineComponent3, h as
|
|
324
|
+
import { computed as computed4, defineComponent as defineComponent3, h as h4, resolveComponent as resolveComponent2 } from "vue";
|
|
290
325
|
function createNuxtUiBooleanControl(theme) {
|
|
291
326
|
return defineComponent3({
|
|
292
327
|
name: "NuxtUiBooleanControl",
|
|
@@ -304,22 +339,22 @@ function createNuxtUiBooleanControl(theme) {
|
|
|
304
339
|
if (!control.value.visible) return null;
|
|
305
340
|
const UFormField = resolveComponent2("UFormField");
|
|
306
341
|
const USwitch = resolveComponent2("USwitch");
|
|
307
|
-
return
|
|
342
|
+
return h4(
|
|
308
343
|
"div",
|
|
309
344
|
{},
|
|
310
|
-
|
|
345
|
+
h4(
|
|
311
346
|
UFormField,
|
|
312
347
|
{
|
|
313
348
|
label: control.value.label,
|
|
314
|
-
description: control.value
|
|
349
|
+
description: controlDescription(control.value),
|
|
315
350
|
required: control.value.required,
|
|
316
351
|
error: errorMessage.value
|
|
317
352
|
},
|
|
318
353
|
{
|
|
319
|
-
default: () =>
|
|
354
|
+
default: () => h4(
|
|
320
355
|
"div",
|
|
321
356
|
{ class: theme.flexBetween },
|
|
322
|
-
|
|
357
|
+
h4(USwitch, {
|
|
323
358
|
modelValue: modelValue.value,
|
|
324
359
|
disabled: !control.value.enabled,
|
|
325
360
|
"aria-invalid": Boolean(errorMessage.value),
|
|
@@ -338,7 +373,7 @@ function createNuxtUiBooleanControl(theme) {
|
|
|
338
373
|
|
|
339
374
|
// src/renderers/controls/NuxtUiEnumControl.ts
|
|
340
375
|
import { rendererProps as rendererProps4, useJsonFormsControl as useJsonFormsControl2 } from "@jsonforms/vue";
|
|
341
|
-
import { computed as computed5, defineComponent as defineComponent4, h as
|
|
376
|
+
import { computed as computed5, defineComponent as defineComponent4, h as h5, resolveComponent as resolveComponent3 } from "vue";
|
|
342
377
|
function schemaEnumOptions(schema) {
|
|
343
378
|
if (!schema) return [];
|
|
344
379
|
if (Array.isArray(schema.enum)) {
|
|
@@ -375,19 +410,19 @@ var NuxtUiEnumControl = defineComponent4({
|
|
|
375
410
|
if (!control.value.visible) return null;
|
|
376
411
|
const UFormField = resolveComponent3("UFormField");
|
|
377
412
|
const USelectMenu = resolveComponent3("USelectMenu");
|
|
378
|
-
return
|
|
413
|
+
return h5(
|
|
379
414
|
"div",
|
|
380
415
|
{},
|
|
381
|
-
|
|
416
|
+
h5(
|
|
382
417
|
UFormField,
|
|
383
418
|
{
|
|
384
419
|
label: control.value.label,
|
|
385
|
-
description: control.value
|
|
420
|
+
description: controlDescription(control.value),
|
|
386
421
|
required: control.value.required,
|
|
387
422
|
error: errorMessage.value
|
|
388
423
|
},
|
|
389
424
|
{
|
|
390
|
-
default: () =>
|
|
425
|
+
default: () => h5(USelectMenu, {
|
|
391
426
|
modelValue: selectedValue.value,
|
|
392
427
|
items: options.value,
|
|
393
428
|
valueKey: "value",
|
|
@@ -409,7 +444,7 @@ var NuxtUiEnumControl = defineComponent4({
|
|
|
409
444
|
|
|
410
445
|
// src/renderers/controls/NuxtUiIntegerControl.ts
|
|
411
446
|
import { rendererProps as rendererProps5, useJsonFormsControl as useJsonFormsControl3 } from "@jsonforms/vue";
|
|
412
|
-
import { computed as computed6, defineComponent as defineComponent5, h as
|
|
447
|
+
import { computed as computed6, defineComponent as defineComponent5, h as h6, resolveComponent as resolveComponent4 } from "vue";
|
|
413
448
|
var NuxtUiIntegerControl = defineComponent5({
|
|
414
449
|
name: "NuxtUiIntegerControl",
|
|
415
450
|
props: rendererProps5(),
|
|
@@ -435,19 +470,19 @@ var NuxtUiIntegerControl = defineComponent5({
|
|
|
435
470
|
if (!control.value.visible) return null;
|
|
436
471
|
const UFormField = resolveComponent4("UFormField");
|
|
437
472
|
const UInput = resolveComponent4("UInput");
|
|
438
|
-
return
|
|
473
|
+
return h6(
|
|
439
474
|
"div",
|
|
440
475
|
{},
|
|
441
|
-
|
|
476
|
+
h6(
|
|
442
477
|
UFormField,
|
|
443
478
|
{
|
|
444
479
|
label: control.value.label,
|
|
445
|
-
description: control.value
|
|
480
|
+
description: controlDescription(control.value),
|
|
446
481
|
required: control.value.required,
|
|
447
482
|
error: errorMessage.value
|
|
448
483
|
},
|
|
449
484
|
{
|
|
450
|
-
default: () =>
|
|
485
|
+
default: () => h6(UInput, {
|
|
451
486
|
type: "number",
|
|
452
487
|
inputmode: "numeric",
|
|
453
488
|
step: "1",
|
|
@@ -466,7 +501,7 @@ var NuxtUiIntegerControl = defineComponent5({
|
|
|
466
501
|
|
|
467
502
|
// src/renderers/controls/NuxtUiMultiEnumControl.ts
|
|
468
503
|
import { rendererProps as rendererProps6, useJsonFormsControl as useJsonFormsControl4 } from "@jsonforms/vue";
|
|
469
|
-
import { computed as computed7, defineComponent as defineComponent6, h as
|
|
504
|
+
import { computed as computed7, defineComponent as defineComponent6, h as h7, resolveComponent as resolveComponent5 } from "vue";
|
|
470
505
|
function schemaEnumOptions2(schema) {
|
|
471
506
|
if (!schema) return [];
|
|
472
507
|
if (Array.isArray(schema.enum)) {
|
|
@@ -511,19 +546,19 @@ var NuxtUiMultiEnumControl = defineComponent6({
|
|
|
511
546
|
if (!control.value.visible) return null;
|
|
512
547
|
const UFormField = resolveComponent5("UFormField");
|
|
513
548
|
const USelectMenu = resolveComponent5("USelectMenu");
|
|
514
|
-
return
|
|
549
|
+
return h7(
|
|
515
550
|
"div",
|
|
516
551
|
{},
|
|
517
|
-
|
|
552
|
+
h7(
|
|
518
553
|
UFormField,
|
|
519
554
|
{
|
|
520
555
|
label: control.value.label,
|
|
521
|
-
description: control.value
|
|
556
|
+
description: controlDescription(control.value),
|
|
522
557
|
required: control.value.required,
|
|
523
558
|
error: errorMessage.value
|
|
524
559
|
},
|
|
525
560
|
{
|
|
526
|
-
default: () =>
|
|
561
|
+
default: () => h7(USelectMenu, {
|
|
527
562
|
multiple: true,
|
|
528
563
|
modelValue: selectedValues.value,
|
|
529
564
|
items: options.value,
|
|
@@ -546,7 +581,7 @@ var NuxtUiMultiEnumControl = defineComponent6({
|
|
|
546
581
|
|
|
547
582
|
// src/renderers/controls/NuxtUiNumberControl.ts
|
|
548
583
|
import { rendererProps as rendererProps7, useJsonFormsControl as useJsonFormsControl5 } from "@jsonforms/vue";
|
|
549
|
-
import { computed as computed8, defineComponent as defineComponent7, h as
|
|
584
|
+
import { computed as computed8, defineComponent as defineComponent7, h as h8, resolveComponent as resolveComponent6 } from "vue";
|
|
550
585
|
var NuxtUiNumberControl = defineComponent7({
|
|
551
586
|
name: "NuxtUiNumberControl",
|
|
552
587
|
props: rendererProps7(),
|
|
@@ -572,19 +607,19 @@ var NuxtUiNumberControl = defineComponent7({
|
|
|
572
607
|
if (!control.value.visible) return null;
|
|
573
608
|
const UFormField = resolveComponent6("UFormField");
|
|
574
609
|
const UInput = resolveComponent6("UInput");
|
|
575
|
-
return
|
|
610
|
+
return h8(
|
|
576
611
|
"div",
|
|
577
612
|
{},
|
|
578
|
-
|
|
613
|
+
h8(
|
|
579
614
|
UFormField,
|
|
580
615
|
{
|
|
581
616
|
label: control.value.label,
|
|
582
|
-
description: control.value
|
|
617
|
+
description: controlDescription(control.value),
|
|
583
618
|
required: control.value.required,
|
|
584
619
|
error: errorMessage.value
|
|
585
620
|
},
|
|
586
621
|
{
|
|
587
|
-
default: () =>
|
|
622
|
+
default: () => h8(UInput, {
|
|
588
623
|
type: "number",
|
|
589
624
|
inputmode: "decimal",
|
|
590
625
|
modelValue: modelValue.value,
|
|
@@ -602,7 +637,7 @@ var NuxtUiNumberControl = defineComponent7({
|
|
|
602
637
|
|
|
603
638
|
// src/renderers/controls/NuxtUiPasswordControl.ts
|
|
604
639
|
import { rendererProps as rendererProps8, useJsonFormsControl as useJsonFormsControl6 } from "@jsonforms/vue";
|
|
605
|
-
import { computed as computed9, defineComponent as defineComponent8, h as
|
|
640
|
+
import { computed as computed9, defineComponent as defineComponent8, h as h9, ref, resolveComponent as resolveComponent7 } from "vue";
|
|
606
641
|
var NuxtUiPasswordControl = defineComponent8({
|
|
607
642
|
name: "NuxtUiPasswordControl",
|
|
608
643
|
props: rendererProps8(),
|
|
@@ -618,19 +653,19 @@ var NuxtUiPasswordControl = defineComponent8({
|
|
|
618
653
|
const UFormField = resolveComponent7("UFormField");
|
|
619
654
|
const UInput = resolveComponent7("UInput");
|
|
620
655
|
const UButton = resolveComponent7("UButton");
|
|
621
|
-
return
|
|
656
|
+
return h9(
|
|
622
657
|
"div",
|
|
623
658
|
{},
|
|
624
|
-
|
|
659
|
+
h9(
|
|
625
660
|
UFormField,
|
|
626
661
|
{
|
|
627
662
|
label: control.value.label,
|
|
628
|
-
description: control.value
|
|
663
|
+
description: controlDescription(control.value),
|
|
629
664
|
required: control.value.required,
|
|
630
665
|
error: errorMessage.value
|
|
631
666
|
},
|
|
632
667
|
{
|
|
633
|
-
default: () =>
|
|
668
|
+
default: () => h9(
|
|
634
669
|
UInput,
|
|
635
670
|
{
|
|
636
671
|
modelValue: control.value.data ?? "",
|
|
@@ -643,7 +678,7 @@ var NuxtUiPasswordControl = defineComponent8({
|
|
|
643
678
|
"onUpdate:modelValue": (v) => handleChange(control.value.path, v)
|
|
644
679
|
},
|
|
645
680
|
{
|
|
646
|
-
trailing: () =>
|
|
681
|
+
trailing: () => h9(UButton, {
|
|
647
682
|
type: "button",
|
|
648
683
|
color: "neutral",
|
|
649
684
|
variant: "ghost",
|
|
@@ -670,51 +705,59 @@ import { rendererProps as rendererProps9, useJsonFormsControl as useJsonFormsCon
|
|
|
670
705
|
import {
|
|
671
706
|
computed as computed10,
|
|
672
707
|
defineComponent as defineComponent9,
|
|
673
|
-
h as
|
|
708
|
+
h as h10,
|
|
674
709
|
resolveComponent as resolveComponent8
|
|
675
710
|
} from "vue";
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
"
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
711
|
+
function createNuxtUiStringControl(docsUrl) {
|
|
712
|
+
return defineComponent9({
|
|
713
|
+
name: "NuxtUiStringControl",
|
|
714
|
+
props: rendererProps9(),
|
|
715
|
+
setup(props) {
|
|
716
|
+
const { control, handleChange } = useJsonFormsControl7(
|
|
717
|
+
props
|
|
718
|
+
);
|
|
719
|
+
const errorMessage = computed10(
|
|
720
|
+
() => trimmedOrUndefined(control.value.errors)
|
|
721
|
+
);
|
|
722
|
+
return () => {
|
|
723
|
+
if (!control.value.visible) return null;
|
|
724
|
+
const UFormField = resolveComponent8("UFormField");
|
|
725
|
+
const UInput = resolveComponent8("UInput");
|
|
726
|
+
const slots = {
|
|
727
|
+
default: () => h10(UInput, {
|
|
728
|
+
modelValue: control.value.data ?? "",
|
|
729
|
+
class: "w-full",
|
|
730
|
+
disabled: !control.value.enabled,
|
|
731
|
+
color: errorMessage.value ? "error" : void 0,
|
|
732
|
+
"aria-invalid": Boolean(errorMessage.value),
|
|
733
|
+
"onUpdate:modelValue": (v) => handleChange(control.value.path, v)
|
|
734
|
+
})
|
|
735
|
+
};
|
|
736
|
+
const hintSlot = renderDocsHintSlot(
|
|
737
|
+
control.value.schema,
|
|
738
|
+
control.value.label ?? "",
|
|
739
|
+
docsUrl,
|
|
740
|
+
resolveComponent8
|
|
741
|
+
);
|
|
742
|
+
if (hintSlot) slots.hint = hintSlot;
|
|
743
|
+
return h10(
|
|
744
|
+
"div",
|
|
745
|
+
{},
|
|
746
|
+
h10(UFormField, {
|
|
694
747
|
label: control.value.label,
|
|
695
|
-
description: control.value
|
|
748
|
+
description: controlDescription(control.value),
|
|
696
749
|
required: control.value.required,
|
|
697
750
|
error: errorMessage.value
|
|
698
|
-
},
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
color: errorMessage.value ? "error" : void 0,
|
|
705
|
-
"aria-invalid": Boolean(errorMessage.value),
|
|
706
|
-
"onUpdate:modelValue": (v) => handleChange(control.value.path, v)
|
|
707
|
-
})
|
|
708
|
-
}
|
|
709
|
-
)
|
|
710
|
-
);
|
|
711
|
-
};
|
|
712
|
-
}
|
|
713
|
-
});
|
|
751
|
+
}, slots)
|
|
752
|
+
);
|
|
753
|
+
};
|
|
754
|
+
}
|
|
755
|
+
});
|
|
756
|
+
}
|
|
714
757
|
|
|
715
758
|
// src/renderers/controls/NuxtUiTextareaControl.ts
|
|
716
759
|
import { rendererProps as rendererProps10, useJsonFormsControl as useJsonFormsControl8 } from "@jsonforms/vue";
|
|
717
|
-
import { computed as computed11, defineComponent as defineComponent10, h as
|
|
760
|
+
import { computed as computed11, defineComponent as defineComponent10, h as h11, resolveComponent as resolveComponent9 } from "vue";
|
|
718
761
|
var NuxtUiTextareaControl = defineComponent10({
|
|
719
762
|
name: "NuxtUiTextareaControl",
|
|
720
763
|
props: rendererProps10(),
|
|
@@ -727,19 +770,19 @@ var NuxtUiTextareaControl = defineComponent10({
|
|
|
727
770
|
if (!control.value.visible) return null;
|
|
728
771
|
const UFormField = resolveComponent9("UFormField");
|
|
729
772
|
const UTextarea = resolveComponent9("UTextarea");
|
|
730
|
-
return
|
|
773
|
+
return h11(
|
|
731
774
|
"div",
|
|
732
775
|
{},
|
|
733
|
-
|
|
776
|
+
h11(
|
|
734
777
|
UFormField,
|
|
735
778
|
{
|
|
736
779
|
label: control.value.label,
|
|
737
|
-
description: control.value
|
|
780
|
+
description: controlDescription(control.value),
|
|
738
781
|
required: control.value.required,
|
|
739
782
|
error: errorMessage.value
|
|
740
783
|
},
|
|
741
784
|
{
|
|
742
|
-
default: () =>
|
|
785
|
+
default: () => h11(UTextarea, {
|
|
743
786
|
modelValue: control.value.data ?? "",
|
|
744
787
|
class: "w-full",
|
|
745
788
|
disabled: !control.value.enabled,
|
|
@@ -757,7 +800,7 @@ var NuxtUiTextareaControl = defineComponent10({
|
|
|
757
800
|
|
|
758
801
|
// src/renderers/layouts/NuxtUiCategorizationRenderer.ts
|
|
759
802
|
import { DispatchRenderer as DispatchRenderer3, rendererProps as rendererProps11, useJsonFormsCategorization } from "@jsonforms/vue";
|
|
760
|
-
import { defineComponent as defineComponent11, h as
|
|
803
|
+
import { defineComponent as defineComponent11, h as h12 } from "vue";
|
|
761
804
|
function createNuxtUiCategorizationRenderer(theme) {
|
|
762
805
|
return defineComponent11({
|
|
763
806
|
name: "NuxtUiCategorizationRenderer",
|
|
@@ -769,28 +812,28 @@ function createNuxtUiCategorizationRenderer(theme) {
|
|
|
769
812
|
);
|
|
770
813
|
return () => {
|
|
771
814
|
if (!layout.value.visible) return null;
|
|
772
|
-
return
|
|
815
|
+
return h12(
|
|
773
816
|
"div",
|
|
774
817
|
{ class: theme.layoutVerticalWide },
|
|
775
818
|
categories.map((categoryRef, catIndex) => {
|
|
776
819
|
const category = categoryRef.value;
|
|
777
820
|
const elements = category.uischema.elements ?? [];
|
|
778
|
-
return
|
|
821
|
+
return h12(
|
|
779
822
|
"div",
|
|
780
823
|
{
|
|
781
824
|
key: `${layout.value.path}-cat-${catIndex}`,
|
|
782
825
|
class: theme.layoutVertical
|
|
783
826
|
},
|
|
784
827
|
[
|
|
785
|
-
category.label ?
|
|
786
|
-
|
|
828
|
+
category.label ? h12("div", { class: theme.labelSection }, category.label) : null,
|
|
829
|
+
h12(
|
|
787
830
|
"div",
|
|
788
831
|
{ class: theme.layoutVertical },
|
|
789
832
|
elements.map(
|
|
790
|
-
(element, index) =>
|
|
833
|
+
(element, index) => h12(
|
|
791
834
|
"div",
|
|
792
835
|
{ key: `${category.path}-${index}` },
|
|
793
|
-
|
|
836
|
+
h12(DispatchRenderer3, {
|
|
794
837
|
schema: category.schema,
|
|
795
838
|
uischema: element,
|
|
796
839
|
path: category.path,
|
|
@@ -812,7 +855,7 @@ function createNuxtUiCategorizationRenderer(theme) {
|
|
|
812
855
|
|
|
813
856
|
// src/renderers/layouts/NuxtUiCategoryRenderer.ts
|
|
814
857
|
import { DispatchRenderer as DispatchRenderer4, rendererProps as rendererProps12, useJsonFormsLayout } from "@jsonforms/vue";
|
|
815
|
-
import { defineComponent as defineComponent12, h as
|
|
858
|
+
import { defineComponent as defineComponent12, h as h13 } from "vue";
|
|
816
859
|
function createNuxtUiCategoryRenderer(theme) {
|
|
817
860
|
return defineComponent12({
|
|
818
861
|
name: "NuxtUiCategoryRenderer",
|
|
@@ -825,16 +868,16 @@ function createNuxtUiCategoryRenderer(theme) {
|
|
|
825
868
|
return () => {
|
|
826
869
|
if (!layout.value.visible) return null;
|
|
827
870
|
const elements = layout.value.uischema.elements ?? [];
|
|
828
|
-
return
|
|
829
|
-
layout.value.label ?
|
|
830
|
-
|
|
871
|
+
return h13("div", { class: theme.layoutVertical }, [
|
|
872
|
+
layout.value.label ? h13("div", { class: theme.labelSection }, layout.value.label) : null,
|
|
873
|
+
h13(
|
|
831
874
|
"div",
|
|
832
875
|
{ class: theme.layoutVertical },
|
|
833
876
|
elements.map(
|
|
834
|
-
(element, index) =>
|
|
877
|
+
(element, index) => h13(
|
|
835
878
|
"div",
|
|
836
879
|
{ key: `${layout.value.path}-${index}` },
|
|
837
|
-
|
|
880
|
+
h13(DispatchRenderer4, {
|
|
838
881
|
schema: layout.value.schema,
|
|
839
882
|
uischema: element,
|
|
840
883
|
path: layout.value.path,
|
|
@@ -853,7 +896,7 @@ function createNuxtUiCategoryRenderer(theme) {
|
|
|
853
896
|
|
|
854
897
|
// src/renderers/layouts/NuxtUiGroupRenderer.ts
|
|
855
898
|
import { DispatchRenderer as DispatchRenderer5, rendererProps as rendererProps13, useJsonFormsLayout as useJsonFormsLayout2 } from "@jsonforms/vue";
|
|
856
|
-
import { defineComponent as defineComponent13, h as
|
|
899
|
+
import { defineComponent as defineComponent13, h as h14 } from "vue";
|
|
857
900
|
function createNuxtUiGroupRenderer(theme) {
|
|
858
901
|
return defineComponent13({
|
|
859
902
|
name: "NuxtUiGroupRenderer",
|
|
@@ -868,19 +911,19 @@ function createNuxtUiGroupRenderer(theme) {
|
|
|
868
911
|
const elements = layout.value.uischema.elements ?? [];
|
|
869
912
|
const isNested = layout.value.path?.includes(".") ?? false;
|
|
870
913
|
const containerClass = isNested ? theme.groupNested : theme.panel;
|
|
871
|
-
return
|
|
914
|
+
return h14(
|
|
872
915
|
"div",
|
|
873
916
|
{ class: containerClass },
|
|
874
917
|
[
|
|
875
|
-
layout.value.label ?
|
|
876
|
-
|
|
918
|
+
layout.value.label ? h14("div", { class: theme.labelSectionSpaced }, layout.value.label) : null,
|
|
919
|
+
h14(
|
|
877
920
|
"div",
|
|
878
921
|
{ class: theme.layoutVertical },
|
|
879
922
|
elements.map(
|
|
880
|
-
(element, index) =>
|
|
923
|
+
(element, index) => h14(
|
|
881
924
|
"div",
|
|
882
925
|
{ key: `${layout.value.path}-${index}` },
|
|
883
|
-
|
|
926
|
+
h14(DispatchRenderer5, {
|
|
884
927
|
schema: layout.value.schema,
|
|
885
928
|
uischema: element,
|
|
886
929
|
path: layout.value.path,
|
|
@@ -900,7 +943,7 @@ function createNuxtUiGroupRenderer(theme) {
|
|
|
900
943
|
|
|
901
944
|
// src/renderers/layouts/NuxtUiHorizontalLayoutRenderer.ts
|
|
902
945
|
import { DispatchRenderer as DispatchRenderer6, rendererProps as rendererProps14, useJsonFormsLayout as useJsonFormsLayout3 } from "@jsonforms/vue";
|
|
903
|
-
import { defineComponent as defineComponent14, h as
|
|
946
|
+
import { defineComponent as defineComponent14, h as h15 } from "vue";
|
|
904
947
|
function createNuxtUiHorizontalLayoutRenderer(theme) {
|
|
905
948
|
return defineComponent14({
|
|
906
949
|
name: "NuxtUiHorizontalLayoutRenderer",
|
|
@@ -913,17 +956,17 @@ function createNuxtUiHorizontalLayoutRenderer(theme) {
|
|
|
913
956
|
return () => {
|
|
914
957
|
if (!layout.value.visible) return null;
|
|
915
958
|
const elements = layout.value.uischema.elements ?? [];
|
|
916
|
-
return
|
|
959
|
+
return h15(
|
|
917
960
|
"div",
|
|
918
961
|
{ class: theme.layoutHorizontal },
|
|
919
962
|
elements.map(
|
|
920
|
-
(element, index) =>
|
|
963
|
+
(element, index) => h15(
|
|
921
964
|
"div",
|
|
922
965
|
{
|
|
923
966
|
key: `${layout.value.path}-${index}`,
|
|
924
967
|
class: theme.layoutHorizontalItem
|
|
925
968
|
},
|
|
926
|
-
|
|
969
|
+
h15(DispatchRenderer6, {
|
|
927
970
|
schema: layout.value.schema,
|
|
928
971
|
uischema: element,
|
|
929
972
|
path: layout.value.path,
|
|
@@ -941,7 +984,7 @@ function createNuxtUiHorizontalLayoutRenderer(theme) {
|
|
|
941
984
|
|
|
942
985
|
// src/renderers/layouts/NuxtUiLabelRenderer.ts
|
|
943
986
|
import { rendererProps as rendererProps15, useJsonFormsLabel } from "@jsonforms/vue";
|
|
944
|
-
import { defineComponent as defineComponent15, h as
|
|
987
|
+
import { defineComponent as defineComponent15, h as h16 } from "vue";
|
|
945
988
|
function createNuxtUiLabelRenderer(theme) {
|
|
946
989
|
return defineComponent15({
|
|
947
990
|
name: "NuxtUiLabelRenderer",
|
|
@@ -952,7 +995,7 @@ function createNuxtUiLabelRenderer(theme) {
|
|
|
952
995
|
);
|
|
953
996
|
return () => {
|
|
954
997
|
if (!label.value.visible) return null;
|
|
955
|
-
return
|
|
998
|
+
return h16("div", { class: theme.textLabel }, label.value.text);
|
|
956
999
|
};
|
|
957
1000
|
}
|
|
958
1001
|
});
|
|
@@ -960,7 +1003,7 @@ function createNuxtUiLabelRenderer(theme) {
|
|
|
960
1003
|
|
|
961
1004
|
// src/renderers/layouts/NuxtUiVerticalLayoutRenderer.ts
|
|
962
1005
|
import { DispatchRenderer as DispatchRenderer7, rendererProps as rendererProps16, useJsonFormsLayout as useJsonFormsLayout4 } from "@jsonforms/vue";
|
|
963
|
-
import { defineComponent as defineComponent16, h as
|
|
1006
|
+
import { defineComponent as defineComponent16, h as h17 } from "vue";
|
|
964
1007
|
function createNuxtUiVerticalLayoutRenderer(theme) {
|
|
965
1008
|
return defineComponent16({
|
|
966
1009
|
name: "NuxtUiVerticalLayoutRenderer",
|
|
@@ -973,14 +1016,14 @@ function createNuxtUiVerticalLayoutRenderer(theme) {
|
|
|
973
1016
|
return () => {
|
|
974
1017
|
if (!layout.value.visible) return null;
|
|
975
1018
|
const elements = layout.value.uischema.elements ?? [];
|
|
976
|
-
return
|
|
1019
|
+
return h17(
|
|
977
1020
|
"div",
|
|
978
1021
|
{ class: theme.layoutVertical },
|
|
979
1022
|
elements.map(
|
|
980
|
-
(element, index) =>
|
|
1023
|
+
(element, index) => h17(
|
|
981
1024
|
"div",
|
|
982
1025
|
{ key: `${layout.value.path}-${index}` },
|
|
983
|
-
|
|
1026
|
+
h17(DispatchRenderer7, {
|
|
984
1027
|
schema: layout.value.schema,
|
|
985
1028
|
uischema: element,
|
|
986
1029
|
path: layout.value.path,
|
|
@@ -1068,6 +1111,7 @@ var isOneOfEnumControl = (uischema, schema, context) => {
|
|
|
1068
1111
|
};
|
|
1069
1112
|
function createNuxtUiRenderers(options) {
|
|
1070
1113
|
const theme = mergeTheme(options?.theme);
|
|
1114
|
+
const docsUrl = options?.docsUrl;
|
|
1071
1115
|
return [
|
|
1072
1116
|
// Layouts
|
|
1073
1117
|
{
|
|
@@ -1142,14 +1186,16 @@ function createNuxtUiRenderers(options) {
|
|
|
1142
1186
|
},
|
|
1143
1187
|
{
|
|
1144
1188
|
tester: rankWith(RANK, isStringControl),
|
|
1145
|
-
renderer: markRaw(
|
|
1189
|
+
renderer: markRaw(createNuxtUiStringControl(docsUrl))
|
|
1146
1190
|
}
|
|
1147
1191
|
];
|
|
1148
1192
|
}
|
|
1149
1193
|
var nuxtUiRenderers = createNuxtUiRenderers();
|
|
1150
1194
|
export {
|
|
1195
|
+
controlDescription,
|
|
1151
1196
|
createNuxtUiRenderers,
|
|
1152
1197
|
defaultTheme,
|
|
1198
|
+
getDocsPathFromSchema,
|
|
1153
1199
|
mergeTheme,
|
|
1154
1200
|
nuxtUiRenderers
|
|
1155
1201
|
};
|