@vuehookform/core 0.4.5 → 0.4.7
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/vuehookform.cjs +17 -20
- package/dist/vuehookform.js +17 -20
- package/package.json +1 -1
package/dist/vuehookform.cjs
CHANGED
|
@@ -839,6 +839,7 @@ function createFieldRegistration(ctx, validate) {
|
|
|
839
839
|
let handlers = ctx.fieldHandlers.get(name);
|
|
840
840
|
if (!handlers) {
|
|
841
841
|
const runCustomValidation = async (fieldName, value, requestId, resetGenAtStart) => {
|
|
842
|
+
if (!ctx.fieldRefs.has(fieldName)) return;
|
|
842
843
|
const fieldOpts = ctx.fieldOptions.get(fieldName);
|
|
843
844
|
if (!fieldOpts?.validate || fieldOpts.disabled) return;
|
|
844
845
|
const error = await fieldOpts.validate(value);
|
|
@@ -1071,7 +1072,7 @@ function createFieldArrayManager(ctx, validate, setFocus) {
|
|
|
1071
1072
|
if (!focusOptions?.shouldFocus) return;
|
|
1072
1073
|
await (0, vue.nextTick)();
|
|
1073
1074
|
const focusItemOffset = focusOptions?.focusIndex ?? 0;
|
|
1074
|
-
let fieldPath = `${name}.${baseIndex + Math.min(focusItemOffset, addedCount - 1)}`;
|
|
1075
|
+
let fieldPath = `${name}.${baseIndex + Math.max(0, Math.min(focusItemOffset, addedCount - 1))}`;
|
|
1075
1076
|
if (focusOptions?.focusName) fieldPath = `${fieldPath}.${focusOptions.focusName}`;
|
|
1076
1077
|
setFocus(fieldPath);
|
|
1077
1078
|
};
|
|
@@ -1242,13 +1243,10 @@ function createFieldArrayManager(ctx, validate, setFocus) {
|
|
|
1242
1243
|
set(ctx.formData, name, newValues);
|
|
1243
1244
|
const newItems = [...fa.items.value];
|
|
1244
1245
|
const itemA = newItems[indexA];
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
fa.items.value = newItems;
|
|
1250
|
-
swapInCache(indexA, indexB);
|
|
1251
|
-
}
|
|
1246
|
+
newItems[indexA] = newItems[indexB];
|
|
1247
|
+
newItems[indexB] = itemA;
|
|
1248
|
+
fa.items.value = newItems;
|
|
1249
|
+
swapInCache(indexA, indexB);
|
|
1252
1250
|
updateFieldDirtyState(ctx.dirtyFields, ctx.defaultValues, ctx.defaultValueHashes, name, get(ctx.formData, name));
|
|
1253
1251
|
validateIfNeeded();
|
|
1254
1252
|
return true;
|
|
@@ -1268,16 +1266,14 @@ function createFieldArrayManager(ctx, validate, setFocus) {
|
|
|
1268
1266
|
}
|
|
1269
1267
|
const newItems = [...fa.items.value];
|
|
1270
1268
|
const [removedItem] = newItems.splice(from, 1);
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
if (item) indexCache.set(item.key, i);
|
|
1280
|
-
}
|
|
1269
|
+
newItems.splice(to, 0, removedItem);
|
|
1270
|
+
fa.items.value = newItems;
|
|
1271
|
+
const minIdx = Math.min(from, to);
|
|
1272
|
+
const maxIdx = Math.max(from, to);
|
|
1273
|
+
const items = fa.items.value;
|
|
1274
|
+
for (let i = minIdx; i <= maxIdx; i++) {
|
|
1275
|
+
const item = items[i];
|
|
1276
|
+
if (item) indexCache.set(item.key, i);
|
|
1281
1277
|
}
|
|
1282
1278
|
updateFieldDirtyState(ctx.dirtyFields, ctx.defaultValues, ctx.defaultValueHashes, name, get(ctx.formData, name));
|
|
1283
1279
|
validateIfNeeded();
|
|
@@ -1410,7 +1406,6 @@ function useForm(options) {
|
|
|
1410
1406
|
const isDirtyComputed = (0, vue.computed)(() => Object.keys(ctx.dirtyFields.value).length > 0);
|
|
1411
1407
|
const errorsComputed = (0, vue.computed)(() => getMergedErrors());
|
|
1412
1408
|
const isValidComputed = (0, vue.computed)(() => {
|
|
1413
|
-
if (!(ctx.submitCount.value > 0 || Object.keys(ctx.touchedFields.value).length > 0)) return false;
|
|
1414
1409
|
return Object.keys(errorsComputed.value).length === 0;
|
|
1415
1410
|
});
|
|
1416
1411
|
const isReadyComputed = (0, vue.computed)(() => !ctx.isLoading.value);
|
|
@@ -1530,6 +1525,7 @@ function useForm(options) {
|
|
|
1530
1525
|
Object.assign(ctx.formData, newValues);
|
|
1531
1526
|
if (!opts.keepErrors) {
|
|
1532
1527
|
ctx.errors.value = {};
|
|
1528
|
+
ctx.externalErrors.value = {};
|
|
1533
1529
|
ctx.persistentErrorFields.clear();
|
|
1534
1530
|
}
|
|
1535
1531
|
if (!opts.keepTouched) ctx.touchedFields.value = {};
|
|
@@ -1630,7 +1626,8 @@ function useForm(options) {
|
|
|
1630
1626
|
for (const field of fieldsToClean) {
|
|
1631
1627
|
clearFieldErrors(ctx.errors, field);
|
|
1632
1628
|
clearFieldErrors(ctx.externalErrors, field);
|
|
1633
|
-
|
|
1629
|
+
const prefix = `${field}.`;
|
|
1630
|
+
for (const persistentField of ctx.persistentErrorFields) if (persistentField === field || persistentField.startsWith(prefix)) ctx.persistentErrorFields.delete(persistentField);
|
|
1634
1631
|
}
|
|
1635
1632
|
}
|
|
1636
1633
|
function setError(name, error) {
|
package/dist/vuehookform.js
CHANGED
|
@@ -837,6 +837,7 @@ function createFieldRegistration(ctx, validate) {
|
|
|
837
837
|
let handlers = ctx.fieldHandlers.get(name);
|
|
838
838
|
if (!handlers) {
|
|
839
839
|
const runCustomValidation = async (fieldName, value, requestId, resetGenAtStart) => {
|
|
840
|
+
if (!ctx.fieldRefs.has(fieldName)) return;
|
|
840
841
|
const fieldOpts = ctx.fieldOptions.get(fieldName);
|
|
841
842
|
if (!fieldOpts?.validate || fieldOpts.disabled) return;
|
|
842
843
|
const error = await fieldOpts.validate(value);
|
|
@@ -1069,7 +1070,7 @@ function createFieldArrayManager(ctx, validate, setFocus) {
|
|
|
1069
1070
|
if (!focusOptions?.shouldFocus) return;
|
|
1070
1071
|
await nextTick();
|
|
1071
1072
|
const focusItemOffset = focusOptions?.focusIndex ?? 0;
|
|
1072
|
-
let fieldPath = `${name}.${baseIndex + Math.min(focusItemOffset, addedCount - 1)}`;
|
|
1073
|
+
let fieldPath = `${name}.${baseIndex + Math.max(0, Math.min(focusItemOffset, addedCount - 1))}`;
|
|
1073
1074
|
if (focusOptions?.focusName) fieldPath = `${fieldPath}.${focusOptions.focusName}`;
|
|
1074
1075
|
setFocus(fieldPath);
|
|
1075
1076
|
};
|
|
@@ -1240,13 +1241,10 @@ function createFieldArrayManager(ctx, validate, setFocus) {
|
|
|
1240
1241
|
set(ctx.formData, name, newValues);
|
|
1241
1242
|
const newItems = [...fa.items.value];
|
|
1242
1243
|
const itemA = newItems[indexA];
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
fa.items.value = newItems;
|
|
1248
|
-
swapInCache(indexA, indexB);
|
|
1249
|
-
}
|
|
1244
|
+
newItems[indexA] = newItems[indexB];
|
|
1245
|
+
newItems[indexB] = itemA;
|
|
1246
|
+
fa.items.value = newItems;
|
|
1247
|
+
swapInCache(indexA, indexB);
|
|
1250
1248
|
updateFieldDirtyState(ctx.dirtyFields, ctx.defaultValues, ctx.defaultValueHashes, name, get(ctx.formData, name));
|
|
1251
1249
|
validateIfNeeded();
|
|
1252
1250
|
return true;
|
|
@@ -1266,16 +1264,14 @@ function createFieldArrayManager(ctx, validate, setFocus) {
|
|
|
1266
1264
|
}
|
|
1267
1265
|
const newItems = [...fa.items.value];
|
|
1268
1266
|
const [removedItem] = newItems.splice(from, 1);
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
if (item) indexCache.set(item.key, i);
|
|
1278
|
-
}
|
|
1267
|
+
newItems.splice(to, 0, removedItem);
|
|
1268
|
+
fa.items.value = newItems;
|
|
1269
|
+
const minIdx = Math.min(from, to);
|
|
1270
|
+
const maxIdx = Math.max(from, to);
|
|
1271
|
+
const items = fa.items.value;
|
|
1272
|
+
for (let i = minIdx; i <= maxIdx; i++) {
|
|
1273
|
+
const item = items[i];
|
|
1274
|
+
if (item) indexCache.set(item.key, i);
|
|
1279
1275
|
}
|
|
1280
1276
|
updateFieldDirtyState(ctx.dirtyFields, ctx.defaultValues, ctx.defaultValueHashes, name, get(ctx.formData, name));
|
|
1281
1277
|
validateIfNeeded();
|
|
@@ -1408,7 +1404,6 @@ function useForm(options) {
|
|
|
1408
1404
|
const isDirtyComputed = computed(() => Object.keys(ctx.dirtyFields.value).length > 0);
|
|
1409
1405
|
const errorsComputed = computed(() => getMergedErrors());
|
|
1410
1406
|
const isValidComputed = computed(() => {
|
|
1411
|
-
if (!(ctx.submitCount.value > 0 || Object.keys(ctx.touchedFields.value).length > 0)) return false;
|
|
1412
1407
|
return Object.keys(errorsComputed.value).length === 0;
|
|
1413
1408
|
});
|
|
1414
1409
|
const isReadyComputed = computed(() => !ctx.isLoading.value);
|
|
@@ -1528,6 +1523,7 @@ function useForm(options) {
|
|
|
1528
1523
|
Object.assign(ctx.formData, newValues);
|
|
1529
1524
|
if (!opts.keepErrors) {
|
|
1530
1525
|
ctx.errors.value = {};
|
|
1526
|
+
ctx.externalErrors.value = {};
|
|
1531
1527
|
ctx.persistentErrorFields.clear();
|
|
1532
1528
|
}
|
|
1533
1529
|
if (!opts.keepTouched) ctx.touchedFields.value = {};
|
|
@@ -1628,7 +1624,8 @@ function useForm(options) {
|
|
|
1628
1624
|
for (const field of fieldsToClean) {
|
|
1629
1625
|
clearFieldErrors(ctx.errors, field);
|
|
1630
1626
|
clearFieldErrors(ctx.externalErrors, field);
|
|
1631
|
-
|
|
1627
|
+
const prefix = `${field}.`;
|
|
1628
|
+
for (const persistentField of ctx.persistentErrorFields) if (persistentField === field || persistentField.startsWith(prefix)) ctx.persistentErrorFields.delete(persistentField);
|
|
1632
1629
|
}
|
|
1633
1630
|
}
|
|
1634
1631
|
function setError(name, error) {
|
package/package.json
CHANGED