first
This commit is contained in:
10
node_modules/vant/es/utils/constant.js
generated
vendored
Normal file
10
node_modules/vant/es/utils/constant.js
generated
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
// color
|
||||
export var RED = '#ee0a24'; // border
|
||||
|
||||
export var BORDER = 'van-hairline';
|
||||
export var BORDER_TOP = BORDER + "--top";
|
||||
export var BORDER_LEFT = BORDER + "--left";
|
||||
export var BORDER_BOTTOM = BORDER + "--bottom";
|
||||
export var BORDER_SURROUND = BORDER + "--surround";
|
||||
export var BORDER_TOP_BOTTOM = BORDER + "--top-bottom";
|
||||
export var BORDER_UNSET_TOP_BOTTOM = BORDER + "-unset--top-bottom";
|
39
node_modules/vant/es/utils/create/bem.js
generated
vendored
Normal file
39
node_modules/vant/es/utils/create/bem.js
generated
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
/**
|
||||
* 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'
|
||||
*/
|
||||
function gen(name, mods) {
|
||||
if (!mods) {
|
||||
return '';
|
||||
}
|
||||
|
||||
if (typeof mods === 'string') {
|
||||
return " " + name + "--" + mods;
|
||||
}
|
||||
|
||||
if (Array.isArray(mods)) {
|
||||
return mods.reduce(function (ret, item) {
|
||||
return ret + gen(name, item);
|
||||
}, '');
|
||||
}
|
||||
|
||||
return Object.keys(mods).reduce(function (ret, key) {
|
||||
return ret + (mods[key] ? gen(name, key) : '');
|
||||
}, '');
|
||||
}
|
||||
|
||||
export function createBEM(name) {
|
||||
return function (el, mods) {
|
||||
if (el && typeof el !== 'string') {
|
||||
mods = el;
|
||||
el = '';
|
||||
}
|
||||
|
||||
el = el ? name + "__" + el : name;
|
||||
return "" + el + gen(el, mods);
|
||||
};
|
||||
}
|
57
node_modules/vant/es/utils/create/component.js
generated
vendored
Normal file
57
node_modules/vant/es/utils/create/component.js
generated
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
/**
|
||||
* Create a basic component with common options
|
||||
*/
|
||||
import '../../locale';
|
||||
import { isFunction } from '..';
|
||||
import { camelize } from '../format/string';
|
||||
import { SlotsMixin } from '../../mixins/slots';
|
||||
import Vue from 'vue';
|
||||
|
||||
function install(Vue) {
|
||||
var name = this.name;
|
||||
Vue.component(name, this);
|
||||
Vue.component(camelize("-" + name), this);
|
||||
} // unify slots & scopedSlots
|
||||
|
||||
|
||||
export function unifySlots(context) {
|
||||
// use data.scopedSlots in lower Vue version
|
||||
var scopedSlots = context.scopedSlots || context.data.scopedSlots || {};
|
||||
var slots = context.slots();
|
||||
Object.keys(slots).forEach(function (key) {
|
||||
if (!scopedSlots[key]) {
|
||||
scopedSlots[key] = function () {
|
||||
return slots[key];
|
||||
};
|
||||
}
|
||||
});
|
||||
return scopedSlots;
|
||||
} // should be removed after Vue 3
|
||||
|
||||
function transformFunctionComponent(pure) {
|
||||
return {
|
||||
functional: true,
|
||||
props: pure.props,
|
||||
model: pure.model,
|
||||
render: function render(h, context) {
|
||||
return pure(h, context.props, unifySlots(context), context);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export function createComponent(name) {
|
||||
return function (sfc) {
|
||||
if (isFunction(sfc)) {
|
||||
sfc = transformFunctionComponent(sfc);
|
||||
}
|
||||
|
||||
if (!sfc.functional) {
|
||||
sfc.mixins = sfc.mixins || [];
|
||||
sfc.mixins.push(SlotsMixin);
|
||||
}
|
||||
|
||||
sfc.name = name;
|
||||
sfc.install = install;
|
||||
return sfc;
|
||||
};
|
||||
}
|
16
node_modules/vant/es/utils/create/i18n.js
generated
vendored
Normal file
16
node_modules/vant/es/utils/create/i18n.js
generated
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
import { get, isFunction } from '..';
|
||||
import { camelize } from '../format/string';
|
||||
import locale from '../../locale';
|
||||
export function createI18N(name) {
|
||||
var prefix = camelize(name) + '.';
|
||||
return function (path) {
|
||||
var messages = locale.messages();
|
||||
var message = get(messages, prefix + path) || get(messages, path);
|
||||
|
||||
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
||||
args[_key - 1] = arguments[_key];
|
||||
}
|
||||
|
||||
return isFunction(message) ? message.apply(void 0, args) : message;
|
||||
};
|
||||
}
|
7
node_modules/vant/es/utils/create/index.js
generated
vendored
Normal file
7
node_modules/vant/es/utils/create/index.js
generated
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
import { createBEM } from './bem';
|
||||
import { createComponent } from './component';
|
||||
import { createI18N } from './i18n';
|
||||
export function createNamespace(name) {
|
||||
name = 'van-' + name;
|
||||
return [createComponent(name), createBEM(name), createI18N(name)];
|
||||
}
|
24
node_modules/vant/es/utils/deep-assign.js
generated
vendored
Normal file
24
node_modules/vant/es/utils/deep-assign.js
generated
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
import { isDef, isObject } from '.';
|
||||
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
||||
|
||||
function assignKey(to, from, key) {
|
||||
var val = from[key];
|
||||
|
||||
if (!isDef(val)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!hasOwnProperty.call(to, key) || !isObject(val)) {
|
||||
to[key] = val;
|
||||
} else {
|
||||
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
||||
to[key] = deepAssign(Object(to[key]), from[key]);
|
||||
}
|
||||
}
|
||||
|
||||
export function deepAssign(to, from) {
|
||||
Object.keys(from).forEach(function (key) {
|
||||
assignKey(to, from, key);
|
||||
});
|
||||
return to;
|
||||
}
|
22
node_modules/vant/es/utils/deep-clone.js
generated
vendored
Normal file
22
node_modules/vant/es/utils/deep-clone.js
generated
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
import { isDef } from './index';
|
||||
export function deepClone(obj) {
|
||||
if (!isDef(obj)) {
|
||||
return obj;
|
||||
}
|
||||
|
||||
if (Array.isArray(obj)) {
|
||||
return obj.map(function (item) {
|
||||
return deepClone(item);
|
||||
});
|
||||
}
|
||||
|
||||
if (typeof obj === 'object') {
|
||||
var to = {};
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
to[key] = deepClone(obj[key]);
|
||||
});
|
||||
return to;
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
48
node_modules/vant/es/utils/dom/event.js
generated
vendored
Normal file
48
node_modules/vant/es/utils/dom/event.js
generated
vendored
Normal file
@ -0,0 +1,48 @@
|
||||
import { isServer } from '..';
|
||||
// eslint-disable-next-line import/no-mutable-exports
|
||||
export var supportsPassive = false;
|
||||
|
||||
if (!isServer) {
|
||||
try {
|
||||
var opts = {};
|
||||
Object.defineProperty(opts, 'passive', {
|
||||
// eslint-disable-next-line getter-return
|
||||
get: function get() {
|
||||
/* istanbul ignore next */
|
||||
supportsPassive = true;
|
||||
}
|
||||
});
|
||||
window.addEventListener('test-passive', null, opts); // eslint-disable-next-line no-empty
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
export function on(target, event, handler, passive) {
|
||||
if (passive === void 0) {
|
||||
passive = false;
|
||||
}
|
||||
|
||||
if (!isServer) {
|
||||
target.addEventListener(event, handler, supportsPassive ? {
|
||||
capture: false,
|
||||
passive: passive
|
||||
} : false);
|
||||
}
|
||||
}
|
||||
export function off(target, event, handler) {
|
||||
if (!isServer) {
|
||||
target.removeEventListener(event, handler);
|
||||
}
|
||||
}
|
||||
export function stopPropagation(event) {
|
||||
event.stopPropagation();
|
||||
}
|
||||
export function preventDefault(event, isStopPropagation) {
|
||||
/* istanbul ignore else */
|
||||
if (typeof event.cancelable !== 'boolean' || event.cancelable) {
|
||||
event.preventDefault();
|
||||
}
|
||||
|
||||
if (isStopPropagation) {
|
||||
stopPropagation(event);
|
||||
}
|
||||
}
|
7
node_modules/vant/es/utils/dom/node.js
generated
vendored
Normal file
7
node_modules/vant/es/utils/dom/node.js
generated
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
export function removeNode(el) {
|
||||
var parent = el.parentNode;
|
||||
|
||||
if (parent) {
|
||||
parent.removeChild(el);
|
||||
}
|
||||
}
|
36
node_modules/vant/es/utils/dom/raf.js
generated
vendored
Normal file
36
node_modules/vant/es/utils/dom/raf.js
generated
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
/**
|
||||
* requestAnimationFrame polyfill
|
||||
*/
|
||||
import { isServer } from '..';
|
||||
var prev = Date.now();
|
||||
/* istanbul ignore next */
|
||||
|
||||
function fallback(fn) {
|
||||
var curr = Date.now();
|
||||
var ms = Math.max(0, 16 - (curr - prev));
|
||||
var id = setTimeout(fn, ms);
|
||||
prev = curr + ms;
|
||||
return id;
|
||||
}
|
||||
/* istanbul ignore next */
|
||||
|
||||
|
||||
var root = isServer ? global : window;
|
||||
/* istanbul ignore next */
|
||||
|
||||
var iRaf = root.requestAnimationFrame || fallback;
|
||||
/* istanbul ignore next */
|
||||
|
||||
var iCancel = root.cancelAnimationFrame || root.clearTimeout;
|
||||
export function raf(fn) {
|
||||
return iRaf.call(root, fn);
|
||||
} // double raf for animation
|
||||
|
||||
export function doubleRaf(fn) {
|
||||
raf(function () {
|
||||
raf(fn);
|
||||
});
|
||||
}
|
||||
export function cancelRaf(id) {
|
||||
iCancel.call(root, id);
|
||||
}
|
14
node_modules/vant/es/utils/dom/reset-scroll.js
generated
vendored
Normal file
14
node_modules/vant/es/utils/dom/reset-scroll.js
generated
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Hack for iOS12 page scroll
|
||||
* https://developers.weixin.qq.com/community/develop/doc/00044ae90742f8c82fb78fcae56800
|
||||
*/
|
||||
import { isIOS as checkIsIOS } from '../validate/system';
|
||||
import { getRootScrollTop, setRootScrollTop } from './scroll';
|
||||
var isIOS = checkIsIOS();
|
||||
/* istanbul ignore next */
|
||||
|
||||
export function resetScroll() {
|
||||
if (isIOS) {
|
||||
setRootScrollTop(getRootScrollTop());
|
||||
}
|
||||
}
|
69
node_modules/vant/es/utils/dom/scroll.js
generated
vendored
Normal file
69
node_modules/vant/es/utils/dom/scroll.js
generated
vendored
Normal file
@ -0,0 +1,69 @@
|
||||
function isWindow(val) {
|
||||
return val === window;
|
||||
} // get nearest scroll element
|
||||
// https://github.com/vant-ui/vant/issues/3823
|
||||
|
||||
|
||||
var overflowScrollReg = /scroll|auto|overlay/i;
|
||||
export function getScroller(el, root) {
|
||||
if (root === void 0) {
|
||||
root = window;
|
||||
}
|
||||
|
||||
var node = el;
|
||||
|
||||
while (node && node.tagName !== 'HTML' && node.tagName !== 'BODY' && node.nodeType === 1 && node !== root) {
|
||||
var _window$getComputedSt = window.getComputedStyle(node),
|
||||
overflowY = _window$getComputedSt.overflowY;
|
||||
|
||||
if (overflowScrollReg.test(overflowY)) {
|
||||
return node;
|
||||
}
|
||||
|
||||
node = node.parentNode;
|
||||
}
|
||||
|
||||
return root;
|
||||
}
|
||||
export function getScrollTop(el) {
|
||||
var top = 'scrollTop' in el ? el.scrollTop : el.pageYOffset; // iOS scroll bounce cause minus scrollTop
|
||||
|
||||
return Math.max(top, 0);
|
||||
}
|
||||
export function setScrollTop(el, value) {
|
||||
if ('scrollTop' in el) {
|
||||
el.scrollTop = value;
|
||||
} else {
|
||||
el.scrollTo(el.scrollX, value);
|
||||
}
|
||||
}
|
||||
export function getRootScrollTop() {
|
||||
return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
|
||||
}
|
||||
export function setRootScrollTop(value) {
|
||||
setScrollTop(window, value);
|
||||
setScrollTop(document.body, value);
|
||||
} // get distance from element top to page top or scroller top
|
||||
|
||||
export function getElementTop(el, scroller) {
|
||||
if (isWindow(el)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
var scrollTop = scroller ? getScrollTop(scroller) : getRootScrollTop();
|
||||
return el.getBoundingClientRect().top + scrollTop;
|
||||
}
|
||||
export function getVisibleHeight(el) {
|
||||
if (isWindow(el)) {
|
||||
return el.innerHeight;
|
||||
}
|
||||
|
||||
return el.getBoundingClientRect().height;
|
||||
}
|
||||
export function getVisibleTop(el) {
|
||||
if (isWindow(el)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return el.getBoundingClientRect().top;
|
||||
}
|
9
node_modules/vant/es/utils/dom/style.js
generated
vendored
Normal file
9
node_modules/vant/es/utils/dom/style.js
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
export function isHidden(el) {
|
||||
var style = window.getComputedStyle(el);
|
||||
var hidden = style.display === 'none'; // offsetParent returns null in the following situations:
|
||||
// 1. The element or its parent element has the display property set to none.
|
||||
// 2. The element has the position property set to fixed
|
||||
|
||||
var parentHidden = el.offsetParent === null && style.position !== 'fixed';
|
||||
return hidden || parentHidden;
|
||||
}
|
52
node_modules/vant/es/utils/format/number.js
generated
vendored
Normal file
52
node_modules/vant/es/utils/format/number.js
generated
vendored
Normal file
@ -0,0 +1,52 @@
|
||||
export function range(num, min, max) {
|
||||
return Math.min(Math.max(num, min), max);
|
||||
}
|
||||
|
||||
function trimExtraChar(value, _char, regExp) {
|
||||
var index = value.indexOf(_char);
|
||||
var prefix = '';
|
||||
|
||||
if (index === -1) {
|
||||
return value;
|
||||
}
|
||||
|
||||
if (_char === '-' && index !== 0) {
|
||||
return value.slice(0, index);
|
||||
}
|
||||
|
||||
if (_char === '.' && value.match(/^(\.|-\.)/)) {
|
||||
prefix = index ? '-0' : '0';
|
||||
}
|
||||
|
||||
return prefix + value.slice(0, index + 1) + value.slice(index).replace(regExp, '');
|
||||
}
|
||||
|
||||
export function formatNumber(value, allowDot, allowMinus) {
|
||||
if (allowDot === void 0) {
|
||||
allowDot = true;
|
||||
}
|
||||
|
||||
if (allowMinus === void 0) {
|
||||
allowMinus = true;
|
||||
}
|
||||
|
||||
if (allowDot) {
|
||||
value = trimExtraChar(value, '.', /\./g);
|
||||
} else {
|
||||
value = value.split('.')[0];
|
||||
}
|
||||
|
||||
if (allowMinus) {
|
||||
value = trimExtraChar(value, '-', /-/g);
|
||||
} else {
|
||||
value = value.replace(/-/, '');
|
||||
}
|
||||
|
||||
var regExp = allowDot ? /[^-0-9.]/g : /[^-0-9]/g;
|
||||
return value.replace(regExp, '');
|
||||
} // add num and avoid float number
|
||||
|
||||
export function addNumber(num1, num2) {
|
||||
var cardinal = Math.pow(10, 10);
|
||||
return Math.round((num1 + num2) * cardinal) / cardinal;
|
||||
}
|
19
node_modules/vant/es/utils/format/string.js
generated
vendored
Normal file
19
node_modules/vant/es/utils/format/string.js
generated
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
var camelizeRE = /-(\w)/g;
|
||||
export function camelize(str) {
|
||||
return str.replace(camelizeRE, function (_, c) {
|
||||
return c.toUpperCase();
|
||||
});
|
||||
}
|
||||
export function padZero(num, targetLength) {
|
||||
if (targetLength === void 0) {
|
||||
targetLength = 2;
|
||||
}
|
||||
|
||||
var str = num + '';
|
||||
|
||||
while (str.length < targetLength) {
|
||||
str = '0' + str;
|
||||
}
|
||||
|
||||
return str;
|
||||
}
|
59
node_modules/vant/es/utils/format/unit.js
generated
vendored
Normal file
59
node_modules/vant/es/utils/format/unit.js
generated
vendored
Normal file
@ -0,0 +1,59 @@
|
||||
import { isDef, inBrowser } from '..';
|
||||
import { isNumeric } from '../validate/number';
|
||||
export function addUnit(value) {
|
||||
if (!isDef(value)) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
value = String(value);
|
||||
return isNumeric(value) ? value + "px" : value;
|
||||
} // cache
|
||||
|
||||
var rootFontSize;
|
||||
|
||||
function getRootFontSize() {
|
||||
if (!rootFontSize) {
|
||||
var doc = document.documentElement;
|
||||
var 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 * window.innerWidth / 100;
|
||||
}
|
||||
|
||||
function convertVh(value) {
|
||||
value = value.replace(/vh/g, '');
|
||||
return +value * window.innerHeight / 100;
|
||||
}
|
||||
|
||||
export function unitToPx(value) {
|
||||
if (typeof value === 'number') {
|
||||
return value;
|
||||
}
|
||||
|
||||
if (inBrowser) {
|
||||
if (value.indexOf('rem') !== -1) {
|
||||
return convertRem(value);
|
||||
}
|
||||
|
||||
if (value.indexOf('vw') !== -1) {
|
||||
return convertVw(value);
|
||||
}
|
||||
|
||||
if (value.indexOf('vh') !== -1) {
|
||||
return convertVh(value);
|
||||
}
|
||||
}
|
||||
|
||||
return parseFloat(value);
|
||||
}
|
56
node_modules/vant/es/utils/functional.js
generated
vendored
Normal file
56
node_modules/vant/es/utils/functional.js
generated
vendored
Normal file
@ -0,0 +1,56 @@
|
||||
import _extends from "@babel/runtime/helpers/esm/extends";
|
||||
import Vue from 'vue';
|
||||
var inheritKey = ['ref', 'key', 'style', 'class', 'attrs', 'refInFor', 'nativeOn', 'directives', 'staticClass', 'staticStyle'];
|
||||
var mapInheritKey = {
|
||||
nativeOn: 'on'
|
||||
}; // inherit partial context, map nativeOn to on
|
||||
|
||||
export function inherit(context, inheritListeners) {
|
||||
var result = inheritKey.reduce(function (obj, key) {
|
||||
if (context.data[key]) {
|
||||
obj[mapInheritKey[key] || key] = context.data[key];
|
||||
}
|
||||
|
||||
return obj;
|
||||
}, {});
|
||||
|
||||
if (inheritListeners) {
|
||||
result.on = result.on || {};
|
||||
|
||||
_extends(result.on, context.data.on);
|
||||
}
|
||||
|
||||
return result;
|
||||
} // emit event
|
||||
|
||||
export function emit(context, eventName) {
|
||||
for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
|
||||
args[_key - 2] = arguments[_key];
|
||||
}
|
||||
|
||||
var listeners = context.listeners[eventName];
|
||||
|
||||
if (listeners) {
|
||||
if (Array.isArray(listeners)) {
|
||||
listeners.forEach(function (listener) {
|
||||
listener.apply(void 0, args);
|
||||
});
|
||||
} else {
|
||||
listeners.apply(void 0, args);
|
||||
}
|
||||
}
|
||||
} // mount functional component
|
||||
|
||||
export function mount(Component, data) {
|
||||
var instance = new Vue({
|
||||
el: document.createElement('div'),
|
||||
props: Component.props,
|
||||
render: function render(h) {
|
||||
return h(Component, _extends({
|
||||
props: this.$props
|
||||
}, data));
|
||||
}
|
||||
});
|
||||
document.body.appendChild(instance.$el);
|
||||
return instance;
|
||||
}
|
71
node_modules/vant/es/utils/index.js
generated
vendored
Normal file
71
node_modules/vant/es/utils/index.js
generated
vendored
Normal file
@ -0,0 +1,71 @@
|
||||
import Vue from 'vue';
|
||||
export { createNamespace } from './create';
|
||||
export { addUnit } from './format/unit';
|
||||
export var inBrowser = typeof window !== 'undefined';
|
||||
export var isServer = Vue.prototype.$isServer; // eslint-disable-next-line @typescript-eslint/no-empty-function
|
||||
|
||||
export function noop() {}
|
||||
export function isDef(val) {
|
||||
return val !== undefined && val !== null;
|
||||
}
|
||||
export function isFunction(val) {
|
||||
return typeof val === 'function';
|
||||
}
|
||||
export function isObject(val) {
|
||||
return val !== null && typeof val === 'object';
|
||||
}
|
||||
export function isPromise(val) {
|
||||
return isObject(val) && isFunction(val.then) && isFunction(val.catch);
|
||||
}
|
||||
export function get(object, path) {
|
||||
var keys = path.split('.');
|
||||
var result = object;
|
||||
keys.forEach(function (key) {
|
||||
var _result$key;
|
||||
|
||||
result = isObject(result) ? (_result$key = result[key]) != null ? _result$key : '' : '';
|
||||
});
|
||||
return result;
|
||||
}
|
||||
/**
|
||||
* Checks if `value` is an empty object, collection, map, or set.
|
||||
*
|
||||
* Objects are considered empty if they have no own enumerable string keyed
|
||||
* properties.
|
||||
*
|
||||
* Array-like values such as `arguments` objects, arrays, buffers, strings, or
|
||||
* jQuery-like collections are considered empty if they have a `length` of `0`.
|
||||
* Similarly, maps and sets are considered empty if they have a `size` of `0`.
|
||||
*
|
||||
* @function isEmpty
|
||||
* @param {*} value The value to check.
|
||||
* @returns {boolean} Returns `true` if `value` is empty, else `false`.
|
||||
* @example
|
||||
*
|
||||
* _.isEmpty(null);
|
||||
* // => true
|
||||
*
|
||||
* _.isEmpty(true);
|
||||
* // => true
|
||||
*
|
||||
* _.isEmpty(1);
|
||||
* // => true
|
||||
*
|
||||
* _.isEmpty([1, 2, 3]);
|
||||
* // => false
|
||||
*
|
||||
* _.isEmpty({ 'a': 1 });
|
||||
* // => false
|
||||
*/
|
||||
|
||||
export function isEmpty(value) {
|
||||
if (value == null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (typeof value !== 'object') {
|
||||
return true;
|
||||
}
|
||||
|
||||
return Object.keys(value).length === 0;
|
||||
}
|
22
node_modules/vant/es/utils/interceptor.js
generated
vendored
Normal file
22
node_modules/vant/es/utils/interceptor.js
generated
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
import { isPromise, noop } from '.';
|
||||
export function callInterceptor(options) {
|
||||
var interceptor = options.interceptor,
|
||||
args = options.args,
|
||||
done = options.done;
|
||||
|
||||
if (interceptor) {
|
||||
var returnVal = interceptor.apply(void 0, args);
|
||||
|
||||
if (isPromise(returnVal)) {
|
||||
returnVal.then(function (value) {
|
||||
if (value) {
|
||||
done();
|
||||
}
|
||||
}).catch(noop);
|
||||
} else if (returnVal) {
|
||||
done();
|
||||
}
|
||||
} else {
|
||||
done();
|
||||
}
|
||||
}
|
36
node_modules/vant/es/utils/router.js
generated
vendored
Normal file
36
node_modules/vant/es/utils/router.js
generated
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
/**
|
||||
* Vue Router support
|
||||
*/
|
||||
function isRedundantNavigation(err) {
|
||||
return err.name === 'NavigationDuplicated' || // compatible with vue-router@3.3
|
||||
err.message && err.message.indexOf('redundant navigation') !== -1;
|
||||
}
|
||||
|
||||
export function route(router, config) {
|
||||
var to = config.to,
|
||||
url = config.url,
|
||||
replace = config.replace;
|
||||
|
||||
if (to && router) {
|
||||
var promise = router[replace ? 'replace' : 'push'](to);
|
||||
/* istanbul ignore else */
|
||||
|
||||
if (promise && promise.catch) {
|
||||
promise.catch(function (err) {
|
||||
if (err && !isRedundantNavigation(err)) {
|
||||
throw err;
|
||||
}
|
||||
});
|
||||
}
|
||||
} else if (url) {
|
||||
replace ? location.replace(url) : location.href = url;
|
||||
}
|
||||
}
|
||||
export function functionalRoute(context) {
|
||||
route(context.parent && context.parent.$router, context.props);
|
||||
}
|
||||
export var routeProps = {
|
||||
url: String,
|
||||
replace: Boolean,
|
||||
to: [String, Object]
|
||||
};
|
0
node_modules/vant/es/utils/types.js
generated
vendored
Normal file
0
node_modules/vant/es/utils/types.js
generated
vendored
Normal file
4
node_modules/vant/es/utils/validate/date.js
generated
vendored
Normal file
4
node_modules/vant/es/utils/validate/date.js
generated
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
import { isNaN } from './number';
|
||||
export function isDate(val) {
|
||||
return Object.prototype.toString.call(val) === '[object Date]' && !isNaN(val.getTime());
|
||||
}
|
5
node_modules/vant/es/utils/validate/email.js
generated
vendored
Normal file
5
node_modules/vant/es/utils/validate/email.js
generated
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
/* eslint-disable */
|
||||
export function isEmail(value) {
|
||||
var reg = /^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/;
|
||||
return reg.test(value.trim());
|
||||
}
|
4
node_modules/vant/es/utils/validate/mobile.js
generated
vendored
Normal file
4
node_modules/vant/es/utils/validate/mobile.js
generated
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
export function isMobile(value) {
|
||||
value = value.replace(/[^-|\d]/g, '');
|
||||
return /^((\+86)|(86))?(1)\d{10}$/.test(value) || /^0[0-9-]{10,13}$/.test(value);
|
||||
}
|
11
node_modules/vant/es/utils/validate/number.js
generated
vendored
Normal file
11
node_modules/vant/es/utils/validate/number.js
generated
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
export function isNumeric(val) {
|
||||
return /^\d+(\.\d+)?$/.test(val);
|
||||
}
|
||||
export function isNaN(val) {
|
||||
if (Number.isNaN) {
|
||||
return Number.isNaN(val);
|
||||
} // eslint-disable-next-line no-self-compare
|
||||
|
||||
|
||||
return val !== val;
|
||||
}
|
9
node_modules/vant/es/utils/validate/system.js
generated
vendored
Normal file
9
node_modules/vant/es/utils/validate/system.js
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
import { isServer } from '..';
|
||||
export function isAndroid() {
|
||||
/* istanbul ignore next */
|
||||
return isServer ? false : /android/.test(navigator.userAgent.toLowerCase());
|
||||
}
|
||||
export function isIOS() {
|
||||
/* istanbul ignore next */
|
||||
return isServer ? false : /ios|iphone|ipad|ipod/.test(navigator.userAgent.toLowerCase());
|
||||
}
|
36
node_modules/vant/es/utils/vnodes.js
generated
vendored
Normal file
36
node_modules/vant/es/utils/vnodes.js
generated
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
function flattenVNodes(vnodes) {
|
||||
var result = [];
|
||||
|
||||
function traverse(vnodes) {
|
||||
vnodes.forEach(function (vnode) {
|
||||
result.push(vnode);
|
||||
|
||||
if (vnode.componentInstance) {
|
||||
traverse(vnode.componentInstance.$children.map(function (item) {
|
||||
return item.$vnode;
|
||||
}));
|
||||
}
|
||||
|
||||
if (vnode.children) {
|
||||
traverse(vnode.children);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
traverse(vnodes);
|
||||
return result;
|
||||
} // sort children instances by vnodes order
|
||||
|
||||
|
||||
export function sortChildren(children, parent) {
|
||||
var componentOptions = parent.$vnode.componentOptions;
|
||||
|
||||
if (!componentOptions || !componentOptions.children) {
|
||||
return;
|
||||
}
|
||||
|
||||
var vnodes = flattenVNodes(componentOptions.children);
|
||||
children.sort(function (a, b) {
|
||||
return vnodes.indexOf(a.$vnode) - vnodes.indexOf(b.$vnode);
|
||||
});
|
||||
}
|
Reference in New Issue
Block a user