@bagelink/vue 1.3.1 → 1.3.5
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.
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { SelectInput, TextInput } from '..';
|
|
2
|
-
import { Paths, Get, IterableElement,
|
|
2
|
+
import { Paths, Get, IterableElement, OmitIndexSignature } from 'type-fest';
|
|
3
|
+
import { ToString } from 'type-fest/source/internal';
|
|
4
|
+
import { LiteralStringUnion } from 'type-fest/source/literal-union';
|
|
5
|
+
import { PathsOptions, DefaultPathsOptions } from 'type-fest/source/paths';
|
|
3
6
|
import { VNode } from 'vue';
|
|
4
7
|
import { ComponentExposed } from 'vue-component-type-helpers';
|
|
5
|
-
export type ToString<T> = T extends string | number ? `${T}` : never;
|
|
6
|
-
export type LiteralStringUnion<T> = LiteralUnion<T, string>;
|
|
7
8
|
export type AttributeValue = string | number | boolean | undefined | {
|
|
8
9
|
[key: string]: any;
|
|
9
10
|
};
|
|
@@ -11,28 +12,29 @@ export type AttributeFn<T, P extends Path<T>> = (field: FieldVal<T, P>, row?: T)
|
|
|
11
12
|
export interface Attributes<T, P extends Path<T>> {
|
|
12
13
|
[key: string]: AttributeValue | AttributeFn<T, P>;
|
|
13
14
|
}
|
|
14
|
-
export type BagelFieldOptions<T, P extends Path<T>> =
|
|
15
|
+
export type BagelFieldOptions<T, P extends Path<T>> = string | ({
|
|
15
16
|
label?: string;
|
|
16
17
|
value: string | number;
|
|
17
18
|
} | string | number | boolean | {
|
|
18
19
|
[key: string]: any;
|
|
19
|
-
})[] | ((val?: FieldVal<T, P>, rowData?: T) => void)
|
|
20
|
-
export type VIfType<T, P extends Path<T>> =
|
|
20
|
+
})[] | ((val?: FieldVal<T, P>, rowData?: T) => void);
|
|
21
|
+
export type VIfType<T, P extends Path<T>> = string | boolean | ((val?: FieldVal<T, P>, rowData?: T) => boolean);
|
|
21
22
|
export type ValidationFn<T, P extends Path<T>> = (val?: FieldVal<T, P>, rowData?: T) => string | undefined;
|
|
22
|
-
export
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
export type
|
|
23
|
+
export interface ShallowPathsOptions extends PathsOptions {
|
|
24
|
+
maxRecursionDepth: 1;
|
|
25
|
+
}
|
|
26
|
+
export type _Path<T, PO extends PathsOptions = DefaultPathsOptions> = ToString<Paths<OmitIndexSignature<T>, PO>>;
|
|
27
|
+
export type Path<T, PO extends PathsOptions = DefaultPathsOptions> = FieldVal<T, _Path<T, PO>> extends Array<any> ? LiteralStringUnion<_Path<T, PO>> : _Path<T, PO>;
|
|
26
28
|
/** The value type at path P in object T. */
|
|
27
|
-
export type FieldVal<T, P extends Path<T>> =
|
|
29
|
+
export type FieldVal<T, P extends Path<T>> = unknown extends Get<T, P> ? unknown : Get<T, P>;
|
|
28
30
|
/** If path P in T is an array, this gives the array's element type. */
|
|
29
31
|
export type ArrayFieldVal<T, P extends Path<T>> = IterableElement<Get<T, P>>;
|
|
30
32
|
export type VNodeFn<T, P extends Path<T>> = (props: {
|
|
31
33
|
row?: T;
|
|
32
34
|
field: BaseBagelField<T, P>;
|
|
33
35
|
}) => VNode;
|
|
34
|
-
export type SchemaChild<T, P extends Path<T
|
|
35
|
-
export interface BaseBagelField<T, P extends Path<T
|
|
36
|
+
export type SchemaChild<T, P extends Path<T>, PO extends PathsOptions = DefaultPathsOptions> = Field<T, PO> | VNode | VNodeFn<T, P> | string;
|
|
37
|
+
export interface BaseBagelField<T, P extends Path<T>, PO extends PathsOptions = DefaultPathsOptions> {
|
|
36
38
|
'$el'?: any;
|
|
37
39
|
'id'?: P;
|
|
38
40
|
'label'?: string;
|
|
@@ -43,9 +45,9 @@ export interface BaseBagelField<T, P extends Path<T>> {
|
|
|
43
45
|
'disabled'?: boolean;
|
|
44
46
|
'helptext'?: string;
|
|
45
47
|
'options'?: BagelFieldOptions<T, P>;
|
|
46
|
-
'children'?: SchemaChild<T, P>[];
|
|
48
|
+
'children'?: SchemaChild<T, P, PO>[];
|
|
47
49
|
'slots'?: {
|
|
48
|
-
[key: string]: SchemaChild<T, P>[];
|
|
50
|
+
[key: string]: SchemaChild<T, P, PO>[];
|
|
49
51
|
};
|
|
50
52
|
'defaultValue'?: any;
|
|
51
53
|
'vIf'?: VIfType<T, P>;
|
|
@@ -54,14 +56,15 @@ export interface BaseBagelField<T, P extends Path<T>> {
|
|
|
54
56
|
'onUpdate'?: (val?: FieldVal<T, P>, rowData?: T) => unknown;
|
|
55
57
|
'validate'?: ValidationFn<T, P>;
|
|
56
58
|
}
|
|
57
|
-
export type _MappedBaseBagelField<T> = {
|
|
58
|
-
[P in Path<T>]: BaseBagelField<T, P>;
|
|
59
|
+
export type _MappedBaseBagelField<T, PO extends PathsOptions = DefaultPathsOptions> = {
|
|
60
|
+
[P in Path<T, PO>]: BaseBagelField<T, P, PO>;
|
|
59
61
|
};
|
|
60
|
-
export type MappedBaseBagelFieldP<T, P extends Path<T
|
|
61
|
-
export type FieldByP<T, P extends Path<T
|
|
62
|
-
export type Field<T> = MappedBaseBagelFieldP<T, Path<T
|
|
63
|
-
export type BglFieldT<T> = Field<T>;
|
|
64
|
-
export type BglFormSchemaT<T> = Field<T>[];
|
|
62
|
+
export type MappedBaseBagelFieldP<T, P extends Path<T>, PO extends PathsOptions = DefaultPathsOptions> = _MappedBaseBagelField<T, PO>[P];
|
|
63
|
+
export type FieldByP<T, P extends Path<T>, PO extends PathsOptions = DefaultPathsOptions> = MappedBaseBagelFieldP<T, P, PO>;
|
|
64
|
+
export type Field<T, PO extends PathsOptions = DefaultPathsOptions> = MappedBaseBagelFieldP<T, Path<T, PO>, PO>;
|
|
65
|
+
export type BglFieldT<T, PO extends PathsOptions = DefaultPathsOptions> = Field<T, PO>;
|
|
66
|
+
export type BglFormSchemaT<T, PO extends PathsOptions = DefaultPathsOptions> = Field<T, PO>[];
|
|
67
|
+
export type ShallowBglFormSchemaT<T, PO extends PathsOptions = ShallowPathsOptions> = Field<T, PO>[];
|
|
65
68
|
export interface InputBagelField<T, P extends Path<T>> extends BaseBagelField<T, P> {
|
|
66
69
|
$el: 'text' | ComponentExposed<typeof TextInput>;
|
|
67
70
|
type?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BagelForm.d.ts","sourceRoot":"","sources":["../../src/types/BagelForm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"BagelForm.d.ts","sourceRoot":"","sources":["../../src/types/BagelForm.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { ArrayFieldVal, BaseBagelField, BglFormSchemaT, FieldByP, IconType, InputBagelField, Option, Path, SchemaChild, SelectBagelField, UploadInputProps } from '..';
|
|
1
|
+
import { ArrayFieldVal, BaseBagelField, BglFormSchemaT, FieldByP, IconType, InputBagelField, Option, Path, SchemaChild, SelectBagelField, ShallowBglFormSchemaT, UploadInputProps } from '..';
|
|
2
|
+
import { DefaultPathsOptions, PathsOptions } from 'type-fest/source/paths';
|
|
2
3
|
interface InputOptions<T, P extends Path<T>> extends Partial<BaseBagelField<T, P>> {
|
|
3
4
|
defaultValue?: string | number;
|
|
4
5
|
autocomplete?: AutoFillField;
|
|
@@ -36,27 +37,27 @@ interface NumFieldOptions<T, K extends Path<T>> extends InputOptions<T, K> {
|
|
|
36
37
|
}
|
|
37
38
|
type RichTextOptions<T, P extends Path<T>> = InputOptions<T, P>;
|
|
38
39
|
export declare function getBaseField<T, P extends Path<T>>(id?: P, labelOrRest?: string | Partial<BaseBagelField<T, P>>, rest?: Partial<BaseBagelField<T, P>>): BaseBagelField<T, P>;
|
|
39
|
-
export declare function richText<T, P extends Path<T>>(id
|
|
40
|
-
export declare function txtField<T, P extends Path<T>>(id
|
|
41
|
-
export declare function selectField<T, P extends Path<T>>(id
|
|
40
|
+
export declare function richText<T, P extends Path<T>>(id?: P, label?: string, options?: RichTextOptions<T, P>): BaseBagelField<T, P>;
|
|
41
|
+
export declare function txtField<T, P extends Path<T>>(id?: P, label?: string, options?: TextInputOptions<T, P>): InputBagelField<T, P>;
|
|
42
|
+
export declare function selectField<T, P extends Path<T>>(id?: P, label?: string, options?: Option[] | (() => Option[]), config?: SlctInputOptions<T, P>): SelectBagelField<T, P>;
|
|
42
43
|
export declare const slctField: typeof selectField;
|
|
43
44
|
interface CheckInputOptions<T, K extends Path<T>> extends InputOptions<T, K> {
|
|
44
45
|
value?: string;
|
|
45
46
|
}
|
|
46
|
-
export declare function checkField<T, P extends Path<T>>(id
|
|
47
|
+
export declare function checkField<T, P extends Path<T>>(id?: P, label?: string, options?: CheckInputOptions<T, P>): BaseBagelField<T, P>;
|
|
47
48
|
interface EmailInputOptions<T, P extends Path<T>> extends InputOptions<T, P> {
|
|
48
49
|
autocorrect?: boolean;
|
|
49
50
|
serverValidate?: boolean;
|
|
50
51
|
preventFakeEmails?: boolean;
|
|
51
52
|
pattern?: string;
|
|
52
53
|
}
|
|
53
|
-
export declare function emailField<T, P extends Path<T>>(id
|
|
54
|
-
export declare function dateField<T, P extends Path<T>>(id
|
|
55
|
-
export declare function numField<T, P extends Path<T>>(id
|
|
56
|
-
export declare function frmRow<T, P extends Path<T
|
|
54
|
+
export declare function emailField<T, P extends Path<T>>(id?: P, label?: string, options?: EmailInputOptions<T, P>): BaseBagelField<T, P>;
|
|
55
|
+
export declare function dateField<T, P extends Path<T>>(id?: P, label?: string, options?: DateOptions<T, P>): BaseBagelField<T, P>;
|
|
56
|
+
export declare function numField<T, P extends Path<T>>(id?: P, label?: string, options?: NumFieldOptions<T, P>): BaseBagelField<T, P>;
|
|
57
|
+
export declare function frmRow<T, P extends Path<T>, PO extends PathsOptions = DefaultPathsOptions>(...children: SchemaChild<T, P, PO>[]): FieldByP<T, P, PO>;
|
|
57
58
|
export interface UploadOptions<T, K extends Path<T>> extends Omit<UploadInputProps, 'id'>, InputOptions<T, K> {
|
|
58
59
|
}
|
|
59
|
-
export declare function uploadField<T, P extends Path<T>>(id
|
|
60
|
+
export declare function uploadField<T, P extends Path<T>>(id?: P, label?: string, options?: UploadOptions<T, P>): BaseBagelField<T, P>;
|
|
60
61
|
interface RangeOptions<T, K extends Path<T>> extends InputOptions<T, K> {
|
|
61
62
|
min?: number;
|
|
62
63
|
max?: number;
|
|
@@ -65,7 +66,7 @@ interface RangeOptions<T, K extends Path<T>> extends InputOptions<T, K> {
|
|
|
65
66
|
multiRange?: boolean;
|
|
66
67
|
formatValue?: (value: number) => string;
|
|
67
68
|
}
|
|
68
|
-
export declare function rangeField<T, P extends Path<T>>(id
|
|
69
|
+
export declare function rangeField<T, P extends Path<T>>(id?: P, label?: string, options?: RangeOptions<T, P>): BaseBagelField<T, P>;
|
|
69
70
|
export declare function bglForm<T>(idOrField?: string | FieldByP<T, Path<T>>, ...schema: FieldByP<T, Path<T>>[]): {
|
|
70
71
|
$el: string;
|
|
71
72
|
id: string;
|
|
@@ -79,13 +80,13 @@ export declare function bglForm<T>(idOrField?: string | FieldByP<T, Path<T>>, ..
|
|
|
79
80
|
};
|
|
80
81
|
id?: undefined;
|
|
81
82
|
};
|
|
82
|
-
export declare function telField<T, P extends Path<T>>(id
|
|
83
|
+
export declare function telField<T, P extends Path<T>>(id?: P, label?: string, options?: {
|
|
83
84
|
[key: string]: any;
|
|
84
85
|
}): BaseBagelField<T, P>;
|
|
85
|
-
export declare function colorField<T, P extends Path<T>>(id
|
|
86
|
+
export declare function colorField<T, P extends Path<T>>(id?: P, label?: string, options?: {
|
|
86
87
|
[key: string]: any;
|
|
87
88
|
}): BaseBagelField<T, P>;
|
|
88
|
-
export declare function findBglFieldById<T>(id: string, _schema:
|
|
89
|
+
export declare function findBglFieldById<T>(id: string, _schema: ShallowBglFormSchemaT<T>): FieldByP<T, Path<T>> | undefined;
|
|
89
90
|
export interface ArrayFieldOptions<T, K extends Path<T>> extends InputOptions<T, K> {
|
|
90
91
|
delete?: boolean;
|
|
91
92
|
add?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BagelFormUtils.d.ts","sourceRoot":"","sources":["../../src/utils/BagelFormUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAc,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"BagelFormUtils.d.ts","sourceRoot":"","sources":["../../src/utils/BagelFormUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/types/BagelForm.ts
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import type { SelectInput, TextInput } from '@bagelink/vue'
|
|
2
|
-
import type { Paths, Get, IterableElement,
|
|
2
|
+
import type { Paths, Get, IterableElement, OmitIndexSignature } from 'type-fest'
|
|
3
|
+
import type { ToString } from 'type-fest/source/internal'
|
|
4
|
+
import type { LiteralStringUnion } from 'type-fest/source/literal-union'
|
|
5
|
+
import type { PathsOptions, DefaultPathsOptions } from 'type-fest/source/paths'
|
|
3
6
|
import type { VNode } from 'vue'
|
|
4
7
|
import type { ComponentExposed } from 'vue-component-type-helpers'
|
|
5
8
|
|
|
6
|
-
export type
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
9
|
+
export type AttributeValue =
|
|
10
|
+
| string
|
|
11
|
+
| number
|
|
12
|
+
| boolean
|
|
13
|
+
| undefined
|
|
14
|
+
| { [key: string]: any }
|
|
10
15
|
|
|
11
16
|
export type AttributeFn<T, P extends Path<T>> = (
|
|
12
17
|
field: FieldVal<T, P>,
|
|
@@ -17,10 +22,10 @@ export interface Attributes<T, P extends Path<T>> {
|
|
|
17
22
|
[key: string]: AttributeValue | AttributeFn<T, P>
|
|
18
23
|
}
|
|
19
24
|
|
|
20
|
-
export type BagelFieldOptions<T, P extends Path<T>> =
|
|
21
|
-
string
|
|
25
|
+
export type BagelFieldOptions<T, P extends Path<T>> =
|
|
26
|
+
| string
|
|
22
27
|
| (
|
|
23
|
-
{
|
|
28
|
+
| {
|
|
24
29
|
label?: string
|
|
25
30
|
value: string | number
|
|
26
31
|
}
|
|
@@ -30,52 +35,55 @@ export type BagelFieldOptions<T, P extends Path<T>> = (
|
|
|
30
35
|
| { [key: string]: any }
|
|
31
36
|
)[]
|
|
32
37
|
| ((val?: FieldVal<T, P>, rowData?: T) => void)
|
|
33
|
-
)
|
|
34
38
|
|
|
35
|
-
export type VIfType<T, P extends Path<T>> =
|
|
36
|
-
string
|
|
37
|
-
boolean
|
|
38
|
-
((val?: FieldVal<T, P>, rowData?: T) => boolean)
|
|
39
|
-
)
|
|
39
|
+
export type VIfType<T, P extends Path<T>> =
|
|
40
|
+
| string
|
|
41
|
+
| boolean
|
|
42
|
+
| ((val?: FieldVal<T, P>, rowData?: T) => boolean)
|
|
40
43
|
|
|
41
44
|
export type ValidationFn<T, P extends Path<T>> = (
|
|
42
45
|
val?: FieldVal<T, P>,
|
|
43
|
-
rowData?: T
|
|
46
|
+
rowData?: T
|
|
44
47
|
) => string | undefined
|
|
45
48
|
|
|
46
|
-
export
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
LiteralStringUnion<_Path<T>> :
|
|
60
|
-
_Path<T>
|
|
61
|
-
)
|
|
49
|
+
export interface ShallowPathsOptions extends PathsOptions {
|
|
50
|
+
maxRecursionDepth: 1
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export type _Path<
|
|
54
|
+
T,
|
|
55
|
+
PO extends PathsOptions = DefaultPathsOptions,
|
|
56
|
+
> = ToString<Paths<OmitIndexSignature<T>, PO>>
|
|
57
|
+
|
|
58
|
+
export type Path<T, PO extends PathsOptions = DefaultPathsOptions> =
|
|
59
|
+
FieldVal<T, _Path<T, PO>> extends Array<any>
|
|
60
|
+
? LiteralStringUnion<_Path<T, PO>>
|
|
61
|
+
: _Path<T, PO>
|
|
62
62
|
|
|
63
63
|
/** The value type at path P in object T. */
|
|
64
64
|
// Fall back to unknown if type resolution fails
|
|
65
|
-
export type FieldVal<T, P extends Path<T>> =
|
|
66
|
-
unknown extends Get<T, P> ?
|
|
67
|
-
unknown :
|
|
68
|
-
Get<T, P>
|
|
69
|
-
)
|
|
65
|
+
export type FieldVal<T, P extends Path<T>> =
|
|
66
|
+
unknown extends Get<T, P> ? unknown : Get<T, P>
|
|
70
67
|
|
|
71
68
|
/** If path P in T is an array, this gives the array's element type. */
|
|
72
69
|
export type ArrayFieldVal<T, P extends Path<T>> = IterableElement<Get<T, P>>
|
|
73
70
|
|
|
74
|
-
export type VNodeFn<T, P extends Path<T>> = (props: {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
71
|
+
export type VNodeFn<T, P extends Path<T>> = (props: {
|
|
72
|
+
row?: T
|
|
73
|
+
field: BaseBagelField<T, P>
|
|
74
|
+
}) => VNode
|
|
75
|
+
|
|
76
|
+
export type SchemaChild<
|
|
77
|
+
T,
|
|
78
|
+
P extends Path<T>,
|
|
79
|
+
PO extends PathsOptions = DefaultPathsOptions,
|
|
80
|
+
> = Field<T, PO> | VNode | VNodeFn<T, P> | string
|
|
81
|
+
|
|
82
|
+
export interface BaseBagelField<
|
|
83
|
+
T,
|
|
84
|
+
P extends Path<T>,
|
|
85
|
+
PO extends PathsOptions = DefaultPathsOptions,
|
|
86
|
+
> {
|
|
79
87
|
'$el'?: any
|
|
80
88
|
'id'?: P
|
|
81
89
|
'label'?: string
|
|
@@ -86,8 +94,8 @@ export interface BaseBagelField<T, P extends Path<T>> {
|
|
|
86
94
|
'disabled'?: boolean
|
|
87
95
|
'helptext'?: string
|
|
88
96
|
'options'?: BagelFieldOptions<T, P>
|
|
89
|
-
'children'?: SchemaChild<T, P>[]
|
|
90
|
-
'slots'?: { [key: string]: SchemaChild<T, P>[] }
|
|
97
|
+
'children'?: SchemaChild<T, P, PO>[]
|
|
98
|
+
'slots'?: { [key: string]: SchemaChild<T, P, PO>[] }
|
|
91
99
|
'defaultValue'?: any
|
|
92
100
|
'vIf'?: VIfType<T, P>
|
|
93
101
|
'v-if'?: VIfType<T, P>
|
|
@@ -96,26 +104,53 @@ export interface BaseBagelField<T, P extends Path<T>> {
|
|
|
96
104
|
'validate'?: ValidationFn<T, P>
|
|
97
105
|
}
|
|
98
106
|
|
|
99
|
-
export type _MappedBaseBagelField<
|
|
100
|
-
|
|
107
|
+
export type _MappedBaseBagelField<
|
|
108
|
+
T,
|
|
109
|
+
PO extends PathsOptions = DefaultPathsOptions,
|
|
110
|
+
> = {
|
|
111
|
+
[P in Path<T, PO>]: BaseBagelField<T, P, PO>
|
|
101
112
|
}
|
|
102
113
|
|
|
103
|
-
export type MappedBaseBagelFieldP<
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
export type
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
+
export type MappedBaseBagelFieldP<
|
|
115
|
+
T,
|
|
116
|
+
P extends Path<T>,
|
|
117
|
+
PO extends PathsOptions = DefaultPathsOptions,
|
|
118
|
+
> = _MappedBaseBagelField<T, PO>[P]
|
|
119
|
+
|
|
120
|
+
export type FieldByP<
|
|
121
|
+
T,
|
|
122
|
+
P extends Path<T>,
|
|
123
|
+
PO extends PathsOptions = DefaultPathsOptions,
|
|
124
|
+
> = MappedBaseBagelFieldP<T, P, PO>
|
|
125
|
+
|
|
126
|
+
export type Field<
|
|
127
|
+
T,
|
|
128
|
+
PO extends PathsOptions = DefaultPathsOptions,
|
|
129
|
+
> = MappedBaseBagelFieldP<T, Path<T, PO>, PO>
|
|
130
|
+
|
|
131
|
+
export type BglFieldT<
|
|
132
|
+
T,
|
|
133
|
+
PO extends PathsOptions = DefaultPathsOptions,
|
|
134
|
+
> = Field<T, PO>
|
|
135
|
+
|
|
136
|
+
export type BglFormSchemaT<
|
|
137
|
+
T,
|
|
138
|
+
PO extends PathsOptions = DefaultPathsOptions,
|
|
139
|
+
> = Field<T, PO>[]
|
|
140
|
+
|
|
141
|
+
export type ShallowBglFormSchemaT<
|
|
142
|
+
T,
|
|
143
|
+
PO extends PathsOptions = ShallowPathsOptions,
|
|
144
|
+
> = Field<T, PO>[]
|
|
145
|
+
|
|
146
|
+
export interface InputBagelField<T, P extends Path<T>>
|
|
147
|
+
extends BaseBagelField<T, P> {
|
|
114
148
|
$el: 'text' | ComponentExposed<typeof TextInput>
|
|
115
149
|
type?: string
|
|
116
150
|
}
|
|
117
151
|
|
|
118
|
-
export interface SelectBagelField<T, P extends Path<T>>
|
|
152
|
+
export interface SelectBagelField<T, P extends Path<T>>
|
|
153
|
+
extends BaseBagelField<T, P> {
|
|
119
154
|
$el: 'select' | ComponentExposed<typeof SelectInput>
|
|
120
155
|
type?: string
|
|
121
156
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { ArrayFieldVal, Attributes, BaseBagelField, BglFormSchemaT, FieldByP, IconType, InputBagelField, Option, Path, SchemaChild, SelectBagelField, UploadInputProps } from '@bagelink/vue'
|
|
1
|
+
import type { ArrayFieldVal, Attributes, BaseBagelField, BglFormSchemaT, FieldByP, IconType, InputBagelField, Option, Path, SchemaChild, SelectBagelField, ShallowBglFormSchemaT, UploadInputProps } from '@bagelink/vue'
|
|
2
|
+
import type { DefaultPathsOptions, PathsOptions } from 'type-fest/source/paths'
|
|
2
3
|
|
|
3
4
|
interface InputOptions<T, P extends Path<T>> extends Partial<BaseBagelField<T, P>> {
|
|
4
5
|
defaultValue?: string | number
|
|
@@ -52,7 +53,7 @@ export function getBaseField<T, P extends Path<T>>(
|
|
|
52
53
|
}
|
|
53
54
|
|
|
54
55
|
export function richText<T, P extends Path<T>>(
|
|
55
|
-
id
|
|
56
|
+
id?: P,
|
|
56
57
|
label?: string,
|
|
57
58
|
options?: RichTextOptions<T, P>,
|
|
58
59
|
): BaseBagelField<T, P> {
|
|
@@ -71,7 +72,7 @@ export function richText<T, P extends Path<T>>(
|
|
|
71
72
|
}
|
|
72
73
|
|
|
73
74
|
export function txtField<T, P extends Path<T>>(
|
|
74
|
-
id
|
|
75
|
+
id?: P,
|
|
75
76
|
label?: string,
|
|
76
77
|
options?: TextInputOptions<T, P>,
|
|
77
78
|
): InputBagelField<T, P> {
|
|
@@ -102,7 +103,7 @@ export function txtField<T, P extends Path<T>>(
|
|
|
102
103
|
}
|
|
103
104
|
|
|
104
105
|
export function selectField<T, P extends Path<T>>(
|
|
105
|
-
id
|
|
106
|
+
id?: P,
|
|
106
107
|
label?: string,
|
|
107
108
|
options?: Option[] | (() => Option[]),
|
|
108
109
|
config?: SlctInputOptions<T, P>,
|
|
@@ -135,7 +136,7 @@ interface CheckInputOptions<T, K extends Path<T>> extends InputOptions<T, K> {
|
|
|
135
136
|
}
|
|
136
137
|
|
|
137
138
|
export function checkField<T, P extends Path<T>>(
|
|
138
|
-
id
|
|
139
|
+
id?: P,
|
|
139
140
|
label?: string,
|
|
140
141
|
options?: CheckInputOptions<T, P>,
|
|
141
142
|
): BaseBagelField<T, P> {
|
|
@@ -158,7 +159,7 @@ interface EmailInputOptions<T, P extends Path<T>> extends InputOptions<T, P> {
|
|
|
158
159
|
pattern?: string
|
|
159
160
|
}
|
|
160
161
|
|
|
161
|
-
export function emailField<T, P extends Path<T>>(id
|
|
162
|
+
export function emailField<T, P extends Path<T>>(id?: P, label?: string, options?: EmailInputOptions<T, P>): BaseBagelField<T, P> {
|
|
162
163
|
return {
|
|
163
164
|
$el: 'email',
|
|
164
165
|
id,
|
|
@@ -176,7 +177,7 @@ export function emailField<T, P extends Path<T>>(id: P, label?: string, options?
|
|
|
176
177
|
}
|
|
177
178
|
|
|
178
179
|
export function dateField<T, P extends Path<T>>(
|
|
179
|
-
id
|
|
180
|
+
id?: P,
|
|
180
181
|
label?: string,
|
|
181
182
|
options?: DateOptions<T, P>,
|
|
182
183
|
): BaseBagelField<T, P> {
|
|
@@ -201,7 +202,7 @@ export function dateField<T, P extends Path<T>>(
|
|
|
201
202
|
}
|
|
202
203
|
|
|
203
204
|
export function numField<T, P extends Path<T>>(
|
|
204
|
-
id
|
|
205
|
+
id?: P,
|
|
205
206
|
label?: string,
|
|
206
207
|
options?: NumFieldOptions<T, P>,
|
|
207
208
|
): BaseBagelField<T, P> {
|
|
@@ -229,9 +230,9 @@ export function numField<T, P extends Path<T>>(
|
|
|
229
230
|
}
|
|
230
231
|
}
|
|
231
232
|
|
|
232
|
-
export function frmRow<T, P extends Path<T
|
|
233
|
-
...children: SchemaChild<T, P>[]
|
|
234
|
-
): FieldByP<T, P> {
|
|
233
|
+
export function frmRow<T, P extends Path<T>, PO extends PathsOptions = DefaultPathsOptions>(
|
|
234
|
+
...children: SchemaChild<T, P, PO>[]
|
|
235
|
+
): FieldByP<T, P, PO> {
|
|
235
236
|
return {
|
|
236
237
|
$el: 'div',
|
|
237
238
|
class: 'flex gap-1 m_block align-items-end',
|
|
@@ -242,7 +243,7 @@ export function frmRow<T, P extends Path<T>>(
|
|
|
242
243
|
export interface UploadOptions<T, K extends Path<T>> extends Omit<UploadInputProps, 'id'>, InputOptions<T, K> {}
|
|
243
244
|
|
|
244
245
|
export function uploadField<T, P extends Path<T>>(
|
|
245
|
-
id
|
|
246
|
+
id?: P,
|
|
246
247
|
label?: string,
|
|
247
248
|
options?: UploadOptions<T, P>
|
|
248
249
|
): BaseBagelField<T, P> {
|
|
@@ -267,7 +268,7 @@ interface RangeOptions<T, K extends Path<T>> extends InputOptions<T, K> {
|
|
|
267
268
|
}
|
|
268
269
|
|
|
269
270
|
export function rangeField<T, P extends Path<T>>(
|
|
270
|
-
id
|
|
271
|
+
id?: P,
|
|
271
272
|
label?: string,
|
|
272
273
|
options?: RangeOptions <T, P>
|
|
273
274
|
): BaseBagelField<T, P> {
|
|
@@ -307,7 +308,7 @@ export function bglForm<T>(idOrField?: string | FieldByP<T, Path<T>>, ...schema:
|
|
|
307
308
|
}
|
|
308
309
|
|
|
309
310
|
export function telField<T, P extends Path<T>>(
|
|
310
|
-
id
|
|
311
|
+
id?: P,
|
|
311
312
|
label?: string,
|
|
312
313
|
options?: { [key: string]: any }
|
|
313
314
|
): BaseBagelField<T, P> {
|
|
@@ -322,7 +323,7 @@ export function telField<T, P extends Path<T>>(
|
|
|
322
323
|
}
|
|
323
324
|
|
|
324
325
|
export function colorField<T, P extends Path<T>>(
|
|
325
|
-
id
|
|
326
|
+
id?: P,
|
|
326
327
|
label?: string,
|
|
327
328
|
options?: { [key: string]: any }
|
|
328
329
|
): BaseBagelField<T, P> {
|
|
@@ -336,14 +337,14 @@ export function colorField<T, P extends Path<T>>(
|
|
|
336
337
|
}
|
|
337
338
|
}
|
|
338
339
|
|
|
339
|
-
export function findBglFieldById<T>(id: string, _schema:
|
|
340
|
+
export function findBglFieldById<T>(id: string, _schema: ShallowBglFormSchemaT<T>): FieldByP<T, Path<T>> | undefined {
|
|
340
341
|
for (const field of _schema) {
|
|
341
342
|
if (field.id === id) return field as FieldByP<T, Path<T>> | undefined
|
|
342
343
|
if (field.children && Number(field.children.length) > 0) {
|
|
343
344
|
const fieldChildren = field.children.filter(
|
|
344
345
|
c => typeof c === 'object' && '$el' in c
|
|
345
346
|
)
|
|
346
|
-
const child = findBglFieldById(id, fieldChildren as
|
|
347
|
+
const child = findBglFieldById(id, fieldChildren as ShallowBglFormSchemaT<T>)
|
|
347
348
|
if (child) return child as FieldByP<T, Path<T>> | undefined
|
|
348
349
|
}
|
|
349
350
|
}
|
|
@@ -400,23 +401,7 @@ export function arrField<T, P extends Path<T>>(
|
|
|
400
401
|
// })
|
|
401
402
|
// }
|
|
402
403
|
|
|
403
|
-
export function useForm()
|
|
404
|
-
txtField: typeof txtField
|
|
405
|
-
selectField: typeof selectField
|
|
406
|
-
checkField: typeof checkField
|
|
407
|
-
dateField: typeof dateField
|
|
408
|
-
numField: typeof numField
|
|
409
|
-
frmRow: typeof frmRow
|
|
410
|
-
uploadField: typeof uploadField
|
|
411
|
-
rangeField: typeof rangeField
|
|
412
|
-
bglForm: typeof bglForm
|
|
413
|
-
telField: typeof telField
|
|
414
|
-
colorField: typeof colorField
|
|
415
|
-
arrField: typeof arrField
|
|
416
|
-
richText: typeof richText
|
|
417
|
-
findBglFieldById: typeof findBglFieldById
|
|
418
|
-
getBaseField: typeof getBaseField
|
|
419
|
-
} {
|
|
404
|
+
export function useForm() {
|
|
420
405
|
return {
|
|
421
406
|
txtField,
|
|
422
407
|
selectField,
|