@vuetify/nightly 3.2.0-dev-20230405.0 → 3.2.0-dev-20230407.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.
Files changed (42) hide show
  1. package/CHANGELOG.md +3 -2
  2. package/dist/json/importMap-labs.json +0 -4
  3. package/dist/json/importMap.json +52 -48
  4. package/dist/json/web-types.json +1 -1
  5. package/dist/vuetify-labs.css +10 -10
  6. package/dist/vuetify-labs.d.ts +164 -164
  7. package/dist/vuetify-labs.esm.js +180 -180
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +179 -179
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +10 -1
  12. package/dist/vuetify.d.ts +166 -14
  13. package/dist/vuetify.esm.js +176 -4
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +175 -3
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +222 -206
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -0
  21. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -0
  22. package/lib/components/VVirtualScroll/index.mjs.map +1 -0
  23. package/lib/components/index.d.ts +150 -1
  24. package/lib/components/index.mjs +2 -1
  25. package/lib/components/index.mjs.map +1 -1
  26. package/lib/entry-bundler.mjs +1 -1
  27. package/lib/framework.mjs +1 -1
  28. package/lib/index.d.ts +15 -14
  29. package/lib/labs/VDataTable/index.d.ts +15 -15
  30. package/lib/labs/components.d.ts +16 -165
  31. package/lib/labs/components.mjs +0 -1
  32. package/lib/labs/components.mjs.map +1 -1
  33. package/package.json +1 -1
  34. package/lib/labs/VVirtualScroll/VVirtualScroll.mjs.map +0 -1
  35. package/lib/labs/VVirtualScroll/VVirtualScrollItem.mjs.map +0 -1
  36. package/lib/labs/VVirtualScroll/index.mjs.map +0 -1
  37. /package/lib/{labs → components}/VVirtualScroll/VVirtualScroll.css +0 -0
  38. /package/lib/{labs → components}/VVirtualScroll/VVirtualScroll.mjs +0 -0
  39. /package/lib/{labs → components}/VVirtualScroll/VVirtualScroll.sass +0 -0
  40. /package/lib/{labs → components}/VVirtualScroll/VVirtualScrollItem.mjs +0 -0
  41. /package/lib/{labs → components}/VVirtualScroll/index.d.ts +0 -0
  42. /package/lib/{labs → components}/VVirtualScroll/index.mjs +0 -0
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * Vuetify v3.2.0-dev-20230405.0
2
+ * Vuetify v3.2.0-dev-20230407.0
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
6
6
 
7
- import { ref, onBeforeUnmount, watch, readonly, reactive, computed, watchEffect, toRefs, capitalize, getCurrentInstance as getCurrentInstance$1, unref, provide, inject as inject$1, onScopeDispose, effectScope, shallowRef, defineComponent as defineComponent$1, camelize, h, onDeactivated, onActivated, onMounted, toRaw, createVNode, TransitionGroup, Transition, mergeProps, onBeforeMount, nextTick, withDirectives, Fragment, resolveDirective, vShow, isRef, toRef, Text, resolveDynamicComponent, cloneVNode, warn, toHandlers, Teleport, createTextVNode, onBeforeUpdate, vModelText, withModifiers, onUpdated } from 'vue';
7
+ import { ref, onBeforeUnmount, watch, readonly, reactive, computed, watchEffect, toRefs, capitalize, getCurrentInstance as getCurrentInstance$1, unref, provide, inject as inject$1, onScopeDispose, effectScope, shallowRef, defineComponent as defineComponent$1, camelize, h, onDeactivated, onActivated, onMounted, toRaw, createVNode, TransitionGroup, Transition, mergeProps, onBeforeMount, nextTick, withDirectives, Fragment, resolveDirective, vShow, isRef, toRef, Text, resolveDynamicComponent, cloneVNode, warn, toHandlers, Teleport, createTextVNode, onBeforeUpdate, vModelText, onUpdated, withModifiers } from 'vue';
8
8
 
9
9
  const IN_BROWSER = typeof window !== 'undefined';
10
10
  const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
@@ -17993,6 +17993,177 @@ const VValidation = genericComponent()({
17993
17993
  }
17994
17994
  });
17995
17995
 
