@bagelink/vue 1.0.41 → 1.0.47
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/DataTable/DataTable.vue.d.ts.map +1 -1
- package/dist/components/DataTable/useTableData.d.ts +1 -0
- package/dist/components/DataTable/useTableData.d.ts.map +1 -1
- package/dist/components/form/FieldArray.vue.d.ts +3 -2
- package/dist/components/form/FieldArray.vue.d.ts.map +1 -1
- package/dist/index.cjs +136 -74
- package/dist/index.mjs +136 -74
- package/dist/style.css +507 -281
- package/dist/utils/BagelFormUtils.d.ts +2 -1
- package/dist/utils/BagelFormUtils.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/components/DataTable/DataTable.vue +7 -3
- package/src/components/DataTable/useTableData.ts +66 -36
- package/src/components/form/FieldArray.vue +88 -49
- package/src/styles/layout.css +226 -113
- package/src/styles/mobilLayout.css +226 -113
- package/src/utils/BagelFormUtils.ts +7 -2
|
@@ -131,8 +131,9 @@ interface ArrayFieldOptions extends InputOptions {
|
|
|
131
131
|
delete?: boolean;
|
|
132
132
|
add?: boolean;
|
|
133
133
|
}
|
|
134
|
+
type ArrayType = 'number' | 'text';
|
|
134
135
|
export declare function arrField<T extends {
|
|
135
136
|
[key: string]: any;
|
|
136
|
-
}>(id: DotNotation<T> | string, label: string,
|
|
137
|
+
}>(id: DotNotation<T> | string, label: string, schemaOrType: BglFormSchemaT | ArrayType, options?: ArrayFieldOptions): Field<T>;
|
|
137
138
|
export {};
|
|
138
139
|
//# sourceMappingURL=BagelFormUtils.d.ts.map
|
|
@@ -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":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAA;AAErF,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,GAAG,MAAM,CAAA;IAC9B,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;IAChB,WAAW,CAAC,EAAE,OAAO,CAAA;CACrB;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,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,EAC5B,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,CAAC,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EACxD,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,EAC3B,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,GACvB,KAAK,CAAC,CAAC,CAAC,CAWV;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EACxD,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,EAC3B,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,gBAAgB,GACxB,KAAK,CAAC,CAAC,CAAC,CAiBV;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC3D,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,EAC3B,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,MAAM,EAAE,CAAC,EACrC,MAAM,CAAC,EAAE,gBAAgB,GACvB,KAAK,CAAC,CAAC,CAAC,CAmBV;AAED,eAAO,MAAM,SAAS,oBAAc,CAAA;AAEpC,wBAAgB,UAAU,CAAC,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC1D,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,EAC3B,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,YAAY,GACpB,KAAK,CAAC,CAAC,CAAC,CAQV;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EACzD,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,EAC3B,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,WAAW,GACnB,KAAK,CAAC,CAAC,CAAC,CAcV;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EACxD,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,EAC3B,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,GACvB,KAAK,CAAC,CAAC,CAAC,CAsBV;AAED,wBAAgB,MAAM,CAAC,GAAG,QAAQ,EAAE,KAAK,EAAE;;;;EAM1C;AAED,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,gBAAgB,CAAA;AAE3D,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa;;;;2BAnLtD,GAAG,OAAO,GAAG,KAAK,OAAO;;mBANtC,OAAO;sBACJ,MAAM;gBACZ,MAAM;uBACC,MAAM,GAAG,MAAM;mBACnB,OAAO;mBACP,MAAM;cACX,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC;;;;;;;;;;;;;;;;EA6LlD;AAED,UAAU,YAAa,SAAQ,YAAY;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;CACvC;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC1D,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,EAC3B,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,YAAY,GACpB,KAAK,CAAC,CAAC,CAAC,CAeV;AAED,wBAAgB,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE;;;;;;;;;;;;;;;;EAgBrE;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EACxD,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,EAC3B,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAC9B,KAAK,CAAC,CAAC,CAAC,CASV;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC1D,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,EAC3B,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAC9B,KAAK,CAAC,CAAC,CAAC,CASV;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,KAAK,GAAG,SAAS,CAUvF;AAED,UAAU,iBAAkB,SAAQ,YAAY;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,GAAG,CAAC,EAAE,OAAO,CAAA;CACb;AAED,KAAK,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAA;AAElC,wBAAgB,QAAQ,CAAC,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EACxD,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,EAC3B,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,cAAc,GAAG,SAAS,EACxC,OAAO,CAAC,EAAE,iBAAiB,GACzB,KAAK,CAAC,CAAC,CAAC,CAWV"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bagelink/vue",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.47",
|
|
5
5
|
"description": "Bagel core sdk packages",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Neveh Allon",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"@types/signature_pad": "^4.0.0",
|
|
57
57
|
"@vue-macros/reactivity-transform": "^1.1.6",
|
|
58
58
|
"vue": "^3.5.13",
|
|
59
|
-
"vue-component-type-helpers": "^2.2.
|
|
59
|
+
"vue-component-type-helpers": "^2.2.8"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
62
|
"@bagelink/sdk": "*",
|
|
@@ -82,10 +82,10 @@
|
|
|
82
82
|
},
|
|
83
83
|
"dependencies": {
|
|
84
84
|
"date-fns": "^4.1.0",
|
|
85
|
-
"@vueuse/core": "^12.
|
|
86
|
-
"axios": "^1.
|
|
85
|
+
"@vueuse/core": "^12.8.1",
|
|
86
|
+
"axios": "^1.8.1",
|
|
87
87
|
"floating-vue": "^5.2.2",
|
|
88
|
-
"libphonenumber-js": "1.
|
|
88
|
+
"libphonenumber-js": "1.12.4",
|
|
89
89
|
"signature_pad": "^5.0.4"
|
|
90
90
|
},
|
|
91
91
|
"scripts": {
|
|
@@ -41,7 +41,8 @@ const {
|
|
|
41
41
|
sortField,
|
|
42
42
|
sortDirection,
|
|
43
43
|
toggleSort,
|
|
44
|
-
cleanTransformedData
|
|
44
|
+
cleanTransformedData,
|
|
45
|
+
schemaState
|
|
45
46
|
} = useTableData<T>({ data, schema, columns, useServerSort, onSort: (field, direction) => {
|
|
46
47
|
emit('orderBy', `${field} ${direction}`.trim() as EmitOrderT)
|
|
47
48
|
} })
|
|
@@ -118,14 +119,17 @@ watch(
|
|
|
118
119
|
<div
|
|
119
120
|
class="table-list-wrap h-100"
|
|
120
121
|
v-bind="containerProps"
|
|
121
|
-
:class="{ 'loading-table': loading }"
|
|
122
|
+
:class="{ 'loading-table': loading || schemaState === 'loading' }"
|
|
122
123
|
>
|
|
123
124
|
<div
|
|
124
|
-
v-if="loading"
|
|
125
|
+
v-if="loading || schemaState === 'loading'"
|
|
125
126
|
class="loading-table-wrapper z-99 h-100 w-100 absolute inset"
|
|
126
127
|
>
|
|
127
128
|
<div class="loading-table-animation absolute oval" />
|
|
128
129
|
</div>
|
|
130
|
+
<div v-else-if="schemaState === 'error'" class="flex-center h-300px txt-red">
|
|
131
|
+
Error loading table schema
|
|
132
|
+
</div>
|
|
129
133
|
<div v-else v-bind="wrapperProps">
|
|
130
134
|
<table class="infinite-wrapper">
|
|
131
135
|
<thead class="row first-row">
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ComputedRef } from 'vue'
|
|
2
2
|
import type { TableDataOptions, SortDirectionsT } from '../../types/TableSchema'
|
|
3
3
|
import { useBglSchema, isDate, keyToLabel } from '@bagelink/vue'
|
|
4
|
-
import { computed, ref } from 'vue'
|
|
4
|
+
import { computed, ref, onMounted, watch } from 'vue'
|
|
5
5
|
|
|
6
6
|
const NON_DIGIT_REGEX = /[^\d.-]/g
|
|
7
7
|
|
|
@@ -33,6 +33,10 @@ export function useTableData<T extends Record<string, any>>(options: UseTableDat
|
|
|
33
33
|
// Sorting state
|
|
34
34
|
const sortField = ref('')
|
|
35
35
|
const sortDirection = ref<SortDirectionsT>('ASC')
|
|
36
|
+
// Schema loading state
|
|
37
|
+
const schemaState = ref<'loading' | 'loaded' | 'error'>('loading')
|
|
38
|
+
const resolvedSchema = ref<any[]>([])
|
|
39
|
+
|
|
36
40
|
// Helper function to get the value from a possibly computed ref
|
|
37
41
|
function getValue<V>(value: ComputedRef<V> | V | undefined): V | undefined {
|
|
38
42
|
if (value === undefined || value === null) {
|
|
@@ -52,47 +56,72 @@ export function useTableData<T extends Record<string, any>>(options: UseTableDat
|
|
|
52
56
|
}
|
|
53
57
|
}
|
|
54
58
|
|
|
55
|
-
//
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
+
// Function to resolve schema asynchronously
|
|
60
|
+
async function resolveSchemaAsync() {
|
|
61
|
+
try {
|
|
62
|
+
schemaState.value = 'loading'
|
|
59
63
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
schema: getValue(options.schema),
|
|
63
|
-
columns: getValue(options.columns),
|
|
64
|
-
data: dataValue,
|
|
65
|
-
})
|
|
64
|
+
// Get the data safely
|
|
65
|
+
const dataValue = options.data.value || []
|
|
66
66
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
67
|
+
// Get the schema from useBglSchema (now async)
|
|
68
|
+
const schema = await useBglSchema<T>({
|
|
69
|
+
schema: getValue(options.schema),
|
|
70
|
+
columns: getValue(options.columns),
|
|
71
|
+
data: dataValue,
|
|
72
|
+
})
|
|
71
73
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
74
|
+
// If we have a valid schema with fields, filter out fields without an ID
|
|
75
|
+
if (Array.isArray(schema) && schema.length > 0) {
|
|
76
|
+
resolvedSchema.value = schema.filter(field => field && field.id)
|
|
77
|
+
} else if (Array.isArray(dataValue) && dataValue.length > 0) {
|
|
78
|
+
// If no schema is provided or it's empty, generate a default schema from the data
|
|
79
|
+
const firstItem = dataValue[0]
|
|
80
|
+
|
|
81
|
+
// Create a schema based on the keys of the first item
|
|
82
|
+
resolvedSchema.value = Object.keys(firstItem || {})
|
|
83
|
+
.filter(key => key !== 'id' && !key.startsWith('_')) // Exclude id and internal fields
|
|
84
|
+
.map(key => ({
|
|
85
|
+
id: key,
|
|
86
|
+
label: keyToLabel(key),
|
|
87
|
+
$el: 'div',
|
|
88
|
+
transform: (val?: any) => {
|
|
89
|
+
// Handle date fields
|
|
90
|
+
const dateFields = ['created_at', 'updated_at']
|
|
91
|
+
if (dateFields.includes(key)) return val ? new Date(val).toLocaleString() : val
|
|
92
|
+
return val
|
|
93
|
+
}
|
|
94
|
+
}))
|
|
95
|
+
} else {
|
|
96
|
+
// Return an empty array if no data or schema
|
|
97
|
+
resolvedSchema.value = []
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
schemaState.value = 'loaded'
|
|
101
|
+
} catch (error) {
|
|
102
|
+
console.error('Error resolving schema:', error)
|
|
103
|
+
schemaState.value = 'error'
|
|
104
|
+
resolvedSchema.value = []
|
|
90
105
|
}
|
|
106
|
+
}
|
|
91
107
|
|
|
92
|
-
|
|
93
|
-
|
|
108
|
+
// Watch for changes in schema or columns and resolve schema
|
|
109
|
+
watch([
|
|
110
|
+
() => getValue(options.schema),
|
|
111
|
+
() => getValue(options.columns),
|
|
112
|
+
() => options.data.value
|
|
113
|
+
], () => {
|
|
114
|
+
resolveSchemaAsync()
|
|
115
|
+
}, { immediate: true })
|
|
116
|
+
|
|
117
|
+
// Initialize schema on mount
|
|
118
|
+
onMounted(() => {
|
|
119
|
+
resolveSchemaAsync()
|
|
94
120
|
})
|
|
95
121
|
|
|
122
|
+
// Create a computed property for the schema
|
|
123
|
+
const computedSchema = computed(() => resolvedSchema.value)
|
|
124
|
+
|
|
96
125
|
function transform(rowData: T): TransformedData<T> {
|
|
97
126
|
const transformed = { ...rowData } as TransformedData<T>
|
|
98
127
|
const schemaFields = computedSchema.value.filter((f: any) => f.id)
|
|
@@ -205,6 +234,7 @@ export function useTableData<T extends Record<string, any>>(options: UseTableDat
|
|
|
205
234
|
sortField: computed(() => sortField.value),
|
|
206
235
|
sortDirection: computed(() => sortDirection.value),
|
|
207
236
|
toggleSort,
|
|
208
|
-
cleanTransformedData
|
|
237
|
+
cleanTransformedData,
|
|
238
|
+
schemaState: computed(() => schemaState.value)
|
|
209
239
|
}
|
|
210
240
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<script lang="ts" setup generic="T
|
|
1
|
+
<script lang="ts" setup generic="T">
|
|
2
2
|
import type {
|
|
3
3
|
AttributeFn,
|
|
4
4
|
AttributeValue,
|
|
@@ -6,10 +6,10 @@ import type {
|
|
|
6
6
|
BagelFieldOptions,
|
|
7
7
|
BglFormSchemaFnT,
|
|
8
8
|
Field,
|
|
9
|
+
Icon,
|
|
9
10
|
} from '@bagelink/vue'
|
|
10
11
|
import { BagelForm, Btn, Loading } from '@bagelink/vue'
|
|
11
|
-
import { ref, onMounted } from 'vue'
|
|
12
|
-
import { useSchemaField } from '../../composables/useSchemaField'
|
|
12
|
+
import { ref, onMounted, computed, watch } from 'vue'
|
|
13
13
|
|
|
14
14
|
const props = withDefaults(
|
|
15
15
|
defineProps<{
|
|
@@ -28,13 +28,15 @@ const props = withDefaults(
|
|
|
28
28
|
add?: boolean
|
|
29
29
|
delete?: boolean
|
|
30
30
|
transform?: (value: T) => T
|
|
31
|
-
schema
|
|
31
|
+
schema?: BglFormSchemaFnT
|
|
32
32
|
modelValue: T[]
|
|
33
|
+
type?: 'object' | 'number' | 'text'
|
|
33
34
|
}>(),
|
|
34
35
|
{
|
|
35
36
|
delete: true,
|
|
36
37
|
add: true,
|
|
37
38
|
el: 'div',
|
|
39
|
+
type: 'object',
|
|
38
40
|
}
|
|
39
41
|
)
|
|
40
42
|
|
|
@@ -46,14 +48,38 @@ const internalData = ref<any[]>(props.modelValue || [])
|
|
|
46
48
|
const schemaState = ref<'loading' | 'loaded' | 'error'>('loaded')
|
|
47
49
|
const resolvedSchemaData = ref<any[]>([])
|
|
48
50
|
|
|
49
|
-
//
|
|
51
|
+
// Watch for external changes to modelValue
|
|
52
|
+
watch(() => props.modelValue, (newValue) => {
|
|
53
|
+
internalData.value = newValue || []
|
|
54
|
+
}, { deep: true })
|
|
55
|
+
|
|
56
|
+
// Generate schema for primitive types
|
|
57
|
+
const primitiveSchema = computed(() => {
|
|
58
|
+
if (props.type === 'text') {
|
|
59
|
+
return [{ id: 'value', type: 'text', label: '' }]
|
|
60
|
+
} else if (props.type === 'number') {
|
|
61
|
+
return [{ id: 'value', type: 'number', label: '' }]
|
|
62
|
+
}
|
|
63
|
+
return []
|
|
64
|
+
})
|
|
65
|
+
|
|
66
|
+
// Resolve schema
|
|
50
67
|
async function resolveSchema() {
|
|
68
|
+
// For primitive types, use the predefined schema
|
|
69
|
+
if (props.type !== 'object') {
|
|
70
|
+
resolvedSchemaData.value = primitiveSchema.value
|
|
71
|
+
schemaState.value = 'loaded'
|
|
72
|
+
return
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// For object type without schema
|
|
51
76
|
if (!props.schema) {
|
|
52
77
|
resolvedSchemaData.value = []
|
|
53
78
|
schemaState.value = 'loaded'
|
|
54
79
|
return
|
|
55
80
|
}
|
|
56
81
|
|
|
82
|
+
// For object type with schema
|
|
57
83
|
try {
|
|
58
84
|
schemaState.value = 'loading'
|
|
59
85
|
const isPromise = (obj: any) => obj && typeof obj.then === 'function'
|
|
@@ -76,9 +102,7 @@ async function resolveSchema() {
|
|
|
76
102
|
}
|
|
77
103
|
|
|
78
104
|
// Initialize schema on mount
|
|
79
|
-
onMounted(
|
|
80
|
-
resolveSchema()
|
|
81
|
-
})
|
|
105
|
+
onMounted(resolveSchema)
|
|
82
106
|
|
|
83
107
|
// Event handlers
|
|
84
108
|
function emitValue() {
|
|
@@ -91,7 +115,13 @@ function deleteItem(i: number) {
|
|
|
91
115
|
}
|
|
92
116
|
|
|
93
117
|
function addItem() {
|
|
94
|
-
|
|
118
|
+
// Add appropriate default value based on type
|
|
119
|
+
const defaultValues = {
|
|
120
|
+
text: '',
|
|
121
|
+
number: 0,
|
|
122
|
+
object: {}
|
|
123
|
+
}
|
|
124
|
+
internalData.value.push(defaultValues[props.type])
|
|
95
125
|
emitValue()
|
|
96
126
|
}
|
|
97
127
|
|
|
@@ -100,61 +130,74 @@ function toggleMinimized(index: number) {
|
|
|
100
130
|
}
|
|
101
131
|
|
|
102
132
|
function updateItem(index: number, value: any) {
|
|
103
|
-
|
|
133
|
+
// Handle primitive types by extracting the value property
|
|
134
|
+
if (props.type === 'text' || props.type === 'number') {
|
|
135
|
+
internalData.value[index] = props.type === 'number' ? Number(value.value) : value.value
|
|
136
|
+
} else {
|
|
137
|
+
internalData.value[index] = value
|
|
138
|
+
}
|
|
104
139
|
emitValue()
|
|
105
140
|
}
|
|
106
141
|
|
|
107
|
-
//
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
// if (!field.id) return
|
|
113
|
-
// const index = Number.parseInt(field.id)
|
|
114
|
-
// if (Number.isNaN(index)) return
|
|
115
|
-
// internalData.value[index] = value
|
|
116
|
-
// emitValue()
|
|
117
|
-
// }
|
|
118
|
-
// })
|
|
142
|
+
// Computed properties for rendering
|
|
143
|
+
const isPrimitiveType = computed(() => props.type === 'text' || props.type === 'number')
|
|
144
|
+
const canRenderItems = computed(() => isPrimitiveType.value || (props.type === 'object' && resolvedSchemaData.value.length > 0)
|
|
145
|
+
)
|
|
146
|
+
const showMinimizeButton = computed(() => resolvedSchemaData.value.length > 4)
|
|
119
147
|
</script>
|
|
120
148
|
|
|
121
149
|
<template>
|
|
122
150
|
<div :class="props.class">
|
|
123
|
-
|
|
151
|
+
<!-- Label -->
|
|
152
|
+
<p v-if="label" class="label mb-05">
|
|
124
153
|
{{ label }}
|
|
125
154
|
</p>
|
|
126
|
-
<div
|
|
127
|
-
<!-- Loading
|
|
128
|
-
<div v-if="schemaState
|
|
129
|
-
<Loading />
|
|
155
|
+
<div class="ps-025 border-start mb-05">
|
|
156
|
+
<!-- Loading/Error States -->
|
|
157
|
+
<div v-if="schemaState !== 'loaded'" class="flex-center h-300px">
|
|
158
|
+
<Loading v-if="schemaState === 'loading'" />
|
|
159
|
+
<Icon v-else-if="schemaState === 'error'" icon="error" color="red" />
|
|
130
160
|
</div>
|
|
131
161
|
|
|
132
|
-
<!--
|
|
133
|
-
<div v-else-if="
|
|
134
|
-
|
|
162
|
+
<!-- No Schema Available -->
|
|
163
|
+
<div v-else-if="!canRenderItems" class="py-1">
|
|
164
|
+
<p class="opacity-7">
|
|
165
|
+
No schema available
|
|
166
|
+
</p>
|
|
135
167
|
</div>
|
|
136
168
|
|
|
137
|
-
<!--
|
|
169
|
+
<!-- Items Rendering -->
|
|
138
170
|
<template v-else>
|
|
171
|
+
<!-- Array Items -->
|
|
139
172
|
<div
|
|
140
|
-
v-for="(item, i) in internalData"
|
|
173
|
+
v-for="(item, i) in internalData"
|
|
174
|
+
:key="i"
|
|
175
|
+
outline
|
|
176
|
+
thin
|
|
141
177
|
class="mb-05 itemBox transition ps-05 pb-025 pt-025 radius-05 gap-05 overflow-hidden"
|
|
142
178
|
:class="{ minimized: minimizedItems[i] }"
|
|
143
179
|
>
|
|
180
|
+
<!-- Minimized View -->
|
|
144
181
|
<p v-if="minimizedItems[i]" class="minimizedText txt14 p-025 opacity-7">
|
|
145
182
|
{{ label }} {{ i + 1 }}
|
|
146
183
|
</p>
|
|
184
|
+
|
|
185
|
+
<!-- Form View -->
|
|
147
186
|
<BagelForm
|
|
148
187
|
v-else
|
|
149
|
-
:model-value="item"
|
|
188
|
+
:model-value="isPrimitiveType ? { value: item } : item"
|
|
150
189
|
:schema="resolvedSchemaData"
|
|
151
190
|
@update:model-value="val => updateItem(i, val)"
|
|
152
191
|
/>
|
|
192
|
+
|
|
193
|
+
<!-- Controls -->
|
|
153
194
|
<div class="bg-gray-80 -my-05 px-025 pt-065 pb-05 txt-center space-between flex column">
|
|
154
195
|
<Btn
|
|
155
|
-
v-if="
|
|
196
|
+
v-if="showMinimizeButton"
|
|
156
197
|
class="block rotate-180 txt10 opacity-7 p-025"
|
|
157
|
-
flat
|
|
198
|
+
flat
|
|
199
|
+
thin
|
|
200
|
+
icon="keyboard_arrow_down"
|
|
158
201
|
@click="toggleMinimized(i)"
|
|
159
202
|
/>
|
|
160
203
|
<Btn
|
|
@@ -167,35 +210,31 @@ function updateItem(index: number, value: any) {
|
|
|
167
210
|
/>
|
|
168
211
|
</div>
|
|
169
212
|
</div>
|
|
213
|
+
|
|
214
|
+
<!-- Add Button -->
|
|
170
215
|
<Btn v-if="add" thin icon="add" color="gray" class="txt12" @click="addItem">
|
|
171
216
|
<p>{{ label }}</p>
|
|
172
217
|
</Btn>
|
|
173
218
|
</template>
|
|
174
219
|
</div>
|
|
175
|
-
|
|
176
|
-
<template v-else>
|
|
177
|
-
<div v-for="(_, i) in internalData" :key="i">
|
|
178
|
-
<p>No schema available</p>
|
|
179
|
-
</div>
|
|
180
|
-
</template>
|
|
181
220
|
</div>
|
|
182
221
|
</template>
|
|
183
222
|
|
|
184
223
|
<style>
|
|
185
|
-
.minimized{
|
|
224
|
+
.minimized {
|
|
186
225
|
height: 2.4rem;
|
|
187
226
|
overflow: hidden;
|
|
188
227
|
}
|
|
189
|
-
.minimizedText{
|
|
228
|
+
.minimizedText {
|
|
190
229
|
display: none;
|
|
191
230
|
}
|
|
192
|
-
.minimized .minimizedText{
|
|
231
|
+
.minimized .minimizedText {
|
|
193
232
|
display: block;
|
|
194
233
|
}
|
|
195
|
-
.minimized .rotate-180{
|
|
234
|
+
.minimized .rotate-180 {
|
|
196
235
|
transform: rotate(0deg);
|
|
197
236
|
}
|
|
198
|
-
.itemBox{
|
|
237
|
+
.itemBox {
|
|
199
238
|
background: var(--input-bg);
|
|
200
239
|
grid-template-columns: 1fr auto;
|
|
201
240
|
display: grid;
|
|
@@ -204,7 +243,7 @@ function updateItem(index: number, value: any) {
|
|
|
204
243
|
--input-font-size: 14px;
|
|
205
244
|
}
|
|
206
245
|
|
|
207
|
-
.pt-065{
|
|
246
|
+
.pt-065 {
|
|
208
247
|
padding-top: 0.65rem;
|
|
209
248
|
}
|
|
210
249
|
|
|
@@ -214,10 +253,10 @@ function updateItem(index: number, value: any) {
|
|
|
214
253
|
.itemBox .custom-select .input {
|
|
215
254
|
background: var(--bgl-white) !important;
|
|
216
255
|
}
|
|
217
|
-
.itemBox .code-editor-wrap textarea{
|
|
256
|
+
.itemBox .code-editor-wrap textarea {
|
|
218
257
|
background: transparent !important;
|
|
219
258
|
}
|
|
220
|
-
.itemBox .bagel-input{
|
|
259
|
+
.itemBox .bagel-input {
|
|
221
260
|
margin-bottom: 0.15rem !important;
|
|
222
261
|
}
|
|
223
262
|
</style>
|