Download Fore_End/cpcn2/node_modules/element-ui/src/utils/util.js from zxy0307/JavaWeb: direct link, hf CLI and curl.
- Browser
- Download file 5.55 kB
-
https://huggingface.co/zxy0307/JavaWeb/resolve/main/Fore_End/cpcn2/node_modules/element-ui/src/utils/util.js
- Command line
-
hf download hf://zxy0307/JavaWeb/Fore_End/cpcn2/node_modules/element-ui/src/utils/util.js
-
curl -L -o util.js https://huggingface.co/zxy0307/JavaWeb/resolve/main/Fore_End/cpcn2/node_modules/element-ui/src/utils/util.js
5.55 kB
| import Vue from 'vue'; | |
| import { isString, isObject } from 'element-ui/src/utils/types'; | |
| const hasOwnProperty = Object.prototype.hasOwnProperty; | |
| export function noop() {}; | |
| export function hasOwn(obj, key) { | |
| return hasOwnProperty.call(obj, key); | |
| }; | |
| function extend(to, _from) { | |
| for (let key in _from) { | |
| to[key] = _from[key]; | |
| } | |
| return to; | |
| }; | |
| export function toObject(arr) { | |
| var res = {}; | |
| for (let i = 0; i < arr.length; i++) { | |
| if (arr[i]) { | |
| extend(res, arr[i]); | |
| } | |
| } | |
| return res; | |
| }; | |
| export const getValueByPath = function(object, prop) { | |
| prop = prop || ''; | |
| const paths = prop.split('.'); | |
| let current = object; | |
| let result = null; | |
| for (let i = 0, j = paths.length; i < j; i++) { | |
| const path = paths[i]; | |
| if (!current) break; | |
| if (i === j - 1) { | |
| result = current[path]; | |
| break; | |
| } | |
| current = current[path]; | |
| } | |
| return result; | |
| }; | |
| export function getPropByPath(obj, path, strict) { | |
| let tempObj = obj; | |
| path = path.replace(/\[(\w+)\]/g, '.$1'); | |
| path = path.replace(/^\./, ''); | |
| let keyArr = path.split('.'); | |
| let i = 0; | |
| for (let len = keyArr.length; i < len - 1; ++i) { | |
| if (!tempObj && !strict) break; | |
| let key = keyArr[i]; | |
| if (key in tempObj) { | |
| tempObj = tempObj[key]; | |
| } else { | |
| if (strict) { | |
| throw new Error('please transfer a valid prop path to form item!'); | |
| } | |
| break; | |
| } | |
| } | |
| return { | |
| o: tempObj, | |
| k: keyArr[i], | |
| v: tempObj ? tempObj[keyArr[i]] : null | |
| }; | |
| }; | |
| export const generateId = function() { | |
| return Math.floor(Math.random() * 10000); | |
| }; | |
| export const valueEquals = (a, b) => { | |
| // see: https://stackoverflow.com/questions/3115982/how-to-check-if-two-arrays-are-equal-with-javascript | |
| if (a === b) return true; | |
| if (!(a instanceof Array)) return false; | |
| if (!(b instanceof Array)) return false; | |
| if (a.length !== b.length) return false; | |
| for (let i = 0; i !== a.length; ++i) { | |
| if (a[i] !== b[i]) return false; | |
| } | |
| return true; | |
| }; | |
| export const escapeRegexpString = (value = '') => String(value).replace(/[|\\{}()[\]^$+*?.]/g, '\\$&'); | |
| // TODO: use native Array.find, Array.findIndex when IE support is dropped | |
| export const arrayFindIndex = function(arr, pred) { | |
| for (let i = 0; i !== arr.length; ++i) { | |
| if (pred(arr[i])) { | |
| return i; | |
| } | |
| } | |
| return -1; | |
| }; | |
| export const arrayFind = function(arr, pred) { | |
| const idx = arrayFindIndex(arr, pred); | |
| return idx !== -1 ? arr[idx] : undefined; | |
| }; | |
| // coerce truthy value to array | |
| export const coerceTruthyValueToArray = function(val) { | |
| if (Array.isArray(val)) { | |
| return val; | |
| } else if (val) { | |
| return [val]; | |
| } else { | |
| return []; | |
| } | |
| }; | |
| export const isIE = function() { | |
| return !Vue.prototype.$isServer && !isNaN(Number(document.documentMode)); | |
| }; | |
| export const isEdge = function() { | |
| return !Vue.prototype.$isServer && navigator.userAgent.indexOf('Edge') > -1; | |
| }; | |
| export const isFirefox = function() { | |
| return !Vue.prototype.$isServer && !!window.navigator.userAgent.match(/firefox/i); | |
| }; | |
| export const autoprefixer = function(style) { | |
| if (typeof style !== 'object') return style; | |
| const rules = ['transform', 'transition', 'animation']; | |
| const prefixes = ['ms-', 'webkit-']; | |
| rules.forEach(rule => { | |
| const value = style[rule]; | |
| if (rule && value) { | |
| prefixes.forEach(prefix => { | |
| style[prefix + rule] = value; | |
| }); | |
| } | |
| }); | |
| return style; | |
| }; | |
| export const kebabCase = function(str) { | |
| const hyphenateRE = /([^-])([A-Z])/g; | |
| return str | |
| .replace(hyphenateRE, '$1-$2') | |
| .replace(hyphenateRE, '$1-$2') | |
| .toLowerCase(); | |
| }; | |
| export const capitalize = function(str) { | |
| if (!isString(str)) return str; | |
| return str.charAt(0).toUpperCase() + str.slice(1); | |
| }; | |
| export const looseEqual = function(a, b) { | |
| const isObjectA = isObject(a); | |
| const isObjectB = isObject(b); | |
| if (isObjectA && isObjectB) { | |
| return JSON.stringify(a) === JSON.stringify(b); | |
| } else if (!isObjectA && !isObjectB) { | |
| return String(a) === String(b); | |
| } else { | |
| return false; | |
| } | |
| }; | |
| export const arrayEquals = function(arrayA, arrayB) { | |
| arrayA = arrayA || []; | |
| arrayB = arrayB || []; | |
| if (arrayA.length !== arrayB.length) { | |
| return false; | |
| } | |
| for (let i = 0; i < arrayA.length; i++) { | |
| if (!looseEqual(arrayA[i], arrayB[i])) { | |
| return false; | |
| } | |
| } | |
| return true; | |
| }; | |
| export const isEqual = function(value1, value2) { | |
| if (Array.isArray(value1) && Array.isArray(value2)) { | |
| return arrayEquals(value1, value2); | |
| } | |
| return looseEqual(value1, value2); | |
| }; | |
| export const isEmpty = function(val) { | |
| // null or undefined | |
| if (val == null) return true; | |
| if (typeof val === 'boolean') return false; | |
| if (typeof val === 'number') return !val; | |
| if (val instanceof Error) return val.message === ''; | |
| switch (Object.prototype.toString.call(val)) { | |
| // String or Array | |
| case '[object String]': | |
| case '[object Array]': | |
| return !val.length; | |
| // Map or Set or File | |
| case '[object File]': | |
| case '[object Map]': | |
| case '[object Set]': { | |
| return !val.size; | |
| } | |
| // Plain Object | |
| case '[object Object]': { | |
| return !Object.keys(val).length; | |
| } | |
| } | |
| return false; | |
| }; | |
| export function rafThrottle(fn) { | |
| let locked = false; | |
| return function(...args) { | |
| if (locked) return; | |
| locked = true; | |
| window.requestAnimationFrame(_ => { | |
| fn.apply(this, args); | |
| locked = false; | |
| }); | |
| }; | |
| } | |
| export function objToArray(obj) { | |
| if (Array.isArray(obj)) { | |
| return obj; | |
| } | |
| return isEmpty(obj) ? [] : [obj]; | |
| } | |