first commit

This commit is contained in:
2025-12-29 14:59:44 +08:00
commit 10c3fbb0d7
5315 changed files with 795443 additions and 0 deletions

30
node_modules/vant/es/utils/basic.d.ts generated vendored Normal file
View File

@@ -0,0 +1,30 @@
import type { ComponentPublicInstance } from 'vue';
export declare function noop(): void;
export declare const extend: {
<T extends {}, U>(target: T, source: U): T & U;
<T extends {}, U, V>(target: T, source1: U, source2: V): T & U & V;
<T extends {}, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W;
(target: object, ...sources: any[]): any;
};
export declare const inBrowser: boolean;
export type Numeric = number | string;
export type ComponentInstance = ComponentPublicInstance<{}, any>;
export declare const isObject: (val: unknown) => val is Record<any, any>;
export declare const isDef: <T>(val: T) => val is NonNullable<T>;
export declare const isFunction: (val: unknown) => val is Function;
export declare const isPromise: <T = any>(val: unknown) => val is Promise<T>;
export declare const isDate: (val: unknown) => val is Date;
export declare function isMobile(value: string): boolean;
export declare const isNumeric: (val: Numeric) => val is string;
export declare const isIOS: () => boolean;
export declare function get(object: any, path: string): any;
export type Writeable<T> = {
-readonly [P in keyof T]: T[P];
};
export type RequiredParams<T> = T extends (...args: infer P) => infer R ? (...args: {
[K in keyof P]-?: NonNullable<P[K]>;
}) => R : never;
export declare function pick<T, U extends keyof T>(obj: T, keys: ReadonlyArray<U>, ignoreUndefined?: boolean): Writeable<Pick<T, U>>;
export declare const isSameValue: (newValue: unknown, oldValue: unknown) => boolean;
export declare const toArray: <T>(item: T | T[]) => T[];
export declare const flat: <T>(arr: Array<T | T[]>) => T[];

56
node_modules/vant/es/utils/basic.mjs generated vendored Normal file
View File

@@ -0,0 +1,56 @@
function noop() {
}
const extend = Object.assign;
const inBrowser = typeof window !== "undefined";
const isObject = (val) => val !== null && typeof val === "object";
const isDef = (val) => val !== void 0 && val !== null;
const isFunction = (val) => typeof val === "function";
const isPromise = (val) => isObject(val) && isFunction(val.then) && isFunction(val.catch);
const isDate = (val) => Object.prototype.toString.call(val) === "[object Date]" && !Number.isNaN(val.getTime());
function isMobile(value) {
value = value.replace(/[^-|\d]/g, "");
return /^((\+86)|(86))?(1)\d{10}$/.test(value) || /^0[0-9-]{10,13}$/.test(value);
}
const isNumeric = (val) => typeof val === "number" || /^\d+(\.\d+)?$/.test(val);
const isIOS = () => inBrowser ? /ios|iphone|ipad|ipod/.test(navigator.userAgent.toLowerCase()) : false;
function get(object, path) {
const keys = path.split(".");
let result = object;
keys.forEach((key) => {
var _a;
result = isObject(result) ? (_a = result[key]) != null ? _a : "" : "";
});
return result;
}
function pick(obj, keys, ignoreUndefined) {
return keys.reduce(
(ret, key) => {
if (!ignoreUndefined || obj[key] !== void 0) {
ret[key] = obj[key];
}
return ret;
},
{}
);
}
const isSameValue = (newValue, oldValue) => JSON.stringify(newValue) === JSON.stringify(oldValue);
const toArray = (item) => Array.isArray(item) ? item : [item];
const flat = (arr) => arr.reduce((acc, val) => acc.concat(val), []);
export {
extend,
flat,
get,
inBrowser,
isDate,
isDef,
isFunction,
isIOS,
isMobile,
isNumeric,
isObject,
isPromise,
isSameValue,
noop,
pick,
toArray
};

1
node_modules/vant/es/utils/closest.d.ts generated vendored Normal file
View File

