Vulture/VApp/node_modules/.vite/deps/chunk-7EFRYS5N.js

636 lines
20 KiB
JavaScript
Raw Normal View History

import {
intersect_default
} from "./chunk-3JAGB4CS.js";
import {
forwardRefs
} from "./chunk-DOBNCX34.js";
import {
VInput,
makeFocusProps,
makeVInputProps,
useFocus,
useInputIcon
} from "./chunk-ZCXGZYP7.js";
import {
LoaderSlot,
makeLoaderProps,
useLoader
} from "./chunk-44S2JOLY.js";
import {
makeRoundedProps,
useRounded
} from "./chunk-24LK52JF.js";
import {
VExpandXTransition,
VSlideYTransition
} from "./chunk-JVZUVJAC.js";
import {
MaybeTransition,
makeTransitionProps
} from "./chunk-XRWT7YWI.js";
import {
useBackgroundColor,
useTextColor
} from "./chunk-ZZ55KHRR.js";
import {
IconValue
} from "./chunk-472DNWSX.js";
import {
useRtl
} from "./chunk-IR5437QA.js";
import {
useProxiedModel
} from "./chunk-PVQHDZXM.js";
import {
VLabel
} from "./chunk-J5HFPFMJ.js";
import {
makeThemeProps,
provideTheme
} from "./chunk-CYOEVGGH.js";
import {
EventProp,
animate,
callEvent,
convertToUnit,
filterInputAttrs,
genericComponent,
getUid,
isOn,
makeComponentProps,
nullifyTransforms,
pick,
propsFactory,
standardEasing,
useRender
} from "./chunk-I4KGD5X4.js";
import {
Fragment,
cloneVNode,
computed,
createVNode,
mergeProps,
nextTick,
ref,
resolveDirective,
toRef,
vShow,
watch,
withDirectives
} from "./chunk-PD2AWGJV.js";
// node_modules/vuetify/lib/components/VTextField/VTextField.mjs
import "C:/Users/Jeremy/Documents/Dev/Projects.cloudsucks.net/Vulture/VApp/node_modules/vuetify/lib/components/VTextField/VTextField.css";
// node_modules/vuetify/lib/components/VCounter/VCounter.mjs
import "C:/Users/Jeremy/Documents/Dev/Projects.cloudsucks.net/Vulture/VApp/node_modules/vuetify/lib/components/VCounter/VCounter.css";
var makeVCounterProps = propsFactory({
active: Boolean,
max: [Number, String],
value: {
type: [Number, String],
default: 0
},
...makeComponentProps(),
...makeTransitionProps({
transition: {
component: VSlideYTransition
}
})
}, "VCounter");
var VCounter = genericComponent()({
name: "VCounter",
functional: true,
props: makeVCounterProps(),
setup(props, _ref) {
let {
slots
} = _ref;
const counter = computed(() => {
return props.max ? `${props.value} / ${props.max}` : String(props.value);
});
useRender(() => createVNode(MaybeTransition, {
"transition": props.transition
}, {
default: () => [withDirectives(createVNode("div", {
"class": ["v-counter", props.class],
"style": props.style
}, [slots.default ? slots.default({
counter: counter.value,
max: props.max,
value: props.value
}) : counter.value]), [[vShow, props.active]])]
}));
return {};
}
});
// node_modules/vuetify/lib/components/VField/VField.mjs
import "C:/Users/Jeremy/Documents/Dev/Projects.cloudsucks.net/Vulture/VApp/node_modules/vuetify/lib/components/VField/VField.css";
// node_modules/vuetify/lib/components/VField/VFieldLabel.mjs
var makeVFieldLabelProps = propsFactory({
floating: Boolean,
...makeComponentProps()
}, "VFieldLabel");
var VFieldLabel = genericComponent()({
name: "VFieldLabel",
props: makeVFieldLabelProps(),
setup(props, _ref) {
let {
slots
} = _ref;
useRender(() => createVNode(VLabel, {
"class": ["v-field-label", {
"v-field-label--floating": props.floating
}, props.class],
"style": props.style,
"aria-hidden": props.floating || void 0
}, slots));
return {};
}
});
// node_modules/vuetify/lib/components/VField/VField.mjs
var allowedVariants = ["underlined", "outlined", "filled", "solo", "solo-inverted", "solo-filled", "plain"];
var makeVFieldProps = propsFactory({
appendInnerIcon: IconValue,
bgColor: String,
clearable: Boolean,
clearIcon: {
type: IconValue,
default: "$clear"
},
active: Boolean,
centerAffix: {
type: Boolean,
default: void 0
},
color: String,
baseColor: String,
dirty: Boolean,
disabled: {
type: Boolean,
default: null
},
error: Boolean,
flat: Boolean,
label: String,
persistentClear: Boolean,
prependInnerIcon: IconValue,
reverse: Boolean,
singleLine: Boolean,
variant: {
type: String,
default: "filled",
validator: (v) => allowedVariants.includes(v)
},
"onClick:clear": EventProp(),
"onClick:appendInner": EventProp(),
"onClick:prependInner": EventProp(),
...makeComponentProps(),
...makeLoaderProps(),
...makeRoundedProps(),
...makeThemeProps()
}, "VField");
var VField = genericComponent()({
name: "VField",
inheritAttrs: false,
props: {
id: String,
...makeFocusProps(),
...makeVFieldProps()
},
emits: {
"update:focused": (focused) => true,
"update:modelValue": (value) => true
},
setup(props, _ref) {
let {
attrs,
emit,
slots
} = _ref;
const {
themeClasses
} = provideTheme(props);
const {
loaderClasses
} = useLoader(props);
const {
focusClasses,
isFocused,
focus,
blur
} = useFocus(props);
const {
InputIcon
} = useInputIcon(props);
const {
roundedClasses
} = useRounded(props);
const {
rtlClasses
} = useRtl();
const isActive = computed(() => props.dirty || props.active);
const hasLabel = computed(() => !props.singleLine && !!(props.label || slots.label));
const uid = getUid();
const id = computed(() => props.id || `input-${uid}`);
const messagesId = computed(() => `${id.value}-messages`);
const labelRef = ref();
const floatingLabelRef = ref();
const controlRef = ref();
const isPlainOrUnderlined = computed(() => ["plain", "underlined"].includes(props.variant));
const {
backgroundColorClasses,
backgroundColorStyles
} = useBackgroundColor(toRef(props, "bgColor"));
const {
textColorClasses,
textColorStyles
} = useTextColor(computed(() => {
return props.error || props.disabled ? void 0 : isActive.value && isFocused.value ? props.color : props.baseColor;
}));
watch(isActive, (val) => {
if (hasLabel.value) {
const el = labelRef.value.$el;
const targetEl = floatingLabelRef.value.$el;
requestAnimationFrame(() => {
const rect = nullifyTransforms(el);
const targetRect = targetEl.getBoundingClientRect();
const x = targetRect.x - rect.x;
const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2);
const targetWidth = targetRect.width / 0.75;
const width = Math.abs(targetWidth - rect.width) > 1 ? {
maxWidth: convertToUnit(targetWidth)
} : void 0;
const style = getComputedStyle(el);
const targetStyle = getComputedStyle(targetEl);
const duration = parseFloat(style.transitionDuration) * 1e3 || 150;
const scale = parseFloat(targetStyle.getPropertyValue("--v-field-label-scale"));
const color = targetStyle.getPropertyValue("color");
el.style.visibility = "visible";
targetEl.style.visibility = "hidden";
animate(el, {
transform: `translate(${x}px, ${y}px) scale(${scale})`,
color,
...width
}, {
duration,
easing: standardEasing,
direction: val ? "normal" : "reverse"
}).finished.then(() => {
el.style.removeProperty("visibility");
targetEl.style.removeProperty("visibility");
});
});
}
}, {
flush: "post"
});
const slotProps = computed(() => ({
isActive,
isFocused,
controlRef,
blur,
focus
}));
function onClick(e) {
if (e.target !== document.activeElement) {
e.preventDefault();
}
}
useRender(() => {
var _a, _b, _c;
const isOutlined = props.variant === "outlined";
const hasPrepend = slots["prepend-inner"] || props.prependInnerIcon;
const hasClear = !!(props.clearable || slots.clear);
const hasAppend = !!(slots["append-inner"] || props.appendInnerIcon || hasClear);
const label = () => slots.label ? slots.label({
...slotProps.value,
label: props.label,
props: {
for: id.value
}
}) : props.label;
return createVNode("div", mergeProps({
"class": ["v-field", {
"v-field--active": isActive.value,
"v-field--appended": hasAppend,
"v-field--center-affix": props.centerAffix ?? !isPlainOrUnderlined.value,
"v-field--disabled": props.disabled,
"v-field--dirty": props.dirty,
"v-field--error": props.error,
"v-field--flat": props.flat,
"v-field--has-background": !!props.bgColor,
"v-field--persistent-clear": props.persistentClear,
"v-field--prepended": hasPrepend,
"v-field--reverse": props.reverse,
"v-field--single-line": props.singleLine,
"v-field--no-label": !label(),
[`v-field--variant-${props.variant}`]: true
}, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, rtlClasses.value, props.class],
"style": [backgroundColorStyles.value, props.style],
"onClick": onClick
}, attrs), [createVNode("div", {
"class": "v-field__overlay"
}, null), createVNode(LoaderSlot, {
"name": "v-field",
"active": !!props.loading,
"color": props.error ? "error" : typeof props.loading === "string" ? props.loading : props.color
}, {
default: slots.loader
}), hasPrepend && createVNode("div", {
"key": "prepend",
"class": "v-field__prepend-inner"
}, [props.prependInnerIcon && createVNode(InputIcon, {
"key": "prepend-icon",
"name": "prependInner"
}, null), (_a = slots["prepend-inner"]) == null ? void 0 : _a.call(slots, slotProps.value)]), createVNode("div", {
"class": "v-field__field",
"data-no-activator": ""
}, [["filled", "solo", "solo-inverted", "solo-filled"].includes(props.variant) && hasLabel.value && createVNode(VFieldLabel, {
"key": "floating-label",
"ref": floatingLabelRef,
"class": [textColorClasses.value],
"floating": true,
"for": id.value,
"style": textColorStyles.value
}, {
default: () => [label()]
}), createVNode(VFieldLabel, {
"ref": labelRef,
"for": id.value
}, {
default: () => [label()]
}), (_b = slots.default) == null ? void 0 : _b.call(slots, {
...slotProps.value,
props: {
id: id.value,
class: "v-field__input",
"aria-describedby": messagesId.value
},
focus,
blur
})]), hasClear && createVNode(VExpandXTransition, {
"key": "clear"
}, {
default: () => [withDirectives(createVNode("div", {
"class": "v-field__clearable",
"onMousedown": (e) => {
e.preventDefault();
e.stopPropagation();
}
}, [slots.clear ? slots.clear() : createVNode(InputIcon, {
"name": "clear"
}, null)]), [[vShow, props.dirty]])]
}), hasAppend && createVNode("div", {
"key": "append",
"class": "v-field__append-inner"
}, [(_c = slots["append-inner"]) == null ? void 0 : _c.call(slots, slotProps.value), props.appendInnerIcon && createVNode(InputIcon, {
"key": "append-icon",
"name": "appendInner"
}, null)]), createVNode("div", {
"class": ["v-field__outline", textColorClasses.value],
"style": textColorStyles.value
}, [isOutlined && createVNode(Fragment, null, [createVNode("div", {
"class": "v-field__outline__start"
}, null), hasLabel.value && createVNode("div", {
"class": "v-field__outline__notch"
}, [createVNode(VFieldLabel, {
"ref": floatingLabelRef,
"floating": true,
"for": id.value
}, {
default: () => [label()]
})]), createVNode("div", {
"class": "v-field__outline__end"
}, null)]), isPlainOrUnderlined.value && hasLabel.value && createVNode(VFieldLabel, {
"ref": floatingLabelRef,
"floating": true,
"for": id.value
}, {
default: () => [label()]
})])]);
});
return {
controlRef
};
}
});
function filterFieldProps(attrs) {
const keys = Object.keys(VField.props).filter((k) => !isOn(k) && k !== "class" && k !== "style");
return pick(attrs, keys);
}
// node_modules/vuetify/lib/components/VTextField/VTextField.mjs
var activeTypes = ["color", "file", "time", "date", "datetime-local", "week", "month"];
var makeVTextFieldProps = propsFactory({
autofocus: Boolean,
counter: [Boolean, Number, String],
counterValue: [Number, Function],
prefix: String,
placeholder: String,
persistentPlaceholder: Boolean,
persistentCounter: Boolean,
suffix: String,
role: String,
type: {
type: String,
default: "text"
},
modelModifiers: Object,
...makeVInputProps(),
...makeVFieldProps()
}, "VTextField");
var VTextField = genericComponent()({
name: "VTextField",
directives: {
Intersect: intersect_default
},
inheritAttrs: false,
props: makeVTextFieldProps(),
emits: {
"click:control": (e) => true,
"mousedown:control": (e) => true,
"update:focused": (focused) => true,
"update:modelValue": (val) => true
},
setup(props, _ref) {
let {
attrs,
emit,
slots
} = _ref;
const model = useProxiedModel(props, "modelValue");
const {
isFocused,
focus,
blur
} = useFocus(props);
const counterValue = computed(() => {
return typeof props.counterValue === "function" ? props.counterValue(model.value) : typeof props.counterValue === "number" ? props.counterValue : (model.value ?? "").toString().length;
});
const max = computed(() => {
if (attrs.maxlength) return attrs.maxlength;
if (!props.counter || typeof props.counter !== "number" && typeof props.counter !== "string") return void 0;
return props.counter;
});
const isPlainOrUnderlined = computed(() => ["plain", "underlined"].includes(props.variant));
function onIntersect(isIntersecting, entries) {
var _a, _b;
if (!props.autofocus || !isIntersecting) return;
(_b = (_a = entries[0].target) == null ? void 0 : _a.focus) == null ? void 0 : _b.call(_a);
}
const vInputRef = ref();
const vFieldRef = ref();
const inputRef = ref();
const isActive = computed(() => activeTypes.includes(props.type) || props.persistentPlaceholder || isFocused.value || props.active);
function onFocus() {
var _a;
if (inputRef.value !== document.activeElement) {
(_a = inputRef.value) == null ? void 0 : _a.focus();
}
if (!isFocused.value) focus();
}
function onControlMousedown(e) {
emit("mousedown:control", e);
if (e.target === inputRef.value) return;
onFocus();
e.preventDefault();
}
function onControlClick(e) {
onFocus();
emit("click:control", e);
}
function onClear(e) {
e.stopPropagation();
onFocus();
nextTick(() => {
model.value = null;
callEvent(props["onClick:clear"], e);
});
}
function onInput(e) {
var _a;
const el = e.target;
model.value = el.value;
if (((_a = props.modelModifiers) == null ? void 0 : _a.trim) && ["text", "search", "password", "tel", "url"].includes(props.type)) {
const caretPosition = [el.selectionStart, el.selectionEnd];
nextTick(() => {
el.selectionStart = caretPosition[0];
el.selectionEnd = caretPosition[1];
});
}
}
useRender(() => {
const hasCounter = !!(slots.counter || props.counter !== false && props.counter != null);
const hasDetails = !!(hasCounter || slots.details);
const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
const {
modelValue: _,
...inputProps
} = VInput.filterProps(props);
const fieldProps = filterFieldProps(props);
return createVNode(VInput, mergeProps({
"ref": vInputRef,
"modelValue": model.value,
"onUpdate:modelValue": ($event) => model.value = $event,
"class": ["v-text-field", {
"v-text-field--prefixed": props.prefix,
"v-text-field--suffixed": props.suffix,
"v-input--plain-underlined": isPlainOrUnderlined.value
}, props.class],
"style": props.style
}, rootAttrs, inputProps, {
"centerAffix": !isPlainOrUnderlined.value,
"focused": isFocused.value
}), {
...slots,
default: (_ref2) => {
let {
id,
isDisabled,
isDirty,
isReadonly,
isValid
} = _ref2;
return createVNode(VField, mergeProps({
"ref": vFieldRef,
"onMousedown": onControlMousedown,
"onClick": onControlClick,
"onClick:clear": onClear,
"onClick:prependInner": props["onClick:prependInner"],
"onClick:appendInner": props["onClick:appendInner"],
"role": props.role
}, fieldProps, {
"id": id.value,
"active": isActive.value || isDirty.value,
"dirty": isDirty.value || props.dirty,
"disabled": isDisabled.value,
"focused": isFocused.value,
"error": isValid.value === false
}), {
...slots,
default: (_ref3) => {
let {
props: {
class: fieldClass,
...slotProps
}
} = _ref3;
const inputNode = withDirectives(createVNode("input", mergeProps({
"ref": inputRef,
"value": model.value,
"onInput": onInput,
"autofocus": props.autofocus,
"readonly": isReadonly.value,
"disabled": isDisabled.value,
"name": props.name,
"placeholder": props.placeholder,
"size": 1,
"type": props.type,
"onFocus": onFocus,
"onBlur": blur
}, slotProps, inputAttrs), null), [[resolveDirective("intersect"), {
handler: onIntersect
}, null, {
once: true
}]]);
return createVNode(Fragment, null, [props.prefix && createVNode("span", {
"class": "v-text-field__prefix"
}, [createVNode("span", {
"class": "v-text-field__prefix__text"
}, [props.prefix])]), slots.default ? createVNode("div", {
"class": fieldClass,
"data-no-activator": ""
}, [slots.default(), inputNode]) : cloneVNode(inputNode, {
class: fieldClass
}), props.suffix && createVNode("span", {
"class": "v-text-field__suffix"
}, [createVNode("span", {
"class": "v-text-field__suffix__text"
}, [props.suffix])])]);
}
});
},
details: hasDetails ? (slotProps) => {
var _a;
return createVNode(Fragment, null, [(_a = slots.details) == null ? void 0 : _a.call(slots, slotProps), hasCounter && createVNode(Fragment, null, [createVNode("span", null, null), createVNode(VCounter, {
"active": props.persistentCounter || isFocused.value,
"value": counterValue.value,
"max": max.value
}, slots.counter)])]);
} : void 0
});
});
return forwardRefs({}, vInputRef, vFieldRef, inputRef);
}
});
export {
makeVTextFieldProps,
VTextField
};
//# sourceMappingURL=chunk-7EFRYS5N.js.map