@bagelink/vue 0.0.1174 → 0.0.1178
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/form/BagelForm.vue.d.ts +1 -0
- package/dist/components/form/BagelForm.vue.d.ts.map +1 -1
- package/dist/index.cjs +13 -7
- package/dist/index.mjs +13 -7
- package/dist/utils/BagelFormUtils.d.ts +10 -10
- package/dist/utils/BagelFormUtils.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/components/form/BagelForm.vue +13 -6
- package/src/utils/BagelFormUtils.ts +23 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BagelForm.vue.d.ts","sourceRoot":"","sources":["../../../src/components/form/BagelForm.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BagelForm.vue.d.ts","sourceRoot":"","sources":["../../../src/components/form/BagelForm.vue"],"names":[],"mappings":"AAiHA,OAAO,KAAK,EAAE,gBAAgB,EAAS,MAAM,eAAe,CAAA;AAK5D,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE;IAC/D,UAAU,CAAC,EAAE,CAAC,CAAA;IACd,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;IAC5B,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;CACzB;yBAEgB,CAAC,SAAS;IAAC,CAAC,GAAG,EAAC,MAAM,GAAE,GAAG,CAAA;CAAC,eAC/B,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAClD,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,iBAC5F,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;WAmL1D,mBAAmB,CAAC;;;0LAAkE,CAAC,4BAA2B;oBACzG,OAAO,KAAK,EAAE,gBAAgB;;;;MAAsB,GAAG,IAAI;WACpE,GAAG;;yBArCkB,GAAG;;;;;YACJ,GAAG;;;YAvI1B,mBAAmB,SAAS,CAAC,GAAG,IAAI;YACpC,QAAQ,SAAS,CAAC,GAAG,IAAI;;OA+KlB,OAAO,KAAK,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,WAAW,CAAC,CAAA;CAAE;AA7LzE,wBA6L4E;AAC5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
|
package/dist/index.cjs
CHANGED
|
@@ -11568,23 +11568,24 @@ const _sfc_main$R = /* @__PURE__ */ vue.defineComponent({
|
|
|
11568
11568
|
__name: "BagelForm",
|
|
11569
11569
|
props: {
|
|
11570
11570
|
modelValue: { default: void 0 },
|
|
11571
|
-
schema: { default: void 0 }
|
|
11571
|
+
schema: { default: void 0 },
|
|
11572
|
+
tag: { default: "form" }
|
|
11572
11573
|
},
|
|
11573
11574
|
emits: ["update:modelValue", "submit"],
|
|
11574
11575
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
11575
11576
|
const props2 = __props;
|
|
11576
11577
|
const emit2 = __emit;
|
|
11577
11578
|
const form = vue.ref();
|
|
11578
|
-
const formData = vue.ref(
|
|
11579
|
-
const initialFormData = vue.ref(
|
|
11579
|
+
const formData = vue.ref(JSON.parse(JSON.stringify(props2.modelValue ?? {})));
|
|
11580
|
+
const initialFormData = vue.ref(JSON.parse(JSON.stringify(props2.modelValue ?? {})));
|
|
11580
11581
|
vue.onMounted(() => {
|
|
11581
11582
|
if (props2.modelValue) {
|
|
11582
|
-
initialFormData.value =
|
|
11583
|
+
initialFormData.value = JSON.parse(JSON.stringify(props2.modelValue));
|
|
11583
11584
|
}
|
|
11584
11585
|
});
|
|
11585
11586
|
vue.watch(() => props2.modelValue, (newValue) => {
|
|
11586
11587
|
if (newValue !== void 0) {
|
|
11587
|
-
formData.value =
|
|
11588
|
+
formData.value = JSON.parse(JSON.stringify(newValue));
|
|
11588
11589
|
}
|
|
11589
11590
|
}, { immediate: true, deep: true });
|
|
11590
11591
|
const resolvedSchema = vue.computed(() => {
|
|
@@ -11632,7 +11633,8 @@ const _sfc_main$R = /* @__PURE__ */ vue.defineComponent({
|
|
|
11632
11633
|
}
|
|
11633
11634
|
__expose({ form, isDirty: isDirty.value, validateForm });
|
|
11634
11635
|
return (_ctx, _cache) => {
|
|
11635
|
-
return vue.openBlock(), vue.createElementBlock("form", {
|
|
11636
|
+
return props2.tag === "form" ? (vue.openBlock(), vue.createElementBlock("form", {
|
|
11637
|
+
key: 0,
|
|
11636
11638
|
ref_key: "form",
|
|
11637
11639
|
ref: form,
|
|
11638
11640
|
onSubmit: vue.withModifiers(handleSubmit, ["prevent"])
|
|
@@ -11647,7 +11649,11 @@ const _sfc_main$R = /* @__PURE__ */ vue.defineComponent({
|
|
|
11647
11649
|
isDirty: isDirty.value,
|
|
11648
11650
|
validateForm
|
|
11649
11651
|
})
|
|
11650
|
-
], 544)
|
|
11652
|
+
], 544)) : (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 1 }, vue.renderList(resolvedSchema.value, (field) => {
|
|
11653
|
+
return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(renderSchemaField(field)), {
|
|
11654
|
+
key: field.id
|
|
11655
|
+
});
|
|
11656
|
+
}), 128));
|
|
11651
11657
|
};
|
|
11652
11658
|
}
|
|
11653
11659
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -11566,23 +11566,24 @@ const _sfc_main$R = /* @__PURE__ */ defineComponent({
|
|
|
11566
11566
|
__name: "BagelForm",
|
|
11567
11567
|
props: {
|
|
11568
11568
|
modelValue: { default: void 0 },
|
|
11569
|
-
schema: { default: void 0 }
|
|
11569
|
+
schema: { default: void 0 },
|
|
11570
|
+
tag: { default: "form" }
|
|
11570
11571
|
},
|
|
11571
11572
|
emits: ["update:modelValue", "submit"],
|
|
11572
11573
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
11573
11574
|
const props2 = __props;
|
|
11574
11575
|
const emit2 = __emit;
|
|
11575
11576
|
const form = ref();
|
|
11576
|
-
const formData = ref(
|
|
11577
|
-
const initialFormData = ref(
|
|
11577
|
+
const formData = ref(JSON.parse(JSON.stringify(props2.modelValue ?? {})));
|
|
11578
|
+
const initialFormData = ref(JSON.parse(JSON.stringify(props2.modelValue ?? {})));
|
|
11578
11579
|
onMounted(() => {
|
|
11579
11580
|
if (props2.modelValue) {
|
|
11580
|
-
initialFormData.value =
|
|
11581
|
+
initialFormData.value = JSON.parse(JSON.stringify(props2.modelValue));
|
|
11581
11582
|
}
|
|
11582
11583
|
});
|
|
11583
11584
|
watch(() => props2.modelValue, (newValue) => {
|
|
11584
11585
|
if (newValue !== void 0) {
|
|
11585
|
-
formData.value =
|
|
11586
|
+
formData.value = JSON.parse(JSON.stringify(newValue));
|
|
11586
11587
|
}
|
|
11587
11588
|
}, { immediate: true, deep: true });
|
|
11588
11589
|
const resolvedSchema = computed(() => {
|
|
@@ -11630,7 +11631,8 @@ const _sfc_main$R = /* @__PURE__ */ defineComponent({
|
|
|
11630
11631
|
}
|
|
11631
11632
|
__expose({ form, isDirty: isDirty.value, validateForm });
|
|
11632
11633
|
return (_ctx, _cache) => {
|
|
11633
|
-
return openBlock(), createElementBlock("form", {
|
|
11634
|
+
return props2.tag === "form" ? (openBlock(), createElementBlock("form", {
|
|
11635
|
+
key: 0,
|
|
11634
11636
|
ref_key: "form",
|
|
11635
11637
|
ref: form,
|
|
11636
11638
|
onSubmit: withModifiers(handleSubmit, ["prevent"])
|
|
@@ -11645,7 +11647,11 @@ const _sfc_main$R = /* @__PURE__ */ defineComponent({
|
|
|
11645
11647
|
isDirty: isDirty.value,
|
|
11646
11648
|
validateForm
|
|
11647
11649
|
})
|
|
11648
|
-
], 544)
|
|
11650
|
+
], 544)) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(resolvedSchema.value, (field) => {
|
|
11651
|
+
return openBlock(), createBlock(resolveDynamicComponent(renderSchemaField(field)), {
|
|
11652
|
+
key: field.id
|
|
11653
|
+
});
|
|
11654
|
+
}), 128));
|
|
11649
11655
|
};
|
|
11650
11656
|
}
|
|
11651
11657
|
});
|
|
@@ -32,21 +32,21 @@ type RichTextOptions = InputOptions;
|
|
|
32
32
|
export declare function getBaseField<T extends {
|
|
33
33
|
[key: string]: any;
|
|
34
34
|
}>(id?: keyof T extends string ? keyof T : string, labelOrRest?: string | Partial<Field<T>>, rest?: Partial<Field<T>>): Field<T>;
|
|
35
|
-
export declare function richText(id: string, label?: string, options?: RichTextOptions): {
|
|
35
|
+
export declare function richText<T>(id: keyof T extends string ? keyof T : string, label?: string, options?: RichTextOptions): {
|
|
36
36
|
$el: string;
|
|
37
37
|
class: string | undefined;
|
|
38
38
|
required: boolean | undefined;
|
|
39
|
-
id: string;
|
|
39
|
+
id: keyof T extends string ? keyof T : string;
|
|
40
40
|
label: string | undefined;
|
|
41
41
|
vIf: boolean | ((item: any, row: any) => boolean) | undefined;
|
|
42
42
|
placeholder: string | undefined;
|
|
43
43
|
attrs: {};
|
|
44
44
|
};
|
|
45
|
-
export declare function txtField(id: string, label?: string, options?: TextInputOptions): Field;
|
|
46
|
-
export declare function slctField(id: string, label?: string, options?: Option[] | (() => Option[]), config?: SlctInputOptions): Field;
|
|
47
|
-
export declare function checkField(id: string, label?: string, options?: InputOptions): Field;
|
|
48
|
-
export declare function dateField(id: string, label?: string, options?: DateOptions): Field;
|
|
49
|
-
export declare function numField(id: string, label?: string, options?: NumFieldOptions): Field;
|
|
45
|
+
export declare function txtField<T>(id: keyof T extends string ? keyof T : string, label?: string, options?: TextInputOptions): Field;
|
|
46
|
+
export declare function slctField<T>(id: keyof T extends string ? keyof T : string, label?: string, options?: Option[] | (() => Option[]), config?: SlctInputOptions): Field;
|
|
47
|
+
export declare function checkField<T>(id: keyof T extends string ? keyof T : string, label?: string, options?: InputOptions): Field;
|
|
48
|
+
export declare function dateField<T>(id: keyof T extends string ? keyof T : string, label?: string, options?: DateOptions): Field;
|
|
49
|
+
export declare function numField<T>(id: keyof T extends string ? keyof T : string, label?: string, options?: NumFieldOptions): Field;
|
|
50
50
|
export declare function frmRow(...children: Field[]): {
|
|
51
51
|
$el: string;
|
|
52
52
|
class: string;
|
|
@@ -88,7 +88,7 @@ export declare function bglForm(idOrField?: string | Field, ...schema: Field[]):
|
|
|
88
88
|
};
|
|
89
89
|
id?: undefined;
|
|
90
90
|
};
|
|
91
|
-
export declare function telField(id: string, label?: string, options?: {
|
|
91
|
+
export declare function telField<T>(id: keyof T extends string ? keyof T : string, label?: string, options?: {
|
|
92
92
|
[key: string]: any;
|
|
93
93
|
}): Field;
|
|
94
94
|
export declare function findBglFieldById(id: string, _schema: BglFormSchemaT): Field | undefined;
|
|
@@ -96,9 +96,9 @@ interface ArrayFieldOptions extends InputOptions {
|
|
|
96
96
|
delete?: boolean;
|
|
97
97
|
add?: boolean;
|
|
98
98
|
}
|
|
99
|
-
export declare function arrField(id: string, label: string, schema: BglFormSchemaT, options?: ArrayFieldOptions): {
|
|
99
|
+
export declare function arrField<T>(id: keyof T extends string ? keyof T : string, label: string, schema: BglFormSchemaT, options?: ArrayFieldOptions): {
|
|
100
100
|
label: string;
|
|
101
|
-
id: string;
|
|
101
|
+
id: keyof T extends string ? keyof T : string;
|
|
102
102
|
$el: string;
|
|
103
103
|
vIf: boolean | ((item: any, row: any) => boolean) | undefined;
|
|
104
104
|
attrs: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BagelFormUtils.d.ts","sourceRoot":"","sources":["../../src/utils/BagelFormUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAIlE,UAAU,YAAY;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,CAAA;CAClD;AAED,KAAK,WAAW,GAAG,YAAY,CAAA;AAE/B,UAAU,gBAAiB,SAAQ,YAAY;IAC9C,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAA;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,UAAU,gBAAiB,SAAQ,YAAY;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,GAAG,CAAA;CAClC;AAED,UAAU,eAAgB,SAAQ,YAAY;IAC7C,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,CAAA;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,KAAK,eAAe,GAAG,YAAY,CAAA;AAEnC,wBAAgB,YAAY,CAAC,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC5D,EAAE,CAAC,EAAE,MAAM,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,EAC9C,WAAW,GAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAM,EAC5C,IAAI,GAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAM,GAC1B,KAAK,CAAC,CAAC,CAAC,CAGV;AAED,wBAAgB,QAAQ,
|
|
1
|
+
{"version":3,"file":"BagelFormUtils.d.ts","sourceRoot":"","sources":["../../src/utils/BagelFormUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bagelink/vue",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.1178",
|
|
5
5
|
"description": "Bagel core sdk packages",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Neveh Allon",
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"@vueuse/core": "^12.5.0",
|
|
84
84
|
"axios": "^1.7.9",
|
|
85
85
|
"floating-vue": "^5.2.2",
|
|
86
|
-
"libphonenumber-js": "1.11.
|
|
86
|
+
"libphonenumber-js": "1.11.19",
|
|
87
87
|
"signature_pad": "^5.0.4"
|
|
88
88
|
},
|
|
89
89
|
"scripts": {
|
|
@@ -7,11 +7,13 @@ import { useSchemaField } from '../../composables/useSchemaField'
|
|
|
7
7
|
export interface BagelFormProps<T extends { [key: string]: any }> {
|
|
8
8
|
modelValue?: T
|
|
9
9
|
schema?: BglFormSchemaFnT<T>
|
|
10
|
+
tag?: 'form' | 'template'
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
const props = withDefaults(defineProps<BagelFormProps<T>>(), {
|
|
13
14
|
modelValue: undefined,
|
|
14
|
-
schema: undefined
|
|
15
|
+
schema: undefined,
|
|
16
|
+
tag: 'form'
|
|
15
17
|
})
|
|
16
18
|
|
|
17
19
|
const emit = defineEmits<{
|
|
@@ -20,19 +22,19 @@ const emit = defineEmits<{
|
|
|
20
22
|
}>()
|
|
21
23
|
|
|
22
24
|
const form = ref<HTMLFormElement>()
|
|
23
|
-
const formData = ref<T>(
|
|
24
|
-
const initialFormData = ref<T>(
|
|
25
|
+
const formData = ref<T>(JSON.parse(JSON.stringify(props.modelValue ?? {})) as T)
|
|
26
|
+
const initialFormData = ref<T>(JSON.parse(JSON.stringify(props.modelValue ?? {})) as T)
|
|
25
27
|
|
|
26
28
|
onMounted(() => {
|
|
27
29
|
if (props.modelValue) {
|
|
28
|
-
initialFormData.value =
|
|
30
|
+
initialFormData.value = JSON.parse(JSON.stringify(props.modelValue))
|
|
29
31
|
}
|
|
30
32
|
})
|
|
31
33
|
|
|
32
34
|
// Keep formData in sync with modelValue prop only if it's provided
|
|
33
35
|
watch(() => props.modelValue, (newValue) => {
|
|
34
36
|
if (newValue !== undefined) {
|
|
35
|
-
formData.value =
|
|
37
|
+
formData.value = JSON.parse(JSON.stringify(newValue))
|
|
36
38
|
}
|
|
37
39
|
}, { immediate: true, deep: true })
|
|
38
40
|
|
|
@@ -92,7 +94,7 @@ defineExpose({ form, isDirty, validateForm })
|
|
|
92
94
|
</script>
|
|
93
95
|
|
|
94
96
|
<template>
|
|
95
|
-
<form ref="form" @submit.prevent="handleSubmit">
|
|
97
|
+
<form v-if="props.tag === 'form'" ref="form" @submit.prevent="handleSubmit">
|
|
96
98
|
<template v-if="resolvedSchema">
|
|
97
99
|
<template v-for="field in (resolvedSchema as Field[])" :key="field.id">
|
|
98
100
|
<component :is="renderSchemaField(field)" />
|
|
@@ -101,4 +103,9 @@ defineExpose({ form, isDirty, validateForm })
|
|
|
101
103
|
<slot v-else />
|
|
102
104
|
<slot name="submit" :submit="handleSubmit" :isDirty="isDirty" :validateForm="validateForm" />
|
|
103
105
|
</form>
|
|
106
|
+
<template v-else>
|
|
107
|
+
<template v-for="field in (resolvedSchema as Field[])" :key="field.id">
|
|
108
|
+
<component :is="renderSchemaField(field)" />
|
|
109
|
+
</template>
|
|
110
|
+
</template>
|
|
104
111
|
</template>
|
|
@@ -47,8 +47,8 @@ export function getBaseField<T extends { [key: string]: any }>(
|
|
|
47
47
|
return { id, label: labelOrRest, ...rest }
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
export function richText(
|
|
51
|
-
id: string,
|
|
50
|
+
export function richText<T>(
|
|
51
|
+
id: keyof T extends string ? keyof T : string,
|
|
52
52
|
label?: string,
|
|
53
53
|
options?: RichTextOptions,
|
|
54
54
|
) {
|
|
@@ -64,8 +64,8 @@ export function richText(
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
export function txtField(
|
|
68
|
-
id: string,
|
|
67
|
+
export function txtField<T>(
|
|
68
|
+
id: keyof T extends string ? keyof T : string,
|
|
69
69
|
label?: string,
|
|
70
70
|
options?: TextInputOptions,
|
|
71
71
|
): Field {
|
|
@@ -87,8 +87,8 @@ export function txtField(
|
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
export function slctField(
|
|
91
|
-
id: string,
|
|
90
|
+
export function slctField<T>(
|
|
91
|
+
id: keyof T extends string ? keyof T : string,
|
|
92
92
|
label?: string,
|
|
93
93
|
options?: Option[] | (() => Option[]),
|
|
94
94
|
config?: SlctInputOptions,
|
|
@@ -114,8 +114,8 @@ export function slctField(
|
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
-
export function checkField(
|
|
118
|
-
id: string,
|
|
117
|
+
export function checkField<T>(
|
|
118
|
+
id: keyof T extends string ? keyof T : string,
|
|
119
119
|
label?: string,
|
|
120
120
|
options?: InputOptions,
|
|
121
121
|
): Field {
|
|
@@ -128,8 +128,8 @@ export function checkField(
|
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
|
|
131
|
-
export function dateField(
|
|
132
|
-
id: string,
|
|
131
|
+
export function dateField<T>(
|
|
132
|
+
id: keyof T extends string ? keyof T : string,
|
|
133
133
|
label?: string,
|
|
134
134
|
options?: DateOptions,
|
|
135
135
|
): Field {
|
|
@@ -148,8 +148,8 @@ export function dateField(
|
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
|
|
151
|
-
export function numField(
|
|
152
|
-
id: string,
|
|
151
|
+
export function numField<T>(
|
|
152
|
+
id: keyof T extends string ? keyof T : string,
|
|
153
153
|
label?: string,
|
|
154
154
|
options?: NumFieldOptions,
|
|
155
155
|
): Field {
|
|
@@ -217,7 +217,11 @@ export function bglForm(idOrField?: string | Field, ...schema: Field[]) {
|
|
|
217
217
|
}
|
|
218
218
|
}
|
|
219
219
|
|
|
220
|
-
export function telField(
|
|
220
|
+
export function telField<T>(
|
|
221
|
+
id: keyof T extends string ? keyof T : string,
|
|
222
|
+
label?: string,
|
|
223
|
+
options?: { [key: string]: any }
|
|
224
|
+
): Field {
|
|
221
225
|
return {
|
|
222
226
|
$el: markRaw(TelInput),
|
|
223
227
|
id,
|
|
@@ -243,7 +247,12 @@ interface ArrayFieldOptions extends InputOptions {
|
|
|
243
247
|
add?: boolean
|
|
244
248
|
}
|
|
245
249
|
|
|
246
|
-
export function arrField(
|
|
250
|
+
export function arrField<T>(
|
|
251
|
+
id: keyof T extends string ? keyof T : string,
|
|
252
|
+
label: string,
|
|
253
|
+
schema: BglFormSchemaT,
|
|
254
|
+
options?: ArrayFieldOptions
|
|
255
|
+
) {
|
|
247
256
|
return {
|
|
248
257
|
label,
|
|
249
258
|
id,
|