@@ -0,0 +1 @@
export declare function closest(arr: number[], target: number): number;

8
node_modules/vant/es/utils/closest.mjs generated vendored Normal file
View File

@@ -0,0 +1,8 @@
function closest(arr, target) {
return arr.reduce(
(pre, cur) => Math.abs(pre - target) < Math.abs(cur - target) ? pre : cur
);
}
export {
closest
};

14
node_modules/vant/es/utils/constant.d.ts generated vendored Normal file
View File

@@ -0,0 +1,14 @@
import type { InjectionKey } from 'vue';
import type { FormProvide } from '../form/types';
export declare const BORDER = "van-hairline";
export declare const BORDER_TOP = "van-hairline--top";
export declare const BORDER_LEFT = "van-hairline--left";
export declare const BORDER_RIGHT = "van-hairline--right";
export declare const BORDER_BOTTOM = "van-hairline--bottom";
export declare const BORDER_SURROUND = "van-hairline--surround";
export declare const BORDER_TOP_BOTTOM = "van-hairline--top-bottom";
export declare const BORDER_UNSET_TOP_BOTTOM = "van-hairline-unset--top-bottom";
export declare const HAPTICS_FEEDBACK = "van-haptics-feedback";
export declare const FORM_KEY: InjectionKey<FormProvide>;
export declare const LONG_PRESS_START_TIME = 500;
export declare const TAP_OFFSET = 5;

26
node_modules/vant/es/utils/constant.mjs generated vendored Normal file
View File

@@ -0,0 +1,26 @@
const BORDER = "van-hairline";
const BORDER_TOP = `${BORDER}--top`;
const BORDER_LEFT = `${BORDER}--left`;
const BORDER_RIGHT = `${BORDER}--right`;
const BORDER_BOTTOM = `${BORDER}--bottom`;
const BORDER_SURROUND = `${BORDER}--surround`;
const BORDER_TOP_BOTTOM = `${BORDER}--top-bottom`;
const BORDER_UNSET_TOP_BOTTOM = `${BORDER}-unset--top-bottom`;
const HAPTICS_FEEDBACK = "van-haptics-feedback";
const FORM_KEY = Symbol("van-form");
const LONG_PRESS_START_TIME = 500;
const TAP_OFFSET = 5;
export {
BORDER,
BORDER_BOTTOM,
BORDER_LEFT,
BORDER_RIGHT,
BORDER_SURROUND,
BORDER_TOP,
BORDER_TOP_BOTTOM,
BORDER_UNSET_TOP_BOTTOM,
FORM_KEY,
HAPTICS_FEEDBACK,
LONG_PRESS_START_TIME,
TAP_OFFSET
};

17
node_modules/vant/es/utils/create.d.ts generated vendored Normal file
View File

@@ -0,0 +1,17 @@
export declare function createTranslate(name: string): (path: string, ...args: unknown[]) => any;
export type Translate = ReturnType<typeof createTranslate>;
export type Mod = string | {
[key: string]: any;
};
export type Mods = Mod | Mod[];
/**
* bem helper
* b() // 'button'
* b('text') // 'button__text'
* b({ disabled }) // 'button button--disabled'
* b('text', { disabled }) // 'button__text button__text--disabled'
* b(['disabled', 'primary']) // 'button button--disabled button--primary'
*/
export declare function createBEM(name: string): (el?: Mods, mods?: Mods) => Mods;
export type BEM = ReturnType<typeof createBEM>;
export declare function createNamespace(name: string): readonly [string, (el?: Mods, mods?: Mods) => Mods, (path: string, ...args: unknown[]) => any];

52
node_modules/vant/es/utils/create.mjs generated vendored Normal file
View File

