@vuetify/nightly 4.0.0-dev-20230421.0 → 4.0.0-dev-20230426.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 +3 -2
- package/dist/_component-variables-labs.sass +1 -0
- package/dist/json/attributes.json +56 -4
- package/dist/json/importMap-labs.json +4 -0
- package/dist/json/importMap.json +40 -40
- package/dist/json/tags.json +18 -0
- package/dist/json/web-types.json +237 -10
- package/dist/vuetify-labs.css +1500 -1475
- package/dist/vuetify-labs.d.ts +343 -0
- package/dist/vuetify-labs.esm.js +221 -10
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +221 -10
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +9 -9
- package/dist/vuetify.d.ts +10 -10
- package/dist/vuetify.esm.js +15 -10
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +15 -10
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +719 -719
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VSlider/slider.mjs +2 -5
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/composables/intersectionObserver.mjs +2 -2
- package/lib/composables/intersectionObserver.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.ts +10 -10
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.css +26 -0
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs +215 -0
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -0
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.sass +25 -0
- package/lib/labs/VInfiniteScroll/_variables.scss +3 -0
- package/lib/labs/VInfiniteScroll/index.d.ts +349 -0
- package/lib/labs/VInfiniteScroll/index.mjs +2 -0
- package/lib/labs/VInfiniteScroll/index.mjs.map +1 -0
- package/lib/labs/components.d.ts +343 -2
- package/lib/labs/components.mjs +1 -0
- package/lib/labs/components.mjs.map +1 -1
- package/lib/locale/af.mjs +5 -1
- package/lib/locale/af.mjs.map +1 -1
- package/lib/locale/ar.mjs +5 -1
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/az.mjs +5 -1
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/bg.mjs +5 -1
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/ca.mjs +5 -1
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/locale/ckb.mjs +5 -1
- package/lib/locale/ckb.mjs.map +1 -1
- package/lib/locale/cs.mjs +5 -1
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/da.mjs +5 -1
- package/lib/locale/da.mjs.map +1 -1
- package/lib/locale/de.mjs +5 -1
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/el.mjs +5 -1
- package/lib/locale/el.mjs.map +1 -1
- package/lib/locale/en.mjs +5 -1
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +5 -1
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/et.mjs +5 -1
- package/lib/locale/et.mjs.map +1 -1
- package/lib/locale/fa.mjs +5 -1
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/fi.mjs +5 -1
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/fr.mjs +5 -1
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/he.mjs +5 -1
- package/lib/locale/he.mjs.map +1 -1
- package/lib/locale/hr.mjs +5 -1
- package/lib/locale/hr.mjs.map +1 -1
- package/lib/locale/hu.mjs +5 -1
- package/lib/locale/hu.mjs.map +1 -1
- package/lib/locale/id.mjs +5 -1
- package/lib/locale/id.mjs.map +1 -1
- package/lib/locale/index.d.ts +168 -0
- package/lib/locale/it.mjs +5 -1
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/ja.mjs +5 -1
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/locale/ko.mjs +5 -1
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs +5 -1
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs +5 -1
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs +5 -1
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs +5 -1
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs +5 -1
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs +5 -1
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs +5 -1
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs +5 -1
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs +5 -1
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs +5 -1
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs +5 -1
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs +5 -1
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs +5 -1
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs +5 -1
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs +5 -1
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs +5 -1
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs +5 -1
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs +5 -1
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs +5 -1
- package/lib/locale/zh-Hant.mjs.map +1 -1
- package/package.json +1 -1
package/dist/vuetify-labs.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v4.0.0-dev-
|
2
|
+
* Vuetify v4.0.0-dev-20230426.0
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -207,6 +207,10 @@
|
|
207
207
|
let max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
208
208
|
return Math.max(min, Math.min(max, value));
|
209
209
|
}
|
210
|
+
function getDecimals(value) {
|
211
|
+
const trimmedStr = value.toString().trim();
|
212
|
+
return trimmedStr.includes('.') ? trimmedStr.length - trimmedStr.indexOf('.') - 1 : 0;
|
213
|
+
}
|
210
214
|
function padEnd(str, length) {
|
211
215
|
let char = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';
|
212
216
|
return str + char.repeat(Math.max(0, length - str.length));
|
@@ -1935,7 +1939,11 @@
|
|
1935
1939
|
item: 'Rating {0} of {1}'
|
1936
1940
|
}
|
1937
1941
|
},
|
1938
|
-
loading: 'Loading...'
|
1942
|
+
loading: 'Loading...',
|
1943
|
+
infiniteScroll: {
|
1944
|
+
loadMore: 'Load more',
|
1945
|
+
empty: 'No more'
|
1946
|
+
}
|
1939
1947
|
};
|
1940
1948
|
|
1941
1949
|
const LANG_PREFIX = '$vuetify.';
|
@@ -4135,14 +4143,14 @@
|
|
4135
4143
|
});
|
4136
4144
|
|
4137
4145
|
// Utilities
|
4138
|
-
function useIntersectionObserver(callback) {
|
4146
|
+
function useIntersectionObserver(callback, options) {
|
4139
4147
|
const intersectionRef = vue.ref();
|
4140
4148
|
const isIntersecting = vue.ref(false);
|
4141
4149
|
if (SUPPORTS_INTERSECTION) {
|
4142
4150
|
const observer = new IntersectionObserver(entries => {
|
4143
4151
|
callback?.(entries, observer);
|
4144
4152
|
isIntersecting.value = !!entries.find(entry => entry.isIntersecting);
|
4145
|
-
});
|
4153
|
+
}, options);
|
4146
4154
|
vue.onBeforeUnmount(() => {
|
4147
4155
|
observer.disconnect();
|
4148
4156
|
});
|
@@ -12618,10 +12626,7 @@
|
|
12618
12626
|
const min = vue.computed(() => parseFloat(props.min));
|
12619
12627
|
const max = vue.computed(() => parseFloat(props.max));
|
12620
12628
|
const step = vue.computed(() => +props.step > 0 ? parseFloat(props.step) : 0);
|
12621
|
-
const decimals = vue.computed(() =>
|
12622
|
-
const trimmedStep = step.value.toString().trim();
|
12623
|
-
return trimmedStep.includes('.') ? trimmedStep.length - trimmedStep.indexOf('.') - 1 : 0;
|
12624
|
-
});
|
12629
|
+
const decimals = vue.computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)));
|
12625
12630
|
function roundValue(value) {
|
12626
12631
|
if (step.value <= 0) return value;
|
12627
12632
|
const clamped = clamp(value, min.value, max.value);
|
@@ -20640,6 +20645,211 @@
|
|
20640
20645
|
|
20641
20646
|
// Types
|
20642
20647
|
|
20648
|
+
const VInfiniteScrollIntersect = defineComponent({
|
20649
|
+
name: 'VInfiniteScrollIntersect',
|
20650
|
+
props: {
|
20651
|
+
side: {
|
20652
|
+
type: String,
|
20653
|
+
required: true
|
20654
|
+
},
|
20655
|
+
rootRef: null,
|
20656
|
+
rootMargin: String
|
20657
|
+
},
|
20658
|
+
emits: {
|
20659
|
+
intersect: side => true
|
20660
|
+
},
|
20661
|
+
setup(props, _ref) {
|
20662
|
+
let {
|
20663
|
+
emit
|
20664
|
+
} = _ref;
|
20665
|
+
const {
|
20666
|
+
intersectionRef,
|
20667
|
+
isIntersecting
|
20668
|
+
} = useIntersectionObserver(entries => {}, props.rootMargin ? {
|
20669
|
+
root: props.rootRef,
|
20670
|
+
rootMargin: props.rootMargin
|
20671
|
+
} : undefined);
|
20672
|
+
vue.watch(isIntersecting, async val => {
|
20673
|
+
if (val) emit('intersect', props.side);
|
20674
|
+
});
|
20675
|
+
useRender(() => vue.createVNode("div", {
|
20676
|
+
"class": "v-infinite-scroll-intersect",
|
20677
|
+
"ref": intersectionRef
|
20678
|
+
}, [vue.createTextVNode("\xA0")]));
|
20679
|
+
return {};
|
20680
|
+
}
|
20681
|
+
});
|
20682
|
+
const VInfiniteScroll = genericComponent()({
|
20683
|
+
name: 'VInfiniteScroll',
|
20684
|
+
props: {
|
20685
|
+
color: String,
|
20686
|
+
direction: {
|
20687
|
+
type: String,
|
20688
|
+
default: 'vertical',
|
20689
|
+
validator: v => ['vertical', 'horizontal'].includes(v)
|
20690
|
+
},
|
20691
|
+
side: {
|
20692
|
+
type: String,
|
20693
|
+
default: 'end',
|
20694
|
+
validator: v => ['start', 'end', 'both'].includes(v)
|
20695
|
+
},
|
20696
|
+
mode: {
|
20697
|
+
type: String,
|
20698
|
+
default: 'intersect',
|
20699
|
+
validator: v => ['intersect', 'manual'].includes(v)
|
20700
|
+
},
|
20701
|
+
margin: [Number, String],
|
20702
|
+
loadMoreText: {
|
20703
|
+
type: String,
|
20704
|
+
default: '$vuetify.infiniteScroll.loadMore'
|
20705
|
+
},
|
20706
|
+
emptyText: {
|
20707
|
+
type: String,
|
20708
|
+
default: '$vuetify.infiniteScroll.empty'
|
20709
|
+
},
|
20710
|
+
...makeDimensionProps()
|
20711
|
+
},
|
20712
|
+
emits: {
|
20713
|
+
load: options => true
|
20714
|
+
},
|
20715
|
+
setup(props, _ref2) {
|
20716
|
+
let {
|
20717
|
+
slots,
|
20718
|
+
emit
|
20719
|
+
} = _ref2;
|
20720
|
+
const rootEl = vue.ref();
|
20721
|
+
const startStatus = vue.ref('ok');
|
20722
|
+
const endStatus = vue.ref('ok');
|
20723
|
+
const margin = vue.computed(() => convertToUnit(props.margin));
|
20724
|
+
function setScrollAmount(amount) {
|
20725
|
+
if (!rootEl.value) return;
|
20726
|
+
const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';
|
20727
|
+
rootEl.value[property] = amount;
|
20728
|
+
}
|
20729
|
+
function getScrollAmount() {
|
20730
|
+
if (!rootEl.value) return 0;
|
20731
|
+
const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';
|
20732
|
+
return rootEl.value[property];
|
20733
|
+
}
|
20734
|
+
function getScrollSize() {
|
20735
|
+
if (!rootEl.value) return 0;
|
20736
|
+
const property = props.direction === 'vertical' ? 'scrollHeight' : 'scrollWidth';
|
20737
|
+
return rootEl.value[property];
|
20738
|
+
}
|
20739
|
+
function getContainerSize() {
|
20740
|
+
if (!rootEl.value) return 0;
|
20741
|
+
const property = props.direction === 'vertical' ? 'clientHeight' : 'clientWidth';
|
20742
|
+
return rootEl.value[property];
|
20743
|
+
}
|
20744
|
+
vue.onMounted(() => {
|
20745
|
+
if (!rootEl.value) return;
|
20746
|
+
if (props.side === 'start') {
|
20747
|
+
setScrollAmount(getScrollSize());
|
20748
|
+
} else if (props.side === 'both') {
|
20749
|
+
setScrollAmount(getScrollSize() / 2 - getContainerSize() / 2);
|
20750
|
+
}
|
20751
|
+
});
|
20752
|
+
function setStatus(side, status) {
|
20753
|
+
if (side === 'start') {
|
20754
|
+
startStatus.value = status;
|
20755
|
+
} else if (side === 'end') {
|
20756
|
+
endStatus.value = status;
|
20757
|
+
}
|
20758
|
+
}
|
20759
|
+
function getStatus(side) {
|
20760
|
+
return side === 'start' ? startStatus.value : endStatus.value;
|
20761
|
+
}
|
20762
|
+
let previousScrollSize = 0;
|
20763
|
+
function handleIntersect(side) {
|
20764
|
+
const status = getStatus(side);
|
20765
|
+
if (!rootEl.value || status === 'loading') return;
|
20766
|
+
previousScrollSize = getScrollSize();
|
20767
|
+
setStatus(side, 'loading');
|
20768
|
+
function done(status) {
|
20769
|
+
setStatus(side, status);
|
20770
|
+
vue.nextTick(() => {
|
20771
|
+
if (status === 'ok' && side === 'start') {
|
20772
|
+
setScrollAmount(getScrollSize() - previousScrollSize + getScrollAmount());
|
20773
|
+
}
|
20774
|
+
});
|
20775
|
+
}
|
20776
|
+
emit('load', {
|
20777
|
+
side,
|
20778
|
+
done
|
20779
|
+
});
|
20780
|
+
}
|
20781
|
+
const {
|
20782
|
+
t
|
20783
|
+
} = useLocale();
|
20784
|
+
function renderSide(side, status) {
|
20785
|
+
if (props.side !== side && props.side !== 'both') return;
|
20786
|
+
const onClick = () => handleIntersect(side);
|
20787
|
+
const slotProps = {
|
20788
|
+
side,
|
20789
|
+
props: {
|
20790
|
+
onClick,
|
20791
|
+
color: props.color
|
20792
|
+
}
|
20793
|
+
};
|
20794
|
+
if (status === 'error') return slots.error?.(slotProps);
|
20795
|
+
if (status === 'empty') return slots.empty?.(slotProps) ?? vue.createVNode("div", null, [t(props.emptyText)]);
|
20796
|
+
if (props.mode === 'manual') {
|
20797
|
+
if (status === 'loading') {
|
20798
|
+
return slots.loading?.(slotProps) ?? vue.createVNode(VProgressCircular, {
|
20799
|
+
"indeterminate": true,
|
20800
|
+
"color": props.color
|
20801
|
+
}, null);
|
20802
|
+
}
|
20803
|
+
return slots['load-more']?.(slotProps) ?? vue.createVNode(VBtn, {
|
20804
|
+
"variant": "outlined",
|
20805
|
+
"color": props.color,
|
20806
|
+
"onClick": onClick
|
20807
|
+
}, {
|
20808
|
+
default: () => [t(props.loadMoreText)]
|
20809
|
+
});
|
20810
|
+
}
|
20811
|
+
return slots.loading?.(slotProps) ?? vue.createVNode(VProgressCircular, {
|
20812
|
+
"indeterminate": true,
|
20813
|
+
"color": props.color
|
20814
|
+
}, null);
|
20815
|
+
}
|
20816
|
+
const {
|
20817
|
+
dimensionStyles
|
20818
|
+
} = useDimension(props);
|
20819
|
+
useRender(() => {
|
20820
|
+
const hasStartIntersect = props.side === 'start' || props.side === 'both';
|
20821
|
+
const hasEndIntersect = props.side === 'end' || props.side === 'both';
|
20822
|
+
const intersectMode = props.mode === 'intersect';
|
20823
|
+
return vue.createVNode("div", {
|
20824
|
+
"ref": rootEl,
|
20825
|
+
"class": ['v-infinite-scroll', `v-infinite-scroll--${props.direction}`, {
|
20826
|
+
'v-infinite-scroll--start': hasStartIntersect,
|
20827
|
+
'v-infinite-scroll--end': hasEndIntersect
|
20828
|
+
}],
|
20829
|
+
"style": dimensionStyles.value
|
20830
|
+
}, [vue.createVNode("div", {
|
20831
|
+
"class": "v-infinite-scroll__side"
|
20832
|
+
}, [renderSide('start', startStatus.value)]), rootEl.value && hasStartIntersect && intersectMode && vue.createVNode(VInfiniteScrollIntersect, {
|
20833
|
+
"key": "start",
|
20834
|
+
"side": "start",
|
20835
|
+
"onIntersect": handleIntersect,
|
20836
|
+
"rootRef": rootEl.value,
|
20837
|
+
"rootMargin": margin.value
|
20838
|
+
}, null), slots.default?.(), rootEl.value && hasEndIntersect && intersectMode && vue.createVNode(VInfiniteScrollIntersect, {
|
20839
|
+
"key": "end",
|
20840
|
+
"side": "end",
|
20841
|
+
"onIntersect": handleIntersect,
|
20842
|
+
"rootRef": rootEl.value,
|
20843
|
+
"rootMargin": margin.value
|
20844
|
+
}, null), vue.createVNode("div", {
|
20845
|
+
"class": "v-infinite-scroll__side"
|
20846
|
+
}, [renderSide('end', endStatus.value)])]);
|
20847
|
+
});
|
20848
|
+
}
|
20849
|
+
});
|
20850
|
+
|
20851
|
+
// Types
|
20852
|
+
|
20643
20853
|
const rootTypes = {
|
20644
20854
|
actions: 'button@2',
|
20645
20855
|
article: 'heading, paragraph',
|
@@ -20839,6 +21049,7 @@
|
|
20839
21049
|
VHover: VHover,
|
20840
21050
|
VIcon: VIcon,
|
20841
21051
|
VImg: VImg,
|
21052
|
+
VInfiniteScroll: VInfiniteScroll,
|
20842
21053
|
VInput: VInput,
|
20843
21054
|
VItem: VItem,
|
20844
21055
|
VItemGroup: VItemGroup,
|
@@ -21126,7 +21337,7 @@
|
|
21126
21337
|
date
|
21127
21338
|
};
|
21128
21339
|
}
|
21129
|
-
const version$1 = "4.0.0-dev-
|
21340
|
+
const version$1 = "4.0.0-dev-20230426.0";
|
21130
21341
|
createVuetify$1.version = version$1;
|
21131
21342
|
|
21132
21343
|
// Vue's inject() can only be used in setup
|
@@ -21138,7 +21349,7 @@
|
|
21138
21349
|
}
|
21139
21350
|
}
|
21140
21351
|
|
21141
|
-
const version = "4.0.0-dev-
|
21352
|
+
const version = "4.0.0-dev-20230426.0";
|
21142
21353
|
|
21143
21354
|
const createVuetify = function () {
|
21144
21355
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|