Vulture/VApp/node_modules/.vite/deps/chunk-4GJMZCX5.js

770 lines
22 KiB
JavaScript

import {
ripple_default
} from "./chunk-NMCVREUK.js";
import {
makeElevationProps,
useElevation
} from "./chunk-QXA6VMYU.js";
import {
VInput,
makeFocusProps,
makeVInputProps,
useFocus
} from "./chunk-ZCXGZYP7.js";
import {
makeRoundedProps,
useRounded
} from "./chunk-24LK52JF.js";
import {
VScaleTransition
} from "./chunk-JVZUVJAC.js";
import {
useBackgroundColor,
useTextColor
} from "./chunk-ZZ55KHRR.js";
import {
useRtl
} from "./chunk-IR5437QA.js";
import {
useProxiedModel
} from "./chunk-PVQHDZXM.js";
import {
VLabel
} from "./chunk-J5HFPFMJ.js";
import {
clamp,
convertToUnit,
createRange,
genericComponent,
getDecimals,
keyValues,
makeComponentProps,
propsFactory,
useRender
} from "./chunk-I4KGD5X4.js";
import {
Fragment,
computed,
createVNode,
inject,
mergeProps,
provide,
ref,
resolveDirective,
shallowRef,
toRef,
vShow,
withDirectives
} from "./chunk-PD2AWGJV.js";
// node_modules/vuetify/lib/components/VSlider/VSlider.mjs
import "C:/Users/Jeremy/Documents/Dev/Projects.cloudsucks.net/Vulture/VApp/node_modules/vuetify/lib/components/VSlider/VSlider.css";
// node_modules/vuetify/lib/components/VSlider/VSliderThumb.mjs
import "C:/Users/Jeremy/Documents/Dev/Projects.cloudsucks.net/Vulture/VApp/node_modules/vuetify/lib/components/VSlider/VSliderThumb.css";
// node_modules/vuetify/lib/components/VSlider/slider.mjs
var VSliderSymbol = Symbol.for("vuetify:v-slider");
function getOffset(e, el, direction) {
const vertical = direction === "vertical";
const rect = el.getBoundingClientRect();
const touch = "touches" in e ? e.touches[0] : e;
return vertical ? touch.clientY - (rect.top + rect.height / 2) : touch.clientX - (rect.left + rect.width / 2);
}
function getPosition(e, position) {
if ("touches" in e && e.touches.length) return e.touches[0][position];
else if ("changedTouches" in e && e.changedTouches.length) return e.changedTouches[0][position];
else return e[position];
}
var makeSliderProps = propsFactory({
disabled: {
type: Boolean,
default: null
},
error: Boolean,
readonly: {
type: Boolean,
default: null
},
max: {
type: [Number, String],
default: 100
},
min: {
type: [Number, String],
default: 0
},
step: {
type: [Number, String],
default: 0
},
thumbColor: String,
thumbLabel: {
type: [Boolean, String],
default: void 0,
validator: (v) => typeof v === "boolean" || v === "always"
},
thumbSize: {
type: [Number, String],
default: 20
},
showTicks: {
type: [Boolean, String],
default: false,
validator: (v) => typeof v === "boolean" || v === "always"
},
ticks: {
type: [Array, Object]
},
tickSize: {
type: [Number, String],
default: 2
},
color: String,
trackColor: String,
trackFillColor: String,
trackSize: {
type: [Number, String],
default: 4
},
direction: {
type: String,
default: "horizontal",
validator: (v) => ["vertical", "horizontal"].includes(v)
},
reverse: Boolean,
...makeRoundedProps(),
...makeElevationProps({
elevation: 2
}),
ripple: {
type: Boolean,
default: true
}
}, "Slider");
var useSteps = (props) => {
const min = computed(() => parseFloat(props.min));
const max = computed(() => parseFloat(props.max));
const step = computed(() => +props.step > 0 ? parseFloat(props.step) : 0);
const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)));
function roundValue(value) {
value = parseFloat(value);
if (step.value <= 0) return value;
const clamped = clamp(value, min.value, max.value);
const offset = min.value % step.value;
const newValue = Math.round((clamped - offset) / step.value) * step.value + offset;
return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value));
}
return {
min,
max,
step,
decimals,
roundValue
};
};
var useSlider = (_ref) => {
let {
props,
steps,
onSliderStart,
onSliderMove,
onSliderEnd,
getActiveThumb
} = _ref;
const {
isRtl
} = useRtl();
const isReversed = toRef(props, "reverse");
const vertical = computed(() => props.direction === "vertical");
const indexFromEnd = computed(() => vertical.value !== isReversed.value);
const {
min,
max,
step,
decimals,
roundValue
} = steps;
const thumbSize = computed(() => parseInt(props.thumbSize, 10));
const tickSize = computed(() => parseInt(props.tickSize, 10));
const trackSize = computed(() => parseInt(props.trackSize, 10));
const numTicks = computed(() => (max.value - min.value) / step.value);
const disabled = toRef(props, "disabled");
const thumbColor = computed(() => props.error || props.disabled ? void 0 : props.thumbColor ?? props.color);
const trackColor = computed(() => props.error || props.disabled ? void 0 : props.trackColor ?? props.color);
const trackFillColor = computed(() => props.error || props.disabled ? void 0 : props.trackFillColor ?? props.color);
const mousePressed = shallowRef(false);
const startOffset = shallowRef(0);
const trackContainerRef = ref();
const activeThumbRef = ref();
function parseMouseMove(e) {
var _a;
const vertical2 = props.direction === "vertical";
const start = vertical2 ? "top" : "left";
const length = vertical2 ? "height" : "width";
const position2 = vertical2 ? "clientY" : "clientX";
const {
[start]: trackStart,
[length]: trackLength
} = (_a = trackContainerRef.value) == null ? void 0 : _a.$el.getBoundingClientRect();
const clickOffset = getPosition(e, position2);
let clickPos = Math.min(Math.max((clickOffset - trackStart - startOffset.value) / trackLength, 0), 1) || 0;
if (vertical2 ? indexFromEnd.value : indexFromEnd.value !== isRtl.value) clickPos = 1 - clickPos;
return roundValue(min.value + clickPos * (max.value - min.value));
}
const handleStop = (e) => {
onSliderEnd({
value: parseMouseMove(e)
});
mousePressed.value = false;
startOffset.value = 0;
};
const handleStart = (e) => {
activeThumbRef.value = getActiveThumb(e);
if (!activeThumbRef.value) return;
activeThumbRef.value.focus();
mousePressed.value = true;
if (activeThumbRef.value.contains(e.target)) {
startOffset.value = getOffset(e, activeThumbRef.value, props.direction);
} else {
startOffset.value = 0;
onSliderMove({
value: parseMouseMove(e)
});
}
onSliderStart({
value: parseMouseMove(e)
});
};
const moveListenerOptions = {
passive: true,
capture: true
};
function onMouseMove(e) {
onSliderMove({
value: parseMouseMove(e)
});
}
function onSliderMouseUp(e) {
e.stopPropagation();
e.preventDefault();
handleStop(e);
window.removeEventListener("mousemove", onMouseMove, moveListenerOptions);
window.removeEventListener("mouseup", onSliderMouseUp);
}
function onSliderTouchend(e) {
var _a;
handleStop(e);
window.removeEventListener("touchmove", onMouseMove, moveListenerOptions);
(_a = e.target) == null ? void 0 : _a.removeEventListener("touchend", onSliderTouchend);
}
function onSliderTouchstart(e) {
var _a;
handleStart(e);
window.addEventListener("touchmove", onMouseMove, moveListenerOptions);
(_a = e.target) == null ? void 0 : _a.addEventListener("touchend", onSliderTouchend, {
passive: false
});
}
function onSliderMousedown(e) {
e.preventDefault();
handleStart(e);
window.addEventListener("mousemove", onMouseMove, moveListenerOptions);
window.addEventListener("mouseup", onSliderMouseUp, {
passive: false
});
}
const position = (val) => {
const percentage = (val - min.value) / (max.value - min.value) * 100;
return clamp(isNaN(percentage) ? 0 : percentage, 0, 100);
};
const showTicks = toRef(props, "showTicks");
const parsedTicks = computed(() => {
if (!showTicks.value) return [];
if (!props.ticks) {
return numTicks.value !== Infinity ? createRange(numTicks.value + 1).map((t) => {
const value = min.value + t * step.value;
return {
value,
position: position(value)
};
}) : [];
}
if (Array.isArray(props.ticks)) return props.ticks.map((t) => ({
value: t,
position: position(t),
label: t.toString()
}));
return Object.keys(props.ticks).map((key) => ({
value: parseFloat(key),
position: position(parseFloat(key)),
label: props.ticks[key]
}));
});
const hasLabels = computed(() => parsedTicks.value.some((_ref2) => {
let {
label
} = _ref2;
return !!label;
}));
const data = {
activeThumbRef,
color: toRef(props, "color"),
decimals,
disabled,
direction: toRef(props, "direction"),
elevation: toRef(props, "elevation"),
hasLabels,
isReversed,
indexFromEnd,
min,
max,
mousePressed,
numTicks,
onSliderMousedown,
onSliderTouchstart,
parsedTicks,
parseMouseMove,
position,
readonly: toRef(props, "readonly"),
rounded: toRef(props, "rounded"),
roundValue,
showTicks,
startOffset,
step,
thumbSize,
thumbColor,
thumbLabel: toRef(props, "thumbLabel"),
ticks: toRef(props, "ticks"),
tickSize,
trackColor,
trackContainerRef,
trackFillColor,
trackSize,
vertical
};
provide(VSliderSymbol, data);
return data;
};
// node_modules/vuetify/lib/components/VSlider/VSliderThumb.mjs
var makeVSliderThumbProps = propsFactory({
focused: Boolean,
max: {
type: Number,
required: true
},
min: {
type: Number,
required: true
},
modelValue: {
type: Number,
required: true
},
position: {
type: Number,
required: true
},
ripple: {
type: [Boolean, Object],
default: true
},
...makeComponentProps()
}, "VSliderThumb");
var VSliderThumb = genericComponent()({
name: "VSliderThumb",
directives: {
Ripple: ripple_default
},
props: makeVSliderThumbProps(),
emits: {
"update:modelValue": (v) => true
},
setup(props, _ref) {
let {
slots,
emit
} = _ref;
const slider = inject(VSliderSymbol);
const {
isRtl,
rtlClasses
} = useRtl();
if (!slider) throw new Error("[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider");
const {
thumbColor,
step,
disabled,
thumbSize,
thumbLabel,
direction,
isReversed,
vertical,
readonly,
elevation,
mousePressed,
decimals,
indexFromEnd
} = slider;
const elevationProps = computed(() => !disabled.value ? elevation.value : void 0);
const {
elevationClasses
} = useElevation(elevationProps);
const {
textColorClasses,
textColorStyles
} = useTextColor(thumbColor);
const {
pageup,
pagedown,
end,
home,
left,
right,
down,
up
} = keyValues;
const relevantKeys = [pageup, pagedown, end, home, left, right, down, up];
const multipliers = computed(() => {
if (step.value) return [1, 2, 3];
else return [1, 5, 10];
});
function parseKeydown(e, value) {
if (!relevantKeys.includes(e.key)) return;
e.preventDefault();
const _step = step.value || 0.1;
const steps = (props.max - props.min) / _step;
if ([left, right, down, up].includes(e.key)) {
const increase = vertical.value ? [isRtl.value ? left : right, isReversed.value ? down : up] : indexFromEnd.value !== isRtl.value ? [left, up] : [right, up];
const direction2 = increase.includes(e.key) ? 1 : -1;
const multiplier = e.shiftKey ? 2 : e.ctrlKey ? 1 : 0;
value = value + direction2 * _step * multipliers.value[multiplier];
} else if (e.key === home) {
value = props.min;
} else if (e.key === end) {
value = props.max;
} else {
const direction2 = e.key === pagedown ? 1 : -1;
value = value - direction2 * _step * (steps > 100 ? steps / 10 : 10);
}
return Math.max(props.min, Math.min(props.max, value));
}
function onKeydown(e) {
const newValue = parseKeydown(e, props.modelValue);
newValue != null && emit("update:modelValue", newValue);
}
useRender(() => {
const positionPercentage = convertToUnit(indexFromEnd.value ? 100 - props.position : props.position, "%");
return createVNode("div", {
"class": ["v-slider-thumb", {
"v-slider-thumb--focused": props.focused,
"v-slider-thumb--pressed": props.focused && mousePressed.value
}, props.class, rtlClasses.value],
"style": [{
"--v-slider-thumb-position": positionPercentage,
"--v-slider-thumb-size": convertToUnit(thumbSize.value)
}, props.style],
"role": "slider",
"tabindex": disabled.value ? -1 : 0,
"aria-valuemin": props.min,
"aria-valuemax": props.max,
"aria-valuenow": props.modelValue,
"aria-readonly": !!readonly.value,
"aria-orientation": direction.value,
"onKeydown": !readonly.value ? onKeydown : void 0
}, [createVNode("div", {
"class": ["v-slider-thumb__surface", textColorClasses.value, elevationClasses.value],
"style": {
...textColorStyles.value
}
}, null), withDirectives(createVNode("div", {
"class": ["v-slider-thumb__ripple", textColorClasses.value],
"style": textColorStyles.value
}, null), [[resolveDirective("ripple"), props.ripple, null, {
circle: true,
center: true
}]]), createVNode(VScaleTransition, {
"origin": "bottom center"
}, {
default: () => {
var _a;
return [withDirectives(createVNode("div", {
"class": "v-slider-thumb__label-container"
}, [createVNode("div", {
"class": ["v-slider-thumb__label"]
}, [createVNode("div", null, [((_a = slots["thumb-label"]) == null ? void 0 : _a.call(slots, {
modelValue: props.modelValue
})) ?? props.modelValue.toFixed(step.value ? decimals.value : 1)])])]), [[vShow, thumbLabel.value && props.focused || thumbLabel.value === "always"]])];
}
})]);
});
return {};
}
});
// node_modules/vuetify/lib/components/VSlider/VSliderTrack.mjs
import "C:/Users/Jeremy/Documents/Dev/Projects.cloudsucks.net/Vulture/VApp/node_modules/vuetify/lib/components/VSlider/VSliderTrack.css";
var makeVSliderTrackProps = propsFactory({
start: {
type: Number,
required: true
},
stop: {
type: Number,
required: true
},
...makeComponentProps()
}, "VSliderTrack");
var VSliderTrack = genericComponent()({
name: "VSliderTrack",
props: makeVSliderTrackProps(),
emits: {},
setup(props, _ref) {
let {
slots
} = _ref;
const slider = inject(VSliderSymbol);
if (!slider) throw new Error("[Vuetify] v-slider-track must be inside v-slider or v-range-slider");
const {
color,
parsedTicks,
rounded,
showTicks,
tickSize,
trackColor,
trackFillColor,
trackSize,
vertical,
min,
max,
indexFromEnd
} = slider;
const {
roundedClasses
} = useRounded(rounded);
const {
backgroundColorClasses: trackFillColorClasses,
backgroundColorStyles: trackFillColorStyles
} = useBackgroundColor(trackFillColor);
const {
backgroundColorClasses: trackColorClasses,
backgroundColorStyles: trackColorStyles
} = useBackgroundColor(trackColor);
const startDir = computed(() => `inset-${vertical.value ? "block" : "inline"}-${indexFromEnd.value ? "end" : "start"}`);
const endDir = computed(() => vertical.value ? "height" : "width");
const backgroundStyles = computed(() => {
return {
[startDir.value]: "0%",
[endDir.value]: "100%"
};
});
const trackFillWidth = computed(() => props.stop - props.start);
const trackFillStyles = computed(() => {
return {
[startDir.value]: convertToUnit(props.start, "%"),
[endDir.value]: convertToUnit(trackFillWidth.value, "%")
};
});
const computedTicks = computed(() => {
if (!showTicks.value) return [];
const ticks = vertical.value ? parsedTicks.value.slice().reverse() : parsedTicks.value;
return ticks.map((tick, index) => {
var _a;
const directionValue = tick.value !== min.value && tick.value !== max.value ? convertToUnit(tick.position, "%") : void 0;
return createVNode("div", {
"key": tick.value,
"class": ["v-slider-track__tick", {
"v-slider-track__tick--filled": tick.position >= props.start && tick.position <= props.stop,
"v-slider-track__tick--first": tick.value === min.value,
"v-slider-track__tick--last": tick.value === max.value
}],
"style": {
[startDir.value]: directionValue
}
}, [(tick.label || slots["tick-label"]) && createVNode("div", {
"class": "v-slider-track__tick-label"
}, [((_a = slots["tick-label"]) == null ? void 0 : _a.call(slots, {
tick,
index
})) ?? tick.label])]);
});
});
useRender(() => {
return createVNode("div", {
"class": ["v-slider-track", roundedClasses.value, props.class],
"style": [{
"--v-slider-track-size": convertToUnit(trackSize.value),
"--v-slider-tick-size": convertToUnit(tickSize.value)
}, props.style]
}, [createVNode("div", {
"class": ["v-slider-track__background", trackColorClasses.value, {
"v-slider-track__background--opacity": !!color.value || !trackFillColor.value
}],
"style": {
...backgroundStyles.value,
...trackColorStyles.value
}
}, null), createVNode("div", {
"class": ["v-slider-track__fill", trackFillColorClasses.value],
"style": {
...trackFillStyles.value,
...trackFillColorStyles.value
}
}, null), showTicks.value && createVNode("div", {
"class": ["v-slider-track__ticks", {
"v-slider-track__ticks--always-show": showTicks.value === "always"
}]
}, [computedTicks.value])]);
});
return {};
}
});
// node_modules/vuetify/lib/components/VSlider/VSlider.mjs
var makeVSliderProps = propsFactory({
...makeFocusProps(),
...makeSliderProps(),
...makeVInputProps(),
modelValue: {
type: [Number, String],
default: 0
}
}, "VSlider");
var VSlider = genericComponent()({
name: "VSlider",
props: makeVSliderProps(),
emits: {
"update:focused": (value) => true,
"update:modelValue": (v) => true,
start: (value) => true,
end: (value) => true
},
setup(props, _ref) {
let {
slots,
emit
} = _ref;
const thumbContainerRef = ref();
const {
rtlClasses
} = useRtl();
const steps = useSteps(props);
const model = useProxiedModel(props, "modelValue", void 0, (value) => {
return steps.roundValue(value == null ? steps.min.value : value);
});
const {
min,
max,
mousePressed,
roundValue,
onSliderMousedown,
onSliderTouchstart,
trackContainerRef,
position,
hasLabels,
readonly
} = useSlider({
props,
steps,
onSliderStart: () => {
emit("start", model.value);
},
onSliderEnd: (_ref2) => {
let {
value
} = _ref2;
const roundedValue = roundValue(value);
model.value = roundedValue;
emit("end", roundedValue);
},
onSliderMove: (_ref3) => {
let {
value
} = _ref3;
return model.value = roundValue(value);
},
getActiveThumb: () => {
var _a;
return (_a = thumbContainerRef.value) == null ? void 0 : _a.$el;
}
});
const {
isFocused,
focus,
blur
} = useFocus(props);
const trackStop = computed(() => position(model.value));
useRender(() => {
const inputProps = VInput.filterProps(props);
const hasPrepend = !!(props.label || slots.label || slots.prepend);
return createVNode(VInput, mergeProps({
"class": ["v-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
}, inputProps, {
"focused": isFocused.value
}), {
...slots,
prepend: hasPrepend ? (slotProps) => {
var _a, _b;
return createVNode(Fragment, null, [((_a = slots.label) == null ? void 0 : _a.call(slots, slotProps)) ?? (props.label ? createVNode(VLabel, {
"id": slotProps.id.value,
"class": "v-slider__label",
"text": props.label
}, null) : void 0), (_b = slots.prepend) == null ? void 0 : _b.call(slots, slotProps)]);
} : void 0,
default: (_ref4) => {
let {
id,
messagesId
} = _ref4;
return createVNode("div", {
"class": "v-slider__container",
"onMousedown": !readonly.value ? onSliderMousedown : void 0,
"onTouchstartPassive": !readonly.value ? onSliderTouchstart : void 0
}, [createVNode("input", {
"id": id.value,
"name": props.name || id.value,
"disabled": !!props.disabled,
"readonly": !!props.readonly,
"tabindex": "-1",
"value": model.value
}, null), createVNode(VSliderTrack, {
"ref": trackContainerRef,
"start": 0,
"stop": trackStop.value
}, {
"tick-label": slots["tick-label"]
}), createVNode(VSliderThumb, {
"ref": thumbContainerRef,
"aria-describedby": messagesId.value,
"focused": isFocused.value,
"min": min.value,
"max": max.value,
"modelValue": model.value,
"onUpdate:modelValue": (v) => model.value = v,
"position": trackStop.value,
"elevation": props.elevation,
"onFocus": focus,
"onBlur": blur,
"ripple": props.ripple
}, {
"thumb-label": slots["thumb-label"]
})]);
}
});
});
return {};
}
});
export {
VSlider
};
//# sourceMappingURL=chunk-4GJMZCX5.js.map