@bagelink/vue 0.0.226-beta.0 → 0.0.229-beta.0
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/TableSchema.vue.d.ts +39 -3
- package/dist/components/TableSchema.vue.d.ts.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/style.css +21 -21
- package/dist/types/BagelForm.d.ts +3 -2
- package/dist/types/BagelForm.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/components/TableSchema.vue +44 -10
- package/src/types/BagelForm.ts +5 -2
|
@@ -3,15 +3,51 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
|
|
|
3
3
|
data: any[];
|
|
4
4
|
schema: BglFormSchemaT;
|
|
5
5
|
}>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
6
|
-
select: (
|
|
6
|
+
select: (args_0: Record<string, any>) => void;
|
|
7
7
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
8
8
|
data: any[];
|
|
9
9
|
schema: BglFormSchemaT;
|
|
10
10
|
}>>> & {
|
|
11
|
-
onSelect?: ((
|
|
11
|
+
onSelect?: ((args_0: Record<string, any>) => any) | undefined;
|
|
12
12
|
}, {}, {}>, Partial<Record<string, (_: {
|
|
13
13
|
row: any;
|
|
14
|
-
field:
|
|
14
|
+
field: Required<Pick<{
|
|
15
|
+
$el?: any;
|
|
16
|
+
id?: string | undefined;
|
|
17
|
+
label?: string | undefined;
|
|
18
|
+
placeholder?: string | undefined;
|
|
19
|
+
children?: import('..').Field<Record<string, any>>[] | undefined;
|
|
20
|
+
class?: import('..').AttributeValue | import('..').AttributeFn<Record<string, any>>;
|
|
21
|
+
options?: string | (string | number | {
|
|
22
|
+
label: string;
|
|
23
|
+
value: string | number;
|
|
24
|
+
})[] | undefined;
|
|
25
|
+
attrs?: import('..').Attributes<Record<string, any>> | undefined;
|
|
26
|
+
required?: boolean | undefined;
|
|
27
|
+
hint?: string | undefined;
|
|
28
|
+
defaultValue?: any;
|
|
29
|
+
transform?: ((val?: any, rowData?: Record<string, any> | undefined) => any) | undefined;
|
|
30
|
+
onUpdate?: ((val: any, fieldData?: any, rowData?: Record<string, any> | undefined) => void) | undefined;
|
|
31
|
+
'v-if'?: string | boolean | ((val: any, row: Record<string, any>) => boolean) | undefined;
|
|
32
|
+
}, "$el" | "id">> & Omit<{
|
|
33
|
+
$el?: any;
|
|
34
|
+
id?: string | undefined;
|
|
35
|
+
label?: string | undefined;
|
|
36
|
+
placeholder?: string | undefined;
|
|
37
|
+
children?: import('..').Field<Record<string, any>>[] | undefined;
|
|
38
|
+
class?: import('..').AttributeValue | import('..').AttributeFn<Record<string, any>>;
|
|
39
|
+
options?: string | (string | number | {
|
|
40
|
+
label: string;
|
|
41
|
+
value: string | number;
|
|
42
|
+
})[] | undefined;
|
|
43
|
+
attrs?: import('..').Attributes<Record<string, any>> | undefined;
|
|
44
|
+
required?: boolean | undefined;
|
|
45
|
+
hint?: string | undefined;
|
|
46
|
+
defaultValue?: any;
|
|
47
|
+
transform?: ((val?: any, rowData?: Record<string, any> | undefined) => any) | undefined;
|
|
48
|
+
onUpdate?: ((val: any, fieldData?: any, rowData?: Record<string, any> | undefined) => void) | undefined;
|
|
49
|
+
'v-if'?: string | boolean | ((val: any, row: Record<string, any>) => boolean) | undefined;
|
|
50
|
+
}, "$el" | "id">;
|
|
15
51
|
}) => any>>>;
|
|
16
52
|
export default _default;
|
|
17
53
|
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableSchema.vue.d.ts","sourceRoot":"","sources":["../../src/components/TableSchema.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TableSchema.vue.d.ts","sourceRoot":"","sources":["../../src/components/TableSchema.vue"],"names":[],"mappings":"AAoEA;AAGA,OAAO,EACN,KAAK,cAAc,EAMnB,MAAM,eAAe,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsTvB,wBAAwG;AACxG,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC;AAC9M,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAO;QAClD,MAAM,EAAE,CAAC,CAAC;KACT,CAAA;CAAE,CAAC"}
|
package/dist/index.cjs
CHANGED
|
@@ -15544,7 +15544,7 @@ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
|
|
|
15544
15544
|
};
|
|
15545
15545
|
}
|
|
15546
15546
|
});
|
|
15547
|
-
const TableSchema = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["__scopeId", "data-v-
|
|
15547
|
+
const TableSchema = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["__scopeId", "data-v-acfae82d"]]);
|
|
15548
15548
|
const _sfc_main$F = {};
|
|
15549
15549
|
const _hoisted_1$M = { class: "flex space-between" };
|
|
15550
15550
|
function _sfc_render$1(_ctx, _cache) {
|
package/dist/index.mjs
CHANGED
|
@@ -15542,7 +15542,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
|
|
|
15542
15542
|
};
|
|
15543
15543
|
}
|
|
15544
15544
|
});
|
|
15545
|
-
const TableSchema = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["__scopeId", "data-v-
|
|
15545
|
+
const TableSchema = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["__scopeId", "data-v-acfae82d"]]);
|
|
15546
15546
|
const _sfc_main$F = {};
|
|
15547
15547
|
const _hoisted_1$M = { class: "flex space-between" };
|
|
15548
15548
|
function _sfc_render$1(_ctx, _cache) {
|
package/dist/style.css
CHANGED
|
@@ -822,37 +822,37 @@
|
|
|
822
822
|
transform: translateY(-2.6rem);
|
|
823
823
|
}
|
|
824
824
|
|
|
825
|
-
.list-arrows[data-v-
|
|
825
|
+
.list-arrows[data-v-acfae82d] {
|
|
826
826
|
opacity: 0;
|
|
827
827
|
}
|
|
828
|
-
.list-arrows .icon-font[data-v-
|
|
828
|
+
.list-arrows .icon-font[data-v-acfae82d] {
|
|
829
829
|
transition: all ease-in-out 0.2s;
|
|
830
830
|
}
|
|
831
|
-
.list-arrows.sorted[data-v-
|
|
831
|
+
.list-arrows.sorted[data-v-acfae82d] {
|
|
832
832
|
opacity: 1;
|
|
833
833
|
}
|
|
834
|
-
.col img[data-v-
|
|
834
|
+
.col img[data-v-acfae82d] {
|
|
835
835
|
height: 35px;
|
|
836
836
|
margin-top: -14px;
|
|
837
837
|
margin-bottom: -14px;
|
|
838
838
|
border-radius: 5px;
|
|
839
839
|
}
|
|
840
|
-
.list-arrows.sorted .desc[data-v-
|
|
840
|
+
.list-arrows.sorted .desc[data-v-acfae82d] {
|
|
841
841
|
transform: rotate(180deg);
|
|
842
842
|
}
|
|
843
|
-
table[data-v-
|
|
843
|
+
table[data-v-acfae82d] {
|
|
844
844
|
border-collapse: separate;
|
|
845
845
|
border-spacing: 0 15px;
|
|
846
846
|
border-collapse: collapse;
|
|
847
847
|
}
|
|
848
|
-
th[data-v-
|
|
848
|
+
th[data-v-acfae82d] {
|
|
849
849
|
font-weight: 400;
|
|
850
850
|
}
|
|
851
|
-
.row[data-v-
|
|
851
|
+
.row[data-v-acfae82d] {
|
|
852
852
|
border-bottom: 1px solid var(--border-color);
|
|
853
853
|
cursor: pointer;
|
|
854
854
|
}
|
|
855
|
-
.row.first-row[data-v-
|
|
855
|
+
.row.first-row[data-v-acfae82d] {
|
|
856
856
|
font-size: 0.8rem;
|
|
857
857
|
color: var(--bgl-black-tint);
|
|
858
858
|
position: sticky;
|
|
@@ -862,7 +862,7 @@ th[data-v-fd41c5ae] {
|
|
|
862
862
|
height: 50px;
|
|
863
863
|
vertical-align: bottom;
|
|
864
864
|
}
|
|
865
|
-
.row.first-row[data-v-
|
|
865
|
+
.row.first-row[data-v-acfae82d]::after {
|
|
866
866
|
content: "";
|
|
867
867
|
border-bottom: 1px solid var(--border-color);
|
|
868
868
|
position: absolute;
|
|
@@ -870,11 +870,11 @@ th[data-v-fd41c5ae] {
|
|
|
870
870
|
right: 0;
|
|
871
871
|
bottom: -1px;
|
|
872
872
|
}
|
|
873
|
-
.first-row .col[data-v-
|
|
873
|
+
.first-row .col[data-v-acfae82d] {
|
|
874
874
|
cursor: pointer;
|
|
875
875
|
background: var(--bgl-white);
|
|
876
876
|
}
|
|
877
|
-
.col[data-v-
|
|
877
|
+
.col[data-v-acfae82d] {
|
|
878
878
|
white-space: nowrap;
|
|
879
879
|
padding: 14px;
|
|
880
880
|
transition: var(--bgl-transition);
|
|
@@ -883,16 +883,16 @@ th[data-v-fd41c5ae] {
|
|
|
883
883
|
padding-right: 1rem;
|
|
884
884
|
align-items: center;
|
|
885
885
|
}
|
|
886
|
-
.col>div[data-v-
|
|
886
|
+
.col>div[data-v-acfae82d] {
|
|
887
887
|
display: flex;
|
|
888
888
|
gap: 0.5rem;
|
|
889
889
|
}
|
|
890
|
-
.max-col-width[data-v-
|
|
890
|
+
.max-col-width[data-v-acfae82d] {
|
|
891
891
|
max-width: 30vw;
|
|
892
892
|
overflow: hidden;
|
|
893
893
|
text-overflow: ellipsis;
|
|
894
894
|
}
|
|
895
|
-
.col.check .icon-font[data-v-
|
|
895
|
+
.col.check .icon-font[data-v-acfae82d] {
|
|
896
896
|
border-radius: 100%;
|
|
897
897
|
background: var(--bgl-blue-20);
|
|
898
898
|
color: var(--bgl-primary);
|
|
@@ -903,27 +903,27 @@ th[data-v-fd41c5ae] {
|
|
|
903
903
|
justify-content: center;
|
|
904
904
|
margin-top: -2px;
|
|
905
905
|
}
|
|
906
|
-
.rows[data-v-
|
|
906
|
+
.rows[data-v-acfae82d] {
|
|
907
907
|
font-size: 0.8125em;
|
|
908
908
|
}
|
|
909
|
-
.table-list[data-v-
|
|
909
|
+
.table-list[data-v-acfae82d] {
|
|
910
910
|
height: 100%;
|
|
911
911
|
position: relative;
|
|
912
912
|
padding-left: 0 !important;
|
|
913
913
|
padding-right: 0 !important;
|
|
914
914
|
overflow: auto;
|
|
915
915
|
}
|
|
916
|
-
.BagelTable .table-list[data-v-
|
|
916
|
+
.BagelTable .table-list[data-v-acfae82d] {
|
|
917
917
|
overflow: unset;
|
|
918
918
|
}
|
|
919
|
-
.row-item[data-v-
|
|
919
|
+
.row-item[data-v-acfae82d] {
|
|
920
920
|
height: 50px;
|
|
921
921
|
transition: all 200ms ease;
|
|
922
922
|
}
|
|
923
|
-
.row-item[data-v-
|
|
923
|
+
.row-item[data-v-acfae82d]:hover {
|
|
924
924
|
background: var(--bgl-gray-light);
|
|
925
925
|
}
|
|
926
|
-
.infinite-wrapper[data-v-
|
|
926
|
+
.infinite-wrapper[data-v-acfae82d] {
|
|
927
927
|
overflow-y: auto;
|
|
928
928
|
width: 100%;
|
|
929
929
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import type { RequireAllOrNone } from 'type-fest';
|
|
1
2
|
export type AttributeValue = string | number | boolean | null | undefined | Record<string, any>;
|
|
2
3
|
export type AttributeFn<T = Record<string, any>> = (field: any, row: T) => AttributeValue;
|
|
3
4
|
export interface Attributes<T = any> {
|
|
4
5
|
[key: string]: AttributeValue | AttributeFn<T>;
|
|
5
6
|
}
|
|
6
|
-
export type Field<T = Record<string, any>> = {
|
|
7
|
+
export type Field<T = Record<string, any>> = RequireAllOrNone<{
|
|
7
8
|
$el?: any;
|
|
8
9
|
id?: string;
|
|
9
10
|
label?: string;
|
|
@@ -21,7 +22,7 @@ export type Field<T = Record<string, any>> = {
|
|
|
21
22
|
transform?: (val?: any, rowData?: Record<string, any>) => any;
|
|
22
23
|
onUpdate?: (val: any, fieldData?: any, rowData?: Record<string, any>) => void;
|
|
23
24
|
'v-if'?: string | boolean | ((val: any, row: T) => boolean);
|
|
24
|
-
}
|
|
25
|
+
}, 'id' | '$el'>;
|
|
25
26
|
export interface SelectBagelField {
|
|
26
27
|
inputType: 'SelectField';
|
|
27
28
|
options: string | {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BagelForm.d.ts","sourceRoot":"","sources":["../../src/types/BagelForm.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEhG,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,cAAc,CAAC;AAE1F,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,GAAG;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;CAC/C;AAED,MAAM,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI;
|
|
1
|
+
{"version":3,"file":"BagelForm.d.ts","sourceRoot":"","sources":["../../src/types/BagelForm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEhG,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,cAAc,CAAC;AAE1F,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,GAAG;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;CAC/C;AAED,MAAM,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,gBAAgB,CAAC;IAC5D,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAC,MAAM,GAAC,MAAM,CAAC,EAAE,CAAC;IAC/E,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC;IAC7D,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,EAAC,GAAG,EAAE,OAAO,CAAC,EAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IAC5E,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC;CAC7D,EACD,IAAI,GAAG,KAAK,CAAC,CAAA;AAEb,MAAM,WAAW,gBAAgB;IAChC,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,CAAC;CAC9D;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC"}
|
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.229-beta.0",
|
|
5
5
|
"description": "Bagel core sdk packages",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Neveh Allon",
|
|
@@ -52,6 +52,7 @@
|
|
|
52
52
|
],
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@vue-macros/reactivity-transform": "^0.4.1",
|
|
55
|
+
"type-fest": "^4.10.1",
|
|
55
56
|
"vue": "^3.4.3"
|
|
56
57
|
},
|
|
57
58
|
"peerDependencies": {
|
|
@@ -2,26 +2,58 @@
|
|
|
2
2
|
<div class="table-list-wrap h-100">
|
|
3
3
|
<table class="infinite-wrapper">
|
|
4
4
|
<thead class="row first-row">
|
|
5
|
-
<th
|
|
5
|
+
<th
|
|
6
|
+
class="col"
|
|
7
|
+
v-for="field in schema"
|
|
8
|
+
:key="field.id"
|
|
9
|
+
@click="sort(field?.id || '')"
|
|
10
|
+
>
|
|
6
11
|
<div class="flex">
|
|
7
12
|
{{ field.id }}
|
|
8
|
-
<div
|
|
9
|
-
|
|
13
|
+
<div
|
|
14
|
+
class="list-arrows"
|
|
15
|
+
:class="{ sorted: sortField === field.id }"
|
|
16
|
+
>
|
|
17
|
+
<MaterialIcon
|
|
18
|
+
:class="{ desc: sortDirection === 'DESC' }"
|
|
19
|
+
icon="keyboard_arrow_up"
|
|
20
|
+
/>
|
|
10
21
|
</div>
|
|
11
22
|
</div>
|
|
12
23
|
</th>
|
|
13
24
|
</thead>
|
|
14
|
-
<tbody
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
25
|
+
<tbody
|
|
26
|
+
ref="infinite"
|
|
27
|
+
class="rows infinite"
|
|
28
|
+
:class="{ loading }"
|
|
29
|
+
>
|
|
30
|
+
<tr
|
|
31
|
+
@click="selectElement(row)"
|
|
32
|
+
class="row row-item position-relative"
|
|
33
|
+
v-for="row in data"
|
|
34
|
+
:key="row.id"
|
|
35
|
+
>
|
|
36
|
+
<td
|
|
37
|
+
class="col"
|
|
38
|
+
v-for="field in schema"
|
|
39
|
+
:key="`${field.id}-${row.id}`"
|
|
40
|
+
>
|
|
41
|
+
<slot
|
|
42
|
+
v-if="field.id && slots[field.id]"
|
|
43
|
+
:name="field.id"
|
|
44
|
+
:row="row"
|
|
45
|
+
:field="field"
|
|
46
|
+
/>
|
|
18
47
|
<div v-else>
|
|
19
|
-
<component
|
|
48
|
+
<component
|
|
49
|
+
:is="field.$el || 'div'"
|
|
50
|
+
v-if="iffer(field, row)"
|
|
20
51
|
v-bind="bindAttrs(field.attrs, denullify(row, field.id), row)"
|
|
21
52
|
:class="classify(denullify(row, field.id), row, field.class, field.attrs?.class)"
|
|
22
53
|
:src="field.$el === 'img' && field.id ? row[field.id]?.url : ''"
|
|
23
54
|
:modelValue="field.id ? row[field.id] : ''"
|
|
24
|
-
@update:modelValue="($event: any) => field?.onUpdate?.($event, denullify(row, field.id), row)"
|
|
55
|
+
@update:modelValue="($event: any) => field?.onUpdate?.($event, denullify(row, field.id), row)"
|
|
56
|
+
>
|
|
25
57
|
{{
|
|
26
58
|
field?.transform?.(denullify(row, field.id), row) || denullify(row, field.id) || ""
|
|
27
59
|
}}
|
|
@@ -54,7 +86,9 @@ defineProps<{
|
|
|
54
86
|
schema: BglFormSchemaT;
|
|
55
87
|
}>();
|
|
56
88
|
|
|
57
|
-
const emit = defineEmits
|
|
89
|
+
const emit = defineEmits<{
|
|
90
|
+
select: [Record<string, any>];
|
|
91
|
+
}>();
|
|
58
92
|
|
|
59
93
|
const selectElement = (data: Record<string, any>) => emit('select', data);
|
|
60
94
|
|
package/src/types/BagelForm.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { RequireAllOrNone } from 'type-fest';
|
|
2
|
+
|
|
1
3
|
export type AttributeValue = string | number | boolean | null | undefined | Record<string, any>;
|
|
2
4
|
|
|
3
5
|
export type AttributeFn<T = Record<string, any>> = (field: any, row: T) => AttributeValue;
|
|
@@ -6,7 +8,7 @@ export interface Attributes<T = any> {
|
|
|
6
8
|
[key: string]: AttributeValue | AttributeFn<T>
|
|
7
9
|
}
|
|
8
10
|
|
|
9
|
-
export type Field<T = Record<string, any>> = {
|
|
11
|
+
export type Field<T = Record<string, any>> = RequireAllOrNone<{
|
|
10
12
|
$el?: any;
|
|
11
13
|
id?: string;
|
|
12
14
|
label?: string;
|
|
@@ -21,7 +23,8 @@ export type Field<T = Record<string, any>> = {
|
|
|
21
23
|
transform?: (val?: any, rowData?:Record<string, any>) => any;
|
|
22
24
|
onUpdate?: (val: any, fieldData?:any, rowData?:Record<string, any>) => void;
|
|
23
25
|
'v-if'?: string | boolean | ((val: any, row: T) => boolean);
|
|
24
|
-
}
|
|
26
|
+
},
|
|
27
|
+
'id' | '$el'>
|
|
25
28
|
|
|
26
29
|
export interface SelectBagelField {
|
|
27
30
|
inputType: 'SelectField';
|