tools.js 734 B

123456789101112131415161718192021222324252627282930
  1. import H from 'highcharts'
  2. function doCopy (copy, original, copyArray) {
  3. // Callback function to iterate on array or object elements
  4. function callback (value, key) {
  5. // Copy the contents of objects
  6. if (H.isObject(value, !copyArray) &&
  7. !H.isClass(value) &&
  8. !H.isDOMElement(value)
  9. ) {
  10. copy[key] = doCopy(copy[key] || H.isArray(value) ? [] : {}, value, copyArray)
  11. } else {
  12. // Primitives are copied over directly
  13. copy[key] = original[key]
  14. }
  15. }
  16. if (H.isArray(original)) {
  17. original.forEach(callback)
  18. } else {
  19. H.objectEach(original, callback)
  20. }
  21. return copy
  22. }
  23. const copyObject = function (obj, copyArray) {
  24. return doCopy({}, obj, copyArray)
  25. }
  26. export { copyObject }