vuetify 3.4.0 → 3.4.2
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/dist/json/attributes.json +1860 -1856
- package/dist/json/importMap.json +140 -140
- package/dist/json/tags.json +1 -0
- package/dist/json/web-types.json +3641 -3631
- package/dist/vuetify-labs.css +1393 -1386
- package/dist/vuetify-labs.d.ts +1936 -9147
- package/dist/vuetify-labs.esm.js +91 -79
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +91 -79
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +940 -933
- package/dist/vuetify.d.ts +2081 -9282
- package/dist/vuetify.esm.js +91 -79
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +91 -79
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +67 -66
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.mts +0 -2
- package/lib/blueprints/md1.d.mts +0 -2
- package/lib/blueprints/md2.d.mts +0 -2
- package/lib/blueprints/md3.d.mts +0 -2
- package/lib/components/VAutocomplete/VAutocomplete.mjs +3 -3
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +74 -98
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
- package/lib/components/VBottomNavigation/index.d.mts +44 -69
- package/lib/components/VBtn/VBtn.mjs +1 -1
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/index.d.mts +11 -11
- package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
- package/lib/components/VBtnToggle/index.d.mts +45 -71
- package/lib/components/VCarousel/VCarousel.mjs +1 -1
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCarousel/index.d.mts +73 -513
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckboxBtn.mjs +1 -1
- package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.mts +100 -482
- package/lib/components/VChip/index.d.mts +15 -18
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VChipGroup/index.d.mts +49 -189
- package/lib/components/VCombobox/VCombobox.mjs +3 -3
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +74 -98
- package/lib/components/VDataIterator/index.d.mts +8 -6
- package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableRow.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableVirtual.mjs +2 -1
- package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/components/VDataTable/composables/items.mjs.map +1 -1
- package/lib/components/VDataTable/composables/paginate.mjs.map +1 -1
- package/lib/components/VDataTable/composables/select.mjs.map +1 -1
- package/lib/components/VDataTable/index.d.mts +411 -4142
- package/lib/components/VDataTable/types.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.css +4 -0
- package/lib/components/VDatePicker/VDatePicker.mjs +29 -22
- package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.sass +4 -0
- package/lib/components/VDatePicker/VDatePickerMonth.mjs +3 -1
- package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerYears.mjs +1 -1
- package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
- package/lib/components/VDatePicker/index.d.mts +32 -36
- package/lib/components/VDialog/VDialog.css +4 -1
- package/lib/components/VDialog/VDialog.sass +4 -3
- package/lib/components/VField/VField.mjs +1 -1
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/index.d.mts +33 -41
- package/lib/components/VFileInput/index.d.mts +144 -385
- package/lib/components/VImg/VImg.mjs +10 -2
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VInput/VInput.mjs +1 -1
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/index.d.mts +72 -154
- package/lib/components/VItemGroup/VItemGroup.mjs +1 -1
- package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
- package/lib/components/VItemGroup/index.d.mts +49 -189
- package/lib/components/VList/VList.mjs +2 -2
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/index.d.mts +58 -95
- package/lib/components/VOtpInput/index.d.mts +8 -11
- package/lib/components/VRadio/index.d.mts +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/index.d.mts +77 -211
- package/lib/components/VRangeSlider/index.d.mts +22 -25
- package/lib/components/VSelect/VSelect.mjs +2 -2
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.mts +67 -91
- package/lib/components/VSelectionControl/VSelectionControl.mjs +2 -2
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.mts +9 -18
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +1 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/index.d.mts +46 -68
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.mts +47 -101
- package/lib/components/VSlider/index.d.mts +22 -25
- package/lib/components/VSwitch/VSwitch.mjs +7 -5
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/index.d.mts +90 -303
- package/lib/components/VTextField/index.d.mts +173 -451
- package/lib/components/VTextarea/index.d.mts +144 -385
- package/lib/components/VValidation/VValidation.mjs +2 -2
- package/lib/components/VValidation/VValidation.mjs.map +1 -1
- package/lib/components/VValidation/index.d.mts +88 -359
- package/lib/components/VWindow/VWindow.mjs +1 -1
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/VWindow/index.d.mts +58 -245
- package/lib/components/index.d.mts +1933 -9130
- package/lib/composables/date/DateAdapter.mjs.map +1 -1
- package/lib/composables/date/adapters/vuetify.mjs +1 -13
- package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
- package/lib/composables/date/date.mjs +1 -1
- package/lib/composables/date/date.mjs.map +1 -1
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/group.mjs.map +1 -1
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/proxiedModel.mjs.map +1 -1
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/composables/virtual.mjs +11 -13
- package/lib/composables/virtual.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +40 -44
- package/lib/labs/VConfirmEdit/index.d.mts +0 -10
- package/lib/labs/components.d.mts +0 -10
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { useDisplay } from "./display.mjs";
|
|
3
3
|
import { useResizeObserver } from "./resizeObserver.mjs"; // Utilities
|
|
4
4
|
import { computed, nextTick, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue';
|
|
5
|
-
import { clamp,
|
|
5
|
+
import { clamp, debounce, IN_BROWSER, propsFactory } from "../util/index.mjs"; // Types
|
|
6
6
|
const UP = -1;
|
|
7
7
|
const DOWN = 1;
|
|
8
8
|
|
|
@@ -52,11 +52,10 @@ export function useVirtual(props, items) {
|
|
|
52
52
|
const hasInitialRender = computed(() => {
|
|
53
53
|
return !!(containerRef.value && markerRef.value && viewportHeight.value && itemHeight.value);
|
|
54
54
|
});
|
|
55
|
-
const sizeMap = new Map();
|
|
56
55
|
let sizes = Array.from({
|
|
57
56
|
length: items.value.length
|
|
58
57
|
});
|
|
59
|
-
|
|
58
|
+
let offsets = Array.from({
|
|
60
59
|
length: items.value.length
|
|
61
60
|
});
|
|
62
61
|
const updateTime = shallowRef(0);
|
|
@@ -102,7 +101,6 @@ export function useVirtual(props, items) {
|
|
|
102
101
|
itemHeight.value = prevMinHeight ? Math.min(itemHeight.value, height) : height;
|
|
103
102
|
if (prevHeight !== height || prevMinHeight !== itemHeight.value) {
|
|
104
103
|
sizes[index] = height;
|
|
105
|
-
sizeMap.set(items.value[index], height);
|
|
106
104
|
updateOffsets();
|
|
107
105
|
}
|
|
108
106
|
}
|
|
@@ -186,17 +184,17 @@ export function useVirtual(props, items) {
|
|
|
186
184
|
index: index + first.value
|
|
187
185
|
}));
|
|
188
186
|
});
|
|
189
|
-
watch(
|
|
190
|
-
sizes =
|
|
191
|
-
|
|
192
|
-
const index = items.value.indexOf(item);
|
|
193
|
-
if (index === -1) {
|
|
194
|
-
sizeMap.delete(item);
|
|
195
|
-
} else {
|
|
196
|
-
sizes[index] = height;
|
|
197
|
-
}
|
|
187
|
+
watch(items, () => {
|
|
188
|
+
sizes = Array.from({
|
|
189
|
+
length: items.value.length
|
|
198
190
|
});
|
|
191
|
+
offsets = Array.from({
|
|
192
|
+
length: items.value.length
|
|
193
|
+
});
|
|
194
|
+
updateOffsets.immediate();
|
|
199
195
|
calculateVisibleItems();
|
|
196
|
+
}, {
|
|
197
|
+
deep: true
|
|
200
198
|
});
|
|
201
199
|
return {
|
|
202
200
|
containerRef,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtual.mjs","names":["useDisplay","useResizeObserver","computed","nextTick","onScopeDispose","ref","shallowRef","watch","watchEffect","clamp","createRange","debounce","IN_BROWSER","propsFactory","UP","DOWN","BUFFER_PX","makeVirtualProps","itemHeight","type","Number","String","default","height","useVirtual","props","items","display","value","parseFloat","first","last","Math","ceil","parseInt","paddingTop","paddingBottom","containerRef","markerRef","markerOffset","resizeRef","contentRect","viewportHeight","document","documentElement","hasInitialRender","sizeMap","Map","sizes","Array","from","length","offsets","updateTime","targetScrollIndex","getSize","index","updateOffsets","start","performance","now","i","max","unwatch","v","offsetTop","immediate","calculateVisibleItems","window","requestAnimationFrame","scrollToIndex","val","oldVal","clear","handleItemResize","prevHeight","prevMinHeight","min","set","calculateOffset","calculateIndex","scrollTop","binaryClosest","lastScrollTop","scrollVelocity","lastScrollTime","handleScroll","scrollTime","scrollDeltaT","sign","handleScrollend","raf","cancelAnimationFrame","_calculateVisibleItems","direction","startPx","endPx","end","topOverflow","bottomOverflow","bufferOverflow","offset","computedItems","slice","map","item","raw","forEach","indexOf","delete","arr","high","low","mid","target"],"sources":["../../src/composables/virtual.ts"],"sourcesContent":["// Composables\nimport { useDisplay } from '@/composables/display'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, nextTick, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue'\nimport {\n clamp,\n createRange,\n debounce,\n IN_BROWSER,\n propsFactory,\n} from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nconst UP = -1\nconst DOWN = 1\n\n/** Determines how large each batch of items should be */\nconst BUFFER_PX = 100\n\ntype VirtualProps = {\n itemHeight?: number | string\n height?: number | string\n}\n\nexport const makeVirtualProps = propsFactory({\n itemHeight: {\n type: [Number, String],\n default: null,\n },\n height: [Number, String],\n}, 'virtual')\n\nexport function useVirtual <T> (props: VirtualProps, items: Ref<readonly T[]>) {\n const display = useDisplay()\n\n const itemHeight = shallowRef(0)\n watchEffect(() => {\n itemHeight.value = parseFloat(props.itemHeight || 0)\n })\n\n const first = shallowRef(0)\n const last = shallowRef(Math.ceil(\n // Assume 16px items filling the entire screen height if\n // not provided. This is probably incorrect but it minimises\n // the chance of ending up with empty space at the bottom.\n // The default value is set here to avoid poisoning getSize()\n (parseInt(props.height!) || display.height.value) / (itemHeight.value || 16)\n ) || 1)\n const paddingTop = shallowRef(0)\n const paddingBottom = shallowRef(0)\n\n /** The scrollable element */\n const containerRef = ref<HTMLElement>()\n /** An element marking the top of the scrollable area,\n * used to add an offset if there's padding or other elements above the virtual list */\n const markerRef = ref<HTMLElement>()\n /** markerRef's offsetTop, lazily evaluated */\n let markerOffset = 0\n\n const { resizeRef, contentRect } = useResizeObserver()\n watchEffect(() => {\n resizeRef.value = containerRef.value\n })\n const viewportHeight = computed(() => {\n return containerRef.value === document.documentElement\n ? display.height.value\n : contentRect.value?.height || parseInt(props.height!) || 0\n })\n /** All static elements have been rendered and we have an assumed item height */\n const hasInitialRender = computed(() => {\n return !!(containerRef.value && markerRef.value && viewportHeight.value && itemHeight.value)\n })\n\n const sizeMap = new Map<any, number>()\n let sizes = Array.from<number | null>({ length: items.value.length })\n const offsets = Array.from<number>({ length: items.value.length })\n const updateTime = shallowRef(0)\n let targetScrollIndex = -1\n\n function getSize (index: number) {\n return sizes[index] || itemHeight.value\n }\n\n const updateOffsets = debounce(() => {\n const start = performance.now()\n offsets[0] = 0\n const length = items.value.length\n for (let i = 1; i <= length - 1; i++) {\n offsets[i] = (offsets[i - 1] || 0) + getSize(i - 1)\n }\n updateTime.value = Math.max(updateTime.value, performance.now() - start)\n }, updateTime)\n\n const unwatch = watch(hasInitialRender, v => {\n if (!v) return\n // First render is complete, update offsets and visible\n // items in case our assumed item height was incorrect\n\n unwatch()\n markerOffset = markerRef.value!.offsetTop\n updateOffsets.immediate()\n calculateVisibleItems()\n\n if (!~targetScrollIndex) return\n\n nextTick(() => {\n IN_BROWSER && window.requestAnimationFrame(() => {\n scrollToIndex(targetScrollIndex)\n targetScrollIndex = -1\n })\n })\n })\n watch(viewportHeight, (val, oldVal) => {\n oldVal && calculateVisibleItems()\n })\n\n onScopeDispose(() => {\n updateOffsets.clear()\n })\n\n function handleItemResize (index: number, height: number) {\n const prevHeight = sizes[index]\n const prevMinHeight = itemHeight.value\n\n itemHeight.value = prevMinHeight ? Math.min(itemHeight.value, height) : height\n\n if (prevHeight !== height || prevMinHeight !== itemHeight.value) {\n sizes[index] = height\n sizeMap.set(items.value[index], height)\n updateOffsets()\n }\n }\n\n function calculateOffset (index: number) {\n index = clamp(index, 0, items.value.length - 1)\n return offsets[index] || 0\n }\n\n function calculateIndex (scrollTop: number) {\n return binaryClosest(offsets, scrollTop)\n }\n\n let lastScrollTop = 0\n let scrollVelocity = 0\n let lastScrollTime = 0\n function handleScroll () {\n if (!containerRef.value || !markerRef.value) return\n\n const scrollTop = containerRef.value.scrollTop\n const scrollTime = performance.now()\n const scrollDeltaT = scrollTime - lastScrollTime\n\n if (scrollDeltaT > 500) {\n scrollVelocity = Math.sign(scrollTop - lastScrollTop)\n\n // Not super important, only update at the\n // start of a scroll sequence to avoid reflows\n markerOffset = markerRef.value.offsetTop\n } else {\n scrollVelocity = scrollTop - lastScrollTop\n }\n\n lastScrollTop = scrollTop\n lastScrollTime = scrollTime\n\n calculateVisibleItems()\n }\n function handleScrollend () {\n if (!containerRef.value || !markerRef.value) return\n\n scrollVelocity = 0\n lastScrollTime = 0\n\n calculateVisibleItems()\n }\n\n let raf = -1\n function calculateVisibleItems () {\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(_calculateVisibleItems)\n }\n function _calculateVisibleItems () {\n if (!containerRef.value || !viewportHeight.value) return\n const scrollTop = lastScrollTop - markerOffset\n const direction = Math.sign(scrollVelocity)\n\n const startPx = Math.max(0, scrollTop - BUFFER_PX)\n const start = clamp(calculateIndex(startPx), 0, items.value.length)\n\n const endPx = scrollTop + viewportHeight.value + BUFFER_PX\n const end = clamp(calculateIndex(endPx) + 1, start + 1, items.value.length)\n\n if (\n // Only update the side we're scrolling towards,\n // the other side will be updated incidentally\n (direction !== UP || start < first.value) &&\n (direction !== DOWN || end > last.value)\n ) {\n const topOverflow = calculateOffset(first.value) - calculateOffset(start)\n const bottomOverflow = calculateOffset(end) - calculateOffset(last.value)\n const bufferOverflow = Math.max(topOverflow, bottomOverflow)\n\n if (bufferOverflow > BUFFER_PX) {\n first.value = start\n last.value = end\n } else {\n // Only update the side that's reached its limit if there's still buffer left\n if (start <= 0) first.value = start\n if (end >= items.value.length) last.value = end\n }\n }\n\n paddingTop.value = calculateOffset(first.value)\n paddingBottom.value = calculateOffset(items.value.length) - calculateOffset(last.value)\n }\n\n function scrollToIndex (index: number) {\n const offset = calculateOffset(index)\n if (!containerRef.value || (index && !offset)) {\n targetScrollIndex = index\n } else {\n containerRef.value.scrollTop = offset\n }\n }\n\n const computedItems = computed(() => {\n return items.value.slice(first.value, last.value).map((item, index) => ({\n raw: item,\n index: index + first.value,\n }))\n })\n\n watch(() => items.value.length, () => {\n sizes = createRange(items.value.length).map(() => itemHeight.value)\n sizeMap.forEach((height, item) => {\n const index = items.value.indexOf(item)\n if (index === -1) {\n sizeMap.delete(item)\n } else {\n sizes[index] = height\n }\n })\n calculateVisibleItems()\n })\n\n return {\n containerRef,\n markerRef,\n computedItems,\n paddingTop,\n paddingBottom,\n scrollToIndex,\n handleScroll,\n handleScrollend,\n handleItemResize,\n }\n}\n\n// https://gist.github.com/robertleeplummerjr/1cc657191d34ecd0a324\nfunction binaryClosest (arr: ArrayLike<number>, val: number) {\n let high = arr.length - 1\n let low = 0\n let mid = 0\n let item = null\n let target = -1\n\n if (arr[high]! < val) {\n return high\n }\n\n while (low <= high) {\n mid = (low + high) >> 1\n item = arr[mid]!\n\n if (item > val) {\n high = mid - 1\n } else if (item < val) {\n target = mid\n low = mid + 1\n } else if (item === val) {\n return mid\n } else {\n return low\n }\n }\n\n return target\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"virtual.mjs","names":["useDisplay","useResizeObserver","computed","nextTick","onScopeDispose","ref","shallowRef","watch","watchEffect","clamp","debounce","IN_BROWSER","propsFactory","UP","DOWN","BUFFER_PX","makeVirtualProps","itemHeight","type","Number","String","default","height","useVirtual","props","items","display","value","parseFloat","first","last","Math","ceil","parseInt","paddingTop","paddingBottom","containerRef","markerRef","markerOffset","resizeRef","contentRect","viewportHeight","document","documentElement","hasInitialRender","sizes","Array","from","length","offsets","updateTime","targetScrollIndex","getSize","index","updateOffsets","start","performance","now","i","max","unwatch","v","offsetTop","immediate","calculateVisibleItems","window","requestAnimationFrame","scrollToIndex","val","oldVal","clear","handleItemResize","prevHeight","prevMinHeight","min","calculateOffset","calculateIndex","scrollTop","binaryClosest","lastScrollTop","scrollVelocity","lastScrollTime","handleScroll","scrollTime","scrollDeltaT","sign","handleScrollend","raf","cancelAnimationFrame","_calculateVisibleItems","direction","startPx","endPx","end","topOverflow","bottomOverflow","bufferOverflow","offset","computedItems","slice","map","item","raw","deep","arr","high","low","mid","target"],"sources":["../../src/composables/virtual.ts"],"sourcesContent":["// Composables\nimport { useDisplay } from '@/composables/display'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, nextTick, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue'\nimport { clamp, debounce, IN_BROWSER, propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nconst UP = -1\nconst DOWN = 1\n\n/** Determines how large each batch of items should be */\nconst BUFFER_PX = 100\n\ntype VirtualProps = {\n itemHeight?: number | string\n height?: number | string\n}\n\nexport const makeVirtualProps = propsFactory({\n itemHeight: {\n type: [Number, String],\n default: null,\n },\n height: [Number, String],\n}, 'virtual')\n\nexport function useVirtual <T> (props: VirtualProps, items: Ref<readonly T[]>) {\n const display = useDisplay()\n\n const itemHeight = shallowRef(0)\n watchEffect(() => {\n itemHeight.value = parseFloat(props.itemHeight || 0)\n })\n\n const first = shallowRef(0)\n const last = shallowRef(Math.ceil(\n // Assume 16px items filling the entire screen height if\n // not provided. This is probably incorrect but it minimises\n // the chance of ending up with empty space at the bottom.\n // The default value is set here to avoid poisoning getSize()\n (parseInt(props.height!) || display.height.value) / (itemHeight.value || 16)\n ) || 1)\n const paddingTop = shallowRef(0)\n const paddingBottom = shallowRef(0)\n\n /** The scrollable element */\n const containerRef = ref<HTMLElement>()\n /** An element marking the top of the scrollable area,\n * used to add an offset if there's padding or other elements above the virtual list */\n const markerRef = ref<HTMLElement>()\n /** markerRef's offsetTop, lazily evaluated */\n let markerOffset = 0\n\n const { resizeRef, contentRect } = useResizeObserver()\n watchEffect(() => {\n resizeRef.value = containerRef.value\n })\n const viewportHeight = computed(() => {\n return containerRef.value === document.documentElement\n ? display.height.value\n : contentRect.value?.height || parseInt(props.height!) || 0\n })\n /** All static elements have been rendered and we have an assumed item height */\n const hasInitialRender = computed(() => {\n return !!(containerRef.value && markerRef.value && viewportHeight.value && itemHeight.value)\n })\n\n let sizes = Array.from<number | null>({ length: items.value.length })\n let offsets = Array.from<number>({ length: items.value.length })\n const updateTime = shallowRef(0)\n let targetScrollIndex = -1\n\n function getSize (index: number) {\n return sizes[index] || itemHeight.value\n }\n\n const updateOffsets = debounce(() => {\n const start = performance.now()\n offsets[0] = 0\n const length = items.value.length\n for (let i = 1; i <= length - 1; i++) {\n offsets[i] = (offsets[i - 1] || 0) + getSize(i - 1)\n }\n updateTime.value = Math.max(updateTime.value, performance.now() - start)\n }, updateTime)\n\n const unwatch = watch(hasInitialRender, v => {\n if (!v) return\n // First render is complete, update offsets and visible\n // items in case our assumed item height was incorrect\n\n unwatch()\n markerOffset = markerRef.value!.offsetTop\n updateOffsets.immediate()\n calculateVisibleItems()\n\n if (!~targetScrollIndex) return\n\n nextTick(() => {\n IN_BROWSER && window.requestAnimationFrame(() => {\n scrollToIndex(targetScrollIndex)\n targetScrollIndex = -1\n })\n })\n })\n watch(viewportHeight, (val, oldVal) => {\n oldVal && calculateVisibleItems()\n })\n\n onScopeDispose(() => {\n updateOffsets.clear()\n })\n\n function handleItemResize (index: number, height: number) {\n const prevHeight = sizes[index]\n const prevMinHeight = itemHeight.value\n\n itemHeight.value = prevMinHeight ? Math.min(itemHeight.value, height) : height\n\n if (prevHeight !== height || prevMinHeight !== itemHeight.value) {\n sizes[index] = height\n updateOffsets()\n }\n }\n\n function calculateOffset (index: number) {\n index = clamp(index, 0, items.value.length - 1)\n return offsets[index] || 0\n }\n\n function calculateIndex (scrollTop: number) {\n return binaryClosest(offsets, scrollTop)\n }\n\n let lastScrollTop = 0\n let scrollVelocity = 0\n let lastScrollTime = 0\n function handleScroll () {\n if (!containerRef.value || !markerRef.value) return\n\n const scrollTop = containerRef.value.scrollTop\n const scrollTime = performance.now()\n const scrollDeltaT = scrollTime - lastScrollTime\n\n if (scrollDeltaT > 500) {\n scrollVelocity = Math.sign(scrollTop - lastScrollTop)\n\n // Not super important, only update at the\n // start of a scroll sequence to avoid reflows\n markerOffset = markerRef.value.offsetTop\n } else {\n scrollVelocity = scrollTop - lastScrollTop\n }\n\n lastScrollTop = scrollTop\n lastScrollTime = scrollTime\n\n calculateVisibleItems()\n }\n function handleScrollend () {\n if (!containerRef.value || !markerRef.value) return\n\n scrollVelocity = 0\n lastScrollTime = 0\n\n calculateVisibleItems()\n }\n\n let raf = -1\n function calculateVisibleItems () {\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(_calculateVisibleItems)\n }\n function _calculateVisibleItems () {\n if (!containerRef.value || !viewportHeight.value) return\n const scrollTop = lastScrollTop - markerOffset\n const direction = Math.sign(scrollVelocity)\n\n const startPx = Math.max(0, scrollTop - BUFFER_PX)\n const start = clamp(calculateIndex(startPx), 0, items.value.length)\n\n const endPx = scrollTop + viewportHeight.value + BUFFER_PX\n const end = clamp(calculateIndex(endPx) + 1, start + 1, items.value.length)\n\n if (\n // Only update the side we're scrolling towards,\n // the other side will be updated incidentally\n (direction !== UP || start < first.value) &&\n (direction !== DOWN || end > last.value)\n ) {\n const topOverflow = calculateOffset(first.value) - calculateOffset(start)\n const bottomOverflow = calculateOffset(end) - calculateOffset(last.value)\n const bufferOverflow = Math.max(topOverflow, bottomOverflow)\n\n if (bufferOverflow > BUFFER_PX) {\n first.value = start\n last.value = end\n } else {\n // Only update the side that's reached its limit if there's still buffer left\n if (start <= 0) first.value = start\n if (end >= items.value.length) last.value = end\n }\n }\n\n paddingTop.value = calculateOffset(first.value)\n paddingBottom.value = calculateOffset(items.value.length) - calculateOffset(last.value)\n }\n\n function scrollToIndex (index: number) {\n const offset = calculateOffset(index)\n if (!containerRef.value || (index && !offset)) {\n targetScrollIndex = index\n } else {\n containerRef.value.scrollTop = offset\n }\n }\n\n const computedItems = computed(() => {\n return items.value.slice(first.value, last.value).map((item, index) => ({\n raw: item,\n index: index + first.value,\n }))\n })\n\n watch(items, () => {\n sizes = Array.from({ length: items.value.length })\n offsets = Array.from({ length: items.value.length })\n updateOffsets.immediate()\n calculateVisibleItems()\n }, { deep: true })\n\n return {\n containerRef,\n markerRef,\n computedItems,\n paddingTop,\n paddingBottom,\n scrollToIndex,\n handleScroll,\n handleScrollend,\n handleItemResize,\n }\n}\n\n// https://gist.github.com/robertleeplummerjr/1cc657191d34ecd0a324\nfunction binaryClosest (arr: ArrayLike<number>, val: number) {\n let high = arr.length - 1\n let low = 0\n let mid = 0\n let item = null\n let target = -1\n\n if (arr[high]! < val) {\n return high\n }\n\n while (low <= high) {\n mid = (low + high) >> 1\n item = arr[mid]!\n\n if (item > val) {\n high = mid - 1\n } else if (item < val) {\n target = mid\n low = mid + 1\n } else if (item === val) {\n return mid\n } else {\n return low\n }\n }\n\n return target\n}\n"],"mappings":"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"}
|
package/lib/entry-bundler.mjs
CHANGED
package/lib/framework.mjs
CHANGED
package/lib/index.d.mts
CHANGED
|
@@ -207,9 +207,7 @@ interface DateAdapter<T = unknown> {
|
|
|
207
207
|
addDays(date: T, amount: number): T;
|
|
208
208
|
addMonths(date: T, amount: number): T;
|
|
209
209
|
getYear(date: T): number;
|
|
210
|
-
getNextYear(date: T): T;
|
|
211
210
|
setYear(date: T, year: number): T;
|
|
212
|
-
getDate(date: T): number;
|
|
213
211
|
getDiff(date: T, comparing: T | string, unit?: string): number;
|
|
214
212
|
getWeekArray(date: T): T[][];
|
|
215
213
|
getWeekdays(): string[];
|
|
@@ -378,9 +376,7 @@ declare function createVuetify(vuetify?: VuetifyOptions): {
|
|
|
378
376
|
addDays: (date: unknown, amount: number) => unknown;
|
|
379
377
|
addMonths: (date: unknown, amount: number) => unknown;
|
|
380
378
|
getYear: (date: unknown) => number;
|
|
381
|
-
getNextYear: (date: unknown) => unknown;
|
|
382
379
|
setYear: (date: unknown, year: number) => unknown;
|
|
383
|
-
getDate: (date: unknown) => number;
|
|
384
380
|
getDiff: (date: unknown, comparing: unknown, unit?: string | undefined) => number;
|
|
385
381
|
getWeekArray: (date: unknown) => unknown[][];
|
|
386
382
|
getWeekdays: () => string[];
|
|
@@ -437,74 +433,75 @@ declare module '@vue/runtime-core' {
|
|
|
437
433
|
}
|
|
438
434
|
|
|
439
435
|
export interface GlobalComponents {
|
|
436
|
+
VApp: typeof import('vuetify/components')['VApp']
|
|
440
437
|
VAppBar: typeof import('vuetify/components')['VAppBar']
|
|
441
438
|
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
|
442
439
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
|
443
|
-
VApp: typeof import('vuetify/components')['VApp']
|
|
444
440
|
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
|
445
|
-
VAvatar: typeof import('vuetify/components')['VAvatar']
|
|
446
441
|
VAlert: typeof import('vuetify/components')['VAlert']
|
|
447
442
|
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
|
448
443
|
VBadge: typeof import('vuetify/components')['VBadge']
|
|
444
|
+
VAvatar: typeof import('vuetify/components')['VAvatar']
|
|
445
|
+
VBanner: typeof import('vuetify/components')['VBanner']
|
|
446
|
+
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
|
447
|
+
VBannerText: typeof import('vuetify/components')['VBannerText']
|
|
449
448
|
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
|
449
|
+
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
|
450
450
|
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
|
451
451
|
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
|
452
452
|
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
|
453
|
-
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
|
454
|
-
VBanner: typeof import('vuetify/components')['VBanner']
|
|
455
|
-
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
|
456
|
-
VBannerText: typeof import('vuetify/components')['VBannerText']
|
|
457
|
-
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
|
458
|
-
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
|
459
453
|
VCard: typeof import('vuetify/components')['VCard']
|
|
460
454
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
|
461
455
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
|
462
456
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
|
463
457
|
VCardText: typeof import('vuetify/components')['VCardText']
|
|
464
458
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
|
465
|
-
|
|
466
|
-
|
|
459
|
+
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
|
460
|
+
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
|
461
|
+
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
|
462
|
+
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
|
467
463
|
VCarousel: typeof import('vuetify/components')['VCarousel']
|
|
468
464
|
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
|
469
|
-
VCode: typeof import('vuetify/components')['VCode']
|
|
470
465
|
VChip: typeof import('vuetify/components')['VChip']
|
|
471
|
-
|
|
472
|
-
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
|
473
|
-
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
|
466
|
+
VCode: typeof import('vuetify/components')['VCode']
|
|
474
467
|
VCombobox: typeof import('vuetify/components')['VCombobox']
|
|
475
|
-
VDataTable: typeof import('vuetify/components')['VDataTable']
|
|
476
|
-
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
|
477
|
-
VDataTableRows: typeof import('vuetify/components')['VDataTableRows']
|
|
478
|
-
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
|
479
|
-
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
|
480
|
-
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
|
481
468
|
VCounter: typeof import('vuetify/components')['VCounter']
|
|
482
|
-
|
|
469
|
+
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
|
470
|
+
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
|
483
471
|
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
|
484
472
|
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
|
485
473
|
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
|
486
474
|
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
|
487
475
|
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
|
488
476
|
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
|
477
|
+
VDataTable: typeof import('vuetify/components')['VDataTable']
|
|
478
|
+
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
|
479
|
+
VDataTableRows: typeof import('vuetify/components')['VDataTableRows']
|
|
480
|
+
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
|
481
|
+
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
|
482
|
+
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
|
489
483
|
VDivider: typeof import('vuetify/components')['VDivider']
|
|
490
|
-
VField: typeof import('vuetify/components')['VField']
|
|
491
|
-
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
|
492
|
-
VFooter: typeof import('vuetify/components')['VFooter']
|
|
493
484
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
|
494
485
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
|
495
486
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
|
496
487
|
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
|
488
|
+
VDialog: typeof import('vuetify/components')['VDialog']
|
|
489
|
+
VFooter: typeof import('vuetify/components')['VFooter']
|
|
497
490
|
VFileInput: typeof import('vuetify/components')['VFileInput']
|
|
491
|
+
VImg: typeof import('vuetify/components')['VImg']
|
|
492
|
+
VField: typeof import('vuetify/components')['VField']
|
|
493
|
+
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
|
498
494
|
VIcon: typeof import('vuetify/components')['VIcon']
|
|
499
495
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
|
500
496
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
|
501
497
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
|
502
498
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
|
503
|
-
|
|
499
|
+
VInput: typeof import('vuetify/components')['VInput']
|
|
504
500
|
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
|
501
|
+
VKbd: typeof import('vuetify/components')['VKbd']
|
|
505
502
|
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
|
506
503
|
VItem: typeof import('vuetify/components')['VItem']
|
|
507
|
-
|
|
504
|
+
VBtn: typeof import('vuetify/components')['VBtn']
|
|
508
505
|
VList: typeof import('vuetify/components')['VList']
|
|
509
506
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
|
510
507
|
VListImg: typeof import('vuetify/components')['VListImg']
|
|
@@ -514,27 +511,26 @@ declare module '@vue/runtime-core' {
|
|
|
514
511
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
|
515
512
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
|
516
513
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
|
517
|
-
VKbd: typeof import('vuetify/components')['VKbd']
|
|
518
514
|
VLabel: typeof import('vuetify/components')['VLabel']
|
|
519
515
|
VMenu: typeof import('vuetify/components')['VMenu']
|
|
520
516
|
VMain: typeof import('vuetify/components')['VMain']
|
|
521
|
-
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
|
522
517
|
VMessages: typeof import('vuetify/components')['VMessages']
|
|
518
|
+
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
|
523
519
|
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
|
524
|
-
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
|
525
520
|
VOverlay: typeof import('vuetify/components')['VOverlay']
|
|
526
521
|
VPagination: typeof import('vuetify/components')['VPagination']
|
|
522
|
+
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
|
527
523
|
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
|
528
524
|
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
|
529
|
-
VRating: typeof import('vuetify/components')['VRating']
|
|
530
525
|
VSelect: typeof import('vuetify/components')['VSelect']
|
|
526
|
+
VRating: typeof import('vuetify/components')['VRating']
|
|
531
527
|
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
|
532
528
|
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
|
533
|
-
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
|
534
529
|
VSheet: typeof import('vuetify/components')['VSheet']
|
|
535
|
-
VSlider: typeof import('vuetify/components')['VSlider']
|
|
536
530
|
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
|
537
531
|
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
|
532
|
+
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
|
533
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
|
538
534
|
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
|
539
535
|
VStepper: typeof import('vuetify/components')['VStepper']
|
|
540
536
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
|
@@ -542,33 +538,33 @@ declare module '@vue/runtime-core' {
|
|
|
542
538
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
|
543
539
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
|
544
540
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
|
541
|
+
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
|
542
|
+
VSwitch: typeof import('vuetify/components')['VSwitch']
|
|
545
543
|
VTabs: typeof import('vuetify/components')['VTabs']
|
|
546
544
|
VTab: typeof import('vuetify/components')['VTab']
|
|
547
|
-
VSwitch: typeof import('vuetify/components')['VSwitch']
|
|
548
|
-
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
|
549
|
-
VTextField: typeof import('vuetify/components')['VTextField']
|
|
550
545
|
VTable: typeof import('vuetify/components')['VTable']
|
|
551
|
-
VTimeline: typeof import('vuetify/components')['VTimeline']
|
|
552
|
-
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
|
553
|
-
VTooltip: typeof import('vuetify/components')['VTooltip']
|
|
554
546
|
VTextarea: typeof import('vuetify/components')['VTextarea']
|
|
555
547
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
|
556
548
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
|
557
549
|
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
|
550
|
+
VTimeline: typeof import('vuetify/components')['VTimeline']
|
|
551
|
+
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
|
552
|
+
VTextField: typeof import('vuetify/components')['VTextField']
|
|
558
553
|
VWindow: typeof import('vuetify/components')['VWindow']
|
|
559
554
|
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
|
555
|
+
VTooltip: typeof import('vuetify/components')['VTooltip']
|
|
560
556
|
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
|
557
|
+
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
|
561
558
|
VContainer: typeof import('vuetify/components')['VContainer']
|
|
562
559
|
VCol: typeof import('vuetify/components')['VCol']
|
|
563
560
|
VRow: typeof import('vuetify/components')['VRow']
|
|
564
561
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
|
565
|
-
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
|
566
562
|
VForm: typeof import('vuetify/components')['VForm']
|
|
567
563
|
VHover: typeof import('vuetify/components')['VHover']
|
|
564
|
+
VLazy: typeof import('vuetify/components')['VLazy']
|
|
568
565
|
VLayout: typeof import('vuetify/components')['VLayout']
|
|
569
566
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
|
570
567
|
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
|
571
|
-
VLazy: typeof import('vuetify/components')['VLazy']
|
|
572
568
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
|
573
569
|
VParallax: typeof import('vuetify/components')['VParallax']
|
|
574
570
|
VRadio: typeof import('vuetify/components')['VRadio']
|
|
@@ -47,8 +47,6 @@ declare const VConfirmEdit: {
|
|
|
47
47
|
cancelText: string;
|
|
48
48
|
okText: string;
|
|
49
49
|
color?: string | undefined;
|
|
50
|
-
"onUpdate:modelValue"?: ((value: any) => any) | undefined;
|
|
51
|
-
onSave?: ((value: any) => any) | undefined;
|
|
52
50
|
onCancel?: (() => any) | undefined;
|
|
53
51
|
} & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
|
|
54
52
|
cancelText: string;
|
|
@@ -56,8 +54,6 @@ declare const VConfirmEdit: {
|
|
|
56
54
|
} & {
|
|
57
55
|
color?: string | undefined;
|
|
58
56
|
} & {
|
|
59
|
-
"onUpdate:modelValue"?: ((value: any) => any) | undefined;
|
|
60
|
-
onSave?: ((value: any) => any) | undefined;
|
|
61
57
|
onCancel?: (() => any) | undefined;
|
|
62
58
|
}, "cancelText" | "okText">;
|
|
63
59
|
$attrs: {
|
|
@@ -86,8 +82,6 @@ declare const VConfirmEdit: {
|
|
|
86
82
|
} & {
|
|
87
83
|
color?: string | undefined;
|
|
88
84
|
} & {
|
|
89
|
-
"onUpdate:modelValue"?: ((value: any) => any) | undefined;
|
|
90
|
-
onSave?: ((value: any) => any) | undefined;
|
|
91
85
|
onCancel?: (() => any) | undefined;
|
|
92
86
|
}, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
|
|
93
87
|
cancel: () => true;
|
|
@@ -131,8 +125,6 @@ declare const VConfirmEdit: {
|
|
|
131
125
|
} & {
|
|
132
126
|
color?: string | undefined;
|
|
133
127
|
} & {
|
|
134
|
-
"onUpdate:modelValue"?: ((value: any) => any) | undefined;
|
|
135
|
-
onSave?: ((value: any) => any) | undefined;
|
|
136
128
|
onCancel?: (() => any) | undefined;
|
|
137
129
|
} & vue.ShallowUnwrapRef<{}> & {} & vue.ComponentCustomProperties & {};
|
|
138
130
|
__isFragment?: undefined;
|
|
@@ -144,8 +136,6 @@ declare const VConfirmEdit: {
|
|
|
144
136
|
} & {
|
|
145
137
|
color?: string | undefined;
|
|
146
138
|
} & {
|
|
147
|
-
"onUpdate:modelValue"?: ((value: any) => any) | undefined;
|
|
148
|
-
onSave?: ((value: any) => any) | undefined;
|
|
149
139
|
onCancel?: (() => any) | undefined;
|
|
150
140
|
}, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
|
|
151
141
|
cancel: () => true;
|
|
@@ -53,8 +53,6 @@ declare const VConfirmEdit: {
|
|
|
53
53
|
cancelText: string;
|
|
54
54
|
okText: string;
|
|
55
55
|
color?: string | undefined;
|
|
56
|
-
"onUpdate:modelValue"?: ((value: any) => any) | undefined;
|
|
57
|
-
onSave?: ((value: any) => any) | undefined;
|
|
58
56
|
onCancel?: (() => any) | undefined;
|
|
59
57
|
} & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
|
|
60
58
|
cancelText: string;
|
|
@@ -62,8 +60,6 @@ declare const VConfirmEdit: {
|
|
|
62
60
|
} & {
|
|
63
61
|
color?: string | undefined;
|
|
64
62
|
} & {
|
|
65
|
-
"onUpdate:modelValue"?: ((value: any) => any) | undefined;
|
|
66
|
-
onSave?: ((value: any) => any) | undefined;
|
|
67
63
|
onCancel?: (() => any) | undefined;
|
|
68
64
|
}, "cancelText" | "okText">;
|
|
69
65
|
$attrs: {
|
|
@@ -92,8 +88,6 @@ declare const VConfirmEdit: {
|
|
|
92
88
|
} & {
|
|
93
89
|
color?: string | undefined;
|
|
94
90
|
} & {
|
|
95
|
-
"onUpdate:modelValue"?: ((value: any) => any) | undefined;
|
|
96
|
-
onSave?: ((value: any) => any) | undefined;
|
|
97
91
|
onCancel?: (() => any) | undefined;
|
|
98
92
|
}, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
|
|
99
93
|
cancel: () => true;
|
|
@@ -137,8 +131,6 @@ declare const VConfirmEdit: {
|
|
|
137
131
|
} & {
|
|
138
132
|
color?: string | undefined;
|
|
139
133
|
} & {
|
|
140
|
-
"onUpdate:modelValue"?: ((value: any) => any) | undefined;
|
|
141
|
-
onSave?: ((value: any) => any) | undefined;
|
|
142
134
|
onCancel?: (() => any) | undefined;
|
|
143
135
|
} & vue.ShallowUnwrapRef<{}> & {} & vue.ComponentCustomProperties & {};
|
|
144
136
|
__isFragment?: undefined;
|
|
@@ -150,8 +142,6 @@ declare const VConfirmEdit: {
|
|
|
150
142
|
} & {
|
|
151
143
|
color?: string | undefined;
|
|
152
144
|
} & {
|
|
153
|
-
"onUpdate:modelValue"?: ((value: any) => any) | undefined;
|
|
154
|
-
onSave?: ((value: any) => any) | undefined;
|
|
155
145
|
onCancel?: (() => any) | undefined;
|
|
156
146
|
}, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
|
|
157
147
|
cancel: () => true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineComponent.mjs","names":["injectDefaults","internalUseDefaults","defineComponent","_defineComponent","consoleWarn","pick","propsFactory","options","_setup","setup","name","props","propKeys","Object","keys","filter","key","filterProps","_as","String","ctx","defaults","value","_props","provideSubDefaults","setupBindings","genericComponent","exposeDefaults","arguments","length","undefined","defineFunctionalComponent","render"],"sources":["../../src/util/defineComponent.tsx"],"sourcesContent":["// Composables\nimport { injectDefaults, internalUseDefaults } from '@/composables/defaults'\n\n// Utilities\nimport {\n defineComponent as _defineComponent, // eslint-disable-line no-restricted-imports\n} from 'vue'\nimport { consoleWarn } from '@/util/console'\nimport { pick } from '@/util/helpers'\nimport { propsFactory } from '@/util/propsFactory'\n\n// Types\nimport type {\n AllowedComponentProps,\n ComponentCustomProps,\n ComponentInjectOptions,\n ComponentObjectPropsOptions,\n ComponentOptions,\n ComponentOptionsMixin,\n ComponentOptionsWithObjectProps,\n ComponentOptionsWithoutProps,\n ComponentPropsOptions,\n ComputedOptions,\n DefineComponent,\n EmitsOptions,\n ExtractDefaultPropTypes,\n ExtractPropTypes,\n FunctionalComponent,\n MethodOptions,\n ObjectEmitsOptions,\n SlotsType,\n VNode,\n VNodeChild,\n VNodeProps,\n} from 'vue'\n\n// No props\nexport function defineComponent<\n Props = {},\n RawBindings = {},\n D = {},\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = {},\n EE extends string = string,\n I extends {} = {},\n II extends string = string,\n S extends SlotsType = {},\n>(\n options: ComponentOptionsWithoutProps<\n Props,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n I,\n II,\n S\n >\n): DefineComponent<Props, RawBindings, D, C, M, Mixin, Extends, E, EE>\n\n// Object Props\nexport function defineComponent<\n PropsOptions extends Readonly<ComponentPropsOptions>,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = {},\n EE extends string = string,\n I extends {} = {},\n II extends string = string,\n S extends SlotsType = {},\n>(\n options: ComponentOptionsWithObjectProps<\n PropsOptions,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n I,\n II,\n S\n >\n): DefineComponent<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE> & FilterPropsOptions<PropsOptions>\n\n// Implementation\nexport function defineComponent (options: ComponentOptions) {\n options._setup = options._setup ?? options.setup\n\n if (!options.name) {\n consoleWarn('The component is missing an explicit name, unable to generate default prop value')\n\n return options\n }\n\n if (options._setup) {\n options.props = propsFactory(options.props ?? {}, options.name)()\n const propKeys = Object.keys(options.props).filter(key => key !== 'class' && key !== 'style')\n options.filterProps = function filterProps (props: Record<string, any>) {\n return pick(props, propKeys)\n }\n\n options.props._as = String\n options.setup = function setup (props: Record<string, any>, ctx) {\n const defaults = injectDefaults()\n\n // Skip props proxy if defaults are not provided\n if (!defaults.value) return options._setup(props, ctx)\n\n const { props: _props, provideSubDefaults } = internalUseDefaults(props, props._as ?? options.name, defaults)\n\n const setupBindings = options._setup(_props, ctx)\n\n provideSubDefaults()\n\n return setupBindings\n }\n }\n\n return options\n}\n\ntype ToListeners<T extends string | number | symbol> = { [K in T]: K extends `on${infer U}` ? Uncapitalize<U> : K }[T]\n\nexport type SlotsToProps<\n U extends RawSlots,\n T = MakeInternalSlots<U>\n> = {\n $children?: (\n | VNodeChild\n | (T extends { default: infer V } ? V : {})\n | { [K in keyof T]?: T[K] }\n )\n 'v-slots'?: { [K in keyof T]?: T[K] | false }\n} & {\n [K in keyof T as `v-slot:${K & string}`]?: T[K] | false\n}\n\ntype RawSlots = Record<string, unknown>\ntype Slot<T> = [T] extends [never] ? () => VNodeChild : (arg: T) => VNodeChild\ntype VueSlot<T> = [T] extends [never] ? () => VNode[] : (arg: T) => VNode[]\ntype MakeInternalSlots<T extends RawSlots> = {\n [K in keyof T]: Slot<T[K]>\n}\ntype MakeSlots<T extends RawSlots> = {\n [K in keyof T]: VueSlot<T[K]>\n}\n\nexport type GenericProps<Props, Slots extends Record<string, unknown>> = {\n $props: Props & SlotsToProps<Slots>\n $slots: MakeSlots<Slots>\n}\n\ntype DefineComponentWithGenericProps<T extends (new (props: Record<string, any>, slots: RawSlots) => {\n $props?: Record<string, any>\n})> = <\n PropsOptions extends Readonly<ComponentObjectPropsOptions>,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = Record<string, any>,\n EE extends string = string,\n I extends ComponentInjectOptions = {},\n II extends string = string,\n // Slots extends RawSlots = ConstructorParameters<T> extends [any, infer SS extends RawSlots | undefined] ? Exclude<SS, undefined> : {},\n Slots extends RawSlots = ConstructorParameters<T>[1],\n S extends SlotsType = SlotsType<Partial<MakeSlots<Slots>>>,\n III = InstanceType<T>,\n P = III extends Record<'$props', any>\n ? Omit<PropsOptions, keyof III['$props']>\n : PropsOptions,\n Base = DefineComponent<\n P,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E extends any[] ? E : III extends Record<'$props', any> ? Omit<E, ToListeners<keyof III['$props']>> : E,\n EE,\n PublicProps,\n ExtractPropTypes<P> & ({} extends E ? {} : EmitsToProps<E>),\n ExtractDefaultPropTypes<P>,\n S\n >\n>(\n options: ComponentOptionsWithObjectProps<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE, I, II, S>\n) => Base & T & FilterPropsOptions<PropsOptions>\n\ntype DefineComponentWithSlots<Slots extends RawSlots> = <\n PropsOptions extends Readonly<ComponentPropsOptions>,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = Record<string, any>,\n EE extends string = string,\n I extends ComponentInjectOptions = {},\n II extends string = string,\n S extends SlotsType = SlotsType<Partial<MakeSlots<Slots>>>,\n>(\n options: ComponentOptionsWithObjectProps<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE, I, II, S>\n) => DefineComponent<\n ExtractPropTypes<PropsOptions> & SlotsToProps<Slots>,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n PublicProps,\n ExtractPropTypes<PropsOptions> & SlotsToProps<Slots> & ({} extends E ? {} : EmitsToProps<E>),\n ExtractDefaultPropTypes<PropsOptions>,\n S\n> & FilterPropsOptions<PropsOptions>\n\n// No argument - simple default slot\nexport function genericComponent (exposeDefaults?: boolean): DefineComponentWithSlots<{ default: never }>\n\n// Generic constructor argument - generic props and slots\nexport function genericComponent<T extends (new (props: Record<string, any>, slots: any) => {\n $props?: Record<string, any>\n})> (exposeDefaults?: boolean): DefineComponentWithGenericProps<T>\n\n// Slots argument - simple slots\nexport function genericComponent<\n Slots extends RawSlots\n> (exposeDefaults?: boolean): DefineComponentWithSlots<Slots>\n\n// Implementation\nexport function genericComponent (exposeDefaults = true) {\n return (options: any) => ((exposeDefaults ? defineComponent : _defineComponent) as any)(options)\n}\n\nexport function defineFunctionalComponent<\n T extends FunctionalComponent<Props>,\n PropsOptions = ComponentObjectPropsOptions,\n Defaults = ExtractDefaultPropTypes<PropsOptions>,\n Props = Readonly<ExtractPropTypes<PropsOptions>>,\n> (props: PropsOptions, render: T): FunctionalComponent<Partial<Defaults> & Omit<Props, keyof Defaults>> {\n render.props = props as any\n return render as any\n}\n\ntype EmitsToProps<T extends EmitsOptions> = T extends string[]\n ? {\n [K in string & `on${Capitalize<T[number]>}`]?: (...args: any[]) => any\n }\n : T extends ObjectEmitsOptions\n ? {\n [K in string &\n `on${Capitalize<string & keyof T>}`]?: K extends `on${infer C}`\n ? T[Uncapitalize<C>] extends null\n ? (...args: any[]) => any\n : (\n ...args: T[Uncapitalize<C>] extends (...args: infer P) => any\n ? P\n : never\n ) => any\n : never\n }\n : {}\n\ntype PublicProps =\n & VNodeProps\n & AllowedComponentProps\n & ComponentCustomProps\n\n// Adds a filterProps method to the component options\nexport interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {\n filterProps<\n T extends Partial<Props>,\n U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>\n > (props: T): Partial<Pick<T, U>>\n}\n"],"mappings":"AAAA;AAAA,SACSA,cAAc,EAAEC,mBAAmB,uCAE5C;AACA,SACEC,eAAe,IAAIC,gBAAgB,CAAE;AAAA,OAChC,KAAK;AAAA,SACHC,WAAW;AAAA,SACXC,IAAI;AAAA,SACJC,YAAY,8BAErB;AAuFA;AACA,OAAO,SAASJ,eAAeA,CAAEK,OAAyB,EAAE;EAC1DA,OAAO,CAACC,MAAM,GAAGD,OAAO,CAACC,MAAM,IAAID,OAAO,CAACE,KAAK;EAEhD,IAAI,CAACF,OAAO,CAACG,IAAI,EAAE;IACjBN,WAAW,CAAC,kFAAkF,CAAC;IAE/F,OAAOG,OAAO;EAChB;EAEA,IAAIA,OAAO,CAACC,MAAM,EAAE;IAClBD,OAAO,CAACI,KAAK,GAAGL,YAAY,CAACC,OAAO,CAACI,KAAK,IAAI,CAAC,CAAC,EAAEJ,OAAO,CAACG,IAAI,CAAC,EAAE;IACjE,MAAME,QAAQ,GAAGC,MAAM,CAACC,IAAI,CAACP,OAAO,CAACI,KAAK,CAAC,CAACI,MAAM,CAACC,GAAG,IAAIA,GAAG,KAAK,OAAO,IAAIA,GAAG,KAAK,OAAO,CAAC;IAC7FT,OAAO,CAACU,WAAW,GAAG,SAASA,WAAWA,CAAEN,KAA0B,EAAE;MACtE,OAAON,IAAI,CAACM,KAAK,EAAEC,QAAQ,CAAC;IAC9B,CAAC;IAEDL,OAAO,CAACI,KAAK,CAACO,GAAG,GAAGC,MAAM;IAC1BZ,OAAO,CAACE,KAAK,GAAG,SAASA,KAAKA,CAAEE,KAA0B,EAAES,GAAG,EAAE;MAC/D,MAAMC,QAAQ,GAAGrB,cAAc,EAAE;;MAEjC;MACA,IAAI,CAACqB,QAAQ,CAACC,KAAK,EAAE,OAAOf,OAAO,CAACC,MAAM,CAACG,KAAK,EAAES,GAAG,CAAC;MAEtD,MAAM;QAAET,KAAK,EAAEY,MAAM;QAAEC;MAAmB,CAAC,GAAGvB,mBAAmB,CAACU,KAAK,EAAEA,KAAK,CAACO,GAAG,IAAIX,OAAO,CAACG,IAAI,EAAEW,QAAQ,CAAC;MAE7G,MAAMI,aAAa,GAAGlB,OAAO,CAACC,MAAM,CAACe,MAAM,EAAEH,GAAG,CAAC;MAEjDI,kBAAkB,EAAE;MAEpB,OAAOC,aAAa;IACtB,CAAC;EACH;EAEA,OAAOlB,OAAO;AAChB;AAqHA;AACA,OAAO,SAASmB,gBAAgBA,CAAA,EAAyB;EAAA,IAAvBC,cAAc,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EACrD,OAAQrB,OAAY,IAAK,CAAEoB,cAAc,GAAGzB,eAAe,GAAGC,gBAAgB,EAAUI,OAAO,CAAC;AAClG;AAEA,OAAO,SAASwB,yBAAyBA,CAKtCpB,KAAmB,EAAEqB,MAAS,EAAwE;EACvGA,MAAM,CAACrB,KAAK,GAAGA,KAAY;EAC3B,OAAOqB,MAAM;AACf"}
|
|
1
|
+
{"version":3,"file":"defineComponent.mjs","names":["injectDefaults","internalUseDefaults","defineComponent","_defineComponent","consoleWarn","pick","propsFactory","options","_setup","setup","name","props","propKeys","Object","keys","filter","key","filterProps","_as","String","ctx","defaults","value","_props","provideSubDefaults","setupBindings","genericComponent","exposeDefaults","arguments","length","undefined","defineFunctionalComponent","render"],"sources":["../../src/util/defineComponent.tsx"],"sourcesContent":["// Composables\nimport { injectDefaults, internalUseDefaults } from '@/composables/defaults'\n\n// Utilities\nimport {\n defineComponent as _defineComponent, // eslint-disable-line no-restricted-imports\n} from 'vue'\nimport { consoleWarn } from '@/util/console'\nimport { pick } from '@/util/helpers'\nimport { propsFactory } from '@/util/propsFactory'\n\n// Types\nimport type {\n AllowedComponentProps,\n ComponentCustomProps,\n ComponentInjectOptions,\n ComponentObjectPropsOptions,\n ComponentOptions,\n ComponentOptionsMixin,\n ComponentOptionsWithObjectProps,\n ComponentOptionsWithoutProps,\n ComponentPropsOptions,\n ComputedOptions,\n DefineComponent,\n EmitsOptions,\n ExtractDefaultPropTypes,\n ExtractPropTypes,\n FunctionalComponent,\n MethodOptions,\n ObjectEmitsOptions,\n SlotsType,\n VNode,\n VNodeChild,\n VNodeProps,\n} from 'vue'\n\n// No props\nexport function defineComponent<\n Props = {},\n RawBindings = {},\n D = {},\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = {},\n EE extends string = string,\n I extends {} = {},\n II extends string = string,\n S extends SlotsType = {},\n>(\n options: ComponentOptionsWithoutProps<\n Props,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n I,\n II,\n S\n >\n): DefineComponent<Props, RawBindings, D, C, M, Mixin, Extends, E, EE>\n\n// Object Props\nexport function defineComponent<\n PropsOptions extends Readonly<ComponentPropsOptions>,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = {},\n EE extends string = string,\n I extends {} = {},\n II extends string = string,\n S extends SlotsType = {},\n>(\n options: ComponentOptionsWithObjectProps<\n PropsOptions,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n I,\n II,\n S\n >\n): DefineComponent<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE> & FilterPropsOptions<PropsOptions>\n\n// Implementation\nexport function defineComponent (options: ComponentOptions) {\n options._setup = options._setup ?? options.setup\n\n if (!options.name) {\n consoleWarn('The component is missing an explicit name, unable to generate default prop value')\n\n return options\n }\n\n if (options._setup) {\n options.props = propsFactory(options.props ?? {}, options.name)()\n const propKeys = Object.keys(options.props).filter(key => key !== 'class' && key !== 'style')\n options.filterProps = function filterProps (props: Record<string, any>) {\n return pick(props, propKeys)\n }\n\n options.props._as = String\n options.setup = function setup (props: Record<string, any>, ctx) {\n const defaults = injectDefaults()\n\n // Skip props proxy if defaults are not provided\n if (!defaults.value) return options._setup(props, ctx)\n\n const { props: _props, provideSubDefaults } = internalUseDefaults(props, props._as ?? options.name, defaults)\n\n const setupBindings = options._setup(_props, ctx)\n\n provideSubDefaults()\n\n return setupBindings\n }\n }\n\n return options\n}\n\ntype ToListeners<T extends string | number | symbol> = { [K in T]: K extends `on${infer U}` ? Uncapitalize<U> : K }[T]\n\nexport type SlotsToProps<\n U extends RawSlots,\n T = MakeInternalSlots<U>\n> = {\n $children?: (\n | VNodeChild\n | (T extends { default: infer V } ? V : {})\n | { [K in keyof T]?: T[K] }\n )\n 'v-slots'?: { [K in keyof T]?: T[K] | false }\n} & {\n [K in keyof T as `v-slot:${K & string}`]?: T[K] | false\n}\n\ntype RawSlots = Record<string, unknown>\ntype Slot<T> = [T] extends [never] ? () => VNodeChild : (arg: T) => VNodeChild\ntype VueSlot<T> = [T] extends [never] ? () => VNode[] : (arg: T) => VNode[]\ntype MakeInternalSlots<T extends RawSlots> = {\n [K in keyof T]: Slot<T[K]>\n}\ntype MakeSlots<T extends RawSlots> = {\n [K in keyof T]: VueSlot<T[K]>\n}\n\nexport type GenericProps<Props, Slots extends Record<string, unknown>> = {\n $props: Props & SlotsToProps<Slots>\n $slots: MakeSlots<Slots>\n}\n\ntype DefineComponentWithGenericProps<T extends (new (props: Record<string, any>, slots: RawSlots) => {\n $props?: Record<string, any>\n})> = <\n PropsOptions extends Readonly<ComponentObjectPropsOptions>,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = Record<string, any>,\n EE extends string = string,\n I extends ComponentInjectOptions = {},\n II extends string = string,\n // Slots extends RawSlots = ConstructorParameters<T> extends [any, infer SS extends RawSlots | undefined] ? Exclude<SS, undefined> : {},\n Slots extends RawSlots = ConstructorParameters<T>[1],\n S extends SlotsType = SlotsType<Partial<MakeSlots<Slots>>>,\n III = InstanceType<T>,\n P = III extends Record<'$props', any>\n ? Omit<PropsOptions, keyof III['$props']>\n : PropsOptions,\n EEE extends EmitsOptions = E extends any[]\n ? E\n : III extends Record<'$props', any>\n ? Omit<E, ToListeners<keyof III['$props']>>\n : E,\n Base = DefineComponent<\n P,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n EEE,\n EE,\n PublicProps,\n ExtractPropTypes<P> & ({} extends E ? {} : EmitsToProps<EEE>),\n ExtractDefaultPropTypes<P>,\n S\n >\n>(\n options: ComponentOptionsWithObjectProps<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE, I, II, S>\n) => Base & T & FilterPropsOptions<PropsOptions>\n\ntype DefineComponentWithSlots<Slots extends RawSlots> = <\n PropsOptions extends Readonly<ComponentPropsOptions>,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = Record<string, any>,\n EE extends string = string,\n I extends ComponentInjectOptions = {},\n II extends string = string,\n S extends SlotsType = SlotsType<Partial<MakeSlots<Slots>>>,\n>(\n options: ComponentOptionsWithObjectProps<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE, I, II, S>\n) => DefineComponent<\n ExtractPropTypes<PropsOptions> & SlotsToProps<Slots>,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n PublicProps,\n ExtractPropTypes<PropsOptions> & SlotsToProps<Slots> & ({} extends E ? {} : EmitsToProps<E>),\n ExtractDefaultPropTypes<PropsOptions>,\n S\n> & FilterPropsOptions<PropsOptions>\n\n// No argument - simple default slot\nexport function genericComponent (exposeDefaults?: boolean): DefineComponentWithSlots<{ default: never }>\n\n// Generic constructor argument - generic props and slots\nexport function genericComponent<T extends (new (props: Record<string, any>, slots: any) => {\n $props?: Record<string, any>\n})> (exposeDefaults?: boolean): DefineComponentWithGenericProps<T>\n\n// Slots argument - simple slots\nexport function genericComponent<\n Slots extends RawSlots\n> (exposeDefaults?: boolean): DefineComponentWithSlots<Slots>\n\n// Implementation\nexport function genericComponent (exposeDefaults = true) {\n return (options: any) => ((exposeDefaults ? defineComponent : _defineComponent) as any)(options)\n}\n\nexport function defineFunctionalComponent<\n T extends FunctionalComponent<Props>,\n PropsOptions = ComponentObjectPropsOptions,\n Defaults = ExtractDefaultPropTypes<PropsOptions>,\n Props = Readonly<ExtractPropTypes<PropsOptions>>,\n> (props: PropsOptions, render: T): FunctionalComponent<Partial<Defaults> & Omit<Props, keyof Defaults>> {\n render.props = props as any\n return render as any\n}\n\ntype EmitsToProps<T extends EmitsOptions> = T extends string[]\n ? {\n [K in string & `on${Capitalize<T[number]>}`]?: (...args: any[]) => any\n }\n : T extends ObjectEmitsOptions\n ? {\n [K in string &\n `on${Capitalize<string & keyof T>}`]?: K extends `on${infer C}`\n ? T[Uncapitalize<C>] extends null\n ? (...args: any[]) => any\n : (\n ...args: T[Uncapitalize<C>] extends (...args: infer P) => any\n ? P\n : never\n ) => any\n : never\n }\n : {}\n\ntype PublicProps =\n & VNodeProps\n & AllowedComponentProps\n & ComponentCustomProps\n\n// Adds a filterProps method to the component options\nexport interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {\n filterProps<\n T extends Partial<Props>,\n U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>\n > (props: T): Partial<Pick<T, U>>\n}\n"],"mappings":"AAAA;AAAA,SACSA,cAAc,EAAEC,mBAAmB,uCAE5C;AACA,SACEC,eAAe,IAAIC,gBAAgB,CAAE;AAAA,OAChC,KAAK;AAAA,SACHC,WAAW;AAAA,SACXC,IAAI;AAAA,SACJC,YAAY,8BAErB;AAuFA;AACA,OAAO,SAASJ,eAAeA,CAAEK,OAAyB,EAAE;EAC1DA,OAAO,CAACC,MAAM,GAAGD,OAAO,CAACC,MAAM,IAAID,OAAO,CAACE,KAAK;EAEhD,IAAI,CAACF,OAAO,CAACG,IAAI,EAAE;IACjBN,WAAW,CAAC,kFAAkF,CAAC;IAE/F,OAAOG,OAAO;EAChB;EAEA,IAAIA,OAAO,CAACC,MAAM,EAAE;IAClBD,OAAO,CAACI,KAAK,GAAGL,YAAY,CAACC,OAAO,CAACI,KAAK,IAAI,CAAC,CAAC,EAAEJ,OAAO,CAACG,IAAI,CAAC,EAAE;IACjE,MAAME,QAAQ,GAAGC,MAAM,CAACC,IAAI,CAACP,OAAO,CAACI,KAAK,CAAC,CAACI,MAAM,CAACC,GAAG,IAAIA,GAAG,KAAK,OAAO,IAAIA,GAAG,KAAK,OAAO,CAAC;IAC7FT,OAAO,CAACU,WAAW,GAAG,SAASA,WAAWA,CAAEN,KAA0B,EAAE;MACtE,OAAON,IAAI,CAACM,KAAK,EAAEC,QAAQ,CAAC;IAC9B,CAAC;IAEDL,OAAO,CAACI,KAAK,CAACO,GAAG,GAAGC,MAAM;IAC1BZ,OAAO,CAACE,KAAK,GAAG,SAASA,KAAKA,CAAEE,KAA0B,EAAES,GAAG,EAAE;MAC/D,MAAMC,QAAQ,GAAGrB,cAAc,EAAE;;MAEjC;MACA,IAAI,CAACqB,QAAQ,CAACC,KAAK,EAAE,OAAOf,OAAO,CAACC,MAAM,CAACG,KAAK,EAAES,GAAG,CAAC;MAEtD,MAAM;QAAET,KAAK,EAAEY,MAAM;QAAEC;MAAmB,CAAC,GAAGvB,mBAAmB,CAACU,KAAK,EAAEA,KAAK,CAACO,GAAG,IAAIX,OAAO,CAACG,IAAI,EAAEW,QAAQ,CAAC;MAE7G,MAAMI,aAAa,GAAGlB,OAAO,CAACC,MAAM,CAACe,MAAM,EAAEH,GAAG,CAAC;MAEjDI,kBAAkB,EAAE;MAEpB,OAAOC,aAAa;IACtB,CAAC;EACH;EAEA,OAAOlB,OAAO;AAChB;AA0HA;AACA,OAAO,SAASmB,gBAAgBA,CAAA,EAAyB;EAAA,IAAvBC,cAAc,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EACrD,OAAQrB,OAAY,IAAK,CAAEoB,cAAc,GAAGzB,eAAe,GAAGC,gBAAgB,EAAUI,OAAO,CAAC;AAClG;AAEA,OAAO,SAASwB,yBAAyBA,CAKtCpB,KAAmB,EAAEqB,MAAS,EAAwE;EACvGA,MAAM,CAACrB,KAAK,GAAGA,KAAY;EAC3B,OAAOqB,MAAM;AACf"}
|