@@ -0,0 +1,52 @@
import { get, isFunction } from "./basic.mjs";
import { camelize } from "./format.mjs";
import locale from "../locale/index.mjs";
function createTranslate(name) {
const prefix = camelize(name) + ".";
return (path, ...args) => {
const messages = locale.messages();
const message = get(messages, prefix + path) || get(messages, path);
return isFunction(message) ? message(...args) : message;
};
}
function genBem(name, mods) {
if (!mods) {
return "";
}
if (typeof mods === "string") {
return ` ${name}--${mods}`;
}
if (Array.isArray(mods)) {
return mods.reduce(
(ret, item) => ret + genBem(name, item),
""
);
}
return Object.keys(mods).reduce(
(ret, key) => ret + (mods[key] ? genBem(name, key) : ""),
""
);
}
function createBEM(name) {
return (el, mods) => {
if (el && typeof el !== "string") {
mods = el;
el = "";
}
el = el ? `${name}__${el}` : name;
return `${el}${genBem(el, mods)}`;
};
}
function createNamespace(name) {
const prefixedName = `van-${name}`;
return [
prefixedName,
createBEM(prefixedName),
createTranslate(prefixedName)
];
}
export {
createBEM,
createNamespace,
createTranslate
};

3
node_modules/vant/es/utils/deep-assign.d.ts generated vendored Normal file
View File

@@ -0,0 +1,3 @@
type ObjectIndex = Record<string, unknown>;
export declare function deepAssign(to: ObjectIndex, from: ObjectIndex): ObjectIndex;
export {};

22
node_modules/vant/es/utils/deep-assign.mjs generated vendored Normal file
View File

@@ -0,0 +1,22 @@
import { isDef, isObject } from "./basic.mjs";
const { hasOwnProperty } = Object.prototype;
function assignKey(to, from, key) {
const val = from[key];
if (!isDef(val)) {
return;
}
if (!hasOwnProperty.call(to, key) || !isObject(val)) {
to[key] = val;
} else {
to[key] = deepAssign(Object(to[key]), val);
}
}
function deepAssign(to, from) {
Object.keys(from).forEach((key) => {
assignKey(to, from, key);
});
return to;
}
export {
deepAssign
};

1
node_modules/vant/es/utils/deep-clone.d.ts generated vendored Normal file
View File

@@ -0,0 +1 @@
export declare function deepClone<T extends Record<string, any> | null | undefined>(obj: T): T;

20
node_modules/vant/es/utils/deep-clone.mjs generated vendored Normal file
View File

@@ -0,0 +1,20 @@
import { isDef, isObject } from "./basic.mjs";
function deepClone(obj) {
if (!isDef(obj)) {
return obj;
}
if (Array.isArray(obj)) {
return obj.map((item) => deepClone(item));
}
if (isObject(obj)) {
const to = {};
Object.keys(obj).forEach((key) => {
to[key] = deepClone(obj[key]);
});
return to;
}
return obj;
}
export {
deepClone
};

13
node_modules/vant/es/utils/dom.d.ts generated vendored Normal file
View File

@@ -0,0 +1,13 @@
import { Ref } from 'vue';
export type ScrollElement = Element | Window;
export declare function getScrollTop(el: ScrollElement): number;
export declare function setScrollTop(el: ScrollElement, value: number): void;
export declare function getRootScrollTop(): number;
export declare function setRootScrollTop(value: number): void;
export declare function getElementTop(el: ScrollElement, scroller?: ScrollElement): number;
export declare function resetScroll(): void;
export declare const stopPropagation: (event: Event) => void;
export declare function preventDefault(event: Event, isStopPropagation?: boolean): void;
export declare function isHidden(elementRef: HTMLElement | Ref<HTMLElement | undefined>): boolean;
export declare const windowWidth: Ref<number, number>, windowHeight: Ref<number, number>;
export declare function getContainingBlock(el: Element): HTMLElement | null;

84
node_modules/vant/es/utils/dom.mjs generated vendored Normal file
View File

