{"version":3,"file":"DywNRFUV.js","sources":["../../../../node_modules/vuetify/lib/components/VSwitch/VSwitch.mjs"],"sourcesContent":["import { mergeProps as _mergeProps, Fragment as _Fragment, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSwitch.css\";\n\n// Components\nimport { VScaleTransition } from \"../transitions/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\";\nimport { VProgressCircular } from \"../VProgressCircular/index.mjs\";\nimport { makeVSelectionControlProps, VSelectionControl } from \"../VSelectionControl/VSelectionControl.mjs\"; // Composables\nimport { useFocus } from \"../../composables/focus.mjs\";\nimport { LoaderSlot, useLoader } from \"../../composables/loader.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, ref } from 'vue';\nimport { filterInputAttrs, genericComponent, getUid, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVSwitchProps = propsFactory({\n indeterminate: Boolean,\n inset: Boolean,\n flat: Boolean,\n loading: {\n type: [Boolean, String],\n default: false\n },\n ...makeVInputProps(),\n ...makeVSelectionControlProps()\n}, 'VSwitch');\nexport const VSwitch = genericComponent()({\n name: 'VSwitch',\n inheritAttrs: false,\n props: makeVSwitchProps(),\n emits: {\n 'update:focused': focused => true,\n 'update:modelValue': value => true,\n 'update:indeterminate': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const indeterminate = useProxiedModel(props, 'indeterminate');\n const model = useProxiedModel(props, 'modelValue');\n const {\n loaderClasses\n } = useLoader(props);\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const control = ref();\n const loaderColor = computed(() => {\n return typeof props.loading === 'string' && props.loading !== '' ? props.loading : props.color;\n });\n const uid = getUid();\n const id = computed(() => props.id || `switch-${uid}`);\n function onChange() {\n if (indeterminate.value) {\n indeterminate.value = false;\n }\n }\n function onTrackClick(e) {\n e.stopPropagation();\n e.preventDefault();\n control.value?.input?.click();\n }\n useRender(() => {\n const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);\n const inputProps = VInput.filterProps(props);\n const controlProps = VSelectionControl.filterProps(props);\n return _createVNode(VInput, _mergeProps({\n \"class\": ['v-switch', {\n 'v-switch--inset': props.inset\n }, {\n 'v-switch--indeterminate': indeterminate.value\n }, loaderClasses.value, props.class]\n }, rootAttrs, inputProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"id\": id.value,\n \"focused\": isFocused.value,\n \"style\": props.style\n }), {\n ...slots,\n default: _ref2 => {\n let {\n id,\n messagesId,\n isDisabled,\n isReadonly,\n isValid\n } = _ref2;\n return _createVNode(VSelectionControl, _mergeProps({\n \"ref\": control\n }, controlProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": [$event => model.value = $event, onChange],\n \"id\": id.value,\n \"aria-describedby\": messagesId.value,\n \"type\": \"checkbox\",\n \"aria-checked\": indeterminate.value ? 'mixed' : undefined,\n \"disabled\": isDisabled.value,\n \"readonly\": isReadonly.value,\n \"onFocus\": focus,\n \"onBlur\": blur\n }, controlAttrs), {\n ...slots,\n default: _ref3 => {\n let {\n backgroundColorClasses,\n backgroundColorStyles\n } = _ref3;\n return _createVNode(\"div\", {\n \"class\": ['v-switch__track', ...backgroundColorClasses.value],\n \"style\": backgroundColorStyles.value,\n \"onClick\": onTrackClick\n }, null);\n },\n input: _ref4 => {\n let {\n inputNode,\n icon,\n backgroundColorClasses,\n backgroundColorStyles\n } = _ref4;\n return _createVNode(_Fragment, null, [inputNode, _createVNode(\"div\", {\n \"class\": ['v-switch__thumb', {\n 'v-switch__thumb--filled': icon || props.loading\n }, props.inset ? undefined : backgroundColorClasses.value],\n \"style\": props.inset ? undefined : backgroundColorStyles.value\n }, [_createVNode(VScaleTransition, null, {\n default: () => [!props.loading ? icon && _createVNode(VIcon, {\n \"key\": icon,\n \"icon\": icon,\n \"size\": \"x-small\"\n }, null) : _createVNode(LoaderSlot, {\n \"name\": \"v-switch\",\n \"active\": true,\n \"color\": isValid.value === false ? undefined : loaderColor.value\n }, {\n default: slotProps => slots.loader ? slots.loader(slotProps) : _createVNode(VProgressCircular, {\n \"active\": slotProps.isActive,\n \"color\": slotProps.color,\n \"indeterminate\": true,\n \"size\": \"16\",\n \"width\": \"2\"\n }, null)\n })]\n })])]);\n }\n });\n }\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VSwitch.mjs.map"],"names":["makeVSwitchProps","propsFactory","makeVInputProps","makeVSelectionControlProps","VSwitch","genericComponent","focused","value","props","_ref","attrs","slots","indeterminate","useProxiedModel","model","loaderClasses","useLoader","isFocused","focus","blur","useFocus","control","ref","loaderColor","computed","uid","getUid","id","onChange","onTrackClick","e","_b","_a","useRender","rootAttrs","controlAttrs","filterInputAttrs","inputProps","VInput","controlProps","VSelectionControl","_createVNode","_mergeProps","$event","_ref2","messagesId","isDisabled","isReadonly","isValid","_ref3","backgroundColorClasses","backgroundColorStyles","_ref4","inputNode","icon","_Fragment","VScaleTransition","LoaderSlot","slotProps","VProgressCircular","VIcon"],"mappings":"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","debug_id":"63185c86-8788-5343-8082-8f29ee911e60"}