@koumoul/vjsf 3.0.0-beta.3 → 3.0.0-beta.31
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 +21 -0
- package/package.json +5 -4
- package/src/compat/v2.js +132 -27
- package/src/compile/index.js +18 -4
- package/src/compile/options.js +3 -7
- package/src/compile/v-jsf-compiled.vue.ejs +1 -1
- package/src/components/fragments/help-message.vue +10 -1
- package/src/components/fragments/section-header.vue +1 -3
- package/src/components/fragments/select-item-icon.vue +1 -1
- package/src/components/fragments/select-selection.vue +2 -1
- package/src/components/fragments/selection-group.vue +100 -0
- package/src/components/fragments/text-field-menu.vue +5 -1
- package/src/components/node.vue +47 -42
- package/src/components/nodes/autocomplete.vue +11 -35
- package/src/components/nodes/checkbox-group.vue +39 -0
- package/src/components/nodes/checkbox.vue +9 -1
- package/src/components/nodes/color-picker.vue +5 -1
- package/src/components/nodes/combobox.vue +3 -0
- package/src/components/nodes/date-picker.vue +4 -2
- package/src/components/nodes/date-time-picker.vue +3 -0
- package/src/components/nodes/expansion-panels.vue +24 -12
- package/src/components/nodes/file-input.vue +3 -0
- package/src/components/nodes/list.vue +145 -91
- package/src/components/nodes/number-combobox.vue +3 -0
- package/src/components/nodes/number-field.vue +3 -0
- package/src/components/nodes/one-of-select.vue +45 -24
- package/src/components/nodes/radio-group.vue +53 -0
- package/src/components/nodes/section.vue +3 -0
- package/src/components/nodes/select.vue +10 -27
- package/src/components/nodes/slider.vue +3 -0
- package/src/components/nodes/stepper.vue +3 -0
- package/src/components/nodes/switch-group.vue +39 -0
- package/src/components/nodes/switch.vue +9 -3
- package/src/components/nodes/tabs.vue +10 -3
- package/src/components/nodes/text-field.vue +3 -0
- package/src/components/nodes/textarea.vue +3 -0
- package/src/components/nodes/vertical-tabs.vue +6 -1
- package/src/components/options.js +21 -5
- package/src/components/vjsf.vue +6 -0
- package/src/composables/use-comp-defaults.js +19 -0
- package/src/composables/use-dnd.js +1 -0
- package/src/composables/use-get-items.js +48 -0
- package/src/composables/use-vjsf.js +76 -40
- package/src/index.js +3 -0
- package/src/types.ts +21 -6
- package/src/utils/build.js +1 -1
- package/src/utils/index.js +0 -1
- package/src/utils/props.js +9 -30
- package/types/compat/v2.d.ts.map +1 -1
- package/types/compile/index.d.ts +2 -2
- package/types/compile/index.d.ts.map +1 -1
- package/types/compile/options.d.ts.map +1 -1
- package/types/components/fragments/selection-group.vue.d.ts +35 -0
- package/types/components/fragments/selection-group.vue.d.ts.map +1 -0
- package/types/components/fragments/text-field-menu.vue.d.ts.map +1 -1
- package/types/components/nodes/autocomplete.vue.d.ts.map +1 -1
- package/types/components/nodes/checkbox-group copy.vue.d.ts +27 -0
- package/types/components/nodes/checkbox-group copy.vue.d.ts.map +1 -0
- package/types/components/nodes/checkbox-group.vue.d.ts +27 -0
- package/types/components/nodes/checkbox-group.vue.d.ts.map +1 -0
- package/types/components/nodes/combobox.vue.d.ts.map +1 -1
- package/types/components/nodes/file-input.vue.d.ts.map +1 -1
- package/types/components/nodes/number-combobox.vue.d.ts.map +1 -1
- package/types/components/nodes/number-field.vue.d.ts.map +1 -1
- package/types/components/nodes/radio-group.vue.d.ts +27 -0
- package/types/components/nodes/radio-group.vue.d.ts.map +1 -0
- package/types/components/nodes/radio.vue.d.ts +10 -0
- package/types/components/nodes/radio.vue.d.ts.map +1 -0
- package/types/components/nodes/select.vue.d.ts.map +1 -1
- package/types/components/nodes/switch-group.vue.d.ts +27 -0
- package/types/components/nodes/switch-group.vue.d.ts.map +1 -0
- package/types/components/nodes/text-field.vue.d.ts.map +1 -1
- package/types/components/nodes/textarea.vue.d.ts.map +1 -1
- package/types/components/options.d.ts +1 -1
- package/types/components/options.d.ts.map +1 -1
- package/types/components/vjsf.vue.d.ts +2 -2
- package/types/composables/use-comp-defaults.d.ts +8 -0
- package/types/composables/use-comp-defaults.d.ts.map +1 -0
- package/types/composables/use-dnd.d.ts.map +1 -1
- package/types/composables/use-get-items.d.ts +13 -0
- package/types/composables/use-get-items.d.ts.map +1 -0
- package/types/composables/use-vjsf.d.ts.map +1 -1
- package/types/index.d.ts +2 -0
- package/types/index.d.ts.map +1 -1
- package/types/types.d.ts +20 -8
- package/types/types.d.ts.map +1 -1
- package/types/utils/build.d.ts +1 -1
- package/types/utils/index.d.ts +0 -1
- package/types/utils/props.d.ts +3 -4
- package/types/utils/props.d.ts.map +1 -1
- package/src/utils/global-register.js +0 -13
- package/types/components/global-register.d.ts +0 -8
- package/types/components/global-register.d.ts.map +0 -1
- package/types/components/nodes/markdown.vue.d.ts +0 -27
- package/types/components/nodes/markdown.vue.d.ts.map +0 -1
- package/types/components/nodes/text-field copy.vue.d.ts +0 -10
- package/types/components/nodes/text-field copy.vue.d.ts.map +0 -1
- package/types/components/types.d.ts +0 -91
- package/types/components/types.d.ts.map +0 -1
- package/types/components/v-jsf.vue.d.ts +0 -13
- package/types/components/v-jsf.vue.d.ts.map +0 -1
- package/types/utils/clone.d.ts +0 -3
- package/types/utils/clone.d.ts.map +0 -1
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
import { StatefulLayout } from '@json-layout/core'
|
|
1
|
+
import { StatefulLayout, produceCompileOptions } from '@json-layout/core'
|
|
2
2
|
import { inject, toRaw, shallowRef, computed, ref, watch, useSlots } from 'vue'
|
|
3
3
|
import { useElementSize } from '@vueuse/core'
|
|
4
4
|
import { getFullOptions } from '../components/options.js'
|
|
5
|
-
import {
|
|
5
|
+
import { setAutoFreeze } from 'immer'
|
|
6
|
+
import Debug from 'debug'
|
|
7
|
+
|
|
8
|
+
const debug = Debug('vjsf:use-vjsf')
|
|
9
|
+
|
|
10
|
+
// immer freezing is disabled because it is not compatible with Vue 3 reactivity
|
|
11
|
+
setAutoFreeze(false)
|
|
6
12
|
|
|
7
13
|
export const emits = {
|
|
8
14
|
/**
|
|
@@ -26,6 +32,8 @@ export const emits = {
|
|
|
26
32
|
*/
|
|
27
33
|
export const useVjsf = (schema, modelValue, options, nodeComponents, emit, compile, precompiledLayout) => {
|
|
28
34
|
const el = ref(null)
|
|
35
|
+
|
|
36
|
+
// TODO: apply a debounce to width ?
|
|
29
37
|
const { width } = useElementSize(el)
|
|
30
38
|
|
|
31
39
|
/** @type import('vue').ShallowRef<import('../types.js').VjsfStatefulLayout | null> */
|
|
@@ -49,72 +57,100 @@ export const useVjsf = (schema, modelValue, options, nodeComponents, emit, compi
|
|
|
49
57
|
|
|
50
58
|
const slots = useSlots()
|
|
51
59
|
|
|
52
|
-
|
|
60
|
+
/* Callbacks from json layout stateful layout */
|
|
61
|
+
/**
|
|
62
|
+
* @param {import('@json-layout/core').StatefulLayout} statefulLayout
|
|
63
|
+
*/
|
|
64
|
+
const onStatefulLayoutUpdate = (statefulLayout) => {
|
|
65
|
+
debug('onStatefulLayoutUpdate', statefulLayout)
|
|
66
|
+
if (!statefulLayout) return
|
|
67
|
+
stateTree.value = statefulLayout.stateTree
|
|
68
|
+
debug(' -> emit update:state')
|
|
69
|
+
emit('update:state', statefulLayout)
|
|
70
|
+
if (form) {
|
|
71
|
+
// cf https://vuetifyjs.com/en/components/forms/#validation-state
|
|
72
|
+
if (statefulLayout.valid) form.update('vjsf', true, [])
|
|
73
|
+
else if (statefulLayout.hasHiddenError) form.update('vjsf', null, [])
|
|
74
|
+
else form.update('vjsf', false, [])
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* @param {any} data
|
|
79
|
+
*/
|
|
80
|
+
const onDataUpdate = (data) => {
|
|
81
|
+
debug('onDataUpdate', data)
|
|
82
|
+
debug(' -> emit update:modelValue')
|
|
83
|
+
emit('update:modelValue', data)
|
|
84
|
+
}
|
|
85
|
+
const onAutofocus = () => {
|
|
86
|
+
if (!el.value) return
|
|
87
|
+
// @ts-ignore
|
|
88
|
+
const autofocusNodeElement = el.value.querySelector('.vjsf-input--autofocus')
|
|
89
|
+
debug('onAutofocus', autofocusNodeElement)
|
|
90
|
+
if (autofocusNodeElement) {
|
|
91
|
+
const autofocusInputElement = autofocusNodeElement.querySelector('input') ?? autofocusNodeElement.querySelector('textarea:not([style*="display: none"]')
|
|
92
|
+
if (autofocusInputElement) autofocusInputElement.focus()
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
const fullOptions = computed(() => getFullOptions(options.value, form, width.value, slots, { ...nodeComponents }, onDataUpdate, onStatefulLayoutUpdate, onAutofocus))
|
|
97
|
+
|
|
98
|
+
// do not use a simple computed here as we want to prevent recompiling the layout when the options are the same
|
|
99
|
+
/** @type {import('vue').Ref<import('@json-layout/core').PartialCompileOptions>} */
|
|
100
|
+
const compileOptions = ref({})
|
|
101
|
+
watch(fullOptions, (newOptions) => {
|
|
102
|
+
if (precompiledLayout?.value) return
|
|
103
|
+
const newCompileOptions = produceCompileOptions(compileOptions.value, newOptions)
|
|
104
|
+
if (newCompileOptions !== compileOptions.value) {
|
|
105
|
+
debug('new compileOptions', newCompileOptions)
|
|
106
|
+
compileOptions.value = newCompileOptions
|
|
107
|
+
}
|
|
108
|
+
}, { immediate: true })
|
|
53
109
|
|
|
54
110
|
const compiledLayout = computed(() => {
|
|
55
111
|
if (precompiledLayout?.value) return precompiledLayout?.value
|
|
56
112
|
if (!compile) throw new Error('compile function is not available')
|
|
57
|
-
const compiledLayout = compile(schema.value,
|
|
113
|
+
const compiledLayout = compile(schema.value, compileOptions.value)
|
|
58
114
|
return compiledLayout
|
|
59
115
|
})
|
|
60
116
|
|
|
61
|
-
const onStatefulLayoutUpdate = () => {
|
|
62
|
-
if (!statefulLayout.value) return
|
|
63
|
-
stateTree.value = statefulLayout.value.stateTree
|
|
64
|
-
emit('update:modelValue', statefulLayout.value.data)
|
|
65
|
-
emit('update:state', statefulLayout.value)
|
|
66
|
-
if (form) {
|
|
67
|
-
// cf https://vuetifyjs.com/en/components/forms/#validation-state
|
|
68
|
-
if (statefulLayout.value.valid) form.update('vjsf', true, [])
|
|
69
|
-
else if (statefulLayout.value.hasHiddenError) form.update('vjsf', null, [])
|
|
70
|
-
else form.update('vjsf', false, [])
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
117
|
const initStatefulLayout = () => {
|
|
75
118
|
if (!width.value) return
|
|
76
119
|
// @ts-ignore
|
|
77
|
-
|
|
120
|
+
statefulLayout.value = /** @type {import('../types.js').VjsfStatefulLayout} */(new StatefulLayout(
|
|
78
121
|
toRaw(compiledLayout.value),
|
|
79
|
-
toRaw(compiledLayout.value.
|
|
122
|
+
toRaw(compiledLayout.value.skeletonTrees[compiledLayout.value.mainTree]),
|
|
80
123
|
toRaw(fullOptions.value),
|
|
81
124
|
toRaw(modelValue.value)
|
|
82
125
|
))
|
|
83
|
-
statefulLayout.value = _statefulLayout
|
|
84
|
-
onStatefulLayoutUpdate()
|
|
85
|
-
_statefulLayout.events.on('update', () => {
|
|
86
|
-
onStatefulLayoutUpdate()
|
|
87
|
-
})
|
|
88
|
-
emit('update:state', _statefulLayout)
|
|
89
|
-
_statefulLayout.events.on('autofocus', () => {
|
|
90
|
-
if (!el.value) return
|
|
91
|
-
// @ts-ignore
|
|
92
|
-
const autofocusNodeElement = el.value.querySelector('.vjsf-input--autofocus')
|
|
93
|
-
if (autofocusNodeElement) {
|
|
94
|
-
const autofocusInputElement = autofocusNodeElement.querySelector('input') ?? autofocusNodeElement.querySelector('textarea:not([style*="display: none"]')
|
|
95
|
-
if (autofocusInputElement) autofocusInputElement.focus()
|
|
96
|
-
}
|
|
97
|
-
})
|
|
98
126
|
}
|
|
99
127
|
|
|
128
|
+
// case where options are updated from outside
|
|
100
129
|
watch(fullOptions, (newOptions) => {
|
|
101
|
-
|
|
102
|
-
if (!precompiledLayout?.value) return
|
|
103
|
-
|
|
130
|
+
debug('watch fullOptions', fullOptions)
|
|
104
131
|
if (statefulLayout.value) {
|
|
105
|
-
statefulLayout
|
|
132
|
+
debug(' -> update statefulLayout options')
|
|
133
|
+
statefulLayout.value.options = toRaw(newOptions)
|
|
106
134
|
} else {
|
|
135
|
+
debug(' -> init statefulLayout')
|
|
107
136
|
initStatefulLayout()
|
|
108
137
|
}
|
|
109
138
|
})
|
|
110
139
|
|
|
111
140
|
// case where data is updated from outside
|
|
112
141
|
watch(modelValue, (newData) => {
|
|
113
|
-
|
|
142
|
+
const rawData = toRaw(newData)
|
|
143
|
+
if (statefulLayout.value && statefulLayout.value.data !== rawData) {
|
|
144
|
+
debug('modelValue changed from outside', rawData)
|
|
145
|
+
debug(' -> update statefulLayout data')
|
|
146
|
+
statefulLayout.value.data = toRaw(rawData)
|
|
147
|
+
}
|
|
114
148
|
})
|
|
115
149
|
|
|
116
|
-
// case where schema
|
|
150
|
+
// case where schema or compile options are updated from outside
|
|
117
151
|
watch(compiledLayout, (newCompiledLayout) => {
|
|
152
|
+
debug('watch compiledLayout', newCompiledLayout)
|
|
153
|
+
debug(' -> init statefulLayout')
|
|
118
154
|
initStatefulLayout()
|
|
119
155
|
})
|
|
120
156
|
|
package/src/index.js
CHANGED
|
@@ -2,3 +2,6 @@ import Vjsf from './components/vjsf.vue'
|
|
|
2
2
|
import { defaultOptions } from './components/options.js'
|
|
3
3
|
export { Vjsf, defaultOptions }
|
|
4
4
|
export default Vjsf
|
|
5
|
+
|
|
6
|
+
/** @typedef {import('./types.js').PartialVjsfOptions} Options */
|
|
7
|
+
/** @typedef {import('./types.js').PartialVjsfCompileOptions} CompileOptions */
|
package/src/types.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Component } from 'vue'
|
|
2
2
|
|
|
3
|
+
import { ComponentInfo } from '@json-layout/vocabulary'
|
|
4
|
+
|
|
3
5
|
import {
|
|
4
6
|
StatefulLayout,
|
|
5
7
|
StatefulLayoutOptions,
|
|
@@ -15,6 +17,9 @@ import {
|
|
|
15
17
|
OneOfSelectNode,
|
|
16
18
|
SectionNode,
|
|
17
19
|
SelectNode,
|
|
20
|
+
RadioGroupNode,
|
|
21
|
+
CheckboxGroupNode,
|
|
22
|
+
SwitchGroupNode,
|
|
18
23
|
SliderNode,
|
|
19
24
|
SwitchNode,
|
|
20
25
|
TextFieldNode,
|
|
@@ -22,29 +27,37 @@ import {
|
|
|
22
27
|
VerticalTabsNode,
|
|
23
28
|
StepperNode,
|
|
24
29
|
ComboboxNode,
|
|
25
|
-
MarkdownNode,
|
|
26
30
|
FileInputNode,
|
|
27
31
|
CompileOptions
|
|
28
32
|
} from '@json-layout/core'
|
|
29
33
|
|
|
30
34
|
export type Density = 'default' | 'comfortable' | 'compact'
|
|
31
35
|
|
|
36
|
+
export type Plugin = {
|
|
37
|
+
info: ComponentInfo,
|
|
38
|
+
nodeComponent: Component
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// these options used to contain many possibilities to override props in various components
|
|
42
|
+
// this was unmaintainable and has been removed, customization of components should be done via slots
|
|
43
|
+
// and defaults providers
|
|
32
44
|
export type VjsfStatefulLayoutOptions = StatefulLayoutOptions & {
|
|
33
45
|
vjsfSlots: Record<string, () => unknown>,
|
|
34
46
|
nodeComponents: Record<string, Component>,
|
|
35
|
-
plugins:
|
|
47
|
+
plugins: Plugin[],
|
|
48
|
+
pluginsOptions: Record<string, unknown>
|
|
36
49
|
}
|
|
37
50
|
|
|
38
51
|
export type VjsfCompileOptions = CompileOptions & {
|
|
39
|
-
|
|
52
|
+
pluginsImports: string[]
|
|
40
53
|
}
|
|
41
54
|
|
|
42
55
|
export type VjsfOptions = VjsfCompileOptions & VjsfStatefulLayoutOptions
|
|
43
56
|
|
|
44
57
|
export type VjsfStatefulLayout = Omit<StatefulLayout, 'options'> & {options: VjsfStatefulLayoutOptions}
|
|
45
58
|
|
|
46
|
-
export type PartialVjsfCompileOptions = Partial<
|
|
47
|
-
export type PartialVjsfOptions = Partial<Omit<VjsfOptions, 'width'>>
|
|
59
|
+
export type PartialVjsfCompileOptions = Partial<VjsfCompileOptions>
|
|
60
|
+
export type PartialVjsfOptions = Partial<Omit<VjsfOptions, 'width' | 'vjsfSlots' | 'onData' | 'onUpdate' | 'onAutofocus'>>
|
|
48
61
|
|
|
49
62
|
export type VjsfNode = Omit<StateNode, 'options'> & {options: VjsfOptions}
|
|
50
63
|
export type VjsfTabsNode = Omit<TabsNode, 'options'> & {options: VjsfOptions}
|
|
@@ -58,11 +71,13 @@ export type VjsfNumberFieldNode = Omit<NumberFieldNode, 'options'> & {options: V
|
|
|
58
71
|
export type VjsfOneOfSelectNode = Omit<OneOfSelectNode, 'options'> & {options: VjsfOptions}
|
|
59
72
|
export type VjsfSectionNode = Omit<SectionNode, 'options'> & {options: VjsfOptions}
|
|
60
73
|
export type VjsfSelectNode = Omit<SelectNode, 'options'> & {options: VjsfOptions}
|
|
74
|
+
export type VjsfRadioGroupNode = Omit<RadioGroupNode, 'options'> & {options: VjsfOptions}
|
|
75
|
+
export type VjsfCheckboxGroupNode = Omit<CheckboxGroupNode, 'options'> & {options: VjsfOptions}
|
|
76
|
+
export type VjsfSwitchGroupNode = Omit<SwitchGroupNode, 'options'> & {options: VjsfOptions}
|
|
61
77
|
export type VjsfSliderNode = Omit<SliderNode, 'options'> & {options: VjsfOptions}
|
|
62
78
|
export type VjsfSwitchNode = Omit<SwitchNode, 'options'> & {options: VjsfOptions}
|
|
63
79
|
export type VjsfTextFieldNode = Omit<TextFieldNode, 'options'> & {options: VjsfOptions}
|
|
64
80
|
export type VjsfTextareaNode = Omit<TextareaNode, 'options'> & {options: VjsfOptions}
|
|
65
|
-
export type VjsfMarkdownNode = Omit<MarkdownNode, 'options'> & {options: VjsfOptions}
|
|
66
81
|
export type VjsfVerticalTabsNode = Omit<VerticalTabsNode, 'options'> & {options: VjsfOptions}
|
|
67
82
|
export type VjsfStepperNode = Omit<StepperNode, 'options'> & {options: VjsfOptions}
|
|
68
83
|
export type VjsfComboboxNode = Omit<ComboboxNode, 'options'> & {options: VjsfOptions}
|
package/src/utils/build.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { commonjsDeps } from '@json-layout/core/utils/build'
|
|
1
|
+
export { commonjsDeps, commonjsDepsPaths } from '@json-layout/core/utils/build'
|
package/src/utils/index.js
CHANGED
package/src/utils/props.js
CHANGED
|
@@ -5,25 +5,11 @@ import { camelize } from 'vue'
|
|
|
5
5
|
// but it was not very flexible and not very easy to use, user defined props should be managed
|
|
6
6
|
// by a combination of layout.props, layout.getProps and vuetify defaults provider (https://vuetifyjs.com/en/components/defaults-providers/#usage)
|
|
7
7
|
const defaultProps = {
|
|
8
|
-
fieldProps: {},
|
|
9
8
|
fieldPropsCompact: {
|
|
10
|
-
density: 'compact',
|
|
11
9
|
hideDetails: 'auto'
|
|
12
10
|
},
|
|
13
|
-
fieldPropsComfortable: {
|
|
14
|
-
density: 'comfortable'
|
|
15
|
-
},
|
|
16
11
|
fieldPropsReadOnly: { hideDetails: 'auto', variant: 'plain' },
|
|
17
|
-
fieldPropsSummary: { hideDetails: true }
|
|
18
|
-
textfieldProps: {},
|
|
19
|
-
textfieldPropsReadOnly: {},
|
|
20
|
-
textareaProps: {},
|
|
21
|
-
textareaPropsReadOnly: {},
|
|
22
|
-
// it is not very common to show an error below checkboxes and switches and without hide-details=auto they take a lot of space
|
|
23
|
-
checkboxProps: { hideDetails: 'auto' },
|
|
24
|
-
checkboxPropsReadOnly: {},
|
|
25
|
-
switchProps: { hideDetails: 'auto' },
|
|
26
|
-
switchPropsReadOnly: {}
|
|
12
|
+
fieldPropsSummary: { hideDetails: true }
|
|
27
13
|
}
|
|
28
14
|
|
|
29
15
|
/**
|
|
@@ -57,21 +43,16 @@ export function mergePropsLevels (propsLevels) {
|
|
|
57
43
|
* @param {import('../types.js').VjsfNode} node
|
|
58
44
|
* @param {import('../types.js').VjsfStatefulLayout} statefulLayout
|
|
59
45
|
* @param {(string | [string, string])[]} [layoutPropsMap]
|
|
60
|
-
* @param {boolean} isMainComp
|
|
46
|
+
* @param {boolean} [isMainComp]
|
|
61
47
|
* @returns {Record<string, any>}
|
|
62
48
|
*/
|
|
63
49
|
export function getInputProps (node, statefulLayout, layoutPropsMap, isMainComp = true) {
|
|
64
50
|
const options = node.options
|
|
65
51
|
/** @type {(Record<string, any> | undefined)[]} */
|
|
66
|
-
const propsLevels = [
|
|
67
|
-
if (options.density === 'comfortable') propsLevels.push(defaultProps.fieldPropsComfortable)
|
|
52
|
+
const propsLevels = []
|
|
68
53
|
if (options.density === 'compact') propsLevels.push(defaultProps.fieldPropsCompact)
|
|
69
54
|
if (node.options.readOnly) propsLevels.push(defaultProps.fieldPropsReadOnly)
|
|
70
|
-
if (isMainComp)
|
|
71
|
-
propsLevels.push(/** @type Record<string, any> | undefined */(options[`${node.layout.comp}Props`]))
|
|
72
|
-
if (node.options.readOnly) propsLevels.push(/** @type Record<string, any> | undefined */(options[`${node.layout.comp}PropsReadOnly`]))
|
|
73
|
-
if (node.props) propsLevels.push(node.props)
|
|
74
|
-
}
|
|
55
|
+
if (isMainComp && node.props) propsLevels.push(node.props)
|
|
75
56
|
|
|
76
57
|
const fullProps = mergePropsLevels(propsLevels)
|
|
77
58
|
|
|
@@ -79,7 +60,7 @@ export function getInputProps (node, statefulLayout, layoutPropsMap, isMainComp
|
|
|
79
60
|
if (node.error && node.validated) {
|
|
80
61
|
fullProps.errorMessages = node.error
|
|
81
62
|
}
|
|
82
|
-
fullProps.modelValue = node.data
|
|
63
|
+
fullProps.modelValue = (typeof node.data === 'string' && node.layout.separator) ? node.data.split(/** @type {string} */(node.layout.separator)) : node.data
|
|
83
64
|
if (node.options.readOnly) {
|
|
84
65
|
fullProps.disabled = true
|
|
85
66
|
fullProps.class.push('vjsf-input--readonly')
|
|
@@ -96,7 +77,9 @@ export function getInputProps (node, statefulLayout, layoutPropsMap, isMainComp
|
|
|
96
77
|
}
|
|
97
78
|
|
|
98
79
|
if (isMainComp) {
|
|
99
|
-
fullProps['onUpdate:modelValue'] = (/** @type string */value) =>
|
|
80
|
+
fullProps['onUpdate:modelValue'] = (/** @type string */value) => {
|
|
81
|
+
return statefulLayout.input(node, (Array.isArray(value) && node.layout.separator) ? value.join(/** @type {string} */(node.layout.separator)) : value)
|
|
82
|
+
}
|
|
100
83
|
fullProps.onBlur = () => statefulLayout.blur(node)
|
|
101
84
|
}
|
|
102
85
|
|
|
@@ -106,18 +89,14 @@ export function getInputProps (node, statefulLayout, layoutPropsMap, isMainComp
|
|
|
106
89
|
// calculate the props of components that are not of the field category
|
|
107
90
|
/**
|
|
108
91
|
* @param {import('@json-layout/core').StateNode} node
|
|
109
|
-
* @param {string} comp
|
|
110
92
|
* @param {boolean} isMainComp
|
|
111
93
|
* @returns {Record<string, any>}
|
|
112
94
|
*/
|
|
113
|
-
export function getCompProps (node,
|
|
95
|
+
export function getCompProps (node, isMainComp = true) {
|
|
114
96
|
const options = /** @type import('../types.js').VjsfOptions */(node.options)
|
|
115
97
|
/** @type {(Record<string, any> | undefined)[]} */
|
|
116
98
|
const propsLevels = [{ density: options.density }]
|
|
117
|
-
propsLevels.push(/** @type Record<string, any> | undefined */(options[`${comp}Props`]))
|
|
118
|
-
if (node.options.readOnly) propsLevels.push(/** @type Record<string, any> | undefined */(options[`${comp}PropsReadOnly`]))
|
|
119
99
|
if (isMainComp) propsLevels.push(node.layout.props)
|
|
120
100
|
const fullProps = mergePropsLevels(propsLevels)
|
|
121
|
-
if (isMainComp) fullProps.modelValue = node.data
|
|
122
101
|
return fullProps
|
|
123
102
|
}
|
package/types/compat/v2.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v2.d.ts","sourceRoot":"","sources":["../../src/compat/v2.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"v2.d.ts","sourceRoot":"","sources":["../../src/compat/v2.js"],"names":[],"mappings":"AAqMA;;;;;;GAMG;AACH,kCALW,MAAM,+CAEN,MAAM,0BAoBhB;sBA7NqB,KAAK"}
|
package/types/compile/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @param {object} schema
|
|
3
3
|
* @param {import('../types.js').PartialVjsfCompileOptions} [options]
|
|
4
4
|
* @param {string} [baseImport]
|
|
5
|
-
* @returns {string}
|
|
5
|
+
* @returns {Promise<string>}
|
|
6
6
|
*/
|
|
7
|
-
export function compile(schema: object, options?: Partial<
|
|
7
|
+
export function compile(schema: object, options?: Partial<import("../types.js").VjsfCompileOptions> | undefined, baseImport?: string | undefined): Promise<string>;
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/compile/index.js"],"names":[],"mappings":"AAmCA;;;;;GAKG;AACH,gCALW,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/compile/index.js"],"names":[],"mappings":"AAmCA;;;;;GAKG;AACH,gCALW,MAAM,6GAGJ,QAAQ,MAAM,CAAC,CAuC3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/compile/options.js"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,6BADU,OAAO,aAAa,EAAE,yBAAyB,
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/compile/options.js"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,6BADU,OAAO,aAAa,EAAE,yBAAyB,CAIxD;AAOM,wCAHI,OAAO,aAAa,EAAE,yBAAyB,4CAMzD"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{
|
|
2
|
+
modelValue: {
|
|
3
|
+
/** @type import('vue').PropType<import('../../types.js').VjsfCheckboxGroupNode> */
|
|
4
|
+
type: import('vue').PropType<import('../../types.js').VjsfCheckboxGroupNode>;
|
|
5
|
+
required: true;
|
|
6
|
+
};
|
|
7
|
+
statefulLayout: {
|
|
8
|
+
/** @type import('vue').PropType<import('../../types.js').VjsfStatefulLayout> */
|
|
9
|
+
type: import('vue').PropType<import('../../types.js').VjsfStatefulLayout>;
|
|
10
|
+
required: true;
|
|
11
|
+
};
|
|
12
|
+
type: {
|
|
13
|
+
type: StringConstructor;
|
|
14
|
+
required: true;
|
|
15
|
+
};
|
|
16
|
+
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
17
|
+
[key: string]: any;
|
|
18
|
+
}>, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
19
|
+
modelValue: {
|
|
20
|
+
/** @type import('vue').PropType<import('../../types.js').VjsfCheckboxGroupNode> */
|
|
21
|
+
type: import('vue').PropType<import('../../types.js').VjsfCheckboxGroupNode>;
|
|
22
|
+
required: true;
|
|
23
|
+
};
|
|
24
|
+
statefulLayout: {
|
|
25
|
+
/** @type import('vue').PropType<import('../../types.js').VjsfStatefulLayout> */
|
|
26
|
+
type: import('vue').PropType<import('../../types.js').VjsfStatefulLayout>;
|
|
27
|
+
required: true;
|
|
28
|
+
};
|
|
29
|
+
type: {
|
|
30
|
+
type: StringConstructor;
|
|
31
|
+
required: true;
|
|
32
|
+
};
|
|
33
|
+
}>>, {}, {}>;
|
|
34
|
+
export default _default;
|
|
35
|
+
//# sourceMappingURL=selection-group.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection-group.vue.d.ts","sourceRoot":"","sources":["../../../src/components/fragments/selection-group.vue.js"],"names":[],"mappings":";;QAUM,mFAAmF;cAAzE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,qBAAqB,CAAC;;;;QAKhF,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC;;;;;;;;;;;QAL7E,mFAAmF;cAAzE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,qBAAqB,CAAC;;;;QAKhF,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-field-menu.vue.d.ts","sourceRoot":"","sources":["../../../src/components/fragments/text-field-menu.vue.js"],"names":[],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"text-field-menu.vue.d.ts","sourceRoot":"","sources":["../../../src/components/fragments/text-field-menu.vue.js"],"names":[],"mappings":";;;;;;;;;;6BAsIsC,GAAG;;;QACX,GAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocomplete.vue.d.ts","sourceRoot":"","sources":["../../../src/components/nodes/autocomplete.vue.js"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"autocomplete.vue.d.ts","sourceRoot":"","sources":["../../../src/components/nodes/autocomplete.vue.js"],"names":[],"mappings":";;QAaI,4EAA4E;cAAlE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,cAAc,CAAC;;;;QAKvE,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC;;;;;;;QAL/E,4EAA4E;cAAlE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,cAAc,CAAC;;;;QAKvE,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{
|
|
2
|
+
modelValue: {
|
|
3
|
+
/** @type import('vue').PropType<import('../../types.js').VjsfCheckboxGroupNode> */
|
|
4
|
+
type: import('vue').PropType<import('../../types.js').VjsfCheckboxGroupNode>;
|
|
5
|
+
required: true;
|
|
6
|
+
};
|
|
7
|
+
statefulLayout: {
|
|
8
|
+
/** @type import('vue').PropType<import('../../types.js').VjsfStatefulLayout> */
|
|
9
|
+
type: import('vue').PropType<import('../../types.js').VjsfStatefulLayout>;
|
|
10
|
+
required: true;
|
|
11
|
+
};
|
|
12
|
+
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
13
|
+
[key: string]: any;
|
|
14
|
+
}>, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
15
|
+
modelValue: {
|
|
16
|
+
/** @type import('vue').PropType<import('../../types.js').VjsfCheckboxGroupNode> */
|
|
17
|
+
type: import('vue').PropType<import('../../types.js').VjsfCheckboxGroupNode>;
|
|
18
|
+
required: true;
|
|
19
|
+
};
|
|
20
|
+
statefulLayout: {
|
|
21
|
+
/** @type import('vue').PropType<import('../../types.js').VjsfStatefulLayout> */
|
|
22
|
+
type: import('vue').PropType<import('../../types.js').VjsfStatefulLayout>;
|
|
23
|
+
required: true;
|
|
24
|
+
};
|
|
25
|
+
}>>, {}, {}>;
|
|
26
|
+
export default _default;
|
|
27
|
+
//# sourceMappingURL=checkbox-group%20copy.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox-group copy.vue.d.ts","sourceRoot":"","sources":["../../../src/components/nodes/checkbox-group copy.vue.js"],"names":[],"mappings":";;QAQI,mFAAmF;cAAzE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,qBAAqB,CAAC;;;;QAKhF,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC;;;;;;;QAL7E,mFAAmF;cAAzE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,qBAAqB,CAAC;;;;QAKhF,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{
|
|
2
|
+
modelValue: {
|
|
3
|
+
/** @type import('vue').PropType<import('../../types.js').VjsfCheckboxGroupNode> */
|
|
4
|
+
type: import('vue').PropType<import('../../types.js').VjsfCheckboxGroupNode>;
|
|
5
|
+
required: true;
|
|
6
|
+
};
|
|
7
|
+
statefulLayout: {
|
|
8
|
+
/** @type import('vue').PropType<import('../../types.js').VjsfStatefulLayout> */
|
|
9
|
+
type: import('vue').PropType<import('../../types.js').VjsfStatefulLayout>;
|
|
10
|
+
required: true;
|
|
11
|
+
};
|
|
12
|
+
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
13
|
+
[key: string]: any;
|
|
14
|
+
}>, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
15
|
+
modelValue: {
|
|
16
|
+
/** @type import('vue').PropType<import('../../types.js').VjsfCheckboxGroupNode> */
|
|
17
|
+
type: import('vue').PropType<import('../../types.js').VjsfCheckboxGroupNode>;
|
|
18
|
+
required: true;
|
|
19
|
+
};
|
|
20
|
+
statefulLayout: {
|
|
21
|
+
/** @type import('vue').PropType<import('../../types.js').VjsfStatefulLayout> */
|
|
22
|
+
type: import('vue').PropType<import('../../types.js').VjsfStatefulLayout>;
|
|
23
|
+
required: true;
|
|
24
|
+
};
|
|
25
|
+
}>>, {}, {}>;
|
|
26
|
+
export default _default;
|
|
27
|
+
//# sourceMappingURL=checkbox-group.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox-group.vue.d.ts","sourceRoot":"","sources":["../../../src/components/nodes/checkbox-group.vue.js"],"names":[],"mappings":";;QASI,mFAAmF;cAAzE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,qBAAqB,CAAC;;;;QAKhF,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC;;;;;;;QAL7E,mFAAmF;cAAzE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,qBAAqB,CAAC;;;;QAKhF,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combobox.vue.d.ts","sourceRoot":"","sources":["../../../src/components/nodes/combobox.vue.js"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"combobox.vue.d.ts","sourceRoot":"","sources":["../../../src/components/nodes/combobox.vue.js"],"names":[],"mappings":";;QAUM,8EAA8E;cAApE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,gBAAgB,CAAC;;;;QAK3E,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC;;;;;;;QAL7E,8EAA8E;cAApE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,gBAAgB,CAAC;;;;QAK3E,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-input.vue.d.ts","sourceRoot":"","sources":["../../../src/components/nodes/file-input.vue.js"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"file-input.vue.d.ts","sourceRoot":"","sources":["../../../src/components/nodes/file-input.vue.js"],"names":[],"mappings":";;QAUM,+EAA+E;cAArE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,iBAAiB,CAAC;;;;QAK5E,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC;;;;;;;QAL7E,+EAA+E;cAArE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,iBAAiB,CAAC;;;;QAK5E,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-combobox.vue.d.ts","sourceRoot":"","sources":["../../../src/components/nodes/number-combobox.vue.js"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"number-combobox.vue.d.ts","sourceRoot":"","sources":["../../../src/components/nodes/number-combobox.vue.js"],"names":[],"mappings":";;QAUM,8EAA8E;cAApE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,gBAAgB,CAAC;;;;QAK3E,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC;;;;;;;QAL7E,8EAA8E;cAApE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,gBAAgB,CAAC;;;;QAK3E,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-field.vue.d.ts","sourceRoot":"","sources":["../../../src/components/nodes/number-field.vue.js"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"number-field.vue.d.ts","sourceRoot":"","sources":["../../../src/components/nodes/number-field.vue.js"],"names":[],"mappings":";;QAUM,iFAAiF;cAAvE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,mBAAmB,CAAC;;;;QAK9E,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC;;;;;;;QAL7E,iFAAiF;cAAvE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,mBAAmB,CAAC;;;;QAK9E,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{
|
|
2
|
+
modelValue: {
|
|
3
|
+
/** @type import('vue').PropType<import('../../types.js').VjsfRadioGroupNode> */
|
|
4
|
+
type: import('vue').PropType<import('../../types.js').VjsfRadioGroupNode>;
|
|
5
|
+
required: true;
|
|
6
|
+
};
|
|
7
|
+
statefulLayout: {
|
|
8
|
+
/** @type import('vue').PropType<import('../../types.js').VjsfStatefulLayout> */
|
|
9
|
+
type: import('vue').PropType<import('../../types.js').VjsfStatefulLayout>;
|
|
10
|
+
required: true;
|
|
11
|
+
};
|
|
12
|
+
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
13
|
+
[key: string]: any;
|
|
14
|
+
}>, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
15
|
+
modelValue: {
|
|
16
|
+
/** @type import('vue').PropType<import('../../types.js').VjsfRadioGroupNode> */
|
|
17
|
+
type: import('vue').PropType<import('../../types.js').VjsfRadioGroupNode>;
|
|
18
|
+
required: true;
|
|
19
|
+
};
|
|
20
|
+
statefulLayout: {
|
|
21
|
+
/** @type import('vue').PropType<import('../../types.js').VjsfStatefulLayout> */
|
|
22
|
+
type: import('vue').PropType<import('../../types.js').VjsfStatefulLayout>;
|
|
23
|
+
required: true;
|
|
24
|
+
};
|
|
25
|
+
}>>, {}, {}>;
|
|
26
|
+
export default _default;
|
|
27
|
+
//# sourceMappingURL=radio-group.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio-group.vue.d.ts","sourceRoot":"","sources":["../../../src/components/nodes/radio-group.vue.js"],"names":[],"mappings":";;QAWM,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC;;;;QAK7E,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC;;;;;;;QAL7E,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC;;;;QAK7E,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{}, {
|
|
2
|
+
modelValue: import("../../types.js").VjsfSwitchNode;
|
|
3
|
+
statefulLayout: import("../../types.js").VjsfStatefulLayout;
|
|
4
|
+
$props: {
|
|
5
|
+
readonly modelValue?: import("../../types.js").VjsfSwitchNode | undefined;
|
|
6
|
+
readonly statefulLayout?: import("../../types.js").VjsfStatefulLayout | undefined;
|
|
7
|
+
};
|
|
8
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
|
|
9
|
+
export default _default;
|
|
10
|
+
//# sourceMappingURL=radio.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio.vue.d.ts","sourceRoot":"","sources":["../../../src/components/nodes/radio.vue.js"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.vue.d.ts","sourceRoot":"","sources":["../../../src/components/nodes/select.vue.js"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"select.vue.d.ts","sourceRoot":"","sources":["../../../src/components/nodes/select.vue.js"],"names":[],"mappings":";;QAaI,4EAA4E;cAAlE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,cAAc,CAAC;;;;QAKzE,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC;;;;;;;QAL7E,4EAA4E;cAAlE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,cAAc,CAAC;;;;QAKzE,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{
|
|
2
|
+
modelValue: {
|
|
3
|
+
/** @type import('vue').PropType<import('../../types.js').VjsfCheckboxGroupNode> */
|
|
4
|
+
type: import('vue').PropType<import('../../types.js').VjsfCheckboxGroupNode>;
|
|
5
|
+
required: true;
|
|
6
|
+
};
|
|
7
|
+
statefulLayout: {
|
|
8
|
+
/** @type import('vue').PropType<import('../../types.js').VjsfStatefulLayout> */
|
|
9
|
+
type: import('vue').PropType<import('../../types.js').VjsfStatefulLayout>;
|
|
10
|
+
required: true;
|
|
11
|
+
};
|
|
12
|
+
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
13
|
+
[key: string]: any;
|
|
14
|
+
}>, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
15
|
+
modelValue: {
|
|
16
|
+
/** @type import('vue').PropType<import('../../types.js').VjsfCheckboxGroupNode> */
|
|
17
|
+
type: import('vue').PropType<import('../../types.js').VjsfCheckboxGroupNode>;
|
|
18
|
+
required: true;
|
|
19
|
+
};
|
|
20
|
+
statefulLayout: {
|
|
21
|
+
/** @type import('vue').PropType<import('../../types.js').VjsfStatefulLayout> */
|
|
22
|
+
type: import('vue').PropType<import('../../types.js').VjsfStatefulLayout>;
|
|
23
|
+
required: true;
|
|
24
|
+
};
|
|
25
|
+
}>>, {}, {}>;
|
|
26
|
+
export default _default;
|
|
27
|
+
//# sourceMappingURL=switch-group.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch-group.vue.d.ts","sourceRoot":"","sources":["../../../src/components/nodes/switch-group.vue.js"],"names":[],"mappings":";;QASI,mFAAmF;cAAzE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,qBAAqB,CAAC;;;;QAKhF,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC;;;;;;;QAL7E,mFAAmF;cAAzE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,qBAAqB,CAAC;;;;QAKhF,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-field.vue.d.ts","sourceRoot":"","sources":["../../../src/components/nodes/text-field.vue.js"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"text-field.vue.d.ts","sourceRoot":"","sources":["../../../src/components/nodes/text-field.vue.js"],"names":[],"mappings":";;QAUM,+EAA+E;cAArE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,iBAAiB,CAAC;;;;QAK5E,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC;;;;;;;QAL7E,+EAA+E;cAArE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,iBAAiB,CAAC;;;;QAK5E,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textarea.vue.d.ts","sourceRoot":"","sources":["../../../src/components/nodes/textarea.vue.js"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"textarea.vue.d.ts","sourceRoot":"","sources":["../../../src/components/nodes/textarea.vue.js"],"names":[],"mappings":";;QAUM,8EAA8E;cAApE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,gBAAgB,CAAC;;;;QAK3E,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC;;;;;;;QAL7E,8EAA8E;cAApE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,gBAAgB,CAAC;;;;QAK3E,gFAAgF;cAAtE,OAAO,KAAK,EAAE,QAAQ,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/** @type {import("../types.js").PartialVjsfOptions} */
|
|
2
2
|
export const defaultOptions: import("../types.js").PartialVjsfOptions;
|
|
3
|
-
export function getFullOptions(options: Partial<import("../types.js").VjsfOptions> | null, form: any, width: number, slots: import("vue").Slots,
|
|
3
|
+
export function getFullOptions(options: Partial<import("../types.js").VjsfOptions> | null, form: any, width: number, slots: import("vue").Slots, defaultNodeComponents: Record<string, import('vue').Component>, onData: (data: any) => void, onUpdate: (statefulLayout: import('@json-layout/core').StatefulLayout) => void, onAutofocus: (key: string) => void): import("../types.js").VjsfOptions;
|
|
4
4
|
//# sourceMappingURL=options.d.ts.map
|