@vuetify/nightly 4.0.0-dev-20230419.0 → 4.0.0-dev-20230421.0
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 +7 -2
- package/dist/json/attributes.json +172 -108
- package/dist/json/importMap.json +34 -34
- package/dist/json/tags.json +16 -0
- package/dist/json/web-types.json +522 -220
- package/dist/vuetify-labs.css +293 -130
- package/dist/vuetify-labs.d.ts +620 -171
- package/dist/vuetify-labs.esm.js +867 -186
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +867 -185
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +166 -3
- package/dist/vuetify.d.ts +577 -160
- package/dist/vuetify.esm.js +809 -138
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +809 -137
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +802 -736
- package/dist/vuetify.min.js.map +1 -1
- package/lib/adapters/date-adapter.mjs +2 -0
- package/lib/adapters/date-adapter.mjs.map +1 -0
- package/lib/adapters/vuetify.mjs +399 -0
- package/lib/adapters/vuetify.mjs.map +1 -0
- package/lib/blueprints/index.d.ts +34 -0
- package/lib/blueprints/md1.d.ts +34 -0
- package/lib/blueprints/md2.d.ts +34 -0
- package/lib/blueprints/md3.d.ts +34 -0
- package/lib/components/VAppBar/VAppBar.mjs +62 -10
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/index.d.ts +26 -0
- package/lib/components/VAutocomplete/VAutocomplete.css +9 -0
- package/lib/components/VAutocomplete/VAutocomplete.mjs +50 -6
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +10 -0
- package/lib/components/VAutocomplete/index.d.ts +29 -17
- package/lib/components/VBtn/_mixins.scss +1 -1
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/index.d.ts +21 -16
- package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.ts +22 -1
- package/lib/components/VCombobox/VCombobox.css +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +6 -4
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.sass +1 -1
- package/lib/components/VCombobox/index.d.ts +29 -17
- package/lib/components/VField/index.d.ts +6 -0
- package/lib/components/VFileInput/VFileInput.mjs +13 -17
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/index.d.ts +68 -23
- package/lib/components/VInput/VInput.mjs +14 -7
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/index.d.ts +22 -1
- package/lib/components/VOverlay/locationStrategies.mjs +9 -4
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/index.d.ts +22 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs +33 -22
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.d.ts +39 -6
- package/lib/components/VSelect/VSelect.mjs +6 -0
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.ts +32 -17
- package/lib/components/VSlider/VSlider.mjs +33 -15
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/index.d.ts +39 -6
- package/lib/components/VSlider/slider.mjs +47 -24
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.mjs +5 -3
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/index.d.ts +43 -1
- package/lib/components/VTextField/VTextField.mjs +4 -12
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/index.d.ts +70 -22
- package/lib/components/VTextarea/VTextarea.mjs +4 -12
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/index.d.ts +61 -22
- package/lib/components/VToolbar/VToolbar.css +3 -1
- package/lib/components/VToolbar/VToolbar.sass +3 -1
- package/lib/components/VValidation/index.d.ts +10 -1
- package/lib/components/index.d.ts +525 -150
- package/lib/composables/date.mjs +39 -0
- package/lib/composables/date.mjs.map +1 -0
- package/lib/composables/focus.mjs +3 -2
- package/lib/composables/focus.mjs.map +1 -1
- package/lib/composables/index.mjs +1 -0
- package/lib/composables/index.mjs.map +1 -1
- package/lib/composables/items.mjs +7 -2
- package/lib/composables/items.mjs.map +1 -1
- package/lib/composables/scroll.mjs +3 -0
- package/lib/composables/scroll.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +8 -3
- package/lib/framework.mjs.map +1 -1
- package/lib/iconsets/mdi-svg.mjs +2 -2
- package/lib/iconsets/mdi-svg.mjs.map +1 -1
- package/lib/index.d.ts +52 -10
- package/lib/labs/VDataTable/VDataTable.mjs +2 -2
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs +52 -44
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +2 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +0 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/options.mjs +2 -1
- package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.ts +44 -11
- package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs +1 -0
- package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
- package/lib/labs/VSkeletonLoader/index.d.ts +9 -9
- package/lib/labs/components.d.ts +53 -20
- package/lib/styles/main.css +152 -0
- package/lib/styles/settings/_utilities.scss +11 -1
- package/lib/util/helpers.mjs +4 -0
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +2 -2
@@ -0,0 +1,39 @@
|
|
1
|
+
// Composables
|
2
|
+
import { useLocale } from "./locale.mjs"; // Utilities
|
3
|
+
import { inject, watch } from 'vue';
|
4
|
+
import { propsFactory } from "../util/index.mjs"; // Adapters
|
5
|
+
import VuetifyDateAdapter from "../adapters/vuetify.mjs"; // Types
|
6
|
+
export const DateAdapterSymbol = Symbol.for('vuetify:date-adapter');
|
7
|
+
export function createDate(options) {
|
8
|
+
return options ?? {
|
9
|
+
adapter: VuetifyDateAdapter
|
10
|
+
};
|
11
|
+
}
|
12
|
+
|
13
|
+
// TODO: revisit this after it starts being implemented
|
14
|
+
export const makeDateProps = propsFactory({
|
15
|
+
displayDate: {
|
16
|
+
type: Object,
|
17
|
+
default: new Date()
|
18
|
+
},
|
19
|
+
hideAdjacentMonths: Boolean,
|
20
|
+
modelValue: {
|
21
|
+
type: null,
|
22
|
+
default: () => []
|
23
|
+
}
|
24
|
+
}, 'date');
|
25
|
+
export function useDate(props) {
|
26
|
+
const date = inject(DateAdapterSymbol);
|
27
|
+
const locale = useLocale();
|
28
|
+
if (!date) throw new Error('[Vuetify] Could not find injected date');
|
29
|
+
|
30
|
+
// eslint-disable-next-line new-cap
|
31
|
+
const instance = new date.adapter(locale.current.value);
|
32
|
+
watch(locale.current, val => {
|
33
|
+
instance.locale = val;
|
34
|
+
}, {
|
35
|
+
immediate: true
|
36
|
+
});
|
37
|
+
return instance;
|
38
|
+
}
|
39
|
+
//# sourceMappingURL=date.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"date.mjs","names":["useLocale","inject","watch","propsFactory","VuetifyDateAdapter","DateAdapterSymbol","Symbol","for","createDate","options","adapter","makeDateProps","displayDate","type","Object","default","Date","hideAdjacentMonths","Boolean","modelValue","useDate","props","date","locale","Error","instance","current","value","val","immediate"],"sources":["../../src/composables/date.ts"],"sourcesContent":["// Composables\nimport { useLocale } from './locale'\n\n// Utilities\nimport { inject, watch } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Adapters\nimport VuetifyDateAdapter from '@/adapters/vuetify'\n\n// Types\nimport type { DateAdapter } from '@/adapters/date-adapter'\nimport type { InjectionKey, PropType } from 'vue'\n\nexport interface DateInstance extends DateAdapter<Date> {\n locale: string\n}\n\nexport type DateOptions = {\n adapter: { new(locale: string): DateInstance }\n}\n\nexport const DateAdapterSymbol: InjectionKey<DateOptions> = Symbol.for('vuetify:date-adapter')\n\nexport interface DateProps {\n displayDate: Date\n hideAdjacentMonths: boolean\n modelValue: any[]\n}\n\nexport function createDate (options?: DateOptions) {\n return options ?? { adapter: VuetifyDateAdapter }\n}\n\n// TODO: revisit this after it starts being implemented\nexport const makeDateProps = propsFactory({\n displayDate: {\n type: Object as PropType<Date>,\n default: new Date(),\n },\n hideAdjacentMonths: Boolean,\n modelValue: {\n type: null as unknown as PropType<any[]>,\n default: () => [],\n },\n}, 'date')\n\nexport function useDate (props: DateProps) {\n const date = inject(DateAdapterSymbol)\n const locale = useLocale()\n\n if (!date) throw new Error('[Vuetify] Could not find injected date')\n\n // eslint-disable-next-line new-cap\n const instance = new date.adapter(locale.current.value)\n\n watch(locale.current, val => {\n instance.locale = val\n }, { immediate: true })\n\n return instance\n}\n"],"mappings":"AAAA;AAAA,SACSA,SAAS,wBAElB;AACA,SAASC,MAAM,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC1BC,YAAY,6BAErB;AAAA,OACOC,kBAAkB,iCAEzB;AAYA,OAAO,MAAMC,iBAA4C,GAAGC,MAAM,CAACC,GAAG,CAAC,sBAAsB,CAAC;AAQ9F,OAAO,SAASC,UAAUA,CAAEC,OAAqB,EAAE;EACjD,OAAOA,OAAO,IAAI;IAAEC,OAAO,EAAEN;EAAmB,CAAC;AACnD;;AAEA;AACA,OAAO,MAAMO,aAAa,GAAGR,YAAY,CAAC;EACxCS,WAAW,EAAE;IACXC,IAAI,EAAEC,MAAwB;IAC9BC,OAAO,EAAE,IAAIC,IAAI;EACnB,CAAC;EACDC,kBAAkB,EAAEC,OAAO;EAC3BC,UAAU,EAAE;IACVN,IAAI,EAAE,IAAkC;IACxCE,OAAO,EAAEA,CAAA,KAAM;EACjB;AACF,CAAC,EAAE,MAAM,CAAC;AAEV,OAAO,SAASK,OAAOA,CAAEC,KAAgB,EAAE;EACzC,MAAMC,IAAI,GAAGrB,MAAM,CAACI,iBAAiB,CAAC;EACtC,MAAMkB,MAAM,GAAGvB,SAAS,EAAE;EAE1B,IAAI,CAACsB,IAAI,EAAE,MAAM,IAAIE,KAAK,CAAC,wCAAwC,CAAC;;EAEpE;EACA,MAAMC,QAAQ,GAAG,IAAIH,IAAI,CAACZ,OAAO,CAACa,MAAM,CAACG,OAAO,CAACC,KAAK,CAAC;EAEvDzB,KAAK,CAACqB,MAAM,CAACG,OAAO,EAAEE,GAAG,IAAI;IAC3BH,QAAQ,CAACF,MAAM,GAAGK,GAAG;EACvB,CAAC,EAAE;IAAEC,SAAS,EAAE;EAAK,CAAC,CAAC;EAEvB,OAAOJ,QAAQ;AACjB"}
|
@@ -1,10 +1,11 @@
|
|
1
1
|
// Components
|
2
2
|
import { useProxiedModel } from "./proxiedModel.mjs"; // Utilities
|
3
3
|
import { computed } from 'vue';
|
4
|
-
import { getCurrentInstanceName, propsFactory } from "../util/index.mjs"; // Types
|
4
|
+
import { EventProp, getCurrentInstanceName, propsFactory } from "../util/index.mjs"; // Types
|
5
5
|
// Composables
|
6
6
|
export const makeFocusProps = propsFactory({
|
7
|
-
focused: Boolean
|
7
|
+
focused: Boolean,
|
8
|
+
'onUpdate:focused': EventProp()
|
8
9
|
}, 'focus');
|
9
10
|
export function useFocus(props) {
|
10
11
|
let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"focus.mjs","names":["useProxiedModel","computed","getCurrentInstanceName","propsFactory","makeFocusProps","focused","Boolean","useFocus","props","name","arguments","length","undefined","isFocused","focusClasses","value","focus","blur"],"sources":["../../src/composables/focus.ts"],"sourcesContent":["// Components\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nexport interface FocusProps {\n focused: boolean\n 'onUpdate:focused': ((
|
1
|
+
{"version":3,"file":"focus.mjs","names":["useProxiedModel","computed","EventProp","getCurrentInstanceName","propsFactory","makeFocusProps","focused","Boolean","useFocus","props","name","arguments","length","undefined","isFocused","focusClasses","value","focus","blur"],"sources":["../../src/composables/focus.ts"],"sourcesContent":["// Components\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { EventProp, getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nexport interface FocusProps {\n focused: boolean\n 'onUpdate:focused': ((focused: boolean) => any) | undefined\n}\n\n// Composables\nexport const makeFocusProps = propsFactory({\n focused: Boolean,\n 'onUpdate:focused': EventProp<[FocusEvent]>(),\n}, 'focus')\n\nexport function useFocus (\n props: FocusProps,\n name = getCurrentInstanceName()\n) {\n const isFocused = useProxiedModel(props, 'focused')\n const focusClasses = computed(() => {\n return ({\n [`${name}--focused`]: isFocused.value,\n })\n })\n\n function focus () {\n isFocused.value = true\n }\n\n function blur () {\n isFocused.value = false\n }\n\n return { focusClasses, isFocused, focus, blur }\n}\n"],"mappings":"AAAA;AAAA,SACSA,eAAe,8BAExB;AACA,SAASC,QAAQ,QAAQ,KAAK;AAAA,SACrBC,SAAS,EAAEC,sBAAsB,EAAEC,YAAY,6BAExD;AAMA;AACA,OAAO,MAAMC,cAAc,GAAGD,YAAY,CAAC;EACzCE,OAAO,EAAEC,OAAO;EAChB,kBAAkB,EAAEL,SAAS;AAC/B,CAAC,EAAE,OAAO,CAAC;AAEX,OAAO,SAASM,QAAQA,CACtBC,KAAiB,EAEjB;EAAA,IADAC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGR,sBAAsB,EAAE;EAE/B,MAAMW,SAAS,GAAGd,eAAe,CAACS,KAAK,EAAE,SAAS,CAAC;EACnD,MAAMM,YAAY,GAAGd,QAAQ,CAAC,MAAM;IAClC,OAAQ;MACN,CAAE,GAAES,IAAK,WAAU,GAAGI,SAAS,CAACE;IAClC,CAAC;EACH,CAAC,CAAC;EAEF,SAASC,KAAKA,CAAA,EAAI;IAChBH,SAAS,CAACE,KAAK,GAAG,IAAI;EACxB;EAEA,SAASE,IAAIA,CAAA,EAAI;IACfJ,SAAS,CAACE,KAAK,GAAG,KAAK;EACzB;EAEA,OAAO;IAAED,YAAY;IAAED,SAAS;IAAEG,KAAK;IAAEC;EAAK,CAAC;AACjD"}
|
@@ -2,6 +2,7 @@
|
|
2
2
|
* PUBLIC INTERFACES ONLY
|
3
3
|
* Imports in our code should be to the composable directly, not this file
|
4
4
|
*/
|
5
|
+
export { useDate } from "./date.mjs";
|
5
6
|
export { useDisplay } from "./display.mjs";
|
6
7
|
export { useLayout } from "./layout.mjs";
|
7
8
|
export { useLocale, useRtl } from "./locale.mjs";
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["useDisplay","useLayout","useLocale","useRtl","useTheme"],"sources":["../../src/composables/index.ts"],"sourcesContent":["/*\n * PUBLIC INTERFACES ONLY\n * Imports in our code should be to the composable directly, not this file\n */\n\nexport { useDisplay } from './display'\nexport { useLayout } from './layout'\nexport { useLocale, useRtl } from './locale'\nexport { useTheme } from './theme'\n\nexport type { DefaultsInstance } from './defaults'\nexport type { DisplayBreakpoint, DisplayInstance, DisplayThresholds } from './display'\nexport type { SubmitEventPromise } from './form'\nexport type { IconAliases, IconProps, IconSet, IconOptions } from './icons'\nexport type { LocaleInstance, LocaleMessages, RtlInstance, LocaleOptions, RtlOptions } from './locale'\nexport type { ThemeDefinition, ThemeInstance } from './theme'\n"],"mappings":"AAAA;AACA;AACA;AACA;AAHA,SAKSA,UAAU;AAAA,SACVC,SAAS;AAAA,SACTC,SAAS,EAAEC,MAAM;AAAA,SACjBC,QAAQ"}
|
1
|
+
{"version":3,"file":"index.mjs","names":["useDate","useDisplay","useLayout","useLocale","useRtl","useTheme"],"sources":["../../src/composables/index.ts"],"sourcesContent":["/*\n * PUBLIC INTERFACES ONLY\n * Imports in our code should be to the composable directly, not this file\n */\n\nexport { useDate } from './date'\nexport { useDisplay } from './display'\nexport { useLayout } from './layout'\nexport { useLocale, useRtl } from './locale'\nexport { useTheme } from './theme'\n\nexport type { DateOptions, DateInstance } from './date'\nexport type { DefaultsInstance } from './defaults'\nexport type { DisplayBreakpoint, DisplayInstance, DisplayThresholds } from './display'\nexport type { SubmitEventPromise } from './form'\nexport type { IconAliases, IconProps, IconSet, IconOptions } from './icons'\nexport type { LocaleInstance, LocaleMessages, RtlInstance, LocaleOptions, RtlOptions } from './locale'\nexport type { ThemeDefinition, ThemeInstance } from './theme'\n"],"mappings":"AAAA;AACA;AACA;AACA;AAHA,SAKSA,OAAO;AAAA,SACPC,UAAU;AAAA,SACVC,SAAS;AAAA,SACTC,SAAS,EAAEC,MAAM;AAAA,SACjBC,QAAQ"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
// Utilities
|
2
2
|
import { computed } from 'vue';
|
3
|
-
import { getPropertyFromItem, pick, propsFactory } from "../util/index.mjs"; // Types
|
3
|
+
import { deepEqual, getPropertyFromItem, pick, propsFactory } from "../util/index.mjs"; // Types
|
4
4
|
// Composables
|
5
5
|
export const makeItemsProps = propsFactory({
|
6
6
|
items: {
|
@@ -53,7 +53,12 @@ export function transformItems(props, items) {
|
|
53
53
|
export function useItems(props) {
|
54
54
|
const items = computed(() => transformItems(props, props.items));
|
55
55
|
function transformIn(value) {
|
56
|
-
return value.map(
|
56
|
+
return value.map(v => {
|
57
|
+
const existingItem = items.value.find(item => deepEqual(v, item.value));
|
58
|
+
// Nullish existingItem means value is a custom input value from combobox
|
59
|
+
// In this case, use transformItem to create an InternalItem based on value
|
60
|
+
return existingItem ?? transformItem(props, v);
|
61
|
+
});
|
57
62
|
}
|
58
63
|
function transformOut(value) {
|
59
64
|
return value.map(_ref => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"items.mjs","names":["computed","getPropertyFromItem","pick","propsFactory","makeItemsProps","items","type","Array","default","itemTitle","String","Function","itemValue","itemChildren","Boolean","itemProps","returnObject","transformItem","props","item","title","value","children","isArray","undefined","_props","transformItems","raw","array","push","useItems","transformIn","map","transformOut","_ref"],"sources":["../../src/composables/items.ts"],"sourcesContent":["// Utilities\nimport { computed } from 'vue'\nimport { getPropertyFromItem, pick, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { SelectItemKey } from '@/util'\n\nexport interface InternalItem<T = any> {\n title: string\n value: any\n props: {\n [key: string]: any\n title: string\n value: any\n }\n children?: InternalItem<T>[]\n raw: T\n}\n\nexport interface ItemProps {\n items: any[]\n itemTitle: SelectItemKey\n itemValue: SelectItemKey\n itemChildren: SelectItemKey\n itemProps: SelectItemKey\n returnObject: boolean\n}\n\n// Composables\nexport const makeItemsProps = propsFactory({\n items: {\n type: Array as PropType<ItemProps['items']>,\n default: () => ([]),\n },\n itemTitle: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'title',\n },\n itemValue: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'value',\n },\n itemChildren: {\n type: [Boolean, String, Array, Function] as PropType<SelectItemKey>,\n default: 'children',\n },\n itemProps: {\n type: [Boolean, String, Array, Function] as PropType<SelectItemKey>,\n default: 'props',\n },\n returnObject: Boolean,\n}, 'item')\n\nexport function transformItem (props: Omit<ItemProps, 'items'>, item: any) {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = props.returnObject ? item : getPropertyFromItem(item, props.itemValue, title)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true\n ? typeof item === 'object' && item != null && !Array.isArray(item)\n ? 'children' in item\n ? pick(item, ['children'])[1]\n : item\n : undefined\n : getPropertyFromItem(item, props.itemProps)\n\n const _props = {\n title,\n value,\n ...itemProps,\n }\n\n return {\n title: String(_props.title ?? ''),\n value: _props.value,\n props: _props,\n children: Array.isArray(children) ? transformItems(props, children) : undefined,\n raw: item,\n }\n}\n\nexport function transformItems (props: Omit<ItemProps, 'items'>, items: ItemProps['items']) {\n const array: InternalItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nexport function useItems (props: ItemProps) {\n const items = computed(() => transformItems(props, props.items))\n\n function transformIn (value: any[]): InternalItem[] {\n return value.map(item => transformItem(props,
|
1
|
+
{"version":3,"file":"items.mjs","names":["computed","deepEqual","getPropertyFromItem","pick","propsFactory","makeItemsProps","items","type","Array","default","itemTitle","String","Function","itemValue","itemChildren","Boolean","itemProps","returnObject","transformItem","props","item","title","value","children","isArray","undefined","_props","transformItems","raw","array","push","useItems","transformIn","map","v","existingItem","find","transformOut","_ref"],"sources":["../../src/composables/items.ts"],"sourcesContent":["// Utilities\nimport { computed } from 'vue'\nimport { deepEqual, getPropertyFromItem, pick, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { SelectItemKey } from '@/util'\n\nexport interface InternalItem<T = any> {\n title: string\n value: any\n props: {\n [key: string]: any\n title: string\n value: any\n }\n children?: InternalItem<T>[]\n raw: T\n}\n\nexport interface ItemProps {\n items: any[]\n itemTitle: SelectItemKey\n itemValue: SelectItemKey\n itemChildren: SelectItemKey\n itemProps: SelectItemKey\n returnObject: boolean\n}\n\n// Composables\nexport const makeItemsProps = propsFactory({\n items: {\n type: Array as PropType<ItemProps['items']>,\n default: () => ([]),\n },\n itemTitle: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'title',\n },\n itemValue: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'value',\n },\n itemChildren: {\n type: [Boolean, String, Array, Function] as PropType<SelectItemKey>,\n default: 'children',\n },\n itemProps: {\n type: [Boolean, String, Array, Function] as PropType<SelectItemKey>,\n default: 'props',\n },\n returnObject: Boolean,\n}, 'item')\n\nexport function transformItem (props: Omit<ItemProps, 'items'>, item: any) {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = props.returnObject ? item : getPropertyFromItem(item, props.itemValue, title)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true\n ? typeof item === 'object' && item != null && !Array.isArray(item)\n ? 'children' in item\n ? pick(item, ['children'])[1]\n : item\n : undefined\n : getPropertyFromItem(item, props.itemProps)\n\n const _props = {\n title,\n value,\n ...itemProps,\n }\n\n return {\n title: String(_props.title ?? ''),\n value: _props.value,\n props: _props,\n children: Array.isArray(children) ? transformItems(props, children) : undefined,\n raw: item,\n }\n}\n\nexport function transformItems (props: Omit<ItemProps, 'items'>, items: ItemProps['items']) {\n const array: InternalItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nexport function useItems (props: ItemProps) {\n const items = computed(() => transformItems(props, props.items))\n\n function transformIn (value: any[]): InternalItem[] {\n return value.map(v => {\n const existingItem = items.value.find(item => deepEqual(v, item.value))\n // Nullish existingItem means value is a custom input value from combobox\n // In this case, use transformItem to create an InternalItem based on value\n return existingItem ?? transformItem(props, v)\n })\n }\n\n function transformOut (value: InternalItem[]) {\n return value.map(({ props }) => props.value)\n }\n\n return { items, transformIn, transformOut }\n}\n"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scroll.mjs","names":["computed","getCurrentInstance","onBeforeUnmount","onMounted","ref","watch","consoleWarn","propsFactory","makeScrollProps","scrollTarget","type","String","scrollThreshold","Number","useScroll","props","args","arguments","length","undefined","thresholdMetCallback","canScroll","previousScroll","target","currentScroll","savedScroll","currentThreshold","isScrollActive","isScrollingUp","computedScrollThreshold","onScroll","targetEl","value","pageYOffset","scrollTop","Math","abs","newTarget","document","querySelector","window","removeEventListener","addEventListener","passive","immediate","thresholdMet"],"sources":["../../src/composables/scroll.ts"],"sourcesContent":["// Utilities\nimport {\n computed,\n getCurrentInstance,\n onBeforeUnmount,\n onMounted,\n ref,\n watch,\n} from 'vue'\nimport { consoleWarn, propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport interface ScrollProps {\n scrollTarget?: string\n scrollThreshold?: string | number\n}\n\nexport interface ThresholdMetCallbackData {\n isScrollingUp: boolean\n currentThreshold: number\n savedScroll: Ref<number>\n}\n\n// Composables\nexport const makeScrollProps = propsFactory({\n scrollTarget: {\n type: String,\n },\n scrollThreshold: {\n type: [String, Number],\n },\n}, 'scroll')\n\nexport interface ScrollArguments {\n thresholdMetCallback?: (data: ThresholdMetCallbackData) => void\n scrollThreshold?: Readonly<Ref<number>>\n canScroll?: Readonly<Ref<boolean>>\n}\n\nexport function useScroll (\n props: ScrollProps,\n args: ScrollArguments = {},\n) {\n const { thresholdMetCallback, scrollThreshold, canScroll } = args\n let previousScroll = 0\n const target = ref<Element | Window | null>(null)\n const currentScroll = ref(0)\n const savedScroll = ref(0)\n const currentThreshold = ref(0)\n const isScrollActive = ref(false)\n const isScrollingUp = ref(false)\n\n const computedScrollThreshold = computed(() => {\n return Number(props.scrollThreshold ?? scrollThreshold ?? 300)\n })\n\n const onScroll = () => {\n const targetEl = target.value\n\n if (!targetEl || (canScroll && !canScroll.value)) return\n\n previousScroll = currentScroll.value\n currentScroll.value = ('window' in targetEl) ? targetEl.pageYOffset : targetEl.scrollTop\n\n isScrollingUp.value = currentScroll.value < previousScroll\n currentThreshold.value = Math.abs(currentScroll.value - computedScrollThreshold.value)\n }\n\n watch(isScrollingUp, () => {\n savedScroll.value = savedScroll.value || currentScroll.value\n })\n\n watch(isScrollActive, () => {\n savedScroll.value = 0\n })\n\n onMounted(() => {\n watch(() => props.scrollTarget, scrollTarget => {\n const newTarget = scrollTarget ? document.querySelector(scrollTarget) : window\n\n if (!newTarget) {\n consoleWarn(`Unable to locate element with identifier ${scrollTarget}`, getCurrentInstance())\n return\n }\n\n if (newTarget === target.value) return\n\n target.value?.removeEventListener('scroll', onScroll)\n target.value = newTarget\n target.value.addEventListener('scroll', onScroll, { passive: true })\n }, { immediate: true })\n })\n\n onBeforeUnmount(() => {\n target.value?.removeEventListener('scroll', onScroll)\n })\n\n thresholdMetCallback && watch(() => (\n Math.abs(currentScroll.value - savedScroll.value) > computedScrollThreshold.value\n ), thresholdMet => {\n thresholdMet && thresholdMetCallback({\n currentThreshold: currentThreshold.value,\n isScrollingUp: isScrollingUp.value,\n savedScroll,\n })\n }, { immediate: true })\n\n // Do we need this? If yes - seems that\n // there's no need to expose onScroll\n canScroll && watch(canScroll, onScroll, { immediate: true })\n\n return {\n isScrollActive,\n\n // required only for testing\n // probably can be removed\n // later (2 chars chlng)\n isScrollingUp,\n savedScroll,\n }\n}\n"],"mappings":"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
|
1
|
+
{"version":3,"file":"scroll.mjs","names":["computed","getCurrentInstance","onBeforeUnmount","onMounted","ref","watch","consoleWarn","propsFactory","makeScrollProps","scrollTarget","type","String","scrollThreshold","Number","useScroll","props","args","arguments","length","undefined","thresholdMetCallback","canScroll","previousScroll","target","currentScroll","savedScroll","currentThreshold","isScrollActive","isScrollingUp","computedScrollThreshold","onScroll","targetEl","value","pageYOffset","scrollTop","Math","abs","newTarget","document","querySelector","window","removeEventListener","addEventListener","passive","immediate","thresholdMet"],"sources":["../../src/composables/scroll.ts"],"sourcesContent":["// Utilities\nimport {\n computed,\n getCurrentInstance,\n onBeforeUnmount,\n onMounted,\n ref,\n watch,\n} from 'vue'\nimport { consoleWarn, propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport interface ScrollProps {\n scrollTarget?: string\n scrollThreshold?: string | number\n}\n\nexport interface ThresholdMetCallbackData {\n isScrollingUp: boolean\n currentThreshold: number\n savedScroll: Ref<number>\n}\n\n// Composables\nexport const makeScrollProps = propsFactory({\n scrollTarget: {\n type: String,\n },\n scrollThreshold: {\n type: [String, Number],\n },\n}, 'scroll')\n\nexport interface ScrollArguments {\n thresholdMetCallback?: (data: ThresholdMetCallbackData) => void\n scrollThreshold?: Readonly<Ref<number>>\n canScroll?: Readonly<Ref<boolean>>\n}\n\nexport function useScroll (\n props: ScrollProps,\n args: ScrollArguments = {},\n) {\n const { thresholdMetCallback, scrollThreshold, canScroll } = args\n let previousScroll = 0\n const target = ref<Element | Window | null>(null)\n const currentScroll = ref(0)\n const savedScroll = ref(0)\n const currentThreshold = ref(0)\n const isScrollActive = ref(false)\n const isScrollingUp = ref(false)\n\n const computedScrollThreshold = computed(() => {\n return Number(props.scrollThreshold ?? scrollThreshold ?? 300)\n })\n\n const onScroll = () => {\n const targetEl = target.value\n\n if (!targetEl || (canScroll && !canScroll.value)) return\n\n previousScroll = currentScroll.value\n currentScroll.value = ('window' in targetEl) ? targetEl.pageYOffset : targetEl.scrollTop\n\n isScrollingUp.value = currentScroll.value < previousScroll\n currentThreshold.value = Math.abs(currentScroll.value - computedScrollThreshold.value)\n }\n\n watch(isScrollingUp, () => {\n savedScroll.value = savedScroll.value || currentScroll.value\n })\n\n watch(isScrollActive, () => {\n savedScroll.value = 0\n })\n\n onMounted(() => {\n watch(() => props.scrollTarget, scrollTarget => {\n const newTarget = scrollTarget ? document.querySelector(scrollTarget) : window\n\n if (!newTarget) {\n consoleWarn(`Unable to locate element with identifier ${scrollTarget}`, getCurrentInstance())\n return\n }\n\n if (newTarget === target.value) return\n\n target.value?.removeEventListener('scroll', onScroll)\n target.value = newTarget\n target.value.addEventListener('scroll', onScroll, { passive: true })\n }, { immediate: true })\n })\n\n onBeforeUnmount(() => {\n target.value?.removeEventListener('scroll', onScroll)\n })\n\n thresholdMetCallback && watch(() => (\n Math.abs(currentScroll.value - savedScroll.value) > computedScrollThreshold.value\n ), thresholdMet => {\n thresholdMet && thresholdMetCallback({\n currentThreshold: currentThreshold.value,\n isScrollingUp: isScrollingUp.value,\n savedScroll,\n })\n }, { immediate: true })\n\n // Do we need this? If yes - seems that\n // there's no need to expose onScroll\n canScroll && watch(canScroll, onScroll, { immediate: true })\n\n return {\n computedScrollThreshold,\n currentScroll,\n currentThreshold,\n isScrollActive,\n\n // required only for testing\n // probably can be removed\n // later (2 chars chlng)\n isScrollingUp,\n savedScroll,\n }\n}\n"],"mappings":"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"}
|
package/lib/entry-bundler.mjs
CHANGED
@@ -10,7 +10,7 @@ export const createVuetify = function () {
|
|
10
10
|
...options
|
11
11
|
});
|
12
12
|
};
|
13
|
-
export const version = "4.0.0-dev-
|
13
|
+
export const version = "4.0.0-dev-20230421.0";
|
14
14
|
createVuetify.version = version;
|
15
15
|
export { components, directives };
|
16
16
|
export * from "./composables/index.mjs";
|
package/lib/framework.mjs
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
// Composables
|
2
|
+
import { createDate, DateAdapterSymbol } from "./composables/date.mjs";
|
2
3
|
import { createDefaults, DefaultsSymbol } from "./composables/defaults.mjs";
|
3
4
|
import { createDisplay, DisplaySymbol } from "./composables/display.mjs";
|
4
5
|
import { createIcons, IconSymbol } from "./composables/icons.mjs";
|
@@ -26,6 +27,7 @@ export function createVuetify() {
|
|
26
27
|
const theme = createTheme(options.theme);
|
27
28
|
const icons = createIcons(options.icons);
|
28
29
|
const locale = createLocale(options.locale);
|
30
|
+
const date = createDate(options.date);
|
29
31
|
const install = app => {
|
30
32
|
for (const key in directives) {
|
31
33
|
app.directive(key, directives[key]);
|
@@ -46,6 +48,7 @@ export function createVuetify() {
|
|
46
48
|
app.provide(ThemeSymbol, theme);
|
47
49
|
app.provide(IconSymbol, icons);
|
48
50
|
app.provide(LocaleSymbol, locale);
|
51
|
+
app.provide(DateAdapterSymbol, date);
|
49
52
|
if (IN_BROWSER && options.ssr) {
|
50
53
|
if (app.$nuxt) {
|
51
54
|
app.$nuxt.hook('app:suspense:resolve', () => {
|
@@ -73,7 +76,8 @@ export function createVuetify() {
|
|
73
76
|
display: inject.call(this, DisplaySymbol),
|
74
77
|
theme: inject.call(this, ThemeSymbol),
|
75
78
|
icons: inject.call(this, IconSymbol),
|
76
|
-
locale: inject.call(this, LocaleSymbol)
|
79
|
+
locale: inject.call(this, LocaleSymbol),
|
80
|
+
date: inject.call(this, DateAdapterSymbol)
|
77
81
|
});
|
78
82
|
}
|
79
83
|
}
|
@@ -86,10 +90,11 @@ export function createVuetify() {
|
|
86
90
|
display,
|
87
91
|
theme,
|
88
92
|
icons,
|
89
|
-
locale
|
93
|
+
locale,
|
94
|
+
date
|
90
95
|
};
|
91
96
|
}
|
92
|
-
export const version = "4.0.0-dev-
|
97
|
+
export const version = "4.0.0-dev-20230421.0";
|
93
98
|
createVuetify.version = version;
|
94
99
|
|
95
100
|
// Vue's inject() can only be used in setup
|
package/lib/framework.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"framework.mjs","names":["createDefaults","DefaultsSymbol","createDisplay","DisplaySymbol","createIcons","IconSymbol","createLocale","LocaleSymbol","createTheme","ThemeSymbol","defineComponent","getUid","IN_BROWSER","mergeDeep","nextTick","reactive","createVuetify","vuetify","arguments","length","undefined","blueprint","rest","options","aliases","components","directives","defaults","display","ssr","theme","icons","locale","install","app","key","directive","component","name","aliasName","provide","$nuxt","hook","update","mount","vm","reset","__VUE_OPTIONS_API__","mixin","computed","$vuetify","inject","call","version","$","provides","parent","vnode","appContext"],"sources":["../src/framework.ts"],"sourcesContent":["// Composables\nimport { createDefaults, DefaultsSymbol } from '@/composables/defaults'\nimport { createDisplay, DisplaySymbol } from '@/composables/display'\nimport { createIcons, IconSymbol } from '@/composables/icons'\nimport { createLocale, LocaleSymbol } from '@/composables/locale'\nimport { createTheme, ThemeSymbol } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent, getUid, IN_BROWSER, mergeDeep } from '@/util'\nimport { nextTick, reactive } from 'vue'\n\n// Types\nimport type { App, ComponentPublicInstance, InjectionKey } from 'vue'\nimport type { DefaultsOptions } from '@/composables/defaults'\nimport type { DisplayOptions } from '@/composables/display'\nimport type { IconOptions } from '@/composables/icons'\nimport type { LocaleOptions, RtlOptions } from '@/composables/locale'\nimport type { ThemeOptions } from '@/composables/theme'\n\nexport * from './composables'\n\nexport interface VuetifyOptions {\n aliases?: Record<string, any>\n blueprint?: Blueprint\n components?: Record<string, any>\n directives?: Record<string, any>\n defaults?: DefaultsOptions\n display?: DisplayOptions\n theme?: ThemeOptions\n icons?: IconOptions\n locale?: LocaleOptions & RtlOptions\n ssr?: boolean\n}\n\nexport interface Blueprint extends Omit<VuetifyOptions, 'blueprint'> {}\n\nexport function createVuetify (vuetify: VuetifyOptions = {}) {\n const { blueprint, ...rest } = vuetify\n const options = mergeDeep(blueprint, rest)\n const {\n aliases = {},\n components = {},\n directives = {},\n } = options\n\n const defaults = createDefaults(options.defaults)\n const display = createDisplay(options.display, options.ssr)\n const theme = createTheme(options.theme)\n const icons = createIcons(options.icons)\n const locale = createLocale(options.locale)\n\n const install = (app: App) => {\n for (const key in directives) {\n app.directive(key, directives[key])\n }\n\n for (const key in components) {\n app.component(key, components[key])\n }\n\n for (const key in aliases) {\n app.component(key, defineComponent({\n ...aliases[key],\n name: key,\n aliasName: aliases[key].name,\n }))\n }\n\n theme.install(app)\n\n app.provide(DefaultsSymbol, defaults)\n app.provide(DisplaySymbol, display)\n app.provide(ThemeSymbol, theme)\n app.provide(IconSymbol, icons)\n app.provide(LocaleSymbol, locale)\n\n if (IN_BROWSER && options.ssr) {\n if (app.$nuxt) {\n app.$nuxt.hook('app:suspense:resolve', () => {\n display.update()\n })\n } else {\n const { mount } = app\n app.mount = (...args) => {\n const vm = mount(...args)\n nextTick(() => display.update())\n app.mount = mount\n return vm\n }\n }\n }\n\n getUid.reset()\n\n if (typeof __VUE_OPTIONS_API__ !== 'boolean' || __VUE_OPTIONS_API__) {\n app.mixin({\n computed: {\n $vuetify () {\n return reactive({\n defaults: inject.call(this, DefaultsSymbol),\n display: inject.call(this, DisplaySymbol),\n theme: inject.call(this, ThemeSymbol),\n icons: inject.call(this, IconSymbol),\n locale: inject.call(this, LocaleSymbol),\n })\n },\n },\n })\n }\n }\n\n return {\n install,\n defaults,\n display,\n theme,\n icons,\n locale,\n }\n}\n\nexport const version = __VUETIFY_VERSION__\ncreateVuetify.version = version\n\n// Vue's inject() can only be used in setup\nfunction inject (this: ComponentPublicInstance, key: InjectionKey<any> | string) {\n const vm = this.$\n\n const provides = vm.parent?.provides ?? vm.vnode.appContext?.provides\n\n if (provides && (key as any) in provides) {\n return provides[(key as string)]\n }\n}\n"],"mappings":"AAAA;AAAA,SACSA,cAAc,EAAEC,cAAc;AAAA,SAC9BC,aAAa,EAAEC,aAAa;AAAA,SAC5BC,WAAW,EAAEC,UAAU;AAAA,SACvBC,YAAY,EAAEC,YAAY;AAAA,SAC1BC,WAAW,EAAEC,WAAW,mCAEjC;AAAA,SACSC,eAAe,EAAEC,MAAM,EAAEC,UAAU,EAAEC,SAAS;AACvD,SAASC,QAAQ,EAAEC,QAAQ,QAAQ,KAAK;;AAExC;AAAA;
|
1
|
+
{"version":3,"file":"framework.mjs","names":["createDate","DateAdapterSymbol","createDefaults","DefaultsSymbol","createDisplay","DisplaySymbol","createIcons","IconSymbol","createLocale","LocaleSymbol","createTheme","ThemeSymbol","defineComponent","getUid","IN_BROWSER","mergeDeep","nextTick","reactive","createVuetify","vuetify","arguments","length","undefined","blueprint","rest","options","aliases","components","directives","defaults","display","ssr","theme","icons","locale","date","install","app","key","directive","component","name","aliasName","provide","$nuxt","hook","update","mount","vm","reset","__VUE_OPTIONS_API__","mixin","computed","$vuetify","inject","call","version","$","provides","parent","vnode","appContext"],"sources":["../src/framework.ts"],"sourcesContent":["// Composables\nimport { createDate, DateAdapterSymbol } from './composables/date'\nimport { createDefaults, DefaultsSymbol } from '@/composables/defaults'\nimport { createDisplay, DisplaySymbol } from '@/composables/display'\nimport { createIcons, IconSymbol } from '@/composables/icons'\nimport { createLocale, LocaleSymbol } from '@/composables/locale'\nimport { createTheme, ThemeSymbol } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent, getUid, IN_BROWSER, mergeDeep } from '@/util'\nimport { nextTick, reactive } from 'vue'\n\n// Types\nimport type { App, ComponentPublicInstance, InjectionKey } from 'vue'\nimport type { DateOptions } from '@/composables/date'\nimport type { DefaultsOptions } from '@/composables/defaults'\nimport type { DisplayOptions } from '@/composables/display'\nimport type { IconOptions } from '@/composables/icons'\nimport type { LocaleOptions, RtlOptions } from '@/composables/locale'\nimport type { ThemeOptions } from '@/composables/theme'\n\nexport * from './composables'\n\nexport interface VuetifyOptions {\n aliases?: Record<string, any>\n blueprint?: Blueprint\n components?: Record<string, any>\n date?: DateOptions\n directives?: Record<string, any>\n defaults?: DefaultsOptions\n display?: DisplayOptions\n theme?: ThemeOptions\n icons?: IconOptions\n locale?: LocaleOptions & RtlOptions\n ssr?: boolean\n}\n\nexport interface Blueprint extends Omit<VuetifyOptions, 'blueprint'> {}\n\nexport function createVuetify (vuetify: VuetifyOptions = {}) {\n const { blueprint, ...rest } = vuetify\n const options = mergeDeep(blueprint, rest)\n const {\n aliases = {},\n components = {},\n directives = {},\n } = options\n\n const defaults = createDefaults(options.defaults)\n const display = createDisplay(options.display, options.ssr)\n const theme = createTheme(options.theme)\n const icons = createIcons(options.icons)\n const locale = createLocale(options.locale)\n const date = createDate(options.date)\n\n const install = (app: App) => {\n for (const key in directives) {\n app.directive(key, directives[key])\n }\n\n for (const key in components) {\n app.component(key, components[key])\n }\n\n for (const key in aliases) {\n app.component(key, defineComponent({\n ...aliases[key],\n name: key,\n aliasName: aliases[key].name,\n }))\n }\n\n theme.install(app)\n\n app.provide(DefaultsSymbol, defaults)\n app.provide(DisplaySymbol, display)\n app.provide(ThemeSymbol, theme)\n app.provide(IconSymbol, icons)\n app.provide(LocaleSymbol, locale)\n app.provide(DateAdapterSymbol, date)\n\n if (IN_BROWSER && options.ssr) {\n if (app.$nuxt) {\n app.$nuxt.hook('app:suspense:resolve', () => {\n display.update()\n })\n } else {\n const { mount } = app\n app.mount = (...args) => {\n const vm = mount(...args)\n nextTick(() => display.update())\n app.mount = mount\n return vm\n }\n }\n }\n\n getUid.reset()\n\n if (typeof __VUE_OPTIONS_API__ !== 'boolean' || __VUE_OPTIONS_API__) {\n app.mixin({\n computed: {\n $vuetify () {\n return reactive({\n defaults: inject.call(this, DefaultsSymbol),\n display: inject.call(this, DisplaySymbol),\n theme: inject.call(this, ThemeSymbol),\n icons: inject.call(this, IconSymbol),\n locale: inject.call(this, LocaleSymbol),\n date: inject.call(this, DateAdapterSymbol),\n })\n },\n },\n })\n }\n }\n\n return {\n install,\n defaults,\n display,\n theme,\n icons,\n locale,\n date,\n }\n}\n\nexport const version = __VUETIFY_VERSION__\ncreateVuetify.version = version\n\n// Vue's inject() can only be used in setup\nfunction inject (this: ComponentPublicInstance, key: InjectionKey<any> | string) {\n const vm = this.$\n\n const provides = vm.parent?.provides ?? vm.vnode.appContext?.provides\n\n if (provides && (key as any) in provides) {\n return provides[(key as string)]\n }\n}\n"],"mappings":"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"}
|
package/lib/iconsets/mdi-svg.mjs
CHANGED
@@ -11,8 +11,8 @@ const aliases = {
|
|
11
11
|
clear: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z',
|
12
12
|
success: 'M12,2C17.52,2 22,6.48 22,12C22,17.52 17.52,22 12,22C6.48,22 2,17.52 2,12C2,6.48 6.48,2 12,2M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z',
|
13
13
|
info: 'M13,9H11V7H13M13,17H11V11H13M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z',
|
14
|
-
warning: '
|
15
|
-
error: '
|
14
|
+
warning: 'M13,13H11V7H13M13,17H11V15H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z',
|
15
|
+
error: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z',
|
16
16
|
prev: 'M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z',
|
17
17
|
next: 'M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z',
|
18
18
|
checkboxOn: 'M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z',
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mdi-svg.mjs","names":["VSvgIcon","aliases","collapse","complete","cancel","close","delete","clear","success","info","warning","error","prev","next","checkboxOn","checkboxOff","checkboxIndeterminate","delimiter","sortAsc","sortDesc","expand","menu","subgroup","dropdown","radioOn","radioOff","edit","ratingEmpty","ratingFull","ratingHalf","loading","first","last","unfold","file","plus","minus","mdi","component"],"sources":["../../src/iconsets/mdi-svg.ts"],"sourcesContent":["/* eslint-disable max-len */\n\n// Components\nimport { VSvgIcon } from '@/composables/icons'\n\n// Types\nimport type { IconAliases, IconSet } from '@/composables/icons'\n\nconst aliases: IconAliases = {\n collapse: 'M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z',\n complete: 'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z',\n cancel: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z',\n close: 'M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z',\n delete: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z', // delete (e.g. v-chip close)\n clear: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z',\n success: 'M12,2C17.52,2 22,6.48 22,12C22,17.52 17.52,22 12,22C6.48,22 2,17.52 2,12C2,6.48 6.48,2 12,2M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z',\n info: 'M13,9H11V7H13M13,17H11V11H13M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z',\n warning: '
|
1
|
+
{"version":3,"file":"mdi-svg.mjs","names":["VSvgIcon","aliases","collapse","complete","cancel","close","delete","clear","success","info","warning","error","prev","next","checkboxOn","checkboxOff","checkboxIndeterminate","delimiter","sortAsc","sortDesc","expand","menu","subgroup","dropdown","radioOn","radioOff","edit","ratingEmpty","ratingFull","ratingHalf","loading","first","last","unfold","file","plus","minus","mdi","component"],"sources":["../../src/iconsets/mdi-svg.ts"],"sourcesContent":["/* eslint-disable max-len */\n\n// Components\nimport { VSvgIcon } from '@/composables/icons'\n\n// Types\nimport type { IconAliases, IconSet } from '@/composables/icons'\n\nconst aliases: IconAliases = {\n collapse: 'M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z',\n complete: 'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z',\n cancel: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z',\n close: 'M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z',\n delete: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z', // delete (e.g. v-chip close)\n clear: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z',\n success: 'M12,2C17.52,2 22,6.48 22,12C22,17.52 17.52,22 12,22C6.48,22 2,17.52 2,12C2,6.48 6.48,2 12,2M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z',\n info: 'M13,9H11V7H13M13,17H11V11H13M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z',\n warning: 'M13,13H11V7H13M13,17H11V15H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z',\n error: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z',\n prev: 'M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z',\n next: 'M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z',\n checkboxOn: 'M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z',\n checkboxOff: 'M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z',\n checkboxIndeterminate: 'M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z',\n delimiter: 'M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z', // for carousel\n sortAsc: 'M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z',\n sortDesc: 'M11,4H13V16L18.5,10.5L19.92,11.92L12,19.84L4.08,11.92L5.5,10.5L11,16V4Z',\n expand: 'M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z',\n menu: 'M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z',\n subgroup: 'M7,10L12,15L17,10H7Z',\n dropdown: 'M7,10L12,15L17,10H7Z',\n radioOn: 'M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2M12,7C9.24,7 7,9.24 7,12C7,14.76 9.24,17 12,17C14.76,17 17,14.76 17,12C17,9.24 14.76,7 12,7Z',\n radioOff: 'M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z',\n edit: 'M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z',\n ratingEmpty: 'M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z',\n ratingFull: 'M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z',\n ratingHalf: 'M12,15.4V6.1L13.71,10.13L18.09,10.5L14.77,13.39L15.76,17.67M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z',\n loading: 'M19,8L15,12H18C18,15.31 15.31,18 12,18C11,18 10.03,17.75 9.2,17.3L7.74,18.76C8.97,19.54 10.43,20 12,20C16.42,20 20,16.42 20,12H23M6,12C6,8.69 8.69,6 12,6C13,6 13.97,6.25 14.8,6.7L16.26,5.24C15.03,4.46 13.57,4 12,4C7.58,4 4,7.58 4,12H1L5,16L9,12',\n first: 'M18.41,16.59L13.82,12L18.41,7.41L17,6L11,12L17,18L18.41,16.59M6,6H8V18H6V6Z',\n last: 'M5.59,7.41L10.18,12L5.59,16.59L7,18L13,12L7,6L5.59,7.41M16,6H18V18H16V6Z',\n unfold: 'M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z',\n file: 'M16.5,6V17.5C16.5,19.71 14.71,21.5 12.5,21.5C10.29,21.5 8.5,19.71 8.5,17.5V5C8.5,3.62 9.62,2.5 11,2.5C12.38,2.5 13.5,3.62 13.5,5V15.5C13.5,16.05 13.05,16.5 12.5,16.5C11.95,16.5 11.5,16.05 11.5,15.5V6H10V15.5C10,16.88 11.12,18 12.5,18C13.88,18 15,16.88 15,15.5V5C15,2.79 13.21,1 11,1C8.79,1 7,2.79 7,5V17.5C7,20.54 9.46,23 12.5,23C15.54,23 18,20.54 18,17.5V6H16.5Z',\n plus: 'M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z',\n minus: 'M19,13H5V11H19V13Z',\n}\n\nconst mdi: IconSet = {\n component: VSvgIcon,\n}\n\nexport { aliases, mdi }\n"],"mappings":"AAAA;AAEA;AAAA,SACSA,QAAQ,oCAEjB;AAGA,MAAMC,OAAoB,GAAG;EAC3BC,QAAQ,EAAE,8DAA8D;EACxEC,QAAQ,EAAE,yDAAyD;EACnEC,MAAM,EAAE,0MAA0M;EAClNC,KAAK,EAAE,+GAA+G;EACtHC,MAAM,EAAE,0MAA0M;EAAE;EACpNC,KAAK,EAAE,0MAA0M;EACjNC,OAAO,EAAE,2JAA2J;EACpKC,IAAI,EAAE,0HAA0H;EAChIC,OAAO,EAAE,2GAA2G;EACpHC,KAAK,EAAE,0MAA0M;EACjNC,IAAI,EAAE,+DAA+D;EACrEC,IAAI,EAAE,6DAA6D;EACnEC,UAAU,EAAE,gJAAgJ;EAC5JC,WAAW,EAAE,gHAAgH;EAC7HC,qBAAqB,EAAE,+GAA+G;EACtIC,SAAS,EAAE,8FAA8F;EAAE;EAC3GC,OAAO,EAAE,wEAAwE;EACjFC,QAAQ,EAAE,yEAAyE;EACnFC,MAAM,EAAE,4DAA4D;EACpEC,IAAI,EAAE,gDAAgD;EACtDC,QAAQ,EAAE,sBAAsB;EAChCC,QAAQ,EAAE,sBAAsB;EAChCC,OAAO,EAAE,qRAAqR;EAC9RC,QAAQ,EAAE,0LAA0L;EACpMC,IAAI,EAAE,qJAAqJ;EAC3JC,WAAW,EAAE,iNAAiN;EAC9NC,UAAU,EAAE,sGAAsG;EAClHC,UAAU,EAAE,gKAAgK;EAC5KC,OAAO,EAAE,sPAAsP;EAC/PC,KAAK,EAAE,6EAA6E;EACpFC,IAAI,EAAE,0EAA0E;EAChFC,MAAM,EAAE,mHAAmH;EAC3HC,IAAI,EAAE,6WAA6W;EACnXC,IAAI,EAAE,2CAA2C;EACjDC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,GAAY,GAAG;EACnBC,SAAS,EAAEtC;AACb,CAAC;AAED,SAASC,OAAO,EAAEoC,GAAG"}
|
package/lib/index.d.ts
CHANGED
@@ -148,6 +148,45 @@ type DefaultsInstance = undefined | {
|
|
148
148
|
};
|
149
149
|
type DefaultsOptions = Partial<DefaultsInstance>;
|
150
150
|
|
151
|
+
interface DateAdapter<Date> {
|
152
|
+
date(value?: any): Date | null;
|
153
|
+
format(date: Date, formatString: string): string;
|
154
|
+
startOfMonth(date: Date): Date;
|
155
|
+
endOfMonth(date: Date): Date;
|
156
|
+
startOfYear(date: Date): Date;
|
157
|
+
endOfYear(date: Date): Date;
|
158
|
+
isAfter(date: Date, comparing: Date): boolean;
|
159
|
+
isEqual(date: Date, comparing: Date): boolean;
|
160
|
+
isSameDay(date: Date, comparing: Date): boolean;
|
161
|
+
isSameMonth(date: Date, comparing: Date): boolean;
|
162
|
+
isValid(date: any): boolean;
|
163
|
+
isWithinRange(date: Date, range: [Date, Date]): boolean;
|
164
|
+
addDays(date: Date, amount: number): Date;
|
165
|
+
addMonths(date: Date, amount: number): Date;
|
166
|
+
getYear(date: Date): number;
|
167
|
+
setYear(date: Date, year: number): Date;
|
168
|
+
getDiff(date: Date, comparing: Date | string, unit?: string): number;
|
169
|
+
getWeek(date: Date): number;
|
170
|
+
getWeekArray(date: Date): (Date | null)[][];
|
171
|
+
getWeekdays(): string[];
|
172
|
+
getMonth(date: Date): number;
|
173
|
+
}
|
174
|
+
|
175
|
+
interface DateInstance extends DateAdapter<Date> {
|
176
|
+
locale: string;
|
177
|
+
}
|
178
|
+
type DateOptions = {
|
179
|
+
adapter: {
|
180
|
+
new (locale: string): DateInstance;
|
181
|
+
};
|
182
|
+
};
|
183
|
+
interface DateProps {
|
184
|
+
displayDate: Date;
|
185
|
+
hideAdjacentMonths: boolean;
|
186
|
+
modelValue: any[];
|
187
|
+
}
|
188
|
+
declare function useDate(props: DateProps): DateInstance;
|
189
|
+
|
151
190
|
type IconValue = string | JSXComponent;
|
152
191
|
declare const IconValue: PropType<IconValue>;
|
153
192
|
interface IconAliases {
|
@@ -235,6 +274,7 @@ interface VuetifyOptions {
|
|
235
274
|
aliases?: Record<string, any>;
|
236
275
|
blueprint?: Blueprint;
|
237
276
|
components?: Record<string, any>;
|
277
|
+
date?: DateOptions;
|
238
278
|
directives?: Record<string, any>;
|
239
279
|
defaults?: DefaultsOptions;
|
240
280
|
display?: DisplayOptions;
|
@@ -265,13 +305,14 @@ declare function createVuetify(vuetify?: VuetifyOptions): {
|
|
265
305
|
n: (value: number) => string;
|
266
306
|
provide: (props: LocaleOptions) => LocaleInstance;
|
267
307
|
};
|
308
|
+
date: DateOptions;
|
268
309
|
};
|
269
310
|
declare namespace createVuetify {
|
270
311
|
var version: string;
|
271
312
|
}
|
272
313
|
declare const version: string;
|
273
314
|
|
274
|
-
export { Blueprint, DefaultsInstance, DisplayBreakpoint, DisplayInstance, DisplayThresholds, IconAliases, IconOptions, IconProps, IconSet, LocaleInstance, LocaleMessages, LocaleOptions, RtlInstance, RtlOptions, SubmitEventPromise, ThemeDefinition, ThemeInstance, VuetifyOptions, createVuetify, useDisplay, useLayout, useLocale, useRtl, useTheme, version };
|
315
|
+
export { Blueprint, DateInstance, DateOptions, DefaultsInstance, DisplayBreakpoint, DisplayInstance, DisplayThresholds, IconAliases, IconOptions, IconProps, IconSet, LocaleInstance, LocaleMessages, LocaleOptions, RtlInstance, RtlOptions, SubmitEventPromise, ThemeDefinition, ThemeInstance, VuetifyOptions, createVuetify, useDate, useDisplay, useLayout, useLocale, useRtl, useTheme, version };
|
275
316
|
|
276
317
|
import type { ComponentPublicInstance, FunctionalComponent, UnwrapNestedRefs, VNodeChild } from 'vue'
|
277
318
|
|
@@ -304,6 +345,7 @@ declare module '@vue/runtime-core' {
|
|
304
345
|
theme: UnwrapNestedRefs<ThemeInstance>
|
305
346
|
icons: IconOptions
|
306
347
|
locale: UnwrapNestedRefs<LocaleInstance & RtlInstance>
|
348
|
+
date: DateOptions
|
307
349
|
}
|
308
350
|
|
309
351
|
export interface ComponentCustomProperties {
|
@@ -329,32 +371,32 @@ declare module '@vue/runtime-core' {
|
|
329
371
|
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
330
372
|
VBtn: typeof import('vuetify/components')['VBtn']
|
331
373
|
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
332
|
-
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
333
374
|
VCard: typeof import('vuetify/components')['VCard']
|
334
375
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
335
376
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
336
377
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
337
378
|
VCardText: typeof import('vuetify/components')['VCardText']
|
338
379
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
380
|
+
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
339
381
|
VCarousel: typeof import('vuetify/components')['VCarousel']
|
340
382
|
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
341
383
|
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
342
384
|
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
343
385
|
VChip: typeof import('vuetify/components')['VChip']
|
344
|
-
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
345
386
|
VCode: typeof import('vuetify/components')['VCode']
|
346
387
|
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
388
|
+
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
347
389
|
VCombobox: typeof import('vuetify/components')['VCombobox']
|
348
|
-
VCounter: typeof import('vuetify/components')['VCounter']
|
349
390
|
VDialog: typeof import('vuetify/components')['VDialog']
|
391
|
+
VCounter: typeof import('vuetify/components')['VCounter']
|
350
392
|
VDivider: typeof import('vuetify/components')['VDivider']
|
351
393
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
352
394
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
353
395
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
354
396
|
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
397
|
+
VFileInput: typeof import('vuetify/components')['VFileInput']
|
355
398
|
VField: typeof import('vuetify/components')['VField']
|
356
399
|
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
357
|
-
VFileInput: typeof import('vuetify/components')['VFileInput']
|
358
400
|
VFooter: typeof import('vuetify/components')['VFooter']
|
359
401
|
VIcon: typeof import('vuetify/components')['VIcon']
|
360
402
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
@@ -376,10 +418,10 @@ declare module '@vue/runtime-core' {
|
|
376
418
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
377
419
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
378
420
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
379
|
-
VMenu: typeof import('vuetify/components')['VMenu']
|
380
421
|
VMain: typeof import('vuetify/components')['VMain']
|
381
|
-
|
422
|
+
VMenu: typeof import('vuetify/components')['VMenu']
|
382
423
|
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
424
|
+
VMessages: typeof import('vuetify/components')['VMessages']
|
383
425
|
VOverlay: typeof import('vuetify/components')['VOverlay']
|
384
426
|
VPagination: typeof import('vuetify/components')['VPagination']
|
385
427
|
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
@@ -410,19 +452,19 @@ declare module '@vue/runtime-core' {
|
|
410
452
|
VWindow: typeof import('vuetify/components')['VWindow']
|
411
453
|
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
412
454
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
413
|
-
VForm: typeof import('vuetify/components')['VForm']
|
414
455
|
VContainer: typeof import('vuetify/components')['VContainer']
|
415
456
|
VCol: typeof import('vuetify/components')['VCol']
|
416
457
|
VRow: typeof import('vuetify/components')['VRow']
|
417
458
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
418
459
|
VHover: typeof import('vuetify/components')['VHover']
|
460
|
+
VForm: typeof import('vuetify/components')['VForm']
|
419
461
|
VLayout: typeof import('vuetify/components')['VLayout']
|
420
462
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
421
|
-
VLazy: typeof import('vuetify/components')['VLazy']
|
422
463
|
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
464
|
+
VLazy: typeof import('vuetify/components')['VLazy']
|
423
465
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
424
|
-
VParallax: typeof import('vuetify/components')['VParallax']
|
425
466
|
VRadio: typeof import('vuetify/components')['VRadio']
|
467
|
+
VParallax: typeof import('vuetify/components')['VParallax']
|
426
468
|
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
427
469
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
428
470
|
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
@@ -32,12 +32,12 @@ export const makeVDataTableProps = propsFactory({
|
|
32
32
|
width: [String, Number],
|
33
33
|
fixedHeader: Boolean,
|
34
34
|
fixedFooter: Boolean,
|
35
|
-
'onClick:row': Function
|
35
|
+
'onClick:row': Function,
|
36
|
+
search: String
|
36
37
|
}, 'v-data-table');
|
37
38
|
export const VDataTable = genericComponent()({
|
38
39
|
name: 'VDataTable',
|
39
40
|
props: {
|
40
|
-
search: String,
|
41
41
|
...makeVDataTableProps(),
|
42
42
|
...makeDataTableExpandProps(),
|
43
43
|
...makeDataTableGroupProps(),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VDataTable.mjs","names":["VTable","VDataTableHeaders","VDataTableRows","VDataTableFooter","makeDataTableItemProps","useDataTableItems","createHeaders","makeDataTableHeaderProps","createSort","makeDataTableSortProps","provideSort","useSortedItems","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createPagination","makeDataTablePaginateProps","providePagination","usePaginatedItems","makeDataTableSelectProps","provideSelection","makeDataTableExpandProps","provideExpanded","useOptions","provideDefaults","computed","toRef","genericComponent","propsFactory","useRender","makeFilterProps","useFilter","makeVDataTableProps","hideNoData","Boolean","hover","noDataText","type","String","default","height","Number","width","fixedHeader","fixedFooter","Function","VDataTable","name","props","search","emits","value","setup","_ref","emit","slots","groupBy","sortBy","multiSort","mustSort","page","itemsPerPage","columns","showSelect","showExpand","items","filterKeys","map","c","key","filteredItems","sortByWithGroups","opened","extractRows","sortedItems","flatItems","itemsLength","length","startIndex","stopIndex","paginatedItems","paginatedItemsWithoutGroups","_createVNode","top","_Fragment","colgroup","headers","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTable.tsx"],"sourcesContent":["// Styles\nimport './VDataTable.sass'\n\n// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VDataTableFooter } from './VDataTableFooter'\n\n// Composables\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from './composables/sort'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from './composables/paginate'\nimport { makeDataTableSelectProps, provideSelection } from './composables/select'\nimport { makeDataTableExpandProps, provideExpanded } from './composables/expand'\nimport { useOptions } from './composables/options'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { DataTableItem, InternalDataTableHeader } from './types'\n\nexport type VDataTableSlots = VDataTableRowsSlots & {\n colgroup: [InternalDataTableHeader]\n default: []\n top: []\n headers: []\n body: []\n tbody: []\n thead: []\n tfoot: []\n bottom: []\n 'footer.prepend': []\n}\n\nexport const makeVDataTableProps = propsFactory({\n ...makeDataTableItemProps(),\n ...makeDataTableHeaderProps(),\n hideNoData: Boolean,\n hover: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n height: [String, Number],\n width: [String, Number],\n fixedHeader: Boolean,\n fixedFooter: Boolean,\n 'onClick:row': Function as PropType<(e: Event, value: { item: DataTableItem }) => void>,\n}, 'v-data-table')\n\nexport const VDataTable = genericComponent<VDataTableSlots>()({\n name: 'VDataTable',\n\n props: {\n search: String,\n\n ...makeVDataTableProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps(),\n ...makeFilterProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (value: number) => true,\n 'update:itemsPerPage': (value: number) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key))\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter<DataTableItem>(props, items, search, { filterKeys })\n\n provideSort({ sortBy, multiSort, mustSort, page })\n const { sortByWithGroups, opened, extractRows } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(filteredItems, sortByWithGroups, columns)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n const itemsLength = computed(() => flatItems.value.length)\n\n const { startIndex, stopIndex } = providePagination({ page, itemsPerPage, itemsLength })\n const { paginatedItems } = usePaginatedItems({ items: flatItems, startIndex, stopIndex, itemsPerPage })\n\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value))\n\n provideSelection(props, paginatedItemsWithoutGroups)\n\n provideExpanded(props)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n },\n })\n\n useRender(() => (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--show-select': props.showSelect,\n },\n ]}\n fixedHeader={ props.fixedHeader }\n fixedFooter={ props.fixedFooter }\n height={ props.height }\n hover={ props.hover }\n >\n {{\n top: slots.top,\n default: slots.default ?? (() => (\n <>\n { slots.colgroup?.({ columns }) }\n <thead>\n { slots.headers ? slots.headers() : (\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n multiSort={ props.multiSort }\n v-slots={ slots }\n />\n )}\n </thead>\n { slots.thead?.() }\n <tbody>\n { slots.body ? slots.body() : (\n <VDataTableRows\n items={ paginatedItems.value }\n onClick:row={ props['onClick:row'] }\n v-slots={ slots }\n />\n )}\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n )),\n bottom: slots.bottom ?? (() => (\n <VDataTableFooter\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n )),\n }}\n </VTable>\n ))\n\n return {}\n },\n})\n\nexport type VDataTable = InstanceType<typeof VDataTable>\n"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"VDataTable.mjs","names":["VTable","VDataTableHeaders","VDataTableRows","VDataTableFooter","makeDataTableItemProps","useDataTableItems","createHeaders","makeDataTableHeaderProps","createSort","makeDataTableSortProps","provideSort","useSortedItems","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createPagination","makeDataTablePaginateProps","providePagination","usePaginatedItems","makeDataTableSelectProps","provideSelection","makeDataTableExpandProps","provideExpanded","useOptions","provideDefaults","computed","toRef","genericComponent","propsFactory","useRender","makeFilterProps","useFilter","makeVDataTableProps","hideNoData","Boolean","hover","noDataText","type","String","default","height","Number","width","fixedHeader","fixedFooter","Function","search","VDataTable","name","props","emits","value","setup","_ref","emit","slots","groupBy","sortBy","multiSort","mustSort","page","itemsPerPage","columns","showSelect","showExpand","items","filterKeys","map","c","key","filteredItems","sortByWithGroups","opened","extractRows","sortedItems","flatItems","itemsLength","length","startIndex","stopIndex","paginatedItems","paginatedItemsWithoutGroups","_createVNode","top","_Fragment","colgroup","headers","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTable.tsx"],"sourcesContent":["// Styles\nimport './VDataTable.sass'\n\n// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VDataTableFooter } from './VDataTableFooter'\n\n// Composables\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from './composables/sort'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from './composables/paginate'\nimport { makeDataTableSelectProps, provideSelection } from './composables/select'\nimport { makeDataTableExpandProps, provideExpanded } from './composables/expand'\nimport { useOptions } from './composables/options'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { DataTableItem, InternalDataTableHeader } from './types'\n\nexport type VDataTableSlots = VDataTableRowsSlots & {\n colgroup: [InternalDataTableHeader]\n default: []\n top: []\n headers: []\n body: []\n tbody: []\n thead: []\n tfoot: []\n bottom: []\n 'footer.prepend': []\n}\n\nexport const makeVDataTableProps = propsFactory({\n ...makeDataTableItemProps(),\n ...makeDataTableHeaderProps(),\n hideNoData: Boolean,\n hover: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n height: [String, Number],\n width: [String, Number],\n fixedHeader: Boolean,\n fixedFooter: Boolean,\n 'onClick:row': Function as PropType<(e: Event, value: { item: DataTableItem }) => void>,\n search: String,\n}, 'v-data-table')\n\nexport const VDataTable = genericComponent<VDataTableSlots>()({\n name: 'VDataTable',\n\n props: {\n ...makeVDataTableProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps(),\n ...makeFilterProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (value: number) => true,\n 'update:itemsPerPage': (value: number) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key))\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter<DataTableItem>(props, items, search, { filterKeys })\n\n provideSort({ sortBy, multiSort, mustSort, page })\n const { sortByWithGroups, opened, extractRows } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(filteredItems, sortByWithGroups, columns)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n const itemsLength = computed(() => flatItems.value.length)\n\n const { startIndex, stopIndex } = providePagination({ page, itemsPerPage, itemsLength })\n const { paginatedItems } = usePaginatedItems({ items: flatItems, startIndex, stopIndex, itemsPerPage })\n\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value))\n\n provideSelection(props, paginatedItemsWithoutGroups)\n\n provideExpanded(props)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n },\n })\n\n useRender(() => (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--show-select': props.showSelect,\n },\n ]}\n fixedHeader={ props.fixedHeader }\n fixedFooter={ props.fixedFooter }\n height={ props.height }\n hover={ props.hover }\n >\n {{\n top: slots.top,\n default: slots.default ?? (() => (\n <>\n { slots.colgroup?.({ columns }) }\n <thead>\n { slots.headers ? slots.headers() : (\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n multiSort={ props.multiSort }\n v-slots={ slots }\n />\n )}\n </thead>\n { slots.thead?.() }\n <tbody>\n { slots.body ? slots.body() : (\n <VDataTableRows\n items={ paginatedItems.value }\n onClick:row={ props['onClick:row'] }\n v-slots={ slots }\n />\n )}\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n )),\n bottom: slots.bottom ?? (() => (\n <VDataTableFooter\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n )),\n }}\n </VTable>\n ))\n\n return {}\n },\n})\n\nexport type VDataTable = InstanceType<typeof VDataTable>\n"],"mappings":"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"}
|