text: 
  export default {
    isObject(input) {
      return Object.prototype.toString.call(input) === '[object Object]';
    },
    isArray(input) {
      return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';
    },
    isDate(input) {
      return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';
    },
    isNumber(input) {
      return input instanceof Number || Object.prototype.toString.call(input) === '[object Number]';
    },
    isString(input) {
      return input instanceof String || Object.prototype.toString.call(input) === '[object String]';
    },
    isBoolean(input) {
      return typeof input == 'boolean';
    },
    isFunction(input) {
      return typeof input == 'function';
    },
    deepCopy(data) {
      let copyOne = null;
      if (this.isObject(data)) {
        copyOne = {};
        for (const key in data) {
          copyOne[key] = this.deepCopy(data[key]);
        }
      } else if (this.isArray(data)) {
        copyOne = [];
        for (const index of data) {
          copyOne.push(this.deepCopy(index));
        }
      } else {
        copyOne = data;
      }
      return copyOne;
    },
    deepFreeze(obj) {
      const that = this;
      Object.freeze(obj);
      Object.keys(obj).forEach((key, value) => {
        if (that.isObject(obj[key])) {
          this.deepFreeze(obj[key]);
        }
      });
      return obj;
    },
    mergeArray(arr1, arr2) {
      for (var i = 0; i < arr1.length; i++) {
        for (let j = 0; j < arr2.length; j++) {
          if (arr1[i] === arr2[j]) {
            arr1.splice(i, 1);
          }
        }
      }
      for (var i = 0; i < arr2.length; i++) {
        arr1.push(arr2[i]);
      }
      return arr1;
    },
    extend: function () {
      var options, name, src, copy, copyIsArray, clone,
        target = arguments[0] || {},
        i = 1,
        length = arguments.length,
        deep = false;
      if (typeof target === "boolean") {
        deep = target;
        target = arguments[1] || {};
        i = 2;
      }
      if (typeof target !== "object" && !this.isFunction(target)) {
        target = {};
      }
      if (length === i) {
        target = this;
        --i;
      }
      for (; i < length; i++) {
        if ((options = arguments[i]) != null) {
          for (name in options) {
            src = target[name];
            copy = options[name];
            if (target === copy) {
              continue;
            }
            if (deep && copy && (this.isPlainObject(copy) || (copyIsArray = this.isArray(copy)))) {
              if (copyIsArray) {
                copyIsArray = false;
                clone = src && this.isArray(src) ? src : [];
              } else {
                clone = src && this.isPlainObject(src) ? src : {};
              }
              target[name] = this.extend(deep, clone, copy);
            } else if (copy !== undefined) {
              target[name] = copy;
            }
          }
        }
      }
      return target;
    },
    add(arg1, arg2) {
      let s1 = arg1.toString();
      let s2 = arg2.toString();
      let arg1Arr = s1.split(".");
      let arg2Arr = s2.split(".");
      let d1 = arg1Arr.length == 2 ? arg1Arr[1] : "";
      let d2 = arg2Arr.length == 2 ? arg2Arr[1] : "";
      let maxLen = Math.max(d1.length, d2.length);
      let m = Math.pow(10, maxLen);
      return Number(((s1 * m + s2 * m) / m).toFixed(maxLen));
    },
    sub(arg1, arg2) {
      return this.add(arg1, -arg2);
    },
    mul(arg1, arg2) {
      let m = 0;
      let s1 = arg1.toString();
      let s2 = arg2.toString();
      try { m += s1.split(".")[1].length } catch (e) {}
      try { m += s2.split(".")[1].length } catch (e) {}
      return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
    },
    div(arg1, arg2) {
      let t1 = 0;
      let t2 = 0;
      try { t1 = arg1.toString().split(".")[1].length } catch (e) {}
      try { t2 = arg2.toString().split(".")[1].length } catch (e) {}
      let r1 = Number(arg1.toString().replace(".", ""));
      let r2 = Number(arg2.toString().replace(".", ""));
      return this.mul((r1 / r2) , Math.pow(10, t2 - t1));
    }
  };
  