{"version":3,"file":"lodash-walk-object.mjs","sources":["../../../tmp-libs-for-dist/lodash-walk-object/projects/lodash-walk-object/src/lib/models.ts","../../../tmp-libs-for-dist/lodash-walk-object/projects/lodash-walk-object/src/lib/index.ts","../../../tmp-libs-for-dist/lodash-walk-object/projects/lodash-walk-object/src/lodash-walk-object.ts"],"sourcesContent":["\n\nexport namespace Models {\n\n  export type InDBType = { target: any; path: string; };\n  export type Circ = { pathToObj: string; circuralTargetPath: string; };\n\n\n  // @ts-ignore\n  export type Ver = { v: any; p: string; parent: Ver; isGetter?: boolean; }\n\n  export interface StartIteratorOptions {\n    walkGetters?: boolean;\n\n    /**\n     * Default in breadhTwalk\n     */\n    checkCircural?: boolean;\n    breadthWalk?: boolean;\n    include?: string[];\n    exclude?: string[];\n  }\n\n  export interface AdditionalIteratorOptions extends StartIteratorOptions {\n    skipObject?: () => void;\n    isGetter?: boolean;\n    /**\n     * Breadth walk will skip content of circural objects\n     */\n    isCircural?: boolean;\n    exit?: () => void;\n\n  }\n\n  export interface InternalValues extends AdditionalIteratorOptions {\n    db?: any;\n    stack?: any[];\n    circural?: Circ[];\n    hasIterator?: boolean;\n    _valueChanged: boolean;\n    _skip: boolean;\n    _exit: boolean;\n  }\n}\n\n ;({}); // @--end-of-file-for-module=lodash-walk-object lib/models.ts","\n\nimport { _ } from 'tnp-core/browser';\nimport { CLASS } from 'typescript-class-helpers/browser';\n\nimport { Models } from './models';\nexport * from './models';\n\nfunction findChildren(\n  ver: Models.Ver,\n  lp: string,\n  walkGetters: boolean,\n): Models.Ver[] {\n  const obj = ver.v;\n  if (_.isArray(obj)) {\n    return obj.map((v, i) => {\n      return { v, p: `${lp}[${i}]`, parent: ver, isGetter: false };\n    });\n  } else if (_.isObject(obj)) {\n    const allKeys = !walkGetters ? [] : Object.getOwnPropertyNames(obj);\n    const children: Models.Ver[] = [];\n    for (const key in obj) {\n      if (\n        _.isObject(obj) &&\n        _.isFunction(obj.hasOwnProperty) &&\n        obj.hasOwnProperty(key)\n      ) {\n        _.pull(allKeys, key);\n        children.push({\n          v: obj[key],\n          p: `${lp === '' ? '' : `${lp}.`}${key}`,\n          parent: ver,\n          isGetter: false,\n        });\n      }\n    }\n    if (walkGetters) {\n      for (let index = 0; index < allKeys.length; index++) {\n        if (_.isObject(obj)) {\n          const key = allKeys[index];\n          children.push({\n            v: obj[key],\n            p: `${lp === '' ? '' : `${lp}.`}${key}`,\n            parent: ver,\n            isGetter: true,\n          });\n        }\n      }\n    }\n    return children;\n  }\n  return [];\n}\n\nexport type Iterator = (\n  value: any,\n  lodashPath: string,\n  // @ts-ignore\n  changeValueTo: (newValue) => void,\n  options?: Models.AdditionalIteratorOptions,\n) => void;\nexport class Helpers {\n  public static get Walk() {\n    const self = this;\n    return {\n      Object(\n        json: Object,\n        iterator: Iterator,\n        optionsOrWalkGettersValue?: Models.StartIteratorOptions,\n      ) {\n        if (_.isUndefined(optionsOrWalkGettersValue)) {\n          optionsOrWalkGettersValue = {};\n        }\n\n        (optionsOrWalkGettersValue as Models.InternalValues).hasIterator =\n          _.isFunction(iterator);\n\n        if (_.isUndefined(optionsOrWalkGettersValue.breadthWalk)) {\n          optionsOrWalkGettersValue.breadthWalk = false;\n        }\n\n        let { circural } = self._walk(\n          json,\n          json,\n          iterator,\n          void 0,\n          optionsOrWalkGettersValue as any,\n        );\n\n        return { circs: circural };\n      },\n      ObjectBy(\n        property: string,\n        inContext: Object,\n        iterator: Iterator,\n        options?: Models.StartIteratorOptions,\n      ) {\n        if (_.isFunction(iterator)) {\n          iterator(inContext, '', self._changeValue(inContext, property, true)); // TODO Add optoins\n        }\n        // @ts-ignore\n        const json = inContext[property];\n        return self.Walk.Object(json, iterator, options);\n      },\n    };\n  }\n\n  private static _changeValue(\n    json: Object,\n    lodahPath: string,\n    simpleChange = false,\n    options?: Models.InternalValues,\n  ) {\n    var { contextPath, property } = this._prepareParams(lodahPath);\n    var context = _.get(json, contextPath);\n\n    return (newValue: any) => {\n      if (contextPath === '') {\n        simpleChange = true;\n      }\n\n      if (simpleChange) {\n        // @ts-ignore\n        json[property] = newValue;\n      } else {\n\n\n        if (context) {\n          context[property] = newValue;\n        }\n      }\n      if (options) {\n        options._valueChanged = true;\n      }\n    };\n  }\n\n  private static _prepareParams(lodashPath: string) {\n\n    const contextPath = this._Helpers.Path.getContextPath(lodashPath);\n\n\n    let property = this._Helpers.Path.getPropertyPath(lodashPath, contextPath);\n\n    if (\n      _.isString(property) &&\n      property.trim() !== '' &&\n      !_.isNaN(Number(property))\n    ) {\n      property = Number(property);\n    }\n    return {\n      contextPath,\n      property,\n    };\n  }\n\n  private static get _Helpers() {\n    return {\n      get Path() {\n        return {\n          // @ts-ignore\n          getPropertyPath(lodahPath, contetPath) {\n            return lodahPath\n              .replace(contetPath, '')\n              .replace(/^\\./, '')\n              .replace(/\\[/, '')\n              .replace(/\\]/, '');\n          },\n          getContextPath(p: string) {\n            let res: string;\n            if (p.endsWith(']')) {\n              res = p.replace(/\\[(\\\"|\\')?[0-9]+(\\\"|\\')?\\]$/, '');\n            } else {\n              res = p.replace(/\\.([a-zA-Z0-9]|\\$|\\_|\\@|\\-|\\/|\\:)+$/, '');\n            }\n            return res === p ? '' : res;\n          },\n        };\n      },\n    };\n  }\n\n  private static _shoudlReturn(include = [], exclude = [], lodashPath: string) {\n    let res = false;\n    if (lodashPath.replace(/^\\[(\\'|\\\")?[0-9]*(\\'|\\\")?\\]/, '').trim() !== '') {\n      lodashPath = lodashPath.replace(/^\\[(\\'|\\\")?[0-9]*(\\'|\\\")?\\]\\./, '');\n      res =\n        (_.isArray(include) &&\n          include.length > 0 &&\n          !include.find(p => lodashPath.startsWith(p))) ||\n        (_.isArray(exclude) &&\n          exclude.length > 0 &&\n          !!exclude.find(p => lodashPath.startsWith(p)));\n    }\n\n    return res;\n  }\n\n  // @ts-ignore\n  private static prepareOptions(\n    options: Models.InternalValues,\n    obj,\n    lodashPath,\n  ) {\n    if (options._exit) {\n      return;\n    }\n\n    if (_.isUndefined(options.walkGetters)) {\n      options.walkGetters = true;\n    }\n\n    if (_.isUndefined(options.checkCircural)) {\n      options.checkCircural = false;\n    }\n\n    if (_.isUndefined(options.isGetter)) {\n      // @ts-ignore\n      options.isGetter = false;\n    }\n\n    if (_.isUndefined(options._valueChanged)) {\n      options._valueChanged = false;\n    }\n\n    if (_.isUndefined(options._exit)) {\n      // @ts-ignore\n      options._exit = false;\n    }\n\n    if (_.isUndefined(options.exit)) {\n      options.exit = () => {\n        options._exit = true;\n      };\n    }\n\n    if (_.isUndefined(options._skip)) {\n      // @ts-ignore\n      options._skip = false;\n    }\n\n    if (_.isUndefined(options.skipObject)) {\n      options.skipObject = () => {\n        options._skip = true;\n      };\n    }\n\n    if (options.checkCircural) {\n      if (_.isUndefined(options.db)) {\n        options.db = {};\n      }\n\n      if (_.isUndefined(options.stack)) {\n        options.stack = [];\n      }\n\n      if (_.isUndefined(options.circural)) {\n        options.circural = [];\n      }\n    }\n\n    const { db, stack } = options;\n    options.isCircural = false;\n\n    if (options.checkCircural && _.isObject(obj)) {\n      let indexValue = CLASS.OBJECT(obj).indexValue;\n      if (CLASS.OBJECT(obj).isClassObject && !_.isUndefined(indexValue)) {\n        let className = CLASS.getNameFromObject(obj);\n        let p = `${className}.id_${indexValue}`;\n        const inDB: Models.InDBType = _.get(db, p);\n\n        if (inDB && CLASS.OBJECT(inDB.target).isEqual(obj)) {\n          const circ: Models.Circ = {\n            pathToObj: lodashPath,\n            circuralTargetPath: inDB.path,\n          };\n          // @ts-ignore\n          options.circural.push(circ);\n          options.isCircural = true;\n        } else {\n          _.set(db, p, {\n            path: lodashPath,\n            target: obj,\n          } as Models.InDBType);\n        }\n      } else {\n        // @ts-ignore\n        const inStack = stack.find((c: Models.InDBType) => c.target == obj);\n\n        if (!_.isUndefined(inStack)) {\n          const circ: Models.Circ = {\n            pathToObj: lodashPath,\n            circuralTargetPath: inStack.path,\n          };\n          // @ts-ignore\n          options.circural.push(circ);\n          options.isCircural = true;\n        } else {\n          // @ts-ignore\n          stack.push({\n            path: lodashPath,\n            target: obj,\n          } as Models.InDBType);\n        }\n      }\n    }\n    return options;\n  }\n\n  private static _walk(\n    json: Object,\n    objOrWhatever: unknown,\n    iterator: Iterator,\n    lodashPath = '',\n    options?: Models.InternalValues,\n    depthLevel = 0,\n  ) {\n    if (!options) {\n      options = {} as any;\n    }\n\n    // @ts-ignore\n    if (!options.breadthWalk) {\n      // @ts-ignore\n      options = this.prepareOptions(options, objOrWhatever, lodashPath);\n\n      // @ts-ignore\n      if (this._shoudlReturn(options.include, options.exclude, lodashPath)) {\n        return;\n      }\n\n      // @ts-ignore\n      if (options.hasIterator && lodashPath !== '') {\n        iterator(\n          objOrWhatever,\n          lodashPath,\n          this._changeValue(json, lodashPath, false, options),\n          options,\n        );\n      }\n\n      // @ts-ignore\n      if (options._valueChanged) {\n        objOrWhatever = _.get(json, lodashPath);\n      }\n      options._valueChanged = false;\n\n      if (options.isCircural) {\n        options._skip = true;\n      }\n\n      if (options._skip) {\n        // @ts-ignore\n        options._skip = false;\n        return;\n      }\n    }\n\n    if (options.breadthWalk) {\n      let queue: Models.Ver[] = [{ v: json, p: lodashPath, parent: void 0 }];\n\n\n      while (queue.length > 0) {\n        const ver = queue.shift();\n\n\n\n\n\n        // @ts-ignore\n        if (this._shoudlReturn(options.include, options.exclude, ver.p)) {\n\n\n          continue;\n        }\n\n\n\n        // @ts-ignore\n        let { v, p } = ver;\n        // @ts-ignore\n        options = this.prepareOptions(options, v, p);\n\n        if (options._exit) {\n          console.log('EXIT');\n          return options;\n        }\n        if (options.hasIterator && p !== '') {\n          iterator(v, p, this._changeValue(json, p, false, options), options);\n        }\n\n        // @ts-ignore\n        if (options._valueChanged) {\n          ver.v = _.get(json, p);\n        }\n        options._valueChanged = false;\n\n        if (options.isCircural) {\n\n          continue;\n        }\n\n        if (options._skip) {\n          // @ts-ignore\n          options._skip = false;\n\n          continue;\n        }\n\n        if (_.isArray(v)) {\n          // @ts-ignore\n          queue = queue.concat(findChildren(ver, p, options.walkGetters));\n        } else if (_.isObject(v)) {\n          // @ts-ignore\n          queue = queue.concat(findChildren(ver, p, options.walkGetters));\n        }\n      }\n    } else {\n      // @ts-ignore\n      const { walkGetters } = options;\n\n      if (Array.isArray(objOrWhatever)) {\n        objOrWhatever.forEach((o, i) => {\n          // @ts-ignore\n          this._walk(\n            json,\n            objOrWhatever[i],\n            iterator,\n            `${lodashPath}[${i}]`,\n            options,\n            depthLevel + 1,\n          );\n        });\n      } else if (_.isObject(objOrWhatever)) {\n        const allKeys = !walkGetters\n          ? []\n          : Object.getOwnPropertyNames(objOrWhatever);\n\n        // @ts-ignore\n        for (const key in objOrWhatever) {\n\n          if (_.isObject(objOrWhatever) && objOrWhatever.hasOwnProperty(key)) {\n            _.pull(allKeys, key);\n\n            let newPropKey = key;\n            options.isGetter = false;\n            if (newPropKey.includes('.')) {\n              newPropKey = `['${newPropKey}']`;\n            }\n            // @ts-ignore\n            this._walk(\n              json,\n              objOrWhatever[newPropKey],\n              iterator,\n              `${lodashPath === '' ? '' : `${lodashPath}.`}${newPropKey}`,\n              options,\n              depthLevel + 1,\n            );\n          }\n        }\n        if (walkGetters) {\n          for (let index = 0; index < allKeys.length; index++) {\n            if (_.isObject(objOrWhatever)) {\n              const key = allKeys[index];\n\n              // @ts-ignore\n              options.isGetter = true;\n              // @ts-ignore\n              this._walk(\n                json,\n                objOrWhatever[key],\n                iterator,\n                `${lodashPath === '' ? '' : `${lodashPath}.`}${key}`,\n                options,\n                depthLevel + 1,\n              );\n            }\n          }\n        }\n      }\n\n      // @ts-ignore\n      if (options._exit && json === objOrWhatever) {\n        // @ts-ignore\n        options._exit = false;\n      }\n    }\n\n    return options;\n  }\n}\n\nexport const walk = {\n  Object: Helpers.Walk.Object,\n  ObjectBy: Helpers.Walk.ObjectBy,\n};\n\n ;({}); // @--end-of-file-for-module=lodash-walk-object lib/index.ts","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}