@vuetify/nightly 3.8.5-master.2025-05-14 → 3.8.5-master.2025-05-15
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 +10 -3
- package/dist/json/attributes.json +3103 -3103
- package/dist/json/importMap-labs.json +6 -6
- package/dist/json/importMap.json +140 -140
- package/dist/json/web-types.json +5966 -5966
- package/dist/vuetify-labs.cjs +13 -31
- package/dist/vuetify-labs.css +3666 -3666
- package/dist/vuetify-labs.d.ts +590 -587
- package/dist/vuetify-labs.esm.js +13 -31
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +13 -31
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +13 -31
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +2923 -2923
- package/dist/vuetify.d.ts +502 -499
- package/dist/vuetify.esm.js +13 -31
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +13 -31
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +570 -568
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +84 -84
- package/lib/components/VCheckbox/VCheckbox.d.ts +12 -12
- package/lib/components/VCombobox/VCombobox.d.ts +84 -84
- package/lib/components/VFileInput/VFileInput.d.ts +30 -30
- package/lib/components/VInput/VInput.d.ts +12 -12
- package/lib/components/VNumberInput/VNumberInput.d.ts +80 -80
- package/lib/components/VRadioGroup/VRadioGroup.d.ts +12 -12
- package/lib/components/VRangeSlider/VRangeSlider.d.ts +12 -12
- package/lib/components/VSelect/VSelect.d.ts +84 -84
- package/lib/components/VSlider/VSlider.d.ts +12 -12
- package/lib/components/VSwitch/VSwitch.d.ts +12 -12
- package/lib/components/VTextField/VTextField.d.ts +30 -30
- package/lib/components/VTextarea/VTextarea.d.ts +30 -30
- package/lib/components/VValidation/VValidation.d.ts +8 -8
- package/lib/composables/validation.d.ts +6 -5
- package/lib/composables/validation.js +4 -29
- package/lib/composables/validation.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +44 -44
- package/lib/framework.js +1 -1
- package/lib/labs/VColorInput/VColorInput.d.ts +12 -12
- package/lib/labs/VDateInput/VDateInput.d.ts +84 -84
- package/lib/labs/rules/rules.d.ts +9 -5
- package/lib/labs/rules/rules.js +73 -51
- package/lib/labs/rules/rules.js.map +1 -1
- package/package.json +1 -1
@@ -1,6 +1,6 @@
|
|
1
|
-
import type { InjectionKey } from 'vue';
|
1
|
+
import type { InjectionKey, Ref } from 'vue';
|
2
2
|
import type { LocaleInstance } from "../../composables/locale.js";
|
3
|
-
import type { ValidationRule } from "../../composables/validation.js";
|
3
|
+
import type { ValidationProps, ValidationRule } from "../../composables/validation.js";
|
4
4
|
export type ValidationRuleBuilderWithoutOptions = (err?: string) => ValidationRule;
|
5
5
|
export type ValidationRuleBuilderWithOptions<T> = (options: T, err?: string) => ValidationRule;
|
6
6
|
export type ValidationRuleBuilder = ValidationRuleBuilderWithoutOptions | ValidationRuleBuilderWithOptions<any>;
|
@@ -21,6 +21,10 @@ export interface RuleAliases {
|
|
21
21
|
export type RulesOptions = {
|
22
22
|
aliases?: Partial<RuleAliases>;
|
23
23
|
};
|
24
|
-
|
25
|
-
export
|
26
|
-
export
|
24
|
+
type ValidationRuleParams = [any, string?];
|
25
|
+
export type ValidationAlias = string | [string, ...ValidationRuleParams];
|
26
|
+
export type RulesInstance = (fn: () => ValidationProps['rules']) => Readonly<Ref<any[]>>;
|
27
|
+
export declare function createRules(options: RulesOptions | undefined, locale: LocaleInstance): (fn: () => ValidationProps["rules"]) => import("vue").ComputedRef<(ValidationRule | [string, any, (string | undefined)?])[]>;
|
28
|
+
export declare const RulesSymbol: InjectionKey<RulesInstance>;
|
29
|
+
export declare function useRules(fn: () => ValidationProps['rules']): Readonly<Ref<any[], any[]>> | Readonly<Ref<readonly (string | boolean | PromiseLike<import("../../composables/validation.js").ValidationResult> | ((value: any) => import("../../composables/validation.js").ValidationResult) | ((value: any) => PromiseLike<import("../../composables/validation.js").ValidationResult>) | [string, any, (string | undefined)?])[], readonly (string | boolean | PromiseLike<import("../../composables/validation.js").ValidationResult> | ((value: any) => import("../../composables/validation.js").ValidationResult) | ((value: any) => PromiseLike<import("../../composables/validation.js").ValidationResult>) | [string, any, (string | undefined)?])[]>>;
|
30
|
+
|
package/lib/labs/rules/rules.js
CHANGED
@@ -1,61 +1,83 @@
|
|
1
1
|
// Utilities
|
2
|
-
import { inject } from 'vue';
|
3
|
-
|
2
|
+
import { computed, inject, toRef } from 'vue';
|
3
|
+
|
4
|
+
// Types
|
5
|
+
|
4
6
|
export function createRules(options, locale) {
|
5
7
|
const {
|
6
8
|
t
|
7
9
|
} = locale;
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
pattern
|
50
|
-
|
10
|
+
const aliases = {
|
11
|
+
required: err => {
|
12
|
+
return v => {
|
13
|
+
// If the modifier .number is used, the 0 will be a number and it's a falsy value so we need to check for it
|
14
|
+
return v === 0 || !!v || t(err || '$vuetify.rules.required');
|
15
|
+
};
|
16
|
+
},
|
17
|
+
email: err => {
|
18
|
+
return v => !v || typeof v === 'string' && /^.+@\S+\.\S+$/.test(v) || t(err || '$vuetify.rules.email');
|
19
|
+
},
|
20
|
+
number: err => {
|
21
|
+
return v => !!Number(v) || t(err || '$vuetify.rules.number');
|
22
|
+
},
|
23
|
+
integer: err => {
|
24
|
+
return v => /^[\d]*$/.test(v) || t(err || '$vuetify.rules.integer');
|
25
|
+
},
|
26
|
+
capital: err => {
|
27
|
+
return v => /^[A-Z]*$/.test(v) || t(err || '$vuetify.rules.capital');
|
28
|
+
},
|
29
|
+
maxLength: (len, err) => {
|
30
|
+
return v => !v || v.length <= len || t(err || '$vuetify.rules.maxLength', [len]);
|
31
|
+
},
|
32
|
+
minLength: (len, err) => {
|
33
|
+
return v => !v || v.length >= len || t(err || '$vuetify.rules.minLength', [len]);
|
34
|
+
},
|
35
|
+
strictLength: (len, err) => {
|
36
|
+
return v => !v || v.length === len || t(err || '$vuetify.rules.strictLength', [len]);
|
37
|
+
},
|
38
|
+
exclude: (forbiddenCharacters, err) => {
|
39
|
+
return v => {
|
40
|
+
let error = true;
|
41
|
+
for (const character of forbiddenCharacters) {
|
42
|
+
if (v.includes(character)) error = err || t('$vuetify.rules.exclude', character);
|
43
|
+
}
|
44
|
+
return error;
|
45
|
+
};
|
46
|
+
},
|
47
|
+
notEmpty: err => {
|
48
|
+
return v => v && v.length > 0 || t(err || '$vuetify.rules.notEmpty');
|
49
|
+
},
|
50
|
+
pattern: (pattern, err) => {
|
51
|
+
return v => !v || pattern.test(v) || t(err || '$vuetify.rules.pattern');
|
52
|
+
},
|
53
|
+
...options?.aliases
|
54
|
+
};
|
55
|
+
function resolveRules(fn) {
|
56
|
+
return computed(() => fn().map(rule => {
|
57
|
+
let ruleName = null;
|
58
|
+
let ruleParams = [undefined];
|
59
|
+
if (Array.isArray(rule)) {
|
60
|
+
ruleName = rule[0];
|
61
|
+
ruleParams = rule.slice(1);
|
62
|
+
} else if (typeof rule === 'string') {
|
63
|
+
ruleName = rule;
|
51
64
|
}
|
52
|
-
|
53
|
-
|
65
|
+
if (ruleName !== null) {
|
66
|
+
if (ruleName.startsWith('$')) {
|
67
|
+
ruleName = ruleName.slice(1);
|
68
|
+
}
|
69
|
+
return aliases[ruleName]?.(...ruleParams);
|
70
|
+
} else {
|
71
|
+
return rule;
|
72
|
+
}
|
73
|
+
}));
|
74
|
+
}
|
75
|
+
return resolveRules;
|
54
76
|
}
|
55
77
|
export const RulesSymbol = Symbol.for('vuetify:rules');
|
56
|
-
export function useRules() {
|
57
|
-
const
|
58
|
-
if (!
|
59
|
-
return
|
78
|
+
export function useRules(fn) {
|
79
|
+
const resolveRules = inject(RulesSymbol, null);
|
80
|
+
if (!resolveRules) return toRef(fn);
|
81
|
+
return resolveRules(fn);
|
60
82
|
}
|
61
83
|
//# sourceMappingURL=rules.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"rules.js","names":["inject","
|
1
|
+
{"version":3,"file":"rules.js","names":["computed","inject","toRef","createRules","options","locale","t","aliases","required","err","v","email","test","number","Number","integer","capital","maxLength","len","length","minLength","strictLength","exclude","forbiddenCharacters","error","character","includes","notEmpty","pattern","resolveRules","fn","map","rule","ruleName","ruleParams","undefined","Array","isArray","slice","startsWith","RulesSymbol","Symbol","for","useRules"],"sources":["../../../src/labs/rules/rules.ts"],"sourcesContent":["// Utilities\nimport { computed, inject, toRef } from 'vue'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\nimport type { LocaleInstance } from '@/composables/locale'\nimport type { ValidationProps, ValidationRule } from '@/composables/validation'\n\nexport type ValidationRuleBuilderWithoutOptions = (err?: string) => ValidationRule\nexport type ValidationRuleBuilderWithOptions<T> = (options: T, err?: string) => ValidationRule\nexport type ValidationRuleBuilder =\n | ValidationRuleBuilderWithoutOptions\n | ValidationRuleBuilderWithOptions<any>\n\nexport interface RuleAliases {\n [name: string]: ValidationRuleBuilder\n required: ValidationRuleBuilderWithoutOptions\n email: ValidationRuleBuilderWithoutOptions\n number: ValidationRuleBuilderWithoutOptions\n integer: ValidationRuleBuilderWithoutOptions\n capital: ValidationRuleBuilderWithoutOptions\n maxLength: ValidationRuleBuilderWithOptions<number>\n minLength: ValidationRuleBuilderWithOptions<number>\n strictLength: ValidationRuleBuilderWithOptions<number>\n exclude: ValidationRuleBuilderWithOptions<string[]>\n notEmpty: ValidationRuleBuilderWithoutOptions\n pattern: ValidationRuleBuilderWithOptions<RegExp>\n}\n\nexport type RulesOptions = {\n aliases?: Partial<RuleAliases>\n}\n\ntype ValidationRuleParams = [any, string?]\nexport type ValidationAlias = string | [string, ...ValidationRuleParams]\n\nexport type RulesInstance = (fn: () => ValidationProps['rules']) => Readonly<Ref<any[]>>\n\nexport function createRules (options: RulesOptions | undefined, locale: LocaleInstance) {\n const { t } = locale\n\n const aliases: RuleAliases = {\n required: (err?: string) => {\n return (v: any) => {\n // If the modifier .number is used, the 0 will be a number and it's a falsy value so we need to check for it\n return v === 0 || !!v || t(err || '$vuetify.rules.required')\n }\n },\n email: (err?: string) => {\n return (v: any) => (!v || (typeof v === 'string' && /^.+@\\S+\\.\\S+$/.test(v))) || t(err || '$vuetify.rules.email')\n },\n number: (err?: string) => {\n return (v: string) => !!Number(v) || t(err || '$vuetify.rules.number')\n },\n integer: (err?: string) => {\n return (v: string) => (/^[\\d]*$/.test(v)) || t(err || '$vuetify.rules.integer')\n },\n capital: (err?: string) => {\n return (v: string) => (/^[A-Z]*$/.test(v)) || t(err || '$vuetify.rules.capital')\n },\n maxLength: (len: number, err?: string) => {\n return (v: any) => (!v || v.length <= len) || t(err || '$vuetify.rules.maxLength', [len])\n },\n minLength: (len: number, err?: string) => {\n return (v: any) => (!v || v.length >= len) || t(err || '$vuetify.rules.minLength', [len])\n },\n strictLength: (len: number, err?: string) => {\n return (v: any) => (!v || v.length === len) || t(err || '$vuetify.rules.strictLength', [len])\n },\n exclude: (forbiddenCharacters: string[], err?: string) => {\n return (v: string) => {\n let error: string | true = true\n for (const character of forbiddenCharacters) {\n if (v.includes(character)) error = err || t('$vuetify.rules.exclude', character)\n }\n return error\n }\n },\n notEmpty: (err?: string) => {\n return (v: any) => (v && v.length > 0) || t(err || '$vuetify.rules.notEmpty')\n },\n pattern: (pattern: RegExp, err?: string) => {\n return (v: any) => (!v || pattern.test(v) || t(err || '$vuetify.rules.pattern'))\n },\n\n ...options?.aliases,\n }\n\n function resolveRules (fn: () => ValidationProps['rules']) {\n return computed(() => fn().map(rule => {\n let ruleName: string | null = null\n let ruleParams: ValidationRuleParams = [undefined]\n if (Array.isArray(rule)) {\n ruleName = rule[0]\n ruleParams = rule.slice(1) as ValidationRuleParams\n } else if (typeof rule === 'string') {\n ruleName = rule\n }\n\n if (ruleName !== null) {\n if (ruleName.startsWith('$')) {\n ruleName = ruleName.slice(1)\n }\n\n return aliases[ruleName]?.(...ruleParams)\n } else {\n return rule\n }\n }))\n }\n\n return resolveRules\n}\n\nexport const RulesSymbol: InjectionKey<RulesInstance> = Symbol.for('vuetify:rules')\n\nexport function useRules (fn: () => ValidationProps['rules']) {\n const resolveRules = inject(RulesSymbol, null)\n\n if (!resolveRules) return toRef(fn)\n\n return resolveRules(fn)\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,KAAK,QAAQ,KAAK;;AAE7C;;AAmCA,OAAO,SAASC,WAAWA,CAAEC,OAAiC,EAAEC,MAAsB,EAAE;EACtF,MAAM;IAAEC;EAAE,CAAC,GAAGD,MAAM;EAEpB,MAAME,OAAoB,GAAG;IAC3BC,QAAQ,EAAGC,GAAY,IAAK;MAC1B,OAAQC,CAAM,IAAK;QACjB;QACA,OAAOA,CAAC,KAAK,CAAC,IAAI,CAAC,CAACA,CAAC,IAAIJ,CAAC,CAACG,GAAG,IAAI,yBAAyB,CAAC;MAC9D,CAAC;IACH,CAAC;IACDE,KAAK,EAAGF,GAAY,IAAK;MACvB,OAAQC,CAAM,IAAM,CAACA,CAAC,IAAK,OAAOA,CAAC,KAAK,QAAQ,IAAI,eAAe,CAACE,IAAI,CAACF,CAAC,CAAE,IAAKJ,CAAC,CAACG,GAAG,IAAI,sBAAsB,CAAC;IACnH,CAAC;IACDI,MAAM,EAAGJ,GAAY,IAAK;MACxB,OAAQC,CAAS,IAAK,CAAC,CAACI,MAAM,CAACJ,CAAC,CAAC,IAAIJ,CAAC,CAACG,GAAG,IAAI,uBAAuB,CAAC;IACxE,CAAC;IACDM,OAAO,EAAGN,GAAY,IAAK;MACzB,OAAQC,CAAS,IAAM,SAAS,CAACE,IAAI,CAACF,CAAC,CAAC,IAAKJ,CAAC,CAACG,GAAG,IAAI,wBAAwB,CAAC;IACjF,CAAC;IACDO,OAAO,EAAGP,GAAY,IAAK;MACzB,OAAQC,CAAS,IAAM,UAAU,CAACE,IAAI,CAACF,CAAC,CAAC,IAAKJ,CAAC,CAACG,GAAG,IAAI,wBAAwB,CAAC;IAClF,CAAC;IACDQ,SAAS,EAAEA,CAACC,GAAW,EAAET,GAAY,KAAK;MACxC,OAAQC,CAAM,IAAM,CAACA,CAAC,IAAIA,CAAC,CAACS,MAAM,IAAID,GAAG,IAAKZ,CAAC,CAACG,GAAG,IAAI,0BAA0B,EAAE,CAACS,GAAG,CAAC,CAAC;IAC3F,CAAC;IACDE,SAAS,EAAEA,CAACF,GAAW,EAAET,GAAY,KAAK;MACxC,OAAQC,CAAM,IAAM,CAACA,CAAC,IAAIA,CAAC,CAACS,MAAM,IAAID,GAAG,IAAKZ,CAAC,CAACG,GAAG,IAAI,0BAA0B,EAAE,CAACS,GAAG,CAAC,CAAC;IAC3F,CAAC;IACDG,YAAY,EAAEA,CAACH,GAAW,EAAET,GAAY,KAAK;MAC3C,OAAQC,CAAM,IAAM,CAACA,CAAC,IAAIA,CAAC,CAACS,MAAM,KAAKD,GAAG,IAAKZ,CAAC,CAACG,GAAG,IAAI,6BAA6B,EAAE,CAACS,GAAG,CAAC,CAAC;IAC/F,CAAC;IACDI,OAAO,EAAEA,CAACC,mBAA6B,EAAEd,GAAY,KAAK;MACxD,OAAQC,CAAS,IAAK;QACpB,IAAIc,KAAoB,GAAG,IAAI;QAC/B,KAAK,MAAMC,SAAS,IAAIF,mBAAmB,EAAE;UAC3C,IAAIb,CAAC,CAACgB,QAAQ,CAACD,SAAS,CAAC,EAAED,KAAK,GAAGf,GAAG,IAAIH,CAAC,CAAC,wBAAwB,EAAEmB,SAAS,CAAC;QAClF;QACA,OAAOD,KAAK;MACd,CAAC;IACH,CAAC;IACDG,QAAQ,EAAGlB,GAAY,IAAK;MAC1B,OAAQC,CAAM,IAAMA,CAAC,IAAIA,CAAC,CAACS,MAAM,GAAG,CAAC,IAAKb,CAAC,CAACG,GAAG,IAAI,yBAAyB,CAAC;IAC/E,CAAC;IACDmB,OAAO,EAAEA,CAACA,OAAe,EAAEnB,GAAY,KAAK;MAC1C,OAAQC,CAAM,IAAM,CAACA,CAAC,IAAIkB,OAAO,CAAChB,IAAI,CAACF,CAAC,CAAC,IAAIJ,CAAC,CAACG,GAAG,IAAI,wBAAwB,CAAE;IAClF,CAAC;IAED,GAAGL,OAAO,EAAEG;EACd,CAAC;EAED,SAASsB,YAAYA,CAAEC,EAAkC,EAAE;IACzD,OAAO9B,QAAQ,CAAC,MAAM8B,EAAE,CAAC,CAAC,CAACC,GAAG,CAACC,IAAI,IAAI;MACrC,IAAIC,QAAuB,GAAG,IAAI;MAClC,IAAIC,UAAgC,GAAG,CAACC,SAAS,CAAC;MAClD,IAAIC,KAAK,CAACC,OAAO,CAACL,IAAI,CAAC,EAAE;QACvBC,QAAQ,GAAGD,IAAI,CAAC,CAAC,CAAC;QAClBE,UAAU,GAAGF,IAAI,CAACM,KAAK,CAAC,CAAC,CAAyB;MACpD,CAAC,MAAM,IAAI,OAAON,IAAI,KAAK,QAAQ,EAAE;QACnCC,QAAQ,GAAGD,IAAI;MACjB;MAEA,IAAIC,QAAQ,KAAK,IAAI,EAAE;QACrB,IAAIA,QAAQ,CAACM,UAAU,CAAC,GAAG,CAAC,EAAE;UAC5BN,QAAQ,GAAGA,QAAQ,CAACK,KAAK,CAAC,CAAC,CAAC;QAC9B;QAEA,OAAO/B,OAAO,CAAC0B,QAAQ,CAAC,GAAG,GAAGC,UAAU,CAAC;MAC3C,CAAC,MAAM;QACL,OAAOF,IAAI;MACb;IACF,CAAC,CAAC,CAAC;EACL;EAEA,OAAOH,YAAY;AACrB;AAEA,OAAO,MAAMW,WAAwC,GAAGC,MAAM,CAACC,GAAG,CAAC,eAAe,CAAC;AAEnF,OAAO,SAASC,QAAQA,CAAEb,EAAkC,EAAE;EAC5D,MAAMD,YAAY,GAAG5B,MAAM,CAACuC,WAAW,EAAE,IAAI,CAAC;EAE9C,IAAI,CAACX,YAAY,EAAE,OAAO3B,KAAK,CAAC4B,EAAE,CAAC;EAEnC,OAAOD,YAAY,CAACC,EAAE,CAAC;AACzB","ignoreList":[]}
|