@@ -0,0 +1,84 @@
import { useRect, useWindowSize } from "@vant/use";
import { unref } from "vue";
import { isIOS as checkIsIOS } from "./basic.mjs";
function getScrollTop(el) {
const top = "scrollTop" in el ? el.scrollTop : el.pageYOffset;
return Math.max(top, 0);
}
function setScrollTop(el, value) {
if ("scrollTop" in el) {
el.scrollTop = value;
} else {
el.scrollTo(el.scrollX, value);
}
}
function getRootScrollTop() {
return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
}
function setRootScrollTop(value) {
setScrollTop(window, value);
setScrollTop(document.body, value);
}
function getElementTop(el, scroller) {
if (el === window) {
return 0;
}
const scrollTop = scroller ? getScrollTop(scroller) : getRootScrollTop();
return useRect(el).top + scrollTop;
}
const isIOS = checkIsIOS();
function resetScroll() {
if (isIOS) {
setRootScrollTop(getRootScrollTop());
}
}
const stopPropagation = (event) => event.stopPropagation();
function preventDefault(event, isStopPropagation) {
if (typeof event.cancelable !== "boolean" || event.cancelable) {
event.preventDefault();
}
if (isStopPropagation) {
stopPropagation(event);
}
}
function isHidden(elementRef) {
const el = unref(elementRef);
if (!el) {
return false;
}
const style = window.getComputedStyle(el);
const hidden = style.display === "none";
const parentHidden = el.offsetParent === null && style.position !== "fixed";
return hidden || parentHidden;
}
const { width: windowWidth, height: windowHeight } = useWindowSize();
function isContainingBlock(el) {
const css = window.getComputedStyle(el);
return css.transform !== "none" || css.perspective !== "none" || ["transform", "perspective", "filter"].some(
(value) => (css.willChange || "").includes(value)
);
}
function getContainingBlock(el) {
let node = el.parentElement;
while (node) {
if (node && node.tagName !== "HTML" && node.tagName !== "BODY" && isContainingBlock(node)) {
return node;
}
node = node.parentElement;
}
return null;
}
export {
getContainingBlock,
getElementTop,
getRootScrollTop,
getScrollTop,
isHidden,
preventDefault,
resetScroll,
setRootScrollTop,
setScrollTop,
stopPropagation,
windowHeight,
windowWidth
};

13
node_modules/vant/es/utils/format.d.ts generated vendored Normal file
View File

@@ -0,0 +1,13 @@
import type { CSSProperties } from 'vue';
import { type Numeric } from './basic';
export declare function addUnit(value?: Numeric): string | undefined;
export declare function getSizeStyle(originSize?: Numeric | Numeric[]): CSSProperties | undefined;
export declare function getZIndexStyle(zIndex?: Numeric): CSSProperties;
export declare function unitToPx(value: Numeric): number;
export declare const camelize: (str: string) => string;
export declare const kebabCase: (str: string) => string;
export declare function padZero(num: Numeric, targetLength?: number): string;
/** clamps number within the inclusive lower and upper bounds */
export declare const clamp: (num: number, min: number, max: number) => number;
export declare function formatNumber(value: string, allowDot?: boolean, allowMinus?: boolean): string;
export declare function addNumber(num1: number, num2: number): number;

120
node_modules/vant/es/utils/format.mjs generated vendored Normal file
View File

