Tracking de l'application VApp (IHM du jeu)

This commit is contained in:
2025-05-11 18:04:12 +02:00
commit 89e9db9b62
17763 changed files with 3718499 additions and 0 deletions

View File

@ -0,0 +1,223 @@
import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from "vue";
// Styles
import "../VSlider/VSlider.css";
// Components
import { makeVInputProps, VInput } from "../VInput/VInput.mjs";
import { VLabel } from "../VLabel/index.mjs";
import { getOffset, makeSliderProps, useSlider, useSteps } from "../VSlider/slider.mjs";
import { VSliderThumb } from "../VSlider/VSliderThumb.mjs";
import { VSliderTrack } from "../VSlider/VSliderTrack.mjs"; // Composables
import { makeFocusProps, useFocus } from "../../composables/focus.mjs";
import { useRtl } from "../../composables/locale.mjs";
import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
import { computed, ref } from 'vue';
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
export const makeVRangeSliderProps = propsFactory({
...makeFocusProps(),
...makeVInputProps(),
...makeSliderProps(),
strict: Boolean,
modelValue: {
type: Array,
default: () => [0, 0]
}
}, 'VRangeSlider');
export const VRangeSlider = genericComponent()({
name: 'VRangeSlider',
props: makeVRangeSliderProps(),
emits: {
'update:focused': value => true,
'update:modelValue': value => true,
end: value => true,
start: value => true
},
setup(props, _ref) {
let {
slots,
emit
} = _ref;
const startThumbRef = ref();
const stopThumbRef = ref();
const inputRef = ref();
const {
rtlClasses
} = useRtl();
function getActiveThumb(e) {
if (!startThumbRef.value || !stopThumbRef.value) return;
const startOffset = getOffset(e, startThumbRef.value.$el, props.direction);
const stopOffset = getOffset(e, stopThumbRef.value.$el, props.direction);
const a = Math.abs(startOffset);
const b = Math.abs(stopOffset);
return a < b || a === b && startOffset < 0 ? startThumbRef.value.$el : stopThumbRef.value.$el;
}
const steps = useSteps(props);
const model = useProxiedModel(props, 'modelValue', undefined, arr => {
if (!arr?.length) return [0, 0];
return arr.map(value => steps.roundValue(value));
});
const {
activeThumbRef,
hasLabels,
max,
min,
mousePressed,
onSliderMousedown,
onSliderTouchstart,
position,
trackContainerRef
} = useSlider({
props,
steps,
onSliderStart: () => {
emit('start', model.value);
},
onSliderEnd: _ref2 => {
let {
value
} = _ref2;
const newValue = activeThumbRef.value === startThumbRef.value?.$el ? [value, model.value[1]] : [model.value[0], value];
if (!props.strict && newValue[0] < newValue[1]) {
model.value = newValue;
}
emit('end', model.value);
},
onSliderMove: _ref3 => {
let {
value
} = _ref3;
const [start, stop] = model.value;
if (!props.strict && start === stop && start !== min.value) {
activeThumbRef.value = value > start ? stopThumbRef.value?.$el : startThumbRef.value?.$el;
activeThumbRef.value?.focus();
}
if (activeThumbRef.value === startThumbRef.value?.$el) {
model.value = [Math.min(value, stop), stop];
} else {
model.value = [start, Math.max(start, value)];
}
},
getActiveThumb
});
const {
isFocused,
focus,
blur
} = useFocus(props);
const trackStart = computed(() => position(model.value[0]));
const trackStop = computed(() => position(model.value[1]));
useRender(() => {
const inputProps = VInput.filterProps(props);
const hasPrepend = !!(props.label || slots.label || slots.prepend);
return _createVNode(VInput, _mergeProps({
"class": ['v-slider', 'v-range-slider', {
'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,
'v-slider--focused': isFocused.value,
'v-slider--pressed': mousePressed.value,
'v-slider--disabled': props.disabled
}, rtlClasses.value, props.class],
"style": props.style,
"ref": inputRef
}, inputProps, {
"focused": isFocused.value
}), {
...slots,
prepend: hasPrepend ? slotProps => _createVNode(_Fragment, null, [slots.label?.(slotProps) ?? (props.label ? _createVNode(VLabel, {
"class": "v-slider__label",
"text": props.label
}, null) : undefined), slots.prepend?.(slotProps)]) : undefined,
default: _ref4 => {
let {
id,
messagesId
} = _ref4;
return _createVNode("div", {
"class": "v-slider__container",
"onMousedown": onSliderMousedown,
"onTouchstartPassive": onSliderTouchstart
}, [_createVNode("input", {
"id": `${id.value}_start`,
"name": props.name || id.value,
"disabled": !!props.disabled,
"readonly": !!props.readonly,
"tabindex": "-1",
"value": model.value[0]
}, null), _createVNode("input", {
"id": `${id.value}_stop`,
"name": props.name || id.value,
"disabled": !!props.disabled,
"readonly": !!props.readonly,
"tabindex": "-1",
"value": model.value[1]
}, null), _createVNode(VSliderTrack, {
"ref": trackContainerRef,
"start": trackStart.value,
"stop": trackStop.value
}, {
'tick-label': slots['tick-label']
}), _createVNode(VSliderThumb, {
"ref": startThumbRef,
"aria-describedby": messagesId.value,
"focused": isFocused && activeThumbRef.value === startThumbRef.value?.$el,
"modelValue": model.value[0],
"onUpdate:modelValue": v => model.value = [v, model.value[1]],
"onFocus": e => {
focus();
activeThumbRef.value = startThumbRef.value?.$el;
// Make sure second thumb is focused if
// the thumbs are on top of each other
// and they are both at minimum value
// but only if focused from outside.
if (model.value[0] === model.value[1] && model.value[1] === min.value && e.relatedTarget !== stopThumbRef.value?.$el) {
startThumbRef.value?.$el.blur();
stopThumbRef.value?.$el.focus();
}
},
"onBlur": () => {
blur();
activeThumbRef.value = undefined;
},
"min": min.value,
"max": model.value[1],
"position": trackStart.value,
"ripple": props.ripple
}, {
'thumb-label': slots['thumb-label']
}), _createVNode(VSliderThumb, {
"ref": stopThumbRef,
"aria-describedby": messagesId.value,
"focused": isFocused && activeThumbRef.value === stopThumbRef.value?.$el,
"modelValue": model.value[1],
"onUpdate:modelValue": v => model.value = [model.value[0], v],
"onFocus": e => {
focus();
activeThumbRef.value = stopThumbRef.value?.$el;
// Make sure first thumb is focused if
// the thumbs are on top of each other
// and they are both at maximum value
// but only if focused from outside.
if (model.value[0] === model.value[1] && model.value[0] === max.value && e.relatedTarget !== startThumbRef.value?.$el) {
stopThumbRef.value?.$el.blur();
startThumbRef.value?.$el.focus();
}
},
"onBlur": () => {
blur();
activeThumbRef.value = undefined;
},
"min": model.value[0],
"max": max.value,
"position": trackStop.value,
"ripple": props.ripple
}, {
'thumb-label': slots['thumb-label']
})]);
}
});
});
return {};
}
});
//# sourceMappingURL=VRangeSlider.mjs.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,848 @@
import * as vue from 'vue';
import { ComponentPropsOptions, ExtractPropTypes, JSXComponent, PropType, ComputedRef, Ref } from 'vue';
interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
}
type Tick = {
value: number;
position: number;
label?: string;
};
type VMessageSlot = {
message: string;
};
type Density = null | 'default' | 'comfortable' | 'compact';
type ValidationResult = string | boolean;
type ValidationRule = ValidationResult | PromiseLike<ValidationResult> | ((value: any) => ValidationResult) | ((value: any) => PromiseLike<ValidationResult>);
type IconValue = string | (string | [path: string, opacity: number])[] | JSXComponent;
declare const IconValue: PropType<IconValue>;
interface VInputSlot {
id: ComputedRef<string>;
messagesId: ComputedRef<string>;
isDirty: ComputedRef<boolean>;
isDisabled: ComputedRef<boolean>;
isReadonly: ComputedRef<boolean>;
isPristine: Ref<boolean>;
isValid: ComputedRef<boolean | null>;
isValidating: Ref<boolean>;
reset: () => void;
resetValidation: () => void;
validate: () => void;
}
declare const VRangeSlider: {
new (...args: any[]): vue.CreateComponentPublicInstance<{
reverse: boolean;
max: string | number;
error: boolean;
strict: boolean;
min: string | number;
direction: "horizontal" | "vertical";
style: vue.StyleValue;
disabled: boolean | null;
readonly: boolean | null;
step: string | number;
elevation: NonNullable<string | number>;
messages: string | readonly string[];
density: Density;
modelValue: readonly (string | number)[];
ripple: boolean;
focused: boolean;
errorMessages: string | readonly string[] | null;
maxErrors: string | number;
rules: readonly ValidationRule[];
centerAffix: boolean;
hideSpinButtons: boolean;
persistentHint: boolean;
showTicks: boolean | "always";
tickSize: string | number;
trackSize: string | number;
thumbSize: string | number;
} & {
id?: string | undefined;
name?: string | undefined;
color?: string | undefined;
label?: string | undefined;
class?: any;
rounded?: string | number | boolean | undefined;
prependIcon?: IconValue | undefined;
appendIcon?: IconValue | undefined;
'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined;
'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
validateOn?: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined;
validationValue?: any;
hint?: string | undefined;
hideDetails?: boolean | "auto" | undefined;
trackColor?: string | undefined;
trackFillColor?: string | undefined;
thumbColor?: string | undefined;
thumbLabel?: boolean | "always" | undefined;
ticks?: readonly number[] | Record<number, string> | undefined;
} & {
$children?: vue.VNodeChild | ((arg: VInputSlot) => vue.VNodeChild) | {
default?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
prepend?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
append?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
details?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
message?: ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
'thumb-label'?: ((arg: {
modelValue: number;
}) => vue.VNodeChild) | undefined;
'tick-label'?: ((arg: {
tick: Tick;
index: number;
}) => vue.VNodeChild) | undefined;
label?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
};
'v-slots'?: {
default?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
prepend?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
append?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
details?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
message?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
'thumb-label'?: false | ((arg: {
modelValue: number;
}) => vue.VNodeChild) | undefined;
'tick-label'?: false | ((arg: {
tick: Tick;
index: number;
}) => vue.VNodeChild) | undefined;
label?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
"v-slot:prepend"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
"v-slot:append"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
"v-slot:details"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
"v-slot:message"?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
"v-slot:thumb-label"?: false | ((arg: {
modelValue: number;
}) => vue.VNodeChild) | undefined;
"v-slot:tick-label"?: false | ((arg: {
tick: Tick;
index: number;
}) => vue.VNodeChild) | undefined;
"v-slot:label"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
} & {
"onUpdate:modelValue"?: ((value: [number, number]) => any) | undefined;
"onUpdate:focused"?: ((value: boolean) => any) | undefined;
onEnd?: ((value: [number, number]) => any) | undefined;
onStart?: ((value: [number, number]) => any) | undefined;
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
'update:focused': (value: boolean) => true;
'update:modelValue': (value: [number, number]) => true;
end: (value: [number, number]) => true;
start: (value: [number, number]) => true;
}, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
reverse: boolean;
max: string | number;
error: boolean;
strict: boolean;
min: string | number;
direction: "horizontal" | "vertical";
style: vue.StyleValue;
disabled: boolean | null;
readonly: boolean | null;
step: string | number;
elevation: NonNullable<string | number>;
messages: string | readonly string[];
density: Density;
modelValue: readonly (string | number)[];
ripple: boolean;
focused: boolean;
errorMessages: string | readonly string[] | null;
maxErrors: string | number;
rules: readonly ValidationRule[];
centerAffix: boolean;
hideSpinButtons: boolean;
persistentHint: boolean;
showTicks: boolean | "always";
tickSize: string | number;
trackSize: string | number;
thumbSize: string | number;
} & {
id?: string | undefined;
name?: string | undefined;
color?: string | undefined;
label?: string | undefined;
class?: any;
rounded?: string | number | boolean | undefined;
prependIcon?: IconValue | undefined;
appendIcon?: IconValue | undefined;
'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined;
'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
validateOn?: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined;
validationValue?: any;
hint?: string | undefined;
hideDetails?: boolean | "auto" | undefined;
trackColor?: string | undefined;
trackFillColor?: string | undefined;
thumbColor?: string | undefined;
thumbLabel?: boolean | "always" | undefined;
ticks?: readonly number[] | Record<number, string> | undefined;
} & {
$children?: vue.VNodeChild | ((arg: VInputSlot) => vue.VNodeChild) | {
default?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
prepend?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
append?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
details?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
message?: ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
'thumb-label'?: ((arg: {
modelValue: number;
}) => vue.VNodeChild) | undefined;
'tick-label'?: ((arg: {
tick: Tick;
index: number;
}) => vue.VNodeChild) | undefined;
label?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
};
'v-slots'?: {
default?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
prepend?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
append?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
details?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
message?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
'thumb-label'?: false | ((arg: {
modelValue: number;
}) => vue.VNodeChild) | undefined;
'tick-label'?: false | ((arg: {
tick: Tick;
index: number;
}) => vue.VNodeChild) | undefined;
label?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
"v-slot:prepend"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
"v-slot:append"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
"v-slot:details"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
"v-slot:message"?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
"v-slot:thumb-label"?: false | ((arg: {
modelValue: number;
}) => vue.VNodeChild) | undefined;
"v-slot:tick-label"?: false | ((arg: {
tick: Tick;
index: number;
}) => vue.VNodeChild) | undefined;
"v-slot:label"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
} & {
"onUpdate:modelValue"?: ((value: [number, number]) => any) | undefined;
"onUpdate:focused"?: ((value: boolean) => any) | undefined;
onEnd?: ((value: [number, number]) => any) | undefined;
onStart?: ((value: [number, number]) => any) | undefined;
}, {
reverse: boolean;
max: string | number;
error: boolean;
strict: boolean;
min: string | number;
direction: "horizontal" | "vertical";
style: vue.StyleValue;
disabled: boolean | null;
readonly: boolean | null;
step: string | number;
elevation: NonNullable<string | number>;
messages: string | readonly string[];
rounded: string | number | boolean;
density: Density;
modelValue: readonly (string | number)[];
ripple: boolean;
focused: boolean;
errorMessages: string | readonly string[] | null;
maxErrors: string | number;
rules: readonly ValidationRule[];
centerAffix: boolean;
hideSpinButtons: boolean;
persistentHint: boolean;
showTicks: boolean | "always";
tickSize: string | number;
trackSize: string | number;
thumbLabel: boolean | "always" | undefined;
thumbSize: string | number;
}, true, {}, vue.SlotsType<Partial<{
default: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
prepend: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
append: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
details: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
message: (arg: VMessageSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
'thumb-label': (arg: {
modelValue: number;
}) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
'tick-label': (arg: {
tick: Tick;
index: number;
}) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
label: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
}>>, {
P: {};
B: {};
D: {};
C: {};
M: {};
Defaults: {};
}, {
reverse: boolean;
max: string | number;
error: boolean;
strict: boolean;
min: string | number;
direction: "horizontal" | "vertical";
style: vue.StyleValue;
disabled: boolean | null;
readonly: boolean | null;
step: string | number;
elevation: NonNullable<string | number>;
messages: string | readonly string[];
density: Density;
modelValue: readonly (string | number)[];
ripple: boolean;
focused: boolean;
errorMessages: string | readonly string[] | null;
maxErrors: string | number;
rules: readonly ValidationRule[];
centerAffix: boolean;
hideSpinButtons: boolean;
persistentHint: boolean;
showTicks: boolean | "always";
tickSize: string | number;
trackSize: string | number;
thumbSize: string | number;
} & {
id?: string | undefined;
name?: string | undefined;
color?: string | undefined;
label?: string | undefined;
class?: any;
rounded?: string | number | boolean | undefined;
prependIcon?: IconValue | undefined;
appendIcon?: IconValue | undefined;
'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined;
'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
validateOn?: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined;
validationValue?: any;
hint?: string | undefined;
hideDetails?: boolean | "auto" | undefined;
trackColor?: string | undefined;
trackFillColor?: string | undefined;
thumbColor?: string | undefined;
thumbLabel?: boolean | "always" | undefined;
ticks?: readonly number[] | Record<number, string> | undefined;
} & {
$children?: vue.VNodeChild | ((arg: VInputSlot) => vue.VNodeChild) | {
default?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
prepend?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
append?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
details?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
message?: ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
'thumb-label'?: ((arg: {
modelValue: number;
}) => vue.VNodeChild) | undefined;
'tick-label'?: ((arg: {
tick: Tick;
index: number;
}) => vue.VNodeChild) | undefined;
label?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
};
'v-slots'?: {
default?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
prepend?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
append?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
details?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
message?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
'thumb-label'?: false | ((arg: {
modelValue: number;
}) => vue.VNodeChild) | undefined;
'tick-label'?: false | ((arg: {
tick: Tick;
index: number;
}) => vue.VNodeChild) | undefined;
label?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
"v-slot:prepend"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
"v-slot:append"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
"v-slot:details"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
"v-slot:message"?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
"v-slot:thumb-label"?: false | ((arg: {
modelValue: number;
}) => vue.VNodeChild) | undefined;
"v-slot:tick-label"?: false | ((arg: {
tick: Tick;
index: number;
}) => vue.VNodeChild) | undefined;
"v-slot:label"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
} & {
"onUpdate:modelValue"?: ((value: [number, number]) => any) | undefined;
"onUpdate:focused"?: ((value: boolean) => any) | undefined;
onEnd?: ((value: [number, number]) => any) | undefined;
onStart?: ((value: [number, number]) => any) | undefined;
}, {}, {}, {}, {}, {
reverse: boolean;
max: string | number;
error: boolean;
strict: boolean;
min: string | number;
direction: "horizontal" | "vertical";
style: vue.StyleValue;
disabled: boolean | null;
readonly: boolean | null;
step: string | number;
elevation: NonNullable<string | number>;
messages: string | readonly string[];
rounded: string | number | boolean;
density: Density;
modelValue: readonly (string | number)[];
ripple: boolean;
focused: boolean;
errorMessages: string | readonly string[] | null;
maxErrors: string | number;
rules: readonly ValidationRule[];
centerAffix: boolean;
hideSpinButtons: boolean;
persistentHint: boolean;
showTicks: boolean | "always";
tickSize: string | number;
trackSize: string | number;
thumbLabel: boolean | "always" | undefined;
thumbSize: string | number;
}>;
__isFragment?: undefined;
__isTeleport?: undefined;
__isSuspense?: undefined;
} & vue.ComponentOptionsBase<{
reverse: boolean;
max: string | number;
error: boolean;
strict: boolean;
min: string | number;
direction: "horizontal" | "vertical";
style: vue.StyleValue;
disabled: boolean | null;
readonly: boolean | null;
step: string | number;
elevation: NonNullable<string | number>;
messages: string | readonly string[];
density: Density;
modelValue: readonly (string | number)[];
ripple: boolean;
focused: boolean;
errorMessages: string | readonly string[] | null;
maxErrors: string | number;
rules: readonly ValidationRule[];
centerAffix: boolean;
hideSpinButtons: boolean;
persistentHint: boolean;
showTicks: boolean | "always";
tickSize: string | number;
trackSize: string | number;
thumbSize: string | number;
} & {
id?: string | undefined;
name?: string | undefined;
color?: string | undefined;
label?: string | undefined;
class?: any;
rounded?: string | number | boolean | undefined;
prependIcon?: IconValue | undefined;
appendIcon?: IconValue | undefined;
'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined;
'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
validateOn?: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined;
validationValue?: any;
hint?: string | undefined;
hideDetails?: boolean | "auto" | undefined;
trackColor?: string | undefined;
trackFillColor?: string | undefined;
thumbColor?: string | undefined;
thumbLabel?: boolean | "always" | undefined;
ticks?: readonly number[] | Record<number, string> | undefined;
} & {
$children?: vue.VNodeChild | ((arg: VInputSlot) => vue.VNodeChild) | {
default?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
prepend?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
append?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
details?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
message?: ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
'thumb-label'?: ((arg: {
modelValue: number;
}) => vue.VNodeChild) | undefined;
'tick-label'?: ((arg: {
tick: Tick;
index: number;
}) => vue.VNodeChild) | undefined;
label?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
};
'v-slots'?: {
default?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
prepend?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
append?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
details?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
message?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
'thumb-label'?: false | ((arg: {
modelValue: number;
}) => vue.VNodeChild) | undefined;
'tick-label'?: false | ((arg: {
tick: Tick;
index: number;
}) => vue.VNodeChild) | undefined;
label?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
"v-slot:prepend"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
"v-slot:append"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
"v-slot:details"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
"v-slot:message"?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
"v-slot:thumb-label"?: false | ((arg: {
modelValue: number;
}) => vue.VNodeChild) | undefined;
"v-slot:tick-label"?: false | ((arg: {
tick: Tick;
index: number;
}) => vue.VNodeChild) | undefined;
"v-slot:label"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
} & {
"onUpdate:modelValue"?: ((value: [number, number]) => any) | undefined;
"onUpdate:focused"?: ((value: boolean) => any) | undefined;
onEnd?: ((value: [number, number]) => any) | undefined;
onStart?: ((value: [number, number]) => any) | undefined;
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
'update:focused': (value: boolean) => true;
'update:modelValue': (value: [number, number]) => true;
end: (value: [number, number]) => true;
start: (value: [number, number]) => true;
}, string, {
reverse: boolean;
max: string | number;
error: boolean;
strict: boolean;
min: string | number;
direction: "horizontal" | "vertical";
style: vue.StyleValue;
disabled: boolean | null;
readonly: boolean | null;
step: string | number;
elevation: NonNullable<string | number>;
messages: string | readonly string[];
rounded: string | number | boolean;
density: Density;
modelValue: readonly (string | number)[];
ripple: boolean;
focused: boolean;
errorMessages: string | readonly string[] | null;
maxErrors: string | number;
rules: readonly ValidationRule[];
centerAffix: boolean;
hideSpinButtons: boolean;
persistentHint: boolean;
showTicks: boolean | "always";
tickSize: string | number;
trackSize: string | number;
thumbLabel: boolean | "always" | undefined;
thumbSize: string | number;
}, {}, string, vue.SlotsType<Partial<{
default: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
prepend: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
append: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
details: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
message: (arg: VMessageSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
'thumb-label': (arg: {
modelValue: number;
}) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
'tick-label': (arg: {
tick: Tick;
index: number;
}) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
label: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
}>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
strict: BooleanConstructor;
modelValue: {
type: PropType<readonly (string | number)[]>;
default: () => number[];
};
ripple: {
type: BooleanConstructor;
default: boolean;
};
elevation: Omit<{
type: (StringConstructor | NumberConstructor)[];
validator(v: any): boolean;
}, "type" | "default"> & {
type: PropType<NonNullable<string | number>>;
default: NonNullable<string | number>;
};
rounded: {
type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
default: undefined;
};
disabled: {
type: PropType<boolean | null>;
default: null;
};
error: BooleanConstructor;
readonly: {
type: PropType<boolean | null>;
default: null;
};
max: {
type: (StringConstructor | NumberConstructor)[];
default: number;
};
min: {
type: (StringConstructor | NumberConstructor)[];
default: number;
};
step: {
type: (StringConstructor | NumberConstructor)[];
default: number;
};
thumbColor: StringConstructor;
thumbLabel: {
type: PropType<boolean | "always" | undefined>;
default: undefined;
validator: (v: any) => boolean;
};
thumbSize: {
type: (StringConstructor | NumberConstructor)[];
default: number;
};
showTicks: {
type: PropType<boolean | "always">;
default: boolean;
validator: (v: any) => boolean;
};
ticks: {
type: PropType<readonly number[] | Record<number, string>>;
};
tickSize: {
type: (StringConstructor | NumberConstructor)[];
default: number;
};
color: StringConstructor;
trackColor: StringConstructor;
trackFillColor: StringConstructor;
trackSize: {
type: (StringConstructor | NumberConstructor)[];
default: number;
};
direction: {
type: PropType<"horizontal" | "vertical">;
default: string;
validator: (v: any) => boolean;
};
reverse: BooleanConstructor;
focused: BooleanConstructor;
'onUpdate:focused': PropType<(args_0: boolean) => void>;
errorMessages: {
type: PropType<string | readonly string[] | null>;
default: () => never[];
};
maxErrors: {
type: (StringConstructor | NumberConstructor)[];
default: number;
};
name: StringConstructor;
label: StringConstructor;
rules: {
type: PropType<readonly ValidationRule[]>;
default: () => never[];
};
validateOn: PropType<"lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined>;
validationValue: null;
density: {
type: PropType<Density>;
default: string;
validator: (v: any) => boolean;
};
class: PropType<any>;
style: {
type: PropType<vue.StyleValue>;
default: null;
};
id: StringConstructor;
appendIcon: PropType<IconValue>;
centerAffix: {
type: BooleanConstructor;
default: boolean;
};
prependIcon: PropType<IconValue>;
hideDetails: PropType<boolean | "auto">;
hideSpinButtons: BooleanConstructor;
hint: StringConstructor;
persistentHint: BooleanConstructor;
messages: {
type: PropType<string | readonly string[]>;
default: () => never[];
};
'onClick:prepend': PropType<(args_0: MouseEvent) => void>;
'onClick:append': PropType<(args_0: MouseEvent) => void>;
}, vue.ExtractPropTypes<{
strict: BooleanConstructor;
modelValue: {
type: PropType<readonly (string | number)[]>;
default: () => number[];
};
ripple: {
type: BooleanConstructor;
default: boolean;
};
elevation: Omit<{
type: (StringConstructor | NumberConstructor)[];
validator(v: any): boolean;
}, "type" | "default"> & {
type: PropType<NonNullable<string | number>>;
default: NonNullable<string | number>;
};
rounded: {
type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
default: undefined;
};
disabled: {
type: PropType<boolean | null>;
default: null;
};
error: BooleanConstructor;
readonly: {
type: PropType<boolean | null>;
default: null;
};
max: {
type: (StringConstructor | NumberConstructor)[];
default: number;
};
min: {
type: (StringConstructor | NumberConstructor)[];
default: number;
};
step: {
type: (StringConstructor | NumberConstructor)[];
default: number;
};
thumbColor: StringConstructor;
thumbLabel: {
type: PropType<boolean | "always" | undefined>;
default: undefined;
validator: (v: any) => boolean;
};
thumbSize: {
type: (StringConstructor | NumberConstructor)[];
default: number;
};
showTicks: {
type: PropType<boolean | "always">;
default: boolean;
validator: (v: any) => boolean;
};
ticks: {
type: PropType<readonly number[] | Record<number, string>>;
};
tickSize: {
type: (StringConstructor | NumberConstructor)[];
default: number;
};
color: StringConstructor;
trackColor: StringConstructor;
trackFillColor: StringConstructor;
trackSize: {
type: (StringConstructor | NumberConstructor)[];
default: number;
};
direction: {
type: PropType<"horizontal" | "vertical">;
default: string;
validator: (v: any) => boolean;
};
reverse: BooleanConstructor;
focused: BooleanConstructor;
'onUpdate:focused': PropType<(args_0: boolean) => void>;
errorMessages: {
type: PropType<string | readonly string[] | null>;
default: () => never[];
};
maxErrors: {
type: (StringConstructor | NumberConstructor)[];
default: number;
};
name: StringConstructor;
label: StringConstructor;
rules: {
type: PropType<readonly ValidationRule[]>;
default: () => never[];
};
validateOn: PropType<"lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined>;
validationValue: null;
density: {
type: PropType<Density>;
default: string;
validator: (v: any) => boolean;
};
class: PropType<any>;
style: {
type: PropType<vue.StyleValue>;
default: null;
};
id: StringConstructor;
appendIcon: PropType<IconValue>;
centerAffix: {
type: BooleanConstructor;
default: boolean;
};
prependIcon: PropType<IconValue>;
hideDetails: PropType<boolean | "auto">;
hideSpinButtons: BooleanConstructor;
hint: StringConstructor;
persistentHint: BooleanConstructor;
messages: {
type: PropType<string | readonly string[]>;
default: () => never[];
};
'onClick:prepend': PropType<(args_0: MouseEvent) => void>;
'onClick:append': PropType<(args_0: MouseEvent) => void>;
}>>;
type VRangeSlider = InstanceType<typeof VRangeSlider>;
export { VRangeSlider };

View File

@ -0,0 +1,2 @@
export { VRangeSlider } from "./VRangeSlider.mjs";
//# sourceMappingURL=index.mjs.map

View File

@ -0,0 +1 @@
{"version":3,"file":"index.mjs","names":["VRangeSlider"],"sources":["../../../src/components/VRangeSlider/index.ts"],"sourcesContent":["export { VRangeSlider } from './VRangeSlider'\n"],"mappings":"SAASA,YAAY"}