���Root Mod By V1rus_Alfa
User / IP
:
216.73.217.78
Host / Server
:
195.214.235.115 / npln.ir
System
:
Linux damavand.pws-dns.net 5.14.0-503.35.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Apr 4 05:23:43 EDT 2025 x86_64
Command
|
Upload
|
Mass Deface
|
Create
:
/
home2
/
cutunixc
/
.trash
/
node_modules
/
@nuxt
/
ui
/
dist
/
runtime
/
components
/
forms
/
Viewing: FormGroup.vue
<template> <div :class="ui.wrapper" v-bind="attrs"> <div :class="ui.inner"> <div v-if="label || $slots.label" :class="[ui.label.wrapper, size]"> <label :for="inputId" :class="[ui.label.base, required ? ui.label.required : '']"> <slot v-if="$slots.label" name="label" v-bind="{ error, label, name, hint, description, help }" /> <template v-else>{{ label }}</template> </label> <span v-if="hint || $slots.hint" :class="[ui.hint]"> <slot v-if="$slots.hint" name="hint" v-bind="{ error, label, name, hint, description, help }" /> <template v-else>{{ hint }}</template> </span> </div> <p v-if="description || $slots.description" :class="[ui.description, size]"> <slot v-if="$slots.description" name="description" v-bind="{ error, label, name, hint, description, help }" /> <template v-else> {{ description }} </template> </p> </div> <div :class="[label ? ui.container : '']"> <slot v-bind="{ error }" /> <p v-if="typeof error === 'string' && error" :class="[ui.error, size]"> <slot v-if="$slots.error" name="error" v-bind="{ error, label, name, hint, description, help }" /> <template v-else> {{ error }} </template> </p> <p v-else-if="help || $slots.help" :class="[ui.help, size]"> <slot v-if="$slots.help" name="help" v-bind="{ error, label, name, hint, description, help }" /> <template v-else> {{ help }} </template> </p> </div> </div> </template> <script> import { computed, defineComponent, provide, inject, ref, toRef } from "vue"; import { useUI } from "../../composables/useUI"; import { mergeConfig } from "../../utils"; import appConfig from "#build/app.config"; import { formGroup } from "#ui/ui.config"; import { useId } from "#imports"; const config = mergeConfig(appConfig.ui.strategy, appConfig.ui.formGroup, formGroup); export default defineComponent({ inheritAttrs: false, props: { name: { type: String, default: null }, size: { type: String, default: null, validator(value) { return Object.keys(config.size).includes(value); } }, label: { type: String, default: null }, description: { type: String, default: null }, required: { type: Boolean, default: false }, help: { type: String, default: null }, error: { type: [String, Boolean], default: null }, hint: { type: String, default: null }, class: { type: [String, Object, Array], default: () => "" }, ui: { type: Object, default: () => ({}) }, eagerValidation: { type: Boolean, default: false } }, setup(props) { const { ui, attrs } = useUI("formGroup", toRef(props, "ui"), config, toRef(props, "class")); const formErrors = inject("form-errors", null); const error = computed(() => { return props.error && typeof props.error === "string" || typeof props.error === "boolean" ? props.error : formErrors?.value?.find((error2) => error2.path === props.name)?.message; }); const size = computed(() => ui.value.size[props.size ?? config.default.size]); const inputId = ref(useId()); provide("form-group", { error, inputId, name: computed(() => props.name), size: computed(() => props.size), eagerValidation: computed(() => props.eagerValidation) }); return { // eslint-disable-next-line vue/no-dupe-keys ui, attrs, inputId, // eslint-disable-next-line vue/no-dupe-keys size, // eslint-disable-next-line vue/no-dupe-keys error }; } }); </script>
Coded With 💗 by
0x6ick Mod By V1rus_Alfa