{"version":3,"sources":["../node_modules/toposort/index.js"],"names":["toposort","nodes","edges","cursor","length","sorted","Array","visited","i","outgoingEdges","arr","Map","len","edge","has","set","Set","get","add","makeOutgoingEdges","nodesHash","res","makeNodesHash","forEach","Error","visit","node","predecessors","nodeRep","JSON","stringify","e","outgoing","from","child","delete","module","exports","uniqueNodes","array"],"mappings":"yFAcA,SAASA,EAASC,EAAOC,GACvB,IAAIC,EAASF,EAAMG,OACfC,EAAS,IAAIC,MAAMH,GACnBI,EAAU,GACVC,EAAIL,EAEJM,EA4DN,SAA2BC,GAEzB,IADA,IAAIR,EAAQ,IAAIS,IACPH,EAAI,EAAGI,EAAMF,EAAIN,OAAQI,EAAII,EAAKJ,IAAK,CAC9C,IAAIK,EAAOH,EAAIF,GACVN,EAAMY,IAAID,EAAK,KAAKX,EAAMa,IAAIF,EAAK,GAAI,IAAIG,KAC3Cd,EAAMY,IAAID,EAAK,KAAKX,EAAMa,IAAIF,EAAK,GAAI,IAAIG,KAChDd,EAAMe,IAAIJ,EAAK,IAAIK,IAAIL,EAAK,IAE9B,OAAOX,EApEaiB,CAAkBjB,GAClCkB,EAsEN,SAAuBV,GAErB,IADA,IAAIW,EAAM,IAAIV,IACLH,EAAI,EAAGI,EAAMF,EAAIN,OAAQI,EAAII,EAAKJ,IACzCa,EAAIN,IAAIL,EAAIF,GAAIA,GAElB,OAAOa,EA3ESC,CAAcrB,GAS9B,IANAC,EAAMqB,SAAQ,SAASV,GACrB,IAAKO,EAAUN,IAAID,EAAK,MAAQO,EAAUN,IAAID,EAAK,IACjD,MAAM,IAAIW,MAAM,oEAIbhB,KACAD,EAAQC,IAAIiB,EAAMxB,EAAMO,GAAIA,EAAG,IAAIQ,KAG1C,OAAOX,EAEP,SAASoB,EAAMC,EAAMlB,EAAGmB,GACtB,GAAGA,EAAab,IAAIY,GAAO,CACzB,IAAIE,EACJ,IACEA,EAAU,cAAgBC,KAAKC,UAAUJ,GACzC,MAAMK,GACNH,EAAU,GAEZ,MAAM,IAAIJ,MAAM,oBAAsBI,GAGxC,IAAKR,EAAUN,IAAIY,GACjB,MAAM,IAAIF,MAAM,+EAA+EK,KAAKC,UAAUJ,IAGhH,IAAInB,EAAQC,GAAZ,CACAD,EAAQC,IAAK,EAEb,IAAIwB,EAAWvB,EAAcQ,IAAIS,IAAS,IAAIV,IAG9C,GAAIR,GAFJwB,EAAW1B,MAAM2B,KAAKD,IAEL5B,OAAQ,CACvBuB,EAAaT,IAAIQ,GACjB,EAAG,CACD,IAAIQ,EAAQF,IAAWxB,GACvBiB,EAAMS,EAAOd,EAAUH,IAAIiB,GAAQP,SAC5BnB,GACTmB,EAAaQ,OAAOT,GAGtBrB,IAASF,GAAUuB,IA1DvBU,EAAOC,QAAU,SAASnC,GACxB,OAAOF,EA6DT,SAAqBU,GAEnB,IADA,IAAIW,EAAM,IAAIL,IACLR,EAAI,EAAGI,EAAMF,EAAIN,OAAQI,EAAII,EAAKJ,IAAK,CAC9C,IAAIK,EAAOH,EAAIF,GACfa,EAAIH,IAAIL,EAAK,IACbQ,EAAIH,IAAIL,EAAK,IAEf,OAAOP,MAAM2B,KAAKZ,GApEFiB,CAAYpC,GAAQA,IAGtCkC,EAAOC,QAAQE,MAAQvC","file":"static/js/toposort.a6416d0c.chunk.js","sourcesContent":["\n/**\n * Topological sorting function\n *\n * @param {Array} edges\n * @returns {Array}\n */\n\nmodule.exports = function(edges) {\n return toposort(uniqueNodes(edges), edges)\n}\n\nmodule.exports.array = toposort\n\nfunction toposort(nodes, edges) {\n var cursor = nodes.length\n , sorted = new Array(cursor)\n , visited = {}\n , i = cursor\n // Better data structures make algorithm much faster.\n , outgoingEdges = makeOutgoingEdges(edges)\n , nodesHash = makeNodesHash(nodes)\n\n // check for unknown nodes\n edges.forEach(function(edge) {\n if (!nodesHash.has(edge[0]) || !nodesHash.has(edge[1])) {\n throw new Error('Unknown node. There is an unknown node in the supplied edges.')\n }\n })\n\n while (i--) {\n if (!visited[i]) visit(nodes[i], i, new Set())\n }\n\n return sorted\n\n function visit(node, i, predecessors) {\n if(predecessors.has(node)) {\n var nodeRep\n try {\n nodeRep = \", node was:\" + JSON.stringify(node)\n } catch(e) {\n nodeRep = \"\"\n }\n throw new Error('Cyclic dependency' + nodeRep)\n }\n\n if (!nodesHash.has(node)) {\n throw new Error('Found unknown node. Make sure to provided all involved nodes. Unknown node: '+JSON.stringify(node))\n }\n\n if (visited[i]) return;\n visited[i] = true\n\n var outgoing = outgoingEdges.get(node) || new Set()\n outgoing = Array.from(outgoing)\n\n if (i = outgoing.length) {\n predecessors.add(node)\n do {\n var child = outgoing[--i]\n visit(child, nodesHash.get(child), predecessors)\n } while (i)\n predecessors.delete(node)\n }\n\n sorted[--cursor] = node\n }\n}\n\nfunction uniqueNodes(arr){\n var res = new Set()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n res.add(edge[0])\n res.add(edge[1])\n }\n return Array.from(res)\n}\n\nfunction makeOutgoingEdges(arr){\n var edges = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n if (!edges.has(edge[0])) edges.set(edge[0], new Set())\n if (!edges.has(edge[1])) edges.set(edge[1], new Set())\n edges.get(edge[0]).add(edge[1])\n }\n return edges\n}\n\nfunction makeNodesHash(arr){\n var res = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n res.set(arr[i], i)\n }\n return res\n}\n"],"sourceRoot":""}