@@ -0,0 +1,120 @@
import { inBrowser } from "./basic.mjs";
import { windowWidth, windowHeight } from "./dom.mjs";
import { isDef, isNumeric } from "./basic.mjs";
function addUnit(value) {
if (isDef(value)) {
return isNumeric(value) ? `${value}px` : String(value);
}
return void 0;
}
function getSizeStyle(originSize) {
if (isDef(originSize)) {
if (Array.isArray(originSize)) {
return {
width: addUnit(originSize[0]),
height: addUnit(originSize[1])
};
}
const size = addUnit(originSize);
return {
width: size,
height: size
};
}
}
function getZIndexStyle(zIndex) {
const style = {};
if (zIndex !== void 0) {
style.zIndex = +zIndex;
}
return style;
}
let rootFontSize;
function getRootFontSize() {
if (!rootFontSize) {
const doc = document.documentElement;
const fontSize = doc.style.fontSize || window.getComputedStyle(doc).fontSize;
rootFontSize = parseFloat(fontSize);
}
return rootFontSize;
}
function convertRem(value) {
value = value.replace(/rem/g, "");
return +value * getRootFontSize();
}
function convertVw(value) {
value = value.replace(/vw/g, "");
return +value * windowWidth.value / 100;
}
function convertVh(value) {
value = value.replace(/vh/g, "");
return +value * windowHeight.value / 100;
}
function unitToPx(value) {
if (typeof value === "number") {
return value;
}
if (inBrowser) {
if (value.includes("rem")) {
return convertRem(value);
}
if (value.includes("vw")) {
return convertVw(value);
}
if (value.includes("vh")) {
return convertVh(value);
}
}
return parseFloat(value);
}
const camelizeRE = /-(\w)/g;
const camelize = (str) => str.replace(camelizeRE, (_, c) => c.toUpperCase());
const kebabCase = (str) => str.replace(/([A-Z])/g, "-$1").toLowerCase().replace(/^-/, "");
function padZero(num, targetLength = 2) {
let str = num + "";
while (str.length < targetLength) {
str = "0" + str;
}
return str;
}
const clamp = (num, min, max) => Math.min(Math.max(num, min), max);
function trimExtraChar(value, char, regExp) {
const index = value.indexOf(char);
if (index === -1) {
return value;
}
if (char === "-" && index !== 0) {
return value.slice(0, index);
}
return value.slice(0, index + 1) + value.slice(index).replace(regExp, "");
}
function formatNumber(value, allowDot = true, allowMinus = true) {
if (allowDot) {
value = trimExtraChar(value, ".", /\./g);
} else {
value = value.split(".")[0];
}
if (allowMinus) {
value = trimExtraChar(value, "-", /-/g);
} else {
value = value.replace(/-/, "");
}
const regExp = allowDot ? /[^-0-9.]/g : /[^-0-9]/g;
return value.replace(regExp, "");
}
function addNumber(num1, num2) {
const cardinal = 10 ** 10;
return Math.round((num1 + num2) * cardinal) / cardinal;
}
export {
addNumber,
addUnit,
camelize,
clamp,
formatNumber,
getSizeStyle,
getZIndexStyle,
kebabCase,
padZero,
unitToPx
};

9
node_modules/vant/es/utils/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,9 @@
export * from './basic';
export * from './props';
export * from './dom';
export * from './create';
export * from './format';
export * from './constant';
export * from './interceptor';
export * from './with-install';
export * from './closest';

9
node_modules/vant/es/utils/index.mjs generated vendored Normal file
View File

@@ -0,0 +1,9 @@
export * from "./basic.mjs";
export * from "./props.mjs";
export * from "./dom.mjs";
export * from "./create.mjs";
export * from "./format.mjs";
export * from "./constant.mjs";
export * from "./interceptor.mjs";
export * from "./with-install.mjs";
export * from "./closest.mjs";

7
node_modules/vant/es/utils/interceptor.d.ts generated vendored Normal file
View File

@@ -0,0 +1,7 @@
export type Interceptor = (...args: any[]) => Promise<boolean> | boolean | undefined | void;
export declare function callInterceptor(interceptor: Interceptor | undefined, { args, done, canceled, error, }: {
args?: unknown[];
done: () => void;
canceled?: () => void;
error?: () => void;
}): void;

29
node_modules/vant/es/utils/interceptor.mjs generated vendored Normal file
View File

@@ -0,0 +1,29 @@
import { noop, isPromise } from "./basic.mjs";
function callInterceptor(interceptor, {
args = [],
done,
canceled,
error
}) {
if (interceptor) {
const returnVal = interceptor.apply(null, args);
if (isPromise(returnVal)) {
returnVal.then((value) => {
if (value) {
done();
} else if (canceled) {
canceled();
}
}).catch(error || noop);
} else if (returnVal) {
done();
} else if (canceled) {
canceled();
}
} else {
done();
}
}
export {
callInterceptor
};

14
node_modules/vant/es/utils/mount-component.d.ts generated vendored Normal file
View File

