casc-cesium
Version:
Vue 3.x components for CesiumJS.
1 lines • 12.3 kB
Source Map (JSON)
{"version":3,"file":"util.mjs","sources":["../../../../packages/utils/util.ts"],"sourcesContent":["import { camelize, capitalize, extend, hasOwn, hyphenate, isArray, isObject, isString, looseEqual, isFunction, isPlainObject } from '@vue/shared'\nimport { isUndefined, isNull, camelCase } from 'lodash-unified'\nimport { AnyFunction, AnyObject } from './types'\n\nexport function getFileNameByPath(path: string): string {\n const posStart = path.lastIndexOf('/')\n const posEnd = path.lastIndexOf('.')\n return path.substring(posStart + 1, posEnd)\n}\n\nexport function dirname(path: string): string {\n if (typeof path !== 'string') path = path + ''\n if (path.length === 0) return '.'\n let code = path.charCodeAt(0)\n const hasRoot = code === 47 /* / */\n let end = -1\n let matchedSlash = true\n for (let i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i)\n if (code === 47 /* / */) {\n if (!matchedSlash) {\n end = i\n break\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.'\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/'\n }\n return path.slice(0, end)\n}\n\nexport function removeEmpty(obj: any): AnyObject {\n const proto = Object.getPrototypeOf(obj)\n const finalObj: AnyObject = {}\n Object.setPrototypeOf(finalObj, proto)\n Object.keys(obj).forEach(key => {\n const className = getObjClassName(obj[key], true)\n if ((obj[key] && isArray(obj[key])) || obj[key] instanceof Element) {\n finalObj[key] = obj[key]\n } else if (obj[key] && typeof obj[key] === 'object' && !Cesium[className]) {\n // Do not process cesium objects\n const nestedObj = removeEmpty(obj[key])\n if (Object.keys(nestedObj).length) {\n finalObj[key] = nestedObj\n }\n } else if (obj[key] !== '' && obj[key] !== undefined && obj[key] !== null) {\n finalObj[key] = obj[key]\n }\n })\n return finalObj\n}\n\nexport function isEmptyObj(obj: unknown): boolean {\n if (isUndefined(obj) || isNull(obj)) {\n return true\n }\n\n if (obj instanceof Element) {\n return false\n }\n\n const arr = Object.keys(obj as any)\n return arr.length === 0\n}\n\nexport const kebabCase = hyphenate\n\nfunction myInstanceof(left, right) {\n //基本数据类型直接返回false\n if (typeof left !== 'object' || left === null) return false\n //getProtypeOf是Object对象自带的一个方法,能够拿到参数的原型对象\n let proto = Object.getPrototypeOf(left)\n // eslint-disable-next-line no-constant-condition\n while (true) {\n //查找到尽头,还没找到\n if (proto === null) return false\n //找到相同的原型对象\n if (proto === right?.prototype) return true\n proto = Object.getPrototypeOf(proto)\n }\n}\n\nexport function getCesiumClassName(obj) {\n let result = undefined\n const constructorNames = Object.keys(Cesium)\n for (let i = 0; i < constructorNames.length; i++) {\n const className = constructorNames[i]\n\n if (myInstanceof(obj, Cesium[className])) {\n result = className\n break\n }\n }\n return result\n}\n\nexport function getObjClassName(obj: AnyObject, findCesiumClass = false): string {\n if (obj && obj.constructor) {\n if (findCesiumClass) {\n const cesiumClassName = getCesiumClassName(obj)\n\n if (cesiumClassName) {\n return cesiumClassName\n }\n }\n\n return obj.constructor.name\n }\n return typeof obj\n}\n\n/**\n * 验证是否是经纬度。\n * @param {Number} longitude\n * @param {Number} latitude\n * @returns {Boolean}\n */\nexport function lnglatValidator(longitude: number, latitude: number) {\n // 经度,整数部分为0-180小数部分为0到6位\n const longreg = /^(-|\\+)?(((\\d|[1-9]\\d|1[0-7]\\d|0{1,3})\\.\\d{0,15})|(\\d|[1-9]\\d|1[0-7]\\d|0{1,3})|180\\.0{0,15}|180)$/\n if (!longreg.test(longitude.toString())) {\n return false\n } // 纬度,整数部分为0-90小数部分为0到6位\n const latreg = /^(-|\\+)?([0-8]?\\d{1}\\.\\d{0,15}|90\\.0{0,15}|[0-8]?\\d{1}|90)$/\n if (!latreg.test(latitude.toString())) {\n return false\n }\n return true\n}\n\nexport function defaultValue(a, b) {\n if (a !== undefined && a !== null) {\n return a\n }\n return b\n}\n\nexport function inherit(base, derived) {\n function F() {\n //\n }\n F.prototype = base.prototype\n derived.prototype = new F()\n derived.prototype.constructor = derived\n}\n\nexport function getDefaultOptionByProps<T>(props, ignores: Array<string> = []) {\n const defaultOptions: T = {} as T\n Object.keys(props).forEach(key => {\n if (ignores.indexOf(key) === -1) {\n const value: {\n default?: AnyFunction<any> | AnyObject\n } = props[key]\n defaultOptions[key] = isFunction(value)\n ? undefined\n : isPlainObject(value)\n ? isFunction(value.default)\n ? value.default()\n : value.default\n : value\n }\n })\n\n return defaultOptions\n}\n\nconst addCustomProperty = (obj, options, ignores: Array<string> = []) => {\n for (const prop in options) {\n if (!obj[prop] && ignores.indexOf(prop) === -1) {\n obj[prop] = options[prop]\n }\n }\n}\n\nexport const merge = <T extends Record<string, any>>(a: T, b: T) => {\n const keys = [...new Set([...Object.keys(a), ...Object.keys(b)])] as (keyof T)[]\n const obj = {} as T\n for (const key of keys) {\n obj[key] = b[key] ?? a[key]\n }\n return obj\n}\n\nexport function isArrayLike(obj) {\n if (Array.isArray(obj)) return true\n if (typeof obj !== 'object' || !obj) return false\n const length = obj.length\n return typeof length === 'number' && length >= 0\n}\n\n// reexport from lodash & vue shared\nexport {\n hasOwn,\n // isEmpty,\n // isEqual,\n isObject,\n isPlainObject,\n isArray,\n isString,\n capitalize,\n camelize,\n looseEqual,\n extend,\n isUndefined,\n isFunction,\n camelCase,\n addCustomProperty\n}\n"],"names":[],"mappings":"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"}