@plumile/ui 0.1.99 → 0.1.102

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/lib/esm/{BackofficeJsonViewerAsync-GenasLA-.js → BackofficeJsonViewerAsync-niwHe9is.js} +2 -2
  2. package/lib/esm/{BackofficeJsonViewerAsync-GenasLA-.js.map → BackofficeJsonViewerAsync-niwHe9is.js.map} +1 -1
  3. package/lib/esm/HighlightCode-KpWSo7Zx.js.map +1 -1
  4. package/lib/esm/{MarkdownCodeBlock-DZRdzjJ9.js → MarkdownCodeBlock-CLK5KJgU.js} +3 -3
  5. package/lib/esm/{MarkdownCodeBlock-DZRdzjJ9.js.map → MarkdownCodeBlock-CLK5KJgU.js.map} +1 -1
  6. package/lib/esm/{MarkdownRenderer-DBpMvD98.js → MarkdownRenderer-c_Ic29c2.js} +2 -2
  7. package/lib/esm/{MarkdownRenderer-DBpMvD98.js.map → MarkdownRenderer-c_Ic29c2.js.map} +1 -1
  8. package/lib/esm/{MarkdownShikiCodeBlock-BhdpnKJo.js → MarkdownShikiCodeBlock-CbaOKfZO.js} +1180 -1175
  9. package/lib/esm/MarkdownShikiCodeBlock-CbaOKfZO.js.map +1 -0
  10. package/lib/esm/_baseFor-Z--4BB_X.js.map +1 -1
  11. package/lib/esm/arc-BUZ4igwO.js.map +1 -1
  12. package/lib/esm/architectureDiagram-Q4EWVU46-DpoNV55s.js.map +1 -1
  13. package/lib/esm/array-CTFiDRBi.js.map +1 -1
  14. package/lib/esm/blockDiagram-DXYQGD6D-DJxDffAk.js.map +1 -1
  15. package/lib/esm/c4Diagram-AHTNJAMY-DxAt6CyF.js.map +1 -1
  16. package/lib/esm/chunk-2KRD3SAO-C5ZUgIak.js.map +1 -1
  17. package/lib/esm/{chunk-336JU56O-24m8cXIL.js → chunk-336JU56O-BsMYboJR.js} +3 -3
  18. package/lib/esm/{chunk-336JU56O-24m8cXIL.js.map → chunk-336JU56O-BsMYboJR.js.map} +1 -1
  19. package/lib/esm/chunk-426QAEUC-b2PRuT9o.js.map +1 -1
  20. package/lib/esm/chunk-4BX2VUAB-BkyyJ41z.js.map +1 -1
  21. package/lib/esm/{chunk-4TB4RGXK-CsiupxiO.js → chunk-4TB4RGXK-LzOZn6e3.js} +2 -2
  22. package/lib/esm/{chunk-4TB4RGXK-CsiupxiO.js.map → chunk-4TB4RGXK-LzOZn6e3.js.map} +1 -1
  23. package/lib/esm/chunk-55IACEB6-CZ1WMXNv.js.map +1 -1
  24. package/lib/esm/chunk-5FUZZQ4R-Hp5ZXYAE.js.map +1 -1
  25. package/lib/esm/chunk-5PVQY5BW-CQdr0IGy.js.map +1 -1
  26. package/lib/esm/chunk-67CJDMHE-DQCJ08Vv.js.map +1 -1
  27. package/lib/esm/chunk-7N4EOEYR-CTdQRezU.js.map +1 -1
  28. package/lib/esm/chunk-AA7GKIK3-x61iJxkf.js.map +1 -1
  29. package/lib/esm/chunk-BSJP7CBP-BRqWaFD3.js.map +1 -1
  30. package/lib/esm/chunk-CIAEETIT-Dm4nDheA.js.map +1 -1
  31. package/lib/esm/chunk-EDXVE4YY-CyZVAPxl.js.map +1 -1
  32. package/lib/esm/chunk-ENJZ2VHE-D1RBdOy4.js.map +1 -1
  33. package/lib/esm/chunk-FOC6F5B3-DTxKWzfh.js.map +1 -1
  34. package/lib/esm/chunk-ICPOFSXX-BQ7-Poft.js.map +1 -1
  35. package/lib/esm/chunk-K5T4RW27-BZbwqbnj.js.map +1 -1
  36. package/lib/esm/chunk-KGLVRYIC-DGO8PqNS.js.map +1 -1
  37. package/lib/esm/chunk-LIHQZDEY-DRQpYuDY.js.map +1 -1
  38. package/lib/esm/chunk-ORNJ4GCN-BWnkQx42.js.map +1 -1
  39. package/lib/esm/{chunk-OYMX7WX6-C3qIK5JJ.js → chunk-OYMX7WX6-C3p3qx9s.js} +2 -2
  40. package/lib/esm/{chunk-OYMX7WX6-C3qIK5JJ.js.map → chunk-OYMX7WX6-C3p3qx9s.js.map} +1 -1
  41. package/lib/esm/chunk-QZHKN3VN-BIoC_CBh.js.map +1 -1
  42. package/lib/esm/chunk-U2HBQHQK-CNpf2t7b.js.map +1 -1
  43. package/lib/esm/chunk-X2U36JSP-Dh9T66Fy.js.map +1 -1
  44. package/lib/esm/chunk-XPW4576I-CdsuZylH.js.map +1 -1
  45. package/lib/esm/chunk-YZCP3GAM-D-LQWFJc.js.map +1 -1
  46. package/lib/esm/chunk-ZZ45TVLE-CP_4OsJR.js.map +1 -1
  47. package/lib/esm/{classDiagram-6PBFFD2Q-CfClLEok.js → classDiagram-6PBFFD2Q-CfucyocV.js} +3 -3
  48. package/lib/esm/{classDiagram-6PBFFD2Q-CfClLEok.js.map → classDiagram-6PBFFD2Q-CfucyocV.js.map} +1 -1
  49. package/lib/esm/{classDiagram-v2-HSJHXN6E-BlbDAEH6.js → classDiagram-v2-HSJHXN6E-BcU6iB1L.js} +3 -3
  50. package/lib/esm/{classDiagram-v2-HSJHXN6E-BlbDAEH6.js.map → classDiagram-v2-HSJHXN6E-BcU6iB1L.js.map} +1 -1
  51. package/lib/esm/clone-DhB5s2T9.js.map +1 -1
  52. package/lib/esm/cose-bilkent-S5V4N54A-BdVqhM8C.js.map +1 -1
  53. package/lib/esm/cytoscape.esm-CT-fsRss.js.map +1 -1
  54. package/lib/esm/dagre-BQULeUjQ.js.map +1 -1
  55. package/lib/esm/dagre-KV5264BT-DTy5YJ5_.js.map +1 -1
  56. package/lib/esm/diagram-5BDNPKRD-w19gCTBw.js.map +1 -1
  57. package/lib/esm/diagram-G4DWMVQ6-EfJtDPEB.js.map +1 -1
  58. package/lib/esm/diagram-MMDJMWI5-DsPB2uYP.js.map +1 -1
  59. package/lib/esm/diagram-TYMM5635-D3ecq7oF.js.map +1 -1
  60. package/lib/esm/dist-CZs_brJz.js.map +1 -1
  61. package/lib/esm/{erDiagram-SMLLAGMA-sgCGzaHO.js → erDiagram-SMLLAGMA-DsYSva8K.js} +2 -2
  62. package/lib/esm/{erDiagram-SMLLAGMA-sgCGzaHO.js.map → erDiagram-SMLLAGMA-DsYSva8K.js.map} +1 -1
  63. package/lib/esm/flatten-CRDGWjhS.js.map +1 -1
  64. package/lib/esm/{flowDiagram-DWJPFMVM-BlOft6GA.js → flowDiagram-DWJPFMVM-BkxIhdyA.js} +2 -2
  65. package/lib/esm/{flowDiagram-DWJPFMVM-BlOft6GA.js.map → flowDiagram-DWJPFMVM-BkxIhdyA.js.map} +1 -1
  66. package/lib/esm/ganttDiagram-T4ZO3ILL-BGrn6yEi.js.map +1 -1
  67. package/lib/esm/gitGraphDiagram-UUTBAWPF-BV73nor5.js.map +1 -1
  68. package/lib/esm/graphlib-B76sPwTV.js.map +1 -1
  69. package/lib/esm/infoDiagram-42DDH7IO-CYONnQuR.js.map +1 -1
  70. package/lib/esm/init-DcYXQL-k.js.map +1 -1
  71. package/lib/esm/isEmpty-DLTQgX7m.js.map +1 -1
  72. package/lib/esm/ishikawaDiagram-UXIWVN3A-B2ISni0r.js.map +1 -1
  73. package/lib/esm/journeyDiagram-VCZTEJTY-CjNMX7wx.js.map +1 -1
  74. package/lib/esm/kanban-definition-6JOO6SKY-BNsv25Cl.js.map +1 -1
  75. package/lib/esm/katex-DpumU0Fc.js.map +1 -1
  76. package/lib/esm/line-Dyv5of1r.js.map +1 -1
  77. package/lib/esm/linear-LpGdIFrk.js.map +1 -1
  78. package/lib/esm/mermaid-parser.core-D5sUsnWF.js.map +1 -1
  79. package/lib/esm/{mermaid.core-o6lwF-Gt.js → mermaid.core-i12yADTp.js} +12 -12
  80. package/lib/esm/{mermaid.core-o6lwF-Gt.js.map → mermaid.core-i12yADTp.js.map} +1 -1
  81. package/lib/esm/{mindmap-definition-QFDTVHPH-C63UTb48.js → mindmap-definition-QFDTVHPH-BfrBPDUJ.js} +2 -2
  82. package/lib/esm/{mindmap-definition-QFDTVHPH-C63UTb48.js.map → mindmap-definition-QFDTVHPH-BfrBPDUJ.js.map} +1 -1
  83. package/lib/esm/ordinal-B2RGggQH.js.map +1 -1
  84. package/lib/esm/path-Bg_3NlDP.js.map +1 -1
  85. package/lib/esm/pieDiagram-DEJITSTG-YByZ__0R.js.map +1 -1
  86. package/lib/esm/quadrantDiagram-34T5L4WZ-DLFKZc02.js.map +1 -1
  87. package/lib/esm/reduce-0ekdtexD.js.map +1 -1
  88. package/lib/esm/{requirementDiagram-MS252O5E-CJXcr8r4.js → requirementDiagram-MS252O5E-CulfPmse.js} +2 -2
  89. package/lib/esm/{requirementDiagram-MS252O5E-CJXcr8r4.js.map → requirementDiagram-MS252O5E-CulfPmse.js.map} +1 -1
  90. package/lib/esm/rough.esm-IQz7gRXZ.js.map +1 -1
  91. package/lib/esm/sankeyDiagram-XADWPNL6-DMByY6gK.js.map +1 -1
  92. package/lib/esm/sequenceDiagram-FGHM5R23-vJC9cjdX.js.map +1 -1
  93. package/lib/esm/src-BZm6Awwh.js.map +1 -1
  94. package/lib/esm/{src-C5doNKmD.js → src-DT2iBPF8.js} +629 -541
  95. package/lib/esm/src-DT2iBPF8.js.map +1 -0
  96. package/lib/esm/{stateDiagram-FHFEXIEX-G9WWEBGm.js → stateDiagram-FHFEXIEX-CofVLBPX.js} +3 -3
  97. package/lib/esm/{stateDiagram-FHFEXIEX-G9WWEBGm.js.map → stateDiagram-FHFEXIEX-CofVLBPX.js.map} +1 -1
  98. package/lib/esm/{stateDiagram-v2-QKLJ7IA2-BSg62pbb.js → stateDiagram-v2-QKLJ7IA2-DTXym7Y8.js} +3 -3
  99. package/lib/esm/{stateDiagram-v2-QKLJ7IA2-BSg62pbb.js.map → stateDiagram-v2-QKLJ7IA2-DTXym7Y8.js.map} +1 -1
  100. package/lib/esm/style.css +1 -1
  101. package/lib/esm/timeline-definition-GMOUNBTQ-DeWjV_e-.js.map +1 -1
  102. package/lib/esm/ui.js +4 -4
  103. package/lib/esm/vennDiagram-DHZGUBPP-CKdXCzw7.js.map +1 -1
  104. package/lib/esm/wardleyDiagram-NUSXRM2D-BzD8LDJv.js.map +1 -1
  105. package/lib/esm/xychartDiagram-5P7HB3ND-C2ITEA5J.js.map +1 -1
  106. package/lib/types/backoffice/molecules/backoffice_load_more/BackofficeLoadMore.d.ts +2 -1
  107. package/lib/types/backoffice/molecules/backoffice_load_more/BackofficeLoadMore.d.ts.map +1 -1
  108. package/lib/types/backoffice/molecules/backoffice_load_more/backofficeLoadMore.css.d.ts +1 -0
  109. package/lib/types/backoffice/molecules/backoffice_load_more/backofficeLoadMore.css.d.ts.map +1 -1
  110. package/lib/types/backoffice/molecules/sidebar_nav_section/SidebarNavSection.d.ts +1 -1
  111. package/lib/types/backoffice/molecules/sidebar_nav_section/SidebarNavSection.d.ts.map +1 -1
  112. package/lib/types/components/data-table/DataTable.d.ts +2 -0
  113. package/lib/types/components/data-table/DataTable.d.ts.map +1 -1
  114. package/lib/types/components/data-table/ResponsiveRecordList.css.d.ts +21 -0
  115. package/lib/types/components/data-table/ResponsiveRecordList.css.d.ts.map +1 -0
  116. package/lib/types/components/data-table/ResponsiveRecordList.d.ts +17 -0
  117. package/lib/types/components/data-table/ResponsiveRecordList.d.ts.map +1 -0
  118. package/lib/types/index.d.ts +2 -0
  119. package/lib/types/index.d.ts.map +1 -1
  120. package/package.json +12 -12
  121. package/lib/esm/MarkdownShikiCodeBlock-BhdpnKJo.js.map +0 -1
  122. package/lib/esm/src-C5doNKmD.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"graphlib-B76sPwTV.js","names":["boolTag","dateTag","mapTag","numberTag","regexpTag","setTag","stringTag","symbolTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","mapTag","getTag","setTag","getTag","getTag","_.constant","_.isFunction","_.keys","_.filter","_.isEmpty","_.isUndefined","_.union","_.values"],"sources":["../../../../node_modules/lodash-es/_baseAssign.js","../../../../node_modules/lodash-es/_baseAssignIn.js","../../../../node_modules/lodash-es/_copySymbols.js","../../../../node_modules/lodash-es/_getSymbolsIn.js","../../../../node_modules/lodash-es/_copySymbolsIn.js","../../../../node_modules/lodash-es/_getAllKeysIn.js","../../../../node_modules/lodash-es/_initCloneArray.js","../../../../node_modules/lodash-es/_cloneDataView.js","../../../../node_modules/lodash-es/_cloneRegExp.js","../../../../node_modules/lodash-es/_cloneSymbol.js","../../../../node_modules/lodash-es/_initCloneByTag.js","../../../../node_modules/lodash-es/_baseIsMap.js","../../../../node_modules/lodash-es/isMap.js","../../../../node_modules/lodash-es/_baseIsSet.js","../../../../node_modules/lodash-es/isSet.js","../../../../node_modules/lodash-es/_baseClone.js","../../../../node_modules/lodash-es/_baseValues.js","../../../../node_modules/lodash-es/values.js","../../../../node_modules/lodash-es/isUndefined.js","../../../../node_modules/lodash-es/union.js","../../../../node_modules/dagre-d3-es/src/graphlib/graph.js"],"sourcesContent":["import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import arrayMap from './_arrayMap.js';\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nexport default baseValues;\n","import baseValues from './_baseValues.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nexport default values;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","import baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport baseUniq from './_baseUniq.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\nvar union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n});\n\nexport default union;\n","import * as _ from 'lodash-es';\n\nvar DEFAULT_EDGE_NAME = '\\x00';\nvar GRAPH_NODE = '\\x00';\nvar EDGE_KEY_DELIM = '\\x01';\n\n/**\n * @typedef {string} NodeID ID of a node.\n */\n\n/**\n * @typedef {`${string}${typeof EDGE_KEY_DELIM}${string}${typeof EDGE_KEY_DELIM}${string}`} EdgeID ID of an edge.\n * @internal - All public APIs use {@link EdgeObj} instead to refer to edges.\n */\n\n/**\n * @typedef {object} EdgeObj\n * @property {NodeID} v the id of the source or tail node of an edge\n * @property {NodeID} w the id of the target or head node of an edge\n * @property {string | number} [name] Name of the edge. Needed to uniquely identify\n * multiple edges between the same pair of nodes in a multigraph.\n */\n\n/**\n * @template {unknown} T\n * @typedef {T[] | Record<any, T>} Collection\n * Lodash object that can be iterated over with `_.each`.\n *\n * Beware, objects with `.length` are treated as arrays, see\n * https://lodash.com/docs/4.17.15#forEach\n */\n\n// Implementation notes:\n//\n// * Node id query functions should return string ids for the nodes\n// * Edge id query functions should return an \"edgeObj\", edge object, that is\n// composed of enough information to uniquely identify an edge: {v, w, name}.\n// * Internally we use an \"edgeId\", a stringified form of the edgeObj, to\n// reference edges. This is because we need a performant way to look these\n// edges up and, object properties, which have string keys, are the closest\n// we're going to get to a performant hashtable in JavaScript.\n\n// Implementation notes:\n//\n// * Node id query functions should return string ids for the nodes\n// * Edge id query functions should return an \"edgeObj\", edge object, that is\n// composed of enough information to uniquely identify an edge: {v, w, name}.\n// * Internally we use an \"edgeId\", a stringified form of the edgeObj, to\n// reference edges. This is because we need a performant way to look these\n// edges up and, object properties, which have string keys, are the closest\n// we're going to get to a performant hashtable in JavaScript.\n\n/**\n * @typedef {object} GraphOptions\n * @property {boolean | undefined} [directed] - set to `true` to get a\n * directed graph and `false` to get an undirected graph.\n * An undirected graph does not treat the order of nodes in an edge as\n * significant.\n * In other words, `g.edge(\"a\", \"b\") === g.edge(\"b\", \"a\")` for\n * an undirected graph.\n * Default: `true`\n * @property {boolean | undefined} [multigraph] - set to `true` to allow a\n * graph to have multiple edges between the same pair of nodes.\n * Default: `false`.\n * @property {boolean | undefined} [compound] - set to `true` to allow a\n * graph to have compound nodes - nodes which can be the parent of other\n * nodes.\n * Default: `false`.\n */\n\n/**\n * Graphlib has a single graph type: {@link Graph}. To create a new instance:\n *\n * ```js\n * var g = new Graph();\n * ```\n *\n * By default this will create a directed graph that does not allow multi-edges\n * or compound nodes.\n * The following options can be used when constructing a new graph:\n *\n * * {@link GraphOptions#directed}: set to `true` to get a directed graph and `false` to get an\n * undirected graph.\n * An undirected graph does not treat the order of nodes in an edge as\n * significant. In other words,\n * `g.edge(\"a\", \"b\") === g.edge(\"b\", \"a\")` for an undirected graph.\n * Default: `true`.\n * * {@link GraphOptions#multigraph}: set to `true` to allow a graph to have multiple edges\n * between the same pair of nodes. Default: `false`.\n * * {@link GraphOptions#compound}: set to `true` to allow a graph to have compound nodes -\n * nodes which can be the parent of other nodes. Default: `false`.\n *\n * To set the options, pass in an options object to the `Graph` constructor.\n * For example, to create a directed compound multigraph:\n *\n * ```js\n * var g = new Graph({ directed: true, compound: true, multigraph: true });\n * ```\n *\n * ### Node and Edge Representation\n *\n * In graphlib, a node is represented by a user-supplied String id.\n * All node related functions use this String id as a way to uniquely identify\n * the node. Here is an example of interacting with nodes:\n *\n * ```js\n * var g = new Graph();\n * g.setNode(\"my-id\", \"my-label\");\n * g.node(\"my-id\"); // returns \"my-label\"\n * ```\n *\n * Edges in graphlib are identified by the nodes they connect. For example:\n *\n * ```js\n * var g = new Graph();\n * g.setEdge(\"source\", \"target\", \"my-label\");\n * g.edge(\"source\", \"target\"); // returns \"my-label\"\n * ```\n *\n * However, we need a way to uniquely identify an edge in a single object for\n * various edge queries (e.g. {@link Graph#outEdges}).\n * We use {@link EdgeObj}s for this purpose.\n * They consist of the following properties:\n *\n * * {@link EdgeObj#v}: the id of the source or tail node of an edge\n * * {@link EdgeObj#w}: the id of the target or head node of an edge\n * * {@link EdgeObj#name} (optional): the name that uniquely identifies a multiedge.\n *\n * Any edge function that takes an edge id will also work with an {@link EdgeObj}. For example:\n *\n * ```js\n * var g = new Graph();\n * g.setEdge(\"source\", \"target\", \"my-label\");\n * g.edge({ v: \"source\", w: \"target\" }); // returns \"my-label\"\n * ```\n *\n * ### Multigraphs\n *\n * A [multigraph](https://en.wikipedia.org/wiki/Multigraph) is a graph that can\n * have more than one edge between the same pair of nodes.\n * By default graphlib graphs are not multigraphs, but a multigraph can be\n * constructed by setting the {@link GraphOptions#multigraph} property to true:\n *\n * ```js\n * var g = new Graph({ multigraph: true });\n * ```\n *\n * With multiple edges between two nodes we need some way to uniquely identify\n * each edge. We call this the {@link EdgeObj#name} property.\n * Here's an example of creating a couple of edges between the same nodes:\n *\n * ```js\n * var g = new Graph({ multigraph: true });\n * g.setEdge(\"a\", \"b\", \"edge1-label\", \"edge1\");\n * g.setEdge(\"a\", \"b\", \"edge2-label\", \"edge2\");\n * g.edge(\"a\", \"b\", \"edge1\"); // returns \"edge1-label\"\n * g.edge(\"a\", \"b\", \"edge2\"); // returns \"edge2-label\"\n * g.edges(); // returns [{ v: \"a\", w: \"b\", name: \"edge1\" },\n * // { v: \"a\", w: \"b\", name: \"edge2\" }]\n * ```\n *\n * A multigraph still allows an edge with no name to be created:\n *\n * ```js\n * var g = new Graph({ multigraph: true });\n * g.setEdge(\"a\", \"b\", \"my-label\");\n * g.edge({ v: \"a\", w: \"b\" }); // returns \"my-label\"\n * ```\n *\n * ### Compound Graphs\n *\n * A compound graph is one where a node can be the parent of other nodes.\n * The child nodes form a \"subgraph\".\n * Here's an example of constructing and interacting with a compound graph:\n *\n * ```js\n * var g = new Graph({ compound: true });\n * g.setParent(\"a\", \"parent\");\n * g.setParent(\"b\", \"parent\");\n * g.parent(\"a\"); // returns \"parent\"\n * g.parent(\"b\"); // returns \"parent\"\n * g.parent(\"parent\"); // returns undefined\n * ```\n *\n * ### Default Labels\n *\n * When a node or edge is created without a label, a default label can be assigned.\n * See {@link setDefaultNodeLabel} and {@link setDefaultEdgeLabel}.\n *\n * @template [GraphLabel=any] - Label of the graph.\n * @template [NodeLabel=any] - Label of a node.\n * Even though this is a \"label\", this could be any type that the user requires\n * (and may need to be an object for some layout/ranking algorithms in dagre).\n * @template [EdgeLabel=any] - Label of an edge.\n * Even though this is a \"label\", this could be any type that the user requires,\n * (and may need to be a object for ranking in dagre).\n */\nexport class Graph {\n /**\n * @param {GraphOptions} [opts] - Graph options.\n */\n constructor(opts = {}) {\n /**\n * @type {boolean}\n * @private\n */\n this._isDirected = Object.prototype.hasOwnProperty.call(opts, 'directed')\n ? opts.directed\n : true;\n /**\n * @type {boolean}\n * @private\n */\n this._isMultigraph = Object.prototype.hasOwnProperty.call(opts, 'multigraph')\n ? opts.multigraph\n : false;\n /**\n * @type {boolean}\n * @private\n */\n this._isCompound = Object.prototype.hasOwnProperty.call(opts, 'compound')\n ? opts.compound\n : false;\n\n /**\n * @type {GraphLabel | undefined}\n * Label for the graph itself\n */\n this._label = undefined;\n\n /**\n * Default label to be set when creating a new node.\n *\n * @private\n * @type {(v: NodeID | number) => NodeLabel}\n */\n this._defaultNodeLabelFn = _.constant(undefined);\n\n /**\n * Default label to be set when creating a new edge\n *\n * @private\n * @type {(v: NodeID, w: NodeID, name: string | undefined) => EdgeLabel}\n */\n this._defaultEdgeLabelFn = _.constant(undefined);\n\n /**\n * @type {Record<NodeID, NodeLabel>}\n * @private\n *\n * v -> label\n */\n this._nodes = {};\n\n if (this._isCompound) {\n /**\n * @type {Record<NodeID, NodeID>}\n * @private\n * v -> parent\n */\n this._parent = {};\n\n /**\n * @type {Record<NodeID, Record<NodeID, true>>}\n * @private\n * v -> children\n */\n this._children = {};\n this._children[GRAPH_NODE] = {};\n }\n\n /**\n * @type {Record<NodeID, Record<EdgeID, EdgeObj>>}\n * @private\n * v -> edgeObj\n */\n this._in = {};\n\n /**\n * @type {Record<NodeID, Record<NodeID, number>>}\n * @private\n * u -> v -> Number\n */\n this._preds = {};\n\n /**\n * @type {Record<NodeID, Record<EdgeID, EdgeObj>>}\n * @private\n * v -> edgeObj\n */\n this._out = {};\n\n /**\n * @type {Record<NodeID, Record<NodeID, number>>}\n * @private\n * v -> w -> Number\n */\n this._sucs = {};\n\n /**\n * @type {Record<EdgeID, EdgeObj>}\n * @private\n * e -> edgeObj\n */\n this._edgeObjs = {};\n\n /**\n * @type {Record<EdgeID, EdgeLabel>}\n * @private\n * e -> label\n */\n this._edgeLabels = {};\n }\n\n /* === Graph functions ========= */\n\n /**\n *\n * @returns {boolean} `true` if the graph is [directed](https://en.wikipedia.org/wiki/Directed_graph).\n * A directed graph treats the order of nodes in an edge as significant whereas an\n * [undirected](https://en.wikipedia.org/wiki/Graph_(mathematics)#Undirected_graph)\n * graph does not.\n * This example demonstrates the difference:\n *\n * @example\n *\n * ```js\n * var directed = new Graph({ directed: true });\n * directed.setEdge(\"a\", \"b\", \"my-label\");\n * directed.edge(\"a\", \"b\"); // returns \"my-label\"\n * directed.edge(\"b\", \"a\"); // returns undefined\n *\n * var undirected = new Graph({ directed: false });\n * undirected.setEdge(\"a\", \"b\", \"my-label\");\n * undirected.edge(\"a\", \"b\"); // returns \"my-label\"\n * undirected.edge(\"b\", \"a\"); // returns \"my-label\"\n * ```\n */\n isDirected() {\n return this._isDirected;\n }\n /**\n * @returns {boolean} `true` if the graph is a multigraph.\n */\n isMultigraph() {\n return this._isMultigraph;\n }\n /**\n * @returns {boolean} `true` if the graph is compound.\n */\n isCompound() {\n return this._isCompound;\n }\n\n /**\n * Sets the label for the graph to `label`.\n *\n * @param {GraphLabel} label - Label for the graph.\n * @returns {this}\n */\n setGraph(label) {\n this._label = label;\n return this;\n }\n\n /**\n * @returns {GraphLabel | undefined} the currently assigned label for the graph.\n * If no label has been assigned, returns `undefined`.\n *\n * @example\n *\n * ```js\n * var g = new Graph();\n * g.graph(); // returns undefined\n * g.setGraph(\"graph-label\");\n * g.graph(); // returns \"graph-label\"\n * ```\n */\n graph() {\n return this._label;\n }\n /* === Node functions ========== */\n\n /**\n * Sets a new default value that is assigned to nodes that are created without\n * a label.\n *\n * @param {typeof this._defaultNodeLabelFn | NodeLabel} newDefault - If a function,\n * it is called with the id of the node being created.\n * Otherwise, it is assigned as the label directly.\n * @returns {this}\n */\n setDefaultNodeLabel(newDefault) {\n if (!_.isFunction(newDefault)) {\n newDefault = _.constant(newDefault);\n }\n this._defaultNodeLabelFn = newDefault;\n return this;\n }\n\n /**\n * @returns {number} the number of nodes in the graph.\n */\n nodeCount() {\n return this._nodeCount;\n }\n\n /**\n * @returns {NodeID[]} the ids of the nodes in the graph.\n *\n * @remarks\n * Use {@link node()} to get the label for each node.\n * Takes `O(|V|)` time.\n */\n nodes() {\n return _.keys(this._nodes);\n }\n /**\n * @returns {NodeID[]} those nodes in the graph that have no in-edges.\n * @remarks Takes `O(|V|)` time.\n */\n sources() {\n var self = this;\n return _.filter(this.nodes(), function (v) {\n return _.isEmpty(self._in[v]);\n });\n }\n /**\n * @returns {NodeID[]} those nodes in the graph that have no out-edges.\n * @remarks Takes `O(|V|)` time.\n */\n sinks() {\n var self = this;\n return _.filter(this.nodes(), function (v) {\n return _.isEmpty(self._out[v]);\n });\n }\n\n /**\n * Invokes setNode method for each node in `vs` list.\n *\n * @param {Collection<NodeID | number>} vs - List of node IDs to create/set.\n * @param {NodeLabel} [value] - If set, update all nodes with this value.\n * @returns {this}\n * @remarks Complexity: O(|names|).\n */\n setNodes(vs, value) {\n var args = arguments;\n var self = this;\n _.each(vs, function (v) {\n if (args.length > 1) {\n self.setNode(v, value);\n } else {\n self.setNode(v);\n }\n });\n return this;\n }\n\n /**\n * Creates or updates the value for the node `v` in the graph.\n *\n * @param {NodeID | number} v - ID of the node to create/set.\n * @param {NodeLabel} [value] - If supplied, it is set as the value for the node.\n * If not supplied and the node was created by this call then\n * {@link setDefaultNodeLabel} will be used to set the node's value.\n * @returns {this} the graph, allowing this to be chained with other functions.\n * @remarks Takes `O(1)` time.\n */\n setNode(v, value) {\n if (Object.prototype.hasOwnProperty.call(this._nodes, v)) {\n if (arguments.length > 1) {\n this._nodes[v] = value;\n }\n return this;\n }\n\n this._nodes[v] = arguments.length > 1 ? value : this._defaultNodeLabelFn(v);\n if (this._isCompound) {\n this._parent[v] = GRAPH_NODE;\n this._children[v] = {};\n this._children[GRAPH_NODE][v] = true;\n }\n this._in[v] = {};\n this._preds[v] = {};\n this._out[v] = {};\n this._sucs[v] = {};\n ++this._nodeCount;\n return this;\n }\n\n /**\n * Gets the label of node with specified name.\n *\n * @param {NodeID | number} v - Node ID.\n * @returns {NodeLabel | undefined} the label assigned to the node with the id `v`\n * if it is in the graph.\n * Otherwise returns `undefined`.\n * @remarks Takes `O(1)` time.\n */\n node(v) {\n return this._nodes[v];\n }\n\n /**\n * Detects whether graph has a node with specified name or not.\n *\n * @param {NodeID | number} v - Node ID.\n * @returns {boolean} Returns `true` the graph has a node with the id.\n * @remarks Takes `O(1)` time.\n */\n hasNode(v) {\n return Object.prototype.hasOwnProperty.call(this._nodes, v);\n }\n\n /**\n * Remove the node with the id `v` in the graph or do nothing if the node is\n * not in the graph.\n *\n * If the node was removed this function also removes any incident edges.\n *\n * @param {NodeID | number} v - Node ID to remove.\n * @returns {this} the graph, allowing this to be chained with other functions.\n * @remarks Takes `O(|E|)` time.\n */\n removeNode(v) {\n if (Object.prototype.hasOwnProperty.call(this._nodes, v)) {\n var removeEdge = (e) => this.removeEdge(this._edgeObjs[e]);\n delete this._nodes[v];\n if (this._isCompound) {\n this._removeFromParentsChildList(v);\n delete this._parent[v];\n _.each(this.children(v), (child) => {\n this.setParent(child);\n });\n delete this._children[v];\n }\n _.each(_.keys(this._in[v]), removeEdge);\n delete this._in[v];\n delete this._preds[v];\n _.each(_.keys(this._out[v]), removeEdge);\n delete this._out[v];\n delete this._sucs[v];\n --this._nodeCount;\n }\n return this;\n }\n\n /**\n * Sets the parent for `v` to `parent` if it is defined or removes the parent\n * for `v` if `parent` is undefined.\n *\n * @param {NodeID | number} v - Node ID to set the parent for.\n * @param {NodeID | number} [parent] - Parent node ID. If not defined, removes the parent.\n * @returns {this} the graph, allowing this to be chained with other functions.\n * @throws if the graph is not compound.\n * @throws if setting the parent would create a cycle.\n * @remarks Takes `O(1)` time.\n */\n setParent(v, parent) {\n if (!this._isCompound) {\n throw new Error('Cannot set parent in a non-compound graph');\n }\n\n if (_.isUndefined(parent)) {\n parent = GRAPH_NODE;\n } else {\n // Coerce parent to string\n parent += '';\n for (var ancestor = parent; !_.isUndefined(ancestor); ancestor = this.parent(ancestor)) {\n if (ancestor === v) {\n throw new Error('Setting ' + parent + ' as parent of ' + v + ' would create a cycle');\n }\n }\n\n this.setNode(parent);\n }\n\n this.setNode(v);\n this._removeFromParentsChildList(v);\n // @ts-expect-error -- We coerced parent to a string above\n this._parent[v] = parent;\n this._children[parent][v] = true;\n return this;\n }\n\n /**\n * @private\n * @param {NodeID | number} v - Node ID.\n */\n _removeFromParentsChildList(v) {\n delete this._children[this._parent[v]][v];\n }\n\n /**\n * Get parent node for node `v`.\n *\n * @param {NodeID | number} v - Node ID.\n * @returns {NodeID | undefined} the node that is a parent of node `v`\n * or `undefined` if node `v` does not have a parent or is not a member of\n * the graph.\n * Always returns `undefined` for graphs that are not compound.\n * @remarks Takes `O(1)` time.\n */\n parent(v) {\n if (this._isCompound) {\n var parent = this._parent[v];\n if (parent !== GRAPH_NODE) {\n return parent;\n }\n }\n }\n\n /**\n * Gets list of direct children of node v.\n *\n * @param {NodeID | number} [v] - Node ID. If not specified, gets nodes\n * with no parent (top-level nodes).\n * @returns {NodeID[] | undefined} all nodes that are children of node `v` or\n * `undefined` if node `v` is not in the graph.\n * Always returns `[]` for graphs that are not compound.\n * @remarks Takes `O(|V|)` time.\n */\n children(v) {\n if (_.isUndefined(v)) {\n v = GRAPH_NODE;\n }\n\n if (this._isCompound) {\n var children = this._children[v];\n if (children) {\n return _.keys(children);\n }\n } else if (v === GRAPH_NODE) {\n return this.nodes();\n } else if (this.hasNode(v)) {\n return [];\n }\n }\n\n /**\n * @param {NodeID | number} v - Node ID.\n * @returns {NodeID[] | undefined} all nodes that are predecessors of the\n * specified node or `undefined` if node `v` is not in the graph.\n * @remarks\n * Behavior is undefined for undirected graphs - use {@link neighbors} instead.\n * Takes `O(|V|)` time.\n */\n predecessors(v) {\n var predsV = this._preds[v];\n if (predsV) {\n return _.keys(predsV);\n }\n }\n\n /**\n * @param {NodeID | number} v - Node ID.\n * @returns {NodeID[] | undefined} all nodes that are successors of the\n * specified node or `undefined` if node `v` is not in the graph.\n * @remarks\n * Behavior is undefined for undirected graphs - use {@link neighbors} instead.\n * Takes `O(|V|)` time.\n */\n successors(v) {\n var sucsV = this._sucs[v];\n if (sucsV) {\n return _.keys(sucsV);\n }\n }\n\n /**\n * @param {NodeID | number} v - Node ID.\n * @returns {NodeID[] | undefined} all nodes that are predecessors or\n * successors of the specified node\n * or `undefined` if node `v` is not in the graph.\n * @remarks Takes `O(|V|)` time.\n */\n neighbors(v) {\n var preds = this.predecessors(v);\n if (preds) {\n return _.union(preds, this.successors(v));\n }\n }\n\n /**\n * @param {NodeID | number} v - Node ID.\n * @returns {boolean} True if the node is a leaf (has no successors), false otherwise.\n */\n isLeaf(v) {\n var neighbors;\n if (this.isDirected()) {\n neighbors = this.successors(v);\n } else {\n neighbors = this.neighbors(v);\n }\n return neighbors.length === 0;\n }\n\n /**\n * Creates new graph with nodes filtered via `filter`.\n * Edges incident to rejected node\n * are also removed.\n * \n * In case of compound graph, if parent is rejected by `filter`,\n * than all its children are rejected too.\n\n * @param {(v: NodeID) => boolean} filter - Function that returns `true` for nodes to keep.\n * @returns {Graph<GraphLabel, NodeLabel, EdgeLabel>} A new graph containing only the nodes for which `filter` returns `true`.\n * @remarks Average-case complexity: O(|E|+|V|).\n */\n filterNodes(filter) {\n /**\n * @type {Graph<GraphLabel, NodeLabel, EdgeLabel>}\n */\n // @ts-expect-error\n var copy = new this.constructor({\n directed: this._isDirected,\n multigraph: this._isMultigraph,\n compound: this._isCompound,\n });\n\n copy.setGraph(this.graph());\n\n var self = this;\n _.each(this._nodes, function (value, v) {\n if (filter(v)) {\n copy.setNode(v, value);\n }\n });\n\n _.each(this._edgeObjs, function (e) {\n if (copy.hasNode(e.v) && copy.hasNode(e.w)) {\n copy.setEdge(e, self.edge(e));\n }\n });\n\n var parents = {};\n function findParent(v) {\n var parent = self.parent(v);\n if (parent === undefined || copy.hasNode(parent)) {\n parents[v] = parent;\n return parent;\n } else if (parent in parents) {\n return parents[parent];\n } else {\n return findParent(parent);\n }\n }\n\n if (this._isCompound) {\n _.each(copy.nodes(), function (v) {\n copy.setParent(v, findParent(v));\n });\n }\n\n return copy;\n }\n\n /* === Edge functions ========== */\n\n /**\n * Sets a new default value that is assigned to edges that are created without\n * a label.\n *\n * @param {typeof this._defaultEdgeLabelFn | EdgeLabel} newDefault - If a function,\n * it is called with the parameters `(v, w, name)`.\n * Otherwise, it is assigned as the label directly.\n * @returns {this}\n */\n setDefaultEdgeLabel(newDefault) {\n if (!_.isFunction(newDefault)) {\n newDefault = _.constant(newDefault);\n }\n this._defaultEdgeLabelFn = newDefault;\n return this;\n }\n\n /**\n * @returns {number} the number of edges in the graph.\n * @remarks Complexity: O(1).\n */\n edgeCount() {\n return this._edgeCount;\n }\n\n /**\n * Gets edges of the graph.\n *\n * @returns {EdgeObj[]} the {@link EdgeObj} for each edge in the graph.\n *\n * @remarks\n * In case of compound graph subgraphs are not considered.\n * Use {@link edge()} to get the label for each edge.\n * Takes `O(|E|)` time.\n */\n edges() {\n return _.values(this._edgeObjs);\n }\n\n /**\n * Establish an edges path over the nodes in nodes list.\n *\n * If some edge is already exists, it will update its label, otherwise it will\n * create an edge between pair of nodes with label provided or default label\n * if no label provided.\n *\n * @param {Collection<NodeID>} vs - List of node IDs to create edges between.\n * @param {EdgeLabel} [value] - If set, update all edges with this value.\n * @returns {this}\n * @remarks Complexity: O(|nodes|).\n */\n setPath(vs, value) {\n var self = this;\n var args = arguments;\n _.reduce(vs, function (v, w) {\n if (args.length > 1) {\n self.setEdge(v, w, value);\n } else {\n self.setEdge(v, w);\n }\n return w;\n });\n return this;\n }\n\n /**\n * Creates or updates the label for the edge (`v`, `w`) with the optionally\n * supplied `name`.\n *\n * @overload\n * @param {EdgeObj} arg0 - Edge object.\n * @param {EdgeLabel} [value] - If supplied, it is set as the label for the edge.\n * If not supplied and the edge was created by this call then\n * {@link setDefaultEdgeLabel} will be used to assign the edge's label.\n * @returns {this} the graph, allowing this to be chained with other functions.\n * @remarks Takes `O(1)` time.\n */\n /**\n * Creates or updates the label for the edge (`v`, `w`) with the optionally\n * supplied `name`.\n *\n * @overload\n * @param {NodeID | number} v - Source node ID. Number values will be coerced to strings.\n * @param {NodeID | number} w - Target node ID. Number values will be coerced to strings.\n * @param {EdgeLabel} [value] - If supplied, it is set as the label for the edge.\n * If not supplied and the edge was created by this call then\n * {@link setDefaultEdgeLabel} will be used to assign the edge's label.\n * @param {string | number} [name] - Edge name. Only useful with multigraphs.\n * @returns {this} the graph, allowing this to be chained with other functions.\n * @remarks Takes `O(1)` time.\n */\n setEdge() {\n var v, w, name, value;\n var valueSpecified = false;\n var arg0 = arguments[0];\n\n if (typeof arg0 === 'object' && arg0 !== null && 'v' in arg0) {\n v = arg0.v;\n w = arg0.w;\n name = arg0.name;\n if (arguments.length === 2) {\n value = arguments[1];\n valueSpecified = true;\n }\n } else {\n v = arg0;\n w = arguments[1];\n name = arguments[3];\n if (arguments.length > 2) {\n value = arguments[2];\n valueSpecified = true;\n }\n }\n\n v = '' + v;\n w = '' + w;\n if (!_.isUndefined(name)) {\n name = '' + name;\n }\n\n var e = edgeArgsToId(this._isDirected, v, w, name);\n if (Object.prototype.hasOwnProperty.call(this._edgeLabels, e)) {\n if (valueSpecified) {\n this._edgeLabels[e] = value;\n }\n return this;\n }\n\n if (!_.isUndefined(name) && !this._isMultigraph) {\n throw new Error('Cannot set a named edge when isMultigraph = false');\n }\n\n // It didn't exist, so we need to create it.\n // First ensure the nodes exist.\n this.setNode(v);\n this.setNode(w);\n\n this._edgeLabels[e] = valueSpecified ? value : this._defaultEdgeLabelFn(v, w, name);\n\n var edgeObj = edgeArgsToObj(this._isDirected, v, w, name);\n // Ensure we add undirected edges in a consistent way.\n v = edgeObj.v;\n w = edgeObj.w;\n\n Object.freeze(edgeObj);\n this._edgeObjs[e] = edgeObj;\n incrementOrInitEntry(this._preds[w], v);\n incrementOrInitEntry(this._sucs[v], w);\n this._in[w][e] = edgeObj;\n this._out[v][e] = edgeObj;\n this._edgeCount++;\n return this;\n }\n\n /**\n * Gets the label for the specified edge.\n *\n * @overload\n * @param {EdgeObj} v - Edge object.\n * @returns {EdgeLabel | undefined} the label for the edge (`v`, `w`) if the\n * graph has an edge between `v` and `w` with the optional `name`.\n * Returned `undefined` if there is no such edge in the graph.\n * @remarks\n * `v` and `w` can be interchanged for undirected graphs.\n * Takes `O(1)` time.\n */\n /**\n * Gets the label for the specified edge.\n *\n * @overload\n * @param {NodeID | number} v - Source node ID.\n * @param {NodeID | number} w - Target node ID.\n * @param {string | number} [name] - Edge name. Only useful with multigraphs.\n * @returns {EdgeLabel | undefined} the label for the edge (`v`, `w`) if the\n * graph has an edge between `v` and `w` with the optional `name`.\n * Returned `undefined` if there is no such edge in the graph.\n * @remarks\n * `v` and `w` can be interchanged for undirected graphs.\n * Takes `O(1)` time.\n */\n edge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n return this._edgeLabels[e];\n }\n\n /**\n * Detects whether the graph contains specified edge or not.\n *\n * @overload\n * @param {EdgeObj} v - Edge object.\n * @returns {boolean} `true` if the graph has an edge between `v` and `w`\n * with the optional `name`.\n * @remarks\n * `v` and `w` can be interchanged for undirected graphs.\n * No subgraphs are considered.\n * Takes `O(1)` time.\n */\n /**\n * Detects whether the graph contains specified edge or not.\n *\n * @overload\n * @param {NodeID | number} v - Source node ID.\n * @param {NodeID | number} w - Target node ID.\n * @param {string | number} [name] - Edge name. Only useful with multigraphs.\n * @returns {boolean} `true` if the graph has an edge between `v` and `w`\n * with the optional `name`.\n * @remarks\n * `v` and `w` can be interchanged for undirected graphs.\n * No subgraphs are considered.\n * Takes `O(1)` time.\n */\n hasEdge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n return Object.prototype.hasOwnProperty.call(this._edgeLabels, e);\n }\n\n /**\n * Removes the edge (`v`, `w`) if the graph has an edge between `v` and `w`\n * with the optional `name`. If not this function does nothing.\n *\n * @overload\n * @param {EdgeObj} v - Edge object.\n * @returns {this}\n * @remarks\n * `v` and `w` can be interchanged for undirected graphs.\n * No subgraphs are considered.\n * Takes `O(1)` time.\n */\n /**\n * Removes the edge (`v`, `w`) if the graph has an edge between `v` and `w`\n * with the optional `name`. If not this function does nothing.\n *\n * @overload\n * @param {NodeID | number} v - Source node ID.\n * @param {NodeID | number} w - Target node ID.\n * @param {string | number} [name] - Edge name. Only useful with multigraphs.\n * @returns {this}\n * @remarks\n * `v` and `w` can be interchanged for undirected graphs.\n * Takes `O(1)` time.\n */\n removeEdge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n var edge = this._edgeObjs[e];\n if (edge) {\n v = edge.v;\n w = edge.w;\n delete this._edgeLabels[e];\n delete this._edgeObjs[e];\n decrementOrRemoveEntry(this._preds[w], v);\n decrementOrRemoveEntry(this._sucs[v], w);\n delete this._in[w][e];\n delete this._out[v][e];\n this._edgeCount--;\n }\n return this;\n }\n\n /**\n * @param {NodeID | number} v - Target node ID.\n * @param {NodeID | number} [u] - Optionally filters edges down to just those\n * coming from node `u`.\n * @returns {EdgeObj[] | undefined} all edges that point to the node `v`.\n * Returns `undefined` if node `v` is not in the graph.\n * @remarks\n * Behavior is undefined for undirected graphs - use {@link nodeEdges} instead.\n * Takes `O(|E|)` time.\n */\n inEdges(v, u) {\n var inV = this._in[v];\n if (inV) {\n var edges = _.values(inV);\n if (!u) {\n return edges;\n }\n return _.filter(edges, function (edge) {\n return edge.v === u;\n });\n }\n }\n\n /**\n * @param {NodeID | number} v - Target node ID.\n * @param {NodeID | number} [w] - Optionally filters edges down to just those\n * that point to `w`.\n * @returns {EdgeObj[] | undefined} all edges that point to the node `v`.\n * Returns `undefined` if node `v` is not in the graph.\n * @remarks\n * Behavior is undefined for undirected graphs - use {@link nodeEdges} instead.\n * Takes `O(|E|)` time.\n */\n outEdges(v, w) {\n var outV = this._out[v];\n if (outV) {\n var edges = _.values(outV);\n if (!w) {\n return edges;\n }\n return _.filter(edges, function (edge) {\n return edge.w === w;\n });\n }\n }\n\n /**\n * @param {NodeID | number} v - Target Node ID.\n * @param {NodeID | number} [w] - If set, filters those edges down to just\n * those between nodes `v` and `w` regardless of direction\n * @returns {EdgeObj[] | undefined} all edges to or from node `v` regardless\n * of direction. Returns `undefined` if node `v` is not in the graph.\n * @remarks Takes `O(|E|)` time.\n */\n nodeEdges(v, w) {\n var inEdges = this.inEdges(v, w);\n if (inEdges) {\n return inEdges.concat(this.outEdges(v, w));\n }\n }\n}\n\n/* Number of nodes in the graph. Should only be changed by the implementation. */\nGraph.prototype._nodeCount = 0;\n\n/* Number of edges in the graph. Should only be changed by the implementation. */\nGraph.prototype._edgeCount = 0;\n\n/**\n * @param {Record<NodeID, number>} map - Object mapping node IDs to counts.\n * @param {NodeID | number} k - Node ID.\n */\nfunction incrementOrInitEntry(map, k) {\n if (map[k]) {\n map[k]++;\n } else {\n map[k] = 1;\n }\n}\n\n/**\n * @param {Record<NodeID, number>} map - Object mapping node IDs to counts.\n * @param {NodeID | number} k - Node ID.\n */\nfunction decrementOrRemoveEntry(map, k) {\n if (!--map[k]) {\n delete map[k];\n }\n}\n\n/**\n * @param {boolean} isDirected - If `false`, sorts v and w to ensure a consistent ID.\n * @param {EdgeObj['v'] | number} v_ - Source node ID.\n * @param {EdgeObj['w'] | number} w_ - Target node ID.\n * @param {EdgeObj['name']} [name] - Edge name (for multiple edges between the same nodes).\n * @returns {EdgeID} Unique ID for the edge.\n */\nfunction edgeArgsToId(isDirected, v_, w_, name) {\n var v = '' + v_;\n var w = '' + w_;\n if (!isDirected && v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n return v + EDGE_KEY_DELIM + w + EDGE_KEY_DELIM + (_.isUndefined(name) ? DEFAULT_EDGE_NAME : name);\n}\n\n/**\n * @param {boolean} isDirected - If `false`, sorts v and w to ensure a consistent ID.\n * @param {EdgeObj['v'] | number} v_ - Source node ID.\n * @param {EdgeObj['w'] | number} w_ - Target node ID.\n * @param {EdgeObj['name']} [name] - Edge name (for multiple edges between the same nodes).\n * @returns {EdgeObj}\n */\nfunction edgeArgsToObj(isDirected, v_, w_, name) {\n var v = '' + v_;\n var w = '' + w_;\n if (!isDirected && v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n var edgeObj = { v: v, w: w };\n if (name) {\n edgeObj.name = name;\n }\n return edgeObj;\n}\n\n/**\n * @param {boolean} isDirected - If `false`, sorts v and w to ensure a consistent ID.\n * @param {EdgeObj} edgeObj - Edge object.\n * @returns {EdgeID} Unique ID for the edge.\n */\nfunction edgeObjToId(isDirected, edgeObj) {\n return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name);\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"mappings":"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"}
1
+ {"version":3,"file":"graphlib-B76sPwTV.js","names":["boolTag","dateTag","mapTag","numberTag","regexpTag","setTag","stringTag","symbolTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","mapTag","getTag","setTag","getTag","getTag","_.constant","_.isFunction","_.keys","_.filter","_.isEmpty","_.isUndefined","_.union","_.values"],"sources":["../../../../node_modules/lodash-es/_baseAssign.js","../../../../node_modules/lodash-es/_baseAssignIn.js","../../../../node_modules/lodash-es/_copySymbols.js","../../../../node_modules/lodash-es/_getSymbolsIn.js","../../../../node_modules/lodash-es/_copySymbolsIn.js","../../../../node_modules/lodash-es/_getAllKeysIn.js","../../../../node_modules/lodash-es/_initCloneArray.js","../../../../node_modules/lodash-es/_cloneDataView.js","../../../../node_modules/lodash-es/_cloneRegExp.js","../../../../node_modules/lodash-es/_cloneSymbol.js","../../../../node_modules/lodash-es/_initCloneByTag.js","../../../../node_modules/lodash-es/_baseIsMap.js","../../../../node_modules/lodash-es/isMap.js","../../../../node_modules/lodash-es/_baseIsSet.js","../../../../node_modules/lodash-es/isSet.js","../../../../node_modules/lodash-es/_baseClone.js","../../../../node_modules/lodash-es/_baseValues.js","../../../../node_modules/lodash-es/values.js","../../../../node_modules/lodash-es/isUndefined.js","../../../../node_modules/lodash-es/union.js","../../../../node_modules/dagre-d3-es/src/graphlib/graph.js"],"sourcesContent":["import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import arrayMap from './_arrayMap.js';\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nexport default baseValues;\n","import baseValues from './_baseValues.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nexport default values;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","import baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport baseUniq from './_baseUniq.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\nvar union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n});\n\nexport default union;\n","import * as _ from 'lodash-es';\n\nvar DEFAULT_EDGE_NAME = '\\x00';\nvar GRAPH_NODE = '\\x00';\nvar EDGE_KEY_DELIM = '\\x01';\n\n/**\n * @typedef {string} NodeID ID of a node.\n */\n\n/**\n * @typedef {`${string}${typeof EDGE_KEY_DELIM}${string}${typeof EDGE_KEY_DELIM}${string}`} EdgeID ID of an edge.\n * @internal - All public APIs use {@link EdgeObj} instead to refer to edges.\n */\n\n/**\n * @typedef {object} EdgeObj\n * @property {NodeID} v the id of the source or tail node of an edge\n * @property {NodeID} w the id of the target or head node of an edge\n * @property {string | number} [name] Name of the edge. Needed to uniquely identify\n * multiple edges between the same pair of nodes in a multigraph.\n */\n\n/**\n * @template {unknown} T\n * @typedef {T[] | Record<any, T>} Collection\n * Lodash object that can be iterated over with `_.each`.\n *\n * Beware, objects with `.length` are treated as arrays, see\n * https://lodash.com/docs/4.17.15#forEach\n */\n\n// Implementation notes:\n//\n// * Node id query functions should return string ids for the nodes\n// * Edge id query functions should return an \"edgeObj\", edge object, that is\n// composed of enough information to uniquely identify an edge: {v, w, name}.\n// * Internally we use an \"edgeId\", a stringified form of the edgeObj, to\n// reference edges. This is because we need a performant way to look these\n// edges up and, object properties, which have string keys, are the closest\n// we're going to get to a performant hashtable in JavaScript.\n\n// Implementation notes:\n//\n// * Node id query functions should return string ids for the nodes\n// * Edge id query functions should return an \"edgeObj\", edge object, that is\n// composed of enough information to uniquely identify an edge: {v, w, name}.\n// * Internally we use an \"edgeId\", a stringified form of the edgeObj, to\n// reference edges. This is because we need a performant way to look these\n// edges up and, object properties, which have string keys, are the closest\n// we're going to get to a performant hashtable in JavaScript.\n\n/**\n * @typedef {object} GraphOptions\n * @property {boolean | undefined} [directed] - set to `true` to get a\n * directed graph and `false` to get an undirected graph.\n * An undirected graph does not treat the order of nodes in an edge as\n * significant.\n * In other words, `g.edge(\"a\", \"b\") === g.edge(\"b\", \"a\")` for\n * an undirected graph.\n * Default: `true`\n * @property {boolean | undefined} [multigraph] - set to `true` to allow a\n * graph to have multiple edges between the same pair of nodes.\n * Default: `false`.\n * @property {boolean | undefined} [compound] - set to `true` to allow a\n * graph to have compound nodes - nodes which can be the parent of other\n * nodes.\n * Default: `false`.\n */\n\n/**\n * Graphlib has a single graph type: {@link Graph}. To create a new instance:\n *\n * ```js\n * var g = new Graph();\n * ```\n *\n * By default this will create a directed graph that does not allow multi-edges\n * or compound nodes.\n * The following options can be used when constructing a new graph:\n *\n * * {@link GraphOptions#directed}: set to `true` to get a directed graph and `false` to get an\n * undirected graph.\n * An undirected graph does not treat the order of nodes in an edge as\n * significant. In other words,\n * `g.edge(\"a\", \"b\") === g.edge(\"b\", \"a\")` for an undirected graph.\n * Default: `true`.\n * * {@link GraphOptions#multigraph}: set to `true` to allow a graph to have multiple edges\n * between the same pair of nodes. Default: `false`.\n * * {@link GraphOptions#compound}: set to `true` to allow a graph to have compound nodes -\n * nodes which can be the parent of other nodes. Default: `false`.\n *\n * To set the options, pass in an options object to the `Graph` constructor.\n * For example, to create a directed compound multigraph:\n *\n * ```js\n * var g = new Graph({ directed: true, compound: true, multigraph: true });\n * ```\n *\n * ### Node and Edge Representation\n *\n * In graphlib, a node is represented by a user-supplied String id.\n * All node related functions use this String id as a way to uniquely identify\n * the node. Here is an example of interacting with nodes:\n *\n * ```js\n * var g = new Graph();\n * g.setNode(\"my-id\", \"my-label\");\n * g.node(\"my-id\"); // returns \"my-label\"\n * ```\n *\n * Edges in graphlib are identified by the nodes they connect. For example:\n *\n * ```js\n * var g = new Graph();\n * g.setEdge(\"source\", \"target\", \"my-label\");\n * g.edge(\"source\", \"target\"); // returns \"my-label\"\n * ```\n *\n * However, we need a way to uniquely identify an edge in a single object for\n * various edge queries (e.g. {@link Graph#outEdges}).\n * We use {@link EdgeObj}s for this purpose.\n * They consist of the following properties:\n *\n * * {@link EdgeObj#v}: the id of the source or tail node of an edge\n * * {@link EdgeObj#w}: the id of the target or head node of an edge\n * * {@link EdgeObj#name} (optional): the name that uniquely identifies a multiedge.\n *\n * Any edge function that takes an edge id will also work with an {@link EdgeObj}. For example:\n *\n * ```js\n * var g = new Graph();\n * g.setEdge(\"source\", \"target\", \"my-label\");\n * g.edge({ v: \"source\", w: \"target\" }); // returns \"my-label\"\n * ```\n *\n * ### Multigraphs\n *\n * A [multigraph](https://en.wikipedia.org/wiki/Multigraph) is a graph that can\n * have more than one edge between the same pair of nodes.\n * By default graphlib graphs are not multigraphs, but a multigraph can be\n * constructed by setting the {@link GraphOptions#multigraph} property to true:\n *\n * ```js\n * var g = new Graph({ multigraph: true });\n * ```\n *\n * With multiple edges between two nodes we need some way to uniquely identify\n * each edge. We call this the {@link EdgeObj#name} property.\n * Here's an example of creating a couple of edges between the same nodes:\n *\n * ```js\n * var g = new Graph({ multigraph: true });\n * g.setEdge(\"a\", \"b\", \"edge1-label\", \"edge1\");\n * g.setEdge(\"a\", \"b\", \"edge2-label\", \"edge2\");\n * g.edge(\"a\", \"b\", \"edge1\"); // returns \"edge1-label\"\n * g.edge(\"a\", \"b\", \"edge2\"); // returns \"edge2-label\"\n * g.edges(); // returns [{ v: \"a\", w: \"b\", name: \"edge1\" },\n * // { v: \"a\", w: \"b\", name: \"edge2\" }]\n * ```\n *\n * A multigraph still allows an edge with no name to be created:\n *\n * ```js\n * var g = new Graph({ multigraph: true });\n * g.setEdge(\"a\", \"b\", \"my-label\");\n * g.edge({ v: \"a\", w: \"b\" }); // returns \"my-label\"\n * ```\n *\n * ### Compound Graphs\n *\n * A compound graph is one where a node can be the parent of other nodes.\n * The child nodes form a \"subgraph\".\n * Here's an example of constructing and interacting with a compound graph:\n *\n * ```js\n * var g = new Graph({ compound: true });\n * g.setParent(\"a\", \"parent\");\n * g.setParent(\"b\", \"parent\");\n * g.parent(\"a\"); // returns \"parent\"\n * g.parent(\"b\"); // returns \"parent\"\n * g.parent(\"parent\"); // returns undefined\n * ```\n *\n * ### Default Labels\n *\n * When a node or edge is created without a label, a default label can be assigned.\n * See {@link setDefaultNodeLabel} and {@link setDefaultEdgeLabel}.\n *\n * @template [GraphLabel=any] - Label of the graph.\n * @template [NodeLabel=any] - Label of a node.\n * Even though this is a \"label\", this could be any type that the user requires\n * (and may need to be an object for some layout/ranking algorithms in dagre).\n * @template [EdgeLabel=any] - Label of an edge.\n * Even though this is a \"label\", this could be any type that the user requires,\n * (and may need to be a object for ranking in dagre).\n */\nexport class Graph {\n /**\n * @param {GraphOptions} [opts] - Graph options.\n */\n constructor(opts = {}) {\n /**\n * @type {boolean}\n * @private\n */\n this._isDirected = Object.prototype.hasOwnProperty.call(opts, 'directed')\n ? opts.directed\n : true;\n /**\n * @type {boolean}\n * @private\n */\n this._isMultigraph = Object.prototype.hasOwnProperty.call(opts, 'multigraph')\n ? opts.multigraph\n : false;\n /**\n * @type {boolean}\n * @private\n */\n this._isCompound = Object.prototype.hasOwnProperty.call(opts, 'compound')\n ? opts.compound\n : false;\n\n /**\n * @type {GraphLabel | undefined}\n * Label for the graph itself\n */\n this._label = undefined;\n\n /**\n * Default label to be set when creating a new node.\n *\n * @private\n * @type {(v: NodeID | number) => NodeLabel}\n */\n this._defaultNodeLabelFn = _.constant(undefined);\n\n /**\n * Default label to be set when creating a new edge\n *\n * @private\n * @type {(v: NodeID, w: NodeID, name: string | undefined) => EdgeLabel}\n */\n this._defaultEdgeLabelFn = _.constant(undefined);\n\n /**\n * @type {Record<NodeID, NodeLabel>}\n * @private\n *\n * v -> label\n */\n this._nodes = {};\n\n if (this._isCompound) {\n /**\n * @type {Record<NodeID, NodeID>}\n * @private\n * v -> parent\n */\n this._parent = {};\n\n /**\n * @type {Record<NodeID, Record<NodeID, true>>}\n * @private\n * v -> children\n */\n this._children = {};\n this._children[GRAPH_NODE] = {};\n }\n\n /**\n * @type {Record<NodeID, Record<EdgeID, EdgeObj>>}\n * @private\n * v -> edgeObj\n */\n this._in = {};\n\n /**\n * @type {Record<NodeID, Record<NodeID, number>>}\n * @private\n * u -> v -> Number\n */\n this._preds = {};\n\n /**\n * @type {Record<NodeID, Record<EdgeID, EdgeObj>>}\n * @private\n * v -> edgeObj\n */\n this._out = {};\n\n /**\n * @type {Record<NodeID, Record<NodeID, number>>}\n * @private\n * v -> w -> Number\n */\n this._sucs = {};\n\n /**\n * @type {Record<EdgeID, EdgeObj>}\n * @private\n * e -> edgeObj\n */\n this._edgeObjs = {};\n\n /**\n * @type {Record<EdgeID, EdgeLabel>}\n * @private\n * e -> label\n */\n this._edgeLabels = {};\n }\n\n /* === Graph functions ========= */\n\n /**\n *\n * @returns {boolean} `true` if the graph is [directed](https://en.wikipedia.org/wiki/Directed_graph).\n * A directed graph treats the order of nodes in an edge as significant whereas an\n * [undirected](https://en.wikipedia.org/wiki/Graph_(mathematics)#Undirected_graph)\n * graph does not.\n * This example demonstrates the difference:\n *\n * @example\n *\n * ```js\n * var directed = new Graph({ directed: true });\n * directed.setEdge(\"a\", \"b\", \"my-label\");\n * directed.edge(\"a\", \"b\"); // returns \"my-label\"\n * directed.edge(\"b\", \"a\"); // returns undefined\n *\n * var undirected = new Graph({ directed: false });\n * undirected.setEdge(\"a\", \"b\", \"my-label\");\n * undirected.edge(\"a\", \"b\"); // returns \"my-label\"\n * undirected.edge(\"b\", \"a\"); // returns \"my-label\"\n * ```\n */\n isDirected() {\n return this._isDirected;\n }\n /**\n * @returns {boolean} `true` if the graph is a multigraph.\n */\n isMultigraph() {\n return this._isMultigraph;\n }\n /**\n * @returns {boolean} `true` if the graph is compound.\n */\n isCompound() {\n return this._isCompound;\n }\n\n /**\n * Sets the label for the graph to `label`.\n *\n * @param {GraphLabel} label - Label for the graph.\n * @returns {this}\n */\n setGraph(label) {\n this._label = label;\n return this;\n }\n\n /**\n * @returns {GraphLabel | undefined} the currently assigned label for the graph.\n * If no label has been assigned, returns `undefined`.\n *\n * @example\n *\n * ```js\n * var g = new Graph();\n * g.graph(); // returns undefined\n * g.setGraph(\"graph-label\");\n * g.graph(); // returns \"graph-label\"\n * ```\n */\n graph() {\n return this._label;\n }\n /* === Node functions ========== */\n\n /**\n * Sets a new default value that is assigned to nodes that are created without\n * a label.\n *\n * @param {typeof this._defaultNodeLabelFn | NodeLabel} newDefault - If a function,\n * it is called with the id of the node being created.\n * Otherwise, it is assigned as the label directly.\n * @returns {this}\n */\n setDefaultNodeLabel(newDefault) {\n if (!_.isFunction(newDefault)) {\n newDefault = _.constant(newDefault);\n }\n this._defaultNodeLabelFn = newDefault;\n return this;\n }\n\n /**\n * @returns {number} the number of nodes in the graph.\n */\n nodeCount() {\n return this._nodeCount;\n }\n\n /**\n * @returns {NodeID[]} the ids of the nodes in the graph.\n *\n * @remarks\n * Use {@link node()} to get the label for each node.\n * Takes `O(|V|)` time.\n */\n nodes() {\n return _.keys(this._nodes);\n }\n /**\n * @returns {NodeID[]} those nodes in the graph that have no in-edges.\n * @remarks Takes `O(|V|)` time.\n */\n sources() {\n var self = this;\n return _.filter(this.nodes(), function (v) {\n return _.isEmpty(self._in[v]);\n });\n }\n /**\n * @returns {NodeID[]} those nodes in the graph that have no out-edges.\n * @remarks Takes `O(|V|)` time.\n */\n sinks() {\n var self = this;\n return _.filter(this.nodes(), function (v) {\n return _.isEmpty(self._out[v]);\n });\n }\n\n /**\n * Invokes setNode method for each node in `vs` list.\n *\n * @param {Collection<NodeID | number>} vs - List of node IDs to create/set.\n * @param {NodeLabel} [value] - If set, update all nodes with this value.\n * @returns {this}\n * @remarks Complexity: O(|names|).\n */\n setNodes(vs, value) {\n var args = arguments;\n var self = this;\n _.each(vs, function (v) {\n if (args.length > 1) {\n self.setNode(v, value);\n } else {\n self.setNode(v);\n }\n });\n return this;\n }\n\n /**\n * Creates or updates the value for the node `v` in the graph.\n *\n * @param {NodeID | number} v - ID of the node to create/set.\n * @param {NodeLabel} [value] - If supplied, it is set as the value for the node.\n * If not supplied and the node was created by this call then\n * {@link setDefaultNodeLabel} will be used to set the node's value.\n * @returns {this} the graph, allowing this to be chained with other functions.\n * @remarks Takes `O(1)` time.\n */\n setNode(v, value) {\n if (Object.prototype.hasOwnProperty.call(this._nodes, v)) {\n if (arguments.length > 1) {\n this._nodes[v] = value;\n }\n return this;\n }\n\n this._nodes[v] = arguments.length > 1 ? value : this._defaultNodeLabelFn(v);\n if (this._isCompound) {\n this._parent[v] = GRAPH_NODE;\n this._children[v] = {};\n this._children[GRAPH_NODE][v] = true;\n }\n this._in[v] = {};\n this._preds[v] = {};\n this._out[v] = {};\n this._sucs[v] = {};\n ++this._nodeCount;\n return this;\n }\n\n /**\n * Gets the label of node with specified name.\n *\n * @param {NodeID | number} v - Node ID.\n * @returns {NodeLabel | undefined} the label assigned to the node with the id `v`\n * if it is in the graph.\n * Otherwise returns `undefined`.\n * @remarks Takes `O(1)` time.\n */\n node(v) {\n return this._nodes[v];\n }\n\n /**\n * Detects whether graph has a node with specified name or not.\n *\n * @param {NodeID | number} v - Node ID.\n * @returns {boolean} Returns `true` the graph has a node with the id.\n * @remarks Takes `O(1)` time.\n */\n hasNode(v) {\n return Object.prototype.hasOwnProperty.call(this._nodes, v);\n }\n\n /**\n * Remove the node with the id `v` in the graph or do nothing if the node is\n * not in the graph.\n *\n * If the node was removed this function also removes any incident edges.\n *\n * @param {NodeID | number} v - Node ID to remove.\n * @returns {this} the graph, allowing this to be chained with other functions.\n * @remarks Takes `O(|E|)` time.\n */\n removeNode(v) {\n if (Object.prototype.hasOwnProperty.call(this._nodes, v)) {\n var removeEdge = (e) => this.removeEdge(this._edgeObjs[e]);\n delete this._nodes[v];\n if (this._isCompound) {\n this._removeFromParentsChildList(v);\n delete this._parent[v];\n _.each(this.children(v), (child) => {\n this.setParent(child);\n });\n delete this._children[v];\n }\n _.each(_.keys(this._in[v]), removeEdge);\n delete this._in[v];\n delete this._preds[v];\n _.each(_.keys(this._out[v]), removeEdge);\n delete this._out[v];\n delete this._sucs[v];\n --this._nodeCount;\n }\n return this;\n }\n\n /**\n * Sets the parent for `v` to `parent` if it is defined or removes the parent\n * for `v` if `parent` is undefined.\n *\n * @param {NodeID | number} v - Node ID to set the parent for.\n * @param {NodeID | number} [parent] - Parent node ID. If not defined, removes the parent.\n * @returns {this} the graph, allowing this to be chained with other functions.\n * @throws if the graph is not compound.\n * @throws if setting the parent would create a cycle.\n * @remarks Takes `O(1)` time.\n */\n setParent(v, parent) {\n if (!this._isCompound) {\n throw new Error('Cannot set parent in a non-compound graph');\n }\n\n if (_.isUndefined(parent)) {\n parent = GRAPH_NODE;\n } else {\n // Coerce parent to string\n parent += '';\n for (var ancestor = parent; !_.isUndefined(ancestor); ancestor = this.parent(ancestor)) {\n if (ancestor === v) {\n throw new Error('Setting ' + parent + ' as parent of ' + v + ' would create a cycle');\n }\n }\n\n this.setNode(parent);\n }\n\n this.setNode(v);\n this._removeFromParentsChildList(v);\n // @ts-expect-error -- We coerced parent to a string above\n this._parent[v] = parent;\n this._children[parent][v] = true;\n return this;\n }\n\n /**\n * @private\n * @param {NodeID | number} v - Node ID.\n */\n _removeFromParentsChildList(v) {\n delete this._children[this._parent[v]][v];\n }\n\n /**\n * Get parent node for node `v`.\n *\n * @param {NodeID | number} v - Node ID.\n * @returns {NodeID | undefined} the node that is a parent of node `v`\n * or `undefined` if node `v` does not have a parent or is not a member of\n * the graph.\n * Always returns `undefined` for graphs that are not compound.\n * @remarks Takes `O(1)` time.\n */\n parent(v) {\n if (this._isCompound) {\n var parent = this._parent[v];\n if (parent !== GRAPH_NODE) {\n return parent;\n }\n }\n }\n\n /**\n * Gets list of direct children of node v.\n *\n * @param {NodeID | number} [v] - Node ID. If not specified, gets nodes\n * with no parent (top-level nodes).\n * @returns {NodeID[] | undefined} all nodes that are children of node `v` or\n * `undefined` if node `v` is not in the graph.\n * Always returns `[]` for graphs that are not compound.\n * @remarks Takes `O(|V|)` time.\n */\n children(v) {\n if (_.isUndefined(v)) {\n v = GRAPH_NODE;\n }\n\n if (this._isCompound) {\n var children = this._children[v];\n if (children) {\n return _.keys(children);\n }\n } else if (v === GRAPH_NODE) {\n return this.nodes();\n } else if (this.hasNode(v)) {\n return [];\n }\n }\n\n /**\n * @param {NodeID | number} v - Node ID.\n * @returns {NodeID[] | undefined} all nodes that are predecessors of the\n * specified node or `undefined` if node `v` is not in the graph.\n * @remarks\n * Behavior is undefined for undirected graphs - use {@link neighbors} instead.\n * Takes `O(|V|)` time.\n */\n predecessors(v) {\n var predsV = this._preds[v];\n if (predsV) {\n return _.keys(predsV);\n }\n }\n\n /**\n * @param {NodeID | number} v - Node ID.\n * @returns {NodeID[] | undefined} all nodes that are successors of the\n * specified node or `undefined` if node `v` is not in the graph.\n * @remarks\n * Behavior is undefined for undirected graphs - use {@link neighbors} instead.\n * Takes `O(|V|)` time.\n */\n successors(v) {\n var sucsV = this._sucs[v];\n if (sucsV) {\n return _.keys(sucsV);\n }\n }\n\n /**\n * @param {NodeID | number} v - Node ID.\n * @returns {NodeID[] | undefined} all nodes that are predecessors or\n * successors of the specified node\n * or `undefined` if node `v` is not in the graph.\n * @remarks Takes `O(|V|)` time.\n */\n neighbors(v) {\n var preds = this.predecessors(v);\n if (preds) {\n return _.union(preds, this.successors(v));\n }\n }\n\n /**\n * @param {NodeID | number} v - Node ID.\n * @returns {boolean} True if the node is a leaf (has no successors), false otherwise.\n */\n isLeaf(v) {\n var neighbors;\n if (this.isDirected()) {\n neighbors = this.successors(v);\n } else {\n neighbors = this.neighbors(v);\n }\n return neighbors.length === 0;\n }\n\n /**\n * Creates new graph with nodes filtered via `filter`.\n * Edges incident to rejected node\n * are also removed.\n * \n * In case of compound graph, if parent is rejected by `filter`,\n * than all its children are rejected too.\n\n * @param {(v: NodeID) => boolean} filter - Function that returns `true` for nodes to keep.\n * @returns {Graph<GraphLabel, NodeLabel, EdgeLabel>} A new graph containing only the nodes for which `filter` returns `true`.\n * @remarks Average-case complexity: O(|E|+|V|).\n */\n filterNodes(filter) {\n /**\n * @type {Graph<GraphLabel, NodeLabel, EdgeLabel>}\n */\n // @ts-expect-error\n var copy = new this.constructor({\n directed: this._isDirected,\n multigraph: this._isMultigraph,\n compound: this._isCompound,\n });\n\n copy.setGraph(this.graph());\n\n var self = this;\n _.each(this._nodes, function (value, v) {\n if (filter(v)) {\n copy.setNode(v, value);\n }\n });\n\n _.each(this._edgeObjs, function (e) {\n if (copy.hasNode(e.v) && copy.hasNode(e.w)) {\n copy.setEdge(e, self.edge(e));\n }\n });\n\n var parents = {};\n function findParent(v) {\n var parent = self.parent(v);\n if (parent === undefined || copy.hasNode(parent)) {\n parents[v] = parent;\n return parent;\n } else if (parent in parents) {\n return parents[parent];\n } else {\n return findParent(parent);\n }\n }\n\n if (this._isCompound) {\n _.each(copy.nodes(), function (v) {\n copy.setParent(v, findParent(v));\n });\n }\n\n return copy;\n }\n\n /* === Edge functions ========== */\n\n /**\n * Sets a new default value that is assigned to edges that are created without\n * a label.\n *\n * @param {typeof this._defaultEdgeLabelFn | EdgeLabel} newDefault - If a function,\n * it is called with the parameters `(v, w, name)`.\n * Otherwise, it is assigned as the label directly.\n * @returns {this}\n */\n setDefaultEdgeLabel(newDefault) {\n if (!_.isFunction(newDefault)) {\n newDefault = _.constant(newDefault);\n }\n this._defaultEdgeLabelFn = newDefault;\n return this;\n }\n\n /**\n * @returns {number} the number of edges in the graph.\n * @remarks Complexity: O(1).\n */\n edgeCount() {\n return this._edgeCount;\n }\n\n /**\n * Gets edges of the graph.\n *\n * @returns {EdgeObj[]} the {@link EdgeObj} for each edge in the graph.\n *\n * @remarks\n * In case of compound graph subgraphs are not considered.\n * Use {@link edge()} to get the label for each edge.\n * Takes `O(|E|)` time.\n */\n edges() {\n return _.values(this._edgeObjs);\n }\n\n /**\n * Establish an edges path over the nodes in nodes list.\n *\n * If some edge is already exists, it will update its label, otherwise it will\n * create an edge between pair of nodes with label provided or default label\n * if no label provided.\n *\n * @param {Collection<NodeID>} vs - List of node IDs to create edges between.\n * @param {EdgeLabel} [value] - If set, update all edges with this value.\n * @returns {this}\n * @remarks Complexity: O(|nodes|).\n */\n setPath(vs, value) {\n var self = this;\n var args = arguments;\n _.reduce(vs, function (v, w) {\n if (args.length > 1) {\n self.setEdge(v, w, value);\n } else {\n self.setEdge(v, w);\n }\n return w;\n });\n return this;\n }\n\n /**\n * Creates or updates the label for the edge (`v`, `w`) with the optionally\n * supplied `name`.\n *\n * @overload\n * @param {EdgeObj} arg0 - Edge object.\n * @param {EdgeLabel} [value] - If supplied, it is set as the label for the edge.\n * If not supplied and the edge was created by this call then\n * {@link setDefaultEdgeLabel} will be used to assign the edge's label.\n * @returns {this} the graph, allowing this to be chained with other functions.\n * @remarks Takes `O(1)` time.\n */\n /**\n * Creates or updates the label for the edge (`v`, `w`) with the optionally\n * supplied `name`.\n *\n * @overload\n * @param {NodeID | number} v - Source node ID. Number values will be coerced to strings.\n * @param {NodeID | number} w - Target node ID. Number values will be coerced to strings.\n * @param {EdgeLabel} [value] - If supplied, it is set as the label for the edge.\n * If not supplied and the edge was created by this call then\n * {@link setDefaultEdgeLabel} will be used to assign the edge's label.\n * @param {string | number} [name] - Edge name. Only useful with multigraphs.\n * @returns {this} the graph, allowing this to be chained with other functions.\n * @remarks Takes `O(1)` time.\n */\n setEdge() {\n var v, w, name, value;\n var valueSpecified = false;\n var arg0 = arguments[0];\n\n if (typeof arg0 === 'object' && arg0 !== null && 'v' in arg0) {\n v = arg0.v;\n w = arg0.w;\n name = arg0.name;\n if (arguments.length === 2) {\n value = arguments[1];\n valueSpecified = true;\n }\n } else {\n v = arg0;\n w = arguments[1];\n name = arguments[3];\n if (arguments.length > 2) {\n value = arguments[2];\n valueSpecified = true;\n }\n }\n\n v = '' + v;\n w = '' + w;\n if (!_.isUndefined(name)) {\n name = '' + name;\n }\n\n var e = edgeArgsToId(this._isDirected, v, w, name);\n if (Object.prototype.hasOwnProperty.call(this._edgeLabels, e)) {\n if (valueSpecified) {\n this._edgeLabels[e] = value;\n }\n return this;\n }\n\n if (!_.isUndefined(name) && !this._isMultigraph) {\n throw new Error('Cannot set a named edge when isMultigraph = false');\n }\n\n // It didn't exist, so we need to create it.\n // First ensure the nodes exist.\n this.setNode(v);\n this.setNode(w);\n\n this._edgeLabels[e] = valueSpecified ? value : this._defaultEdgeLabelFn(v, w, name);\n\n var edgeObj = edgeArgsToObj(this._isDirected, v, w, name);\n // Ensure we add undirected edges in a consistent way.\n v = edgeObj.v;\n w = edgeObj.w;\n\n Object.freeze(edgeObj);\n this._edgeObjs[e] = edgeObj;\n incrementOrInitEntry(this._preds[w], v);\n incrementOrInitEntry(this._sucs[v], w);\n this._in[w][e] = edgeObj;\n this._out[v][e] = edgeObj;\n this._edgeCount++;\n return this;\n }\n\n /**\n * Gets the label for the specified edge.\n *\n * @overload\n * @param {EdgeObj} v - Edge object.\n * @returns {EdgeLabel | undefined} the label for the edge (`v`, `w`) if the\n * graph has an edge between `v` and `w` with the optional `name`.\n * Returned `undefined` if there is no such edge in the graph.\n * @remarks\n * `v` and `w` can be interchanged for undirected graphs.\n * Takes `O(1)` time.\n */\n /**\n * Gets the label for the specified edge.\n *\n * @overload\n * @param {NodeID | number} v - Source node ID.\n * @param {NodeID | number} w - Target node ID.\n * @param {string | number} [name] - Edge name. Only useful with multigraphs.\n * @returns {EdgeLabel | undefined} the label for the edge (`v`, `w`) if the\n * graph has an edge between `v` and `w` with the optional `name`.\n * Returned `undefined` if there is no such edge in the graph.\n * @remarks\n * `v` and `w` can be interchanged for undirected graphs.\n * Takes `O(1)` time.\n */\n edge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n return this._edgeLabels[e];\n }\n\n /**\n * Detects whether the graph contains specified edge or not.\n *\n * @overload\n * @param {EdgeObj} v - Edge object.\n * @returns {boolean} `true` if the graph has an edge between `v` and `w`\n * with the optional `name`.\n * @remarks\n * `v` and `w` can be interchanged for undirected graphs.\n * No subgraphs are considered.\n * Takes `O(1)` time.\n */\n /**\n * Detects whether the graph contains specified edge or not.\n *\n * @overload\n * @param {NodeID | number} v - Source node ID.\n * @param {NodeID | number} w - Target node ID.\n * @param {string | number} [name] - Edge name. Only useful with multigraphs.\n * @returns {boolean} `true` if the graph has an edge between `v` and `w`\n * with the optional `name`.\n * @remarks\n * `v` and `w` can be interchanged for undirected graphs.\n * No subgraphs are considered.\n * Takes `O(1)` time.\n */\n hasEdge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n return Object.prototype.hasOwnProperty.call(this._edgeLabels, e);\n }\n\n /**\n * Removes the edge (`v`, `w`) if the graph has an edge between `v` and `w`\n * with the optional `name`. If not this function does nothing.\n *\n * @overload\n * @param {EdgeObj} v - Edge object.\n * @returns {this}\n * @remarks\n * `v` and `w` can be interchanged for undirected graphs.\n * No subgraphs are considered.\n * Takes `O(1)` time.\n */\n /**\n * Removes the edge (`v`, `w`) if the graph has an edge between `v` and `w`\n * with the optional `name`. If not this function does nothing.\n *\n * @overload\n * @param {NodeID | number} v - Source node ID.\n * @param {NodeID | number} w - Target node ID.\n * @param {string | number} [name] - Edge name. Only useful with multigraphs.\n * @returns {this}\n * @remarks\n * `v` and `w` can be interchanged for undirected graphs.\n * Takes `O(1)` time.\n */\n removeEdge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n var edge = this._edgeObjs[e];\n if (edge) {\n v = edge.v;\n w = edge.w;\n delete this._edgeLabels[e];\n delete this._edgeObjs[e];\n decrementOrRemoveEntry(this._preds[w], v);\n decrementOrRemoveEntry(this._sucs[v], w);\n delete this._in[w][e];\n delete this._out[v][e];\n this._edgeCount--;\n }\n return this;\n }\n\n /**\n * @param {NodeID | number} v - Target node ID.\n * @param {NodeID | number} [u] - Optionally filters edges down to just those\n * coming from node `u`.\n * @returns {EdgeObj[] | undefined} all edges that point to the node `v`.\n * Returns `undefined` if node `v` is not in the graph.\n * @remarks\n * Behavior is undefined for undirected graphs - use {@link nodeEdges} instead.\n * Takes `O(|E|)` time.\n */\n inEdges(v, u) {\n var inV = this._in[v];\n if (inV) {\n var edges = _.values(inV);\n if (!u) {\n return edges;\n }\n return _.filter(edges, function (edge) {\n return edge.v === u;\n });\n }\n }\n\n /**\n * @param {NodeID | number} v - Target node ID.\n * @param {NodeID | number} [w] - Optionally filters edges down to just those\n * that point to `w`.\n * @returns {EdgeObj[] | undefined} all edges that point to the node `v`.\n * Returns `undefined` if node `v` is not in the graph.\n * @remarks\n * Behavior is undefined for undirected graphs - use {@link nodeEdges} instead.\n * Takes `O(|E|)` time.\n */\n outEdges(v, w) {\n var outV = this._out[v];\n if (outV) {\n var edges = _.values(outV);\n if (!w) {\n return edges;\n }\n return _.filter(edges, function (edge) {\n return edge.w === w;\n });\n }\n }\n\n /**\n * @param {NodeID | number} v - Target Node ID.\n * @param {NodeID | number} [w] - If set, filters those edges down to just\n * those between nodes `v` and `w` regardless of direction\n * @returns {EdgeObj[] | undefined} all edges to or from node `v` regardless\n * of direction. Returns `undefined` if node `v` is not in the graph.\n * @remarks Takes `O(|E|)` time.\n */\n nodeEdges(v, w) {\n var inEdges = this.inEdges(v, w);\n if (inEdges) {\n return inEdges.concat(this.outEdges(v, w));\n }\n }\n}\n\n/* Number of nodes in the graph. Should only be changed by the implementation. */\nGraph.prototype._nodeCount = 0;\n\n/* Number of edges in the graph. Should only be changed by the implementation. */\nGraph.prototype._edgeCount = 0;\n\n/**\n * @param {Record<NodeID, number>} map - Object mapping node IDs to counts.\n * @param {NodeID | number} k - Node ID.\n */\nfunction incrementOrInitEntry(map, k) {\n if (map[k]) {\n map[k]++;\n } else {\n map[k] = 1;\n }\n}\n\n/**\n * @param {Record<NodeID, number>} map - Object mapping node IDs to counts.\n * @param {NodeID | number} k - Node ID.\n */\nfunction decrementOrRemoveEntry(map, k) {\n if (!--map[k]) {\n delete map[k];\n }\n}\n\n/**\n * @param {boolean} isDirected - If `false`, sorts v and w to ensure a consistent ID.\n * @param {EdgeObj['v'] | number} v_ - Source node ID.\n * @param {EdgeObj['w'] | number} w_ - Target node ID.\n * @param {EdgeObj['name']} [name] - Edge name (for multiple edges between the same nodes).\n * @returns {EdgeID} Unique ID for the edge.\n */\nfunction edgeArgsToId(isDirected, v_, w_, name) {\n var v = '' + v_;\n var w = '' + w_;\n if (!isDirected && v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n return v + EDGE_KEY_DELIM + w + EDGE_KEY_DELIM + (_.isUndefined(name) ? DEFAULT_EDGE_NAME : name);\n}\n\n/**\n * @param {boolean} isDirected - If `false`, sorts v and w to ensure a consistent ID.\n * @param {EdgeObj['v'] | number} v_ - Source node ID.\n * @param {EdgeObj['w'] | number} w_ - Target node ID.\n * @param {EdgeObj['name']} [name] - Edge name (for multiple edges between the same nodes).\n * @returns {EdgeObj}\n */\nfunction edgeArgsToObj(isDirected, v_, w_, name) {\n var v = '' + v_;\n var w = '' + w_;\n if (!isDirected && v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n var edgeObj = { v: v, w: w };\n if (name) {\n edgeObj.name = name;\n }\n return edgeObj;\n}\n\n/**\n * @param {boolean} isDirected - If `false`, sorts v and w to ensure a consistent ID.\n * @param {EdgeObj} edgeObj - Edge object.\n * @returns {EdgeID} Unique ID for the edge.\n */\nfunction edgeObjToId(isDirected, edgeObj) {\n return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name);\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"infoDiagram-42DDH7IO-CYONnQuR.js","names":[],"sources":["../../../../node_modules/mermaid/dist/chunks/mermaid.core/infoDiagram-42DDH7IO.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-426QAEUC.mjs\";\nimport {\n configureSvgSize\n} from \"./chunk-ICPOFSXX.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/info/infoParser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"info\", input);\n log.debug(ast);\n }, \"parse\")\n};\n\n// src/diagrams/info/infoDb.ts\nvar DEFAULT_INFO_DB = {\n version: \"11.14.0\" + (true ? \"\" : \"-tiny\")\n};\nvar getVersion = /* @__PURE__ */ __name(() => DEFAULT_INFO_DB.version, \"getVersion\");\nvar db = {\n getVersion\n};\n\n// src/diagrams/info/infoRenderer.ts\nvar draw = /* @__PURE__ */ __name((text, id, version) => {\n log.debug(\"rendering info diagram\\n\" + text);\n const svg = selectSvgElement(id);\n configureSvgSize(svg, 100, 400, true);\n const group = svg.append(\"g\");\n group.append(\"text\").attr(\"x\", 100).attr(\"y\", 40).attr(\"class\", \"version\").attr(\"font-size\", 32).style(\"text-anchor\", \"middle\").text(`v${version}`);\n}, \"draw\");\nvar renderer = { draw };\n\n// src/diagrams/info/infoDiagram.ts\nvar diagram = {\n parser,\n db,\n renderer\n};\nexport {\n diagram\n};\n"],"x_google_ignoreList":[0],"mappings":";;;;;AAaA,IAAI,IAAS,EACX,OAAuB,kBAAO,OAAO,MAAU;CAC7C,IAAM,IAAM,MAAM,EAAM,QAAQ,EAAM;AACtC,GAAI,MAAM,EAAI;GACb,QAAQ,EACZ,EAGG,IAAkB,EACpB,SAAS,WACV,EAiBG,IAAU;CACZ;CACA,IAAA,EAhBA,YAF+B,wBAAa,EAAgB,SAAS,aAE3D,EAgBR;CACF,UAAA,EANe,MAPU,mBAAQ,GAAM,GAAI,MAAY;AACvD,IAAI,MAAM,6BAA6B,EAAK;EAC5C,IAAM,IAAM,EAAiB,EAAG;AAElB,EADd,EAAiB,GAAK,KAAK,KAAK,GAAK,EACvB,EAAI,OAAO,IACpB,CAAC,OAAO,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,SAAS,UAAU,CAAC,KAAK,aAAa,GAAG,CAAC,MAAM,eAAe,SAAS,CAAC,KAAK,IAAI,IAAU;IAClJ,OACkB,EAMX;CACT"}
1
+ {"version":3,"file":"infoDiagram-42DDH7IO-CYONnQuR.js","names":[],"sources":["../../../../node_modules/mermaid/dist/chunks/mermaid.core/infoDiagram-42DDH7IO.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-426QAEUC.mjs\";\nimport {\n configureSvgSize\n} from \"./chunk-ICPOFSXX.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/info/infoParser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"info\", input);\n log.debug(ast);\n }, \"parse\")\n};\n\n// src/diagrams/info/infoDb.ts\nvar DEFAULT_INFO_DB = {\n version: \"11.14.0\" + (true ? \"\" : \"-tiny\")\n};\nvar getVersion = /* @__PURE__ */ __name(() => DEFAULT_INFO_DB.version, \"getVersion\");\nvar db = {\n getVersion\n};\n\n// src/diagrams/info/infoRenderer.ts\nvar draw = /* @__PURE__ */ __name((text, id, version) => {\n log.debug(\"rendering info diagram\\n\" + text);\n const svg = selectSvgElement(id);\n configureSvgSize(svg, 100, 400, true);\n const group = svg.append(\"g\");\n group.append(\"text\").attr(\"x\", 100).attr(\"y\", 40).attr(\"class\", \"version\").attr(\"font-size\", 32).style(\"text-anchor\", \"middle\").text(`v${version}`);\n}, \"draw\");\nvar renderer = { draw };\n\n// src/diagrams/info/infoDiagram.ts\nvar diagram = {\n parser,\n db,\n renderer\n};\nexport {\n diagram\n};\n"],"x_google_ignoreList":[0],"mappings":";;;;;AAaA,IAAI,IAAS,EACX,OAAuB,kBAAO,OAAO,MAAU;CAC7C,IAAM,IAAM,MAAM,EAAM,QAAQ,EAAM;CACtC,EAAI,MAAM,EAAI;GACb,QAAQ,EACZ,EAGG,IAAkB,EACpB,SAAS,WACV,EAiBG,IAAU;CACZ;CACA,IAAA,EAhBA,YAF+B,wBAAa,EAAgB,SAAS,aAE3D,EAgBR;CACF,UAAA,EANe,MAPU,mBAAQ,GAAM,GAAI,MAAY;EACvD,EAAI,MAAM,6BAA6B,EAAK;EAC5C,IAAM,IAAM,EAAiB,EAAG;EAGhC,AAFA,EAAiB,GAAK,KAAK,KAAK,GAAK,EAErC,EADkB,OAAO,IACpB,CAAC,OAAO,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,SAAS,UAAU,CAAC,KAAK,aAAa,GAAG,CAAC,MAAM,eAAe,SAAS,CAAC,KAAK,IAAI,IAAU;IAClJ,OACkB,EAMX;CACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"init-DcYXQL-k.js","names":[],"sources":["../../../../node_modules/d3-scale/src/init.js"],"sourcesContent":["export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n"],"x_google_ignoreList":[0],"mappings":";AAAA,SAAgB,EAAU,GAAQ,GAAO;AACvC,SAAQ,UAAU,QAAlB;EACE,KAAK,EAAG;EACR,KAAK;AAAG,QAAK,MAAM,EAAO;AAAE;EAC5B;AAAS,QAAK,MAAM,EAAM,CAAC,OAAO,EAAO;AAAE;;AAE7C,QAAO"}
1
+ {"version":3,"file":"init-DcYXQL-k.js","names":[],"sources":["../../../../node_modules/d3-scale/src/init.js"],"sourcesContent":["export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n"],"x_google_ignoreList":[0],"mappings":";AAAA,SAAgB,EAAU,GAAQ,GAAO;CACvC,QAAQ,UAAU,QAAlB;EACE,KAAK,GAAG;EACR,KAAK;GAAG,KAAK,MAAM,EAAO;GAAE;EAC5B;GAAS,KAAK,MAAM,EAAM,CAAC,OAAO,EAAO;GAAE;;CAE7C,OAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"isEmpty-DLTQgX7m.js","names":["hasOwnProperty","Promise","mapTag","setTag","Promise","getTag"],"sources":["../../../../node_modules/lodash-es/_nativeKeys.js","../../../../node_modules/lodash-es/_baseKeys.js","../../../../node_modules/lodash-es/_DataView.js","../../../../node_modules/lodash-es/_Promise.js","../../../../node_modules/lodash-es/_Set.js","../../../../node_modules/lodash-es/_WeakMap.js","../../../../node_modules/lodash-es/_getTag.js","../../../../node_modules/lodash-es/isEmpty.js"],"sourcesContent":["import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLike from './isArrayLike.js';\nimport isBuffer from './isBuffer.js';\nimport isPrototype from './_isPrototype.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport default isEmpty;\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7],"mappings":";;AAGA,IAAI,IAAa,EAAQ,OAAO,MAAM,OAAO,ECIzCA,IAHc,OAAO,UAGQ;AASjC,SAAS,EAAS,GAAQ;AACxB,KAAI,CAAC,EAAY,EAAO,CACtB,QAAO,EAAW,EAAO;CAE3B,IAAI,IAAS,EAAE;AACf,MAAK,IAAI,KAAO,OAAO,EAAO,CAC5B,CAAIA,EAAe,KAAK,GAAQ,EAAI,IAAI,KAAO,iBAC7C,EAAO,KAAK,EAAI;AAGpB,QAAO;;;;ACtBT,IAAI,IAAW,EAAU,GAAM,WAAW,ECAtCC,IAAU,EAAU,GAAM,UAAU,ECApC,IAAM,EAAU,GAAM,MAAM,ECA5B,IAAU,EAAU,GAAM,UAAU,ECKpCC,IAAS,gBACT,IAAY,mBACZ,IAAa,oBACbC,IAAS,gBACT,IAAa,oBAEb,IAAc,qBAGd,IAAqB,EAAS,EAAS,EACvC,IAAgB,EAAS,EAAI,EAC7B,IAAoB,EAASC,EAAQ,EACrC,IAAgB,EAAS,EAAI,EAC7B,IAAoB,EAAS,EAAQ,EASrC,IAAS;CAGR,KAAY,EAAO,IAAI,kBAAS,IAAI,YAAY,EAAE,CAAC,CAAC,IAAI,KACxD,KAAO,EAAO,IAAI,GAAG,CAAC,IAAIF,KAC1BE,KAAW,EAAOA,EAAQ,SAAS,CAAC,IAAI,KACxC,KAAO,EAAO,IAAI,GAAG,CAAC,IAAID,KAC1B,KAAW,EAAO,IAAI,GAAO,CAAC,IAAI,OACrC,IAAS,SAAS,GAAO;CACvB,IAAI,IAAS,EAAW,EAAM,EAC1B,IAAO,KAAU,IAAY,EAAM,cAAc,KAAA,GACjD,IAAa,IAAO,EAAS,EAAK,GAAG;AAEzC,KAAI,EACF,SAAQ,GAAR;EACE,KAAK,EAAoB,QAAO;EAChC,KAAK,EAAe,QAAOD;EAC3B,KAAK,EAAmB,QAAO;EAC/B,KAAK,EAAe,QAAOC;EAC3B,KAAK,EAAmB,QAAO;;AAGnC,QAAO;;AAIX,IAAA,IAAe,GC/CX,IAAS,gBACT,IAAS,gBAMT,IAHc,OAAO,UAGQ;AAmCjC,SAAS,EAAQ,GAAO;AACtB,KAAI,KAAS,KACX,QAAO;AAET,KAAI,EAAY,EAAM,KACjB,EAAQ,EAAM,IAAI,OAAO,KAAS,YAAY,OAAO,EAAM,UAAU,cACpE,EAAS,EAAM,IAAI,EAAa,EAAM,IAAI,EAAY,EAAM,EAChE,QAAO,CAAC,EAAM;CAEhB,IAAI,IAAME,EAAO,EAAM;AACvB,KAAI,KAAO,KAAU,KAAO,EAC1B,QAAO,CAAC,EAAM;AAEhB,KAAI,EAAY,EAAM,CACpB,QAAO,CAAC,EAAS,EAAM,CAAC;AAE1B,MAAK,IAAI,KAAO,EACd,KAAI,EAAe,KAAK,GAAO,EAAI,CACjC,QAAO;AAGX,QAAO"}
1
+ {"version":3,"file":"isEmpty-DLTQgX7m.js","names":["hasOwnProperty","Promise","mapTag","setTag","Promise","getTag"],"sources":["../../../../node_modules/lodash-es/_nativeKeys.js","../../../../node_modules/lodash-es/_baseKeys.js","../../../../node_modules/lodash-es/_DataView.js","../../../../node_modules/lodash-es/_Promise.js","../../../../node_modules/lodash-es/_Set.js","../../../../node_modules/lodash-es/_WeakMap.js","../../../../node_modules/lodash-es/_getTag.js","../../../../node_modules/lodash-es/isEmpty.js"],"sourcesContent":["import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLike from './isArrayLike.js';\nimport isBuffer from './isBuffer.js';\nimport isPrototype from './_isPrototype.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport default isEmpty;\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7],"mappings":";;AAGA,IAAI,IAAa,EAAQ,OAAO,MAAM,OAAO,ECIzCA,IAHc,OAAO,UAGQ;AASjC,SAAS,EAAS,GAAQ;CACxB,IAAI,CAAC,EAAY,EAAO,EACtB,OAAO,EAAW,EAAO;CAE3B,IAAI,IAAS,EAAE;CACf,KAAK,IAAI,KAAO,OAAO,EAAO,EAC5B,AAAIA,EAAe,KAAK,GAAQ,EAAI,IAAI,KAAO,iBAC7C,EAAO,KAAK,EAAI;CAGpB,OAAO;;;;ACtBT,IAAI,IAAW,EAAU,GAAM,WAAW,ECAtCC,IAAU,EAAU,GAAM,UAAU,ECApC,IAAM,EAAU,GAAM,MAAM,ECA5B,IAAU,EAAU,GAAM,UAAU,ECKpCC,IAAS,gBACT,IAAY,mBACZ,IAAa,oBACbC,IAAS,gBACT,IAAa,oBAEb,IAAc,qBAGd,IAAqB,EAAS,EAAS,EACvC,IAAgB,EAAS,EAAI,EAC7B,IAAoB,EAASC,EAAQ,EACrC,IAAgB,EAAS,EAAI,EAC7B,IAAoB,EAAS,EAAQ,EASrC,IAAS;CAGR,KAAY,EAAO,IAAI,kBAAS,IAAI,YAAY,EAAE,CAAC,CAAC,IAAI,KACxD,KAAO,EAAO,IAAI,GAAG,CAAC,IAAIF,KAC1BE,KAAW,EAAOA,EAAQ,SAAS,CAAC,IAAI,KACxC,KAAO,EAAO,IAAI,GAAG,CAAC,IAAID,KAC1B,KAAW,EAAO,IAAI,GAAO,CAAC,IAAI,OACrC,IAAS,SAAS,GAAO;CACvB,IAAI,IAAS,EAAW,EAAM,EAC1B,IAAO,KAAU,IAAY,EAAM,cAAc,KAAA,GACjD,IAAa,IAAO,EAAS,EAAK,GAAG;CAEzC,IAAI,GACF,QAAQ,GAAR;EACE,KAAK,GAAoB,OAAO;EAChC,KAAK,GAAe,OAAOD;EAC3B,KAAK,GAAmB,OAAO;EAC/B,KAAK,GAAe,OAAOC;EAC3B,KAAK,GAAmB,OAAO;;CAGnC,OAAO;;AAIX,IAAA,IAAe,GC/CX,IAAS,gBACT,IAAS,gBAMT,IAHc,OAAO,UAGQ;AAmCjC,SAAS,EAAQ,GAAO;CACtB,IAAI,KAAS,MACX,OAAO;CAET,IAAI,EAAY,EAAM,KACjB,EAAQ,EAAM,IAAI,OAAO,KAAS,YAAY,OAAO,EAAM,UAAU,cACpE,EAAS,EAAM,IAAI,EAAa,EAAM,IAAI,EAAY,EAAM,GAChE,OAAO,CAAC,EAAM;CAEhB,IAAI,IAAME,EAAO,EAAM;CACvB,IAAI,KAAO,KAAU,KAAO,GAC1B,OAAO,CAAC,EAAM;CAEhB,IAAI,EAAY,EAAM,EACpB,OAAO,CAAC,EAAS,EAAM,CAAC;CAE1B,KAAK,IAAI,KAAO,GACd,IAAI,EAAe,KAAK,GAAO,EAAI,EACjC,OAAO;CAGX,OAAO"}