@@ -0,0 +1,14 @@
import { Component } from 'vue';
export declare function usePopupState(): {
open: (props: Record<string, any>) => void;
close: () => void;
state: {
[x: string]: any;
show: boolean;
};
toggle: (show: boolean) => void;
};
export declare function mountComponent(RootComponent: Component): {
instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}, {}, {}, string, import("vue").ComponentProvideOptions>, {}, {}, "", {}, any>;
unmount(): void;
};

39
node_modules/vant/es/utils/mount-component.mjs generated vendored Normal file
View File

@@ -0,0 +1,39 @@
import { createApp, reactive } from "vue";
import { extend } from "./basic.mjs";
import { useExpose } from "../composables/use-expose.mjs";
function usePopupState() {
const state = reactive({
show: false
});
const toggle = (show) => {
state.show = show;
};
const open = (props) => {
extend(state, props, { transitionAppear: true });
toggle(true);
};
const close = () => toggle(false);
useExpose({ open, close, toggle });
return {
open,
close,
state,
toggle
};
}
function mountComponent(RootComponent) {
const app = createApp(RootComponent);
const root = document.createElement("div");
document.body.appendChild(root);
return {
instance: app.mount(root),
unmount() {
app.unmount();
document.body.removeChild(root);
}
};
}
export {
mountComponent,
usePopupState
};

31
node_modules/vant/es/utils/props.d.ts generated vendored Normal file
View File

@@ -0,0 +1,31 @@
/**
* prop type helpers
* help us to write less code and reduce bundle size
*/
import type { PropType } from 'vue';
export declare const unknownProp: PropType<unknown>;
export declare const numericProp: (NumberConstructor | StringConstructor)[];
export declare const truthProp: {
type: BooleanConstructor;
default: true;
};
export declare const makeRequiredProp: <T>(type: T) => {
type: T;
required: true;
};
export declare const makeArrayProp: <T>() => {
type: PropType<T[]>;
default: () => never[];
};
export declare const makeNumberProp: <T>(defaultVal: T) => {
type: NumberConstructor;
default: T;
};
export declare const makeNumericProp: <T>(defaultVal: T) => {
type: (NumberConstructor | StringConstructor)[];
default: T;
};
export declare const makeStringProp: <T>(defaultVal: T) => {
type: PropType<T>;
default: T;
};

36
node_modules/vant/es/utils/props.mjs generated vendored Normal file
View File

@@ -0,0 +1,36 @@
const unknownProp = null;
const numericProp = [Number, String];
const truthProp = {
type: Boolean,
default: true
};
const makeRequiredProp = (type) => ({
type,
required: true
});
const makeArrayProp = () => ({
type: Array,
default: () => []
});
const makeNumberProp = (defaultVal) => ({
type: Number,
default: defaultVal
});
const makeNumericProp = (defaultVal) => ({
type: numericProp,
default: defaultVal
});
const makeStringProp = (defaultVal) => ({
type: String,
default: defaultVal
});
export {
makeArrayProp,
makeNumberProp,
makeNumericProp,
makeRequiredProp,
makeStringProp,
numericProp,
truthProp,
unknownProp
};

13
node_modules/vant/es/utils/with-install.d.ts generated vendored Normal file
View File

@@ -0,0 +1,13 @@
import type { App, Component } from 'vue';
type EventShim = {
new (...args: any[]): {
$props: {
onClick?: (...args: any[]) => void;
};
};
};
export type WithInstall<T> = T & {
install(app: App): void;
} & EventShim;
export declare function withInstall<T extends Component>(options: T): WithInstall<T>;
export {};

14
node_modules/vant/es/utils/with-install.mjs generated vendored Normal file
View File

@@ -0,0 +1,14 @@
import { camelize } from "./format.mjs";
function withInstall(options) {
options.install = (app) => {
const { name } = options;
if (name) {
app.component(name, options);
app.component(camelize(`-${name}`), options);
}
};
return options;
}
export {
withInstall
};