{"version":3,"file":"NotifySnackbar.vue.ab5508f6.js","sources":["../../../../node_modules/.pnpm/vuetify@3.5.18_typescript@5.6.2_vite-plugin-vuetify@1.0.2_vue@3.3.11/node_modules/vuetify/lib/components/VSnackbar/VSnackbar.mjs","../../../../components/NotifySnackbar.vue"],"sourcesContent":["import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSnackbar.css\";\n\n// Components\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VOverlay } from \"../VOverlay/index.mjs\";\nimport { makeVOverlayProps } from \"../VOverlay/VOverlay.mjs\";\nimport { VProgressLinear } from \"../VProgressLinear/index.mjs\"; // Composables\nimport { useLayout } from \"../../composables/index.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { VuetifyLayoutKey } from \"../../composables/layout.mjs\";\nimport { makeLocationProps } from \"../../composables/location.mjs\";\nimport { makePositionProps, usePosition } from \"../../composables/position.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { useScopeId } from \"../../composables/scopeId.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.mjs\"; // Utilities\nimport { computed, inject, mergeProps, nextTick, onMounted, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue';\nimport { genericComponent, omit, propsFactory, refElement, useRender } from \"../../util/index.mjs\";\nfunction useCountdown(milliseconds) {\n const time = shallowRef(milliseconds);\n let timer = -1;\n function clear() {\n clearInterval(timer);\n }\n function reset() {\n clear();\n nextTick(() => time.value = milliseconds);\n }\n function start(el) {\n const style = el ? getComputedStyle(el) : {\n transitionDuration: 0.2\n };\n const interval = parseFloat(style.transitionDuration) * 1000 || 200;\n clear();\n if (time.value <= 0) return;\n const startTime = performance.now();\n timer = window.setInterval(() => {\n const elapsed = performance.now() - startTime + interval;\n time.value = Math.max(milliseconds - elapsed, 0);\n if (time.value <= 0) clear();\n }, interval);\n }\n onScopeDispose(clear);\n return {\n clear,\n time,\n start,\n reset\n };\n}\nexport const makeVSnackbarProps = propsFactory({\n multiLine: Boolean,\n text: String,\n timer: [Boolean, String],\n timeout: {\n type: [Number, String],\n default: 5000\n },\n vertical: Boolean,\n ...makeLocationProps({\n location: 'bottom'\n }),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...makeThemeProps(),\n ...omit(makeVOverlayProps({\n transition: 'v-snackbar-transition'\n }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy'])\n}, 'VSnackbar');\nexport const VSnackbar = genericComponent()({\n name: 'VSnackbar',\n props: makeVSnackbarProps(),\n emits: {\n 'update:modelValue': v => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const isActive = useProxiedModel(props, 'modelValue');\n const {\n positionClasses\n } = usePosition(props);\n const {\n scopeId\n } = useScopeId();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(props);\n const {\n roundedClasses\n } = useRounded(props);\n const countdown = useCountdown(Number(props.timeout));\n const overlay = ref();\n const timerRef = ref();\n const isHovering = shallowRef(false);\n const startY = shallowRef(0);\n const mainStyles = ref();\n const hasLayout = inject(VuetifyLayoutKey, undefined);\n useToggleScope(() => !!hasLayout, () => {\n const layout = useLayout();\n watchEffect(() => {\n mainStyles.value = layout.mainStyles.value;\n });\n });\n watch(isActive, startTimeout);\n watch(() => props.timeout, startTimeout);\n onMounted(() => {\n if (isActive.value) startTimeout();\n });\n let activeTimeout = -1;\n function startTimeout() {\n countdown.reset();\n window.clearTimeout(activeTimeout);\n const timeout = Number(props.timeout);\n if (!isActive.value || timeout === -1) return;\n const element = refElement(timerRef.value);\n countdown.start(element);\n activeTimeout = window.setTimeout(() => {\n isActive.value = false;\n }, timeout);\n }\n function clearTimeout() {\n countdown.reset();\n window.clearTimeout(activeTimeout);\n }\n function onPointerenter() {\n isHovering.value = true;\n clearTimeout();\n }\n function onPointerleave() {\n isHovering.value = false;\n startTimeout();\n }\n function onTouchstart(event) {\n startY.value = event.touches[0].clientY;\n }\n function onTouchend(event) {\n if (Math.abs(startY.value - event.changedTouches[0].clientY) > 50) {\n isActive.value = false;\n }\n }\n const locationClasses = computed(() => {\n return props.location.split(' ').reduce((acc, loc) => {\n acc[`v-snackbar--${loc}`] = true;\n return acc;\n }, {});\n });\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props);\n const hasContent = !!(slots.default || slots.text || props.text);\n return _createVNode(VOverlay, _mergeProps({\n \"ref\": overlay,\n \"class\": ['v-snackbar', {\n 'v-snackbar--active': isActive.value,\n 'v-snackbar--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--timer': !!props.timer,\n 'v-snackbar--vertical': props.vertical\n }, locationClasses.value, positionClasses.value, props.class],\n \"style\": [mainStyles.value, props.style]\n }, overlayProps, {\n \"modelValue\": isActive.value,\n \"onUpdate:modelValue\": $event => isActive.value = $event,\n \"contentProps\": mergeProps({\n class: ['v-snackbar__wrapper', themeClasses.value, colorClasses.value, roundedClasses.value, variantClasses.value],\n style: [colorStyles.value],\n onPointerenter,\n onPointerleave\n }, overlayProps.contentProps),\n \"persistent\": true,\n \"noClickAnimation\": true,\n \"scrim\": false,\n \"scrollStrategy\": \"none\",\n \"_disableGlobalStack\": true,\n \"onTouchstartPassive\": onTouchstart,\n \"onTouchend\": onTouchend\n }, scopeId), {\n default: () => [genOverlays(false, 'v-snackbar'), props.timer && !isHovering.value && _createVNode(\"div\", {\n \"key\": \"timer\",\n \"class\": \"v-snackbar__timer\"\n }, [_createVNode(VProgressLinear, {\n \"ref\": timerRef,\n \"color\": typeof props.timer === 'string' ? props.timer : 'info',\n \"max\": props.timeout,\n \"model-value\": countdown.time.value\n }, null)]), hasContent && _createVNode(\"div\", {\n \"key\": \"content\",\n \"class\": \"v-snackbar__content\",\n \"role\": \"status\",\n \"aria-live\": \"polite\"\n }, [slots.text?.() ?? props.text, slots.default?.()]), slots.actions && _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n variant: 'text',\n ripple: false,\n slim: true\n }\n }\n }, {\n default: () => [_createVNode(\"div\", {\n \"class\": \"v-snackbar__actions\"\n }, [slots.actions()])]\n })],\n activator: slots.activator\n });\n });\n return forwardRefs({}, overlay);\n }\n});\n//# sourceMappingURL=VSnackbar.mjs.map","<script setup lang=\"ts\">\nconst { open, color, text } = storeToRefs(useNotify())\n</script>\n\n<template lang=\"pug\">\nv-snackbar(v-model=\"open\" :color=\"color\" :timeout=\"10000\") {{ text }}\n template(v-slot:actions)\n v-btn(@click=\"open = false\" icon=\"mdi-close\" size=\"x-small\")\n</template>\n"],"names":["useCountdown","milliseconds","time","shallowRef","timer","clear","reset","nextTick","start","el","style","interval","startTime","elapsed","onScopeDispose","makeVSnackbarProps","propsFactory","makeLocationProps","makePositionProps","makeRoundedProps","makeVariantProps","makeThemeProps","omit","makeVOverlayProps","VSnackbar","genericComponent","v","props","_ref","slots","isActive","useProxiedModel","positionClasses","usePosition","scopeId","useScopeId","themeClasses","provideTheme","colorClasses","colorStyles","variantClasses","useVariant","roundedClasses","useRounded","countdown","overlay","ref","timerRef","isHovering","startY","mainStyles","hasLayout","inject","VuetifyLayoutKey","useToggleScope","layout","useLayout","watchEffect","watch","startTimeout","onMounted","activeTimeout","timeout","element","refElement","clearTimeout","onPointerenter","onPointerleave","onTouchstart","event","onTouchend","locationClasses","computed","acc","loc","useRender","overlayProps","VOverlay","hasContent","_createVNode","_mergeProps","$event","mergeProps","genOverlays","VProgressLinear","_a","_b","VDefaultsProvider","forwardRefs","open","color","text","storeToRefs","useNotify"],"mappings":"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","x_google_ignoreList":[0]}