@vuetify/nightly 3.5.8-dev.2024-03-09 → 3.5.8-dev.2024-03-13
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/CHANGELOG.md +3 -2
- package/dist/json/importMap-labs.json +12 -12
- package/dist/json/importMap.json +118 -118
- package/dist/json/web-types.json +3 -3
- package/dist/vuetify-labs.css +2319 -2319
- package/dist/vuetify-labs.d.ts +21 -0
- package/dist/vuetify-labs.esm.js +8 -4
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +7 -3
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +958 -958
- package/dist/vuetify.d.ts +61 -40
- package/dist/vuetify.esm.js +8 -4
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +7 -3
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +9 -9
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VForm/index.d.mts +21 -0
- package/lib/components/index.d.mts +21 -0
- package/lib/composables/form.mjs +3 -1
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/validation.mjs +3 -1
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +40 -40
- package/package.json +1 -1
|
@@ -44,6 +44,7 @@ declare const VForm: {
|
|
|
44
44
|
validate: () => Promise<string[]>;
|
|
45
45
|
reset: () => void;
|
|
46
46
|
resetValidation: () => void;
|
|
47
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
47
48
|
isValid: boolean | null;
|
|
48
49
|
errorMessages: string[];
|
|
49
50
|
}[]>;
|
|
@@ -73,6 +74,7 @@ declare const VForm: {
|
|
|
73
74
|
validate: () => Promise<string[]>;
|
|
74
75
|
reset: () => void;
|
|
75
76
|
resetValidation: () => void;
|
|
77
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
76
78
|
isValid: boolean | null;
|
|
77
79
|
errorMessages: string[];
|
|
78
80
|
}[]>;
|
|
@@ -103,6 +105,7 @@ declare const VForm: {
|
|
|
103
105
|
validate: () => Promise<string[]>;
|
|
104
106
|
reset: () => void;
|
|
105
107
|
resetValidation: () => void;
|
|
108
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
106
109
|
isValid: boolean | null;
|
|
107
110
|
errorMessages: string[];
|
|
108
111
|
}[]>;
|
|
@@ -134,6 +137,7 @@ declare const VForm: {
|
|
|
134
137
|
validate: () => Promise<string[]>;
|
|
135
138
|
reset: () => void;
|
|
136
139
|
resetValidation: () => void;
|
|
140
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
137
141
|
isValid: boolean | null;
|
|
138
142
|
errorMessages: string[];
|
|
139
143
|
}[]>;
|
|
@@ -166,6 +170,7 @@ declare const VForm: {
|
|
|
166
170
|
validate: () => Promise<string[]>;
|
|
167
171
|
reset: () => void;
|
|
168
172
|
resetValidation: () => void;
|
|
173
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
169
174
|
isValid: boolean | null;
|
|
170
175
|
errorMessages: string[];
|
|
171
176
|
}[]>;
|
|
@@ -208,6 +213,7 @@ declare const VForm: {
|
|
|
208
213
|
validate: () => Promise<string[]>;
|
|
209
214
|
reset: () => void;
|
|
210
215
|
resetValidation: () => void;
|
|
216
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
211
217
|
isValid: boolean | null;
|
|
212
218
|
errorMessages: string[];
|
|
213
219
|
}[]>;
|
|
@@ -237,6 +243,7 @@ declare const VForm: {
|
|
|
237
243
|
validate: () => Promise<string[]>;
|
|
238
244
|
reset: () => void;
|
|
239
245
|
resetValidation: () => void;
|
|
246
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
240
247
|
isValid: boolean | null;
|
|
241
248
|
errorMessages: string[];
|
|
242
249
|
}[]>;
|
|
@@ -267,6 +274,7 @@ declare const VForm: {
|
|
|
267
274
|
validate: () => Promise<string[]>;
|
|
268
275
|
reset: () => void;
|
|
269
276
|
resetValidation: () => void;
|
|
277
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
270
278
|
isValid: boolean | null;
|
|
271
279
|
errorMessages: string[];
|
|
272
280
|
}[]>;
|
|
@@ -298,6 +306,7 @@ declare const VForm: {
|
|
|
298
306
|
validate: () => Promise<string[]>;
|
|
299
307
|
reset: () => void;
|
|
300
308
|
resetValidation: () => void;
|
|
309
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
301
310
|
isValid: boolean | null;
|
|
302
311
|
errorMessages: string[];
|
|
303
312
|
}[]>;
|
|
@@ -338,6 +347,7 @@ declare const VForm: {
|
|
|
338
347
|
validate: () => Promise<string[]>;
|
|
339
348
|
reset: () => void;
|
|
340
349
|
resetValidation: () => void;
|
|
350
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
341
351
|
isValid: boolean | null;
|
|
342
352
|
errorMessages: string[];
|
|
343
353
|
}[]>;
|
|
@@ -387,6 +397,7 @@ declare const VForm: {
|
|
|
387
397
|
validate: () => Promise<string[]>;
|
|
388
398
|
reset: () => void;
|
|
389
399
|
resetValidation: () => void;
|
|
400
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
390
401
|
isValid: boolean | null;
|
|
391
402
|
errorMessages: string[];
|
|
392
403
|
}[]>;
|
|
@@ -416,6 +427,7 @@ declare const VForm: {
|
|
|
416
427
|
validate: () => Promise<string[]>;
|
|
417
428
|
reset: () => void;
|
|
418
429
|
resetValidation: () => void;
|
|
430
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
419
431
|
isValid: boolean | null;
|
|
420
432
|
errorMessages: string[];
|
|
421
433
|
}[]>;
|
|
@@ -446,6 +458,7 @@ declare const VForm: {
|
|
|
446
458
|
validate: () => Promise<string[]>;
|
|
447
459
|
reset: () => void;
|
|
448
460
|
resetValidation: () => void;
|
|
461
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
449
462
|
isValid: boolean | null;
|
|
450
463
|
errorMessages: string[];
|
|
451
464
|
}[]>;
|
|
@@ -477,6 +490,7 @@ declare const VForm: {
|
|
|
477
490
|
validate: () => Promise<string[]>;
|
|
478
491
|
reset: () => void;
|
|
479
492
|
resetValidation: () => void;
|
|
493
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
480
494
|
isValid: boolean | null;
|
|
481
495
|
errorMessages: string[];
|
|
482
496
|
}[]>;
|
|
@@ -509,6 +523,7 @@ declare const VForm: {
|
|
|
509
523
|
validate: () => Promise<string[]>;
|
|
510
524
|
reset: () => void;
|
|
511
525
|
resetValidation: () => void;
|
|
526
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
512
527
|
isValid: boolean | null;
|
|
513
528
|
errorMessages: string[];
|
|
514
529
|
}[]>;
|
|
@@ -559,6 +574,7 @@ declare const VForm: {
|
|
|
559
574
|
validate: () => Promise<string[]>;
|
|
560
575
|
reset: () => void;
|
|
561
576
|
resetValidation: () => void;
|
|
577
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
562
578
|
isValid: boolean | null;
|
|
563
579
|
errorMessages: string[];
|
|
564
580
|
}[]>;
|
|
@@ -588,6 +604,7 @@ declare const VForm: {
|
|
|
588
604
|
validate: () => Promise<string[]>;
|
|
589
605
|
reset: () => void;
|
|
590
606
|
resetValidation: () => void;
|
|
607
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
591
608
|
isValid: boolean | null;
|
|
592
609
|
errorMessages: string[];
|
|
593
610
|
}[]>;
|
|
@@ -618,6 +635,7 @@ declare const VForm: {
|
|
|
618
635
|
validate: () => Promise<string[]>;
|
|
619
636
|
reset: () => void;
|
|
620
637
|
resetValidation: () => void;
|
|
638
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
621
639
|
isValid: boolean | null;
|
|
622
640
|
errorMessages: string[];
|
|
623
641
|
}[]>;
|
|
@@ -649,6 +667,7 @@ declare const VForm: {
|
|
|
649
667
|
validate: () => Promise<string[]>;
|
|
650
668
|
reset: () => void;
|
|
651
669
|
resetValidation: () => void;
|
|
670
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
652
671
|
isValid: boolean | null;
|
|
653
672
|
errorMessages: string[];
|
|
654
673
|
}[]>;
|
|
@@ -681,6 +700,7 @@ declare const VForm: {
|
|
|
681
700
|
validate: () => Promise<string[]>;
|
|
682
701
|
reset: () => void;
|
|
683
702
|
resetValidation: () => void;
|
|
703
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
684
704
|
isValid: boolean | null;
|
|
685
705
|
errorMessages: string[];
|
|
686
706
|
}[]>;
|
|
@@ -720,6 +740,7 @@ declare const VForm: {
|
|
|
720
740
|
validate: () => Promise<string[]>;
|
|
721
741
|
reset: () => void;
|
|
722
742
|
resetValidation: () => void;
|
|
743
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
723
744
|
isValid: boolean | null;
|
|
724
745
|
errorMessages: string[];
|
|
725
746
|
}[]>;
|
|
@@ -33580,6 +33580,7 @@ declare const VForm: {
|
|
|
33580
33580
|
validate: () => Promise<string[]>;
|
|
33581
33581
|
reset: () => void;
|
|
33582
33582
|
resetValidation: () => void;
|
|
33583
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
33583
33584
|
isValid: boolean | null;
|
|
33584
33585
|
errorMessages: string[];
|
|
33585
33586
|
}[]>;
|
|
@@ -33609,6 +33610,7 @@ declare const VForm: {
|
|
|
33609
33610
|
validate: () => Promise<string[]>;
|
|
33610
33611
|
reset: () => void;
|
|
33611
33612
|
resetValidation: () => void;
|
|
33613
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
33612
33614
|
isValid: boolean | null;
|
|
33613
33615
|
errorMessages: string[];
|
|
33614
33616
|
}[]>;
|
|
@@ -33639,6 +33641,7 @@ declare const VForm: {
|
|
|
33639
33641
|
validate: () => Promise<string[]>;
|
|
33640
33642
|
reset: () => void;
|
|
33641
33643
|
resetValidation: () => void;
|
|
33644
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
33642
33645
|
isValid: boolean | null;
|
|
33643
33646
|
errorMessages: string[];
|
|
33644
33647
|
}[]>;
|
|
@@ -33670,6 +33673,7 @@ declare const VForm: {
|
|
|
33670
33673
|
validate: () => Promise<string[]>;
|
|
33671
33674
|
reset: () => void;
|
|
33672
33675
|
resetValidation: () => void;
|
|
33676
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
33673
33677
|
isValid: boolean | null;
|
|
33674
33678
|
errorMessages: string[];
|
|
33675
33679
|
}[]>;
|
|
@@ -33702,6 +33706,7 @@ declare const VForm: {
|
|
|
33702
33706
|
validate: () => Promise<string[]>;
|
|
33703
33707
|
reset: () => void;
|
|
33704
33708
|
resetValidation: () => void;
|
|
33709
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
33705
33710
|
isValid: boolean | null;
|
|
33706
33711
|
errorMessages: string[];
|
|
33707
33712
|
}[]>;
|
|
@@ -33744,6 +33749,7 @@ declare const VForm: {
|
|
|
33744
33749
|
validate: () => Promise<string[]>;
|
|
33745
33750
|
reset: () => void;
|
|
33746
33751
|
resetValidation: () => void;
|
|
33752
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
33747
33753
|
isValid: boolean | null;
|
|
33748
33754
|
errorMessages: string[];
|
|
33749
33755
|
}[]>;
|
|
@@ -33773,6 +33779,7 @@ declare const VForm: {
|
|
|
33773
33779
|
validate: () => Promise<string[]>;
|
|
33774
33780
|
reset: () => void;
|
|
33775
33781
|
resetValidation: () => void;
|
|
33782
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
33776
33783
|
isValid: boolean | null;
|
|
33777
33784
|
errorMessages: string[];
|
|
33778
33785
|
}[]>;
|
|
@@ -33803,6 +33810,7 @@ declare const VForm: {
|
|
|
33803
33810
|
validate: () => Promise<string[]>;
|
|
33804
33811
|
reset: () => void;
|
|
33805
33812
|
resetValidation: () => void;
|
|
33813
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
33806
33814
|
isValid: boolean | null;
|
|
33807
33815
|
errorMessages: string[];
|
|
33808
33816
|
}[]>;
|
|
@@ -33834,6 +33842,7 @@ declare const VForm: {
|
|
|
33834
33842
|
validate: () => Promise<string[]>;
|
|
33835
33843
|
reset: () => void;
|
|
33836
33844
|
resetValidation: () => void;
|
|
33845
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
33837
33846
|
isValid: boolean | null;
|
|
33838
33847
|
errorMessages: string[];
|
|
33839
33848
|
}[]>;
|
|
@@ -33874,6 +33883,7 @@ declare const VForm: {
|
|
|
33874
33883
|
validate: () => Promise<string[]>;
|
|
33875
33884
|
reset: () => void;
|
|
33876
33885
|
resetValidation: () => void;
|
|
33886
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
33877
33887
|
isValid: boolean | null;
|
|
33878
33888
|
errorMessages: string[];
|
|
33879
33889
|
}[]>;
|
|
@@ -33923,6 +33933,7 @@ declare const VForm: {
|
|
|
33923
33933
|
validate: () => Promise<string[]>;
|
|
33924
33934
|
reset: () => void;
|
|
33925
33935
|
resetValidation: () => void;
|
|
33936
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
33926
33937
|
isValid: boolean | null;
|
|
33927
33938
|
errorMessages: string[];
|
|
33928
33939
|
}[]>;
|
|
@@ -33952,6 +33963,7 @@ declare const VForm: {
|
|
|
33952
33963
|
validate: () => Promise<string[]>;
|
|
33953
33964
|
reset: () => void;
|
|
33954
33965
|
resetValidation: () => void;
|
|
33966
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
33955
33967
|
isValid: boolean | null;
|
|
33956
33968
|
errorMessages: string[];
|
|
33957
33969
|
}[]>;
|
|
@@ -33982,6 +33994,7 @@ declare const VForm: {
|
|
|
33982
33994
|
validate: () => Promise<string[]>;
|
|
33983
33995
|
reset: () => void;
|
|
33984
33996
|
resetValidation: () => void;
|
|
33997
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
33985
33998
|
isValid: boolean | null;
|
|
33986
33999
|
errorMessages: string[];
|
|
33987
34000
|
}[]>;
|
|
@@ -34013,6 +34026,7 @@ declare const VForm: {
|
|
|
34013
34026
|
validate: () => Promise<string[]>;
|
|
34014
34027
|
reset: () => void;
|
|
34015
34028
|
resetValidation: () => void;
|
|
34029
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
34016
34030
|
isValid: boolean | null;
|
|
34017
34031
|
errorMessages: string[];
|
|
34018
34032
|
}[]>;
|
|
@@ -34045,6 +34059,7 @@ declare const VForm: {
|
|
|
34045
34059
|
validate: () => Promise<string[]>;
|
|
34046
34060
|
reset: () => void;
|
|
34047
34061
|
resetValidation: () => void;
|
|
34062
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
34048
34063
|
isValid: boolean | null;
|
|
34049
34064
|
errorMessages: string[];
|
|
34050
34065
|
}[]>;
|
|
@@ -34095,6 +34110,7 @@ declare const VForm: {
|
|
|
34095
34110
|
validate: () => Promise<string[]>;
|
|
34096
34111
|
reset: () => void;
|
|
34097
34112
|
resetValidation: () => void;
|
|
34113
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
34098
34114
|
isValid: boolean | null;
|
|
34099
34115
|
errorMessages: string[];
|
|
34100
34116
|
}[]>;
|
|
@@ -34124,6 +34140,7 @@ declare const VForm: {
|
|
|
34124
34140
|
validate: () => Promise<string[]>;
|
|
34125
34141
|
reset: () => void;
|
|
34126
34142
|
resetValidation: () => void;
|
|
34143
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
34127
34144
|
isValid: boolean | null;
|
|
34128
34145
|
errorMessages: string[];
|
|
34129
34146
|
}[]>;
|
|
@@ -34154,6 +34171,7 @@ declare const VForm: {
|
|
|
34154
34171
|
validate: () => Promise<string[]>;
|
|
34155
34172
|
reset: () => void;
|
|
34156
34173
|
resetValidation: () => void;
|
|
34174
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
34157
34175
|
isValid: boolean | null;
|
|
34158
34176
|
errorMessages: string[];
|
|
34159
34177
|
}[]>;
|
|
@@ -34185,6 +34203,7 @@ declare const VForm: {
|
|
|
34185
34203
|
validate: () => Promise<string[]>;
|
|
34186
34204
|
reset: () => void;
|
|
34187
34205
|
resetValidation: () => void;
|
|
34206
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
34188
34207
|
isValid: boolean | null;
|
|
34189
34208
|
errorMessages: string[];
|
|
34190
34209
|
}[]>;
|
|
@@ -34217,6 +34236,7 @@ declare const VForm: {
|
|
|
34217
34236
|
validate: () => Promise<string[]>;
|
|
34218
34237
|
reset: () => void;
|
|
34219
34238
|
resetValidation: () => void;
|
|
34239
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
34220
34240
|
isValid: boolean | null;
|
|
34221
34241
|
errorMessages: string[];
|
|
34222
34242
|
}[]>;
|
|
@@ -34256,6 +34276,7 @@ declare const VForm: {
|
|
|
34256
34276
|
validate: () => Promise<string[]>;
|
|
34257
34277
|
reset: () => void;
|
|
34258
34278
|
resetValidation: () => void;
|
|
34279
|
+
vm: vue.Raw<vue.ComponentInternalInstance>;
|
|
34259
34280
|
isValid: boolean | null;
|
|
34260
34281
|
errorMessages: string[];
|
|
34261
34282
|
}[]>;
|
package/lib/composables/form.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Composables
|
|
2
2
|
import { useProxiedModel } from "./proxiedModel.mjs"; // Utilities
|
|
3
|
-
import { computed, inject, provide, ref, shallowRef, toRef, watch } from 'vue';
|
|
3
|
+
import { computed, inject, markRaw, provide, ref, shallowRef, toRef, watch } from 'vue';
|
|
4
4
|
import { consoleWarn, propsFactory } from "../util/index.mjs"; // Types
|
|
5
5
|
export const FormKey = Symbol.for('vuetify:form');
|
|
6
6
|
export const makeFormProps = propsFactory({
|
|
@@ -75,6 +75,7 @@ export function createForm(props) {
|
|
|
75
75
|
register: _ref => {
|
|
76
76
|
let {
|
|
77
77
|
id,
|
|
78
|
+
vm,
|
|
78
79
|
validate,
|
|
79
80
|
reset,
|
|
80
81
|
resetValidation
|
|
@@ -87,6 +88,7 @@ export function createForm(props) {
|
|
|
87
88
|
validate,
|
|
88
89
|
reset,
|
|
89
90
|
resetValidation,
|
|
91
|
+
vm: markRaw(vm),
|
|
90
92
|
isValid: null,
|
|
91
93
|
errorMessages: []
|
|
92
94
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.mjs","names":["useProxiedModel","computed","inject","provide","ref","shallowRef","toRef","watch","consoleWarn","propsFactory","FormKey","Symbol","for","makeFormProps","disabled","Boolean","fastFail","readonly","modelValue","type","default","validateOn","String","createForm","props","model","isDisabled","isReadonly","isValidating","items","errors","validate","results","valid","value","item","itemErrorMessages","length","push","id","errorMessages","reset","forEach","resetValidation","invalid","isValid","deep","flush","register","_ref","some","unregister","filter","update","found","find","useForm"],"sources":["../../src/composables/form.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, ref, shallowRef, toRef, watch } from 'vue'\nimport { consoleWarn, propsFactory } from '@/util'\n\n// Types\nimport type { ComputedRef, InjectionKey, PropType, Ref } from 'vue'\nimport type { ValidationProps } from './validation'\nimport type { EventProp } from '@/util'\n\nexport interface FormProvide {\n register: (item: {\n id: number | string\n validate: () => Promise<string[]>\n reset: () => void\n resetValidation: () => void\n }) => void\n unregister: (id: number | string) => void\n update: (id: number | string, isValid: boolean | null, errorMessages: string[]) => void\n items: Ref<FormField[]>\n isDisabled: ComputedRef<boolean>\n isReadonly: ComputedRef<boolean>\n isValidating: Ref<boolean>\n isValid: Ref<boolean | null>\n validateOn: Ref<FormProps['validateOn']>\n}\n\nexport interface FormField {\n id: number | string\n validate: () => Promise<string[]>\n reset: () => void\n resetValidation: () => void\n isValid: boolean | null\n errorMessages: string[]\n}\n\nexport interface FieldValidationResult {\n id: number | string\n errorMessages: string[]\n}\n\nexport interface FormValidationResult {\n valid: boolean\n errors: FieldValidationResult[]\n}\n\nexport interface SubmitEventPromise extends SubmitEvent, Promise<FormValidationResult> {}\n\nexport const FormKey: InjectionKey<FormProvide> = Symbol.for('vuetify:form')\n\nexport interface FormProps {\n disabled: boolean\n fastFail: boolean\n readonly: boolean\n modelValue: boolean | null\n 'onUpdate:modelValue': EventProp<[boolean | null]> | undefined\n validateOn: ValidationProps['validateOn']\n}\n\nexport const makeFormProps = propsFactory({\n disabled: Boolean,\n fastFail: Boolean,\n readonly: Boolean,\n modelValue: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n validateOn: {\n type: String as PropType<FormProps['validateOn']>,\n default: 'input',\n },\n}, 'form')\n\nexport function createForm (props: FormProps) {\n const model = useProxiedModel(props, 'modelValue')\n\n const isDisabled = computed(() => props.disabled)\n const isReadonly = computed(() => props.readonly)\n const isValidating = shallowRef(false)\n const items = ref<FormField[]>([])\n const errors = ref<FieldValidationResult[]>([])\n\n async function validate () {\n const results = []\n let valid = true\n\n errors.value = []\n isValidating.value = true\n\n for (const item of items.value) {\n const itemErrorMessages = await item.validate()\n\n if (itemErrorMessages.length > 0) {\n valid = false\n\n results.push({\n id: item.id,\n errorMessages: itemErrorMessages,\n })\n }\n\n if (!valid && props.fastFail) break\n }\n\n errors.value = results\n isValidating.value = false\n\n return { valid, errors: errors.value }\n }\n\n function reset () {\n items.value.forEach(item => item.reset())\n }\n\n function resetValidation () {\n items.value.forEach(item => item.resetValidation())\n }\n\n watch(items, () => {\n let valid = 0\n let invalid = 0\n const results = []\n\n for (const item of items.value) {\n if (item.isValid === false) {\n invalid++\n results.push({\n id: item.id,\n errorMessages: item.errorMessages,\n })\n } else if (item.isValid === true) valid++\n }\n\n errors.value = results\n model.value =\n invalid > 0 ? false\n : valid === items.value.length ? true\n : null\n }, { deep: true, flush: 'post' })\n\n provide(FormKey, {\n register: ({ id, validate, reset, resetValidation }) => {\n if (items.value.some(item => item.id === id)) {\n consoleWarn(`Duplicate input name \"${id}\"`)\n }\n\n items.value.push({\n id,\n validate,\n reset,\n resetValidation,\n isValid: null,\n errorMessages: [],\n })\n },\n unregister: id => {\n items.value = items.value.filter(item => {\n return item.id !== id\n })\n },\n update: (id, isValid, errorMessages) => {\n const found = items.value.find(item => item.id === id)\n\n if (!found) return\n\n found.isValid = isValid\n found.errorMessages = errorMessages\n },\n isDisabled,\n isReadonly,\n isValidating,\n isValid: model,\n items,\n validateOn: toRef(props, 'validateOn'),\n })\n\n return {\n errors,\n isDisabled,\n isReadonly,\n isValidating,\n isValid: model,\n items,\n validate,\n reset,\n resetValidation,\n }\n}\n\nexport function useForm () {\n return inject(FormKey, null)\n}\n"],"mappings":"AAAA;AAAA,SACSA,eAAe,8BAExB;AACA,SAASC,QAAQ,EAAEC,MAAM,EAAEC,OAAO,EAAEC,GAAG,EAAEC,UAAU,EAAEC,KAAK,EAAEC,KAAK,QAAQ,KAAK;AAAA,
|
|
1
|
+
{"version":3,"file":"form.mjs","names":["useProxiedModel","computed","inject","markRaw","provide","ref","shallowRef","toRef","watch","consoleWarn","propsFactory","FormKey","Symbol","for","makeFormProps","disabled","Boolean","fastFail","readonly","modelValue","type","default","validateOn","String","createForm","props","model","isDisabled","isReadonly","isValidating","items","errors","validate","results","valid","value","item","itemErrorMessages","length","push","id","errorMessages","reset","forEach","resetValidation","invalid","isValid","deep","flush","register","_ref","vm","some","unregister","filter","update","found","find","useForm"],"sources":["../../src/composables/form.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, markRaw, provide, ref, shallowRef, toRef, watch } from 'vue'\nimport { consoleWarn, propsFactory } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, ComputedRef, InjectionKey, PropType, Raw, Ref } from 'vue'\nimport type { ValidationProps } from './validation'\nimport type { EventProp } from '@/util'\n\nexport interface FormProvide {\n register: (item: {\n id: number | string\n vm: ComponentInternalInstance\n validate: () => Promise<string[]>\n reset: () => void\n resetValidation: () => void\n }) => void\n unregister: (id: number | string) => void\n update: (id: number | string, isValid: boolean | null, errorMessages: string[]) => void\n items: Ref<FormField[]>\n isDisabled: ComputedRef<boolean>\n isReadonly: ComputedRef<boolean>\n isValidating: Ref<boolean>\n isValid: Ref<boolean | null>\n validateOn: Ref<FormProps['validateOn']>\n}\n\nexport interface FormField {\n id: number | string\n validate: () => Promise<string[]>\n reset: () => void\n resetValidation: () => void\n vm: Raw<ComponentInternalInstance>\n isValid: boolean | null\n errorMessages: string[]\n}\n\nexport interface FieldValidationResult {\n id: number | string\n errorMessages: string[]\n}\n\nexport interface FormValidationResult {\n valid: boolean\n errors: FieldValidationResult[]\n}\n\nexport interface SubmitEventPromise extends SubmitEvent, Promise<FormValidationResult> {}\n\nexport const FormKey: InjectionKey<FormProvide> = Symbol.for('vuetify:form')\n\nexport interface FormProps {\n disabled: boolean\n fastFail: boolean\n readonly: boolean\n modelValue: boolean | null\n 'onUpdate:modelValue': EventProp<[boolean | null]> | undefined\n validateOn: ValidationProps['validateOn']\n}\n\nexport const makeFormProps = propsFactory({\n disabled: Boolean,\n fastFail: Boolean,\n readonly: Boolean,\n modelValue: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n validateOn: {\n type: String as PropType<FormProps['validateOn']>,\n default: 'input',\n },\n}, 'form')\n\nexport function createForm (props: FormProps) {\n const model = useProxiedModel(props, 'modelValue')\n\n const isDisabled = computed(() => props.disabled)\n const isReadonly = computed(() => props.readonly)\n const isValidating = shallowRef(false)\n const items = ref<FormField[]>([])\n const errors = ref<FieldValidationResult[]>([])\n\n async function validate () {\n const results = []\n let valid = true\n\n errors.value = []\n isValidating.value = true\n\n for (const item of items.value) {\n const itemErrorMessages = await item.validate()\n\n if (itemErrorMessages.length > 0) {\n valid = false\n\n results.push({\n id: item.id,\n errorMessages: itemErrorMessages,\n })\n }\n\n if (!valid && props.fastFail) break\n }\n\n errors.value = results\n isValidating.value = false\n\n return { valid, errors: errors.value }\n }\n\n function reset () {\n items.value.forEach(item => item.reset())\n }\n\n function resetValidation () {\n items.value.forEach(item => item.resetValidation())\n }\n\n watch(items, () => {\n let valid = 0\n let invalid = 0\n const results = []\n\n for (const item of items.value) {\n if (item.isValid === false) {\n invalid++\n results.push({\n id: item.id,\n errorMessages: item.errorMessages,\n })\n } else if (item.isValid === true) valid++\n }\n\n errors.value = results\n model.value =\n invalid > 0 ? false\n : valid === items.value.length ? true\n : null\n }, { deep: true, flush: 'post' })\n\n provide(FormKey, {\n register: ({ id, vm, validate, reset, resetValidation }) => {\n if (items.value.some(item => item.id === id)) {\n consoleWarn(`Duplicate input name \"${id}\"`)\n }\n\n items.value.push({\n id,\n validate,\n reset,\n resetValidation,\n vm: markRaw(vm),\n isValid: null,\n errorMessages: [],\n })\n },\n unregister: id => {\n items.value = items.value.filter(item => {\n return item.id !== id\n })\n },\n update: (id, isValid, errorMessages) => {\n const found = items.value.find(item => item.id === id)\n\n if (!found) return\n\n found.isValid = isValid\n found.errorMessages = errorMessages\n },\n isDisabled,\n isReadonly,\n isValidating,\n isValid: model,\n items,\n validateOn: toRef(props, 'validateOn'),\n })\n\n return {\n errors,\n isDisabled,\n isReadonly,\n isValidating,\n isValid: model,\n items,\n validate,\n reset,\n resetValidation,\n }\n}\n\nexport function useForm () {\n return inject(FormKey, null)\n}\n"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { useForm } from "./form.mjs";
|
|
|
4
4
|
import { useProxiedModel } from "./proxiedModel.mjs";
|
|
5
5
|
import { useToggleScope } from "./toggleScope.mjs"; // Utilities
|
|
6
6
|
import { computed, nextTick, onBeforeMount, onBeforeUnmount, onMounted, ref, shallowRef, unref, watch } from 'vue';
|
|
7
|
-
import { getCurrentInstanceName, getUid, propsFactory, wrapInArray } from "../util/index.mjs"; // Types
|
|
7
|
+
import { getCurrentInstance, getCurrentInstanceName, getUid, propsFactory, wrapInArray } from "../util/index.mjs"; // Types
|
|
8
8
|
export const makeValidationProps = propsFactory({
|
|
9
9
|
disabled: {
|
|
10
10
|
type: Boolean,
|
|
@@ -77,10 +77,12 @@ export function useValidation(props) {
|
|
|
77
77
|
[`${name}--readonly`]: isReadonly.value
|
|
78
78
|
};
|
|
79
79
|
});
|
|
80
|
+
const vm = getCurrentInstance('validation');
|
|
80
81
|
const uid = computed(() => props.name ?? unref(id));
|
|
81
82
|
onBeforeMount(() => {
|
|
82
83
|
form?.register({
|
|
83
84
|
id: uid.value,
|
|
85
|
+
vm,
|
|
84
86
|
validate,
|
|
85
87
|
reset,
|
|
86
88
|
resetValidation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.mjs","names":["makeFocusProps","useForm","useProxiedModel","useToggleScope","computed","nextTick","onBeforeMount","onBeforeUnmount","onMounted","ref","shallowRef","unref","watch","getCurrentInstanceName","getUid","propsFactory","wrapInArray","makeValidationProps","disabled","type","Boolean","default","error","errorMessages","Array","String","maxErrors","Number","name","label","readonly","rules","modelValue","validateOn","validationValue","useValidation","props","arguments","length","undefined","id","model","validationModel","value","form","internalErrorMessages","isPristine","isDirty","isDisabled","isReadonly","concat","slice","Math","max","set","Set","split","blur","has","input","submit","lazy","isValid","isValidating","validationClasses","uid","register","validate","reset","resetValidation","unregister","update","focused","unwatch","val","silent","results","rule","handler","result","console","warn","push"],"sources":["../../src/composables/validation.ts"],"sourcesContent":["// Composables\nimport { makeFocusProps } from '@/composables/focus'\nimport { useForm } from '@/composables/form'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, nextTick, onBeforeMount, onBeforeUnmount, onMounted, ref, shallowRef, unref, watch } from 'vue'\nimport { getCurrentInstanceName, getUid, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { EventProp, MaybeRef } from '@/util'\n\nexport type ValidationResult = string | boolean\nexport type ValidationRule =\n | ValidationResult\n | PromiseLike<ValidationResult>\n | ((value: any) => ValidationResult)\n | ((value: any) => PromiseLike<ValidationResult>)\n\ntype ValidateOnValue = 'blur' | 'input' | 'submit'\n\nexport interface ValidationProps {\n disabled: boolean | null\n error: boolean\n errorMessages: string | readonly string[] | null\n focused: boolean\n maxErrors: string | number\n name: string | undefined\n label: string | undefined\n readonly: boolean | null\n rules: readonly ValidationRule[]\n modelValue: any\n 'onUpdate:modelValue': EventProp | undefined\n validateOn?: ValidateOnValue | `${ValidateOnValue} lazy` | `lazy ${ValidateOnValue}` | 'lazy'\n validationValue: any\n}\n\nexport const makeValidationProps = propsFactory({\n disabled: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n error: Boolean,\n errorMessages: {\n type: [Array, String] as PropType<string | readonly string[] | null>,\n default: () => ([]),\n },\n maxErrors: {\n type: [Number, String],\n default: 1,\n },\n name: String,\n label: String,\n readonly: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n rules: {\n type: Array as PropType<readonly ValidationRule[]>,\n default: () => ([]),\n },\n modelValue: null,\n validateOn: String as PropType<ValidationProps['validateOn']>,\n validationValue: null,\n\n ...makeFocusProps(),\n}, 'validation')\n\nexport function useValidation (\n props: ValidationProps,\n name = getCurrentInstanceName(),\n id: MaybeRef<string | number> = getUid(),\n) {\n const model = useProxiedModel(props, 'modelValue')\n const validationModel = computed(() => props.validationValue === undefined ? model.value : props.validationValue)\n const form = useForm()\n const internalErrorMessages = ref<string[]>([])\n const isPristine = shallowRef(true)\n const isDirty = computed(() => !!(\n wrapInArray(model.value === '' ? null : model.value).length ||\n wrapInArray(validationModel.value === '' ? null : validationModel.value).length\n ))\n const isDisabled = computed(() => !!(props.disabled ?? form?.isDisabled.value))\n const isReadonly = computed(() => !!(props.readonly ?? form?.isReadonly.value))\n const errorMessages = computed(() => {\n return props.errorMessages?.length\n ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0, +props.maxErrors))\n : internalErrorMessages.value\n })\n const validateOn = computed(() => {\n let value = (props.validateOn ?? form?.validateOn.value) || 'input'\n if (value === 'lazy') value = 'input lazy'\n const set = new Set(value?.split(' ') ?? [])\n\n return {\n blur: set.has('blur') || set.has('input'),\n input: set.has('input'),\n submit: set.has('submit'),\n lazy: set.has('lazy'),\n }\n })\n const isValid = computed(() => {\n if (props.error || props.errorMessages?.length) return false\n if (!props.rules.length) return true\n if (isPristine.value) {\n return internalErrorMessages.value.length || validateOn.value.lazy ? null : true\n } else {\n return !internalErrorMessages.value.length\n }\n })\n const isValidating = shallowRef(false)\n const validationClasses = computed(() => {\n return {\n [`${name}--error`]: isValid.value === false,\n [`${name}--dirty`]: isDirty.value,\n [`${name}--disabled`]: isDisabled.value,\n [`${name}--readonly`]: isReadonly.value,\n }\n })\n\n const uid = computed(() => props.name ?? unref(id))\n\n onBeforeMount(() => {\n form?.register({\n id: uid.value,\n validate,\n reset,\n resetValidation,\n })\n })\n\n onBeforeUnmount(() => {\n form?.unregister(uid.value)\n })\n\n onMounted(async () => {\n if (!validateOn.value.lazy) {\n await validate(true)\n }\n form?.update(uid.value, isValid.value, errorMessages.value)\n })\n\n useToggleScope(() => validateOn.value.input, () => {\n watch(validationModel, () => {\n if (validationModel.value != null) {\n validate()\n } else if (props.focused) {\n const unwatch = watch(() => props.focused, val => {\n if (!val) validate()\n\n unwatch()\n })\n }\n })\n })\n\n useToggleScope(() => validateOn.value.blur, () => {\n watch(() => props.focused, val => {\n if (!val) validate()\n })\n })\n\n watch([isValid, errorMessages], () => {\n form?.update(uid.value, isValid.value, errorMessages.value)\n })\n\n function reset () {\n model.value = null\n nextTick(resetValidation)\n }\n\n function resetValidation () {\n isPristine.value = true\n if (!validateOn.value.lazy) {\n validate(true)\n } else {\n internalErrorMessages.value = []\n }\n }\n\n async function validate (silent = false) {\n const results = []\n\n isValidating.value = true\n\n for (const rule of props.rules) {\n if (results.length >= +(props.maxErrors ?? 1)) {\n break\n }\n\n const handler = typeof rule === 'function' ? rule : () => rule\n const result = await handler(validationModel.value)\n\n if (result === true) continue\n\n if (result !== false && typeof result !== 'string') {\n // eslint-disable-next-line no-console\n console.warn(`${result} is not a valid value. Rule functions must return boolean true or a string.`)\n\n continue\n }\n\n results.push(result || '')\n }\n\n internalErrorMessages.value = results\n isValidating.value = false\n isPristine.value = silent\n\n return internalErrorMessages.value\n }\n\n return {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validation.mjs","names":["makeFocusProps","useForm","useProxiedModel","useToggleScope","computed","nextTick","onBeforeMount","onBeforeUnmount","onMounted","ref","shallowRef","unref","watch","getCurrentInstance","getCurrentInstanceName","getUid","propsFactory","wrapInArray","makeValidationProps","disabled","type","Boolean","default","error","errorMessages","Array","String","maxErrors","Number","name","label","readonly","rules","modelValue","validateOn","validationValue","useValidation","props","arguments","length","undefined","id","model","validationModel","value","form","internalErrorMessages","isPristine","isDirty","isDisabled","isReadonly","concat","slice","Math","max","set","Set","split","blur","has","input","submit","lazy","isValid","isValidating","validationClasses","vm","uid","register","validate","reset","resetValidation","unregister","update","focused","unwatch","val","silent","results","rule","handler","result","console","warn","push"],"sources":["../../src/composables/validation.ts"],"sourcesContent":["// Composables\nimport { makeFocusProps } from '@/composables/focus'\nimport { useForm } from '@/composables/form'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, nextTick, onBeforeMount, onBeforeUnmount, onMounted, ref, shallowRef, unref, watch } from 'vue'\nimport { getCurrentInstance, getCurrentInstanceName, getUid, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { EventProp, MaybeRef } from '@/util'\n\nexport type ValidationResult = string | boolean\nexport type ValidationRule =\n | ValidationResult\n | PromiseLike<ValidationResult>\n | ((value: any) => ValidationResult)\n | ((value: any) => PromiseLike<ValidationResult>)\n\ntype ValidateOnValue = 'blur' | 'input' | 'submit'\n\nexport interface ValidationProps {\n disabled: boolean | null\n error: boolean\n errorMessages: string | readonly string[] | null\n focused: boolean\n maxErrors: string | number\n name: string | undefined\n label: string | undefined\n readonly: boolean | null\n rules: readonly ValidationRule[]\n modelValue: any\n 'onUpdate:modelValue': EventProp | undefined\n validateOn?: ValidateOnValue | `${ValidateOnValue} lazy` | `lazy ${ValidateOnValue}` | 'lazy'\n validationValue: any\n}\n\nexport const makeValidationProps = propsFactory({\n disabled: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n error: Boolean,\n errorMessages: {\n type: [Array, String] as PropType<string | readonly string[] | null>,\n default: () => ([]),\n },\n maxErrors: {\n type: [Number, String],\n default: 1,\n },\n name: String,\n label: String,\n readonly: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n rules: {\n type: Array as PropType<readonly ValidationRule[]>,\n default: () => ([]),\n },\n modelValue: null,\n validateOn: String as PropType<ValidationProps['validateOn']>,\n validationValue: null,\n\n ...makeFocusProps(),\n}, 'validation')\n\nexport function useValidation (\n props: ValidationProps,\n name = getCurrentInstanceName(),\n id: MaybeRef<string | number> = getUid(),\n) {\n const model = useProxiedModel(props, 'modelValue')\n const validationModel = computed(() => props.validationValue === undefined ? model.value : props.validationValue)\n const form = useForm()\n const internalErrorMessages = ref<string[]>([])\n const isPristine = shallowRef(true)\n const isDirty = computed(() => !!(\n wrapInArray(model.value === '' ? null : model.value).length ||\n wrapInArray(validationModel.value === '' ? null : validationModel.value).length\n ))\n const isDisabled = computed(() => !!(props.disabled ?? form?.isDisabled.value))\n const isReadonly = computed(() => !!(props.readonly ?? form?.isReadonly.value))\n const errorMessages = computed(() => {\n return props.errorMessages?.length\n ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0, +props.maxErrors))\n : internalErrorMessages.value\n })\n const validateOn = computed(() => {\n let value = (props.validateOn ?? form?.validateOn.value) || 'input'\n if (value === 'lazy') value = 'input lazy'\n const set = new Set(value?.split(' ') ?? [])\n\n return {\n blur: set.has('blur') || set.has('input'),\n input: set.has('input'),\n submit: set.has('submit'),\n lazy: set.has('lazy'),\n }\n })\n const isValid = computed(() => {\n if (props.error || props.errorMessages?.length) return false\n if (!props.rules.length) return true\n if (isPristine.value) {\n return internalErrorMessages.value.length || validateOn.value.lazy ? null : true\n } else {\n return !internalErrorMessages.value.length\n }\n })\n const isValidating = shallowRef(false)\n const validationClasses = computed(() => {\n return {\n [`${name}--error`]: isValid.value === false,\n [`${name}--dirty`]: isDirty.value,\n [`${name}--disabled`]: isDisabled.value,\n [`${name}--readonly`]: isReadonly.value,\n }\n })\n\n const vm = getCurrentInstance('validation')\n const uid = computed(() => props.name ?? unref(id))\n\n onBeforeMount(() => {\n form?.register({\n id: uid.value,\n vm,\n validate,\n reset,\n resetValidation,\n })\n })\n\n onBeforeUnmount(() => {\n form?.unregister(uid.value)\n })\n\n onMounted(async () => {\n if (!validateOn.value.lazy) {\n await validate(true)\n }\n form?.update(uid.value, isValid.value, errorMessages.value)\n })\n\n useToggleScope(() => validateOn.value.input, () => {\n watch(validationModel, () => {\n if (validationModel.value != null) {\n validate()\n } else if (props.focused) {\n const unwatch = watch(() => props.focused, val => {\n if (!val) validate()\n\n unwatch()\n })\n }\n })\n })\n\n useToggleScope(() => validateOn.value.blur, () => {\n watch(() => props.focused, val => {\n if (!val) validate()\n })\n })\n\n watch([isValid, errorMessages], () => {\n form?.update(uid.value, isValid.value, errorMessages.value)\n })\n\n function reset () {\n model.value = null\n nextTick(resetValidation)\n }\n\n function resetValidation () {\n isPristine.value = true\n if (!validateOn.value.lazy) {\n validate(true)\n } else {\n internalErrorMessages.value = []\n }\n }\n\n async function validate (silent = false) {\n const results = []\n\n isValidating.value = true\n\n for (const rule of props.rules) {\n if (results.length >= +(props.maxErrors ?? 1)) {\n break\n }\n\n const handler = typeof rule === 'function' ? rule : () => rule\n const result = await handler(validationModel.value)\n\n if (result === true) continue\n\n if (result !== false && typeof result !== 'string') {\n // eslint-disable-next-line no-console\n console.warn(`${result} is not a valid value. Rule functions must return boolean true or a string.`)\n\n continue\n }\n\n results.push(result || '')\n }\n\n internalErrorMessages.value = results\n isValidating.value = false\n isPristine.value = silent\n\n return internalErrorMessages.value\n }\n\n return {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n }\n}\n"],"mappings":"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"}
|
package/lib/entry-bundler.mjs
CHANGED
|
@@ -15,7 +15,7 @@ export const createVuetify = function () {
|
|
|
15
15
|
...options
|
|
16
16
|
});
|
|
17
17
|
};
|
|
18
|
-
export const version = "3.5.8-dev.2024-03-
|
|
18
|
+
export const version = "3.5.8-dev.2024-03-13";
|
|
19
19
|
createVuetify.version = version;
|
|
20
20
|
export { components, directives };
|
|
21
21
|
export * from "./composables/index.mjs";
|
package/lib/framework.mjs
CHANGED