{"version":3,"file":"DHoWxOhu.js","sources":["../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/resizeObserver.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/border.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/density.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/elevation.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/group.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/size.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/components/VIcon/VIcon.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/loader.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/ssrBoot.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/components/transitions/createTransition.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/components/transitions/expand-transition.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/components/transitions/index.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/components/VSlideGroup/helpers.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/components/VSlideGroup/VSlideGroup.mjs"],"sourcesContent":["// Utilities\nimport { onBeforeUnmount, readonly, ref, watch } from 'vue';\nimport { templateRef } from \"../util/index.mjs\";\nimport { IN_BROWSER } from \"../util/globals.mjs\"; // Types\nexport function useResizeObserver(callback) {\n let box = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'content';\n const resizeRef = templateRef();\n const contentRect = ref();\n if (IN_BROWSER) {\n const observer = new ResizeObserver(entries => {\n callback?.(entries, observer);\n if (!entries.length) return;\n if (box === 'content') {\n contentRect.value = entries[0].contentRect;\n } else {\n contentRect.value = entries[0].target.getBoundingClientRect();\n }\n });\n onBeforeUnmount(() => {\n observer.disconnect();\n });\n watch(() => resizeRef.el, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue);\n contentRect.value = undefined;\n }\n if (newValue) observer.observe(newValue);\n }, {\n flush: 'post'\n });\n }\n return {\n resizeRef,\n contentRect: readonly(contentRect)\n };\n}\n//# sourceMappingURL=resizeObserver.mjs.map","// Utilities\nimport { computed, isRef } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeBorderProps = propsFactory({\n border: [Boolean, Number, String]\n}, 'border');\nexport function useBorder(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const borderClasses = computed(() => {\n const border = isRef(props) ? props.value : props.border;\n const classes = [];\n if (border === true || border === '') {\n classes.push(`${name}--border`);\n } else if (typeof border === 'string' || border === 0) {\n for (const value of String(border).split(' ')) {\n classes.push(`border-${value}`);\n }\n }\n return classes;\n });\n return {\n borderClasses\n };\n}\n//# sourceMappingURL=border.mjs.map","// Utilities\nimport { computed } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\nconst allowedDensities = [null, 'default', 'comfortable', 'compact'];\n\n// typeof allowedDensities[number] evalutes to any\n// when generating api types for whatever reason.\n\n// Composables\nexport const makeDensityProps = propsFactory({\n density: {\n type: String,\n default: 'default',\n validator: v => allowedDensities.includes(v)\n }\n}, 'density');\nexport function useDensity(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const densityClasses = computed(() => {\n return `${name}--density-${props.density}`;\n });\n return {\n densityClasses\n };\n}\n//# sourceMappingURL=density.mjs.map","// Utilities\nimport { computed, isRef } from 'vue';\nimport { propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeElevationProps = propsFactory({\n elevation: {\n type: [Number, String],\n validator(v) {\n const value = parseInt(v);\n return !isNaN(value) && value >= 0 &&\n // Material Design has a maximum elevation of 24\n // https://material.io/design/environment/elevation.html#default-elevations\n value <= 24;\n }\n }\n}, 'elevation');\nexport function useElevation(props) {\n const elevationClasses = computed(() => {\n const elevation = isRef(props) ? props.value : props.elevation;\n const classes = [];\n if (elevation == null) return classes;\n classes.push(`elevation-${elevation}`);\n return classes;\n });\n return {\n elevationClasses\n };\n}\n//# sourceMappingURL=elevation.mjs.map","// Composables\nimport { useProxiedModel } from \"./proxiedModel.mjs\"; // Utilities\nimport { computed, inject, onBeforeUnmount, onMounted, onUpdated, provide, reactive, toRef, unref, watch } from 'vue';\nimport { consoleWarn, deepEqual, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory, wrapInArray } from \"../util/index.mjs\"; // Types\nexport const makeGroupProps = propsFactory({\n modelValue: {\n type: null,\n default: undefined\n },\n multiple: Boolean,\n mandatory: [Boolean, String],\n max: Number,\n selectedClass: String,\n disabled: Boolean\n}, 'group');\nexport const makeGroupItemProps = propsFactory({\n value: null,\n disabled: Boolean,\n selectedClass: String\n}, 'group-item');\n\n// Composables\n\nexport function useGroupItem(props, injectKey) {\n let required = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n const vm = getCurrentInstance('useGroupItem');\n if (!vm) {\n throw new Error('[Vuetify] useGroupItem composable must be used inside a component setup function');\n }\n const id = getUid();\n provide(Symbol.for(`${injectKey.description}:id`), id);\n const group = inject(injectKey, null);\n if (!group) {\n if (!required) return group;\n throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`);\n }\n const value = toRef(props, 'value');\n const disabled = computed(() => !!(group.disabled.value || props.disabled));\n group.register({\n id,\n value,\n disabled\n }, vm);\n onBeforeUnmount(() => {\n group.unregister(id);\n });\n const isSelected = computed(() => {\n return group.isSelected(id);\n });\n const isFirst = computed(() => {\n return group.items.value[0].id === id;\n });\n const isLast = computed(() => {\n return group.items.value[group.items.value.length - 1].id === id;\n });\n const selectedClass = computed(() => isSelected.value && [group.selectedClass.value, props.selectedClass]);\n watch(isSelected, value => {\n vm.emit('group:selected', {\n value\n });\n }, {\n flush: 'sync'\n });\n return {\n id,\n isSelected,\n isFirst,\n isLast,\n toggle: () => group.select(id, !isSelected.value),\n select: value => group.select(id, value),\n selectedClass,\n value,\n disabled,\n group\n };\n}\nexport function useGroup(props, injectKey) {\n let isUnmounted = false;\n const items = reactive([]);\n const selected = useProxiedModel(props, 'modelValue', [], v => {\n if (v == null) return [];\n return getIds(items, wrapInArray(v));\n }, v => {\n const arr = getValues(items, v);\n return props.multiple ? arr : arr[0];\n });\n const groupVm = getCurrentInstance('useGroup');\n function register(item, vm) {\n // Is there a better way to fix this typing?\n const unwrapped = item;\n const key = Symbol.for(`${injectKey.description}:id`);\n const children = findChildrenWithProvide(key, groupVm?.vnode);\n const index = children.indexOf(vm);\n if (unref(unwrapped.value) == null) {\n unwrapped.value = index;\n unwrapped.useIndexAsValue = true;\n }\n if (index > -1) {\n items.splice(index, 0, unwrapped);\n } else {\n items.push(unwrapped);\n }\n }\n function unregister(id) {\n if (isUnmounted) return;\n\n // TODO: re-evaluate this line's importance in the future\n // should we only modify the model if mandatory is set.\n // selected.value = selected.value.filter(v => v !== id)\n\n forceMandatoryValue();\n const index = items.findIndex(item => item.id === id);\n items.splice(index, 1);\n }\n\n // If mandatory and nothing is selected, then select first non-disabled item\n function forceMandatoryValue() {\n const item = items.find(item => !item.disabled);\n if (item && props.mandatory === 'force' && !selected.value.length) {\n selected.value = [item.id];\n }\n }\n onMounted(() => {\n forceMandatoryValue();\n });\n onBeforeUnmount(() => {\n isUnmounted = true;\n });\n onUpdated(() => {\n // #19655 update the items that use the index as the value.\n for (let i = 0; i < items.length; i++) {\n if (items[i].useIndexAsValue) {\n items[i].value = i;\n }\n }\n });\n function select(id, value) {\n const item = items.find(item => item.id === id);\n if (value && item?.disabled) return;\n if (props.multiple) {\n const internalValue = selected.value.slice();\n const index = internalValue.findIndex(v => v === id);\n const isSelected = ~index;\n value = value ?? !isSelected;\n\n // We can't remove value if group is\n // mandatory, value already exists,\n // and it is the only value\n if (isSelected && props.mandatory && internalValue.length <= 1) return;\n\n // We can't add value if it would\n // cause max limit to be exceeded\n if (!isSelected && props.max != null && internalValue.length + 1 > props.max) return;\n if (index < 0 && value) internalValue.push(id);else if (index >= 0 && !value) internalValue.splice(index, 1);\n selected.value = internalValue;\n } else {\n const isSelected = selected.value.includes(id);\n if (props.mandatory && isSelected) return;\n selected.value = value ?? !isSelected ? [id] : [];\n }\n }\n function step(offset) {\n // getting an offset from selected value obviously won't work with multiple values\n if (props.multiple) consoleWarn('This method is not supported when using \"multiple\" prop');\n if (!selected.value.length) {\n const item = items.find(item => !item.disabled);\n item && (selected.value = [item.id]);\n } else {\n const currentId = selected.value[0];\n const currentIndex = items.findIndex(i => i.id === currentId);\n let newIndex = (currentIndex + offset) % items.length;\n let newItem = items[newIndex];\n while (newItem.disabled && newIndex !== currentIndex) {\n newIndex = (newIndex + offset) % items.length;\n newItem = items[newIndex];\n }\n if (newItem.disabled) return;\n selected.value = [items[newIndex].id];\n }\n }\n const state = {\n register,\n unregister,\n selected,\n select,\n disabled: toRef(props, 'disabled'),\n prev: () => step(items.length - 1),\n next: () => step(1),\n isSelected: id => selected.value.includes(id),\n selectedClass: computed(() => props.selectedClass),\n items: computed(() => items),\n getItemIndex: value => getItemIndex(items, value)\n };\n provide(injectKey, state);\n return state;\n}\nfunction getItemIndex(items, value) {\n const ids = getIds(items, [value]);\n if (!ids.length) return -1;\n return items.findIndex(item => item.id === ids[0]);\n}\nfunction getIds(items, modelValue) {\n const ids = [];\n modelValue.forEach(value => {\n const item = items.find(item => deepEqual(value, item.value));\n const itemByIndex = items[value];\n if (item?.value != null) {\n ids.push(item.id);\n } else if (itemByIndex != null) {\n ids.push(itemByIndex.id);\n }\n });\n return ids;\n}\nfunction getValues(items, ids) {\n const values = [];\n ids.forEach(id => {\n const itemIndex = items.findIndex(item => item.id === id);\n if (~itemIndex) {\n const item = items[itemIndex];\n values.push(item.value != null ? item.value : itemIndex);\n }\n });\n return values;\n}\n//# sourceMappingURL=group.mjs.map","// Utilities\nimport { convertToUnit, destructComputed, getCurrentInstanceName, includes, propsFactory } from \"../util/index.mjs\"; // Types\nconst predefinedSizes = ['x-small', 'small', 'default', 'large', 'x-large'];\n// Composables\nexport const makeSizeProps = propsFactory({\n size: {\n type: [String, Number],\n default: 'default'\n }\n}, 'size');\nexport function useSize(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n return destructComputed(() => {\n let sizeClasses;\n let sizeStyles;\n if (includes(predefinedSizes, props.size)) {\n sizeClasses = `${name}--size-${props.size}`;\n } else if (props.size) {\n sizeStyles = {\n width: convertToUnit(props.size),\n height: convertToUnit(props.size)\n };\n }\n return {\n sizeClasses,\n sizeStyles\n };\n });\n}\n//# sourceMappingURL=size.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VIcon.css\";\n\n// Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { IconValue, useIcon } from \"../../composables/icons.mjs\";\nimport { makeSizeProps, useSize } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, ref, Text, toRef } from 'vue';\nimport { convertToUnit, flattenFragments, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVIconProps = propsFactory({\n color: String,\n disabled: Boolean,\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n ...makeComponentProps(),\n ...makeSizeProps(),\n ...makeTagProps({\n tag: 'i'\n }),\n ...makeThemeProps()\n}, 'VIcon');\nexport const VIcon = genericComponent()({\n name: 'VIcon',\n props: makeVIconProps(),\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const slotIcon = ref();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n iconData\n } = useIcon(computed(() => slotIcon.value || props.icon));\n const {\n sizeClasses\n } = useSize(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(toRef(props, 'color'));\n useRender(() => {\n const slotValue = slots.default?.();\n if (slotValue) {\n slotIcon.value = flattenFragments(slotValue).filter(node => node.type === Text && node.children && typeof node.children === 'string')[0]?.children;\n }\n const hasClick = !!(attrs.onClick || attrs.onClickOnce);\n return _createVNode(iconData.value.component, {\n \"tag\": props.tag,\n \"icon\": iconData.value.icon,\n \"class\": ['v-icon', 'notranslate', themeClasses.value, sizeClasses.value, textColorClasses.value, {\n 'v-icon--clickable': hasClick,\n 'v-icon--disabled': props.disabled,\n 'v-icon--start': props.start,\n 'v-icon--end': props.end\n }, props.class],\n \"style\": [!sizeClasses.value ? {\n fontSize: convertToUnit(props.size),\n height: convertToUnit(props.size),\n width: convertToUnit(props.size)\n } : undefined, textColorStyles.value, props.style],\n \"role\": hasClick ? 'button' : undefined,\n \"aria-hidden\": !hasClick,\n \"tabindex\": hasClick ? props.disabled ? -1 : 0 : undefined\n }, {\n default: () => [slotValue]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VIcon.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Components\nimport { VProgressLinear } from \"../components/VProgressLinear/index.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeLoaderProps = propsFactory({\n loading: [Boolean, String]\n}, 'loader');\nexport function useLoader(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const loaderClasses = computed(() => ({\n [`${name}--loading`]: props.loading\n }));\n return {\n loaderClasses\n };\n}\nexport function LoaderSlot(props, _ref) {\n let {\n slots\n } = _ref;\n return _createVNode(\"div\", {\n \"class\": `${props.name}__loader`\n }, [slots.default?.({\n color: props.color,\n isActive: props.active\n }) || _createVNode(VProgressLinear, {\n \"absolute\": props.absolute,\n \"active\": props.active,\n \"color\": props.color,\n \"height\": \"2\",\n \"indeterminate\": true\n }, null)]);\n}\n//# sourceMappingURL=loader.mjs.map","// Utilities\nimport { computed, onMounted, readonly, shallowRef } from 'vue';\n\n// Composables\nexport function useSsrBoot() {\n const isBooted = shallowRef(false);\n onMounted(() => {\n window.requestAnimationFrame(() => {\n isBooted.value = true;\n });\n });\n const ssrBootStyles = computed(() => !isBooted.value ? {\n transition: 'none !important'\n } : undefined);\n return {\n ssrBootStyles,\n isBooted: readonly(isBooted)\n };\n}\n//# sourceMappingURL=ssrBoot.mjs.map","// Utilities\nimport { h, Transition, TransitionGroup } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const makeTransitionProps = propsFactory({\n disabled: Boolean,\n group: Boolean,\n hideOnLeave: Boolean,\n leaveAbsolute: Boolean,\n mode: String,\n origin: String\n}, 'transition');\nexport function createCssTransition(name, origin, mode) {\n return genericComponent()({\n name,\n props: makeTransitionProps({\n mode,\n origin\n }),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const functions = {\n onBeforeEnter(el) {\n if (props.origin) {\n el.style.transformOrigin = props.origin;\n }\n },\n onLeave(el) {\n if (props.leaveAbsolute) {\n const {\n offsetTop,\n offsetLeft,\n offsetWidth,\n offsetHeight\n } = el;\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height\n };\n el.style.position = 'absolute';\n el.style.top = `${offsetTop}px`;\n el.style.left = `${offsetLeft}px`;\n el.style.width = `${offsetWidth}px`;\n el.style.height = `${offsetHeight}px`;\n }\n if (props.hideOnLeave) {\n el.style.setProperty('display', 'none', 'important');\n }\n },\n onAfterLeave(el) {\n if (props.leaveAbsolute && el?._transitionInitialStyles) {\n const {\n position,\n top,\n left,\n width,\n height\n } = el._transitionInitialStyles;\n delete el._transitionInitialStyles;\n el.style.position = position || '';\n el.style.top = top || '';\n el.style.left = left || '';\n el.style.width = width || '';\n el.style.height = height || '';\n }\n }\n };\n return () => {\n const tag = props.group ? TransitionGroup : Transition;\n return h(tag, {\n name: props.disabled ? '' : name,\n css: !props.disabled,\n ...(props.group ? undefined : {\n mode: props.mode\n }),\n ...(props.disabled ? {} : functions)\n }, slots.default);\n };\n }\n });\n}\nexport function createJavascriptTransition(name, functions) {\n let mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'in-out';\n return genericComponent()({\n name,\n props: {\n mode: {\n type: String,\n default: mode\n },\n disabled: Boolean,\n group: Boolean\n },\n setup(props, _ref2) {\n let {\n slots\n } = _ref2;\n const tag = props.group ? TransitionGroup : Transition;\n return () => {\n return h(tag, {\n name: props.disabled ? '' : name,\n css: !props.disabled,\n // mode: props.mode, // TODO: vuejs/vue-next#3104\n ...(props.disabled ? {} : functions)\n }, slots.default);\n };\n }\n });\n}\n//# sourceMappingURL=createTransition.mjs.map","// Utilities\nimport { camelize } from 'vue';\nexport default function () {\n let expandedParentClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n let x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n const sizeProperty = x ? 'width' : 'height';\n const offsetProperty = camelize(`offset-${sizeProperty}`);\n return {\n onBeforeEnter(el) {\n el._parent = el.parentNode;\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty]\n };\n },\n onEnter(el) {\n const initialStyle = el._initialStyle;\n el.style.setProperty('transition', 'none', 'important');\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden';\n const offset = `${el[offsetProperty]}px`;\n el.style[sizeProperty] = '0';\n void el.offsetHeight; // force reflow\n\n el.style.transition = initialStyle.transition;\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass);\n }\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset;\n });\n },\n onAfterEnter: resetStyles,\n onEnterCancelled: resetStyles,\n onLeave(el) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty]\n };\n el.style.overflow = 'hidden';\n el.style[sizeProperty] = `${el[offsetProperty]}px`;\n void el.offsetHeight; // force reflow\n\n requestAnimationFrame(() => el.style[sizeProperty] = '0');\n },\n onAfterLeave,\n onLeaveCancelled: onAfterLeave\n };\n function onAfterLeave(el) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass);\n }\n resetStyles(el);\n }\n function resetStyles(el) {\n const size = el._initialStyle[sizeProperty];\n el.style.overflow = el._initialStyle.overflow;\n if (size != null) el.style[sizeProperty] = size;\n delete el._initialStyle;\n }\n}\n//# sourceMappingURL=expand-transition.mjs.map","import { createCssTransition, createJavascriptTransition } from \"./createTransition.mjs\";\nimport ExpandTransitionGenerator from \"./expand-transition.mjs\"; // Component specific transitions\nexport const VFabTransition = createCssTransition('fab-transition', 'center center', 'out-in');\n\n// Generic transitions\nexport const VDialogBottomTransition = createCssTransition('dialog-bottom-transition');\nexport const VDialogTopTransition = createCssTransition('dialog-top-transition');\nexport const VFadeTransition = createCssTransition('fade-transition');\nexport const VScaleTransition = createCssTransition('scale-transition');\nexport const VScrollXTransition = createCssTransition('scroll-x-transition');\nexport const VScrollXReverseTransition = createCssTransition('scroll-x-reverse-transition');\nexport const VScrollYTransition = createCssTransition('scroll-y-transition');\nexport const VScrollYReverseTransition = createCssTransition('scroll-y-reverse-transition');\nexport const VSlideXTransition = createCssTransition('slide-x-transition');\nexport const VSlideXReverseTransition = createCssTransition('slide-x-reverse-transition');\nexport const VSlideYTransition = createCssTransition('slide-y-transition');\nexport const VSlideYReverseTransition = createCssTransition('slide-y-reverse-transition');\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator());\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true));\nexport { VDialogTransition } from \"./dialog-transition.mjs\";\n//# sourceMappingURL=index.mjs.map","export function calculateUpdatedTarget(_ref) {\n let {\n selectedElement,\n containerElement,\n isRtl,\n isHorizontal\n } = _ref;\n const containerSize = getOffsetSize(isHorizontal, containerElement);\n const scrollPosition = getScrollPosition(isHorizontal, isRtl, containerElement);\n const childrenSize = getOffsetSize(isHorizontal, selectedElement);\n const childrenStartPosition = getOffsetPosition(isHorizontal, selectedElement);\n const additionalOffset = childrenSize * 0.4;\n if (scrollPosition > childrenStartPosition) {\n return childrenStartPosition - additionalOffset;\n } else if (scrollPosition + containerSize < childrenStartPosition + childrenSize) {\n return childrenStartPosition - containerSize + childrenSize + additionalOffset;\n }\n return scrollPosition;\n}\nexport function calculateCenteredTarget(_ref2) {\n let {\n selectedElement,\n containerElement,\n isHorizontal\n } = _ref2;\n const containerOffsetSize = getOffsetSize(isHorizontal, containerElement);\n const childrenOffsetPosition = getOffsetPosition(isHorizontal, selectedElement);\n const childrenOffsetSize = getOffsetSize(isHorizontal, selectedElement);\n return childrenOffsetPosition - containerOffsetSize / 2 + childrenOffsetSize / 2;\n}\nexport function getScrollSize(isHorizontal, element) {\n const key = isHorizontal ? 'scrollWidth' : 'scrollHeight';\n return element?.[key] || 0;\n}\nexport function getClientSize(isHorizontal, element) {\n const key = isHorizontal ? 'clientWidth' : 'clientHeight';\n return element?.[key] || 0;\n}\nexport function getScrollPosition(isHorizontal, rtl, element) {\n if (!element) {\n return 0;\n }\n const {\n scrollLeft,\n offsetWidth,\n scrollWidth\n } = element;\n if (isHorizontal) {\n return rtl ? scrollWidth - offsetWidth + scrollLeft : scrollLeft;\n }\n return element.scrollTop;\n}\nexport function getOffsetSize(isHorizontal, element) {\n const key = isHorizontal ? 'offsetWidth' : 'offsetHeight';\n return element?.[key] || 0;\n}\nexport function getOffsetPosition(isHorizontal, element) {\n const key = isHorizontal ? 'offsetLeft' : 'offsetTop';\n return element?.[key] || 0;\n}\n//# sourceMappingURL=helpers.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSlideGroup.css\";\n\n// Components\nimport { VFadeTransition } from \"../transitions/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.mjs\";\nimport { useGoTo } from \"../../composables/goto.mjs\";\nimport { makeGroupProps, useGroup } from \"../../composables/group.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { computed, shallowRef, watch } from 'vue';\nimport { calculateCenteredTarget, calculateUpdatedTarget, getClientSize, getOffsetSize, getScrollPosition, getScrollSize } from \"./helpers.mjs\";\nimport { focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const VSlideGroupSymbol = Symbol.for('vuetify:v-slide-group');\nexport const makeVSlideGroupProps = propsFactory({\n centerActive: Boolean,\n direction: {\n type: String,\n default: 'horizontal'\n },\n symbol: {\n type: null,\n default: VSlideGroupSymbol\n },\n nextIcon: {\n type: IconValue,\n default: '$next'\n },\n prevIcon: {\n type: IconValue,\n default: '$prev'\n },\n showArrows: {\n type: [Boolean, String],\n validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)\n },\n ...makeComponentProps(),\n ...makeDisplayProps({\n mobile: null\n }),\n ...makeTagProps(),\n ...makeGroupProps({\n selectedClass: 'v-slide-group-item--active'\n })\n}, 'VSlideGroup');\nexport const VSlideGroup = genericComponent()({\n name: 'VSlideGroup',\n props: makeVSlideGroupProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n isRtl\n } = useRtl();\n const {\n displayClasses,\n mobile\n } = useDisplay(props);\n const group = useGroup(props, props.symbol);\n const isOverflowing = shallowRef(false);\n const scrollOffset = shallowRef(0);\n const containerSize = shallowRef(0);\n const contentSize = shallowRef(0);\n const isHorizontal = computed(() => props.direction === 'horizontal');\n const {\n resizeRef: containerRef,\n contentRect: containerRect\n } = useResizeObserver();\n const {\n resizeRef: contentRef,\n contentRect\n } = useResizeObserver();\n const goTo = useGoTo();\n const goToOptions = computed(() => {\n return {\n container: containerRef.el,\n duration: 200,\n easing: 'easeOutQuart'\n };\n });\n const firstSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1;\n return group.items.value.findIndex(item => item.id === group.selected.value[0]);\n });\n const lastSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1;\n return group.items.value.findIndex(item => item.id === group.selected.value[group.selected.value.length - 1]);\n });\n if (IN_BROWSER) {\n let frame = -1;\n watch(() => [group.selected.value, containerRect.value, contentRect.value, isHorizontal.value], () => {\n cancelAnimationFrame(frame);\n frame = requestAnimationFrame(() => {\n if (containerRect.value && contentRect.value) {\n const sizeProperty = isHorizontal.value ? 'width' : 'height';\n containerSize.value = containerRect.value[sizeProperty];\n contentSize.value = contentRect.value[sizeProperty];\n isOverflowing.value = containerSize.value + 1 < contentSize.value;\n }\n if (firstSelectedIndex.value >= 0 && contentRef.el) {\n // TODO: Is this too naive? Should we store element references in group composable?\n const selectedElement = contentRef.el.children[lastSelectedIndex.value];\n scrollToChildren(selectedElement, props.centerActive);\n }\n });\n });\n }\n const isFocused = shallowRef(false);\n function scrollToChildren(children, center) {\n let target = 0;\n if (center) {\n target = calculateCenteredTarget({\n containerElement: containerRef.el,\n isHorizontal: isHorizontal.value,\n selectedElement: children\n });\n } else {\n target = calculateUpdatedTarget({\n containerElement: containerRef.el,\n isHorizontal: isHorizontal.value,\n isRtl: isRtl.value,\n selectedElement: children\n });\n }\n scrollToPosition(target);\n }\n function scrollToPosition(newPosition) {\n if (!IN_BROWSER || !containerRef.el) return;\n const offsetSize = getOffsetSize(isHorizontal.value, containerRef.el);\n const scrollPosition = getScrollPosition(isHorizontal.value, isRtl.value, containerRef.el);\n const scrollSize = getScrollSize(isHorizontal.value, containerRef.el);\n if (scrollSize <= offsetSize ||\n // Prevent scrolling by only a couple of pixels, which doesn't look smooth\n Math.abs(newPosition - scrollPosition) < 16) return;\n if (isHorizontal.value && isRtl.value && containerRef.el) {\n const {\n scrollWidth,\n offsetWidth: containerWidth\n } = containerRef.el;\n newPosition = scrollWidth - containerWidth - newPosition;\n }\n if (isHorizontal.value) {\n goTo.horizontal(newPosition, goToOptions.value);\n } else {\n goTo(newPosition, goToOptions.value);\n }\n }\n function onScroll(e) {\n const {\n scrollTop,\n scrollLeft\n } = e.target;\n scrollOffset.value = isHorizontal.value ? scrollLeft : scrollTop;\n }\n function onFocusin(e) {\n isFocused.value = true;\n if (!isOverflowing.value || !contentRef.el) return;\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of e.composedPath()) {\n for (const item of contentRef.el.children) {\n if (item === el) {\n scrollToChildren(item);\n return;\n }\n }\n }\n }\n function onFocusout(e) {\n isFocused.value = false;\n }\n\n // Affix clicks produce onFocus that we have to ignore to avoid extra scrollToChildren\n let ignoreFocusEvent = false;\n function onFocus(e) {\n if (!ignoreFocusEvent && !isFocused.value && !(e.relatedTarget && contentRef.el?.contains(e.relatedTarget))) focus();\n ignoreFocusEvent = false;\n }\n function onFocusAffixes() {\n ignoreFocusEvent = true;\n }\n function onKeydown(e) {\n if (!contentRef.el) return;\n function toFocus(location) {\n e.preventDefault();\n focus(location);\n }\n if (isHorizontal.value) {\n if (e.key === 'ArrowRight') {\n toFocus(isRtl.value ? 'prev' : 'next');\n } else if (e.key === 'ArrowLeft') {\n toFocus(isRtl.value ? 'next' : 'prev');\n }\n } else {\n if (e.key === 'ArrowDown') {\n toFocus('next');\n } else if (e.key === 'ArrowUp') {\n toFocus('prev');\n }\n }\n if (e.key === 'Home') {\n toFocus('first');\n } else if (e.key === 'End') {\n toFocus('last');\n }\n }\n function focus(location) {\n if (!contentRef.el) return;\n let el;\n if (!location) {\n const focusable = focusableChildren(contentRef.el);\n el = focusable[0];\n } else if (location === 'next') {\n el = contentRef.el.querySelector(':focus')?.nextElementSibling;\n if (!el) return focus('first');\n } else if (location === 'prev') {\n el = contentRef.el.querySelector(':focus')?.previousElementSibling;\n if (!el) return focus('last');\n } else if (location === 'first') {\n el = contentRef.el.firstElementChild;\n } else if (location === 'last') {\n el = contentRef.el.lastElementChild;\n }\n if (el) {\n el.focus({\n preventScroll: true\n });\n }\n }\n function scrollTo(location) {\n const direction = isHorizontal.value && isRtl.value ? -1 : 1;\n const offsetStep = (location === 'prev' ? -direction : direction) * containerSize.value;\n let newPosition = scrollOffset.value + offsetStep;\n\n // TODO: improve it\n if (isHorizontal.value && isRtl.value && containerRef.el) {\n const {\n scrollWidth,\n offsetWidth: containerWidth\n } = containerRef.el;\n newPosition += scrollWidth - containerWidth;\n }\n scrollToPosition(newPosition);\n }\n const slotProps = computed(() => ({\n next: group.next,\n prev: group.prev,\n select: group.select,\n isSelected: group.isSelected\n }));\n const hasAffixes = computed(() => {\n switch (props.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always':\n return true;\n\n // Always show arrows on desktop\n case 'desktop':\n return !mobile.value;\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true:\n return isOverflowing.value || Math.abs(scrollOffset.value) > 0;\n\n // Always show on mobile\n case 'mobile':\n return mobile.value || isOverflowing.value || Math.abs(scrollOffset.value) > 0;\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default:\n return !mobile.value && (isOverflowing.value || Math.abs(scrollOffset.value) > 0);\n }\n });\n const hasPrev = computed(() => {\n // 1 pixel in reserve, may be lost after rounding\n return Math.abs(scrollOffset.value) > 1;\n });\n const hasNext = computed(() => {\n if (!containerRef.value) return false;\n const scrollSize = getScrollSize(isHorizontal.value, containerRef.el);\n const clientSize = getClientSize(isHorizontal.value, containerRef.el);\n const scrollSizeMax = scrollSize - clientSize;\n\n // 1 pixel in reserve, may be lost after rounding\n return scrollSizeMax - Math.abs(scrollOffset.value) > 1;\n });\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-slide-group', {\n 'v-slide-group--vertical': !isHorizontal.value,\n 'v-slide-group--has-affixes': hasAffixes.value,\n 'v-slide-group--is-overflowing': isOverflowing.value\n }, displayClasses.value, props.class],\n \"style\": props.style,\n \"tabindex\": isFocused.value || group.selected.value.length ? -1 : 0,\n \"onFocus\": onFocus\n }, {\n default: () => [hasAffixes.value && _createVNode(\"div\", {\n \"key\": \"prev\",\n \"class\": ['v-slide-group__prev', {\n 'v-slide-group__prev--disabled': !hasPrev.value\n }],\n \"onMousedown\": onFocusAffixes,\n \"onClick\": () => hasPrev.value && scrollTo('prev')\n }, [slots.prev?.(slotProps.value) ?? _createVNode(VFadeTransition, null, {\n default: () => [_createVNode(VIcon, {\n \"icon\": isRtl.value ? props.nextIcon : props.prevIcon\n }, null)]\n })]), _createVNode(\"div\", {\n \"key\": \"container\",\n \"ref\": containerRef,\n \"class\": \"v-slide-group__container\",\n \"onScroll\": onScroll\n }, [_createVNode(\"div\", {\n \"ref\": contentRef,\n \"class\": \"v-slide-group__content\",\n \"onFocusin\": onFocusin,\n \"onFocusout\": onFocusout,\n \"onKeydown\": onKeydown\n }, [slots.default?.(slotProps.value)])]), hasAffixes.value && _createVNode(\"div\", {\n \"key\": \"next\",\n \"class\": ['v-slide-group__next', {\n 'v-slide-group__next--disabled': !hasNext.value\n }],\n \"onMousedown\": onFocusAffixes,\n \"onClick\": () => hasNext.value && scrollTo('next')\n }, [slots.next?.(slotProps.value) ?? _createVNode(VFadeTransition, null, {\n default: () => [_createVNode(VIcon, {\n \"icon\": isRtl.value ? props.prevIcon : props.nextIcon\n }, null)]\n })])]\n }));\n return {\n selected: group.selected,\n scrollTo,\n scrollOffset,\n focus\n };\n }\n});\n//# sourceMappingURL=VSlideGroup.mjs.map"],"names":["useResizeObserver","callback","box","resizeRef","templateRef","contentRect","ref","IN_BROWSER","observer","entries","onBeforeUnmount","watch","newValue","oldValue","readonly","makeBorderProps","propsFactory","useBorder","props","name","getCurrentInstanceName","computed","border","isRef","classes","value","allowedDensities","makeDensityProps","v","useDensity","makeElevationProps","useElevation","elevation","makeGroupProps","makeGroupItemProps","useGroupItem","injectKey","required","vm","getCurrentInstance","id","getUid","provide","group","inject","toRef","disabled","isSelected","isFirst","isLast","selectedClass","useGroup","isUnmounted","items","reactive","selected","useProxiedModel","getIds","wrapInArray","arr","getValues","groupVm","register","item","unwrapped","key","index","findChildrenWithProvide","unref","unregister","forceMandatoryValue","onMounted","onUpdated","i","select","internalValue","step","offset","currentId","currentIndex","newIndex","newItem","state","getItemIndex","ids","modelValue","deepEqual","itemByIndex","values","itemIndex","predefinedSizes","makeSizeProps","useSize","destructComputed","sizeClasses","sizeStyles","includes","convertToUnit","makeVIconProps","IconValue","makeComponentProps","makeTagProps","makeThemeProps","VIcon","genericComponent","_ref","attrs","slots","slotIcon","themeClasses","provideTheme","iconData","useIcon","textColorClasses","textColorStyles","useTextColor","useRender","slotValue","_a","_b","flattenFragments","node","Text","hasClick","_createVNode","makeLoaderProps","useLoader","LoaderSlot","VProgressLinear","useSsrBoot","isBooted","shallowRef","makeTransitionProps","createCssTransition","origin","mode","functions","el","offsetTop","offsetLeft","offsetWidth","offsetHeight","position","top","left","width","height","tag","TransitionGroup","Transition","h","createJavascriptTransition","_ref2","ExpandTransitionGenerator","expandedParentClass","sizeProperty","offsetProperty","camelize","initialStyle","resetStyles","onAfterLeave","size","VFadeTransition","VSlideYTransition","VExpandTransition","VExpandXTransition","calculateUpdatedTarget","selectedElement","containerElement","isRtl","isHorizontal","containerSize","getOffsetSize","scrollPosition","getScrollPosition","childrenSize","childrenStartPosition","getOffsetPosition","additionalOffset","calculateCenteredTarget","containerOffsetSize","childrenOffsetPosition","childrenOffsetSize","getScrollSize","element","getClientSize","rtl","scrollLeft","scrollWidth","VSlideGroupSymbol","makeVSlideGroupProps","makeDisplayProps","VSlideGroup","useRtl","displayClasses","mobile","useDisplay","isOverflowing","scrollOffset","contentSize","containerRef","containerRect","contentRef","goTo","useGoTo","goToOptions","firstSelectedIndex","lastSelectedIndex","frame","scrollToChildren","isFocused","children","center","target","scrollToPosition","newPosition","offsetSize","containerWidth","onScroll","e","scrollTop","onFocusin","onFocusout","ignoreFocusEvent","onFocus","focus","onFocusAffixes","onKeydown","toFocus","location","focusableChildren","scrollTo","direction","offsetStep","slotProps","hasAffixes","hasPrev","hasNext","scrollSize","clientSize","_c"],"mappings":"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","debug_id":"1c29fc82-e9a4-5538-a174-6e9ad620306c"}