@inertiajs/vue3 2.1.0 → 2.1.2
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/index.esm.js +118 -53
- package/dist/index.esm.js.map +3 -3
- package/dist/index.js +113 -51
- package/dist/index.js.map +3 -3
- package/package.json +2 -2
- package/types/link.d.ts +2 -26
- package/types/useForm.d.ts +13 -17
package/dist/index.esm.js
CHANGED
|
@@ -64,7 +64,9 @@ var remember = {
|
|
|
64
64
|
var remember_default = remember;
|
|
65
65
|
|
|
66
66
|
// src/useForm.ts
|
|
67
|
-
import {
|
|
67
|
+
import {
|
|
68
|
+
router as router2
|
|
69
|
+
} from "@inertiajs/core";
|
|
68
70
|
import { cloneDeep as cloneDeep2, isEqual } from "es-toolkit";
|
|
69
71
|
import { get, has, set } from "es-toolkit/compat";
|
|
70
72
|
import { reactive, watch } from "vue";
|
|
@@ -436,7 +438,8 @@ var deferred_default = defineComponent2({
|
|
|
436
438
|
// src/form.ts
|
|
437
439
|
import {
|
|
438
440
|
formDataToObject,
|
|
439
|
-
mergeDataIntoQueryString
|
|
441
|
+
mergeDataIntoQueryString,
|
|
442
|
+
resetFormFields
|
|
440
443
|
} from "@inertiajs/core";
|
|
441
444
|
import { isEqual as isEqual2 } from "es-toolkit";
|
|
442
445
|
import { computed as computed2, defineComponent as defineComponent3, h as h3, onBeforeUnmount, onMounted, ref as ref2 } from "vue";
|
|
@@ -476,6 +479,18 @@ var Form = defineComponent3({
|
|
|
476
479
|
type: Object,
|
|
477
480
|
default: () => ({})
|
|
478
481
|
},
|
|
482
|
+
resetOnError: {
|
|
483
|
+
type: [Boolean, Array],
|
|
484
|
+
default: false
|
|
485
|
+
},
|
|
486
|
+
resetOnSuccess: {
|
|
487
|
+
type: [Boolean, Array],
|
|
488
|
+
default: false
|
|
489
|
+
},
|
|
490
|
+
setDefaultsOnSuccess: {
|
|
491
|
+
type: Boolean,
|
|
492
|
+
default: false
|
|
493
|
+
},
|
|
479
494
|
onCancelToken: {
|
|
480
495
|
type: Function,
|
|
481
496
|
default: noop
|
|
@@ -507,6 +522,18 @@ var Form = defineComponent3({
|
|
|
507
522
|
onError: {
|
|
508
523
|
type: Function,
|
|
509
524
|
default: noop
|
|
525
|
+
},
|
|
526
|
+
onSubmitComplete: {
|
|
527
|
+
type: Function,
|
|
528
|
+
default: noop
|
|
529
|
+
},
|
|
530
|
+
disableWhileProcessing: {
|
|
531
|
+
type: Boolean,
|
|
532
|
+
default: false
|
|
533
|
+
},
|
|
534
|
+
invalidateCacheTags: {
|
|
535
|
+
type: [String, Array],
|
|
536
|
+
default: () => []
|
|
510
537
|
}
|
|
511
538
|
},
|
|
512
539
|
setup(props, { slots, attrs, expose }) {
|
|
@@ -516,19 +543,18 @@ var Form = defineComponent3({
|
|
|
516
543
|
() => typeof props.action === "object" ? props.action.method : props.method.toLowerCase()
|
|
517
544
|
);
|
|
518
545
|
const isDirty = ref2(false);
|
|
519
|
-
|
|
546
|
+
const defaultData = ref2(new FormData());
|
|
520
547
|
const onFormUpdate = (event) => {
|
|
521
|
-
isDirty.value = event.type === "reset" ? false : !isEqual2(getData(),
|
|
548
|
+
isDirty.value = event.type === "reset" ? false : !isEqual2(getData(), formDataToObject(defaultData.value));
|
|
522
549
|
};
|
|
523
550
|
const formEvents = ["input", "change", "reset"];
|
|
524
551
|
onMounted(() => {
|
|
525
|
-
|
|
552
|
+
defaultData.value = getFormData();
|
|
526
553
|
formEvents.forEach((e) => formElement.value.addEventListener(e, onFormUpdate));
|
|
527
554
|
});
|
|
528
555
|
onBeforeUnmount(() => formEvents.forEach((e) => formElement.value?.removeEventListener(e, onFormUpdate)));
|
|
529
|
-
const
|
|
530
|
-
|
|
531
|
-
};
|
|
556
|
+
const getFormData = () => new FormData(formElement.value);
|
|
557
|
+
const getData = () => formDataToObject(getFormData());
|
|
532
558
|
const submit = () => {
|
|
533
559
|
const [action, data] = mergeDataIntoQueryString(
|
|
534
560
|
method.value,
|
|
@@ -536,23 +562,55 @@ var Form = defineComponent3({
|
|
|
536
562
|
getData(),
|
|
537
563
|
props.queryStringArrayFormat
|
|
538
564
|
);
|
|
565
|
+
const maybeReset = (resetOption) => {
|
|
566
|
+
if (!resetOption) {
|
|
567
|
+
return;
|
|
568
|
+
}
|
|
569
|
+
if (resetOption === true) {
|
|
570
|
+
reset();
|
|
571
|
+
} else if (resetOption.length > 0) {
|
|
572
|
+
reset(...resetOption);
|
|
573
|
+
}
|
|
574
|
+
};
|
|
539
575
|
const submitOptions = {
|
|
540
576
|
headers: props.headers,
|
|
541
577
|
errorBag: props.errorBag,
|
|
542
578
|
showProgress: props.showProgress,
|
|
579
|
+
invalidateCacheTags: props.invalidateCacheTags,
|
|
543
580
|
onCancelToken: props.onCancelToken,
|
|
544
581
|
onBefore: props.onBefore,
|
|
545
582
|
onStart: props.onStart,
|
|
546
583
|
onProgress: props.onProgress,
|
|
547
584
|
onFinish: props.onFinish,
|
|
548
585
|
onCancel: props.onCancel,
|
|
549
|
-
onSuccess:
|
|
550
|
-
|
|
586
|
+
onSuccess: (...args) => {
|
|
587
|
+
props.onSuccess(...args);
|
|
588
|
+
props.onSubmitComplete(exposed);
|
|
589
|
+
maybeReset(props.resetOnSuccess);
|
|
590
|
+
if (props.setDefaultsOnSuccess === true) {
|
|
591
|
+
defaults();
|
|
592
|
+
}
|
|
593
|
+
},
|
|
594
|
+
onError: (...args) => {
|
|
595
|
+
props.onError(...args);
|
|
596
|
+
maybeReset(props.resetOnError);
|
|
597
|
+
},
|
|
551
598
|
...props.options
|
|
552
599
|
};
|
|
553
600
|
form.transform(() => props.transform(data)).submit(method.value, action, submitOptions);
|
|
554
601
|
};
|
|
555
|
-
|
|
602
|
+
const reset = (...fields) => {
|
|
603
|
+
resetFormFields(formElement.value, defaultData.value, fields);
|
|
604
|
+
};
|
|
605
|
+
const resetAndClearErrors = (...fields) => {
|
|
606
|
+
form.clearErrors(...fields);
|
|
607
|
+
reset(...fields);
|
|
608
|
+
};
|
|
609
|
+
const defaults = () => {
|
|
610
|
+
defaultData.value = getFormData();
|
|
611
|
+
isDirty.value = false;
|
|
612
|
+
};
|
|
613
|
+
const exposed = {
|
|
556
614
|
get errors() {
|
|
557
615
|
return form.errors;
|
|
558
616
|
},
|
|
@@ -572,14 +630,16 @@ var Form = defineComponent3({
|
|
|
572
630
|
return form.recentlySuccessful;
|
|
573
631
|
},
|
|
574
632
|
clearErrors: (...fields) => form.clearErrors(...fields),
|
|
575
|
-
resetAndClearErrors
|
|
633
|
+
resetAndClearErrors,
|
|
576
634
|
setError: (fieldOrFields, maybeValue) => form.setError(typeof fieldOrFields === "string" ? { [fieldOrFields]: maybeValue } : fieldOrFields),
|
|
577
635
|
get isDirty() {
|
|
578
636
|
return isDirty.value;
|
|
579
637
|
},
|
|
580
|
-
reset
|
|
581
|
-
submit
|
|
582
|
-
|
|
638
|
+
reset,
|
|
639
|
+
submit,
|
|
640
|
+
defaults
|
|
641
|
+
};
|
|
642
|
+
expose(exposed);
|
|
583
643
|
return () => {
|
|
584
644
|
return h3(
|
|
585
645
|
"form",
|
|
@@ -591,22 +651,10 @@ var Form = defineComponent3({
|
|
|
591
651
|
onSubmit: (event) => {
|
|
592
652
|
event.preventDefault();
|
|
593
653
|
submit();
|
|
594
|
-
}
|
|
654
|
+
},
|
|
655
|
+
inert: props.disableWhileProcessing && form.processing
|
|
595
656
|
},
|
|
596
|
-
slots.default ? slots.default(
|
|
597
|
-
errors: form.errors,
|
|
598
|
-
hasErrors: form.hasErrors,
|
|
599
|
-
processing: form.processing,
|
|
600
|
-
progress: form.progress,
|
|
601
|
-
wasSuccessful: form.wasSuccessful,
|
|
602
|
-
recentlySuccessful: form.recentlySuccessful,
|
|
603
|
-
setError: (fieldOrFields, maybeValue) => form.setError(typeof fieldOrFields === "string" ? { [fieldOrFields]: maybeValue } : fieldOrFields),
|
|
604
|
-
clearErrors: (...fields) => form.clearErrors(...fields),
|
|
605
|
-
resetAndClearErrors: (...fields) => form.resetAndClearErrors(...fields),
|
|
606
|
-
isDirty: isDirty.value,
|
|
607
|
-
reset: () => formElement.value.reset(),
|
|
608
|
-
submit
|
|
609
|
-
}) : []
|
|
657
|
+
slots.default ? slots.default(exposed) : []
|
|
610
658
|
);
|
|
611
659
|
};
|
|
612
660
|
}
|
|
@@ -742,6 +790,8 @@ import {
|
|
|
742
790
|
shouldIntercept
|
|
743
791
|
} from "@inertiajs/core";
|
|
744
792
|
import { computed as computed3, defineComponent as defineComponent5, h as h4, onMounted as onMounted2, onUnmounted, ref as ref3 } from "vue";
|
|
793
|
+
var noop2 = () => {
|
|
794
|
+
};
|
|
745
795
|
var Link = defineComponent5({
|
|
746
796
|
name: "Link",
|
|
747
797
|
props: {
|
|
@@ -755,7 +805,7 @@ var Link = defineComponent5({
|
|
|
755
805
|
},
|
|
756
806
|
href: {
|
|
757
807
|
type: [String, Object],
|
|
758
|
-
|
|
808
|
+
default: ""
|
|
759
809
|
},
|
|
760
810
|
method: {
|
|
761
811
|
type: String,
|
|
@@ -803,43 +853,47 @@ var Link = defineComponent5({
|
|
|
803
853
|
},
|
|
804
854
|
onStart: {
|
|
805
855
|
type: Function,
|
|
806
|
-
default:
|
|
807
|
-
}
|
|
856
|
+
default: noop2
|
|
808
857
|
},
|
|
809
858
|
onProgress: {
|
|
810
859
|
type: Function,
|
|
811
|
-
default:
|
|
812
|
-
}
|
|
860
|
+
default: noop2
|
|
813
861
|
},
|
|
814
862
|
onFinish: {
|
|
815
863
|
type: Function,
|
|
816
|
-
default:
|
|
817
|
-
}
|
|
864
|
+
default: noop2
|
|
818
865
|
},
|
|
819
866
|
onBefore: {
|
|
820
867
|
type: Function,
|
|
821
|
-
default:
|
|
822
|
-
}
|
|
868
|
+
default: noop2
|
|
823
869
|
},
|
|
824
870
|
onCancel: {
|
|
825
871
|
type: Function,
|
|
826
|
-
default:
|
|
827
|
-
}
|
|
872
|
+
default: noop2
|
|
828
873
|
},
|
|
829
874
|
onSuccess: {
|
|
830
875
|
type: Function,
|
|
831
|
-
default:
|
|
832
|
-
}
|
|
876
|
+
default: noop2
|
|
833
877
|
},
|
|
834
878
|
onError: {
|
|
835
879
|
type: Function,
|
|
836
|
-
default:
|
|
837
|
-
}
|
|
880
|
+
default: noop2
|
|
838
881
|
},
|
|
839
882
|
onCancelToken: {
|
|
840
883
|
type: Function,
|
|
841
|
-
default:
|
|
842
|
-
|
|
884
|
+
default: noop2
|
|
885
|
+
},
|
|
886
|
+
onPrefetching: {
|
|
887
|
+
type: Function,
|
|
888
|
+
default: noop2
|
|
889
|
+
},
|
|
890
|
+
onPrefetched: {
|
|
891
|
+
type: Function,
|
|
892
|
+
default: noop2
|
|
893
|
+
},
|
|
894
|
+
cacheTags: {
|
|
895
|
+
type: [String, Array],
|
|
896
|
+
default: () => []
|
|
843
897
|
}
|
|
844
898
|
},
|
|
845
899
|
setup(props, { slots, attrs }) {
|
|
@@ -886,7 +940,7 @@ var Link = defineComponent5({
|
|
|
886
940
|
const mergeDataArray = computed3(
|
|
887
941
|
() => mergeDataIntoQueryString2(
|
|
888
942
|
method.value,
|
|
889
|
-
typeof props.href === "object" ? props.href.url : props.href
|
|
943
|
+
typeof props.href === "object" ? props.href.url : props.href,
|
|
890
944
|
props.data,
|
|
891
945
|
props.queryStringArrayFormat
|
|
892
946
|
)
|
|
@@ -917,21 +971,32 @@ var Link = defineComponent5({
|
|
|
917
971
|
...baseParams.value,
|
|
918
972
|
onCancelToken: props.onCancelToken,
|
|
919
973
|
onBefore: props.onBefore,
|
|
920
|
-
onStart: (
|
|
974
|
+
onStart: (visit) => {
|
|
921
975
|
inFlightCount.value++;
|
|
922
|
-
props.onStart(
|
|
976
|
+
props.onStart(visit);
|
|
923
977
|
},
|
|
924
978
|
onProgress: props.onProgress,
|
|
925
|
-
onFinish: (
|
|
979
|
+
onFinish: (visit) => {
|
|
926
980
|
inFlightCount.value--;
|
|
927
|
-
props.onFinish(
|
|
981
|
+
props.onFinish(visit);
|
|
928
982
|
},
|
|
929
983
|
onCancel: props.onCancel,
|
|
930
984
|
onSuccess: props.onSuccess,
|
|
931
985
|
onError: props.onError
|
|
932
986
|
}));
|
|
933
987
|
const prefetch = () => {
|
|
934
|
-
router5.prefetch(
|
|
988
|
+
router5.prefetch(
|
|
989
|
+
href.value,
|
|
990
|
+
{
|
|
991
|
+
...baseParams.value,
|
|
992
|
+
onPrefetching: props.onPrefetching,
|
|
993
|
+
onPrefetched: props.onPrefetched
|
|
994
|
+
},
|
|
995
|
+
{
|
|
996
|
+
cacheFor: cacheForValue.value,
|
|
997
|
+
cacheTags: props.cacheTags
|
|
998
|
+
}
|
|
999
|
+
);
|
|
935
1000
|
};
|
|
936
1001
|
const regularEvents = {
|
|
937
1002
|
onClick: (event) => {
|