{"version":3,"file":"assist.mjs","sources":["../../../../src/utils/assist.ts"],"sourcesContent":["import { throwError } from '../utils/error';\r\n\r\n/* eslint-disable */\r\nconst SPECIAL_CHARS_REGEXP = /([\\:\\-\\_]+(.))/g;\r\nconst MOZ_HACK_REGEXP = /^moz([A-Z])/;\r\n\r\n// 转换驼峰class\r\nfunction camelCase(name: string) {\r\n  return name\r\n    .replace(SPECIAL_CHARS_REGEXP, (_, separator, letter, offset) => {\r\n      return offset ? letter.toUpperCase() : letter;\r\n    })\r\n    .replace(MOZ_HACK_REGEXP, 'Moz$1');\r\n}\r\n\r\nconst trim = function (s: string) {\r\n  return (s || '').replace(/^[\\s\\uFEFF]+|[\\s\\uFEFF]+$/g, '');\r\n};\r\n\r\n// 类型判断\r\nfunction typeOf(obj) {\r\n  const toString = Object.prototype.toString;\r\n\r\n  const map = {\r\n    '[object Boolean]': 'boolean',\r\n    '[object Number]': 'number',\r\n    '[object String]': 'string',\r\n    '[object Function]': 'function',\r\n    '[object Array]': 'array',\r\n    '[object Date]': 'date',\r\n    '[object RegExp]': 'regExp',\r\n    '[object Undefined]': 'undefined',\r\n    '[object Null]': 'null',\r\n    '[object Object]': 'object',\r\n  };\r\n  return map[toString.call(obj)];\r\n}\r\n\r\n// 判断参数是否是其中之一\r\nexport const oneOf = (\r\n  value: string | boolean,\r\n  validList: Array<string | boolean>\r\n) => {\r\n  for (let i = 0; i < validList.length; i++) {\r\n    if (value === validList[i]) {\r\n      return true;\r\n    }\r\n  }\r\n\r\n  return false;\r\n};\r\n\r\n// 获取样式\r\nexport const getStyle = (element: any, styleName: any): string => {\r\n  if (!element || !styleName) {\r\n    return null;\r\n  }\r\n\r\n  styleName = camelCase(styleName);\r\n\r\n  if (styleName === 'float') {\r\n    styleName = 'cssFloat';\r\n  }\r\n  try {\r\n    const computed = document.defaultView.getComputedStyle(element, '');\r\n\r\n    return element.style[styleName] || computed ? computed[styleName] : null;\r\n  } catch (e) {\r\n    return element.style[styleName];\r\n  }\r\n};\r\n\r\n// 判断是否有class\r\nexport function hasClass(el: HTMLElement, cls: string): boolean {\r\n  if (!el || !cls) {\r\n    return false;\r\n  }\r\n\r\n  if (cls.indexOf(' ') !== -1) {\r\n    throwError('hasClass', 'className should not contain space');\r\n  }\r\n\r\n  if (el.classList) {\r\n    return el.classList.contains(cls);\r\n  } else {\r\n    return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1;\r\n  }\r\n}\r\n\r\n// 删除class\r\nexport function removeClass(el: HTMLElement, cls: string): void {\r\n  if (!el || !cls) {\r\n    return;\r\n  }\r\n\r\n  const classes = cls.split(' ');\r\n  let curClass = ' ' + el.className + ' ';\r\n\r\n  for (let i = 0, j = classes.length; i < j; i++) {\r\n    const clsName = classes[i];\r\n    if (!clsName) {\r\n      continue;\r\n    }\r\n\r\n    if (el.classList) {\r\n      el.classList.remove(clsName);\r\n    } else {\r\n      if (hasClass(el, clsName)) {\r\n        curClass = curClass.replace(' ' + clsName + ' ', ' ');\r\n      }\r\n    }\r\n  }\r\n\r\n  if (!el.classList) {\r\n    el.className = trim(curClass);\r\n  }\r\n}\r\n\r\n// 添加 class\r\nexport function addClass(el: HTMLElement, cls: string): void {\r\n  if (!el) {\r\n    return;\r\n  }\r\n\r\n  let curClass = el.className;\r\n  const classes = (cls || '').split(' ');\r\n\r\n  for (let i = 0, j = classes.length; i < j; i++) {\r\n    const clsName = classes[i];\r\n\r\n    if (!clsName) {\r\n      continue;\r\n    }\r\n\r\n    if (el.classList) {\r\n      el.classList.add(clsName);\r\n    } else if (!hasClass(el, clsName)) {\r\n      curClass += ' ' + clsName;\r\n    }\r\n  }\r\n\r\n  if (!el.classList) {\r\n    el.className = curClass;\r\n  }\r\n}\r\n\r\n/**\r\n * 滚动到顶部\r\n * @param el 元素\r\n * @param from 开始的位置\r\n * @param to 结束的位置\r\n * @param duration 滚动动画持续时间，单位 毫秒\r\n * @param endCallback 结束后的回调\r\n */\r\nexport function scrollTop(\r\n  el,\r\n  from: number = 0,\r\n  to: number,\r\n  duration = 500,\r\n  endCallback?\r\n) {\r\n  // requestAnimationFrame 兼容\r\n  if (!window.requestAnimationFrame) {\r\n    window.requestAnimationFrame =\r\n      window.webkitRequestAnimationFrame ||\r\n      window.mozRequestAnimationFrame ||\r\n      window.msRequestAnimationFrame ||\r\n      function (callback) {\r\n        return window.setTimeout(callback, 1000 / 60);\r\n      };\r\n  }\r\n\r\n  // 差值\r\n  const difference = Math.abs(from - to);\r\n\r\n  // 每一步的位置\r\n  const step = Math.ceil((difference / duration) * 50);\r\n\r\n  // 滚动\r\n  function scroll(start: number, end: number, step: number) {\r\n    // 滚动结束\r\n    if (start === end) {\r\n      endCallback && endCallback();\r\n\r\n      return;\r\n    }\r\n\r\n    let d = start + step > end ? end : start + step;\r\n\r\n    // 开始位置大于结束\r\n    if (start > end) {\r\n      d = start - step < end ? end : start - step;\r\n    }\r\n\r\n    // window 节点使用 scrollTo\r\n    if (el === window) {\r\n      window.scrollTo(d, d);\r\n    }\r\n    // 元素节点使用 scrollTop\r\n    else {\r\n      el.scrollTop = d;\r\n    }\r\n\r\n    // requestAnimationFrame\r\n    window.requestAnimationFrame(() => scroll(d, end, step));\r\n  }\r\n\r\n  // 滚动\r\n  scroll(from, to, step);\r\n}\r\n\r\n// 深拷贝\r\nexport const deepCopy = (data) => {\r\n  const _typeOf = typeOf(data);\r\n\r\n  let object;\r\n\r\n  // 数组\r\n  if (_typeOf === 'array') {\r\n    object = [];\r\n  }\r\n  // 对象\r\n  else if (_typeOf === 'object') {\r\n    object = {};\r\n  }\r\n  // 两个都不是返回原值\r\n  else {\r\n    return data;\r\n  }\r\n\r\n  // 数组\r\n  if (_typeOf === 'array') {\r\n    for (let i = 0; i < data.length; i++) {\r\n      object.push(deepCopy(data[i]));\r\n    }\r\n  }\r\n  // 对象\r\n  else if (_typeOf === 'object') {\r\n    for (let i in data) {\r\n      object[i] = deepCopy(data[i]);\r\n    }\r\n  }\r\n\r\n  return object;\r\n};\r\n"],"names":["step"],"mappings":"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"}