@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.
@@ -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, schema: BglFormSchemaT, options?: ArrayFieldOptions): Field<T>;
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.41",
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.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.7.0",
86
- "axios": "^1.7.9",
85
+ "@vueuse/core": "^12.8.1",
86
+ "axios": "^1.8.1",
87
87
  "floating-vue": "^5.2.2",
88
- "libphonenumber-js": "1.11.20",
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
- // Create a computed property for the schema that will react to changes in options.columns
56
- const computedSchema = computed(() => {
57
- // Get the data safely
58
- const dataValue = options.data.value || []
59
+ // Function to resolve schema asynchronously
60
+ async function resolveSchemaAsync() {
61
+ try {
62
+ schemaState.value = 'loading'
59
63
 
60
- // Get the schema from useBglSchema
61
- const schema = useBglSchema<T>({
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
- // If we have a valid schema with fields, filter out fields without an ID
68
- if (Array.isArray(schema) && schema.length > 0) {
69
- return schema.filter(field => field && field.id)
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
- // If no schema is provided or it's empty, generate a default schema from the data
73
- if (Array.isArray(dataValue) && dataValue.length > 0) {
74
- const firstItem = dataValue[0]
75
-
76
- // Create a schema based on the keys of the first item
77
- return Object.keys(firstItem || {})
78
- .filter(key => key !== 'id' && !key.startsWith('_')) // Exclude id and internal fields
79
- .map(key => ({
80
- id: key,
81
- label: keyToLabel(key),
82
- $el: 'div',
83
- transform: (val?: any) => {
84
- // Handle date fields
85
- const dateFields = ['created_at', 'updated_at']
86
- if (dateFields.includes(key)) return val ? new Date(val).toLocaleString() : val
87
- return val
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
- // Return an empty array if no data or schema
93
- return []
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 extends Record<string, any>">
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: BglFormSchemaFnT
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
- // Resolve schema (handles sync, async, function, and direct values)
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
- internalData.value.push({})
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
- internalData.value[index] = value
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
- // // Field rendering
108
- // const { renderField } = useSchemaField<any>({
109
- // mode: 'form',
110
- // getRowData: () => internalData.value,
111
- // onUpdate: (field, value) => {
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
- <p class="label mb-05">
151
+ <!-- Label -->
152
+ <p v-if="label" class="label mb-05">
124
153
  {{ label }}
125
154
  </p>
126
- <div v-if="resolvedSchemaData.length > 0" class="ps-025 border-start mb-05">
127
- <!-- Loading state -->
128
- <div v-if="schemaState === 'loading'" class="flex-center h-300px">
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
- <!-- Error state -->
133
- <div v-else-if="schemaState === 'error'" class="flex-center h-300px txt-red">
134
- Error
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
- <!-- Render items -->
169
+ <!-- Items Rendering -->
138
170
  <template v-else>
171
+ <!-- Array Items -->
139
172
  <div
140
- v-for="(item, i) in internalData" :key="i" outline thin
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="resolvedSchemaData.length > 4"
196
+ v-if="showMinimizeButton"
156
197
  class="block rotate-180 txt10 opacity-7 p-025"
157
- flat thin icon="keyboard_arrow_down"
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>