@bagelink/vue 0.0.1043 → 0.0.1048
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/dist/components/BglComponent.vue.d.ts.map +1 -1
- package/dist/components/form/BglField.vue.d.ts +2 -4
- package/dist/components/form/BglField.vue.d.ts.map +1 -1
- package/dist/components/form/BglForm.vue.d.ts +3 -1
- package/dist/components/form/BglForm.vue.d.ts.map +1 -1
- package/dist/components/form/BglMultiStepForm.vue.d.ts +2 -1
- package/dist/components/form/BglMultiStepForm.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/RangeInput.vue.d.ts +46 -1
- package/dist/components/form/inputs/RangeInput.vue.d.ts.map +1 -1
- package/dist/index.cjs +103 -55
- package/dist/index.mjs +103 -55
- package/dist/style.css +10 -10
- package/dist/types/BagelForm.d.ts +1 -1
- package/dist/types/BagelForm.d.ts.map +1 -1
- package/dist/utils/BagelFormUtils.d.ts +18 -6
- package/dist/utils/BagelFormUtils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/form/BglField.vue +14 -16
- package/src/components/form/BglForm.vue +8 -6
- package/src/components/form/inputs/RangeInput.vue +15 -4
- package/src/types/BagelForm.ts +1 -1
- package/src/utils/BagelFormUtils.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BagelFormUtils.d.ts","sourceRoot":"","sources":["../../src/utils/BagelFormUtils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"BagelFormUtils.d.ts","sourceRoot":"","sources":["../../src/utils/BagelFormUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -22,7 +22,7 @@ import { FORM_STATE_KEY } from './useBagelFormState'
|
|
|
22
22
|
|
|
23
23
|
const props = defineProps<{
|
|
24
24
|
field: Field<T>
|
|
25
|
-
|
|
25
|
+
fieldID?: string
|
|
26
26
|
modelValue?: any
|
|
27
27
|
parentPath?: string
|
|
28
28
|
}>()
|
|
@@ -51,27 +51,27 @@ const is = $computed(() => {
|
|
|
51
51
|
if (props.field.$el === 'file') return FileUpload
|
|
52
52
|
if (props.field.$el === 'date') return DateInput
|
|
53
53
|
if (props.field.$el === 'tabs') return TabsNav
|
|
54
|
-
if (props.field.$el === '
|
|
54
|
+
if (props.field.$el === 'bglform') return BglForm
|
|
55
55
|
return props.field.$el ?? 'div'
|
|
56
56
|
})
|
|
57
57
|
|
|
58
58
|
const fieldData = $computed({
|
|
59
59
|
get: () => {
|
|
60
|
-
if (!props.
|
|
61
|
-
const value = formState?.getFieldData(props.
|
|
60
|
+
if (!props.fieldID) return props.field.defaultValue ?? (props.field.$el === 'form' ? {} : '')
|
|
61
|
+
const value = formState?.getFieldData(props.fieldID)
|
|
62
62
|
if (props.field.$el === 'form' && !value) return {}
|
|
63
63
|
return value ?? ''
|
|
64
64
|
},
|
|
65
65
|
set: (val: any) => {
|
|
66
|
-
if (!props.
|
|
67
|
-
const currentValue = formState?.getFieldData(props.
|
|
66
|
+
if (!props.fieldID) return
|
|
67
|
+
const currentValue = formState?.getFieldData(props.fieldID)
|
|
68
68
|
if (JSON.stringify(val) === JSON.stringify(currentValue)) return
|
|
69
69
|
|
|
70
70
|
emit('update:modelValue', val)
|
|
71
71
|
if (props.field.onUpdate) {
|
|
72
72
|
props.field.onUpdate(val, currentValue)
|
|
73
73
|
}
|
|
74
|
-
formState?.updateField(props.
|
|
74
|
+
formState?.updateField(props.fieldID, val)
|
|
75
75
|
}
|
|
76
76
|
})
|
|
77
77
|
|
|
@@ -94,6 +94,7 @@ const computedOptions = $computed(
|
|
|
94
94
|
|
|
95
95
|
const computedAttrs = $computed(() => {
|
|
96
96
|
const attrs = { ...customAttrs, ...props.field.attrs }
|
|
97
|
+
delete attrs.schema
|
|
97
98
|
return bindAttrs(attrs, fieldData, formState?.data.value)
|
|
98
99
|
})
|
|
99
100
|
|
|
@@ -107,8 +108,8 @@ const computedClass = $computed(
|
|
|
107
108
|
v-bind="computedAttrs"
|
|
108
109
|
:is="is"
|
|
109
110
|
v-if="vIf"
|
|
110
|
-
:id="props.id"
|
|
111
111
|
v-model="fieldData"
|
|
112
|
+
:fieldID="props.fieldID"
|
|
112
113
|
:required="field.required"
|
|
113
114
|
:class="computedClass"
|
|
114
115
|
:label="field.label"
|
|
@@ -119,17 +120,14 @@ const computedClass = $computed(
|
|
|
119
120
|
:helptext="field.helptext"
|
|
120
121
|
:schema="field.attrs?.schema ?? undefined"
|
|
121
122
|
>
|
|
122
|
-
<template v-
|
|
123
|
-
<slot />
|
|
124
|
-
</template>
|
|
125
|
-
<template v-else>
|
|
123
|
+
<template v-for="(child, ii) in field.children" :key="ii">
|
|
126
124
|
<BglField
|
|
127
|
-
v-
|
|
128
|
-
:
|
|
129
|
-
:key="child.id || ii"
|
|
125
|
+
v-if="(typeof child !== 'string')"
|
|
126
|
+
:fieldID="[props.fieldID, child.id].filter(Boolean).join('.')"
|
|
130
127
|
:field="child"
|
|
131
|
-
:parent-path="props.
|
|
128
|
+
:parent-path="props.fieldID"
|
|
132
129
|
/>
|
|
130
|
+
<span v-else>{{ child }}</span>
|
|
133
131
|
</template>
|
|
134
132
|
</component>
|
|
135
133
|
</template>
|
|
@@ -8,28 +8,30 @@ export type FormStatus = 'idle' | 'loading' | 'success' | 'error'
|
|
|
8
8
|
const props = withDefaults(
|
|
9
9
|
defineProps<{
|
|
10
10
|
label?: string
|
|
11
|
-
|
|
11
|
+
fieldID?: string
|
|
12
12
|
schema: BglFormSchemaFnT<any>
|
|
13
13
|
modelValue?: { [key: string]: any }
|
|
14
14
|
onDelete?: (id: string) => void
|
|
15
15
|
onSubmit?: (data: any) => void
|
|
16
16
|
status?: FormStatus
|
|
17
|
+
tag?: 'template' | 'form'
|
|
17
18
|
}>(),
|
|
18
19
|
{
|
|
19
20
|
modelValue: () => ({}),
|
|
21
|
+
tag: 'form',
|
|
20
22
|
},
|
|
21
23
|
)
|
|
22
24
|
|
|
23
25
|
const emit = defineEmits(['update:modelValue', 'submit', 'dirty'])
|
|
24
26
|
|
|
25
|
-
const slots = useSlots()
|
|
27
|
+
const slots = useSlots() as any
|
|
26
28
|
const { showModal } = useModal()
|
|
27
29
|
const instAt = new Date()
|
|
28
30
|
const timeSinceInst = () => Date.now() - instAt.getTime()
|
|
29
31
|
|
|
30
32
|
// Check if we're a nested form
|
|
31
33
|
const existingFormState = inject<BagelFormState | undefined>(FORM_STATE_KEY)
|
|
32
|
-
const isNested = Boolean(existingFormState && props.
|
|
34
|
+
const isNested = Boolean(existingFormState && props.fieldID)
|
|
33
35
|
|
|
34
36
|
// Only provide new form state if we're not nested
|
|
35
37
|
const { data, isDirty } = isNested
|
|
@@ -119,11 +121,11 @@ defineExpose({
|
|
|
119
121
|
</script>
|
|
120
122
|
|
|
121
123
|
<template>
|
|
122
|
-
<template v-if="
|
|
124
|
+
<template v-if="tag === 'template'">
|
|
123
125
|
<BglField
|
|
124
126
|
v-for="(field, i) in computedSchema"
|
|
125
|
-
:id="[id, field.id].filter(Boolean).join('.')"
|
|
126
127
|
:key="field.id || `${i}p`"
|
|
128
|
+
:fieldID="field.id"
|
|
127
129
|
:field="field"
|
|
128
130
|
/>
|
|
129
131
|
<slot name="submit" :submit="runSubmit" :isDirty="isDirty" :validateForm="validateForm" />
|
|
@@ -136,8 +138,8 @@ defineExpose({
|
|
|
136
138
|
<Title v-if="label" tag="h4" :label="label" />
|
|
137
139
|
<BglField
|
|
138
140
|
v-for="(field, i) in computedSchema"
|
|
139
|
-
:id="field.id"
|
|
140
141
|
:key="field.id || `${i}p`"
|
|
142
|
+
:fieldID="field.id"
|
|
141
143
|
:field="field"
|
|
142
144
|
/>
|
|
143
145
|
<slot name="submit" :submit="runSubmit" :isDirty="isDirty" :validateForm="validateForm" />
|
|
@@ -115,19 +115,30 @@ const displayTo = $computed(() => formatValue(validTo))
|
|
|
115
115
|
class="txt-center txt-12 range-slider-position-txt absolute line-height-1 opacity-0"
|
|
116
116
|
:style="{ '--progress': `${fromPercentage}` }"
|
|
117
117
|
>
|
|
118
|
-
|
|
118
|
+
<slot v-if="!multiRange" name="progress" :progress="displayFrom" :min="formatValue(min)" :max="formatValue(max)">
|
|
119
|
+
{{ displayFrom }}
|
|
120
|
+
</slot>
|
|
121
|
+
<slot v-if="multiRange" name="from" :from="displayFrom" :to="displayTo" :min="formatValue(min)" :max="formatValue(max)">
|
|
122
|
+
{{ displayFrom }}
|
|
123
|
+
</slot>
|
|
119
124
|
</p>
|
|
120
125
|
<p
|
|
121
126
|
v-if="multiRange && validTo !== max"
|
|
122
127
|
class="txt-center txt-12 range-slider-position-txt opacity-0 line-height-1 absolute"
|
|
123
128
|
:style="{ '--progress': `${toPercentage}` }"
|
|
124
129
|
>
|
|
125
|
-
|
|
130
|
+
<slot name="to" :to="displayTo" :from="displayFrom" :min="formatValue(min)" :max="formatValue(max)">
|
|
131
|
+
{{ displayTo }}
|
|
132
|
+
</slot>
|
|
126
133
|
</p>
|
|
127
134
|
</div>
|
|
128
135
|
<p class="txt-center txt-14 user-select-none range-slider-txt flex space-between opacity-4 mx-05">
|
|
129
|
-
<
|
|
130
|
-
|
|
136
|
+
<slot name="min" :max="formatValue(max)" :min="formatValue(min)" :from="displayFrom" :to="displayTo" :progress="displayFrom">
|
|
137
|
+
<span>{{ formatValue(min) }}</span>
|
|
138
|
+
</slot>
|
|
139
|
+
<slot name="max" :max="formatValue(max)" :min="formatValue(min)" :from="displayFrom" :to="displayTo" :progress="displayFrom">
|
|
140
|
+
<span>{{ formatValue(max) }}</span>
|
|
141
|
+
</slot>
|
|
131
142
|
</p>
|
|
132
143
|
</div>
|
|
133
144
|
</template>
|
package/src/types/BagelForm.ts
CHANGED
|
@@ -29,7 +29,7 @@ export interface BaseBagelField<T = { [key: string]: any }> {
|
|
|
29
29
|
'id'?: string
|
|
30
30
|
'label'?: string
|
|
31
31
|
'placeholder'?: string
|
|
32
|
-
'children'?: Field<T>[]
|
|
32
|
+
'children'?: (Field<T> | string)[]
|
|
33
33
|
'class'?: AttributeValue | AttributeFn<T>
|
|
34
34
|
'attrs'?: Attributes<T>
|
|
35
35
|
'required'?: boolean
|
|
@@ -221,7 +221,7 @@ export function findBglFieldById(id: string, _schema: BglFormSchemaT): Field | u
|
|
|
221
221
|
for (const field of _schema) {
|
|
222
222
|
if (field.id === id) return field
|
|
223
223
|
if (field.children && Number(field.children.length) > 0) {
|
|
224
|
-
const child = findBglFieldById(id, field.children)
|
|
224
|
+
const child = findBglFieldById(id, field.children.filter(c => typeof c !== 'string'))
|
|
225
225
|
if (child) return child
|
|
226
226
|
}
|
|
227
227
|
}
|