{"version":3,"file":"util.mjs","sources":["../../../../packages/utils/util.ts"],"sourcesContent":["// eslint-disable-next-line vue/prefer-import-from-vue\nimport { 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// 深度合并\nexport function deepMerge<T = any>(src: any = {}, target: any = {}): T {\n  let key: string\n  for (key in target) {\n    src[key] = isObject(src[key]) ? deepMerge(src[key], target[key]) : (src[key] = target[key])\n  }\n  return src\n}\n\nexport function isNumber(v) {\n  return typeof v === 'number' && isFinite(v)\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\nexport function getCesiumColor(inputColor, fallbackColor, timestamp?) {\n  const { JulianDate, Color } = Cesium\n  const now = JulianDate.now()\n  if (inputColor) {\n    if (typeof inputColor.getValue === 'function') {\n      inputColor = inputColor.getValue(timestamp || now)\n    }\n    if (typeof inputColor === 'string') {\n      return Color.fromCssColorString(inputColor)\n    } else if (typeof inputColor === 'function') {\n      return getCesiumColor(inputColor(timestamp), fallbackColor)\n    } else {\n      return inputColor\n    }\n  } else {\n    return fallbackColor\n  }\n}\n\nexport function getCesiumValue(value, valueType, timestamp) {\n  const { JulianDate, Property } = Cesium\n  const now = JulianDate.now()\n  if (!value) return value\n  if (valueType) {\n    if (value instanceof valueType) return value\n    else {\n      if (value instanceof Property && (value as any)._value instanceof valueType) return (value as any)._value\n    }\n  }\n  if (isFunction(value.getValue)) return value.getValue(timestamp || now)\n  return value\n}\n"],"names":[],"mappings":"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"}