{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/utils/hierarchy/util.ts"],"names":[],"mappings":";;;AAAA,mCAAuD;AAEvD,oBAAoB;AACpB,yBAAyB;AACZ,QAAA,gBAAgB,GAAG,WAAW,CAAC;AAC5C,iBAAiB;AACJ,QAAA,gBAAgB,GAAG,gBAAgB,CAAC;AACjD,cAAc;AACD,QAAA,oBAAoB,GAAG,cAAc,CAAC;AAEnD,IAAM,qBAAqB,GAAG,qCAAqC,CAAC;AAOpE,SAAgB,QAAQ,CAAC,OAAgB,EAAE,YAAqB;IACtD,IAAA,KAAK,GAAa,OAAO,MAApB,EAAE,MAAM,GAAK,OAAO,OAAZ,CAAa;IAClC,IAAI,IAAA,eAAQ,EAAC,KAAK,CAAC,EAAE;QACnB,OAAO,KAAK,CAAC;KACd;IACD,IAAI,IAAA,cAAO,EAAC,KAAK,CAAC,EAAE;QAClB,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACpC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;KACjB;IACD,OAAO,CAAC,IAAI,CAAC,UAAG,qBAAqB,qCAAkC,CAAC,CAAC;IACzE,IAAI,IAAA,eAAQ,EAAC,MAAM,CAAC,EAAE;QACpB,OAAO,MAAM,CAAC;KACf;IACD,IAAI,IAAA,cAAO,EAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE;QACpC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;KAClB;IACD,IAAI,YAAY,EAAE;QAChB,OAAO,YAAY,CAAC;KACrB;IACD,MAAM,IAAI,SAAS,CAAC,qBAAqB,CAAC,CAAC;AAC7C,CAAC;AApBD,4BAoBC;AAED,SAAgB,WAAW,CAAC,IAAS;IACnC,IAAM,KAAK,GAAU,EAAE,CAAC;IACxB,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;QACrB,IAAI,QAAM,CAAC;QACX,IAAI,OAAK,CAAC;QACV,uGAAuG;QACvG,IAAI,CAAC,IAAI,CAAC,UAAC,IAAS;;YAClB,IAAI,IAAI,CAAC,MAAM,KAAK,QAAM,EAAE;gBAC1B,QAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBACrB,OAAK,GAAG,CAAC,CAAC;aACX;iBAAM;gBACL,OAAK,IAAI,CAAC,CAAC;aACZ;YACD,IAAM,SAAS,GAAG,IAAA,aAAM,EACtB,CAAC,CAAA,MAAA,IAAI,CAAC,SAAS,oDAAI,KAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAC,CAAM,IAAK,OAAA,KAAK,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAjB,CAAiB,CAAC,IAAI,CAAC,EAAzC,CAAyC,CAAC,EACrF,UAAC,EAAS;oBAAP,KAAK,WAAA;gBAAO,OAAA,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK;YAA/B,CAA+B,CAC/C,CAAC;YAEF,IAAI,CAAC,4BAAoB,CAAC,GAAG,SAAS,CAAC;YACvC,IAAI,CAAC,wBAAgB,CAAC,GAAG,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,KAAI,CAAC,CAAC;YACpD,IAAI,CAAC,wBAAgB,CAAC,GAAG,OAAK,CAAC;YAE/B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;KACJ;SAAM,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;QAChC,kBAAkB;QAClB,IAAI,CAAC,QAAQ,CAAC,UAAC,IAAS;YACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;KACJ;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AA/BD,kCA+BC","sourcesContent":["import { filter, isArray, isString } from '@antv/util';\n\n/** export 一些字段常量 */\n/** 在同层级,同一父节点下的节点索引顺序 */\nexport const NODE_INDEX_FIELD = 'nodeIndex';\n/** child 节点数量 */\nexport const CHILD_NODE_COUNT = 'childNodeCount';\n/** 节点的祖先节点 */\nexport const NODE_ANCESTORS_FIELD = 'nodeAncestor';\n\nconst INVALID_FIELD_ERR_MSG = 'Invalid field: it must be a string!';\n\ninterface Options {\n field?: string | string[];\n fields?: string | string[];\n}\n\nexport function getField(options: Options, defaultField?: string): string {\n const { field, fields } = options;\n if (isString(field)) {\n return field;\n }\n if (isArray(field)) {\n console.warn(INVALID_FIELD_ERR_MSG);\n return field[0];\n }\n console.warn(`${INVALID_FIELD_ERR_MSG} will try to get fields instead.`);\n if (isString(fields)) {\n return fields;\n }\n if (isArray(fields) && fields.length) {\n return fields[0];\n }\n if (defaultField) {\n return defaultField;\n }\n throw new TypeError(INVALID_FIELD_ERR_MSG);\n}\n\nexport function getAllNodes(root: any) {\n const nodes: any[] = [];\n if (root && root.each) {\n let parent;\n let index;\n // d3-hierarchy: Invokes the specified function for node and each descendant in **breadth-first order**\n root.each((node: any) => {\n if (node.parent !== parent) {\n parent = node.parent;\n index = 0;\n } else {\n index += 1;\n }\n const ancestors = filter(\n (node.ancestors?.() || []).map((d: any) => nodes.find((n) => n.name === d.name) || d),\n ({ depth }) => depth > 0 && depth < node.depth\n );\n\n node[NODE_ANCESTORS_FIELD] = ancestors;\n node[CHILD_NODE_COUNT] = node.children?.length || 0;\n node[NODE_INDEX_FIELD] = index;\n\n nodes.push(node);\n });\n } else if (root && root.eachNode) {\n // @antv/hierarchy\n root.eachNode((node: any) => {\n nodes.push(node);\n });\n }\n return nodes;\n}\n"]}