@vuetify/nightly 3.0.0-beta.5 → 3.0.0-beta.6
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 +39 -17
- package/dist/json/attributes.json +26 -70
- package/dist/json/importMap.json +66 -98
- package/dist/json/tags.json +6 -32
- package/dist/json/web-types.json +135 -255
- package/dist/vuetify.css +688 -652
- package/dist/vuetify.d.ts +3566 -1150
- package/dist/vuetify.esm.js +276 -226
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +275 -225
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +611 -612
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.css +13 -6
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +1 -5
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.sass +8 -3
- package/lib/components/VBreadcrumbs/_variables.scss +2 -1
- package/lib/components/VBtn/VBtn.css +20 -13
- package/lib/components/VBtn/VBtn.mjs +6 -3
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.sass +20 -9
- package/lib/components/VBtn/_variables.scss +2 -3
- package/lib/components/VBtnGroup/VBtnGroup.css +1 -1
- package/lib/components/VCard/VCard.css +3 -3
- package/lib/components/VCard/VCard.sass +3 -3
- package/lib/components/VCard/_variables.scss +1 -0
- package/lib/components/VChip/VChip.mjs +2 -1
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +5 -11
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.mjs +5 -4
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.css +1 -0
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +3 -0
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.sass +1 -0
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +2 -2
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VField/VField.css +2 -2
- package/lib/components/VField/VField.sass +2 -2
- package/lib/components/VFileInput/VFileInput.css +3 -3
- package/lib/components/VFileInput/VFileInput.mjs +9 -4
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.sass +3 -3
- package/lib/components/VInput/VInput.mjs +1 -1
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VItemGroup/VItem.mjs +3 -0
- package/lib/components/VItemGroup/VItem.mjs.map +1 -1
- package/lib/components/VList/VList.css +2 -2
- package/lib/components/VList/VList.sass +1 -1
- package/lib/components/VList/VListChildren.mjs +4 -3
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +42 -38
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +78 -52
- package/lib/components/VList/VListItem.mjs +69 -41
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +67 -38
- package/lib/components/VList/_variables.scss +11 -5
- package/lib/components/VList/index.mjs +0 -3
- package/lib/components/VList/index.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +23 -9
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +4 -4
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs +3 -0
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.mjs +6 -2
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.css +7 -0
- package/lib/components/VSwitch/VSwitch.sass +6 -0
- package/lib/components/VSystemBar/VSystemBar.mjs +1 -1
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VTable/VTable.css +1 -0
- package/lib/components/VTable/VTable.sass +1 -0
- package/lib/components/VTabs/VTab.css +3 -1
- package/lib/components/VTabs/VTab.sass +4 -1
- package/lib/components/VTabs/VTabs.mjs +7 -6
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.mjs +18 -8
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.mjs +18 -8
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineDivider.mjs +1 -1
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTooltip/VTooltip.mjs +6 -3
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VWindow/VWindowItem.mjs +3 -0
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/index.d.ts +3566 -1135
- package/lib/components/transitions/index.mjs +0 -5
- package/lib/components/transitions/index.mjs.map +1 -1
- package/lib/composables/group.mjs.map +1 -1
- package/lib/composables/proxiedModel.mjs +2 -1
- package/lib/composables/proxiedModel.mjs.map +1 -1
- package/lib/composables/stack.mjs +7 -7
- package/lib/composables/stack.mjs.map +1 -1
- package/lib/composables/theme.mjs +9 -4
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/composables/variant.mjs +2 -2
- package/lib/composables/variant.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/index.d.ts +22 -29
- package/lib/styles/generic/_transitions.scss +13 -77
- package/lib/styles/main.css +44 -58
- package/lib/util/helpers.mjs +16 -4
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +3 -3
- package/lib/components/VList/VListItemAvatar.mjs +0 -24
- package/lib/components/VList/VListItemAvatar.mjs.map +0 -1
- package/lib/components/VList/VListItemHeader.mjs +0 -3
- package/lib/components/VList/VListItemHeader.mjs.map +0 -1
- package/lib/components/VList/VListItemIcon.mjs +0 -24
- package/lib/components/VList/VListItemIcon.mjs.map +0 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
@use '../../styles/settings';
|
|
3
3
|
@use '../../styles/tools';
|
|
4
4
|
|
|
5
|
-
//
|
|
5
|
+
// VList
|
|
6
6
|
$list-background: rgba(var(--v-theme-surface)) !default;
|
|
7
7
|
$list-border-color: settings.$border-color-root !default;
|
|
8
8
|
$list-border-radius: 0 !default;
|
|
@@ -19,10 +19,11 @@ $list-indent-size: 16px !default;
|
|
|
19
19
|
$list-nav-padding: 8px !default;
|
|
20
20
|
$list-nav-subheader-font-size: .75rem !default;
|
|
21
21
|
|
|
22
|
+
// VListSubheader
|
|
22
23
|
$list-subheader-font-size: .875rem !default;
|
|
23
|
-
$list-subheader-font-weight:
|
|
24
|
+
$list-subheader-font-weight: 400 !default;
|
|
24
25
|
$list-subheader-inset-margin: 56px !default;
|
|
25
|
-
$list-subheader-inset-padding-start:
|
|
26
|
+
$list-subheader-inset-padding-start: 56px !default;
|
|
26
27
|
$list-subheader-line-height: 1.375rem !default;
|
|
27
28
|
$list-subheader-min-height: 40px !default;
|
|
28
29
|
$list-subheader-padding-end: 16px !default;
|
|
@@ -32,17 +33,22 @@ $list-subheader-min-height-multiplier: 1 !default;
|
|
|
32
33
|
$list-subheader-text-opacity: var(--v-medium-emphasis-opacity) !default;
|
|
33
34
|
$list-subheader-transition: 0.2s min-height settings.$standard-easing !default;
|
|
34
35
|
|
|
36
|
+
// VListItem
|
|
35
37
|
$list-item-border-color: settings.$border-color-root !default;
|
|
36
38
|
$list-item-border-radius: 0 !default;
|
|
37
39
|
$list-item-border-style: settings.$border-style-root !default;
|
|
38
40
|
$list-item-border-width: 0 !default;
|
|
39
41
|
$list-item-border-thin-width: thin !default;
|
|
40
42
|
$list-item-elevation: 1 !default;
|
|
43
|
+
$list-item-icon-opacity: var(--v-medium-emphasis-opacity) !default;
|
|
44
|
+
$list-item-icon-active-opacity: 1 !default;
|
|
41
45
|
$list-item-min-height: 40px !default;
|
|
42
|
-
$list-item-padding:
|
|
46
|
+
$list-item-padding: 4px 16px !default;
|
|
47
|
+
$list-item-prepend-size: 40px !default;
|
|
43
48
|
$list-item-plain-opacity: .62 !default;
|
|
44
49
|
$list-item-rounded-border-radius: map.get(settings.$rounded, null) !default;
|
|
45
|
-
$list-item-
|
|
50
|
+
$list-item-one-line-min-height: 48px !default;
|
|
51
|
+
$list-item-one-line-padding: 8px 16px !default;
|
|
46
52
|
$list-item-two-line-min-height: 64px !default;
|
|
47
53
|
$list-item-two-line-padding: 12px 16px !default;
|
|
48
54
|
$list-item-three-line-min-height: 88px !default;
|
|
@@ -3,9 +3,6 @@ export { VListGroup } from "./VListGroup.mjs";
|
|
|
3
3
|
export { VListImg } from "./VListImg.mjs";
|
|
4
4
|
export { VListItem } from "./VListItem.mjs";
|
|
5
5
|
export { VListItemAction } from "./VListItemAction.mjs";
|
|
6
|
-
export { VListItemAvatar } from "./VListItemAvatar.mjs";
|
|
7
|
-
export { VListItemHeader } from "./VListItemHeader.mjs";
|
|
8
|
-
export { VListItemIcon } from "./VListItemIcon.mjs";
|
|
9
6
|
export { VListItemMedia } from "./VListItemMedia.mjs";
|
|
10
7
|
export { VListItemSubtitle } from "./VListItemSubtitle.mjs";
|
|
11
8
|
export { VListItemTitle } from "./VListItemTitle.mjs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["VList","VListGroup","VListImg","VListItem","VListItemAction","
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["VList","VListGroup","VListImg","VListItem","VListItemAction","VListItemMedia","VListItemSubtitle","VListItemTitle","VListSubheader"],"sources":["../../../src/components/VList/index.ts"],"sourcesContent":["export { VList } from './VList'\nexport { VListGroup } from './VListGroup'\nexport { VListImg } from './VListImg'\nexport { VListItem } from './VListItem'\nexport { VListItemAction } from './VListItemAction'\nexport { VListItemMedia } from './VListItemMedia'\nexport { VListItemSubtitle } from './VListItemSubtitle'\nexport { VListItemTitle } from './VListItemTitle'\nexport { VListSubheader } from './VListSubheader'\n"],"mappings":"SAASA,K;SACAC,U;SACAC,Q;SACAC,S;SACAC,e;SACAC,c;SACAC,iB;SACAC,c;SACAC,c"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createVNode as _createVNode } from "vue";
|
|
1
|
+
import { createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
|
|
2
2
|
// Styles
|
|
3
3
|
import "./VPagination.css"; // Components
|
|
4
4
|
|
|
@@ -26,6 +26,7 @@ import { createRange, defineComponent, keyValues, useRender } from "../../util/i
|
|
|
26
26
|
export const VPagination = defineComponent({
|
|
27
27
|
name: 'VPagination',
|
|
28
28
|
props: {
|
|
29
|
+
activeColor: String,
|
|
29
30
|
start: {
|
|
30
31
|
type: [Number, String],
|
|
31
32
|
default: 1
|
|
@@ -190,7 +191,8 @@ export const VPagination = defineComponent({
|
|
|
190
191
|
updateRef
|
|
191
192
|
} = useRefs();
|
|
192
193
|
provideDefaults({
|
|
193
|
-
|
|
194
|
+
VPaginationBtn: {
|
|
195
|
+
color: toRef(props, 'color'),
|
|
194
196
|
border: toRef(props, 'border'),
|
|
195
197
|
density: toRef(props, 'density'),
|
|
196
198
|
size: toRef(props, 'size'),
|
|
@@ -224,7 +226,7 @@ export const VPagination = defineComponent({
|
|
|
224
226
|
disabled: !!props.disabled || props.length < 2,
|
|
225
227
|
elevation: props.elevation,
|
|
226
228
|
rounded: props.rounded,
|
|
227
|
-
color: isActive ? props.
|
|
229
|
+
color: isActive ? props.activeColor : props.color,
|
|
228
230
|
ariaCurrent: isActive,
|
|
229
231
|
ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, index + 1),
|
|
230
232
|
onClick: e => setValue(e, item)
|
|
@@ -299,25 +301,37 @@ export const VPagination = defineComponent({
|
|
|
299
301
|
"key": "first",
|
|
300
302
|
"class": "v-pagination__first",
|
|
301
303
|
"data-test": "v-pagination-first"
|
|
302
|
-
}, [slots.first ? slots.first(controls.value.first) : _createVNode(VBtn,
|
|
304
|
+
}, [slots.first ? slots.first(controls.value.first) : _createVNode(VBtn, _mergeProps({
|
|
305
|
+
"_as": "VPaginationBtn"
|
|
306
|
+
}, controls.value.first), null)]), _createVNode("li", {
|
|
307
|
+
"key": "prev",
|
|
303
308
|
"class": "v-pagination__prev",
|
|
304
309
|
"data-test": "v-pagination-prev"
|
|
305
|
-
}, [slots.prev ? slots.prev(controls.value.prev) : _createVNode(VBtn,
|
|
306
|
-
"
|
|
310
|
+
}, [slots.prev ? slots.prev(controls.value.prev) : _createVNode(VBtn, _mergeProps({
|
|
311
|
+
"_as": "VPaginationBtn"
|
|
312
|
+
}, controls.value.prev), null)]), items.value.map((item, index) => _createVNode("li", {
|
|
313
|
+
"key": item.page,
|
|
307
314
|
"class": ['v-pagination__item', {
|
|
308
315
|
'v-pagination__item--is-active': item.isActive
|
|
309
316
|
}],
|
|
310
317
|
"data-test": "v-pagination-item"
|
|
311
|
-
}, [slots.item ? slots.item(item) : _createVNode(VBtn,
|
|
318
|
+
}, [slots.item ? slots.item(item) : _createVNode(VBtn, _mergeProps({
|
|
319
|
+
"_as": "VPaginationBtn"
|
|
320
|
+
}, item.props), {
|
|
312
321
|
default: () => [item.page]
|
|
313
322
|
})])), _createVNode("li", {
|
|
323
|
+
"key": "next",
|
|
314
324
|
"class": "v-pagination__next",
|
|
315
325
|
"data-test": "v-pagination-next"
|
|
316
|
-
}, [slots.next ? slots.next(controls.value.next) : _createVNode(VBtn,
|
|
326
|
+
}, [slots.next ? slots.next(controls.value.next) : _createVNode(VBtn, _mergeProps({
|
|
327
|
+
"_as": "VPaginationBtn"
|
|
328
|
+
}, controls.value.next), null)]), props.showFirstLastPage && _createVNode("li", {
|
|
317
329
|
"key": "last",
|
|
318
330
|
"class": "v-pagination__last",
|
|
319
331
|
"data-test": "v-pagination-last"
|
|
320
|
-
}, [slots.last ? slots.last(controls.value.last) : _createVNode(VBtn,
|
|
332
|
+
}, [slots.last ? slots.last(controls.value.last) : _createVNode(VBtn, _mergeProps({
|
|
333
|
+
"_as": "VPaginationBtn"
|
|
334
|
+
}, controls.value.last), null)])])]
|
|
321
335
|
}));
|
|
322
336
|
return {};
|
|
323
337
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VPagination.mjs","names":["VBtn","IconValue","makeBorderProps","makeDensityProps","makeElevationProps","makeRoundedProps","makeSizeProps","makeTagProps","makeThemeProps","provideTheme","makeVariantProps","provideDefaults","useLocale","useProxiedModel","useRefs","useResizeObserver","useRtl","computed","nextTick","ref","toRef","createRange","defineComponent","keyValues","useRender","VPagination","name","props","start","type","Number","String","default","modelValue","disabled","Boolean","length","validator","val","totalVisible","firstIcon","prevIcon","nextIcon","lastIcon","ariaLabel","pageAriaLabel","currentPageAriaLabel","firstAriaLabel","previousAriaLabel","nextAriaLabel","lastAriaLabel","ellipsis","showFirstLastPage","tag","variant","emits","value","first","prev","next","last","setup","slots","emit","page","t","n","isRtl","themeClasses","maxButtons","undefined","scoped","resizeRef","entries","target","contentRect","firstItem","querySelector","totalWidth","width","itemWidth","getBoundingClientRect","Math","max","floor","parseInt","min","range","even","middle","left","right","rangeLength","rangeStart","ceil","setValue","e","event","preventDefault","refs","updateRef","border","density","size","items","map","item","index","isActive","icon","elevation","rounded","color","ariaCurrent","onClick","controls","prevDisabled","nextDisabled","ariaDisabled","updateFocus","currentIndex","$el","focus","onKeydown","key"],"sources":["../../../src/components/VPagination/VPagination.tsx"],"sourcesContent":["// Styles\nimport './VPagination.sass'\n\n// Components\nimport { VBtn } from '../VBtn'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeBorderProps } from '@/composables/border'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRefs } from '@/composables/refs'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { useRtl } from '@/composables/rtl'\n\n// Utilities\nimport { computed, nextTick, ref, toRef } from 'vue'\nimport { createRange, defineComponent, keyValues, useRender } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance } from 'vue'\n\nexport const VPagination = defineComponent({\n name: 'VPagination',\n\n props: {\n start: {\n type: [Number, String],\n default: 1,\n },\n modelValue: {\n type: Number,\n default: (props: any) => props.start,\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: (val: number) => val % 1 === 0,\n },\n totalVisible: [Number, String],\n firstIcon: {\n type: IconValue,\n default: '$first',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n lastIcon: {\n type: IconValue,\n default: '$last',\n },\n ariaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.root',\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page',\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage',\n },\n firstAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.first',\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous',\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next',\n },\n lastAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.last',\n },\n ellipsis: {\n type: String,\n default: '...',\n },\n showFirstLastPage: Boolean,\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n },\n\n emits: {\n 'update:modelValue': (value: number) => true,\n first: (value: number) => true,\n prev: (value: number) => true,\n next: (value: number) => true,\n last: (value: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const page = useProxiedModel(props, 'modelValue')\n const { t, n } = useLocale()\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const maxButtons = ref(-1)\n\n provideDefaults(undefined, { scoped: true })\n\n const { resizeRef } = useResizeObserver((entries: ResizeObserverEntry[]) => {\n if (!entries.length) return\n\n const { target, contentRect } = entries[0]\n\n const firstItem = target.querySelector('.v-pagination__list > *')\n\n if (!firstItem) return\n\n const totalWidth = contentRect.width\n const itemWidth = firstItem.getBoundingClientRect().width + 10\n\n maxButtons.value = Math.max(0, Math.floor((totalWidth - 96) / itemWidth))\n })\n\n const length = computed(() => parseInt(props.length, 10))\n const start = computed(() => parseInt(props.start, 10))\n\n const totalVisible = computed(() => {\n if (props.totalVisible) return Math.min(parseInt(props.totalVisible ?? '', 10), length.value)\n else if (maxButtons.value >= 0) return maxButtons.value\n return length.value\n })\n\n const range = computed(() => {\n if (length.value <= 0) return []\n\n if (totalVisible.value <= 2) return [page.value]\n\n if (length.value <= totalVisible.value) {\n return createRange(length.value, start.value)\n }\n\n const even = totalVisible.value % 2 === 0\n const middle = even ? totalVisible.value / 2 : Math.floor(totalVisible.value / 2)\n const left = even ? middle : middle + 1\n const right = length.value - middle\n\n if (left - page.value >= 0) {\n return [...createRange(Math.max(1, totalVisible.value - 1), start.value), props.ellipsis, length.value]\n } else if (page.value - right >= 0) {\n const rangeLength = totalVisible.value - 1\n const rangeStart = length.value - rangeLength + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart)]\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3)\n const rangeStart = rangeLength === 1 ? page.value : page.value - Math.ceil(rangeLength / 2) + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart), props.ellipsis, length.value]\n }\n })\n\n // TODO: 'first' | 'prev' | 'next' | 'last' does not work here?\n function setValue (e: Event, value: number, event?: any) {\n e.preventDefault()\n page.value = value\n event && emit(event, value)\n }\n\n const { refs, updateRef } = useRefs<ComponentPublicInstance>()\n\n provideDefaults({\n VBtn: {\n border: toRef(props, 'border'),\n density: toRef(props, 'density'),\n size: toRef(props, 'size'),\n variant: toRef(props, 'variant'),\n },\n })\n\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = (e: any) => updateRef(e, index)\n\n if (typeof item === 'string') {\n return {\n isActive: false,\n page: item,\n props: {\n ref,\n ellipsis: true,\n icon: true,\n disabled: true,\n },\n }\n } else {\n const isActive = item === page.value\n return {\n isActive,\n page: n(item),\n props: {\n ref,\n ellipsis: false,\n icon: true,\n disabled: !!props.disabled || props.length < 2,\n elevation: props.elevation,\n rounded: props.rounded,\n color: isActive ? props.color : undefined,\n ariaCurrent: isActive,\n ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, index + 1),\n onClick: (e: Event) => setValue(e, item),\n },\n }\n }\n })\n })\n\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value\n const nextDisabled = !!props.disabled || page.value >= start.value + length.value - 1\n\n return {\n first: props.showFirstLastPage ? {\n icon: isRtl.value ? props.lastIcon : props.firstIcon,\n onClick: (e: Event) => setValue(e, start.value, 'first'),\n disabled: prevDisabled,\n ariaLabel: t(props.firstAriaLabel),\n ariaDisabled: prevDisabled,\n } : undefined,\n prev: {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n onClick: (e: Event) => setValue(e, page.value - 1, 'prev'),\n disabled: prevDisabled,\n ariaLabel: t(props.previousAriaLabel),\n ariaDisabled: prevDisabled,\n },\n next: {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n onClick: (e: Event) => setValue(e, page.value + 1, 'next'),\n disabled: nextDisabled,\n ariaLabel: t(props.nextAriaLabel),\n ariaDisabled: nextDisabled,\n },\n last: props.showFirstLastPage ? {\n icon: isRtl.value ? props.firstIcon : props.lastIcon,\n onClick: (e: Event) => setValue(e, start.value + length.value - 1, 'last'),\n disabled: nextDisabled,\n ariaLabel: t(props.lastAriaLabel),\n ariaDisabled: nextDisabled,\n } : undefined,\n }\n })\n\n function updateFocus () {\n const currentIndex = page.value - start.value\n refs.value[currentIndex]?.$el.focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key === keyValues.left && !props.disabled && page.value > props.start) {\n page.value = page.value - 1\n nextTick(updateFocus)\n } else if (e.key === keyValues.right && !props.disabled && page.value < start.value + length.value - 1) {\n page.value = page.value + 1\n nextTick(updateFocus)\n }\n }\n\n useRender(() => (\n <props.tag\n ref={ resizeRef }\n class={[\n 'v-pagination',\n themeClasses.value,\n ]}\n role=\"navigation\"\n aria-label={ t(props.ariaLabel) }\n onKeydown={ onKeydown }\n data-test=\"v-pagination-root\"\n >\n <ul class=\"v-pagination__list\">\n { props.showFirstLastPage && (\n <li key=\"first\" class=\"v-pagination__first\" data-test=\"v-pagination-first\">\n { slots.first ? slots.first(controls.value.first) : (\n <VBtn {...controls.value.first} />\n ) }\n </li>\n ) }\n\n <li class=\"v-pagination__prev\" data-test=\"v-pagination-prev\">\n { slots.prev ? slots.prev(controls.value.prev) : (\n <VBtn {...controls.value.prev} />\n ) }\n </li>\n\n { items.value.map((item, index) => (\n <li\n key={ `${index}_${item.page}` }\n class={[\n 'v-pagination__item',\n {\n 'v-pagination__item--is-active': item.isActive,\n },\n ]}\n data-test=\"v-pagination-item\"\n >\n { slots.item ? slots.item(item) : (\n <VBtn {...item.props}>{ item.page }</VBtn>\n ) }\n </li>\n )) }\n\n <li class=\"v-pagination__next\" data-test=\"v-pagination-next\">\n { slots.next ? slots.next(controls.value.next) : (\n <VBtn {...controls.value.next} />\n ) }\n </li>\n\n { props.showFirstLastPage && (\n <li key=\"last\" class=\"v-pagination__last\" data-test=\"v-pagination-last\">\n { slots.last ? slots.last(controls.value.last) : (\n <VBtn {...controls.value.last} />\n ) }\n </li>\n ) }\n </ul>\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VPagination = InstanceType<typeof VPagination>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VPagination.mjs","names":["VBtn","IconValue","makeBorderProps","makeDensityProps","makeElevationProps","makeRoundedProps","makeSizeProps","makeTagProps","makeThemeProps","provideTheme","makeVariantProps","provideDefaults","useLocale","useProxiedModel","useRefs","useResizeObserver","useRtl","computed","nextTick","ref","toRef","createRange","defineComponent","keyValues","useRender","VPagination","name","props","activeColor","String","start","type","Number","default","modelValue","disabled","Boolean","length","validator","val","totalVisible","firstIcon","prevIcon","nextIcon","lastIcon","ariaLabel","pageAriaLabel","currentPageAriaLabel","firstAriaLabel","previousAriaLabel","nextAriaLabel","lastAriaLabel","ellipsis","showFirstLastPage","tag","variant","emits","value","first","prev","next","last","setup","slots","emit","page","t","n","isRtl","themeClasses","maxButtons","undefined","scoped","resizeRef","entries","target","contentRect","firstItem","querySelector","totalWidth","width","itemWidth","getBoundingClientRect","Math","max","floor","parseInt","min","range","even","middle","left","right","rangeLength","rangeStart","ceil","setValue","e","event","preventDefault","refs","updateRef","VPaginationBtn","color","border","density","size","items","map","item","index","isActive","icon","elevation","rounded","ariaCurrent","onClick","controls","prevDisabled","nextDisabled","ariaDisabled","updateFocus","currentIndex","$el","focus","onKeydown","key"],"sources":["../../../src/components/VPagination/VPagination.tsx"],"sourcesContent":["// Styles\nimport './VPagination.sass'\n\n// Components\nimport { VBtn } from '../VBtn'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeBorderProps } from '@/composables/border'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRefs } from '@/composables/refs'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { useRtl } from '@/composables/rtl'\n\n// Utilities\nimport { computed, nextTick, ref, toRef } from 'vue'\nimport { createRange, defineComponent, keyValues, useRender } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance } from 'vue'\n\nexport const VPagination = defineComponent({\n name: 'VPagination',\n\n props: {\n activeColor: String,\n start: {\n type: [Number, String],\n default: 1,\n },\n modelValue: {\n type: Number,\n default: (props: any) => props.start,\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: (val: number) => val % 1 === 0,\n },\n totalVisible: [Number, String],\n firstIcon: {\n type: IconValue,\n default: '$first',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n lastIcon: {\n type: IconValue,\n default: '$last',\n },\n ariaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.root',\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page',\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage',\n },\n firstAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.first',\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous',\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next',\n },\n lastAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.last',\n },\n ellipsis: {\n type: String,\n default: '...',\n },\n showFirstLastPage: Boolean,\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n },\n\n emits: {\n 'update:modelValue': (value: number) => true,\n first: (value: number) => true,\n prev: (value: number) => true,\n next: (value: number) => true,\n last: (value: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const page = useProxiedModel(props, 'modelValue')\n const { t, n } = useLocale()\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const maxButtons = ref(-1)\n\n provideDefaults(undefined, { scoped: true })\n\n const { resizeRef } = useResizeObserver((entries: ResizeObserverEntry[]) => {\n if (!entries.length) return\n\n const { target, contentRect } = entries[0]\n\n const firstItem = target.querySelector('.v-pagination__list > *')\n\n if (!firstItem) return\n\n const totalWidth = contentRect.width\n const itemWidth = firstItem.getBoundingClientRect().width + 10\n\n maxButtons.value = Math.max(0, Math.floor((totalWidth - 96) / itemWidth))\n })\n\n const length = computed(() => parseInt(props.length, 10))\n const start = computed(() => parseInt(props.start, 10))\n\n const totalVisible = computed(() => {\n if (props.totalVisible) return Math.min(parseInt(props.totalVisible ?? '', 10), length.value)\n else if (maxButtons.value >= 0) return maxButtons.value\n return length.value\n })\n\n const range = computed(() => {\n if (length.value <= 0) return []\n\n if (totalVisible.value <= 2) return [page.value]\n\n if (length.value <= totalVisible.value) {\n return createRange(length.value, start.value)\n }\n\n const even = totalVisible.value % 2 === 0\n const middle = even ? totalVisible.value / 2 : Math.floor(totalVisible.value / 2)\n const left = even ? middle : middle + 1\n const right = length.value - middle\n\n if (left - page.value >= 0) {\n return [...createRange(Math.max(1, totalVisible.value - 1), start.value), props.ellipsis, length.value]\n } else if (page.value - right >= 0) {\n const rangeLength = totalVisible.value - 1\n const rangeStart = length.value - rangeLength + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart)]\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3)\n const rangeStart = rangeLength === 1 ? page.value : page.value - Math.ceil(rangeLength / 2) + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart), props.ellipsis, length.value]\n }\n })\n\n // TODO: 'first' | 'prev' | 'next' | 'last' does not work here?\n function setValue (e: Event, value: number, event?: any) {\n e.preventDefault()\n page.value = value\n event && emit(event, value)\n }\n\n const { refs, updateRef } = useRefs<ComponentPublicInstance>()\n\n provideDefaults({\n VPaginationBtn: {\n color: toRef(props, 'color'),\n border: toRef(props, 'border'),\n density: toRef(props, 'density'),\n size: toRef(props, 'size'),\n variant: toRef(props, 'variant'),\n },\n })\n\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = (e: any) => updateRef(e, index)\n\n if (typeof item === 'string') {\n return {\n isActive: false,\n page: item,\n props: {\n ref,\n ellipsis: true,\n icon: true,\n disabled: true,\n },\n }\n } else {\n const isActive = item === page.value\n return {\n isActive,\n page: n(item),\n props: {\n ref,\n ellipsis: false,\n icon: true,\n disabled: !!props.disabled || props.length < 2,\n elevation: props.elevation,\n rounded: props.rounded,\n color: isActive ? props.activeColor : props.color,\n ariaCurrent: isActive,\n ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, index + 1),\n onClick: (e: Event) => setValue(e, item),\n },\n }\n }\n })\n })\n\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value\n const nextDisabled = !!props.disabled || page.value >= start.value + length.value - 1\n\n return {\n first: props.showFirstLastPage ? {\n icon: isRtl.value ? props.lastIcon : props.firstIcon,\n onClick: (e: Event) => setValue(e, start.value, 'first'),\n disabled: prevDisabled,\n ariaLabel: t(props.firstAriaLabel),\n ariaDisabled: prevDisabled,\n } : undefined,\n prev: {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n onClick: (e: Event) => setValue(e, page.value - 1, 'prev'),\n disabled: prevDisabled,\n ariaLabel: t(props.previousAriaLabel),\n ariaDisabled: prevDisabled,\n },\n next: {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n onClick: (e: Event) => setValue(e, page.value + 1, 'next'),\n disabled: nextDisabled,\n ariaLabel: t(props.nextAriaLabel),\n ariaDisabled: nextDisabled,\n },\n last: props.showFirstLastPage ? {\n icon: isRtl.value ? props.firstIcon : props.lastIcon,\n onClick: (e: Event) => setValue(e, start.value + length.value - 1, 'last'),\n disabled: nextDisabled,\n ariaLabel: t(props.lastAriaLabel),\n ariaDisabled: nextDisabled,\n } : undefined,\n }\n })\n\n function updateFocus () {\n const currentIndex = page.value - start.value\n refs.value[currentIndex]?.$el.focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key === keyValues.left && !props.disabled && page.value > props.start) {\n page.value = page.value - 1\n nextTick(updateFocus)\n } else if (e.key === keyValues.right && !props.disabled && page.value < start.value + length.value - 1) {\n page.value = page.value + 1\n nextTick(updateFocus)\n }\n }\n\n useRender(() => (\n <props.tag\n ref={ resizeRef }\n class={[\n 'v-pagination',\n themeClasses.value,\n ]}\n role=\"navigation\"\n aria-label={ t(props.ariaLabel) }\n onKeydown={ onKeydown }\n data-test=\"v-pagination-root\"\n >\n <ul class=\"v-pagination__list\">\n { props.showFirstLastPage && (\n <li key=\"first\" class=\"v-pagination__first\" data-test=\"v-pagination-first\">\n { slots.first ? slots.first(controls.value.first) : (\n <VBtn _as=\"VPaginationBtn\" {...controls.value.first} />\n ) }\n </li>\n ) }\n\n <li key=\"prev\" class=\"v-pagination__prev\" data-test=\"v-pagination-prev\">\n { slots.prev ? slots.prev(controls.value.prev) : (\n <VBtn _as=\"VPaginationBtn\" {...controls.value.prev} />\n ) }\n </li>\n\n { items.value.map((item, index) => (\n <li\n key={ item.page }\n class={[\n 'v-pagination__item',\n {\n 'v-pagination__item--is-active': item.isActive,\n },\n ]}\n data-test=\"v-pagination-item\"\n >\n { slots.item ? slots.item(item) : (\n <VBtn _as=\"VPaginationBtn\" {...item.props}>{ item.page }</VBtn>\n ) }\n </li>\n )) }\n\n <li\n key=\"next\"\n class=\"v-pagination__next\"\n data-test=\"v-pagination-next\"\n >\n { slots.next ? slots.next(controls.value.next) : (\n <VBtn _as=\"VPaginationBtn\" {...controls.value.next} />\n ) }\n </li>\n\n { props.showFirstLastPage && (\n <li\n key=\"last\"\n class=\"v-pagination__last\"\n data-test=\"v-pagination-last\"\n >\n { slots.last ? slots.last(controls.value.last) : (\n <VBtn _as=\"VPaginationBtn\" {...controls.value.last} />\n ) }\n </li>\n ) }\n </ul>\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VPagination = InstanceType<typeof VPagination>\n"],"mappings":"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"}
|
|
@@ -152,7 +152,7 @@ export const VSelect = genericComponent()({
|
|
|
152
152
|
"onKeydown": onKeydown
|
|
153
153
|
}, { ...slots,
|
|
154
154
|
default: () => {
|
|
155
|
-
var _slots$noData, _slots$noData2;
|
|
155
|
+
var _slots$noData, _slots$noData2, _slots$prependItem, _slots$appendItem;
|
|
156
156
|
|
|
157
157
|
return _createVNode(_Fragment, null, [_createVNode(VMenu, _mergeProps({
|
|
158
158
|
"modelValue": menu.value,
|
|
@@ -171,7 +171,7 @@ export const VSelect = genericComponent()({
|
|
|
171
171
|
}, {
|
|
172
172
|
default: () => [!items.value.length && !props.hideNoData && ((_slots$noData = (_slots$noData2 = slots['no-data']) == null ? void 0 : _slots$noData2.call(slots)) != null ? _slots$noData : _createVNode(VListItem, {
|
|
173
173
|
"title": t(props.noDataText)
|
|
174
|
-
}, null)), items.value.map((item, index) => {
|
|
174
|
+
}, null)), (_slots$prependItem = slots['prepend-item']) == null ? void 0 : _slots$prependItem.call(slots), items.value.map((item, index) => {
|
|
175
175
|
var _slots$item, _slots$item2;
|
|
176
176
|
|
|
177
177
|
return (_slots$item = (_slots$item2 = slots.item) == null ? void 0 : _slots$item2.call(slots, {
|
|
@@ -189,13 +189,13 @@ export const VSelect = genericComponent()({
|
|
|
189
189
|
let {
|
|
190
190
|
isSelected
|
|
191
191
|
} = _ref2;
|
|
192
|
-
return props.multiple ? _createVNode(VCheckboxBtn, {
|
|
192
|
+
return props.multiple && !props.hideSelected ? _createVNode(VCheckboxBtn, {
|
|
193
193
|
"modelValue": isSelected,
|
|
194
194
|
"ripple": false
|
|
195
195
|
}, null) : undefined;
|
|
196
196
|
}
|
|
197
197
|
});
|
|
198
|
-
})]
|
|
198
|
+
}), (_slots$appendItem = slots['append-item']) == null ? void 0 : _slots$appendItem.call(slots)]
|
|
199
199
|
})]
|
|
200
200
|
}), selections.value.map((item, index) => {
|
|
201
201
|
function onChipClose(e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VSelect.mjs","names":["VDialogTransition","VCheckboxBtn","VChip","VDefaultsProvider","VList","VListItem","VMenu","VTextField","makeItemsProps","useItems","makeTransitionProps","useForwardRef","useLocale","useProxiedModel","IconValue","computed","mergeProps","ref","genericComponent","propsFactory","useRender","wrapInArray","makeSelectProps","chips","Boolean","closableChips","eager","hideNoData","hideSelected","menu","menuIcon","type","default","menuProps","Object","modelValue","multiple","noDataText","String","openOnClear","itemChildren","VSelect","name","props","transition","component","emits","val","setup","slots","t","vTextFieldRef","items","transformIn","transformOut","model","v","transformed","selections","value","map","find","item","selected","selection","onClear","e","onClickControl","length","onKeydown","includes","key","select","index","findIndex","splice","hasChips","chip","join","preventDefault","onClick","prepend","isSelected","undefined","onChipClose","stopPropagation","slotProps","closable","size","text","title"],"sources":["../../../src/components/VSelect/VSelect.tsx"],"sourcesContent":["// Styles\nimport './VSelect.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { makeItemsProps, useItems } from '@/composables/items'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { useForwardRef } from '@/composables/forwardRef'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { IconValue } from '@/composables/icons'\n\n// Utility\nimport { computed, mergeProps, ref } from 'vue'\nimport { genericComponent, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { InternalItem } from '@/composables/items'\nimport type { MakeSlots } from '@/util'\nimport type { PropType } from 'vue'\n\nexport const makeSelectProps = propsFactory({\n chips: Boolean,\n closableChips: Boolean,\n eager: Boolean,\n hideNoData: Boolean,\n hideSelected: Boolean,\n menu: Boolean,\n menuIcon: {\n type: IconValue,\n default: '$dropdown',\n },\n menuProps: {\n type: Object as PropType<VMenu['$props']>,\n },\n modelValue: {\n type: null,\n default: () => ([]),\n },\n multiple: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n openOnClear: Boolean,\n\n ...makeItemsProps({ itemChildren: false }),\n}, 'select')\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VSelect = genericComponent<new <\n T,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: Readonly<V>\n 'onUpdate:modelValue'?: (val: V) => void\n }\n $slots: VInputSlots & VFieldSlots & MakeSlots<{\n item: [{ item: T, index: number, props: Record<string, unknown> }]\n chip: [{ item: T, index: number, props: Record<string, unknown> }]\n selection: [{ item: T, index: number }]\n 'no-data': []\n }>\n}>()({\n name: 'VSelect',\n\n props: {\n ...makeSelectProps(),\n ...makeTransitionProps({ transition: { component: VDialogTransition } }),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const menu = useProxiedModel(props, 'menu')\n const { items, transformIn, transformOut } = useItems(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => item.value === v.value) || v\n })\n })\n const selected = computed(() => selections.value.map(selection => selection.props.value))\n\n function onClear (e: MouseEvent) {\n model.value = []\n\n if (props.openOnClear) {\n menu.value = true\n }\n }\n function onClickControl () {\n if (props.hideNoData && !items.value.length) return\n\n menu.value = true\n }\n function onKeydown (e: KeyboardEvent) {\n if (['Enter', 'ArrowDown', ' '].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape', 'Tab'].includes(e.key)) {\n menu.value = false\n }\n }\n function select (item: InternalItem) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => selection === item.value)\n\n if (index === -1) {\n model.value = [...model.value, item]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\n menu.value = false\n }\n }\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n modelValue={ model.value.map(v => v.props.value).join(', ') }\n onUpdate:modelValue={ v => { if (v == null) model.value = [] } }\n validationValue={ props.modelValue }\n class={[\n 'v-select',\n {\n 'v-select--active-menu': menu.value,\n 'v-select--chips': !!props.chips,\n [`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,\n },\n ]}\n appendInnerIcon={ props.menuIcon }\n readonly\n onClick:clear={ onClear }\n onClick:input={ onClickControl }\n onClick:control={ onClickControl }\n onBlur={ () => menu.value = false }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-select__content\"\n eager={ props.eager }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n { ...props.menuProps }\n >\n <VList\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n >\n { !items.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n )) }\n\n { items.value.map((item, index) => slots.item?.({\n item,\n index,\n props: mergeProps(item.props, { onClick: () => select(item) }),\n }) ?? (\n <VListItem\n key={ index }\n { ...item.props }\n onClick={ () => select(item) }\n >\n {{\n prepend: ({ isSelected }) => props.multiple ? (\n <VCheckboxBtn modelValue={ isSelected } ripple={ false } />\n ) : undefined,\n }}\n </VListItem>\n )) }\n </VList>\n </VMenu>\n\n { selections.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n }\n\n return (\n <div key={ index } class=\"v-select__selection\">\n { hasChips ? (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ item, index, props: slotProps })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) : (\n slots.selection\n ? slots.selection({ item, index })\n : (\n <span class=\"v-select__selection-text\">\n { item.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-select__selection-comma\">,</span>\n ) }\n </span>\n )\n )}\n </div>\n )\n }) }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return useForwardRef({\n menu,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VSelect = InstanceType<typeof VSelect>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VSelect.mjs","names":["VDialogTransition","VCheckboxBtn","VChip","VDefaultsProvider","VList","VListItem","VMenu","VTextField","makeItemsProps","useItems","makeTransitionProps","useForwardRef","useLocale","useProxiedModel","IconValue","computed","mergeProps","ref","genericComponent","propsFactory","useRender","wrapInArray","makeSelectProps","chips","Boolean","closableChips","eager","hideNoData","hideSelected","menu","menuIcon","type","default","menuProps","Object","modelValue","multiple","noDataText","String","openOnClear","itemChildren","VSelect","name","props","transition","component","emits","val","setup","slots","t","vTextFieldRef","items","transformIn","transformOut","model","v","transformed","selections","value","map","find","item","selected","selection","onClear","e","onClickControl","length","onKeydown","includes","key","select","index","findIndex","splice","hasChips","chip","join","preventDefault","onClick","prepend","isSelected","undefined","onChipClose","stopPropagation","slotProps","closable","size","text","title"],"sources":["../../../src/components/VSelect/VSelect.tsx"],"sourcesContent":["// Styles\nimport './VSelect.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { makeItemsProps, useItems } from '@/composables/items'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { useForwardRef } from '@/composables/forwardRef'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { IconValue } from '@/composables/icons'\n\n// Utility\nimport { computed, mergeProps, ref } from 'vue'\nimport { genericComponent, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { InternalItem } from '@/composables/items'\nimport type { MakeSlots } from '@/util'\nimport type { PropType } from 'vue'\n\nexport const makeSelectProps = propsFactory({\n chips: Boolean,\n closableChips: Boolean,\n eager: Boolean,\n hideNoData: Boolean,\n hideSelected: Boolean,\n menu: Boolean,\n menuIcon: {\n type: IconValue,\n default: '$dropdown',\n },\n menuProps: {\n type: Object as PropType<VMenu['$props']>,\n },\n modelValue: {\n type: null,\n default: () => ([]),\n },\n multiple: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n openOnClear: Boolean,\n\n ...makeItemsProps({ itemChildren: false }),\n}, 'select')\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VSelect = genericComponent<new <\n T,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: Readonly<V>\n 'onUpdate:modelValue'?: (val: V) => void\n }\n $slots: VInputSlots & VFieldSlots & MakeSlots<{\n item: [{ item: T, index: number, props: Record<string, unknown> }]\n chip: [{ item: T, index: number, props: Record<string, unknown> }]\n selection: [{ item: T, index: number }]\n 'no-data': []\n }>\n}>()({\n name: 'VSelect',\n\n props: {\n ...makeSelectProps(),\n ...makeTransitionProps({ transition: { component: VDialogTransition } }),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const menu = useProxiedModel(props, 'menu')\n const { items, transformIn, transformOut } = useItems(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => item.value === v.value) || v\n })\n })\n const selected = computed(() => selections.value.map(selection => selection.props.value))\n\n function onClear (e: MouseEvent) {\n model.value = []\n\n if (props.openOnClear) {\n menu.value = true\n }\n }\n function onClickControl () {\n if (props.hideNoData && !items.value.length) return\n\n menu.value = true\n }\n function onKeydown (e: KeyboardEvent) {\n if (['Enter', 'ArrowDown', ' '].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape', 'Tab'].includes(e.key)) {\n menu.value = false\n }\n }\n function select (item: InternalItem) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => selection === item.value)\n\n if (index === -1) {\n model.value = [...model.value, item]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\n menu.value = false\n }\n }\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n modelValue={ model.value.map(v => v.props.value).join(', ') }\n onUpdate:modelValue={ v => { if (v == null) model.value = [] } }\n validationValue={ props.modelValue }\n class={[\n 'v-select',\n {\n 'v-select--active-menu': menu.value,\n 'v-select--chips': !!props.chips,\n [`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,\n },\n ]}\n appendInnerIcon={ props.menuIcon }\n readonly\n onClick:clear={ onClear }\n onClick:input={ onClickControl }\n onClick:control={ onClickControl }\n onBlur={ () => menu.value = false }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-select__content\"\n eager={ props.eager }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n { ...props.menuProps }\n >\n <VList\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n >\n { !items.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n )) }\n\n { slots['prepend-item']?.() }\n\n { items.value.map((item, index) => slots.item?.({\n item,\n index,\n props: mergeProps(item.props, { onClick: () => select(item) }),\n }) ?? (\n <VListItem\n key={ index }\n { ...item.props }\n onClick={ () => select(item) }\n >\n {{\n prepend: ({ isSelected }) => props.multiple && !props.hideSelected ? (\n <VCheckboxBtn modelValue={ isSelected } ripple={ false } />\n ) : undefined,\n }}\n </VListItem>\n )) }\n\n { slots['append-item']?.() }\n </VList>\n </VMenu>\n\n { selections.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n }\n\n return (\n <div key={ index } class=\"v-select__selection\">\n { hasChips ? (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ item, index, props: slotProps })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) : (\n slots.selection\n ? slots.selection({ item, index })\n : (\n <span class=\"v-select__selection-text\">\n { item.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-select__selection-comma\">,</span>\n ) }\n </span>\n )\n )}\n </div>\n )\n }) }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return useForwardRef({\n menu,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VSelect = InstanceType<typeof VSelect>\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VSlideGroupItem.mjs","names":["makeGroupItemProps","useGroupItem","defineComponent","VSlideGroupSymbol","VSlideGroupItem","name","props","setup","slots","slideGroupItem","default","isSelected","value","select","toggle","selectedClass"],"sources":["../../../src/components/VSlideGroup/VSlideGroupItem.tsx"],"sourcesContent":["// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\n// Types\nimport { VSlideGroupSymbol } from './VSlideGroup'\n\nexport const VSlideGroupItem = defineComponent({\n name: 'VSlideGroupItem',\n\n props: {\n ...makeGroupItemProps(),\n },\n\n setup (props, { slots }) {\n const slideGroupItem = useGroupItem(props, VSlideGroupSymbol)\n\n return () => slots.default?.({\n isSelected: slideGroupItem.isSelected.value,\n select: slideGroupItem.select,\n toggle: slideGroupItem.toggle,\n selectedClass: slideGroupItem.selectedClass.value,\n })\n },\n})\n"],"mappings":"AAAA;SACSA,kB,EAAoBC,Y,uCAE7B;;SACSC,e,gCAET;;SACSC,iB;AAET,OAAO,MAAMC,eAAe,GAAGF,eAAe,CAAC;EAC7CG,IAAI,EAAE,iBADuC;EAG7CC,KAAK,EAAE,EACL,GAAGN,kBAAkB;EADhB,CAHsC
|
|
1
|
+
{"version":3,"file":"VSlideGroupItem.mjs","names":["makeGroupItemProps","useGroupItem","defineComponent","VSlideGroupSymbol","VSlideGroupItem","name","props","emits","val","setup","slots","slideGroupItem","default","isSelected","value","select","toggle","selectedClass"],"sources":["../../../src/components/VSlideGroup/VSlideGroupItem.tsx"],"sourcesContent":["// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\n// Types\nimport { VSlideGroupSymbol } from './VSlideGroup'\n\nexport const VSlideGroupItem = defineComponent({\n name: 'VSlideGroupItem',\n\n props: {\n ...makeGroupItemProps(),\n },\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const slideGroupItem = useGroupItem(props, VSlideGroupSymbol)\n\n return () => slots.default?.({\n isSelected: slideGroupItem.isSelected.value,\n select: slideGroupItem.select,\n toggle: slideGroupItem.toggle,\n selectedClass: slideGroupItem.selectedClass.value,\n })\n },\n})\n"],"mappings":"AAAA;SACSA,kB,EAAoBC,Y,uCAE7B;;SACSC,e,gCAET;;SACSC,iB;AAET,OAAO,MAAMC,eAAe,GAAGF,eAAe,CAAC;EAC7CG,IAAI,EAAE,iBADuC;EAG7CC,KAAK,EAAE,EACL,GAAGN,kBAAkB;EADhB,CAHsC;EAO7CO,KAAK,EAAE;IACL,kBAAmBC,GAAD,IAA6B;EAD1C,CAPsC;;EAW7CC,KAAK,CAAEH,KAAF,QAAoB;IAAA,IAAX;MAAEI;IAAF,CAAW;IACvB,MAAMC,cAAc,GAAGV,YAAY,CAACK,KAAD,EAAQH,iBAAR,CAAnC;IAEA,OAAO;MAAA;;MAAA,yBAAMO,KAAK,CAACE,OAAZ,qBAAM,oBAAAF,KAAK,EAAW;QAC3BG,UAAU,EAAEF,cAAc,CAACE,UAAf,CAA0BC,KADX;QAE3BC,MAAM,EAAEJ,cAAc,CAACI,MAFI;QAG3BC,MAAM,EAAEL,cAAc,CAACK,MAHI;QAI3BC,aAAa,EAAEN,cAAc,CAACM,aAAf,CAA6BH;MAJjB,CAAX,CAAX;IAAA,CAAP;EAMD;;AApB4C,CAAD,CAAvC"}
|
|
@@ -11,10 +11,11 @@ import { makePositionProps, usePosition } from "../../composables/position.mjs";
|
|
|
11
11
|
import { makeRoundedProps, useRounded } from "../../composables/rounded.mjs";
|
|
12
12
|
import { makeTransitionProps } from "../../composables/transition.mjs";
|
|
13
13
|
import { useProxiedModel } from "../../composables/proxiedModel.mjs";
|
|
14
|
-
import { useScopeId } from "../../composables/scopeId.mjs";
|
|
14
|
+
import { useScopeId } from "../../composables/scopeId.mjs";
|
|
15
|
+
import { useForwardRef } from "../../composables/forwardRef.mjs"; // Utilities
|
|
15
16
|
|
|
17
|
+
import { onMounted, ref, watch } from 'vue';
|
|
16
18
|
import { defineComponent, useRender } from "../../util/index.mjs";
|
|
17
|
-
import { onMounted, watch } from 'vue';
|
|
18
19
|
export const VSnackbar = defineComponent({
|
|
19
20
|
name: 'VSnackbar',
|
|
20
21
|
props: {
|
|
@@ -66,6 +67,7 @@ export const VSnackbar = defineComponent({
|
|
|
66
67
|
const {
|
|
67
68
|
roundedClasses
|
|
68
69
|
} = useRounded(props);
|
|
70
|
+
const overlay = ref();
|
|
69
71
|
watch(isActive, startTimeout);
|
|
70
72
|
watch(() => props.timeout, startTimeout);
|
|
71
73
|
onMounted(() => {
|
|
@@ -89,6 +91,7 @@ export const VSnackbar = defineComponent({
|
|
|
89
91
|
useRender(() => _createVNode(VOverlay, _mergeProps({
|
|
90
92
|
"modelValue": isActive.value,
|
|
91
93
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
94
|
+
"ref": overlay,
|
|
92
95
|
"class": ['v-snackbar', {
|
|
93
96
|
'v-snackbar--active': isActive.value,
|
|
94
97
|
'v-snackbar--multi-line': props.multiLine && !props.vertical,
|
|
@@ -126,6 +129,7 @@ export const VSnackbar = defineComponent({
|
|
|
126
129
|
})])],
|
|
127
130
|
activator: slots.activator
|
|
128
131
|
}));
|
|
132
|
+
return useForwardRef({}, overlay);
|
|
129
133
|
}
|
|
130
134
|
|
|
131
135
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VSnackbar.mjs","names":["VDefaultsProvider","VOverlay","genOverlays","makeVariantProps","useVariant","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeTransitionProps","useProxiedModel","useScopeId","
|
|
1
|
+
{"version":3,"file":"VSnackbar.mjs","names":["VDefaultsProvider","VOverlay","genOverlays","makeVariantProps","useVariant","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeTransitionProps","useProxiedModel","useScopeId","useForwardRef","onMounted","ref","watch","defineComponent","useRender","VSnackbar","name","props","app","Boolean","contentClass","type","String","default","multiLine","timeout","Number","vertical","modelValue","location","transition","emits","v","setup","slots","isActive","locationStyles","positionClasses","scopeId","colorClasses","colorStyles","variantClasses","roundedClasses","overlay","startTimeout","value","activeTimeout","window","clearTimeout","setTimeout","onPointerenter","style","actions","VBtn","variant","ripple","activator"],"sources":["../../../src/components/VSnackbar/VSnackbar.tsx"],"sourcesContent":["// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\nimport { useForwardRef } from '@/composables/forwardRef'\n\n// Utilities\nimport { onMounted, ref, watch } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\nexport const VSnackbar = defineComponent({\n name: 'VSnackbar',\n\n props: {\n app: Boolean,\n contentClass: {\n type: String,\n default: '',\n },\n multiLine: Boolean,\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n vertical: Boolean,\n\n modelValue: Boolean,\n\n ...makeLocationProps({ location: 'bottom' } as const),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...makeTransitionProps({ transition: 'v-snackbar-transition' }),\n },\n\n emits: {\n 'update:modelValue': (v: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { scopeId } = useScopeId()\n\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { roundedClasses } = useRounded(props)\n\n const overlay = ref<VOverlay>()\n\n watch(isActive, startTimeout)\n watch(() => props.timeout, startTimeout)\n\n onMounted(() => {\n if (isActive.value) startTimeout()\n })\n\n let activeTimeout = -1\n function startTimeout () {\n window.clearTimeout(activeTimeout)\n const timeout = Number(props.timeout)\n\n if (!isActive.value || timeout === -1) return\n\n activeTimeout = window.setTimeout(() => {\n isActive.value = false\n }, timeout)\n }\n\n function onPointerenter () {\n window.clearTimeout(activeTimeout)\n }\n\n useRender(() => (\n <VOverlay\n v-model={ isActive.value }\n ref={ overlay }\n class={[\n 'v-snackbar',\n {\n 'v-snackbar--active': isActive.value,\n 'v-snackbar--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--vertical': props.vertical,\n },\n positionClasses.value,\n ]}\n style={[colorStyles.value]}\n contentProps={{\n style: locationStyles.value,\n }}\n persistent\n noClickAnimation\n scrim={ false }\n scrollStrategy=\"none\"\n transition={ props.transition }\n { ...scopeId }\n v-slots={{ activator: slots.activator }}\n >\n <div\n class={[\n 'v-snackbar__wrapper',\n colorClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ]}\n onPointerenter={ onPointerenter }\n onPointerleave={ startTimeout }\n >\n { genOverlays(false, 'v-snackbar') }\n\n { slots.default && (\n <div\n class={[\n 'v-snackbar__content',\n props.contentClass,\n ]}\n role=\"status\"\n aria-live=\"polite\"\n >\n { slots.default() }\n </div>\n ) }\n\n { slots.actions && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n variant: 'text',\n ripple: false,\n },\n }}\n >\n <div class=\"v-snackbar__actions\">\n { slots.actions() }\n </div>\n </VDefaultsProvider>\n ) }\n </div>\n </VOverlay>\n ))\n\n return useForwardRef({}, overlay)\n },\n})\n\nexport type VSnackbar = InstanceType<typeof VSnackbar>\n"],"mappings":"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"}
|
|
@@ -44,6 +44,13 @@
|
|
|
44
44
|
.v-switch--inset .v-switch__thumb {
|
|
45
45
|
box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
|
|
46
46
|
}
|
|
47
|
+
.v-switch:not(.v-switch--loading) .v-icon ~ .v-switch__thumb {
|
|
48
|
+
display: none;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.v-switch--loading .v-selection-control__input > .v-icon {
|
|
52
|
+
display: none;
|
|
53
|
+
}
|
|
47
54
|
|
|
48
55
|
.v-switch .v-selection-control {
|
|
49
56
|
height: var(--v-input-control-height);
|
|
@@ -46,6 +46,12 @@
|
|
|
46
46
|
.v-switch--inset &
|
|
47
47
|
@include tools.elevation(0)
|
|
48
48
|
|
|
49
|
+
.v-switch:not(.v-switch--loading) .v-icon ~ &
|
|
50
|
+
display: none
|
|
51
|
+
|
|
52
|
+
.v-switch--loading .v-selection-control__input > .v-icon
|
|
53
|
+
display: none
|
|
54
|
+
|
|
49
55
|
.v-switch
|
|
50
56
|
$switch-thumb-transform: $switch-track-width * .5 - $switch-thumb-width * .5 + $switch-thumb-offset
|
|
51
57
|
|
|
@@ -44,7 +44,7 @@ export const VSystemBar = defineComponent({
|
|
|
44
44
|
const height = computed(() => {
|
|
45
45
|
var _props$height;
|
|
46
46
|
|
|
47
|
-
return (
|
|
47
|
+
return (_props$height = props.height) != null ? _props$height : props.window ? 32 : 24;
|
|
48
48
|
});
|
|
49
49
|
const {
|
|
50
50
|
layoutItemStyles
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VSystemBar.mjs","names":["makeElevationProps","useElevation","makeLayoutItemProps","useLayoutItem","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","useBackgroundColor","computed","ref","toRef","defineComponent","useRender","VSystemBar","name","props","color","String","height","Number","window","Boolean","setup","slots","themeClasses","backgroundColorClasses","backgroundColorStyles","elevationClasses","roundedClasses","layoutItemStyles","id","order","parseInt","position","layoutSize","elementSize","active","absolute","value"],"sources":["../../../src/components/VSystemBar/VSystemBar.tsx"],"sourcesContent":["// Styles\nimport './VSystemBar.sass'\n\n// Composables\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref, toRef } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\nexport const VSystemBar = defineComponent({\n name: 'VSystemBar',\n\n props: {\n color: String,\n height: [Number, String],\n window: Boolean,\n\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const height = computed(() => props.height ?? props.window ? 32 : 24)\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: ref('top'),\n layoutSize: height,\n elementSize: height,\n active: computed(() => true),\n absolute: toRef(props, 'absolute'),\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-system-bar',\n { 'v-system-bar--window': props.window },\n themeClasses.value,\n backgroundColorClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutItemStyles.value,\n ]}\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n"],"mappings":";AAAA;AACA,0B,CAEA;;SACSA,kB,EAAoBC,Y;SACpBC,mB,EAAqBC,a;SACrBC,gB,EAAkBC,U;SAClBC,Y;SACAC,c,EAAgBC,Y;SAChBC,kB,uCAET;;AACA,SAASC,QAAT,EAAmBC,GAAnB,EAAwBC,KAAxB,QAAqC,KAArC;SACSC,e,EAAiBC,S;AAE1B,OAAO,MAAMC,UAAU,GAAGF,eAAe,CAAC;EACxCG,IAAI,EAAE,YADkC;EAGxCC,KAAK,EAAE;IACLC,KAAK,EAAEC,MADF;IAELC,MAAM,EAAE,CAACC,MAAD,EAASF,MAAT,CAFH;IAGLG,MAAM,EAAEC,OAHH;IAKL,GAAGvB,kBAAkB,EALhB;IAML,GAAGE,mBAAmB,EANjB;IAOL,GAAGE,gBAAgB,EAPd;IAQL,GAAGE,YAAY,EARV;IASL,GAAGC,cAAc;EATZ,CAHiC;;EAexCiB,KAAK,CAAEP,KAAF,QAAoB;IAAA,IAAX;MAAEQ;IAAF,CAAW;IACvB,MAAM;MAAEC;IAAF,IAAmBlB,YAAY,CAACS,KAAD,CAArC;IACA,MAAM;MAAEU,sBAAF;MAA0BC;IAA1B,IAAoDnB,kBAAkB,CAACG,KAAK,CAACK,KAAD,EAAQ,OAAR,CAAN,CAA5E;IACA,MAAM;MAAEY;IAAF,IAAuB5B,YAAY,CAACgB,KAAD,CAAzC;IACA,MAAM;MAAEa;IAAF,IAAqBzB,UAAU,CAACY,KAAD,CAArC;IACA,MAAMG,MAAM,GAAGV,QAAQ,CAAC;MAAA;;MAAA,
|
|
1
|
+
{"version":3,"file":"VSystemBar.mjs","names":["makeElevationProps","useElevation","makeLayoutItemProps","useLayoutItem","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","useBackgroundColor","computed","ref","toRef","defineComponent","useRender","VSystemBar","name","props","color","String","height","Number","window","Boolean","setup","slots","themeClasses","backgroundColorClasses","backgroundColorStyles","elevationClasses","roundedClasses","layoutItemStyles","id","order","parseInt","position","layoutSize","elementSize","active","absolute","value"],"sources":["../../../src/components/VSystemBar/VSystemBar.tsx"],"sourcesContent":["// Styles\nimport './VSystemBar.sass'\n\n// Composables\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref, toRef } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\nexport const VSystemBar = defineComponent({\n name: 'VSystemBar',\n\n props: {\n color: String,\n height: [Number, String],\n window: Boolean,\n\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const height = computed(() => props.height ?? (props.window ? 32 : 24))\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: ref('top'),\n layoutSize: height,\n elementSize: height,\n active: computed(() => true),\n absolute: toRef(props, 'absolute'),\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-system-bar',\n { 'v-system-bar--window': props.window },\n themeClasses.value,\n backgroundColorClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutItemStyles.value,\n ]}\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n"],"mappings":";AAAA;AACA,0B,CAEA;;SACSA,kB,EAAoBC,Y;SACpBC,mB,EAAqBC,a;SACrBC,gB,EAAkBC,U;SAClBC,Y;SACAC,c,EAAgBC,Y;SAChBC,kB,uCAET;;AACA,SAASC,QAAT,EAAmBC,GAAnB,EAAwBC,KAAxB,QAAqC,KAArC;SACSC,e,EAAiBC,S;AAE1B,OAAO,MAAMC,UAAU,GAAGF,eAAe,CAAC;EACxCG,IAAI,EAAE,YADkC;EAGxCC,KAAK,EAAE;IACLC,KAAK,EAAEC,MADF;IAELC,MAAM,EAAE,CAACC,MAAD,EAASF,MAAT,CAFH;IAGLG,MAAM,EAAEC,OAHH;IAKL,GAAGvB,kBAAkB,EALhB;IAML,GAAGE,mBAAmB,EANjB;IAOL,GAAGE,gBAAgB,EAPd;IAQL,GAAGE,YAAY,EARV;IASL,GAAGC,cAAc;EATZ,CAHiC;;EAexCiB,KAAK,CAAEP,KAAF,QAAoB;IAAA,IAAX;MAAEQ;IAAF,CAAW;IACvB,MAAM;MAAEC;IAAF,IAAmBlB,YAAY,CAACS,KAAD,CAArC;IACA,MAAM;MAAEU,sBAAF;MAA0BC;IAA1B,IAAoDnB,kBAAkB,CAACG,KAAK,CAACK,KAAD,EAAQ,OAAR,CAAN,CAA5E;IACA,MAAM;MAAEY;IAAF,IAAuB5B,YAAY,CAACgB,KAAD,CAAzC;IACA,MAAM;MAAEa;IAAF,IAAqBzB,UAAU,CAACY,KAAD,CAArC;IACA,MAAMG,MAAM,GAAGV,QAAQ,CAAC;MAAA;;MAAA,wBAAMO,KAAK,CAACG,MAAZ,4BAAuBH,KAAK,CAACK,MAAN,GAAe,EAAf,GAAoB,EAA3C;IAAA,CAAD,CAAvB;IACA,MAAM;MAAES;IAAF,IAAuB5B,aAAa,CAAC;MACzC6B,EAAE,EAAEf,KAAK,CAACD,IAD+B;MAEzCiB,KAAK,EAAEvB,QAAQ,CAAC,MAAMwB,QAAQ,CAACjB,KAAK,CAACgB,KAAP,EAAc,EAAd,CAAf,CAF0B;MAGzCE,QAAQ,EAAExB,GAAG,CAAC,KAAD,CAH4B;MAIzCyB,UAAU,EAAEhB,MAJ6B;MAKzCiB,WAAW,EAAEjB,MAL4B;MAMzCkB,MAAM,EAAE5B,QAAQ,CAAC,MAAM,IAAP,CANyB;MAOzC6B,QAAQ,EAAE3B,KAAK,CAACK,KAAD,EAAQ,UAAR;IAP0B,CAAD,CAA1C;IAUAH,SAAS,CAAC;MAAA,SAEC,CACL,cADK,EAEL;QAAE,wBAAwBG,KAAK,CAACK;MAAhC,CAFK,EAGLI,YAAY,CAACc,KAHR,EAILb,sBAAsB,CAACa,KAJlB,EAKLX,gBAAgB,CAACW,KALZ,EAMLV,cAAc,CAACU,KANV,CAFD;MAAA,SAUC,CACLZ,qBAAqB,CAACY,KADjB,EAELT,gBAAgB,CAACS,KAFZ;IAVD,GAcIf,KAdJ,CAAD,CAAT;IAkBA,OAAO,EAAP;EACD;;AAlDuC,CAAD,CAAlC"}
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
.v-table.v-table--fixed-header thead th {
|
|
23
23
|
background: rgb(var(--v-theme-surface));
|
|
24
24
|
box-shadow: inset 0 -1px 0 rgba(var(--v-border-color), var(--v-border-opacity));
|
|
25
|
+
z-index: 1;
|
|
25
26
|
}
|
|
26
27
|
.v-table.v-table--fixed-footer tfoot th,
|
|
27
28
|
.v-table.v-table--fixed-footer tfoot td {
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
.v-tab {
|
|
2
|
-
--v-btn-height: var(--v-tabs-height);
|
|
3
2
|
display: inline-flex;
|
|
4
3
|
position: relative;
|
|
5
4
|
max-width: 360px;
|
|
6
5
|
min-width: 90px;
|
|
7
6
|
}
|
|
7
|
+
.v-tab.v-tab.v-tab {
|
|
8
|
+
height: var(--v-tabs-height);
|
|
9
|
+
}
|
|
8
10
|
.v-slide-group--vertical .v-tab {
|
|
9
11
|
justify-content: start;
|
|
10
12
|
}
|