@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.
@@ -4,6 +4,7 @@ export interface BagelFormProps<T extends {
4
4
  }> {
5
5
  modelValue?: T;
6
6
  schema?: BglFormSchemaFnT<T>;
7
+ tag?: 'form' | 'template';
7
8
  }
8
9
  declare const _default: <T extends {
9
10
  [key: string]: any;
@@ -1 +1 @@
1
- {"version":3,"file":"BagelForm.vue.d.ts","sourceRoot":"","sources":["../../../src/components/form/BagelForm.vue"],"names":[],"mappings":"AA0GA,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;CAC5B;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;WAqK1D,mBAAmB,CAAC;;;0LAAkE,CAAC,4BAA2B;oBACzG,OAAO,KAAK,EAAE,gBAAgB;;;;MAAsB,GAAG,IAAI;WACpE,GAAG;;yBArCkB,GAAG;;;;;YACJ,GAAG;;;YA1H1B,mBAAmB,SAAS,CAAC,GAAG,IAAI;YACpC,QAAQ,SAAS,CAAC,GAAG,IAAI;;OAkKlB,OAAO,KAAK,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,WAAW,CAAC,CAAA;CAAE;AA/KzE,wBA+K4E;AAC5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
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(structuredClone(props2.modelValue ?? {}));
11579
- const initialFormData = vue.ref(structuredClone(props2.modelValue ?? {}));
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 = structuredClone(props2.modelValue);
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 = structuredClone(newValue);
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(structuredClone(props2.modelValue ?? {}));
11577
- const initialFormData = ref(structuredClone(props2.modelValue ?? {}));
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 = structuredClone(props2.modelValue);
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 = structuredClone(newValue);
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":"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"}
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.1174",
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.18",
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>(structuredClone(props.modelValue ?? {} as T))
24
- const initialFormData = ref<T>(structuredClone(props.modelValue ?? {} as 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 = structuredClone(props.modelValue)
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 = structuredClone(newValue)
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(id: string, label?: string, options?: { [key: string]: any }): Field {
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(id: string, label: string, schema: BglFormSchemaT, options?: ArrayFieldOptions) {
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,