@bagelink/vue 0.0.138 → 0.0.142

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/style.css CHANGED
@@ -748,11 +748,11 @@
748
748
  border-radius: var(--btn-border-radius);
749
749
  }
750
750
 
751
- .modal-title[data-v-665350cb] {
751
+ .modal-title[data-v-ca1b8501] {
752
752
  margin-top: 0.5rem;
753
753
  }
754
754
  @media screen and (max-width: 910px) {
755
- .modal-title[data-v-665350cb] {
755
+ .modal-title[data-v-ca1b8501] {
756
756
  margin-top: 1rem;
757
757
  }
758
758
  }
@@ -1159,34 +1159,34 @@ th[data-v-fa7146ce] {
1159
1159
  border: none;
1160
1160
  }
1161
1161
 
1162
- .bglform-contact[data-v-33e63930] {
1162
+ .bglform-contact[data-v-0533667e] {
1163
1163
  display: flex;
1164
1164
  align-items: center;
1165
1165
  gap: 0.5rem;
1166
1166
  max-width: 700px;
1167
1167
  position: relative;
1168
1168
  }
1169
- .bglform-contact-label[data-v-33e63930] {
1169
+ .bglform-contact-label[data-v-0533667e] {
1170
1170
  flex-basis: 140px;
1171
1171
  }
1172
- .bglform-contact input[type='checkbox'][data-v-33e63930] {
1172
+ .bglform-contact input[type='checkbox'][data-v-0533667e] {
1173
1173
  width: 30px;
1174
1174
  min-width: 0;
1175
1175
  }
1176
- .light.thin.btn-txt.btn[data-v-33e63930] {
1176
+ .light.thin.btn-txt.btn[data-v-0533667e] {
1177
1177
  padding-left: calc(var(--btn-padding) / 4);
1178
1178
  padding-right: calc(var(--btn-padding) / 4);
1179
1179
  }
1180
- .add-btn[data-v-33e63930] {
1180
+ .add-btn[data-v-0533667e] {
1181
1181
  display: flex;
1182
1182
  gap: 0.5rem;
1183
1183
  align-items: center;
1184
1184
  margin-inline-start: 1rem;
1185
1185
  }
1186
- .add-btn[data-v-33e63930]:active {
1186
+ .add-btn[data-v-0533667e]:active {
1187
1187
  background: none !important;
1188
1188
  }
1189
- .add-btn[data-v-33e63930]::before {
1189
+ .add-btn[data-v-0533667e]::before {
1190
1190
  content: '+';
1191
1191
  font-size: 10px;
1192
1192
  background: var(--bgl-blue-light);
@@ -1198,12 +1198,12 @@ th[data-v-fa7146ce] {
1198
1198
  justify-content: center;
1199
1199
  color: var(--bgl-blue);
1200
1200
  }
1201
- .add-btn[data-v-33e63930]:hover::before {
1201
+ .add-btn[data-v-0533667e]:hover::before {
1202
1202
  background: var(--bgl-blue);
1203
1203
  color: var(--bgl-white);
1204
1204
  }
1205
1205
  @media screen and (max-width: 910px) {
1206
- .bglform-contact-label[data-v-33e63930] {
1206
+ .bglform-contact-label[data-v-0533667e] {
1207
1207
  min-width: 0;
1208
1208
  }
1209
1209
  }
@@ -1220,45 +1220,45 @@ th[data-v-fa7146ce] {
1220
1220
  backdrop-filter: blur(1px);
1221
1221
  }
1222
1222
 
1223
- .bglform-contact[data-v-0b835e6e] {
1223
+ .bglform-contact[data-v-98a4f943] {
1224
1224
  display: flex;
1225
1225
  gap: 0.5rem;
1226
1226
  max-width: 700px;
1227
1227
  position: relative;
1228
1228
  }
1229
- .bglform-contact-label[data-v-0b835e6e] {
1229
+ .bglform-contact-label[data-v-98a4f943] {
1230
1230
  flex-basis: 140px;
1231
1231
  }
1232
- .bglform-contact-address[data-v-0b835e6e] {
1232
+ .bglform-contact-address[data-v-98a4f943] {
1233
1233
  display: flex;
1234
1234
  flex-direction: column;
1235
1235
  gap: 0.5rem;
1236
1236
  }
1237
- .bglform-contact input[type='checkbox'][data-v-0b835e6e] {
1237
+ .bglform-contact input[type='checkbox'][data-v-98a4f943] {
1238
1238
  width: 30px;
1239
1239
  min-width: 0;
1240
1240
  }
1241
- .light.thin.btn-txt.btn[data-v-0b835e6e] {
1241
+ .light.thin.btn-txt.btn[data-v-98a4f943] {
1242
1242
  padding-left: calc(var(--btn-padding) / 4);
1243
1243
  padding-right: calc(var(--btn-padding) / 4);
1244
1244
  }
1245
- .bglform-address-del[data-v-0b835e6e] {
1245
+ .bglform-address-del[data-v-98a4f943] {
1246
1246
  margin-top: 6px;
1247
1247
  }
1248
- .bglform-contact-address-flex[data-v-0b835e6e] {
1248
+ .bglform-contact-address-flex[data-v-98a4f943] {
1249
1249
  display: flex;
1250
1250
  gap: 0.5rem;
1251
1251
  }
1252
- .add-btn[data-v-0b835e6e] {
1252
+ .add-btn[data-v-98a4f943] {
1253
1253
  display: flex;
1254
1254
  gap: 0.5rem;
1255
1255
  align-items: center;
1256
1256
  margin-inline-start: 1rem;
1257
1257
  }
1258
- .add-btn[data-v-0b835e6e]:active {
1258
+ .add-btn[data-v-98a4f943]:active {
1259
1259
  background: none !important;
1260
1260
  }
1261
- .add-btn[data-v-0b835e6e]::before {
1261
+ .add-btn[data-v-98a4f943]::before {
1262
1262
  content: '+';
1263
1263
  font-size: 10px;
1264
1264
  background: var(--bgl-blue-light);
@@ -1270,15 +1270,15 @@ th[data-v-fa7146ce] {
1270
1270
  justify-content: center;
1271
1271
  color: var(--bgl-blue);
1272
1272
  }
1273
- .add-btn[data-v-0b835e6e]:hover::before {
1273
+ .add-btn[data-v-98a4f943]:hover::before {
1274
1274
  background: var(--bgl-blue);
1275
1275
  color: var(--bgl-white);
1276
1276
  }
1277
1277
  @media screen and (max-width: 910px) {
1278
- .bglform-contact-address-flex[data-v-0b835e6e] {
1278
+ .bglform-contact-address-flex[data-v-98a4f943] {
1279
1279
  flex-wrap: wrap;
1280
1280
  }
1281
- .bglform-contact-label[data-v-0b835e6e] {
1281
+ .bglform-contact-label[data-v-98a4f943] {
1282
1282
  min-width: 0;
1283
1283
  }
1284
1284
  }
@@ -1295,45 +1295,45 @@ th[data-v-fa7146ce] {
1295
1295
  backdrop-filter: blur(1px);
1296
1296
  }
1297
1297
 
1298
- .bglform-contact[data-v-60b0c498] {
1298
+ .bglform-contact[data-v-0928eb22] {
1299
1299
  display: flex;
1300
1300
  gap: 0.5rem;
1301
1301
  max-width: 700px;
1302
1302
  position: relative;
1303
1303
  }
1304
- .bglform-contact-label[data-v-60b0c498] {
1304
+ .bglform-contact-label[data-v-0928eb22] {
1305
1305
  flex-basis: 140px;
1306
1306
  }
1307
- .bglform-contact-address[data-v-60b0c498] {
1307
+ .bglform-contact-address[data-v-0928eb22] {
1308
1308
  display: flex;
1309
1309
  flex-direction: column;
1310
1310
  gap: 0.5rem;
1311
1311
  }
1312
- .bglform-contact input[type='checkbox'][data-v-60b0c498] {
1312
+ .bglform-contact input[type='checkbox'][data-v-0928eb22] {
1313
1313
  width: 30px;
1314
1314
  min-width: 0;
1315
1315
  }
1316
- .light.thin.btn-txt.btn[data-v-60b0c498] {
1316
+ .light.thin.btn-txt.btn[data-v-0928eb22] {
1317
1317
  padding-left: calc(var(--btn-padding) / 4);
1318
1318
  padding-right: calc(var(--btn-padding) / 4);
1319
1319
  }
1320
- .bglform-address-del[data-v-60b0c498] {
1320
+ .bglform-address-del[data-v-0928eb22] {
1321
1321
  margin-top: 6px;
1322
1322
  }
1323
- .bglform-contact-address-flex[data-v-60b0c498] {
1323
+ .bglform-contact-address-flex[data-v-0928eb22] {
1324
1324
  display: flex;
1325
1325
  gap: 0.5rem;
1326
1326
  }
1327
- .add-btn[data-v-60b0c498] {
1327
+ .add-btn[data-v-0928eb22] {
1328
1328
  display: flex;
1329
1329
  gap: 0.5rem;
1330
1330
  align-items: center;
1331
1331
  margin-inline-start: 1rem;
1332
1332
  }
1333
- .add-btn[data-v-60b0c498]:active {
1333
+ .add-btn[data-v-0928eb22]:active {
1334
1334
  background: none !important;
1335
1335
  }
1336
- .add-btn[data-v-60b0c498]::before {
1336
+ .add-btn[data-v-0928eb22]::before {
1337
1337
  content: '+';
1338
1338
  font-size: 10px;
1339
1339
  background: var(--bgl-blue-light);
@@ -1345,15 +1345,15 @@ th[data-v-fa7146ce] {
1345
1345
  justify-content: center;
1346
1346
  color: var(--bgl-blue);
1347
1347
  }
1348
- .add-btn[data-v-60b0c498]:hover::before {
1348
+ .add-btn[data-v-0928eb22]:hover::before {
1349
1349
  background: var(--bgl-blue);
1350
1350
  color: var(--bgl-white);
1351
1351
  }
1352
1352
  @media screen and (max-width: 910px) {
1353
- .bglform-contact-address-flex[data-v-60b0c498] {
1353
+ .bglform-contact-address-flex[data-v-0928eb22] {
1354
1354
  flex-wrap: wrap;
1355
1355
  }
1356
- .bglform-contact-label[data-v-60b0c498] {
1356
+ .bglform-contact-label[data-v-0928eb22] {
1357
1357
  min-width: 0;
1358
1358
  }
1359
1359
  }
@@ -5,5 +5,6 @@ export declare function computeFields(modelValue: Record<string, any>): BagelFie
5
5
  export declare const copyText: (text: string, cb?: ((msg: string) => void) | undefined) => Promise<void>;
6
6
  export declare const useFormkit: () => unknown;
7
7
  export declare const initials: (...strArr: string[]) => string;
8
+ export declare function useEscape(event: KeyboardEvent, closeModel: () => void): void;
8
9
  export { formatString } from './strings';
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,eAAO,MAAM,QAAQ,OAAQ,MAAM,IAAI,yBAGtC,CAAC;AAEF,eAAO,MAAM,UAAU,QAAS,MAAM,WAG3B,CAAC;AAEZ,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,UAAU,EAAE,CAmB3E;AAED,eAAO,MAAM,QAAQ,SACd,MAAM,cAED,MAAM,KAAK,IAAI,+BAI1B,CAAC;AAEF,eAAO,MAAM,UAAU,eAGtB,CAAC;AAEF,eAAO,MAAM,QAAQ,cAAe,MAAM,EAAE,WAAiD,CAAC;AAE9F,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,eAAO,MAAM,QAAQ,OAAQ,MAAM,IAAI,yBAGtC,CAAC;AAEF,eAAO,MAAM,UAAU,QAAS,MAAM,WAG3B,CAAC;AAEZ,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,UAAU,EAAE,CAmB3E;AAED,eAAO,MAAM,QAAQ,SACd,MAAM,cAED,MAAM,KAAK,IAAI,+BAI1B,CAAC;AAEF,eAAO,MAAM,UAAU,eAGtB,CAAC;AAEF,eAAO,MAAM,QAAQ,cAAe,MAAM,EAAE,WAAiD,CAAC;AAE9F,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,IAAI,QAIrE;AAED,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/vue",
3
3
  "type": "module",
4
- "version": "0.0.138",
4
+ "version": "0.0.142",
5
5
  "description": "Bagel core sdk packages",
6
6
  "author": {
7
7
  "name": "Neveh Allon",
@@ -51,7 +51,7 @@
51
51
  "./vite.config.ts"
52
52
  ],
53
53
  "dependencies": {
54
- "vue": "^3.3.8"
54
+ "vue": "^3.3.9"
55
55
  },
56
56
  "devDependencies": {
57
57
  "@vue-macros/reactivity-transform": "^0.4.0"
@@ -43,7 +43,7 @@ const props = withDefaults(defineProps<{
43
43
  // eslint-disable-next-line no-unused-vars
44
44
  onDelete?: ((id: string) => void);
45
45
  // eslint-disable-next-line no-unused-vars
46
- i18nT: (key: string) => string;
46
+ i18nT?: (key: string) => string;
47
47
  }>(), {
48
48
  i18nT: (key: string) => key,
49
49
  });
@@ -31,8 +31,8 @@
31
31
  </template>
32
32
 
33
33
  <script lang="ts" setup>
34
- import { onMounted } from 'vue';
35
- import { type BtnOptions, Btn } from '@bagelink/vue';
34
+ import { onMounted, onUnmounted } from 'vue';
35
+ import { type BtnOptions, Btn, useEscape } from '@bagelink/vue';
36
36
  import '../styles/modal.css';
37
37
 
38
38
  defineProps<{
@@ -44,12 +44,6 @@ defineProps<{
44
44
 
45
45
  let isActive = $ref<boolean>(false);
46
46
 
47
- onMounted(() => {
48
- setTimeout(() => {
49
- isActive = true;
50
- }, 1);
51
- });
52
-
53
47
  const emit = defineEmits(['update:isModalVisible']);
54
48
 
55
49
  const closeModal = () => {
@@ -58,4 +52,23 @@ const closeModal = () => {
58
52
  emit('update:isModalVisible', false);
59
53
  }, 200);
60
54
  };
55
+
56
+ const escapeKeyClose = (e: KeyboardEvent) => useEscape(e, () => closeModal());
57
+
58
+ onMounted(() => {
59
+ setTimeout(() => {
60
+ isActive = true;
61
+ }, 1);
62
+
63
+ document.addEventListener(
64
+ 'keydown',
65
+ escapeKeyClose,
66
+ );
67
+ });
68
+ onUnmounted(() => {
69
+ document.removeEventListener(
70
+ 'keydown',
71
+ escapeKeyClose,
72
+ );
73
+ });
61
74
  </script>
@@ -34,8 +34,10 @@
34
34
 
35
35
  <script lang="ts" setup>
36
36
  import { type FormKitSchemaDefinition } from '@formkit/core';
37
- import { onMounted } from 'vue';
38
- import { Btn, FormSchema, BtnOptions } from '@bagelink/vue';
37
+ import { onMounted, onUnmounted } from 'vue';
38
+ import {
39
+ Btn, FormSchema, BtnOptions, useEscape,
40
+ } from '@bagelink/vue';
39
41
  import '../styles/modal.css';
40
42
 
41
43
  // import { BagelField } from '@bagelink/vue';
@@ -62,12 +64,6 @@ const computedFormSchema = $computed(() => {
62
64
 
63
65
  let isActive = $ref<boolean>(false);
64
66
 
65
- onMounted(() => {
66
- setTimeout(() => {
67
- isActive = true;
68
- }, 1);
69
- });
70
-
71
67
  const emit = defineEmits(['update:isModalVisible', 'update:modelValue']);
72
68
  const handleEmit = (value: any) => {
73
69
  emit('update:modelValue', value);
@@ -93,6 +89,25 @@ const runDelete = () => {
93
89
  props.onDelete?.(props.modelValue?.id);
94
90
  closeModal();
95
91
  };
92
+
93
+ const escapeKeyClose = (e: KeyboardEvent) => useEscape(e, () => closeModal());
94
+
95
+ onMounted(() => {
96
+ setTimeout(() => {
97
+ isActive = true;
98
+ }, 1);
99
+
100
+ document.addEventListener(
101
+ 'keydown',
102
+ escapeKeyClose,
103
+ );
104
+ });
105
+ onUnmounted(() => {
106
+ document.removeEventListener(
107
+ 'keydown',
108
+ escapeKeyClose,
109
+ );
110
+ });
96
111
  </script>
97
112
 
98
113
  <style scoped>
@@ -11,20 +11,20 @@
11
11
  v-if="deleteCandidate === i"
12
12
  >
13
13
  <p class="txt14">
14
- {{ context?.formPlaceholders?.sure }}
14
+ {{ formPlaceholders?.sure }}
15
15
  </p>
16
16
  <Btn
17
17
  thin
18
18
  color="red"
19
19
  @click="deleteContact(address.id)"
20
20
  >
21
- {{ context?.formPlaceholders?.delete }}
21
+ {{ formPlaceholders?.delete }}
22
22
  </Btn>
23
23
  <Btn
24
24
  thin
25
25
  @click="deleteCandidate = -1"
26
26
  >
27
- {{ context?.formPlaceholders?.cancel }}
27
+ {{ formPlaceholders?.cancel }}
28
28
  </Btn>
29
29
  </div>
30
30
  <Checkbox
@@ -35,29 +35,29 @@
35
35
  class="bglform-contact-label"
36
36
  v-model="address.label"
37
37
  type="text"
38
- :placeholder="context?.formPlaceholders?.label"
38
+ :placeholder="formPlaceholders?.label"
39
39
  >
40
40
  <div class="bglform-contact-address">
41
41
  <input
42
42
  v-model="address.street"
43
- :placeholder="context?.formPlaceholders?.street"
43
+ :placeholder="formPlaceholders?.street"
44
44
  type="text"
45
45
  >
46
46
  <div class="bglform-contact-address-flex">
47
47
  <input
48
48
  v-model="address.city"
49
- :placeholder="context?.formPlaceholders?.city"
49
+ :placeholder="formPlaceholders?.city"
50
50
  type="text"
51
51
  >
52
52
  <input
53
53
  v-model="address.postal_code"
54
- :placeholder="context?.formPlaceholders?.zip"
54
+ :placeholder="formPlaceholders?.zip"
55
55
  type="text"
56
56
  >
57
57
  </div>
58
58
  <input
59
59
  v-model="address.country"
60
- :placeholder="context?.formPlaceholders?.country"
60
+ :placeholder="formPlaceholders?.country"
61
61
  type="text"
62
62
  >
63
63
  </div>
@@ -77,7 +77,7 @@
77
77
  thin
78
78
  @click="addNew"
79
79
  >
80
- {{ context?.formPlaceholders?.add }}
80
+ {{ formPlaceholders?.add }}
81
81
  {{ context?.label }}
82
82
  </Btn>
83
83
  </div>
@@ -92,26 +92,29 @@ import { Btn, useBagel } from '@bagelink/vue';
92
92
  import Checkbox from '../form/inputs/Checkbox.vue';
93
93
 
94
94
  export interface AddressArrContext {
95
-
96
95
  label?: string;
97
- formPlaceholders?: {
98
- add?: string;
99
- cancel?: string;
100
- city?: string;
101
- country?: string;
102
- delete?: string;
103
- label?: string;
104
- sure?: string;
105
- zip?: string;
106
- street?: string;
96
+ id?: string;
97
+ value: any[];
98
+ node: Record<string, any>;
99
+ attrs: {
100
+ formPlaceholders?: {
101
+ add?: string;
102
+ cancel?: string;
103
+ city?: string;
104
+ country?: string;
105
+ delete?: string;
106
+ label?: string;
107
+ sure?: string;
108
+ zip?: string;
109
+ street?: string;
110
+ };
107
111
  };
108
- [key: string]: any;
109
-
110
112
  }
111
113
  const bagel = useBagel();
112
114
  const props = defineProps<{
113
115
  context: AddressArrContext
114
116
  }>();
117
+ const formPlaceholders = $computed(() => props.context?.attrs?.formPlaceholders);
115
118
 
116
119
  let val = $ref<any[]>([]);
117
120
  const addNew = () => {
@@ -11,20 +11,20 @@
11
11
  v-if="deleteCandidate === i"
12
12
  >
13
13
  <p class="txt14">
14
- {{ context?.formPlaceholders?.sure }}
14
+ {{ formPlaceholders?.sure }}
15
15
  </p>
16
16
  <Btn
17
17
  thin
18
18
  color="red"
19
19
  @click="deleteContact(bank_account.id)"
20
20
  >
21
- {{ context?.formPlaceholders?.delete }}
21
+ {{ formPlaceholders?.delete }}
22
22
  </Btn>
23
23
  <Btn
24
24
  thin
25
25
  @click="deleteCandidate = -1"
26
26
  >
27
- {{ context?.formPlaceholders?.cancel }}
27
+ {{ formPlaceholders?.cancel }}
28
28
  </Btn>
29
29
  </div>
30
30
  <Checkbox
@@ -35,25 +35,25 @@
35
35
  class="bglform-contact-label"
36
36
  v-model="bank_account.label"
37
37
  type="text"
38
- :placeholder="context?.formPlaceholders?.label"
38
+ :placeholder="formPlaceholders?.label"
39
39
  >
40
40
  <div class="bglform-contact-address">
41
41
  <input
42
42
  v-model="bank_account.bank_name"
43
- :placeholder="context?.formPlaceholders?.bankName"
43
+ :placeholder="formPlaceholders?.bankName"
44
44
  type="text"
45
45
  required
46
46
  >
47
47
  <div class="bglform-contact-address-flex">
48
48
  <input
49
49
  v-model="bank_account.branch"
50
- :placeholder="context?.formPlaceholders?.bankBranch"
50
+ :placeholder="formPlaceholders?.bankBranch"
51
51
  type="text"
52
52
  required
53
53
  >
54
54
  <input
55
55
  v-model="bank_account.account_number"
56
- :placeholder="context?.formPlaceholders?.bankAccount"
56
+ :placeholder="formPlaceholders?.bankAccount"
57
57
  type="text"
58
58
  required
59
59
  >
@@ -61,13 +61,13 @@
61
61
  <div class="grid gap-2">
62
62
  <input
63
63
  v-model="bank_account.bank_account_holder"
64
- :placeholder="context?.formPlaceholders?.bankAccountHolder"
64
+ :placeholder="formPlaceholders?.bankAccountHolder"
65
65
  type="text"
66
66
  required
67
67
  >
68
68
  <input
69
69
  v-model="bank_account.bank_account_holder_id"
70
- :placeholder="context?.formPlaceholders?.bankAccountHolderID"
70
+ :placeholder="formPlaceholders?.bankAccountHolderID"
71
71
  type="text"
72
72
  >
73
73
  <input
@@ -82,7 +82,7 @@
82
82
  >
83
83
  <input
84
84
  v-model="bank_account.bank_address"
85
- :placeholder="context?.formPlaceholders?.bankAddress"
85
+ :placeholder="formPlaceholders?.bankAddress"
86
86
  type="text"
87
87
  >
88
88
  </div>
@@ -103,7 +103,7 @@
103
103
  thin
104
104
  @click="val.push({})"
105
105
  >
106
- {{ context?.formPlaceholders?.add }} {{ context?.label }}
106
+ {{ formPlaceholders?.add }} {{ context?.label }}
107
107
  </Btn>
108
108
  </div>
109
109
  </div>
@@ -118,26 +118,31 @@ import Checkbox from '../form/inputs/Checkbox.vue';
118
118
 
119
119
  export interface BankDetailsContext {
120
120
  label?: string;
121
- formPlaceholders?: {
122
- sure?: string;
123
- delete?: string;
124
- cancel?: string;
125
- label?: string;
126
- bankName?: string;
127
- bankBranch?: string;
128
- bankAccount?: string;
129
- bankAccountHolder?: string;
130
- bankAccountHolderID?: string;
131
- bankAddress?: string;
132
- add?: string;
121
+ id?: string;
122
+ value: any[];
123
+ node: Record<string, any>;
124
+ attrs: {
125
+ formPlaceholders?: {
126
+ sure?: string;
127
+ delete?: string;
128
+ cancel?: string;
129
+ label?: string;
130
+ bankName?: string;
131
+ bankBranch?: string;
132
+ bankAccount?: string;
133
+ bankAccountHolder?: string;
134
+ bankAccountHolderID?: string;
135
+ bankAddress?: string;
136
+ add?: string;
137
+ };
133
138
  };
134
- [key: string]: any;
135
139
  }
136
140
  const bagel = useBagel();
137
141
 
138
142
  const props = defineProps<{
139
143
  context: BankDetailsContext;
140
144
  }>();
145
+ const formPlaceholders = $computed(() => props.context?.attrs?.formPlaceholders);
141
146
 
142
147
  let val = $ref<any[]>([]);
143
148