vuestic-ui
Version:
Vue 3 UI Framework
125 lines (124 loc) • 3.58 kB
TypeScript
import { PropType, SetupContext, ShallowRef, ExtractPropTypes } from 'vue';
import { StatefulProps } from './useStateful';
import { LoadingProps } from './useLoading';
import { ValidationProps } from './useValidation';
export type SelectableProps<V = any> = StatefulProps & LoadingProps & ExtractPropTypes<ValidationProps<V>> & {
arrayValue: V | undefined;
leftLabel: boolean;
trueValue: any;
falseValue: any;
indeterminate: boolean;
indeterminateValue: V | null;
disabled: boolean;
readonly: boolean;
modelValue: unknown;
};
export type Elements = {
input: ShallowRef<HTMLElement | undefined>;
label: ShallowRef<HTMLElement | undefined>;
container: ShallowRef<HTMLElement | undefined>;
};
export declare const useSelectableProps: {
arrayValue: {
type: (ObjectConstructor | BooleanConstructor | StringConstructor | NumberConstructor)[];
default: null;
};
label: {
type: StringConstructor;
default: string;
};
leftLabel: {
type: BooleanConstructor;
default: boolean;
};
trueValue: {
type: PropType<any>;
default: boolean;
};
falseValue: {
type: PropType<any>;
default: boolean;
};
indeterminate: {
type: BooleanConstructor;
default: boolean;
};
indeterminateValue: {
type: PropType<any>;
default: null;
};
disabled: {
type: BooleanConstructor;
default: boolean;
};
readonly: {
type: BooleanConstructor;
default: boolean;
};
name: {
type: StringConstructor;
default: undefined;
};
rules: {
type: PropType<import("./useValidation").ValidationRule<any>[]>;
default: () => any;
};
dirty: {
type: BooleanConstructor;
default: boolean;
};
error: {
type: BooleanConstructor;
default: undefined;
};
errorMessages: {
type: PropType<string | string[]>;
default: undefined;
};
errorCount: {
type: (StringConstructor | NumberConstructor)[];
default: number;
};
success: {
type: BooleanConstructor;
default: boolean;
};
messages: {
type: PropType<string | string[]>;
default: () => never[];
};
immediateValidation: {
type: BooleanConstructor;
default: boolean;
};
modelValue: {};
loading: {
type: BooleanConstructor;
default: boolean;
};
stateful: {
type: PropType<boolean>;
default: boolean;
};
};
export declare const useSelectableEmits: string[];
export declare const useSelectable: (props: SelectableProps, emit: SetupContext['emit'], { input, label, container }: Elements) => {
isDirty: import("vue").Ref<boolean>;
isTouched: import("vue").Ref<boolean>;
isError: import("vue").WritableComputedRef<boolean>;
isLoading: import("vue").WritableComputedRef<boolean>;
isValid: import("vue").ComputedRef<boolean>;
isChecked: import("vue").ComputedRef<boolean>;
isIndeterminate: import("vue").ComputedRef<boolean>;
onBlur: (event: FocusEvent) => void;
onFocus: (event: FocusEvent) => void;
toggleSelection: () => void;
reset: () => void;
focus: () => void;
computedError: import("vue").ComputedRef<boolean>;
computedErrorMessages: import("vue").ComputedRef<string[]>;
validationAriaAttributes: import("vue").ComputedRef<{
'aria-invalid': boolean;
'aria-errormessage': string;
}>;
};