17996
+ const VVirtualScrollItem = genericComponent()({
17997
+ name: 'VVirtualScrollItem',
17998
+ props: {
17999
+ dynamicHeight: Boolean
18000
+ },
18001
+ emits: {
18002
+ 'update:height': height => true
18003
+ },
18004
+ setup(props, _ref) {
18005
+ let {
18006
+ emit,
18007
+ slots
18008
+ } = _ref;
18009
+ const {
18010
+ resizeRef,
18011
+ contentRect
18012
+ } = useResizeObserver();
18013
+ useToggleScope(() => props.dynamicHeight, () => {
18014
+ watch(() => contentRect.value?.height, height => {
18015
+ if (height != null) emit('update:height', height);
18016
+ });
18017
+ });
18018
+ function updateHeight() {
18019
+ if (props.dynamicHeight && contentRect.value) {
18020
+ emit('update:height', contentRect.value.height);
18021
+ }
18022
+ }
18023
+ onUpdated(updateHeight);
18024
+ useRender(() => createVNode("div", {
18025
+ "ref": props.dynamicHeight ? resizeRef : undefined,
18026
+ "class": "v-virtual-scroll__item"
18027
+ }, [slots.default?.()]));
18028
+ }
18029
+ });
18030
+
18031
+ // Types
18032
+
18033
+ const UP$1 = -1;
18034
+ const DOWN$1 = 1;
18035
+ const VVirtualScroll = genericComponent()({
18036
+ name: 'VVirtualScroll',
18037
+ props: {
18038
+ items: {
18039
+ type: Array,
18040
+ default: () => []
18041
+ },
18042
+ itemHeight: [Number, String],
18043
+ visibleItems: [Number, String],
18044
+ ...makeDimensionProps()
18045
+ },
18046
+ setup(props, _ref) {
18047
+ let {
18048
+ slots
18049
+ } = _ref;
18050
+ const first = ref(0);
18051
+ const baseItemHeight = ref(props.itemHeight);
18052
+ const itemHeight = computed({
18053
+ get: () => parseInt(baseItemHeight.value ?? 0, 10),
18054
+ set(val) {
18055
+ baseItemHeight.value = val;
18056
+ }
18057
+ });
18058
+ const rootEl = ref();
18059
+ const {
18060
+ resizeRef,
18061
+ contentRect
18062
+ } = useResizeObserver();
18063
+ watchEffect(() => {
18064
+ resizeRef.value = rootEl.value;
18065
+ });
18066
+ const display = useDisplay();
18067
+ const sizeMap = new Map();
18068
+ let sizes = createRange(props.items.length).map(() => itemHeight.value);
18069
+ const visibleItems = computed(() => {
18070
+ return props.visibleItems ? parseInt(props.visibleItems, 10) : Math.max(12, Math.ceil((contentRect.value?.height ?? display.height.value) / itemHeight.value * 1.7 + 1));
18071
+ });
18072
+ function handleItemResize(index, height) {
18073
+ itemHeight.value = Math.max(itemHeight.value, height);
18074
+ sizes[index] = height;
18075
+ sizeMap.set(props.items[index], height);
18076
+ }
18077
+ function calculateOffset(index) {
18078
+ return sizes.slice(0, index).reduce((curr, value) => curr + (value || itemHeight.value), 0);
18079
+ }
18080
+ function calculateMidPointIndex(scrollTop) {
18081
+ let start = 0;
18082
+ let end = props.items.length;
18083
+ while (start <= end) {
18084
+ const middle = start + Math.floor((end - start) / 2);
18085
+ const middleOffset = calculateOffset(middle);
18086
+ if (middleOffset === scrollTop) {
18087
+ return middle;
18088
+ } else if (middleOffset < scrollTop) {
18089
+ start = middle + 1;
18090
+ } else if (middleOffset > scrollTop) {
18091
+ end = middle - 1;
18092
+ }
18093
+ }
18094
+ return start;
18095
+ }
18096
+ let lastScrollTop = 0;
18097
+ function handleScroll() {
18098
+ if (!rootEl.value || !contentRect.value) return;
18099
+ const height = contentRect.value.height;
18100
+ const scrollTop = rootEl.value.scrollTop;
18101
+ const direction = scrollTop < lastScrollTop ? UP$1 : DOWN$1;
18102
+ const midPointIndex = calculateMidPointIndex(scrollTop + height / 2);
18103
+ const buffer = Math.round(visibleItems.value / 3);
18104
+ if (direction === UP$1 && midPointIndex <= first.value + buffer * 2 - 1) {
18105
+ first.value = clamp(midPointIndex - buffer, 0, props.items.length);
18106
+ } else if (direction === DOWN$1 && midPointIndex >= first.value + buffer * 2 - 1) {
18107
+ first.value = clamp(midPointIndex - buffer, 0, props.items.length - visibleItems.value);
18108
+ }
18109
+ lastScrollTop = rootEl.value.scrollTop;
18110
+ }
18111
+ function scrollToIndex(index) {
18112
+ if (!rootEl.value) return;
18113
+ const offset = calculateOffset(index);
18114
+ rootEl.value.scrollTop = offset;
18115
+ }
18116
+ const last = computed(() => Math.min(props.items.length, first.value + visibleItems.value));
18117
+ const computedItems = computed(() => props.items.slice(first.value, last.value));
18118
+ const paddingTop = computed(() => calculateOffset(first.value));
18119
+ const paddingBottom = computed(() => calculateOffset(props.items.length) - calculateOffset(last.value));
18120
+ const {
18121
+ dimensionStyles
18122
+ } = useDimension(props);
18123
+ onMounted(() => {
18124
+ if (!itemHeight.value) {
18125
+ // If itemHeight prop is not set, then calculate an estimated height from the average of inital items
18126
+ itemHeight.value = sizes.slice(first.value, last.value).reduce((curr, height) => curr + height, 0) / visibleItems.value;
18127
+ }
18128
+ });
18129
+ watch(() => props.items.length, () => {
18130
+ sizes = createRange(props.items.length).map(() => itemHeight.value);
18131
+ sizeMap.forEach((height, item) => {
18132
+ const index = props.items.indexOf(item);
18133
+ if (index === -1) {
18134
+ sizeMap.delete(item);
18135
+ } else {
18136
+ sizes[index] = height;
18137
+ }
18138
+ });
18139
+ });
18140
+ useRender(() => createVNode("div", {
18141
+ "ref": rootEl,
18142
+ "class": "v-virtual-scroll",
18143
+ "onScroll": handleScroll,
18144
+ "style": dimensionStyles.value
18145
+ }, [createVNode("div", {
18146
+ "class": "v-virtual-scroll__container",
18147
+ "style": {
18148
+ paddingTop: convertToUnit(paddingTop.value),
18149
+ paddingBottom: convertToUnit(paddingBottom.value)
18150
+ }
18151
+ }, [computedItems.value.map((item, index) => createVNode(VVirtualScrollItem, {
18152
+ "key": index,
18153
+ "dynamicHeight": !props.itemHeight,
18154
+ "onUpdate:height": height => handleItemResize(index + first.value, height)
18155
+ }, {
18156
+ default: () => [slots.default?.({
18157
+ item,
18158
+ index: index + first.value
18159
+ })]
18160
+ }))])]));
18161
+ return {
18162
+ scrollToIndex
18163
+ };
18164
+ }
18165
+ });
18166
+
17996
18167
  const VDataTableColumn = defineFunctionalComponent({
17997
18168
  align: {
17998
18169
  type: String,
@@ -19385,8 +19556,8 @@ const makeDataTableVirtualProps = propsFactory({
19385
19556
  default: 52
19386
19557
  }
19387
19558
  }, 'virtual');
19388
- const UP$1 = -1;
19389
- const DOWN$1 = 1;
19559
+ const UP = -1;
19560
+ const DOWN = 1;
19390
19561
 
19391
19562
  // TODO: Replace this with composable from v-virtual-scroll
19392
19563
  function useVirtual(props, items) {
@@ -19424,12 +19595,12 @@ function useVirtual(props, items) {
19424
19595
  isScrolling.value = false;
19425
19596
  }, 100);
19426
19597
  const scrollTop = containerRef.value.scrollTop;
19427
- const direction = scrollTop < lastScrollTop ? UP$1 : DOWN$1;
19598
+ const direction = scrollTop < lastScrollTop ? UP : DOWN;
19428
19599
  const midPointIndex = calculateMidPointIndex(scrollTop);
19429
19600
  const buffer = Math.round(visibleItems.value / 3);
19430
- if (direction === UP$1 && midPointIndex <= startIndex.value) {
19601
+ if (direction === UP && midPointIndex <= startIndex.value) {
19431
19602
  startIndex.value = Math.max(midPointIndex - buffer, 0);
19432
- } else if (direction === DOWN$1 && midPointIndex >= startIndex.value + buffer * 2) {
19603
+ } else if (direction === DOWN && midPointIndex >= startIndex.value + buffer * 2) {
19433
19604
  startIndex.value = Math.min(Math.max(0, midPointIndex - buffer), items.value.length - visibleItems.value);
19434
19605
  }
19435
19606
  lastScrollTop = containerRef.value.scrollTop;
@@ -19868,177 +20039,6 @@ const VSkeletonLoader = genericComponent()({
19868
20039
  }
19869
20040
  });
19870
20041
 
19871
- const VVirtualScrollItem = genericComponent()({
19872
- name: 'VVirtualScrollItem',
19873
- props: {
19874
- dynamicHeight: Boolean
19875
- },
19876
- emits: {
19877
- 'update:height': height => true
19878
- },
19879
- setup(props, _ref) {
19880
- let {
19881
- emit,
19882
- slots
19883
- } = _ref;
19884
- const {
19885
- resizeRef,
19886
- contentRect
19887
- } = useResizeObserver();
19888
- useToggleScope(() => props.dynamicHeight, () => {
19889
- watch(() => contentRect.value?.height, height => {
19890
- if (height != null) emit('update:height', height);
19891
- });
19892
- });
19893
- function updateHeight() {
19894
- if (props.dynamicHeight && contentRect.value) {
19895
- emit('update:height', contentRect.value.height);
19896
- }
19897
- }
19898
- onUpdated(updateHeight);
19899
- useRender(() => createVNode("div", {
19900
- "ref": props.dynamicHeight ? resizeRef : undefined,
19901
- "class": "v-virtual-scroll__item"
19902
- }, [slots.default?.()]));
19903
- }
19904
- });
19905
-
19906
- // Types
19907
-
19908
- const UP = -1;
19909
- const DOWN = 1;
19910
- const VVirtualScroll = genericComponent()({
19911
- name: 'VVirtualScroll',
19912
- props: {
19913
- items: {
19914
- type: Array,
19915
- default: () => []
19916
- },
19917
- itemHeight: [Number, String],
19918
- visibleItems: [Number, String],
19919
- ...makeDimensionProps()
19920
- },
19921
- setup(props, _ref) {
19922
- let {
19923
- slots
19924
- } = _ref;
19925
- const first = ref(0);
19926
- const baseItemHeight = ref(props.itemHeight);
19927
- const itemHeight = computed({
19928
- get: () => parseInt(baseItemHeight.value ?? 0, 10),
19929
- set(val) {
19930
- baseItemHeight.value = val;
19931
- }
19932
- });
19933
- const rootEl = ref();
19934
- const {
19935
- resizeRef,
19936
- contentRect
19937
- } = useResizeObserver();
19938
- watchEffect(() => {
19939
- resizeRef.value = rootEl.value;
19940
- });
19941
- const display = useDisplay();
19942
- const sizeMap = new Map();
19943
- let sizes = createRange(props.items.length).map(() => itemHeight.value);
19944
- const visibleItems = computed(() => {
19945
- return props.visibleItems ? parseInt(props.visibleItems, 10) : Math.max(12, Math.ceil((contentRect.value?.height ?? display.height.value) / itemHeight.value * 1.7 + 1));
19946
- });
19947
- function handleItemResize(index, height) {
19948
- itemHeight.value = Math.max(itemHeight.value, height);
19949
- sizes[index] = height;
19950
- sizeMap.set(props.items[index], height);
19951
- }
19952
- function calculateOffset(index) {
19953
- return sizes.slice(0, index).reduce((curr, value) => curr + (value || itemHeight.value), 0);
19954
- }
19955
- function calculateMidPointIndex(scrollTop) {
19956
- let start = 0;
19957
- let end = props.items.length;
19958
- while (start <= end) {
19959
- const middle = start + Math.floor((end - start) / 2);
19960
- const middleOffset = calculateOffset(middle);
19961
- if (middleOffset === scrollTop) {
19962
- return middle;
19963
- } else if (middleOffset < scrollTop) {
19964
- start = middle + 1;
19965
- } else if (middleOffset > scrollTop) {
19966
- end = middle - 1;
19967
- }
19968
- }
19969
- return start;
19970
- }
19971
- let lastScrollTop = 0;
19972
- function handleScroll() {
19973
- if (!rootEl.value || !contentRect.value) return;
19974
- const height = contentRect.value.height;
19975
- const scrollTop = rootEl.value.scrollTop;
19976
- const direction = scrollTop < lastScrollTop ? UP : DOWN;
19977
- const midPointIndex = calculateMidPointIndex(scrollTop + height / 2);
19978
- const buffer = Math.round(visibleItems.value / 3);
19979
- if (direction === UP && midPointIndex <= first.value + buffer * 2 - 1) {
19980
- first.value = clamp(midPointIndex - buffer, 0, props.items.length);
19981
- } else if (direction === DOWN && midPointIndex >= first.value + buffer * 2 - 1) {
19982
- first.value = clamp(midPointIndex - buffer, 0, props.items.length - visibleItems.value);
19983
- }
19984
- lastScrollTop = rootEl.value.scrollTop;
19985
- }
19986
- function scrollToIndex(index) {
19987
- if (!rootEl.value) return;
19988
- const offset = calculateOffset(index);
19989
- rootEl.value.scrollTop = offset;
19990
- }
19991
- const last = computed(() => Math.min(props.items.length, first.value + visibleItems.value));
19992
- const computedItems = computed(() => props.items.slice(first.value, last.value));
19993
- const paddingTop = computed(() => calculateOffset(first.value));
19994
- const paddingBottom = computed(() => calculateOffset(props.items.length) - calculateOffset(last.value));
19995
- const {
19996
- dimensionStyles
19997
- } = useDimension(props);
19998
- onMounted(() => {
19999
- if (!itemHeight.value) {
20000
- // If itemHeight prop is not set, then calculate an estimated height from the average of inital items
20001
- itemHeight.value = sizes.slice(first.value, last.value).reduce((curr, height) => curr + height, 0) / visibleItems.value;
20002
- }
20003
- });
20004
- watch(() => props.items.length, () => {
20005
- sizes = createRange(props.items.length).map(() => itemHeight.value);
20006
- sizeMap.forEach((height, item) => {
20007
- const index = props.items.indexOf(item);
20008
- if (index === -1) {
20009
- sizeMap.delete(item);
20010
- } else {
20011
- sizes[index] = height;
20012
- }
20013
- });
20014
- });
20015
- useRender(() => createVNode("div", {
20016
- "ref": rootEl,
20017
- "class": "v-virtual-scroll",
20018
- "onScroll": handleScroll,
20019
- "style": dimensionStyles.value
20020
- }, [createVNode("div", {
20021
- "class": "v-virtual-scroll__container",
20022
- "style": {
20023
- paddingTop: convertToUnit(paddingTop.value),
20024
- paddingBottom: convertToUnit(paddingBottom.value)
20025
- }
20026
- }, [computedItems.value.map((item, index) => createVNode(VVirtualScrollItem, {
20027
- "key": index,
20028
- "dynamicHeight": !props.itemHeight,
20029
- "onUpdate:height": height => handleItemResize(index + first.value, height)
20030
- }, {
20031
- default: () => [slots.default?.({
20032
- item,
20033
- index: index + first.value
20034
- })]
20035
- }))])]));
20036
- return {
20037
- scrollToIndex
20038
- };
20039
- }
20040
- });
20041
-
20042
20042
  var components = /*#__PURE__*/Object.freeze({
20043
20043
  __proto__: null,
20044
20044
  VAlert: VAlert,
@@ -20391,7 +20391,7 @@ function createVuetify$1() {
20391
20391
  locale
20392
20392
  };
20393
20393
  }
20394
- const version$1 = "3.2.0-dev-20230405.0";
20394
+ const version$1 = "3.2.0-dev-20230407.0";
20395
20395
  createVuetify$1.version = version$1;
20396
20396
 
20397
20397
  // Vue's inject() can only be used in setup
@@ -20403,7 +20403,7 @@ function inject(key) {
20403
20403
  }
20404
20404
  }
20405
20405
 
20406
- const version = "3.2.0-dev-20230405.0";
20406
+ const version = "3.2.0-dev-20230407.0";
20407
20407
 
20408
20408
  const createVuetify = function () {
20409
20409
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};