@next-bricks/markdown 1.13.9 → 1.13.10

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 (104) hide show
  1. package/dist/bricks.json +4 -1
  2. package/dist/chunks/1122.a90e980b.js +2 -0
  3. package/dist/chunks/1122.a90e980b.js.map +1 -0
  4. package/dist/chunks/114.5060d5d4.js +2 -0
  5. package/dist/chunks/{114.b104fe5c.js.map → 114.5060d5d4.js.map} +1 -1
  6. package/dist/chunks/{1889.f4c0a479.js → 1889.2b133ffc.js} +2 -2
  7. package/dist/chunks/1889.2b133ffc.js.map +1 -0
  8. package/dist/chunks/1940.d618dae6.js +2 -0
  9. package/dist/chunks/1940.d618dae6.js.map +1 -0
  10. package/dist/chunks/2277.361a4128.js +2 -0
  11. package/dist/chunks/2277.361a4128.js.map +1 -0
  12. package/dist/chunks/3003.09159f3d.js +2 -0
  13. package/dist/chunks/3003.09159f3d.js.map +1 -0
  14. package/dist/chunks/3171.20853b4e.js +2 -0
  15. package/dist/chunks/3171.20853b4e.js.map +1 -0
  16. package/dist/chunks/3744.e3e5e984.js +2 -0
  17. package/dist/chunks/{3744.9de8501f.js.map → 3744.e3e5e984.js.map} +1 -1
  18. package/dist/chunks/4228.75cbeebc.js +2 -0
  19. package/dist/chunks/{4228.def9e6d0.js.map → 4228.75cbeebc.js.map} +1 -1
  20. package/dist/chunks/4306.33538429.js +2 -0
  21. package/dist/chunks/4306.33538429.js.map +1 -0
  22. package/dist/chunks/4658.0017b742.js +2 -0
  23. package/dist/chunks/4658.0017b742.js.map +1 -0
  24. package/dist/chunks/4765.1c79ae07.js +2 -0
  25. package/dist/chunks/4765.1c79ae07.js.map +1 -0
  26. package/dist/chunks/4837.6efea019.js +2 -0
  27. package/dist/chunks/4837.6efea019.js.map +1 -0
  28. package/dist/chunks/5384.ac1fc218.js +2 -0
  29. package/dist/chunks/5384.ac1fc218.js.map +1 -0
  30. package/dist/chunks/5399.6f4f5ece.js +2 -0
  31. package/dist/chunks/5399.6f4f5ece.js.map +1 -0
  32. package/dist/chunks/5552.d226c0b3.js +2 -0
  33. package/dist/chunks/5552.d226c0b3.js.map +1 -0
  34. package/dist/chunks/6519.60cd3618.js +2 -0
  35. package/dist/chunks/6519.60cd3618.js.map +1 -0
  36. package/dist/chunks/6530.e2f1c116.js +2 -0
  37. package/dist/chunks/6530.e2f1c116.js.map +1 -0
  38. package/dist/chunks/6773.d41358aa.js +2 -0
  39. package/dist/chunks/6773.d41358aa.js.map +1 -0
  40. package/dist/chunks/7146.7c26b530.js +2 -0
  41. package/dist/chunks/7146.7c26b530.js.map +1 -0
  42. package/dist/chunks/7218.558b3d28.js +2 -0
  43. package/dist/chunks/7218.558b3d28.js.map +1 -0
  44. package/dist/chunks/726.149da20f.js +2 -0
  45. package/dist/chunks/726.149da20f.js.map +1 -0
  46. package/dist/chunks/7367.7b3733a5.js +3 -0
  47. package/dist/chunks/7367.7b3733a5.js.map +1 -0
  48. package/dist/chunks/7721.fe84bc4d.js +3 -0
  49. package/dist/chunks/7721.fe84bc4d.js.LICENSE.txt +3 -0
  50. package/dist/chunks/7721.fe84bc4d.js.map +1 -0
  51. package/dist/chunks/7733.2f2e2648.js +2 -0
  52. package/dist/chunks/7733.2f2e2648.js.map +1 -0
  53. package/dist/chunks/7775.6b4d5ced.js +2 -0
  54. package/dist/chunks/7775.6b4d5ced.js.map +1 -0
  55. package/dist/chunks/843.dde39975.js +2 -0
  56. package/dist/chunks/843.dde39975.js.map +1 -0
  57. package/dist/chunks/871.7b255505.js +2 -0
  58. package/dist/chunks/871.7b255505.js.map +1 -0
  59. package/dist/chunks/9155.58b45a23.js +2 -0
  60. package/dist/chunks/{4623.a31e438a.js.map → 9155.58b45a23.js.map} +1 -1
  61. package/dist/chunks/948.d3750c6b.js +3 -0
  62. package/dist/chunks/948.d3750c6b.js.LICENSE.txt +1 -0
  63. package/dist/chunks/948.d3750c6b.js.map +1 -0
  64. package/dist/chunks/9515.493254b5.js +2 -0
  65. package/dist/chunks/9515.493254b5.js.map +1 -0
  66. package/dist/chunks/9559.e7511b96.js +2 -0
  67. package/dist/chunks/9559.e7511b96.js.map +1 -0
  68. package/dist/chunks/9844.1c23cd21.js +2 -0
  69. package/dist/chunks/9844.1c23cd21.js.map +1 -0
  70. package/dist/chunks/eo-markdown-display.8564f750.js +2 -0
  71. package/dist/chunks/eo-markdown-display.8564f750.js.map +1 -0
  72. package/dist/chunks/eo-markdown-editor.48f003e3.js +2 -0
  73. package/dist/chunks/{eo-markdown-editor.75b30596.js.map → eo-markdown-editor.48f003e3.js.map} +1 -1
  74. package/dist/chunks/main.2296aeb5.js +2 -0
  75. package/dist/chunks/main.2296aeb5.js.map +1 -0
  76. package/dist/index.1f28465e.js +2 -0
  77. package/dist/index.1f28465e.js.map +1 -0
  78. package/dist/manifest.json +5 -0
  79. package/dist/types.json +16 -0
  80. package/dist-types/markdown-display/index.d.ts +5 -0
  81. package/package.json +5 -4
  82. package/dist/chunks/114.b104fe5c.js +0 -2
  83. package/dist/chunks/1889.f4c0a479.js.map +0 -1
  84. package/dist/chunks/3744.9de8501f.js +0 -2
  85. package/dist/chunks/4228.def9e6d0.js +0 -2
  86. package/dist/chunks/4623.a31e438a.js +0 -2
  87. package/dist/chunks/5384.1362903a.js +0 -2
  88. package/dist/chunks/5384.1362903a.js.map +0 -1
  89. package/dist/chunks/6530.d3f82fe7.js +0 -2
  90. package/dist/chunks/6530.d3f82fe7.js.map +0 -1
  91. package/dist/chunks/7367.8458c750.js +0 -3
  92. package/dist/chunks/7367.8458c750.js.map +0 -1
  93. package/dist/chunks/7733.33cce27d.js +0 -2
  94. package/dist/chunks/7733.33cce27d.js.map +0 -1
  95. package/dist/chunks/7775.5792d524.js +0 -2
  96. package/dist/chunks/7775.5792d524.js.map +0 -1
  97. package/dist/chunks/eo-markdown-display.5e4f1b6c.js +0 -2
  98. package/dist/chunks/eo-markdown-display.5e4f1b6c.js.map +0 -1
  99. package/dist/chunks/eo-markdown-editor.75b30596.js +0 -2
  100. package/dist/chunks/main.27dbe27f.js +0 -2
  101. package/dist/chunks/main.27dbe27f.js.map +0 -1
  102. package/dist/index.2a16184d.js +0 -2
  103. package/dist/index.2a16184d.js.map +0 -1
  104. /package/dist/chunks/{7367.8458c750.js.LICENSE.txt → 7367.7b3733a5.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/7367.7b3733a5.js","mappings":"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","sources":["webpack:///../../node_modules/lodash-es/_copyArray.js","webpack:///../../node_modules/lodash-es/_coreJsData.js","webpack:///../../node_modules/lodash-es/_isMasked.js","webpack:///../../node_modules/lodash-es/_baseIsNative.js","webpack:///../../node_modules/lodash-es/_getNative.js","webpack:///../../node_modules/lodash-es/_getValue.js","webpack:///../../node_modules/lodash-es/_nodeUtil.js","webpack:///../../node_modules/@iconify/utils/lib/icon/name.mjs","webpack:///../../node_modules/@iconify/utils/lib/icon/defaults.mjs","webpack:///../../node_modules/@iconify/utils/lib/icon/merge.mjs","webpack:///../../node_modules/@iconify/utils/lib/icon/transformations.mjs","webpack:///../../node_modules/@iconify/utils/lib/icon-set/get-icon.mjs","webpack:///../../node_modules/@iconify/utils/lib/customisations/defaults.mjs","webpack:///../../node_modules/@iconify/utils/lib/svg/size.mjs","webpack:///../../node_modules/@iconify/utils/lib/svg/id.mjs","webpack:///../../node_modules/marked/lib/marked.esm.js","webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-QESNASVV.mjs","webpack:///../../node_modules/@iconify/utils/lib/icon-set/tree.mjs","webpack:///../../node_modules/@iconify/utils/lib/svg/build.mjs","webpack:///../../node_modules/@iconify/utils/lib/svg/defs.mjs","webpack:///../../node_modules/@iconify/utils/lib/svg/html.mjs","webpack:///../../node_modules/lodash-es/isArrayLikeObject.js","webpack:///../../node_modules/lodash-es/isFunction.js","webpack:///../../node_modules/lodash-es/_cloneBuffer.js","webpack:///../../node_modules/lodash-es/_baseRest.js","webpack:///../../node_modules/khroma/dist/color/hex.js","webpack:///../../node_modules/khroma/dist/color/hsl.js","webpack:///../../node_modules/khroma/dist/color/keyword.js","webpack:///../../node_modules/khroma/dist/color/rgb.js","webpack:///../../node_modules/khroma/dist/color/index.js","webpack:///../../node_modules/lodash-es/_isPrototype.js","webpack:///../../node_modules/lodash-es/isArrayLike.js","webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-IWUHOULB.mjs","webpack:///../../node_modules/lodash-es/_baseKeysIn.js","webpack:///../../node_modules/lodash-es/_nativeKeysIn.js","webpack:///../../node_modules/lodash-es/keysIn.js","webpack:///../../node_modules/lodash-es/_defineProperty.js","webpack:///../../node_modules/khroma/dist/methods/luminance.js","webpack:///../../node_modules/khroma/dist/methods/is_light.js","webpack:///../../node_modules/khroma/dist/methods/is_dark.js","webpack:///../../node_modules/khroma/dist/methods/rgba.js","webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-L5ZGVLVO.mjs","webpack:///../../node_modules/mermaid/node_modules/dompurify/dist/purify.es.mjs","webpack:///../../node_modules/lodash-es/_baseFor.js","webpack:///../../node_modules/lodash-es/_createBaseFor.js","webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-AC5SNWB5.mjs","webpack:///../../node_modules/lodash-es/_baseIsTypedArray.js","webpack:///../../node_modules/lodash-es/isTypedArray.js","webpack:///../../node_modules/lodash-es/_assignMergeValue.js","webpack:///../../node_modules/lodash-es/isPlainObject.js","webpack:///../../node_modules/lodash-es/_safeGet.js","webpack:///../../node_modules/lodash-es/toPlainObject.js","webpack:///../../node_modules/lodash-es/_baseMergeDeep.js","webpack:///../../node_modules/lodash-es/_baseMerge.js","webpack:///../../node_modules/lodash-es/merge.js","webpack:///../../node_modules/@braintree/sanitize-url/dist/constants.js","webpack:///../../node_modules/d3-array/src/max.js","webpack:///../../node_modules/d3-array/src/min.js","webpack:///../../node_modules/d3-axis/src/identity.js","webpack:///../../node_modules/d3-axis/src/axis.js","webpack:///../../node_modules/d3-selection/src/selector.js","webpack:///../../node_modules/d3-selection/src/selectorAll.js","webpack:///../../node_modules/d3-selection/src/matcher.js","webpack:///../../node_modules/d3-selection/src/selection/selectChild.js","webpack:///../../node_modules/d3-selection/src/selection/selectChildren.js","webpack:///../../node_modules/d3-selection/src/selection/sparse.js","webpack:///../../node_modules/d3-selection/src/selection/enter.js","webpack:///../../node_modules/d3-selection/src/selection/data.js","webpack:///../../node_modules/d3-selection/src/selection/sort.js","webpack:///../../node_modules/d3-selection/src/namespaces.js","webpack:///../../node_modules/d3-selection/src/namespace.js","webpack:///../../node_modules/d3-selection/src/selection/attr.js","webpack:///../../node_modules/d3-selection/src/window.js","webpack:///../../node_modules/d3-selection/src/selection/style.js","webpack:///../../node_modules/d3-selection/src/selection/property.js","webpack:///../../node_modules/d3-selection/src/selection/classed.js","webpack:///../../node_modules/d3-selection/src/selection/text.js","webpack:///../../node_modules/d3-selection/src/selection/html.js","webpack:///../../node_modules/d3-selection/src/selection/raise.js","webpack:///../../node_modules/d3-selection/src/selection/lower.js","webpack:///../../node_modules/d3-selection/src/creator.js","webpack:///../../node_modules/d3-selection/src/selection/insert.js","webpack:///../../node_modules/d3-selection/src/selection/remove.js","webpack:///../../node_modules/d3-selection/src/selection/clone.js","webpack:///../../node_modules/d3-selection/src/selection/on.js","webpack:///../../node_modules/d3-selection/src/selection/dispatch.js","webpack:///../../node_modules/d3-selection/src/selection/index.js","webpack:///../../node_modules/d3-selection/src/selection/select.js","webpack:///../../node_modules/d3-selection/src/selection/selectAll.js","webpack:///../../node_modules/d3-selection/src/array.js","webpack:///../../node_modules/d3-selection/src/selection/filter.js","webpack:///../../node_modules/d3-selection/src/constant.js","webpack:///../../node_modules/d3-selection/src/selection/exit.js","webpack:///../../node_modules/d3-selection/src/selection/join.js","webpack:///../../node_modules/d3-selection/src/selection/merge.js","webpack:///../../node_modules/d3-selection/src/selection/order.js","webpack:///../../node_modules/d3-selection/src/selection/call.js","webpack:///../../node_modules/d3-selection/src/selection/nodes.js","webpack:///../../node_modules/d3-selection/src/selection/node.js","webpack:///../../node_modules/d3-selection/src/selection/size.js","webpack:///../../node_modules/d3-selection/src/selection/empty.js","webpack:///../../node_modules/d3-selection/src/selection/each.js","webpack:///../../node_modules/d3-selection/src/selection/append.js","webpack:///../../node_modules/d3-selection/src/selection/datum.js","webpack:///../../node_modules/d3-selection/src/selection/iterator.js","webpack:///../../node_modules/d3-dispatch/src/dispatch.js","webpack:///../../node_modules/d3-timer/src/timer.js","webpack:///../../node_modules/d3-timer/src/timeout.js","webpack:///../../node_modules/d3-transition/src/transition/schedule.js","webpack:///../../node_modules/d3-interpolate/src/number.js","webpack:///../../node_modules/d3-interpolate/src/transform/decompose.js","webpack:///../../node_modules/d3-interpolate/src/transform/parse.js","webpack:///../../node_modules/d3-interpolate/src/transform/index.js","webpack:///../../node_modules/d3-transition/src/transition/tween.js","webpack:///../../node_modules/d3-transition/node_modules/d3-color/src/define.js","webpack:///../../node_modules/d3-transition/node_modules/d3-color/src/color.js","webpack:///../../node_modules/d3-interpolate/node_modules/d3-color/src/define.js","webpack:///../../node_modules/d3-interpolate/node_modules/d3-color/src/color.js","webpack:///../../node_modules/d3-interpolate/src/basis.js","webpack:///../../node_modules/d3-interpolate/src/constant.js","webpack:///../../node_modules/d3-interpolate/src/color.js","webpack:///../../node_modules/d3-interpolate/src/rgb.js","webpack:///../../node_modules/d3-interpolate/src/basisClosed.js","webpack:///../../node_modules/d3-interpolate/src/string.js","webpack:///../../node_modules/d3-transition/src/transition/interpolate.js","webpack:///../../node_modules/d3-transition/src/transition/attr.js","webpack:///../../node_modules/d3-transition/src/transition/attrTween.js","webpack:///../../node_modules/d3-transition/src/transition/delay.js","webpack:///../../node_modules/d3-transition/src/transition/duration.js","webpack:///../../node_modules/d3-transition/src/transition/selection.js","webpack:///../../node_modules/d3-transition/src/transition/style.js","webpack:///../../node_modules/d3-transition/src/transition/index.js","webpack:///../../node_modules/d3-transition/src/transition/select.js","webpack:///../../node_modules/d3-transition/src/transition/selectAll.js","webpack:///../../node_modules/d3-transition/src/transition/filter.js","webpack:///../../node_modules/d3-transition/src/transition/merge.js","webpack:///../../node_modules/d3-transition/src/transition/transition.js","webpack:///../../node_modules/d3-transition/src/transition/on.js","webpack:///../../node_modules/d3-transition/src/transition/styleTween.js","webpack:///../../node_modules/d3-transition/src/transition/text.js","webpack:///../../node_modules/d3-transition/src/transition/textTween.js","webpack:///../../node_modules/d3-transition/src/transition/remove.js","webpack:///../../node_modules/d3-transition/src/transition/ease.js","webpack:///../../node_modules/d3-transition/src/transition/easeVarying.js","webpack:///../../node_modules/d3-transition/src/transition/end.js","webpack:///../../node_modules/d3-transition/src/selection/transition.js","webpack:///../../node_modules/d3-ease/src/cubic.js","webpack:///../../node_modules/d3-transition/src/selection/index.js","webpack:///../../node_modules/d3-transition/src/selection/interrupt.js","webpack:///../../node_modules/d3-transition/src/interrupt.js","webpack:///../../node_modules/d3-brush/src/brush.js","webpack:///../../node_modules/d3-format/src/formatDecimal.js","webpack:///../../node_modules/d3-format/src/exponent.js","webpack:///../../node_modules/d3-format/src/formatSpecifier.js","webpack:///../../node_modules/d3-format/src/formatPrefixAuto.js","webpack:///../../node_modules/d3-format/src/formatRounded.js","webpack:///../../node_modules/d3-format/src/formatTypes.js","webpack:///../../node_modules/d3-format/src/identity.js","webpack:///../../node_modules/d3-format/src/locale.js","webpack:///../../node_modules/d3-format/src/defaultLocale.js","webpack:///../../node_modules/d3-hierarchy/src/hierarchy/count.js","webpack:///../../node_modules/d3-hierarchy/src/hierarchy/index.js","webpack:///../../node_modules/d3-hierarchy/src/treemap/round.js","webpack:///../../node_modules/d3-hierarchy/src/treemap/dice.js","webpack:///../../node_modules/d3-hierarchy/src/treemap/slice.js","webpack:///../../node_modules/d3-format/src/formatGroup.js","webpack:///../../node_modules/d3-format/src/formatNumerals.js","webpack:///../../node_modules/d3-format/src/formatTrim.js","webpack:///../../node_modules/d3-hierarchy/src/hierarchy/each.js","webpack:///../../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","webpack:///../../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","webpack:///../../node_modules/d3-hierarchy/src/hierarchy/find.js","webpack:///../../node_modules/d3-hierarchy/src/hierarchy/sum.js","webpack:///../../node_modules/d3-hierarchy/src/hierarchy/sort.js","webpack:///../../node_modules/d3-hierarchy/src/hierarchy/path.js","webpack:///../../node_modules/d3-hierarchy/src/hierarchy/ancestors.js","webpack:///../../node_modules/d3-hierarchy/src/hierarchy/descendants.js","webpack:///../../node_modules/d3-hierarchy/src/hierarchy/leaves.js","webpack:///../../node_modules/d3-hierarchy/src/hierarchy/links.js","webpack:///../../node_modules/d3-hierarchy/src/hierarchy/iterator.js","webpack:///../../node_modules/d3-hierarchy/src/treemap/squarify.js","webpack:///../../node_modules/d3-hierarchy/src/constant.js","webpack:///../../node_modules/d3-hierarchy/src/treemap/index.js","webpack:///../../node_modules/d3-hierarchy/src/accessors.js","webpack:///../../node_modules/d3-interpolate/node_modules/d3-color/src/math.js","webpack:///../../node_modules/d3-interpolate/node_modules/d3-color/src/lab.js","webpack:///../../node_modules/d3-interpolate/src/hcl.js","webpack:///../../node_modules/d3-scale/src/init.js","webpack:///../../node_modules/internmap/src/index.js","webpack:///../../node_modules/d3-scale/src/ordinal.js","webpack:///../../node_modules/d3-scale/src/band.js","webpack:///../../node_modules/d3-array/src/range.js","webpack:///../../node_modules/d3-array/src/ticks.js","webpack:///../../node_modules/d3-array/src/ascending.js","webpack:///../../node_modules/d3-array/src/descending.js","webpack:///../../node_modules/d3-array/src/bisector.js","webpack:///../../node_modules/d3-array/src/bisect.js","webpack:///../../node_modules/d3-array/src/number.js","webpack:///../../node_modules/d3-interpolate/src/array.js","webpack:///../../node_modules/d3-interpolate/src/date.js","webpack:///../../node_modules/d3-interpolate/src/object.js","webpack:///../../node_modules/d3-interpolate/src/numberArray.js","webpack:///../../node_modules/d3-interpolate/src/value.js","webpack:///../../node_modules/d3-interpolate/src/round.js","webpack:///../../node_modules/d3-scale/src/number.js","webpack:///../../node_modules/d3-scale/src/continuous.js","webpack:///../../node_modules/d3-scale/src/constant.js","webpack:///../../node_modules/d3-scale/src/linear.js","webpack:///../../node_modules/d3-scale/src/tickFormat.js","webpack:///../../node_modules/d3-format/src/precisionPrefix.js","webpack:///../../node_modules/d3-format/src/precisionRound.js","webpack:///../../node_modules/d3-format/src/precisionFixed.js","webpack:///../../node_modules/d3-time/src/duration.js","webpack:///../../node_modules/d3-time/src/interval.js","webpack:///../../node_modules/d3-time/src/millisecond.js","webpack:///../../node_modules/d3-time/src/second.js","webpack:///../../node_modules/d3-time/src/minute.js","webpack:///../../node_modules/d3-time/src/hour.js","webpack:///../../node_modules/d3-time/src/day.js","webpack:///../../node_modules/d3-time/src/week.js","webpack:///../../node_modules/d3-time/src/month.js","webpack:///../../node_modules/d3-time/src/year.js","webpack:///../../node_modules/d3-time/src/ticks.js","webpack:///../../node_modules/d3-time-format/src/locale.js","webpack:///../../node_modules/d3-time-format/src/defaultLocale.js","webpack:///../../node_modules/d3-scale/src/time.js","webpack:///../../node_modules/d3-scale/src/nice.js","webpack:///../../node_modules/d3-scale-chromatic/src/categorical/Tableau10.js","webpack:///../../node_modules/d3-scale-chromatic/src/colors.js","webpack:///../../node_modules/d3-selection/src/select.js","webpack:///../../node_modules/d3-shape/src/constant.js","webpack:///../../node_modules/d3-shape/src/math.js","webpack:///../../node_modules/d3-path/src/path.js","webpack:///../../node_modules/d3-shape/src/path.js","webpack:///../../node_modules/d3-shape/src/arc.js","webpack:///../../node_modules/d3-shape/src/array.js","webpack:///../../node_modules/d3-shape/src/curve/linear.js","webpack:///../../node_modules/d3-shape/src/point.js","webpack:///../../node_modules/d3-shape/src/line.js","webpack:///../../node_modules/d3-shape/src/descending.js","webpack:///../../node_modules/d3-shape/src/identity.js","webpack:///../../node_modules/d3-shape/src/pie.js","webpack:///../../node_modules/d3-shape/src/noop.js","webpack:///../../node_modules/d3-shape/src/curve/basis.js","webpack:///../../node_modules/d3-shape/src/curve/basisClosed.js","webpack:///../../node_modules/d3-shape/src/curve/basisOpen.js","webpack:///../../node_modules/d3-shape/src/curve/bump.js","webpack:///../../node_modules/d3-shape/src/curve/bundle.js","webpack:///../../node_modules/d3-shape/src/curve/cardinal.js","webpack:///../../node_modules/d3-shape/src/curve/cardinalClosed.js","webpack:///../../node_modules/d3-shape/src/curve/cardinalOpen.js","webpack:///../../node_modules/d3-shape/src/curve/catmullRom.js","webpack:///../../node_modules/d3-shape/src/curve/catmullRomClosed.js","webpack:///../../node_modules/d3-shape/src/curve/catmullRomOpen.js","webpack:///../../node_modules/d3-shape/src/curve/linearClosed.js","webpack:///../../node_modules/d3-shape/src/curve/monotone.js","webpack:///../../node_modules/d3-shape/src/curve/natural.js","webpack:///../../node_modules/d3-shape/src/curve/step.js","webpack:///../../node_modules/d3-zoom/src/transform.js","webpack:///../../node_modules/lodash-es/_nativeCreate.js","webpack:///../../node_modules/lodash-es/_hashGet.js","webpack:///../../node_modules/lodash-es/_hashHas.js","webpack:///../../node_modules/lodash-es/_Hash.js","webpack:///../../node_modules/lodash-es/_hashClear.js","webpack:///../../node_modules/lodash-es/_hashDelete.js","webpack:///../../node_modules/lodash-es/_hashSet.js","webpack:///../../node_modules/lodash-es/_mapCacheClear.js","webpack:///../../node_modules/lodash-es/_getMapData.js","webpack:///../../node_modules/lodash-es/_isKeyable.js","webpack:///../../node_modules/lodash-es/_MapCache.js","webpack:///../../node_modules/lodash-es/_mapCacheDelete.js","webpack:///../../node_modules/lodash-es/_mapCacheGet.js","webpack:///../../node_modules/lodash-es/_mapCacheHas.js","webpack:///../../node_modules/lodash-es/_mapCacheSet.js","webpack:///../../node_modules/dayjs/dayjs.min.js","webpack:///../../node_modules/lodash-es/_Symbol.js","webpack:///../../node_modules/khroma/dist/channels/type.js","webpack:///../../node_modules/khroma/dist/channels/reusable.js","webpack:///../../node_modules/khroma/dist/channels/index.js","webpack:///../../node_modules/lodash-es/_getRawTag.js","webpack:///../../node_modules/lodash-es/_objectToString.js","webpack:///../../node_modules/lodash-es/_baseGetTag.js","webpack:///../../node_modules/lodash-es/identity.js","webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-M6DAPIYF.mjs","webpack:///../../node_modules/lodash-es/isBuffer.js","webpack:///../../node_modules/lodash-es/stubFalse.js","webpack:///../../node_modules/khroma/dist/constants.js","webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-JW4RIYDF.mjs","webpack:///../../node_modules/lodash-es/_getPrototype.js","webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-RKKUNAVE.mjs","webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-P3VETL53.mjs","webpack:///../../node_modules/lodash-es/_cloneTypedArray.js","webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-55PJQP7W.mjs","webpack:///../../node_modules/lodash-es/_isIndex.js","webpack:///../../node_modules/lodash-es/_Map.js","webpack:///../../node_modules/khroma/dist/utils/channel.js","webpack:///../../node_modules/khroma/dist/utils/index.js","webpack:///../../node_modules/khroma/dist/utils/lang.js","webpack:///../../node_modules/khroma/dist/utils/unit.js","webpack:///../../node_modules/khroma/dist/methods/adjust_channel.js","webpack:///../../node_modules/lodash-es/isEmpty.js","webpack:///../../node_modules/lodash-es/_assocIndexOf.js","webpack:///../../node_modules/lodash-es/_listCacheDelete.js","webpack:///../../node_modules/lodash-es/_ListCache.js","webpack:///../../node_modules/lodash-es/_listCacheClear.js","webpack:///../../node_modules/lodash-es/_listCacheGet.js","webpack:///../../node_modules/lodash-es/_listCacheHas.js","webpack:///../../node_modules/lodash-es/_listCacheSet.js","webpack:///../../node_modules/lodash-es/_assignValue.js","webpack:///../../node_modules/khroma/dist/methods/change.js","webpack:///../../node_modules/lodash-es/_overRest.js","webpack:///../../node_modules/lodash-es/_apply.js","webpack:///../../node_modules/lodash-es/_isIterateeCall.js","webpack:///../../node_modules/lodash-es/_freeGlobal.js","webpack:///../../node_modules/lodash-es/_Stack.js","webpack:///../../node_modules/lodash-es/_stackClear.js","webpack:///../../node_modules/lodash-es/_stackDelete.js","webpack:///../../node_modules/lodash-es/_stackGet.js","webpack:///../../node_modules/lodash-es/_stackHas.js","webpack:///../../node_modules/lodash-es/_stackSet.js","webpack:///../../node_modules/lodash-es/isArray.js","webpack:///../../node_modules/lodash-es/eq.js","webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-MXNHSMXR.mjs","webpack:///../../node_modules/roughjs/bundled/rough.esm.js","webpack:///../../node_modules/lodash-es/_overArg.js","webpack:///../../node_modules/lodash-es/_arrayLikeKeys.js","webpack:///../../node_modules/lodash-es/_baseTimes.js","webpack:///../../node_modules/lodash-es/isObjectLike.js","webpack:///../../node_modules/lodash-es/_DataView.js","webpack:///../../node_modules/lodash-es/_Promise.js","webpack:///../../node_modules/lodash-es/_WeakMap.js","webpack:///../../node_modules/lodash-es/_getTag.js","webpack:///../../node_modules/stylis/src/Enum.js","webpack:///../../node_modules/stylis/src/Utility.js","webpack:///../../node_modules/stylis/src/Serializer.js","webpack:///../../node_modules/stylis/src/Tokenizer.js","webpack:///../../node_modules/stylis/src/Parser.js","webpack:///../../node_modules/mermaid/dist/mermaid.core.mjs","webpack:///../../node_modules/lodash-es/_baseSetToString.js","webpack:///../../node_modules/lodash-es/_shortOut.js","webpack:///../../node_modules/lodash-es/_setToString.js","webpack:///../../node_modules/khroma/dist/methods/darken.js","webpack:///../../node_modules/lodash-es/constant.js","webpack:///../../node_modules/lodash-es/isLength.js","webpack:///../../node_modules/lodash-es/_Uint8Array.js","webpack:///../../node_modules/lodash-es/isObject.js","webpack:///../../node_modules/khroma/dist/methods/lighten.js","webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-UWXLY5YG.mjs","webpack:///../../node_modules/@braintree/sanitize-url/dist/index.js","webpack:///../../node_modules/lodash-es/_createAssigner.js","webpack:///../../node_modules/lodash-es/_copyObject.js","webpack:///../../node_modules/khroma/dist/methods/adjust.js","webpack:///../../node_modules/khroma/dist/methods/mix.js","webpack:///../../node_modules/khroma/dist/methods/invert.js","webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-3XYRH5AP.mjs","webpack:///../../node_modules/lodash-es/_baseUnary.js","webpack:///../../node_modules/lodash-es/_baseCreate.js","webpack:///../../node_modules/lodash-es/_initCloneObject.js","webpack:///../../node_modules/lodash-es/_nativeKeys.js","webpack:///../../node_modules/lodash-es/_baseKeys.js","webpack:///../../node_modules/lodash-es/_Set.js","webpack:///../../node_modules/lodash-es/_cloneArrayBuffer.js","webpack:///../../node_modules/lodash-es/_baseIsArguments.js","webpack:///../../node_modules/lodash-es/isArguments.js","webpack:///../../node_modules/ts-dedent/esm/index.js","webpack:///../../node_modules/lodash-es/_toSource.js","webpack:///../../node_modules/lodash-es/_baseAssignValue.js","webpack:///../../node_modules/lodash-es/_root.js","webpack:///../../node_modules/lodash-es/memoize.js"],"sourcesContent":["/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","const matchIconName = /^[a-z0-9]+(-[a-z0-9]+)*$/;\nconst stringToIcon = (value, validate, allowSimpleName, provider = \"\") => {\n const colonSeparated = value.split(\":\");\n if (value.slice(0, 1) === \"@\") {\n if (colonSeparated.length < 2 || colonSeparated.length > 3) {\n return null;\n }\n provider = colonSeparated.shift().slice(1);\n }\n if (colonSeparated.length > 3 || !colonSeparated.length) {\n return null;\n }\n if (colonSeparated.length > 1) {\n const name2 = colonSeparated.pop();\n const prefix = colonSeparated.pop();\n const result = {\n // Allow provider without '@': \"provider:prefix:name\"\n provider: colonSeparated.length > 0 ? colonSeparated[0] : provider,\n prefix,\n name: name2\n };\n return validate && !validateIconName(result) ? null : result;\n }\n const name = colonSeparated[0];\n const dashSeparated = name.split(\"-\");\n if (dashSeparated.length > 1) {\n const result = {\n provider,\n prefix: dashSeparated.shift(),\n name: dashSeparated.join(\"-\")\n };\n return validate && !validateIconName(result) ? null : result;\n }\n if (allowSimpleName && provider === \"\") {\n const result = {\n provider,\n prefix: \"\",\n name\n };\n return validate && !validateIconName(result, allowSimpleName) ? null : result;\n }\n return null;\n};\nconst validateIconName = (icon, allowSimpleName) => {\n if (!icon) {\n return false;\n }\n return !!// Check prefix: cannot be empty, unless allowSimpleName is enabled\n // Check name: cannot be empty\n ((allowSimpleName && icon.prefix === \"\" || !!icon.prefix) && !!icon.name);\n};\n\nexport { matchIconName, stringToIcon, validateIconName };\n","const defaultIconDimensions = Object.freeze(\n {\n left: 0,\n top: 0,\n width: 16,\n height: 16\n }\n);\nconst defaultIconTransformations = Object.freeze({\n rotate: 0,\n vFlip: false,\n hFlip: false\n});\nconst defaultIconProps = Object.freeze({\n ...defaultIconDimensions,\n ...defaultIconTransformations\n});\nconst defaultExtendedIconProps = Object.freeze({\n ...defaultIconProps,\n body: \"\",\n hidden: false\n});\n\nexport { defaultExtendedIconProps, defaultIconDimensions, defaultIconProps, defaultIconTransformations };\n","import { defaultExtendedIconProps, defaultIconTransformations } from './defaults.mjs';\nimport { mergeIconTransformations } from './transformations.mjs';\n\nfunction mergeIconData(parent, child) {\n const result = mergeIconTransformations(parent, child);\n for (const key in defaultExtendedIconProps) {\n if (key in defaultIconTransformations) {\n if (key in parent && !(key in result)) {\n result[key] = defaultIconTransformations[key];\n }\n } else if (key in child) {\n result[key] = child[key];\n } else if (key in parent) {\n result[key] = parent[key];\n }\n }\n return result;\n}\n\nexport { mergeIconData };\n","function mergeIconTransformations(obj1, obj2) {\n const result = {};\n if (!obj1.hFlip !== !obj2.hFlip) {\n result.hFlip = true;\n }\n if (!obj1.vFlip !== !obj2.vFlip) {\n result.vFlip = true;\n }\n const rotate = ((obj1.rotate || 0) + (obj2.rotate || 0)) % 4;\n if (rotate) {\n result.rotate = rotate;\n }\n return result;\n}\n\nexport { mergeIconTransformations };\n","import { mergeIconData } from '../icon/merge.mjs';\nimport { getIconsTree } from './tree.mjs';\nimport '../icon/defaults.mjs';\nimport '../icon/transformations.mjs';\n\nfunction internalGetIconData(data, name, tree) {\n const icons = data.icons;\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n let currentProps = {};\n function parse(name2) {\n currentProps = mergeIconData(\n icons[name2] || aliases[name2],\n currentProps\n );\n }\n parse(name);\n tree.forEach(parse);\n return mergeIconData(data, currentProps);\n}\nfunction getIconData(data, name) {\n if (data.icons[name]) {\n return internalGetIconData(data, name, []);\n }\n const tree = getIconsTree(data, [name])[name];\n return tree ? internalGetIconData(data, name, tree) : null;\n}\n\nexport { getIconData, internalGetIconData };\n","import { defaultIconTransformations } from '../icon/defaults.mjs';\n\nconst defaultIconSizeCustomisations = Object.freeze({\n width: null,\n height: null\n});\nconst defaultIconCustomisations = Object.freeze({\n // Dimensions\n ...defaultIconSizeCustomisations,\n // Transformations\n ...defaultIconTransformations\n});\n\nexport { defaultIconCustomisations, defaultIconSizeCustomisations };\n","const unitsSplit = /(-?[0-9.]*[0-9]+[0-9.]*)/g;\nconst unitsTest = /^-?[0-9.]*[0-9]+[0-9.]*$/g;\nfunction calculateSize(size, ratio, precision) {\n if (ratio === 1) {\n return size;\n }\n precision = precision || 100;\n if (typeof size === \"number\") {\n return Math.ceil(size * ratio * precision) / precision;\n }\n if (typeof size !== \"string\") {\n return size;\n }\n const oldParts = size.split(unitsSplit);\n if (oldParts === null || !oldParts.length) {\n return size;\n }\n const newParts = [];\n let code = oldParts.shift();\n let isNumber = unitsTest.test(code);\n while (true) {\n if (isNumber) {\n const num = parseFloat(code);\n if (isNaN(num)) {\n newParts.push(code);\n } else {\n newParts.push(Math.ceil(num * ratio * precision) / precision);\n }\n } else {\n newParts.push(code);\n }\n code = oldParts.shift();\n if (code === void 0) {\n return newParts.join(\"\");\n }\n isNumber = !isNumber;\n }\n}\n\nexport { calculateSize };\n","const regex = /\\sid=\"(\\S+)\"/g;\nconst randomPrefix = \"IconifyId\" + Date.now().toString(16) + (Math.random() * 16777216 | 0).toString(16);\nlet counter = 0;\nfunction replaceIDs(body, prefix = randomPrefix) {\n const ids = [];\n let match;\n while (match = regex.exec(body)) {\n ids.push(match[1]);\n }\n if (!ids.length) {\n return body;\n }\n const suffix = \"suffix\" + (Math.random() * 16777216 | Date.now()).toString(16);\n ids.forEach((id) => {\n const newID = typeof prefix === \"function\" ? prefix(id) : prefix + (counter++).toString();\n const escapedID = id.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n body = body.replace(\n // Allowed characters before id: [#;\"]\n // Allowed characters after id: [)\"], .[a-z]\n new RegExp('([#;\"])(' + escapedID + ')([\")]|\\\\.[a-z])', \"g\"),\n \"$1\" + newID + suffix + \"$3\"\n );\n });\n body = body.replace(new RegExp(suffix, \"g\"), \"\");\n return body;\n}\n\nexport { replaceIDs };\n","/**\n * marked v16.1.1 - a markdown parser\n * Copyright (c) 2011-2025, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\nfunction L(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var O=L();function H(l){O=l}var E={exec:()=>null};function h(l,e=\"\"){let t=typeof l==\"string\"?l:l.source,n={replace:(r,i)=>{let s=typeof i==\"string\"?i:i.source;return s=s.replace(m.caret,\"$1\"),t=t.replace(r,s),n},getRegex:()=>new RegExp(t,e)};return n}var m={codeRemoveIndent:/^(?: {1,4}| {0,3}\\t)/gm,outputLinkReplace:/\\\\([\\[\\]])/g,indentCodeCompensation:/^(\\s+)(?:```)/,beginningSpace:/^\\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\\n/g,tabCharGlobal:/\\t/g,multipleSpaceGlobal:/\\s+/g,blankLine:/^[ \\t]*$/,doubleBlankLine:/\\n[ \\t]*\\n[ \\t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \\t]?/gm,listReplaceTabs:/^\\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\\[[ xX]\\] /,listReplaceTask:/^\\[[ xX]\\] +/,anyLine:/\\n.*\\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\\||\\| *$/g,tableRowBlankLine:/\\n[ \\t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\\s|>)/i,endPreScriptTag:/^<\\/(pre|code|kbd|script)(\\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/,unicodeAlphaNumeric:/[\\p{L}\\p{N}]/u,escapeTest:/[&<>\"']/,escapeReplace:/[&<>\"']/g,escapeTestNoEncode:/[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,escapeReplaceNoEncode:/[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/g,unescapeTest:/&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig,caret:/(^|[^\\[])\\^/g,percentDecode:/%25/g,findPipe:/\\|/g,splitPipe:/ \\|/,slashPipe:/\\\\\\|/g,carriageReturn:/\\r\\n|\\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\\S*/,endingNewline:/\\n$/,listItemRegex:l=>new RegExp(`^( {0,3}${l})((?:[\t ][^\\\\n]*)?(?:\\\\n|$))`),nextBulletRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \t][^\\\\n]*)?(?:\\\\n|$))`),hrRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`),fencesBeginRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}(?:\\`\\`\\`|~~~)`),headingBeginRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}#`),htmlBeginRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}<(?:[a-z].*>|!--)`,\"i\")},xe=/^(?:[ \\t]*(?:\\n|$))+/,be=/^((?: {4}| {0,3}\\t)[^\\n]+(?:\\n(?:[ \\t]*(?:\\n|$))*)?)+/,Re=/^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,C=/^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/,Oe=/^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,j=/(?:[*+-]|\\d{1,9}[.)])/,se=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,ie=h(se).replace(/bull/g,j).replace(/blockCode/g,/(?: {4}| {0,3}\\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\\n>]+>\\n/).replace(/\\|table/g,\"\").getRegex(),Te=h(se).replace(/bull/g,j).replace(/blockCode/g,/(?: {4}| {0,3}\\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\\n>]+>\\n/).replace(/table/g,/ {0,3}\\|?(?:[:\\- ]*\\|)+[\\:\\- ]*\\n/).getRegex(),F=/^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,we=/^[^\\n]+/,Q=/(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/,ye=h(/^ {0,3}\\[(label)\\]: *(?:\\n[ \\t]*)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n[ \\t]*)?| *\\n[ \\t]*)(title))? *(?:\\n+|$)/).replace(\"label\",Q).replace(\"title\",/(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/).getRegex(),Pe=h(/^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/).replace(/bull/g,j).getRegex(),v=\"address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul\",U=/<!--(?:-?>|[\\s\\S]*?(?:-->|$))/,Se=h(\"^ {0,3}(?:<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)|comment[^\\\\n]*(\\\\n+|$)|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$))\",\"i\").replace(\"comment\",U).replace(\"tag\",v).replace(\"attribute\",/ +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex(),oe=h(F).replace(\"hr\",C).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\",\"\").replace(\"|table\",\"\").replace(\"blockquote\",\" {0,3}>\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",v).getRegex(),$e=h(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/).replace(\"paragraph\",oe).getRegex(),K={blockquote:$e,code:be,def:ye,fences:Re,heading:Oe,hr:C,html:Se,lheading:ie,list:Pe,newline:xe,paragraph:oe,table:E,text:we},re=h(\"^ *([^\\\\n ].*)\\\\n {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)\").replace(\"hr\",C).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"blockquote\",\" {0,3}>\").replace(\"code\",\"(?: {4}| {0,3}\t)[^\\\\n]\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",v).getRegex(),_e={...K,lheading:Te,table:re,paragraph:h(F).replace(\"hr\",C).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\",\"\").replace(\"table\",re).replace(\"blockquote\",\" {0,3}>\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",v).getRegex()},Le={...K,html:h(`^ *(?:comment *(?:\\\\n|\\\\s*$)|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\\\s[^'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))`).replace(\"comment\",U).replace(/tag/g,\"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b\").getRegex(),def:/^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,heading:/^(#{1,6})(.*)(?:\\n+|$)/,fences:E,lheading:/^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,paragraph:h(F).replace(\"hr\",C).replace(\"heading\",` *#{1,6} *[^\n]`).replace(\"lheading\",ie).replace(\"|table\",\"\").replace(\"blockquote\",\" {0,3}>\").replace(\"|fences\",\"\").replace(\"|list\",\"\").replace(\"|html\",\"\").replace(\"|tag\",\"\").getRegex()},Me=/^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,ze=/^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,ae=/^( {2,}|\\\\)\\n(?!\\s*$)/,Ae=/^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,D=/[\\p{P}\\p{S}]/u,X=/[\\s\\p{P}\\p{S}]/u,le=/[^\\s\\p{P}\\p{S}]/u,Ee=h(/^((?![*_])punctSpace)/,\"u\").replace(/punctSpace/g,X).getRegex(),ue=/(?!~)[\\p{P}\\p{S}]/u,Ce=/(?!~)[\\s\\p{P}\\p{S}]/u,Ie=/(?:[^\\s\\p{P}\\p{S}]|~)/u,Be=/\\[[^[\\]]*?\\]\\((?:\\\\.|[^\\\\\\(\\)]|\\((?:\\\\.|[^\\\\\\(\\)])*\\))*\\)|`[^`]*?`|<(?! )[^<>]*?>/g,pe=/^(?:\\*+(?:((?!\\*)punct)|[^\\s*]))|^_+(?:((?!_)punct)|([^\\s_]))/,qe=h(pe,\"u\").replace(/punct/g,D).getRegex(),ve=h(pe,\"u\").replace(/punct/g,ue).getRegex(),ce=\"^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)|(?!\\\\*)punctSpace(\\\\*+)(?=notPunctSpace)|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)|notPunctSpace(\\\\*+)(?=notPunctSpace)\",De=h(ce,\"gu\").replace(/notPunctSpace/g,le).replace(/punctSpace/g,X).replace(/punct/g,D).getRegex(),Ze=h(ce,\"gu\").replace(/notPunctSpace/g,Ie).replace(/punctSpace/g,Ce).replace(/punct/g,ue).getRegex(),Ge=h(\"^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)\",\"gu\").replace(/notPunctSpace/g,le).replace(/punctSpace/g,X).replace(/punct/g,D).getRegex(),He=h(/\\\\(punct)/,\"gu\").replace(/punct/g,D).getRegex(),Ne=h(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/).replace(\"scheme\",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(\"email\",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),je=h(U).replace(\"(?:-->|$)\",\"-->\").getRegex(),Fe=h(\"^comment|^</[a-zA-Z][\\\\w:-]*\\\\s*>|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>|^<\\\\?[\\\\s\\\\S]*?\\\\?>|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\").replace(\"comment\",je).replace(\"attribute\",/\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/).getRegex(),q=/(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/,Qe=h(/^!?\\[(label)\\]\\(\\s*(href)(?:(?:[ \\t]*(?:\\n[ \\t]*)?)(title))?\\s*\\)/).replace(\"label\",q).replace(\"href\",/<(?:\\\\.|[^\\n<>\\\\])+>|[^ \\t\\n\\x00-\\x1f]*/).replace(\"title\",/\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/).getRegex(),he=h(/^!?\\[(label)\\]\\[(ref)\\]/).replace(\"label\",q).replace(\"ref\",Q).getRegex(),de=h(/^!?\\[(ref)\\](?:\\[\\])?/).replace(\"ref\",Q).getRegex(),Ue=h(\"reflink|nolink(?!\\\\()\",\"g\").replace(\"reflink\",he).replace(\"nolink\",de).getRegex(),W={_backpedal:E,anyPunctuation:He,autolink:Ne,blockSkip:Be,br:ae,code:ze,del:E,emStrongLDelim:qe,emStrongRDelimAst:De,emStrongRDelimUnd:Ge,escape:Me,link:Qe,nolink:de,punctuation:Ee,reflink:he,reflinkSearch:Ue,tag:Fe,text:Ae,url:E},Ke={...W,link:h(/^!?\\[(label)\\]\\((.*?)\\)/).replace(\"label\",q).getRegex(),reflink:h(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace(\"label\",q).getRegex()},N={...W,emStrongRDelimAst:Ze,emStrongLDelim:ve,url:h(/^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\"i\").replace(\"email\",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,del:/^(~~?)(?=[^\\s~])((?:\\\\.|[^\\\\])*?(?:\\\\.|[^\\s~\\\\]))\\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/},Xe={...N,br:h(ae).replace(\"{2,}\",\"*\").getRegex(),text:h(N.text).replace(\"\\\\b_\",\"\\\\b_| {2,}\\\\n\").replace(/\\{2,\\}/g,\"*\").getRegex()},I={normal:K,gfm:_e,pedantic:Le},M={normal:W,gfm:N,breaks:Xe,pedantic:Ke};var We={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"},ke=l=>We[l];function w(l,e){if(e){if(m.escapeTest.test(l))return l.replace(m.escapeReplace,ke)}else if(m.escapeTestNoEncode.test(l))return l.replace(m.escapeReplaceNoEncode,ke);return l}function J(l){try{l=encodeURI(l).replace(m.percentDecode,\"%\")}catch{return null}return l}function V(l,e){let t=l.replace(m.findPipe,(i,s,o)=>{let a=!1,u=s;for(;--u>=0&&o[u]===\"\\\\\";)a=!a;return a?\"|\":\" |\"}),n=t.split(m.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length<e;)n.push(\"\");for(;r<n.length;r++)n[r]=n[r].trim().replace(m.slashPipe,\"|\");return n}function z(l,e,t){let n=l.length;if(n===0)return\"\";let r=0;for(;r<n;){let i=l.charAt(n-r-1);if(i===e&&!t)r++;else if(i!==e&&t)r++;else break}return l.slice(0,n-r)}function ge(l,e){if(l.indexOf(e[1])===-1)return-1;let t=0;for(let n=0;n<l.length;n++)if(l[n]===\"\\\\\")n++;else if(l[n]===e[0])t++;else if(l[n]===e[1]&&(t--,t<0))return n;return t>0?-2:-1}function fe(l,e,t,n,r){let i=e.href,s=e.title||null,o=l[1].replace(r.other.outputLinkReplace,\"$1\");n.state.inLink=!0;let a={type:l[0].charAt(0)===\"!\"?\"image\":\"link\",raw:t,href:i,title:s,text:o,tokens:n.inlineTokens(o)};return n.state.inLink=!1,a}function Je(l,e,t){let n=l.match(t.other.indentCodeCompensation);if(n===null)return e;let r=n[1];return e.split(`\n`).map(i=>{let s=i.match(t.other.beginningSpace);if(s===null)return i;let[o]=s;return o.length>=r.length?i.slice(r.length):i}).join(`\n`)}var y=class{options;rules;lexer;constructor(e){this.options=e||O}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:\"space\",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=t[0].replace(this.rules.other.codeRemoveIndent,\"\");return{type:\"code\",raw:t[0],codeBlockStyle:\"indented\",text:this.options.pedantic?n:z(n,`\n`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],r=Je(n,t[3]||\"\",this.rules);return{type:\"code\",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,\"$1\"):t[2],text:r}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let r=z(n,\"#\");(this.options.pedantic||!r||this.rules.other.endingSpaceChar.test(r))&&(n=r.trim())}return{type:\"heading\",raw:t[0],depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:\"hr\",raw:z(t[0],`\n`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=z(t[0],`\n`).split(`\n`),r=\"\",i=\"\",s=[];for(;n.length>0;){let o=!1,a=[],u;for(u=0;u<n.length;u++)if(this.rules.other.blockquoteStart.test(n[u]))a.push(n[u]),o=!0;else if(!o)a.push(n[u]);else break;n=n.slice(u);let p=a.join(`\n`),c=p.replace(this.rules.other.blockquoteSetextReplace,`\n $1`).replace(this.rules.other.blockquoteSetextReplace2,\"\");r=r?`${r}\n${p}`:p,i=i?`${i}\n${c}`:c;let f=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(c,s,!0),this.lexer.state.top=f,n.length===0)break;let k=s.at(-1);if(k?.type===\"code\")break;if(k?.type===\"blockquote\"){let x=k,g=x.raw+`\n`+n.join(`\n`),T=this.blockquote(g);s[s.length-1]=T,r=r.substring(0,r.length-x.raw.length)+T.raw,i=i.substring(0,i.length-x.text.length)+T.text;break}else if(k?.type===\"list\"){let x=k,g=x.raw+`\n`+n.join(`\n`),T=this.list(g);s[s.length-1]=T,r=r.substring(0,r.length-k.raw.length)+T.raw,i=i.substring(0,i.length-x.raw.length)+T.raw,n=g.substring(s.at(-1).raw.length).split(`\n`);continue}}return{type:\"blockquote\",raw:r,tokens:s,text:i}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),r=n.length>1,i={type:\"list\",raw:\"\",ordered:r,start:r?+n.slice(0,-1):\"\",loose:!1,items:[]};n=r?`\\\\d{1,9}\\\\${n.slice(-1)}`:`\\\\${n}`,this.options.pedantic&&(n=r?n:\"[*+-]\");let s=this.rules.other.listItemRegex(n),o=!1;for(;e;){let u=!1,p=\"\",c=\"\";if(!(t=s.exec(e))||this.rules.block.hr.test(e))break;p=t[0],e=e.substring(p.length);let f=t[2].split(`\n`,1)[0].replace(this.rules.other.listReplaceTabs,Z=>\" \".repeat(3*Z.length)),k=e.split(`\n`,1)[0],x=!f.trim(),g=0;if(this.options.pedantic?(g=2,c=f.trimStart()):x?g=t[1].length+1:(g=t[2].search(this.rules.other.nonSpaceChar),g=g>4?1:g,c=f.slice(g),g+=t[1].length),x&&this.rules.other.blankLine.test(k)&&(p+=k+`\n`,e=e.substring(k.length+1),u=!0),!u){let Z=this.rules.other.nextBulletRegex(g),ee=this.rules.other.hrRegex(g),te=this.rules.other.fencesBeginRegex(g),ne=this.rules.other.headingBeginRegex(g),me=this.rules.other.htmlBeginRegex(g);for(;e;){let G=e.split(`\n`,1)[0],A;if(k=G,this.options.pedantic?(k=k.replace(this.rules.other.listReplaceNesting,\" \"),A=k):A=k.replace(this.rules.other.tabCharGlobal,\" \"),te.test(k)||ne.test(k)||me.test(k)||Z.test(k)||ee.test(k))break;if(A.search(this.rules.other.nonSpaceChar)>=g||!k.trim())c+=`\n`+A.slice(g);else{if(x||f.replace(this.rules.other.tabCharGlobal,\" \").search(this.rules.other.nonSpaceChar)>=4||te.test(f)||ne.test(f)||ee.test(f))break;c+=`\n`+k}!x&&!k.trim()&&(x=!0),p+=G+`\n`,e=e.substring(G.length+1),f=A.slice(g)}}i.loose||(o?i.loose=!0:this.rules.other.doubleBlankLine.test(p)&&(o=!0));let T=null,Y;this.options.gfm&&(T=this.rules.other.listIsTask.exec(c),T&&(Y=T[0]!==\"[ ] \",c=c.replace(this.rules.other.listReplaceTask,\"\"))),i.items.push({type:\"list_item\",raw:p,task:!!T,checked:Y,loose:!1,text:c,tokens:[]}),i.raw+=p}let a=i.items.at(-1);if(a)a.raw=a.raw.trimEnd(),a.text=a.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let u=0;u<i.items.length;u++)if(this.lexer.state.top=!1,i.items[u].tokens=this.lexer.blockTokens(i.items[u].text,[]),!i.loose){let p=i.items[u].tokens.filter(f=>f.type===\"space\"),c=p.length>0&&p.some(f=>this.rules.other.anyLine.test(f.raw));i.loose=c}if(i.loose)for(let u=0;u<i.items.length;u++)i.items[u].loose=!0;return i}}html(e){let t=this.rules.block.html.exec(e);if(t)return{type:\"html\",block:!0,raw:t[0],pre:t[1]===\"pre\"||t[1]===\"script\"||t[1]===\"style\",text:t[0]}}def(e){let t=this.rules.block.def.exec(e);if(t){let n=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal,\" \"),r=t[2]?t[2].replace(this.rules.other.hrefBrackets,\"$1\").replace(this.rules.inline.anyPunctuation,\"$1\"):\"\",i=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,\"$1\"):t[3];return{type:\"def\",tag:n,raw:t[0],href:r,title:i}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=V(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,\"\").split(\"|\"),i=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,\"\").split(`\n`):[],s={type:\"table\",raw:t[0],header:[],align:[],rows:[]};if(n.length===r.length){for(let o of r)this.rules.other.tableAlignRight.test(o)?s.align.push(\"right\"):this.rules.other.tableAlignCenter.test(o)?s.align.push(\"center\"):this.rules.other.tableAlignLeft.test(o)?s.align.push(\"left\"):s.align.push(null);for(let o=0;o<n.length;o++)s.header.push({text:n[o],tokens:this.lexer.inline(n[o]),header:!0,align:s.align[o]});for(let o of i)s.rows.push(V(o,s.header.length).map((a,u)=>({text:a,tokens:this.lexer.inline(a),header:!1,align:s.align[u]})));return s}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t)return{type:\"heading\",raw:t[0],depth:t[2].charAt(0)===\"=\"?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)===`\n`?t[1].slice(0,-1):t[1];return{type:\"paragraph\",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:\"text\",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:\"escape\",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:\"html\",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let s=z(n.slice(0,-1),\"\\\\\");if((n.length-s.length)%2===0)return}else{let s=ge(t[2],\"()\");if(s===-2)return;if(s>-1){let a=(t[0].indexOf(\"!\")===0?5:4)+t[1].length+s;t[2]=t[2].substring(0,s),t[0]=t[0].substring(0,a).trim(),t[3]=\"\"}}let r=t[2],i=\"\";if(this.options.pedantic){let s=this.rules.other.pedanticHrefTitle.exec(r);s&&(r=s[1],i=s[3])}else i=t[3]?t[3].slice(1,-1):\"\";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?r=r.slice(1):r=r.slice(1,-1)),fe(t,{href:r&&r.replace(this.rules.inline.anyPunctuation,\"$1\"),title:i&&i.replace(this.rules.inline.anyPunctuation,\"$1\")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let r=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal,\" \"),i=t[r.toLowerCase()];if(!i){let s=n[0].charAt(0);return{type:\"text\",raw:s,text:s}}return fe(n,i,n[0],this.lexer,this.rules)}}emStrong(e,t,n=\"\"){let r=this.rules.inline.emStrongLDelim.exec(e);if(!r||r[3]&&n.match(this.rules.other.unicodeAlphaNumeric))return;if(!(r[1]||r[2]||\"\")||!n||this.rules.inline.punctuation.exec(n)){let s=[...r[0]].length-1,o,a,u=s,p=0,c=r[0][0]===\"*\"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(c.lastIndex=0,t=t.slice(-1*e.length+s);(r=c.exec(t))!=null;){if(o=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!o)continue;if(a=[...o].length,r[3]||r[4]){u+=a;continue}else if((r[5]||r[6])&&s%3&&!((s+a)%3)){p+=a;continue}if(u-=a,u>0)continue;a=Math.min(a,a+u+p);let f=[...r[0]][0].length,k=e.slice(0,s+r.index+f+a);if(Math.min(s,a)%2){let g=k.slice(1,-1);return{type:\"em\",raw:k,text:g,tokens:this.lexer.inlineTokens(g)}}let x=k.slice(2,-2);return{type:\"strong\",raw:k,text:x,tokens:this.lexer.inlineTokens(x)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal,\" \"),r=this.rules.other.nonSpaceChar.test(n),i=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return r&&i&&(n=n.substring(1,n.length-1)),{type:\"codespan\",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:\"br\",raw:t[0]}}del(e){let t=this.rules.inline.del.exec(e);if(t)return{type:\"del\",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,r;return t[2]===\"@\"?(n=t[1],r=\"mailto:\"+n):(n=t[1],r=n),{type:\"link\",raw:t[0],text:n,href:r,tokens:[{type:\"text\",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,r;if(t[2]===\"@\")n=t[0],r=\"mailto:\"+n;else{let i;do i=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??\"\";while(i!==t[0]);n=t[0],t[1]===\"www.\"?r=\"http://\"+t[0]:r=t[0]}return{type:\"link\",raw:t[0],text:n,href:r,tokens:[{type:\"text\",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:\"text\",raw:t[0],text:t[0],escaped:n}}}};var b=class l{tokens;options;state;tokenizer;inlineQueue;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||O,this.options.tokenizer=this.options.tokenizer||new y,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:m,block:I.normal,inline:M.normal};this.options.pedantic?(t.block=I.pedantic,t.inline=M.pedantic):this.options.gfm&&(t.block=I.gfm,this.options.breaks?t.inline=M.breaks:t.inline=M.gfm),this.tokenizer.rules=t}static get rules(){return{block:I,inline:M}}static lex(e,t){return new l(t).lex(e)}static lexInline(e,t){return new l(t).inlineTokens(e)}lex(e){e=e.replace(m.carriageReturn,`\n`),this.blockTokens(e,this.tokens);for(let t=0;t<this.inlineQueue.length;t++){let n=this.inlineQueue[t];this.inlineTokens(n.src,n.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){for(this.options.pedantic&&(e=e.replace(m.tabCharGlobal,\" \").replace(m.spaceLine,\"\"));e;){let r;if(this.options.extensions?.block?.some(s=>(r=s.call({lexer:this},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1))continue;if(r=this.tokenizer.space(e)){e=e.substring(r.raw.length);let s=t.at(-1);r.raw.length===1&&s!==void 0?s.raw+=`\n`:t.push(r);continue}if(r=this.tokenizer.code(e)){e=e.substring(r.raw.length);let s=t.at(-1);s?.type===\"paragraph\"||s?.type===\"text\"?(s.raw+=`\n`+r.raw,s.text+=`\n`+r.text,this.inlineQueue.at(-1).src=s.text):t.push(r);continue}if(r=this.tokenizer.fences(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.heading(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.hr(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.blockquote(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.list(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.html(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.def(e)){e=e.substring(r.raw.length);let s=t.at(-1);s?.type===\"paragraph\"||s?.type===\"text\"?(s.raw+=`\n`+r.raw,s.text+=`\n`+r.raw,this.inlineQueue.at(-1).src=s.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title});continue}if(r=this.tokenizer.table(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.lheading(e)){e=e.substring(r.raw.length),t.push(r);continue}let i=e;if(this.options.extensions?.startBlock){let s=1/0,o=e.slice(1),a;this.options.extensions.startBlock.forEach(u=>{a=u.call({lexer:this},o),typeof a==\"number\"&&a>=0&&(s=Math.min(s,a))}),s<1/0&&s>=0&&(i=e.substring(0,s+1))}if(this.state.top&&(r=this.tokenizer.paragraph(i))){let s=t.at(-1);n&&s?.type===\"paragraph\"?(s.raw+=`\n`+r.raw,s.text+=`\n`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):t.push(r),n=i.length!==e.length,e=e.substring(r.raw.length);continue}if(r=this.tokenizer.text(e)){e=e.substring(r.raw.length);let s=t.at(-1);s?.type===\"text\"?(s.raw+=`\n`+r.raw,s.text+=`\n`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):t.push(r);continue}if(e){let s=\"Infinite loop on byte: \"+e.charCodeAt(0);if(this.options.silent){console.error(s);break}else throw new Error(s)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let n=e,r=null;if(this.tokens.links){let o=Object.keys(this.tokens.links);if(o.length>0)for(;(r=this.tokenizer.rules.inline.reflinkSearch.exec(n))!=null;)o.includes(r[0].slice(r[0].lastIndexOf(\"[\")+1,-1))&&(n=n.slice(0,r.index)+\"[\"+\"a\".repeat(r[0].length-2)+\"]\"+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(r=this.tokenizer.rules.inline.anyPunctuation.exec(n))!=null;)n=n.slice(0,r.index)+\"++\"+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;(r=this.tokenizer.rules.inline.blockSkip.exec(n))!=null;)n=n.slice(0,r.index)+\"[\"+\"a\".repeat(r[0].length-2)+\"]\"+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);let i=!1,s=\"\";for(;e;){i||(s=\"\"),i=!1;let o;if(this.options.extensions?.inline?.some(u=>(o=u.call({lexer:this},e,t))?(e=e.substring(o.raw.length),t.push(o),!0):!1))continue;if(o=this.tokenizer.escape(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.tag(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.link(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(o.raw.length);let u=t.at(-1);o.type===\"text\"&&u?.type===\"text\"?(u.raw+=o.raw,u.text+=o.text):t.push(o);continue}if(o=this.tokenizer.emStrong(e,n,s)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.codespan(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.br(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.del(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.autolink(e)){e=e.substring(o.raw.length),t.push(o);continue}if(!this.state.inLink&&(o=this.tokenizer.url(e))){e=e.substring(o.raw.length),t.push(o);continue}let a=e;if(this.options.extensions?.startInline){let u=1/0,p=e.slice(1),c;this.options.extensions.startInline.forEach(f=>{c=f.call({lexer:this},p),typeof c==\"number\"&&c>=0&&(u=Math.min(u,c))}),u<1/0&&u>=0&&(a=e.substring(0,u+1))}if(o=this.tokenizer.inlineText(a)){e=e.substring(o.raw.length),o.raw.slice(-1)!==\"_\"&&(s=o.raw.slice(-1)),i=!0;let u=t.at(-1);u?.type===\"text\"?(u.raw+=o.raw,u.text+=o.text):t.push(o);continue}if(e){let u=\"Infinite loop on byte: \"+e.charCodeAt(0);if(this.options.silent){console.error(u);break}else throw new Error(u)}}return t}};var P=class{options;parser;constructor(e){this.options=e||O}space(e){return\"\"}code({text:e,lang:t,escaped:n}){let r=(t||\"\").match(m.notSpaceStart)?.[0],i=e.replace(m.endingNewline,\"\")+`\n`;return r?'<pre><code class=\"language-'+w(r)+'\">'+(n?i:w(i,!0))+`</code></pre>\n`:\"<pre><code>\"+(n?i:w(i,!0))+`</code></pre>\n`}blockquote({tokens:e}){return`<blockquote>\n${this.parser.parse(e)}</blockquote>\n`}html({text:e}){return e}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>\n`}hr(e){return`<hr>\n`}list(e){let t=e.ordered,n=e.start,r=\"\";for(let o=0;o<e.items.length;o++){let a=e.items[o];r+=this.listitem(a)}let i=t?\"ol\":\"ul\",s=t&&n!==1?' start=\"'+n+'\"':\"\";return\"<\"+i+s+`>\n`+r+\"</\"+i+`>\n`}listitem(e){let t=\"\";if(e.task){let n=this.checkbox({checked:!!e.checked});e.loose?e.tokens[0]?.type===\"paragraph\"?(e.tokens[0].text=n+\" \"+e.tokens[0].text,e.tokens[0].tokens&&e.tokens[0].tokens.length>0&&e.tokens[0].tokens[0].type===\"text\"&&(e.tokens[0].tokens[0].text=n+\" \"+w(e.tokens[0].tokens[0].text),e.tokens[0].tokens[0].escaped=!0)):e.tokens.unshift({type:\"text\",raw:n+\" \",text:n+\" \",escaped:!0}):t+=n+\" \"}return t+=this.parser.parse(e.tokens,!!e.loose),`<li>${t}</li>\n`}checkbox({checked:e}){return\"<input \"+(e?'checked=\"\" ':\"\")+'disabled=\"\" type=\"checkbox\">'}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>\n`}table(e){let t=\"\",n=\"\";for(let i=0;i<e.header.length;i++)n+=this.tablecell(e.header[i]);t+=this.tablerow({text:n});let r=\"\";for(let i=0;i<e.rows.length;i++){let s=e.rows[i];n=\"\";for(let o=0;o<s.length;o++)n+=this.tablecell(s[o]);r+=this.tablerow({text:n})}return r&&(r=`<tbody>${r}</tbody>`),`<table>\n<thead>\n`+t+`</thead>\n`+r+`</table>\n`}tablerow({text:e}){return`<tr>\n${e}</tr>\n`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?\"th\":\"td\";return(e.align?`<${n} align=\"${e.align}\">`:`<${n}>`)+t+`</${n}>\n`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${w(e,!0)}</code>`}br(e){return\"<br>\"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=J(e);if(i===null)return r;e=i;let s='<a href=\"'+e+'\"';return t&&(s+=' title=\"'+w(t)+'\"'),s+=\">\"+r+\"</a>\",s}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=J(e);if(i===null)return w(n);e=i;let s=`<img src=\"${e}\" alt=\"${n}\"`;return t&&(s+=` title=\"${w(t)}\"`),s+=\">\",s}text(e){return\"tokens\"in e&&e.tokens?this.parser.parseInline(e.tokens):\"escaped\"in e&&e.escaped?e.text:w(e.text)}};var S=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return\"\"+e}image({text:e}){return\"\"+e}br(){return\"\"}};var R=class l{options;renderer;textRenderer;constructor(e){this.options=e||O,this.options.renderer=this.options.renderer||new P,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new S}static parse(e,t){return new l(t).parse(e)}static parseInline(e,t){return new l(t).parseInline(e)}parse(e,t=!0){let n=\"\";for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let o=i,a=this.options.extensions.renderers[o.type].call({parser:this},o);if(a!==!1||![\"space\",\"hr\",\"heading\",\"code\",\"table\",\"blockquote\",\"list\",\"html\",\"paragraph\",\"text\"].includes(o.type)){n+=a||\"\";continue}}let s=i;switch(s.type){case\"space\":{n+=this.renderer.space(s);continue}case\"hr\":{n+=this.renderer.hr(s);continue}case\"heading\":{n+=this.renderer.heading(s);continue}case\"code\":{n+=this.renderer.code(s);continue}case\"table\":{n+=this.renderer.table(s);continue}case\"blockquote\":{n+=this.renderer.blockquote(s);continue}case\"list\":{n+=this.renderer.list(s);continue}case\"html\":{n+=this.renderer.html(s);continue}case\"paragraph\":{n+=this.renderer.paragraph(s);continue}case\"text\":{let o=s,a=this.renderer.text(o);for(;r+1<e.length&&e[r+1].type===\"text\";)o=e[++r],a+=`\n`+this.renderer.text(o);t?n+=this.renderer.paragraph({type:\"paragraph\",raw:a,text:a,tokens:[{type:\"text\",raw:a,text:a,escaped:!0}]}):n+=a;continue}default:{let o='Token with \"'+s.type+'\" type was not found.';if(this.options.silent)return console.error(o),\"\";throw new Error(o)}}}return n}parseInline(e,t=this.renderer){let n=\"\";for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let o=this.options.extensions.renderers[i.type].call({parser:this},i);if(o!==!1||![\"escape\",\"html\",\"link\",\"image\",\"strong\",\"em\",\"codespan\",\"br\",\"del\",\"text\"].includes(i.type)){n+=o||\"\";continue}}let s=i;switch(s.type){case\"escape\":{n+=t.text(s);break}case\"html\":{n+=t.html(s);break}case\"link\":{n+=t.link(s);break}case\"image\":{n+=t.image(s);break}case\"strong\":{n+=t.strong(s);break}case\"em\":{n+=t.em(s);break}case\"codespan\":{n+=t.codespan(s);break}case\"br\":{n+=t.br(s);break}case\"del\":{n+=t.del(s);break}case\"text\":{n+=t.text(s);break}default:{let o='Token with \"'+s.type+'\" type was not found.';if(this.options.silent)return console.error(o),\"\";throw new Error(o)}}}return n}};var $=class{options;block;constructor(e){this.options=e||O}static passThroughHooks=new Set([\"preprocess\",\"postprocess\",\"processAllTokens\"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}provideLexer(){return this.block?b.lex:b.lexInline}provideParser(){return this.block?R.parse:R.parseInline}};var B=class{defaults=L();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=R;Renderer=P;TextRenderer=S;Lexer=b;Tokenizer=y;Hooks=$;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case\"table\":{let i=r;for(let s of i.header)n=n.concat(this.walkTokens(s.tokens,t));for(let s of i.rows)for(let o of s)n=n.concat(this.walkTokens(o.tokens,t));break}case\"list\":{let i=r;n=n.concat(this.walkTokens(i.items,t));break}default:{let i=r;this.defaults.extensions?.childTokens?.[i.type]?this.defaults.extensions.childTokens[i.type].forEach(s=>{let o=i[s].flat(1/0);n=n.concat(this.walkTokens(o,t))}):i.tokens&&(n=n.concat(this.walkTokens(i.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let r={...n};if(r.async=this.defaults.async||r.async||!1,n.extensions&&(n.extensions.forEach(i=>{if(!i.name)throw new Error(\"extension name required\");if(\"renderer\"in i){let s=t.renderers[i.name];s?t.renderers[i.name]=function(...o){let a=i.renderer.apply(this,o);return a===!1&&(a=s.apply(this,o)),a}:t.renderers[i.name]=i.renderer}if(\"tokenizer\"in i){if(!i.level||i.level!==\"block\"&&i.level!==\"inline\")throw new Error(\"extension level must be 'block' or 'inline'\");let s=t[i.level];s?s.unshift(i.tokenizer):t[i.level]=[i.tokenizer],i.start&&(i.level===\"block\"?t.startBlock?t.startBlock.push(i.start):t.startBlock=[i.start]:i.level===\"inline\"&&(t.startInline?t.startInline.push(i.start):t.startInline=[i.start]))}\"childTokens\"in i&&i.childTokens&&(t.childTokens[i.name]=i.childTokens)}),r.extensions=t),n.renderer){let i=this.defaults.renderer||new P(this.defaults);for(let s in n.renderer){if(!(s in i))throw new Error(`renderer '${s}' does not exist`);if([\"options\",\"parser\"].includes(s))continue;let o=s,a=n.renderer[o],u=i[o];i[o]=(...p)=>{let c=a.apply(i,p);return c===!1&&(c=u.apply(i,p)),c||\"\"}}r.renderer=i}if(n.tokenizer){let i=this.defaults.tokenizer||new y(this.defaults);for(let s in n.tokenizer){if(!(s in i))throw new Error(`tokenizer '${s}' does not exist`);if([\"options\",\"rules\",\"lexer\"].includes(s))continue;let o=s,a=n.tokenizer[o],u=i[o];i[o]=(...p)=>{let c=a.apply(i,p);return c===!1&&(c=u.apply(i,p)),c}}r.tokenizer=i}if(n.hooks){let i=this.defaults.hooks||new $;for(let s in n.hooks){if(!(s in i))throw new Error(`hook '${s}' does not exist`);if([\"options\",\"block\"].includes(s))continue;let o=s,a=n.hooks[o],u=i[o];$.passThroughHooks.has(s)?i[o]=p=>{if(this.defaults.async)return Promise.resolve(a.call(i,p)).then(f=>u.call(i,f));let c=a.call(i,p);return u.call(i,c)}:i[o]=(...p)=>{let c=a.apply(i,p);return c===!1&&(c=u.apply(i,p)),c}}r.hooks=i}if(n.walkTokens){let i=this.defaults.walkTokens,s=n.walkTokens;r.walkTokens=function(o){let a=[];return a.push(s.call(this,o)),i&&(a=a.concat(i.call(this,o))),a}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return b.lex(e,t??this.defaults)}parser(e,t){return R.parse(e,t??this.defaults)}parseMarkdown(e){return(n,r)=>{let i={...r},s={...this.defaults,...i},o=this.onError(!!s.silent,!!s.async);if(this.defaults.async===!0&&i.async===!1)return o(new Error(\"marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.\"));if(typeof n>\"u\"||n===null)return o(new Error(\"marked(): input parameter is undefined or null\"));if(typeof n!=\"string\")return o(new Error(\"marked(): input parameter is of type \"+Object.prototype.toString.call(n)+\", string expected\"));s.hooks&&(s.hooks.options=s,s.hooks.block=e);let a=s.hooks?s.hooks.provideLexer():e?b.lex:b.lexInline,u=s.hooks?s.hooks.provideParser():e?R.parse:R.parseInline;if(s.async)return Promise.resolve(s.hooks?s.hooks.preprocess(n):n).then(p=>a(p,s)).then(p=>s.hooks?s.hooks.processAllTokens(p):p).then(p=>s.walkTokens?Promise.all(this.walkTokens(p,s.walkTokens)).then(()=>p):p).then(p=>u(p,s)).then(p=>s.hooks?s.hooks.postprocess(p):p).catch(o);try{s.hooks&&(n=s.hooks.preprocess(n));let p=a(n,s);s.hooks&&(p=s.hooks.processAllTokens(p)),s.walkTokens&&this.walkTokens(p,s.walkTokens);let c=u(p,s);return s.hooks&&(c=s.hooks.postprocess(c)),c}catch(p){return o(p)}}}onError(e,t){return n=>{if(n.message+=`\nPlease report this to https://github.com/markedjs/marked.`,e){let r=\"<p>An error occurred:</p><pre>\"+w(n.message+\"\",!0)+\"</pre>\";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}};var _=new B;function d(l,e){return _.parse(l,e)}d.options=d.setOptions=function(l){return _.setOptions(l),d.defaults=_.defaults,H(d.defaults),d};d.getDefaults=L;d.defaults=O;d.use=function(...l){return _.use(...l),d.defaults=_.defaults,H(d.defaults),d};d.walkTokens=function(l,e){return _.walkTokens(l,e)};d.parseInline=_.parseInline;d.Parser=R;d.parser=R.parse;d.Renderer=P;d.TextRenderer=S;d.Lexer=b;d.lexer=b.lex;d.Tokenizer=y;d.Hooks=$;d.parse=d;var Dt=d.options,Zt=d.setOptions,Gt=d.use,Ht=d.walkTokens,Nt=d.parseInline,jt=d,Ft=R.parse,Qt=b.lex;export{$ as Hooks,b as Lexer,B as Marked,R as Parser,P as Renderer,S as TextRenderer,y as Tokenizer,O as defaults,L as getDefaults,Qt as lexer,d as marked,Dt as options,jt as parse,Nt as parseInline,Ft as parser,Zt as setOptions,Gt as use,Ht as walkTokens};\n//# sourceMappingURL=marked.esm.js.map\n","import {\n decodeEntities\n} from \"./chunk-55PJQP7W.mjs\";\nimport {\n __name,\n common_default,\n getConfig2 as getConfig,\n hasKatex,\n log,\n renderKatex,\n sanitizeText2 as sanitizeText\n} from \"./chunk-3XYRH5AP.mjs\";\n\n// src/rendering-util/icons.ts\nimport { getIconData, iconToHTML, iconToSVG, replaceIDs, stringToIcon } from \"@iconify/utils\";\nvar unknownIcon = {\n body: '<g><rect width=\"80\" height=\"80\" style=\"fill: #087ebf; stroke-width: 0px;\"/><text transform=\"translate(21.16 64.67)\" style=\"fill: #fff; font-family: ArialMT, Arial; font-size: 67.75px;\"><tspan x=\"0\" y=\"0\">?</tspan></text></g>',\n height: 80,\n width: 80\n};\nvar iconsStore = /* @__PURE__ */ new Map();\nvar loaderStore = /* @__PURE__ */ new Map();\nvar registerIconPacks = /* @__PURE__ */ __name((iconLoaders) => {\n for (const iconLoader of iconLoaders) {\n if (!iconLoader.name) {\n throw new Error(\n 'Invalid icon loader. Must have a \"name\" property with non-empty string value.'\n );\n }\n log.debug(\"Registering icon pack:\", iconLoader.name);\n if (\"loader\" in iconLoader) {\n loaderStore.set(iconLoader.name, iconLoader.loader);\n } else if (\"icons\" in iconLoader) {\n iconsStore.set(iconLoader.name, iconLoader.icons);\n } else {\n log.error(\"Invalid icon loader:\", iconLoader);\n throw new Error('Invalid icon loader. Must have either \"icons\" or \"loader\" property.');\n }\n }\n}, \"registerIconPacks\");\nvar getRegisteredIconData = /* @__PURE__ */ __name(async (iconName, fallbackPrefix) => {\n const data = stringToIcon(iconName, true, fallbackPrefix !== void 0);\n if (!data) {\n throw new Error(`Invalid icon name: ${iconName}`);\n }\n const prefix = data.prefix || fallbackPrefix;\n if (!prefix) {\n throw new Error(`Icon name must contain a prefix: ${iconName}`);\n }\n let icons = iconsStore.get(prefix);\n if (!icons) {\n const loader = loaderStore.get(prefix);\n if (!loader) {\n throw new Error(`Icon set not found: ${data.prefix}`);\n }\n try {\n const loaded = await loader();\n icons = { ...loaded, prefix };\n iconsStore.set(prefix, icons);\n } catch (e) {\n log.error(e);\n throw new Error(`Failed to load icon set: ${data.prefix}`);\n }\n }\n const iconData = getIconData(icons, data.name);\n if (!iconData) {\n throw new Error(`Icon not found: ${iconName}`);\n }\n return iconData;\n}, \"getRegisteredIconData\");\nvar isIconAvailable = /* @__PURE__ */ __name(async (iconName) => {\n try {\n await getRegisteredIconData(iconName);\n return true;\n } catch {\n return false;\n }\n}, \"isIconAvailable\");\nvar getIconSVG = /* @__PURE__ */ __name(async (iconName, customisations, extraAttributes) => {\n let iconData;\n try {\n iconData = await getRegisteredIconData(iconName, customisations?.fallbackPrefix);\n } catch (e) {\n log.error(e);\n iconData = unknownIcon;\n }\n const renderData = iconToSVG(iconData, customisations);\n const svg = iconToHTML(replaceIDs(renderData.body), {\n ...renderData.attributes,\n ...extraAttributes\n });\n return svg;\n}, \"getIconSVG\");\n\n// src/rendering-util/createText.ts\nimport { select } from \"d3\";\n\n// src/rendering-util/handle-markdown-text.ts\nimport { marked } from \"marked\";\nimport { dedent } from \"ts-dedent\";\nfunction preprocessMarkdown(markdown, { markdownAutoWrap }) {\n const withoutBR = markdown.replace(/<br\\/>/g, \"\\n\");\n const withoutMultipleNewlines = withoutBR.replace(/\\n{2,}/g, \"\\n\");\n const withoutExtraSpaces = dedent(withoutMultipleNewlines);\n if (markdownAutoWrap === false) {\n return withoutExtraSpaces.replace(/ /g, \"&nbsp;\");\n }\n return withoutExtraSpaces;\n}\n__name(preprocessMarkdown, \"preprocessMarkdown\");\nfunction markdownToLines(markdown, config = {}) {\n const preprocessedMarkdown = preprocessMarkdown(markdown, config);\n const nodes = marked.lexer(preprocessedMarkdown);\n const lines = [[]];\n let currentLine = 0;\n function processNode(node, parentType = \"normal\") {\n if (node.type === \"text\") {\n const textLines = node.text.split(\"\\n\");\n textLines.forEach((textLine, index) => {\n if (index !== 0) {\n currentLine++;\n lines.push([]);\n }\n textLine.split(\" \").forEach((word) => {\n word = word.replace(/&#39;/g, `'`);\n if (word) {\n lines[currentLine].push({ content: word, type: parentType });\n }\n });\n });\n } else if (node.type === \"strong\" || node.type === \"em\") {\n node.tokens.forEach((contentNode) => {\n processNode(contentNode, node.type);\n });\n } else if (node.type === \"html\") {\n lines[currentLine].push({ content: node.text, type: \"normal\" });\n }\n }\n __name(processNode, \"processNode\");\n nodes.forEach((treeNode) => {\n if (treeNode.type === \"paragraph\") {\n treeNode.tokens?.forEach((contentNode) => {\n processNode(contentNode);\n });\n } else if (treeNode.type === \"html\") {\n lines[currentLine].push({ content: treeNode.text, type: \"normal\" });\n }\n });\n return lines;\n}\n__name(markdownToLines, \"markdownToLines\");\nfunction markdownToHTML(markdown, { markdownAutoWrap } = {}) {\n const nodes = marked.lexer(markdown);\n function output(node) {\n if (node.type === \"text\") {\n if (markdownAutoWrap === false) {\n return node.text.replace(/\\n */g, \"<br/>\").replace(/ /g, \"&nbsp;\");\n }\n return node.text.replace(/\\n */g, \"<br/>\");\n } else if (node.type === \"strong\") {\n return `<strong>${node.tokens?.map(output).join(\"\")}</strong>`;\n } else if (node.type === \"em\") {\n return `<em>${node.tokens?.map(output).join(\"\")}</em>`;\n } else if (node.type === \"paragraph\") {\n return `<p>${node.tokens?.map(output).join(\"\")}</p>`;\n } else if (node.type === \"space\") {\n return \"\";\n } else if (node.type === \"html\") {\n return `${node.text}`;\n } else if (node.type === \"escape\") {\n return node.text;\n }\n return `Unsupported markdown: ${node.type}`;\n }\n __name(output, \"output\");\n return nodes.map(output).join(\"\");\n}\n__name(markdownToHTML, \"markdownToHTML\");\n\n// src/rendering-util/splitText.ts\nfunction splitTextToChars(text) {\n if (Intl.Segmenter) {\n return [...new Intl.Segmenter().segment(text)].map((s) => s.segment);\n }\n return [...text];\n}\n__name(splitTextToChars, \"splitTextToChars\");\nfunction splitWordToFitWidth(checkFit, word) {\n const characters = splitTextToChars(word.content);\n return splitWordToFitWidthRecursion(checkFit, [], characters, word.type);\n}\n__name(splitWordToFitWidth, \"splitWordToFitWidth\");\nfunction splitWordToFitWidthRecursion(checkFit, usedChars, remainingChars, type) {\n if (remainingChars.length === 0) {\n return [\n { content: usedChars.join(\"\"), type },\n { content: \"\", type }\n ];\n }\n const [nextChar, ...rest] = remainingChars;\n const newWord = [...usedChars, nextChar];\n if (checkFit([{ content: newWord.join(\"\"), type }])) {\n return splitWordToFitWidthRecursion(checkFit, newWord, rest, type);\n }\n if (usedChars.length === 0 && nextChar) {\n usedChars.push(nextChar);\n remainingChars.shift();\n }\n return [\n { content: usedChars.join(\"\"), type },\n { content: remainingChars.join(\"\"), type }\n ];\n}\n__name(splitWordToFitWidthRecursion, \"splitWordToFitWidthRecursion\");\nfunction splitLineToFitWidth(line, checkFit) {\n if (line.some(({ content }) => content.includes(\"\\n\"))) {\n throw new Error(\"splitLineToFitWidth does not support newlines in the line\");\n }\n return splitLineToFitWidthRecursion(line, checkFit);\n}\n__name(splitLineToFitWidth, \"splitLineToFitWidth\");\nfunction splitLineToFitWidthRecursion(words, checkFit, lines = [], newLine = []) {\n if (words.length === 0) {\n if (newLine.length > 0) {\n lines.push(newLine);\n }\n return lines.length > 0 ? lines : [];\n }\n let joiner = \"\";\n if (words[0].content === \" \") {\n joiner = \" \";\n words.shift();\n }\n const nextWord = words.shift() ?? { content: \" \", type: \"normal\" };\n const lineWithNextWord = [...newLine];\n if (joiner !== \"\") {\n lineWithNextWord.push({ content: joiner, type: \"normal\" });\n }\n lineWithNextWord.push(nextWord);\n if (checkFit(lineWithNextWord)) {\n return splitLineToFitWidthRecursion(words, checkFit, lines, lineWithNextWord);\n }\n if (newLine.length > 0) {\n lines.push(newLine);\n words.unshift(nextWord);\n } else if (nextWord.content) {\n const [line, rest] = splitWordToFitWidth(checkFit, nextWord);\n lines.push([line]);\n if (rest.content) {\n words.unshift(rest);\n }\n }\n return splitLineToFitWidthRecursion(words, checkFit, lines);\n}\n__name(splitLineToFitWidthRecursion, \"splitLineToFitWidthRecursion\");\n\n// src/rendering-util/createText.ts\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr(\"style\", styleFn);\n }\n}\n__name(applyStyle, \"applyStyle\");\nasync function addHtmlSpan(element, node, width, classes, addBackground = false) {\n const fo = element.append(\"foreignObject\");\n fo.attr(\"width\", `${10 * width}px`);\n fo.attr(\"height\", `${10 * width}px`);\n const div = fo.append(\"xhtml:div\");\n let label = node.label;\n if (node.label && hasKatex(node.label)) {\n label = await renderKatex(node.label.replace(common_default.lineBreakRegex, \"\\n\"), getConfig());\n }\n const labelClass = node.isNode ? \"nodeLabel\" : \"edgeLabel\";\n const span = div.append(\"span\");\n span.html(label);\n applyStyle(span, node.labelStyle);\n span.attr(\"class\", `${labelClass} ${classes}`);\n applyStyle(div, node.labelStyle);\n div.style(\"display\", \"table-cell\");\n div.style(\"white-space\", \"nowrap\");\n div.style(\"line-height\", \"1.5\");\n div.style(\"max-width\", width + \"px\");\n div.style(\"text-align\", \"center\");\n div.attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\");\n if (addBackground) {\n div.attr(\"class\", \"labelBkg\");\n }\n let bbox = div.node().getBoundingClientRect();\n if (bbox.width === width) {\n div.style(\"display\", \"table\");\n div.style(\"white-space\", \"break-spaces\");\n div.style(\"width\", width + \"px\");\n bbox = div.node().getBoundingClientRect();\n }\n return fo.node();\n}\n__name(addHtmlSpan, \"addHtmlSpan\");\nfunction createTspan(textElement, lineIndex, lineHeight) {\n return textElement.append(\"tspan\").attr(\"class\", \"text-outer-tspan\").attr(\"x\", 0).attr(\"y\", lineIndex * lineHeight - 0.1 + \"em\").attr(\"dy\", lineHeight + \"em\");\n}\n__name(createTspan, \"createTspan\");\nfunction computeWidthOfText(parentNode, lineHeight, line) {\n const testElement = parentNode.append(\"text\");\n const testSpan = createTspan(testElement, 1, lineHeight);\n updateTextContentAndStyles(testSpan, line);\n const textLength = testSpan.node().getComputedTextLength();\n testElement.remove();\n return textLength;\n}\n__name(computeWidthOfText, \"computeWidthOfText\");\nfunction computeDimensionOfText(parentNode, lineHeight, text) {\n const testElement = parentNode.append(\"text\");\n const testSpan = createTspan(testElement, 1, lineHeight);\n updateTextContentAndStyles(testSpan, [{ content: text, type: \"normal\" }]);\n const textDimension = testSpan.node()?.getBoundingClientRect();\n if (textDimension) {\n testElement.remove();\n }\n return textDimension;\n}\n__name(computeDimensionOfText, \"computeDimensionOfText\");\nfunction createFormattedText(width, g, structuredText, addBackground = false) {\n const lineHeight = 1.1;\n const labelGroup = g.append(\"g\");\n const bkg = labelGroup.insert(\"rect\").attr(\"class\", \"background\").attr(\"style\", \"stroke: none\");\n const textElement = labelGroup.append(\"text\").attr(\"y\", \"-10.1\");\n let lineIndex = 0;\n for (const line of structuredText) {\n const checkWidth = /* @__PURE__ */ __name((line2) => computeWidthOfText(labelGroup, lineHeight, line2) <= width, \"checkWidth\");\n const linesUnderWidth = checkWidth(line) ? [line] : splitLineToFitWidth(line, checkWidth);\n for (const preparedLine of linesUnderWidth) {\n const tspan = createTspan(textElement, lineIndex, lineHeight);\n updateTextContentAndStyles(tspan, preparedLine);\n lineIndex++;\n }\n }\n if (addBackground) {\n const bbox = textElement.node().getBBox();\n const padding = 2;\n bkg.attr(\"x\", bbox.x - padding).attr(\"y\", bbox.y - padding).attr(\"width\", bbox.width + 2 * padding).attr(\"height\", bbox.height + 2 * padding);\n return labelGroup.node();\n } else {\n return textElement.node();\n }\n}\n__name(createFormattedText, \"createFormattedText\");\nfunction updateTextContentAndStyles(tspan, wrappedLine) {\n tspan.text(\"\");\n wrappedLine.forEach((word, index) => {\n const innerTspan = tspan.append(\"tspan\").attr(\"font-style\", word.type === \"em\" ? \"italic\" : \"normal\").attr(\"class\", \"text-inner-tspan\").attr(\"font-weight\", word.type === \"strong\" ? \"bold\" : \"normal\");\n if (index === 0) {\n innerTspan.text(word.content);\n } else {\n innerTspan.text(\" \" + word.content);\n }\n });\n}\n__name(updateTextContentAndStyles, \"updateTextContentAndStyles\");\nasync function replaceIconSubstring(text) {\n const pendingReplacements = [];\n text.replace(/(fa[bklrs]?):fa-([\\w-]+)/g, (fullMatch, prefix, iconName) => {\n pendingReplacements.push(\n (async () => {\n const registeredIconName = `${prefix}:${iconName}`;\n if (await isIconAvailable(registeredIconName)) {\n return await getIconSVG(registeredIconName, void 0, { class: \"label-icon\" });\n } else {\n return `<i class='${sanitizeText(fullMatch).replace(\":\", \" \")}'></i>`;\n }\n })()\n );\n return fullMatch;\n });\n const replacements = await Promise.all(pendingReplacements);\n return text.replace(/(fa[bklrs]?):fa-([\\w-]+)/g, () => replacements.shift() ?? \"\");\n}\n__name(replaceIconSubstring, \"replaceIconSubstring\");\nvar createText = /* @__PURE__ */ __name(async (el, text = \"\", {\n style = \"\",\n isTitle = false,\n classes = \"\",\n useHtmlLabels = true,\n isNode = true,\n width = 200,\n addSvgBackground = false\n} = {}, config) => {\n log.debug(\n \"XYZ createText\",\n text,\n style,\n isTitle,\n classes,\n useHtmlLabels,\n isNode,\n \"addSvgBackground: \",\n addSvgBackground\n );\n if (useHtmlLabels) {\n const htmlText = markdownToHTML(text, config);\n const decodedReplacedText = await replaceIconSubstring(decodeEntities(htmlText));\n const inputForKatex = text.replace(/\\\\\\\\/g, \"\\\\\");\n const node = {\n isNode,\n label: hasKatex(text) ? inputForKatex : decodedReplacedText,\n labelStyle: style.replace(\"fill:\", \"color:\")\n };\n const vertexNode = await addHtmlSpan(el, node, width, classes, addSvgBackground);\n return vertexNode;\n } else {\n const sanitizeBR = text.replace(/<br\\s*\\/?>/g, \"<br/>\");\n const structuredText = markdownToLines(sanitizeBR.replace(\"<br>\", \"<br/>\"), config);\n const svgLabel = createFormattedText(\n width,\n el,\n structuredText,\n text ? addSvgBackground : false\n );\n if (isNode) {\n if (/stroke:/.exec(style)) {\n style = style.replace(\"stroke:\", \"lineColor:\");\n }\n const nodeLabelTextStyle = style.replace(/stroke:[^;]+;?/g, \"\").replace(/stroke-width:[^;]+;?/g, \"\").replace(/fill:[^;]+;?/g, \"\").replace(/color:/g, \"fill:\");\n select(svgLabel).attr(\"style\", nodeLabelTextStyle);\n } else {\n const edgeLabelRectStyle = style.replace(/stroke:[^;]+;?/g, \"\").replace(/stroke-width:[^;]+;?/g, \"\").replace(/fill:[^;]+;?/g, \"\").replace(/background:/g, \"fill:\");\n select(svgLabel).select(\"rect\").attr(\"style\", edgeLabelRectStyle.replace(/background:/g, \"fill:\"));\n const edgeLabelTextStyle = style.replace(/stroke:[^;]+;?/g, \"\").replace(/stroke-width:[^;]+;?/g, \"\").replace(/fill:[^;]+;?/g, \"\").replace(/color:/g, \"fill:\");\n select(svgLabel).select(\"text\").attr(\"style\", edgeLabelTextStyle);\n }\n return svgLabel;\n }\n}, \"createText\");\n\nexport {\n unknownIcon,\n registerIconPacks,\n getIconSVG,\n computeDimensionOfText,\n replaceIconSubstring,\n createText\n};\n","function getIconsTree(data, names) {\n const icons = data.icons;\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n const resolved = /* @__PURE__ */ Object.create(null);\n function resolve(name) {\n if (icons[name]) {\n return resolved[name] = [];\n }\n if (!(name in resolved)) {\n resolved[name] = null;\n const parent = aliases[name] && aliases[name].parent;\n const value = parent && resolve(parent);\n if (value) {\n resolved[name] = [parent].concat(value);\n }\n }\n return resolved[name];\n }\n (names || Object.keys(icons).concat(Object.keys(aliases))).forEach(resolve);\n return resolved;\n}\n\nexport { getIconsTree };\n","import { defaultIconProps } from '../icon/defaults.mjs';\nimport { defaultIconCustomisations } from '../customisations/defaults.mjs';\nimport { calculateSize } from './size.mjs';\nimport { wrapSVGContent } from './defs.mjs';\n\nconst isUnsetKeyword = (value) => value === \"unset\" || value === \"undefined\" || value === \"none\";\nfunction iconToSVG(icon, customisations) {\n const fullIcon = {\n ...defaultIconProps,\n ...icon\n };\n const fullCustomisations = {\n ...defaultIconCustomisations,\n ...customisations\n };\n const box = {\n left: fullIcon.left,\n top: fullIcon.top,\n width: fullIcon.width,\n height: fullIcon.height\n };\n let body = fullIcon.body;\n [fullIcon, fullCustomisations].forEach((props) => {\n const transformations = [];\n const hFlip = props.hFlip;\n const vFlip = props.vFlip;\n let rotation = props.rotate;\n if (hFlip) {\n if (vFlip) {\n rotation += 2;\n } else {\n transformations.push(\n \"translate(\" + (box.width + box.left).toString() + \" \" + (0 - box.top).toString() + \")\"\n );\n transformations.push(\"scale(-1 1)\");\n box.top = box.left = 0;\n }\n } else if (vFlip) {\n transformations.push(\n \"translate(\" + (0 - box.left).toString() + \" \" + (box.height + box.top).toString() + \")\"\n );\n transformations.push(\"scale(1 -1)\");\n box.top = box.left = 0;\n }\n let tempValue;\n if (rotation < 0) {\n rotation -= Math.floor(rotation / 4) * 4;\n }\n rotation = rotation % 4;\n switch (rotation) {\n case 1:\n tempValue = box.height / 2 + box.top;\n transformations.unshift(\n \"rotate(90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\"\n );\n break;\n case 2:\n transformations.unshift(\n \"rotate(180 \" + (box.width / 2 + box.left).toString() + \" \" + (box.height / 2 + box.top).toString() + \")\"\n );\n break;\n case 3:\n tempValue = box.width / 2 + box.left;\n transformations.unshift(\n \"rotate(-90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\"\n );\n break;\n }\n if (rotation % 2 === 1) {\n if (box.left !== box.top) {\n tempValue = box.left;\n box.left = box.top;\n box.top = tempValue;\n }\n if (box.width !== box.height) {\n tempValue = box.width;\n box.width = box.height;\n box.height = tempValue;\n }\n }\n if (transformations.length) {\n body = wrapSVGContent(\n body,\n '<g transform=\"' + transformations.join(\" \") + '\">',\n \"</g>\"\n );\n }\n });\n const customisationsWidth = fullCustomisations.width;\n const customisationsHeight = fullCustomisations.height;\n const boxWidth = box.width;\n const boxHeight = box.height;\n let width;\n let height;\n if (customisationsWidth === null) {\n height = customisationsHeight === null ? \"1em\" : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n width = calculateSize(height, boxWidth / boxHeight);\n } else {\n width = customisationsWidth === \"auto\" ? boxWidth : customisationsWidth;\n height = customisationsHeight === null ? calculateSize(width, boxHeight / boxWidth) : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n }\n const attributes = {};\n const setAttr = (prop, value) => {\n if (!isUnsetKeyword(value)) {\n attributes[prop] = value.toString();\n }\n };\n setAttr(\"width\", width);\n setAttr(\"height\", height);\n const viewBox = [box.left, box.top, boxWidth, boxHeight];\n attributes.viewBox = viewBox.join(\" \");\n return {\n attributes,\n viewBox,\n body\n };\n}\n\nexport { iconToSVG, isUnsetKeyword };\n","function splitSVGDefs(content, tag = \"defs\") {\n let defs = \"\";\n const index = content.indexOf(\"<\" + tag);\n while (index >= 0) {\n const start = content.indexOf(\">\", index);\n const end = content.indexOf(\"</\" + tag);\n if (start === -1 || end === -1) {\n break;\n }\n const endEnd = content.indexOf(\">\", end);\n if (endEnd === -1) {\n break;\n }\n defs += content.slice(start + 1, end).trim();\n content = content.slice(0, index).trim() + content.slice(endEnd + 1);\n }\n return {\n defs,\n content\n };\n}\nfunction mergeDefsAndContent(defs, content) {\n return defs ? \"<defs>\" + defs + \"</defs>\" + content : content;\n}\nfunction wrapSVGContent(body, start, end) {\n const split = splitSVGDefs(body);\n return mergeDefsAndContent(split.defs, start + split.content + end);\n}\n\nexport { mergeDefsAndContent, splitSVGDefs, wrapSVGContent };\n","function iconToHTML(body, attributes) {\n let renderAttribsHTML = body.indexOf(\"xlink:\") === -1 ? \"\" : ' xmlns:xlink=\"http://www.w3.org/1999/xlink\"';\n for (const attr in attributes) {\n renderAttribsHTML += \" \" + attr + '=\"' + attributes[attr] + '\"';\n }\n return '<svg xmlns=\"http://www.w3.org/2000/svg\"' + renderAttribsHTML + \">\" + body + \"</svg>\";\n}\n\nexport { iconToHTML };\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\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 a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\nimport { DEC2HEX } from '../constants.js';\n/* MAIN */\nconst Hex = {\n /* VARIABLES */\n re: /^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,\n /* API */\n parse: (color) => {\n if (color.charCodeAt(0) !== 35)\n return; // '#'\n const match = color.match(Hex.re);\n if (!match)\n return;\n const hex = match[1];\n const dec = parseInt(hex, 16);\n const length = hex.length;\n const hasAlpha = length % 4 === 0;\n const isFullLength = length > 4;\n const multiplier = isFullLength ? 1 : 17;\n const bits = isFullLength ? 8 : 4;\n const bitsOffset = hasAlpha ? 0 : -1;\n const mask = isFullLength ? 255 : 15;\n return ChannelsReusable.set({\n r: ((dec >> (bits * (bitsOffset + 3))) & mask) * multiplier,\n g: ((dec >> (bits * (bitsOffset + 2))) & mask) * multiplier,\n b: ((dec >> (bits * (bitsOffset + 1))) & mask) * multiplier,\n a: hasAlpha ? (dec & mask) * multiplier / 255 : 1\n }, color);\n },\n stringify: (channels) => {\n const { r, g, b, a } = channels;\n if (a < 1) { // #RRGGBBAA\n return `#${DEC2HEX[Math.round(r)]}${DEC2HEX[Math.round(g)]}${DEC2HEX[Math.round(b)]}${DEC2HEX[Math.round(a * 255)]}`;\n }\n else { // #RRGGBB\n return `#${DEC2HEX[Math.round(r)]}${DEC2HEX[Math.round(g)]}${DEC2HEX[Math.round(b)]}`;\n }\n }\n};\n/* EXPORT */\nexport default Hex;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\n/* MAIN */\nconst HSL = {\n /* VARIABLES */\n re: /^hsla?\\(\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?(?:deg|grad|rad|turn)?)\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?%)\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?%)(?:\\s*?(?:,|\\/)\\s*?\\+?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?(%)?))?\\s*?\\)$/i,\n hueRe: /^(.+?)(deg|grad|rad|turn)$/i,\n /* HELPERS */\n _hue2deg: (hue) => {\n const match = hue.match(HSL.hueRe);\n if (match) {\n const [, number, unit] = match;\n switch (unit) {\n case 'grad': return _.channel.clamp.h(parseFloat(number) * .9);\n case 'rad': return _.channel.clamp.h(parseFloat(number) * 180 / Math.PI);\n case 'turn': return _.channel.clamp.h(parseFloat(number) * 360);\n }\n }\n return _.channel.clamp.h(parseFloat(hue));\n },\n /* API */\n parse: (color) => {\n const charCode = color.charCodeAt(0);\n if (charCode !== 104 && charCode !== 72)\n return; // 'h'/'H'\n const match = color.match(HSL.re);\n if (!match)\n return;\n const [, h, s, l, a, isAlphaPercentage] = match;\n return ChannelsReusable.set({\n h: HSL._hue2deg(h),\n s: _.channel.clamp.s(parseFloat(s)),\n l: _.channel.clamp.l(parseFloat(l)),\n a: a ? _.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1\n }, color);\n },\n stringify: (channels) => {\n const { h, s, l, a } = channels;\n if (a < 1) { // HSLA\n return `hsla(${_.lang.round(h)}, ${_.lang.round(s)}%, ${_.lang.round(l)}%, ${a})`;\n }\n else { // HSL\n return `hsl(${_.lang.round(h)}, ${_.lang.round(s)}%, ${_.lang.round(l)}%)`;\n }\n }\n};\n/* EXPORT */\nexport default HSL;\n","/* IMPORT */\nimport Hex from './hex.js';\n/* MAIN */\nconst Keyword = {\n /* VARIABLES */\n colors: {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyanaqua: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n gold: '#ffd700',\n goldenrod: '#daa520',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavender: '#e6e6fa',\n lavenderblush: '#fff0f5',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n transparent: '#00000000',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32'\n },\n /* API */\n parse: (color) => {\n color = color.toLowerCase();\n const hex = Keyword.colors[color];\n if (!hex)\n return;\n return Hex.parse(hex);\n },\n stringify: (channels) => {\n const hex = Hex.stringify(channels);\n for (const name in Keyword.colors) {\n if (Keyword.colors[name] === hex)\n return name;\n }\n return;\n }\n};\n/* EXPORT */\nexport default Keyword;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\n/* MAIN */\nconst RGB = {\n /* VARIABLES */\n re: /^rgba?\\(\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?))\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?))\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?))(?:\\s*?(?:,|\\/)\\s*?\\+?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?)))?\\s*?\\)$/i,\n /* API */\n parse: (color) => {\n const charCode = color.charCodeAt(0);\n if (charCode !== 114 && charCode !== 82)\n return; // 'r'/'R'\n const match = color.match(RGB.re);\n if (!match)\n return;\n const [, r, isRedPercentage, g, isGreenPercentage, b, isBluePercentage, a, isAlphaPercentage] = match;\n return ChannelsReusable.set({\n r: _.channel.clamp.r(isRedPercentage ? parseFloat(r) * 2.55 : parseFloat(r)),\n g: _.channel.clamp.g(isGreenPercentage ? parseFloat(g) * 2.55 : parseFloat(g)),\n b: _.channel.clamp.b(isBluePercentage ? parseFloat(b) * 2.55 : parseFloat(b)),\n a: a ? _.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1\n }, color);\n },\n stringify: (channels) => {\n const { r, g, b, a } = channels;\n if (a < 1) { // RGBA\n return `rgba(${_.lang.round(r)}, ${_.lang.round(g)}, ${_.lang.round(b)}, ${_.lang.round(a)})`;\n }\n else { // RGB\n return `rgb(${_.lang.round(r)}, ${_.lang.round(g)}, ${_.lang.round(b)})`;\n }\n }\n};\n/* EXPORT */\nexport default RGB;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Hex from './hex.js';\nimport HSL from './hsl.js';\nimport Keyword from './keyword.js';\nimport RGB from './rgb.js';\nimport { TYPE } from '../constants.js';\n/* MAIN */\nconst Color = {\n /* VARIABLES */\n format: {\n keyword: Keyword,\n hex: Hex,\n rgb: RGB,\n rgba: RGB,\n hsl: HSL,\n hsla: HSL\n },\n /* API */\n parse: (color) => {\n if (typeof color !== 'string')\n return color;\n const channels = Hex.parse(color) || RGB.parse(color) || HSL.parse(color) || Keyword.parse(color); // Color providers ordered with performance in mind\n if (channels)\n return channels;\n throw new Error(`Unsupported color format: \"${color}\"`);\n },\n stringify: (channels) => {\n // SASS returns a keyword if possible, but we avoid doing that as it's slower and doesn't really add any value\n if (!channels.changed && channels.color)\n return channels.color;\n if (channels.type.is(TYPE.HSL) || channels.data.r === undefined) {\n return HSL.stringify(channels);\n }\n else if (channels.a < 1 || !Number.isInteger(channels.r) || !Number.isInteger(channels.g) || !Number.isInteger(channels.b)) {\n return RGB.stringify(channels);\n }\n else {\n return Hex.stringify(channels);\n }\n }\n};\n/* EXPORT */\nexport default Color;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import {\n insertEdge,\n insertEdgeLabel,\n markers_default,\n positionEdgeLabel\n} from \"./chunk-M6DAPIYF.mjs\";\nimport {\n insertCluster,\n insertNode,\n labelHelper\n} from \"./chunk-JW4RIYDF.mjs\";\nimport {\n interpolateToCurve\n} from \"./chunk-55PJQP7W.mjs\";\nimport {\n __name,\n common_default,\n getConfig,\n log\n} from \"./chunk-3XYRH5AP.mjs\";\n\n// src/internals.ts\nvar internalHelpers = {\n common: common_default,\n getConfig,\n insertCluster,\n insertEdge,\n insertEdgeLabel,\n insertMarkers: markers_default,\n insertNode,\n interpolateToCurve,\n labelHelper,\n log,\n positionEdgeLabel\n};\n\n// src/rendering-util/render.ts\nvar layoutAlgorithms = {};\nvar registerLayoutLoaders = /* @__PURE__ */ __name((loaders) => {\n for (const loader of loaders) {\n layoutAlgorithms[loader.name] = loader;\n }\n}, \"registerLayoutLoaders\");\nvar registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {\n registerLayoutLoaders([\n {\n name: \"dagre\",\n loader: /* @__PURE__ */ __name(async () => await import(\"./dagre-JOIXM2OF.mjs\"), \"loader\")\n }\n ]);\n}, \"registerDefaultLayoutLoaders\");\nregisterDefaultLayoutLoaders();\nvar render = /* @__PURE__ */ __name(async (data4Layout, svg) => {\n if (!(data4Layout.layoutAlgorithm in layoutAlgorithms)) {\n throw new Error(`Unknown layout algorithm: ${data4Layout.layoutAlgorithm}`);\n }\n const layoutDefinition = layoutAlgorithms[data4Layout.layoutAlgorithm];\n const layoutRenderer = await layoutDefinition.loader();\n return layoutRenderer.render(data4Layout, svg, internalHelpers, {\n algorithm: layoutDefinition.algorithm\n });\n}, \"render\");\nvar getRegisteredLayoutAlgorithm = /* @__PURE__ */ __name((algorithm = \"\", { fallback = \"dagre\" } = {}) => {\n if (algorithm in layoutAlgorithms) {\n return algorithm;\n }\n if (fallback in layoutAlgorithms) {\n log.warn(`Layout algorithm ${algorithm} is not registered. Using ${fallback} as fallback.`);\n return fallback;\n }\n throw new Error(`Both layout algorithms ${algorithm} and ${fallback} are not registered.`);\n}, \"getRegisteredLayoutAlgorithm\");\n\nexport {\n registerLayoutLoaders,\n render,\n getRegisteredLayoutAlgorithm\n};\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.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 `_.keysIn` 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 baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\n//SOURCE: https://planetcalc.com/7779\nconst luminance = (color) => {\n const { r, g, b } = Color.parse(color);\n const luminance = .2126 * _.channel.toLinear(r) + .7152 * _.channel.toLinear(g) + .0722 * _.channel.toLinear(b);\n return _.lang.round(luminance);\n};\n/* EXPORT */\nexport default luminance;\n","/* IMPORT */\nimport luminance from './luminance.js';\n/* MAIN */\nconst isLight = (color) => {\n return luminance(color) >= .5;\n};\n/* EXPORT */\nexport default isLight;\n","/* IMPORT */\nimport isLight from './is_light.js';\n/* MAIN */\nconst isDark = (color) => {\n return !isLight(color);\n};\n/* EXPORT */\nexport default isDark;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\nimport Color from '../color/index.js';\nimport change from './change.js';\n/* MAIN */\nconst rgba = (r, g, b = 0, a = 1) => {\n if (typeof r !== 'number')\n return change(r, { a: g });\n const channels = ChannelsReusable.set({\n r: _.channel.clamp.r(r),\n g: _.channel.clamp.g(g),\n b: _.channel.clamp.b(b),\n a: _.channel.clamp.a(a)\n });\n return Color.stringify(channels);\n};\n/* EXPORT */\nexport default rgba;\n","import {\n __name\n} from \"./chunk-3XYRH5AP.mjs\";\n\n// ../../node_modules/.pnpm/js-yaml@4.1.0/node_modules/js-yaml/dist/js-yaml.mjs\nfunction isNothing(subject) {\n return typeof subject === \"undefined\" || subject === null;\n}\n__name(isNothing, \"isNothing\");\nfunction isObject(subject) {\n return typeof subject === \"object\" && subject !== null;\n}\n__name(isObject, \"isObject\");\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n return [sequence];\n}\n__name(toArray, \"toArray\");\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n if (source) {\n sourceKeys = Object.keys(source);\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n return target;\n}\n__name(extend, \"extend\");\nfunction repeat(string, count) {\n var result = \"\", cycle;\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n return result;\n}\n__name(repeat, \"repeat\");\nfunction isNegativeZero(number) {\n return number === 0 && Number.NEGATIVE_INFINITY === 1 / number;\n}\n__name(isNegativeZero, \"isNegativeZero\");\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\nvar common = {\n isNothing: isNothing_1,\n isObject: isObject_1,\n toArray: toArray_1,\n repeat: repeat_1,\n isNegativeZero: isNegativeZero_1,\n extend: extend_1\n};\nfunction formatError(exception2, compact) {\n var where = \"\", message = exception2.reason || \"(unknown reason)\";\n if (!exception2.mark) return message;\n if (exception2.mark.name) {\n where += 'in \"' + exception2.mark.name + '\" ';\n }\n where += \"(\" + (exception2.mark.line + 1) + \":\" + (exception2.mark.column + 1) + \")\";\n if (!compact && exception2.mark.snippet) {\n where += \"\\n\\n\" + exception2.mark.snippet;\n }\n return message + \" \" + where;\n}\n__name(formatError, \"formatError\");\nfunction YAMLException$1(reason, mark) {\n Error.call(this);\n this.name = \"YAMLException\";\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = new Error().stack || \"\";\n }\n}\n__name(YAMLException$1, \"YAMLException$1\");\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\nYAMLException$1.prototype.toString = /* @__PURE__ */ __name(function toString(compact) {\n return this.name + \": \" + formatError(this, compact);\n}, \"toString\");\nvar exception = YAMLException$1;\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = \"\";\n var tail = \"\";\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n if (position - lineStart > maxHalfLength) {\n head = \" ... \";\n lineStart = position - maxHalfLength + head.length;\n }\n if (lineEnd - position > maxHalfLength) {\n tail = \" ...\";\n lineEnd = position + maxHalfLength - tail.length;\n }\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, \"\\u2192\") + tail,\n pos: position - lineStart + head.length\n // relative position\n };\n}\n__name(getLine, \"getLine\");\nfunction padStart(string, max) {\n return common.repeat(\" \", max - string.length) + string;\n}\n__name(padStart, \"padStart\");\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n if (!mark.buffer) return null;\n if (!options.maxLength) options.maxLength = 79;\n if (typeof options.indent !== \"number\") options.indent = 1;\n if (typeof options.linesBefore !== \"number\") options.linesBefore = 3;\n if (typeof options.linesAfter !== \"number\") options.linesAfter = 2;\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [0];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n while (match = re.exec(mark.buffer)) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n var result = \"\", i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(\" \", options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + \" | \" + line.str + \"\\n\" + result;\n }\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(\" \", options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + \" | \" + line.str + \"\\n\";\n result += common.repeat(\"-\", options.indent + lineNoLength + 3 + line.pos) + \"^\\n\";\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(\" \", options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + \" | \" + line.str + \"\\n\";\n }\n return result.replace(/\\n$/, \"\");\n}\n__name(makeSnippet, \"makeSnippet\");\nvar snippet = makeSnippet;\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n \"kind\",\n \"multi\",\n \"resolve\",\n \"construct\",\n \"instanceOf\",\n \"predicate\",\n \"represent\",\n \"representName\",\n \"defaultStyle\",\n \"styleAliases\"\n];\nvar YAML_NODE_KINDS = [\n \"scalar\",\n \"sequence\",\n \"mapping\"\n];\nfunction compileStyleAliases(map2) {\n var result = {};\n if (map2 !== null) {\n Object.keys(map2).forEach(function(style) {\n map2[style].forEach(function(alias) {\n result[String(alias)] = style;\n });\n });\n }\n return result;\n}\n__name(compileStyleAliases, \"compileStyleAliases\");\nfunction Type$1(tag, options) {\n options = options || {};\n Object.keys(options).forEach(function(name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n this.options = options;\n this.tag = tag;\n this.kind = options[\"kind\"] || null;\n this.resolve = options[\"resolve\"] || function() {\n return true;\n };\n this.construct = options[\"construct\"] || function(data) {\n return data;\n };\n this.instanceOf = options[\"instanceOf\"] || null;\n this.predicate = options[\"predicate\"] || null;\n this.represent = options[\"represent\"] || null;\n this.representName = options[\"representName\"] || null;\n this.defaultStyle = options[\"defaultStyle\"] || null;\n this.multi = options[\"multi\"] || false;\n this.styleAliases = compileStyleAliases(options[\"styleAliases\"] || null);\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n__name(Type$1, \"Type$1\");\nvar type = Type$1;\nfunction compileList(schema2, name) {\n var result = [];\n schema2[name].forEach(function(currentType) {\n var newIndex = result.length;\n result.forEach(function(previousType, previousIndex) {\n if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) {\n newIndex = previousIndex;\n }\n });\n result[newIndex] = currentType;\n });\n return result;\n}\n__name(compileList, \"compileList\");\nfunction compileMap() {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n function collectType(type2) {\n if (type2.multi) {\n result.multi[type2.kind].push(type2);\n result.multi[\"fallback\"].push(type2);\n } else {\n result[type2.kind][type2.tag] = result[\"fallback\"][type2.tag] = type2;\n }\n }\n __name(collectType, \"collectType\");\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n__name(compileMap, \"compileMap\");\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\n__name(Schema$1, \"Schema$1\");\nSchema$1.prototype.extend = /* @__PURE__ */ __name(function extend2(definition) {\n var implicit = [];\n var explicit = [];\n if (definition instanceof type) {\n explicit.push(definition);\n } else if (Array.isArray(definition)) {\n explicit = explicit.concat(definition);\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n } else {\n throw new exception(\"Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })\");\n }\n implicit.forEach(function(type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\");\n }\n if (type$1.loadKind && type$1.loadKind !== \"scalar\") {\n throw new exception(\"There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.\");\n }\n if (type$1.multi) {\n throw new exception(\"There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.\");\n }\n });\n explicit.forEach(function(type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\");\n }\n });\n var result = Object.create(Schema$1.prototype);\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n result.compiledImplicit = compileList(result, \"implicit\");\n result.compiledExplicit = compileList(result, \"explicit\");\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n return result;\n}, \"extend\");\nvar schema = Schema$1;\nvar str = new type(\"tag:yaml.org,2002:str\", {\n kind: \"scalar\",\n construct: /* @__PURE__ */ __name(function(data) {\n return data !== null ? data : \"\";\n }, \"construct\")\n});\nvar seq = new type(\"tag:yaml.org,2002:seq\", {\n kind: \"sequence\",\n construct: /* @__PURE__ */ __name(function(data) {\n return data !== null ? data : [];\n }, \"construct\")\n});\nvar map = new type(\"tag:yaml.org,2002:map\", {\n kind: \"mapping\",\n construct: /* @__PURE__ */ __name(function(data) {\n return data !== null ? data : {};\n }, \"construct\")\n});\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n var max = data.length;\n return max === 1 && data === \"~\" || max === 4 && (data === \"null\" || data === \"Null\" || data === \"NULL\");\n}\n__name(resolveYamlNull, \"resolveYamlNull\");\nfunction constructYamlNull() {\n return null;\n}\n__name(constructYamlNull, \"constructYamlNull\");\nfunction isNull(object) {\n return object === null;\n}\n__name(isNull, \"isNull\");\nvar _null = new type(\"tag:yaml.org,2002:null\", {\n kind: \"scalar\",\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: /* @__PURE__ */ __name(function() {\n return \"~\";\n }, \"canonical\"),\n lowercase: /* @__PURE__ */ __name(function() {\n return \"null\";\n }, \"lowercase\"),\n uppercase: /* @__PURE__ */ __name(function() {\n return \"NULL\";\n }, \"uppercase\"),\n camelcase: /* @__PURE__ */ __name(function() {\n return \"Null\";\n }, \"camelcase\"),\n empty: /* @__PURE__ */ __name(function() {\n return \"\";\n }, \"empty\")\n },\n defaultStyle: \"lowercase\"\n});\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n var max = data.length;\n return max === 4 && (data === \"true\" || data === \"True\" || data === \"TRUE\") || max === 5 && (data === \"false\" || data === \"False\" || data === \"FALSE\");\n}\n__name(resolveYamlBoolean, \"resolveYamlBoolean\");\nfunction constructYamlBoolean(data) {\n return data === \"true\" || data === \"True\" || data === \"TRUE\";\n}\n__name(constructYamlBoolean, \"constructYamlBoolean\");\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === \"[object Boolean]\";\n}\n__name(isBoolean, \"isBoolean\");\nvar bool = new type(\"tag:yaml.org,2002:bool\", {\n kind: \"scalar\",\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: /* @__PURE__ */ __name(function(object) {\n return object ? \"true\" : \"false\";\n }, \"lowercase\"),\n uppercase: /* @__PURE__ */ __name(function(object) {\n return object ? \"TRUE\" : \"FALSE\";\n }, \"uppercase\"),\n camelcase: /* @__PURE__ */ __name(function(object) {\n return object ? \"True\" : \"False\";\n }, \"camelcase\")\n },\n defaultStyle: \"lowercase\"\n});\nfunction isHexCode(c) {\n return 48 <= c && c <= 57 || 65 <= c && c <= 70 || 97 <= c && c <= 102;\n}\n__name(isHexCode, \"isHexCode\");\nfunction isOctCode(c) {\n return 48 <= c && c <= 55;\n}\n__name(isOctCode, \"isOctCode\");\nfunction isDecCode(c) {\n return 48 <= c && c <= 57;\n}\n__name(isDecCode, \"isDecCode\");\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n var max = data.length, index = 0, hasDigits = false, ch;\n if (!max) return false;\n ch = data[index];\n if (ch === \"-\" || ch === \"+\") {\n ch = data[++index];\n }\n if (ch === \"0\") {\n if (index + 1 === max) return true;\n ch = data[++index];\n if (ch === \"b\") {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\") continue;\n if (ch !== \"0\" && ch !== \"1\") return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n if (ch === \"x\") {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\") continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n if (ch === \"o\") {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\") continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n }\n if (ch === \"_\") return false;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\") continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n if (!hasDigits || ch === \"_\") return false;\n return true;\n}\n__name(resolveYamlInteger, \"resolveYamlInteger\");\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n if (value.indexOf(\"_\") !== -1) {\n value = value.replace(/_/g, \"\");\n }\n ch = value[0];\n if (ch === \"-\" || ch === \"+\") {\n if (ch === \"-\") sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n if (value === \"0\") return 0;\n if (ch === \"0\") {\n if (value[1] === \"b\") return sign * parseInt(value.slice(2), 2);\n if (value[1] === \"x\") return sign * parseInt(value.slice(2), 16);\n if (value[1] === \"o\") return sign * parseInt(value.slice(2), 8);\n }\n return sign * parseInt(value, 10);\n}\n__name(constructYamlInteger, \"constructYamlInteger\");\nfunction isInteger(object) {\n return Object.prototype.toString.call(object) === \"[object Number]\" && (object % 1 === 0 && !common.isNegativeZero(object));\n}\n__name(isInteger, \"isInteger\");\nvar int = new type(\"tag:yaml.org,2002:int\", {\n kind: \"scalar\",\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: /* @__PURE__ */ __name(function(obj) {\n return obj >= 0 ? \"0b\" + obj.toString(2) : \"-0b\" + obj.toString(2).slice(1);\n }, \"binary\"),\n octal: /* @__PURE__ */ __name(function(obj) {\n return obj >= 0 ? \"0o\" + obj.toString(8) : \"-0o\" + obj.toString(8).slice(1);\n }, \"octal\"),\n decimal: /* @__PURE__ */ __name(function(obj) {\n return obj.toString(10);\n }, \"decimal\"),\n /* eslint-disable max-len */\n hexadecimal: /* @__PURE__ */ __name(function(obj) {\n return obj >= 0 ? \"0x\" + obj.toString(16).toUpperCase() : \"-0x\" + obj.toString(16).toUpperCase().slice(1);\n }, \"hexadecimal\")\n },\n defaultStyle: \"decimal\",\n styleAliases: {\n binary: [2, \"bin\"],\n octal: [8, \"oct\"],\n decimal: [10, \"dec\"],\n hexadecimal: [16, \"hex\"]\n }\n});\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n \"^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))$\"\n);\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n if (!YAML_FLOAT_PATTERN.test(data) || // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === \"_\") {\n return false;\n }\n return true;\n}\n__name(resolveYamlFloat, \"resolveYamlFloat\");\nfunction constructYamlFloat(data) {\n var value, sign;\n value = data.replace(/_/g, \"\").toLowerCase();\n sign = value[0] === \"-\" ? -1 : 1;\n if (\"+-\".indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n if (value === \".inf\") {\n return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n } else if (value === \".nan\") {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\n__name(constructYamlFloat, \"constructYamlFloat\");\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\nfunction representYamlFloat(object, style) {\n var res;\n if (isNaN(object)) {\n switch (style) {\n case \"lowercase\":\n return \".nan\";\n case \"uppercase\":\n return \".NAN\";\n case \"camelcase\":\n return \".NaN\";\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case \"lowercase\":\n return \".inf\";\n case \"uppercase\":\n return \".INF\";\n case \"camelcase\":\n return \".Inf\";\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case \"lowercase\":\n return \"-.inf\";\n case \"uppercase\":\n return \"-.INF\";\n case \"camelcase\":\n return \"-.Inf\";\n }\n } else if (common.isNegativeZero(object)) {\n return \"-0.0\";\n }\n res = object.toString(10);\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace(\"e\", \".e\") : res;\n}\n__name(representYamlFloat, \"representYamlFloat\");\nfunction isFloat(object) {\n return Object.prototype.toString.call(object) === \"[object Number]\" && (object % 1 !== 0 || common.isNegativeZero(object));\n}\n__name(isFloat, \"isFloat\");\nvar float = new type(\"tag:yaml.org,2002:float\", {\n kind: \"scalar\",\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: \"lowercase\"\n});\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\nvar core = json;\nvar YAML_DATE_REGEXP = new RegExp(\n \"^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$\"\n);\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n \"^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\\\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\\\.([0-9]*))?(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$\"\n);\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n__name(resolveYamlTimestamp, \"resolveYamlTimestamp\");\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date;\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n if (match === null) throw new Error(\"Date resolve error\");\n year = +match[1];\n month = +match[2] - 1;\n day = +match[3];\n if (!match[4]) {\n return new Date(Date.UTC(year, month, day));\n }\n hour = +match[4];\n minute = +match[5];\n second = +match[6];\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) {\n fraction += \"0\";\n }\n fraction = +fraction;\n }\n if (match[9]) {\n tz_hour = +match[10];\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 6e4;\n if (match[9] === \"-\") delta = -delta;\n }\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n if (delta) date.setTime(date.getTime() - delta);\n return date;\n}\n__name(constructYamlTimestamp, \"constructYamlTimestamp\");\nfunction representYamlTimestamp(object) {\n return object.toISOString();\n}\n__name(representYamlTimestamp, \"representYamlTimestamp\");\nvar timestamp = new type(\"tag:yaml.org,2002:timestamp\", {\n kind: \"scalar\",\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\nfunction resolveYamlMerge(data) {\n return data === \"<<\" || data === null;\n}\n__name(resolveYamlMerge, \"resolveYamlMerge\");\nvar merge = new type(\"tag:yaml.org,2002:merge\", {\n kind: \"scalar\",\n resolve: resolveYamlMerge\n});\nvar BASE64_MAP = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r\";\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n var code, idx, bitlen = 0, max = data.length, map2 = BASE64_MAP;\n for (idx = 0; idx < max; idx++) {\n code = map2.indexOf(data.charAt(idx));\n if (code > 64) continue;\n if (code < 0) return false;\n bitlen += 6;\n }\n return bitlen % 8 === 0;\n}\n__name(resolveYamlBinary, \"resolveYamlBinary\");\nfunction constructYamlBinary(data) {\n var idx, tailbits, input = data.replace(/[\\r\\n=]/g, \"\"), max = input.length, map2 = BASE64_MAP, bits = 0, result = [];\n for (idx = 0; idx < max; idx++) {\n if (idx % 4 === 0 && idx) {\n result.push(bits >> 16 & 255);\n result.push(bits >> 8 & 255);\n result.push(bits & 255);\n }\n bits = bits << 6 | map2.indexOf(input.charAt(idx));\n }\n tailbits = max % 4 * 6;\n if (tailbits === 0) {\n result.push(bits >> 16 & 255);\n result.push(bits >> 8 & 255);\n result.push(bits & 255);\n } else if (tailbits === 18) {\n result.push(bits >> 10 & 255);\n result.push(bits >> 2 & 255);\n } else if (tailbits === 12) {\n result.push(bits >> 4 & 255);\n }\n return new Uint8Array(result);\n}\n__name(constructYamlBinary, \"constructYamlBinary\");\nfunction representYamlBinary(object) {\n var result = \"\", bits = 0, idx, tail, max = object.length, map2 = BASE64_MAP;\n for (idx = 0; idx < max; idx++) {\n if (idx % 3 === 0 && idx) {\n result += map2[bits >> 18 & 63];\n result += map2[bits >> 12 & 63];\n result += map2[bits >> 6 & 63];\n result += map2[bits & 63];\n }\n bits = (bits << 8) + object[idx];\n }\n tail = max % 3;\n if (tail === 0) {\n result += map2[bits >> 18 & 63];\n result += map2[bits >> 12 & 63];\n result += map2[bits >> 6 & 63];\n result += map2[bits & 63];\n } else if (tail === 2) {\n result += map2[bits >> 10 & 63];\n result += map2[bits >> 4 & 63];\n result += map2[bits << 2 & 63];\n result += map2[64];\n } else if (tail === 1) {\n result += map2[bits >> 2 & 63];\n result += map2[bits << 4 & 63];\n result += map2[64];\n result += map2[64];\n }\n return result;\n}\n__name(representYamlBinary, \"representYamlBinary\");\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === \"[object Uint8Array]\";\n}\n__name(isBinary, \"isBinary\");\nvar binary = new type(\"tag:yaml.org,2002:binary\", {\n kind: \"scalar\",\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n var objectKeys = [], index, length, pair, pairKey, pairHasKey, object = data;\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n if (_toString$2.call(pair) !== \"[object Object]\") return false;\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n if (!pairHasKey) return false;\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n return true;\n}\n__name(resolveYamlOmap, \"resolveYamlOmap\");\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n__name(constructYamlOmap, \"constructYamlOmap\");\nvar omap = new type(\"tag:yaml.org,2002:omap\", {\n kind: \"sequence\",\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\nvar _toString$1 = Object.prototype.toString;\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n var index, length, pair, keys, result, object = data;\n result = new Array(object.length);\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n if (_toString$1.call(pair) !== \"[object Object]\") return false;\n keys = Object.keys(pair);\n if (keys.length !== 1) return false;\n result[index] = [keys[0], pair[keys[0]]];\n }\n return true;\n}\n__name(resolveYamlPairs, \"resolveYamlPairs\");\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n var index, length, pair, keys, result, object = data;\n result = new Array(object.length);\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n keys = Object.keys(pair);\n result[index] = [keys[0], pair[keys[0]]];\n }\n return result;\n}\n__name(constructYamlPairs, \"constructYamlPairs\");\nvar pairs = new type(\"tag:yaml.org,2002:pairs\", {\n kind: \"sequence\",\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n var key, object = data;\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n return true;\n}\n__name(resolveYamlSet, \"resolveYamlSet\");\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n__name(constructYamlSet, \"constructYamlSet\");\nvar set = new type(\"tag:yaml.org,2002:set\", {\n kind: \"mapping\",\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\nfunction _class(obj) {\n return Object.prototype.toString.call(obj);\n}\n__name(_class, \"_class\");\nfunction is_EOL(c) {\n return c === 10 || c === 13;\n}\n__name(is_EOL, \"is_EOL\");\nfunction is_WHITE_SPACE(c) {\n return c === 9 || c === 32;\n}\n__name(is_WHITE_SPACE, \"is_WHITE_SPACE\");\nfunction is_WS_OR_EOL(c) {\n return c === 9 || c === 32 || c === 10 || c === 13;\n}\n__name(is_WS_OR_EOL, \"is_WS_OR_EOL\");\nfunction is_FLOW_INDICATOR(c) {\n return c === 44 || c === 91 || c === 93 || c === 123 || c === 125;\n}\n__name(is_FLOW_INDICATOR, \"is_FLOW_INDICATOR\");\nfunction fromHexCode(c) {\n var lc;\n if (48 <= c && c <= 57) {\n return c - 48;\n }\n lc = c | 32;\n if (97 <= lc && lc <= 102) {\n return lc - 97 + 10;\n }\n return -1;\n}\n__name(fromHexCode, \"fromHexCode\");\nfunction escapedHexLen(c) {\n if (c === 120) {\n return 2;\n }\n if (c === 117) {\n return 4;\n }\n if (c === 85) {\n return 8;\n }\n return 0;\n}\n__name(escapedHexLen, \"escapedHexLen\");\nfunction fromDecimalCode(c) {\n if (48 <= c && c <= 57) {\n return c - 48;\n }\n return -1;\n}\n__name(fromDecimalCode, \"fromDecimalCode\");\nfunction simpleEscapeSequence(c) {\n return c === 48 ? \"\\0\" : c === 97 ? \"\\x07\" : c === 98 ? \"\\b\" : c === 116 ? \"\t\" : c === 9 ? \"\t\" : c === 110 ? \"\\n\" : c === 118 ? \"\\v\" : c === 102 ? \"\\f\" : c === 114 ? \"\\r\" : c === 101 ? \"\\x1B\" : c === 32 ? \" \" : c === 34 ? '\"' : c === 47 ? \"/\" : c === 92 ? \"\\\\\" : c === 78 ? \"\\x85\" : c === 95 ? \"\\xA0\" : c === 76 ? \"\\u2028\" : c === 80 ? \"\\u2029\" : \"\";\n}\n__name(simpleEscapeSequence, \"simpleEscapeSequence\");\nfunction charFromCodepoint(c) {\n if (c <= 65535) {\n return String.fromCharCode(c);\n }\n return String.fromCharCode(\n (c - 65536 >> 10) + 55296,\n (c - 65536 & 1023) + 56320\n );\n}\n__name(charFromCodepoint, \"charFromCodepoint\");\nvar simpleEscapeCheck = new Array(256);\nvar simpleEscapeMap = new Array(256);\nfor (i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\nvar i;\nfunction State$1(input, options) {\n this.input = input;\n this.filename = options[\"filename\"] || null;\n this.schema = options[\"schema\"] || _default;\n this.onWarning = options[\"onWarning\"] || null;\n this.legacy = options[\"legacy\"] || false;\n this.json = options[\"json\"] || false;\n this.listener = options[\"listener\"] || null;\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n this.firstTabInLine = -1;\n this.documents = [];\n}\n__name(State$1, \"State$1\");\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1),\n // omit trailing \\0\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n mark.snippet = snippet(mark);\n return new exception(message, mark);\n}\n__name(generateError, \"generateError\");\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n__name(throwError, \"throwError\");\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n__name(throwWarning, \"throwWarning\");\nvar directiveHandlers = {\n YAML: /* @__PURE__ */ __name(function handleYamlDirective(state, name, args) {\n var match, major, minor;\n if (state.version !== null) {\n throwError(state, \"duplication of %YAML directive\");\n }\n if (args.length !== 1) {\n throwError(state, \"YAML directive accepts exactly one argument\");\n }\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n if (match === null) {\n throwError(state, \"ill-formed argument of the YAML directive\");\n }\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n if (major !== 1) {\n throwError(state, \"unacceptable YAML version of the document\");\n }\n state.version = args[0];\n state.checkLineBreaks = minor < 2;\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, \"unsupported YAML version of the document\");\n }\n }, \"handleYamlDirective\"),\n TAG: /* @__PURE__ */ __name(function handleTagDirective(state, name, args) {\n var handle, prefix;\n if (args.length !== 2) {\n throwError(state, \"TAG directive accepts exactly two arguments\");\n }\n handle = args[0];\n prefix = args[1];\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, \"ill-formed tag handle (first argument) of the TAG directive\");\n }\n if (_hasOwnProperty$1.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, \"ill-formed tag prefix (second argument) of the TAG directive\");\n }\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, \"tag prefix is malformed: \" + prefix);\n }\n state.tagMap[handle] = prefix;\n }, \"handleTagDirective\")\n};\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n if (start < end) {\n _result = state.input.slice(start, end);\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 9 || 32 <= _character && _character <= 1114111)) {\n throwError(state, \"expected valid JSON character\");\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, \"the stream contains non-printable characters\");\n }\n state.result += _result;\n }\n}\n__name(captureSegment, \"captureSegment\");\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n if (!common.isObject(source)) {\n throwError(state, \"cannot merge mappings; the provided source object is unacceptable\");\n }\n sourceKeys = Object.keys(source);\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n if (!_hasOwnProperty$1.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\n__name(mergeMappings, \"mergeMappings\");\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) {\n var index, quantity;\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, \"nested arrays are not supported inside keys\");\n }\n if (typeof keyNode === \"object\" && _class(keyNode[index]) === \"[object Object]\") {\n keyNode[index] = \"[object Object]\";\n }\n }\n }\n if (typeof keyNode === \"object\" && _class(keyNode) === \"[object Object]\") {\n keyNode = \"[object Object]\";\n }\n keyNode = String(keyNode);\n if (_result === null) {\n _result = {};\n }\n if (keyTag === \"tag:yaml.org,2002:merge\") {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json && !_hasOwnProperty$1.call(overridableKeys, keyNode) && _hasOwnProperty$1.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.lineStart = startLineStart || state.lineStart;\n state.position = startPos || state.position;\n throwError(state, \"duplicated mapping key\");\n }\n if (keyNode === \"__proto__\") {\n Object.defineProperty(_result, keyNode, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: valueNode\n });\n } else {\n _result[keyNode] = valueNode;\n }\n delete overridableKeys[keyNode];\n }\n return _result;\n}\n__name(storeMappingPair, \"storeMappingPair\");\nfunction readLineBreak(state) {\n var ch;\n ch = state.input.charCodeAt(state.position);\n if (ch === 10) {\n state.position++;\n } else if (ch === 13) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 10) {\n state.position++;\n }\n } else {\n throwError(state, \"a line break is expected\");\n }\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\n__name(readLineBreak, \"readLineBreak\");\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0, ch = state.input.charCodeAt(state.position);\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 9 && state.firstTabInLine === -1) {\n state.firstTabInLine = state.position;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n if (allowComments && ch === 35) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 10 && ch !== 13 && ch !== 0);\n }\n if (is_EOL(ch)) {\n readLineBreak(state);\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n while (ch === 32) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, \"deficient indentation\");\n }\n return lineBreaks;\n}\n__name(skipSeparationSpace, \"skipSeparationSpace\");\nfunction testDocumentSeparator(state) {\n var _position = state.position, ch;\n ch = state.input.charCodeAt(_position);\n if ((ch === 45 || ch === 46) && ch === state.input.charCodeAt(_position + 1) && ch === state.input.charCodeAt(_position + 2)) {\n _position += 3;\n ch = state.input.charCodeAt(_position);\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n return false;\n}\n__name(testDocumentSeparator, \"testDocumentSeparator\");\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += \" \";\n } else if (count > 1) {\n state.result += common.repeat(\"\\n\", count - 1);\n }\n}\n__name(writeFoldedLines, \"writeFoldedLines\");\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state.kind, _result = state.result, ch;\n ch = state.input.charCodeAt(state.position);\n if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96) {\n return false;\n }\n if (ch === 63 || ch === 45) {\n following = state.input.charCodeAt(state.position + 1);\n if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n state.kind = \"scalar\";\n state.result = \"\";\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n while (ch !== 0) {\n if (ch === 58) {\n following = state.input.charCodeAt(state.position + 1);\n if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n } else if (ch === 35) {\n preceding = state.input.charCodeAt(state.position - 1);\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n } else if (state.position === state.lineStart && testDocumentSeparator(state) || withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n captureSegment(state, captureStart, captureEnd, false);\n if (state.result) {\n return true;\n }\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n__name(readPlainScalar, \"readPlainScalar\");\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch, captureStart, captureEnd;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 39) {\n return false;\n }\n state.kind = \"scalar\";\n state.result = \"\";\n state.position++;\n captureStart = captureEnd = state.position;\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 39) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n if (ch === 39) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, \"unexpected end of the document within a single quoted scalar\");\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n throwError(state, \"unexpected end of the stream within a single quoted scalar\");\n}\n__name(readSingleQuotedScalar, \"readSingleQuotedScalar\");\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart, captureEnd, hexLength, hexResult, tmp, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 34) {\n return false;\n }\n state.kind = \"scalar\";\n state.result = \"\";\n state.position++;\n captureStart = captureEnd = state.position;\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 34) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n } else if (ch === 92) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n } else {\n throwError(state, \"expected hexadecimal character\");\n }\n }\n state.result += charFromCodepoint(hexResult);\n state.position++;\n } else {\n throwError(state, \"unknown escape sequence\");\n }\n captureStart = captureEnd = state.position;\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, \"unexpected end of the document within a double quoted scalar\");\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n throwError(state, \"unexpected end of the stream within a double quoted scalar\");\n}\n__name(readDoubleQuotedScalar, \"readDoubleQuotedScalar\");\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true, _line, _lineStart, _pos, _tag = state.tag, _result, _anchor = state.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = /* @__PURE__ */ Object.create(null), keyNode, keyTag, valueNode, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch === 91) {\n terminator = 93;\n isMapping = false;\n _result = [];\n } else if (ch === 123) {\n terminator = 125;\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n ch = state.input.charCodeAt(++state.position);\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n ch = state.input.charCodeAt(state.position);\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? \"mapping\" : \"sequence\";\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, \"missed comma between flow collection entries\");\n } else if (ch === 44) {\n throwError(state, \"expected the node content, but found ','\");\n }\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n if (ch === 63) {\n following = state.input.charCodeAt(state.position + 1);\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n _line = state.line;\n _lineStart = state.lineStart;\n _pos = state.position;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n ch = state.input.charCodeAt(state.position);\n if ((isExplicitPair || state.line === _line) && ch === 58) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n skipSeparationSpace(state, true, nodeIndent);\n ch = state.input.charCodeAt(state.position);\n if (ch === 44) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n throwError(state, \"unexpected end of the stream within a flow collection\");\n}\n__name(readFlowCollection, \"readFlowCollection\");\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch === 124) {\n folding = false;\n } else if (ch === 62) {\n folding = true;\n } else {\n return false;\n }\n state.kind = \"scalar\";\n state.result = \"\";\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n if (ch === 43 || ch === 45) {\n if (CHOMPING_CLIP === chomping) {\n chomping = ch === 43 ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, \"repeat of a chomping mode identifier\");\n }\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, \"bad explicit indentation width of a block scalar; it cannot be less than one\");\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, \"repeat of an indentation width identifier\");\n }\n } else {\n break;\n }\n }\n if (is_WHITE_SPACE(ch)) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (is_WHITE_SPACE(ch));\n if (ch === 35) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (!is_EOL(ch) && ch !== 0);\n }\n }\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n ch = state.input.charCodeAt(state.position);\n while ((!detectedIndent || state.lineIndent < textIndent) && ch === 32) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n if (state.lineIndent < textIndent) {\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) {\n state.result += \"\\n\";\n }\n }\n break;\n }\n if (folding) {\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n state.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat(\"\\n\", emptyLines + 1);\n } else if (emptyLines === 0) {\n if (didReadContent) {\n state.result += \" \";\n }\n } else {\n state.result += common.repeat(\"\\n\", emptyLines);\n }\n } else {\n state.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n }\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n while (!is_EOL(ch) && ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n }\n captureSegment(state, captureStart, state.position, false);\n }\n return true;\n}\n__name(readBlockScalar, \"readBlockScalar\");\nfunction readBlockSequence(state, nodeIndent) {\n var _line, _tag = state.tag, _anchor = state.anchor, _result = [], following, detected = false, ch;\n if (state.firstTabInLine !== -1) return false;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n ch = state.input.charCodeAt(state.position);\n while (ch !== 0) {\n if (state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, \"tab characters must not be used in indentation\");\n }\n if (ch !== 45) {\n break;\n }\n following = state.input.charCodeAt(state.position + 1);\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n detected = true;\n state.position++;\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) {\n throwError(state, \"bad indentation of a sequence entry\");\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = \"sequence\";\n state.result = _result;\n return true;\n }\n return false;\n}\n__name(readBlockSequence, \"readBlockSequence\");\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag = state.tag, _anchor = state.anchor, _result = {}, overridableKeys = /* @__PURE__ */ Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch;\n if (state.firstTabInLine !== -1) return false;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n ch = state.input.charCodeAt(state.position);\n while (ch !== 0) {\n if (!atExplicitKey && state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, \"tab characters must not be used in indentation\");\n }\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line;\n if ((ch === 63 || ch === 58) && is_WS_OR_EOL(following)) {\n if (ch === 63) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n } else if (atExplicitKey) {\n atExplicitKey = false;\n allowCompact = true;\n } else {\n throwError(state, \"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line\");\n }\n state.position += 1;\n ch = following;\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n break;\n }\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n if (ch === 58) {\n ch = state.input.charCodeAt(++state.position);\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, \"a whitespace character is expected after the key-value separator within a block mapping\");\n }\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n } else if (detected) {\n throwError(state, \"can not read an implicit mapping pair; a colon is missed\");\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true;\n }\n } else if (detected) {\n throwError(state, \"can not read a block mapping entry; a multiline key may not be an implicit key\");\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true;\n }\n }\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n }\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) {\n throwError(state, \"bad indentation of a mapping entry\");\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = \"mapping\";\n state.result = _result;\n }\n return detected;\n}\n__name(readBlockMapping, \"readBlockMapping\");\nfunction readTagProperty(state) {\n var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 33) return false;\n if (state.tag !== null) {\n throwError(state, \"duplication of a tag property\");\n }\n ch = state.input.charCodeAt(++state.position);\n if (ch === 60) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n } else if (ch === 33) {\n isNamed = true;\n tagHandle = \"!!\";\n ch = state.input.charCodeAt(++state.position);\n } else {\n tagHandle = \"!\";\n }\n _position = state.position;\n if (isVerbatim) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0 && ch !== 62);\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, \"unexpected end of the stream within a verbatim tag\");\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n if (ch === 33) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, \"named tag handle cannot contain such characters\");\n }\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, \"tag suffix cannot contain exclamation marks\");\n }\n }\n ch = state.input.charCodeAt(++state.position);\n }\n tagName = state.input.slice(_position, state.position);\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, \"tag suffix cannot contain flow indicator characters\");\n }\n }\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, \"tag name cannot contain such characters: \" + tagName);\n }\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, \"tag name is malformed: \" + tagName);\n }\n if (isVerbatim) {\n state.tag = tagName;\n } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n } else if (tagHandle === \"!\") {\n state.tag = \"!\" + tagName;\n } else if (tagHandle === \"!!\") {\n state.tag = \"tag:yaml.org,2002:\" + tagName;\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n return true;\n}\n__name(readTagProperty, \"readTagProperty\");\nfunction readAnchorProperty(state) {\n var _position, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 38) return false;\n if (state.anchor !== null) {\n throwError(state, \"duplication of an anchor property\");\n }\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n if (state.position === _position) {\n throwError(state, \"name of an anchor node must contain at least one character\");\n }\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n__name(readAnchorProperty, \"readAnchorProperty\");\nfunction readAlias(state) {\n var _position, alias, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 42) return false;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n if (state.position === _position) {\n throwError(state, \"name of an alias node must contain at least one character\");\n }\n alias = state.input.slice(_position, state.position);\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n__name(readAlias, \"readAlias\");\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type2, flowIndent, blockIndent;\n if (state.listener !== null) {\n state.listener(\"open\", state);\n }\n state.tag = null;\n state.anchor = null;\n state.kind = null;\n state.result = null;\n allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext;\n if (allowToSeek) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n blockIndent = state.position - state.lineStart;\n if (indentStatus === 1) {\n if (allowBlockCollections && (readBlockSequence(state, blockIndent) || readBlockMapping(state, blockIndent, flowIndent)) || readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if (allowBlockScalars && readBlockScalar(state, flowIndent) || readSingleQuotedScalar(state, flowIndent) || readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n } else if (readAlias(state)) {\n hasContent = true;\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, \"alias node should not have any properties\");\n }\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n if (state.tag === null) {\n state.tag = \"?\";\n }\n }\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n if (state.tag === null) {\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n } else if (state.tag === \"?\") {\n if (state.result !== null && state.kind !== \"scalar\") {\n throwError(state, 'unacceptable node kind for !<?> tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type2 = state.implicitTypes[typeIndex];\n if (type2.resolve(state.result)) {\n state.result = type2.construct(state.result);\n state.tag = type2.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (state.tag !== \"!\") {\n if (_hasOwnProperty$1.call(state.typeMap[state.kind || \"fallback\"], state.tag)) {\n type2 = state.typeMap[state.kind || \"fallback\"][state.tag];\n } else {\n type2 = null;\n typeList = state.typeMap.multi[state.kind || \"fallback\"];\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type2 = typeList[typeIndex];\n break;\n }\n }\n }\n if (!type2) {\n throwError(state, \"unknown tag !<\" + state.tag + \">\");\n }\n if (state.result !== null && type2.kind !== state.kind) {\n throwError(state, \"unacceptable node kind for !<\" + state.tag + '> tag; it should be \"' + type2.kind + '\", not \"' + state.kind + '\"');\n }\n if (!type2.resolve(state.result, state.tag)) {\n throwError(state, \"cannot resolve a node with !<\" + state.tag + \"> explicit tag\");\n } else {\n state.result = type2.construct(state.result, state.tag);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n }\n if (state.listener !== null) {\n state.listener(\"close\", state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n__name(composeNode, \"composeNode\");\nfunction readDocument(state) {\n var documentStart = state.position, _position, directiveName, directiveArgs, hasDirectives = false, ch;\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = /* @__PURE__ */ Object.create(null);\n state.anchorMap = /* @__PURE__ */ Object.create(null);\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n if (state.lineIndent > 0 || ch !== 37) {\n break;\n }\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n if (directiveName.length < 1) {\n throwError(state, \"directive name must not be less than one character in length\");\n }\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n if (ch === 35) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0 && !is_EOL(ch));\n break;\n }\n if (is_EOL(ch)) break;\n _position = state.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n if (ch !== 0) readLineBreak(state);\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n skipSeparationSpace(state, true, -1);\n if (state.lineIndent === 0 && state.input.charCodeAt(state.position) === 45 && state.input.charCodeAt(state.position + 1) === 45 && state.input.charCodeAt(state.position + 2) === 45) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n } else if (hasDirectives) {\n throwError(state, \"directives end mark is expected\");\n }\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n if (state.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, \"non-ASCII line breaks are interpreted as content\");\n }\n state.documents.push(state.result);\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n if (state.input.charCodeAt(state.position) === 46) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n if (state.position < state.length - 1) {\n throwError(state, \"end of the stream or a document separator is expected\");\n } else {\n return;\n }\n}\n__name(readDocument, \"readDocument\");\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n if (input.length !== 0) {\n if (input.charCodeAt(input.length - 1) !== 10 && input.charCodeAt(input.length - 1) !== 13) {\n input += \"\\n\";\n }\n if (input.charCodeAt(0) === 65279) {\n input = input.slice(1);\n }\n }\n var state = new State$1(input, options);\n var nullpos = input.indexOf(\"\\0\");\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, \"null byte is not allowed in input\");\n }\n state.input += \"\\0\";\n while (state.input.charCodeAt(state.position) === 32) {\n state.lineIndent += 1;\n state.position += 1;\n }\n while (state.position < state.length - 1) {\n readDocument(state);\n }\n return state.documents;\n}\n__name(loadDocuments, \"loadDocuments\");\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === \"object\" && typeof options === \"undefined\") {\n options = iterator;\n iterator = null;\n }\n var documents = loadDocuments(input, options);\n if (typeof iterator !== \"function\") {\n return documents;\n }\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n__name(loadAll$1, \"loadAll$1\");\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n if (documents.length === 0) {\n return void 0;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception(\"expected a single document in the stream, but found more\");\n}\n__name(load$1, \"load$1\");\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\nvar loader = {\n loadAll: loadAll_1,\n load: load_1\n};\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\nvar CHAR_BOM = 65279;\nvar CHAR_TAB = 9;\nvar CHAR_LINE_FEED = 10;\nvar CHAR_CARRIAGE_RETURN = 13;\nvar CHAR_SPACE = 32;\nvar CHAR_EXCLAMATION = 33;\nvar CHAR_DOUBLE_QUOTE = 34;\nvar CHAR_SHARP = 35;\nvar CHAR_PERCENT = 37;\nvar CHAR_AMPERSAND = 38;\nvar CHAR_SINGLE_QUOTE = 39;\nvar CHAR_ASTERISK = 42;\nvar CHAR_COMMA = 44;\nvar CHAR_MINUS = 45;\nvar CHAR_COLON = 58;\nvar CHAR_EQUALS = 61;\nvar CHAR_GREATER_THAN = 62;\nvar CHAR_QUESTION = 63;\nvar CHAR_COMMERCIAL_AT = 64;\nvar CHAR_LEFT_SQUARE_BRACKET = 91;\nvar CHAR_RIGHT_SQUARE_BRACKET = 93;\nvar CHAR_GRAVE_ACCENT = 96;\nvar CHAR_LEFT_CURLY_BRACKET = 123;\nvar CHAR_VERTICAL_LINE = 124;\nvar CHAR_RIGHT_CURLY_BRACKET = 125;\nvar ESCAPE_SEQUENCES = {};\nESCAPE_SEQUENCES[0] = \"\\\\0\";\nESCAPE_SEQUENCES[7] = \"\\\\a\";\nESCAPE_SEQUENCES[8] = \"\\\\b\";\nESCAPE_SEQUENCES[9] = \"\\\\t\";\nESCAPE_SEQUENCES[10] = \"\\\\n\";\nESCAPE_SEQUENCES[11] = \"\\\\v\";\nESCAPE_SEQUENCES[12] = \"\\\\f\";\nESCAPE_SEQUENCES[13] = \"\\\\r\";\nESCAPE_SEQUENCES[27] = \"\\\\e\";\nESCAPE_SEQUENCES[34] = '\\\\\"';\nESCAPE_SEQUENCES[92] = \"\\\\\\\\\";\nESCAPE_SEQUENCES[133] = \"\\\\N\";\nESCAPE_SEQUENCES[160] = \"\\\\_\";\nESCAPE_SEQUENCES[8232] = \"\\\\L\";\nESCAPE_SEQUENCES[8233] = \"\\\\P\";\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n \"y\",\n \"Y\",\n \"yes\",\n \"Yes\",\n \"YES\",\n \"on\",\n \"On\",\n \"ON\",\n \"n\",\n \"N\",\n \"no\",\n \"No\",\n \"NO\",\n \"off\",\n \"Off\",\n \"OFF\"\n];\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\nfunction compileStyleMap(schema2, map2) {\n var result, keys, index, length, tag, style, type2;\n if (map2 === null) return {};\n result = {};\n keys = Object.keys(map2);\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map2[tag]);\n if (tag.slice(0, 2) === \"!!\") {\n tag = \"tag:yaml.org,2002:\" + tag.slice(2);\n }\n type2 = schema2.compiledTypeMap[\"fallback\"][tag];\n if (type2 && _hasOwnProperty.call(type2.styleAliases, style)) {\n style = type2.styleAliases[style];\n }\n result[tag] = style;\n }\n return result;\n}\n__name(compileStyleMap, \"compileStyleMap\");\nfunction encodeHex(character) {\n var string, handle, length;\n string = character.toString(16).toUpperCase();\n if (character <= 255) {\n handle = \"x\";\n length = 2;\n } else if (character <= 65535) {\n handle = \"u\";\n length = 4;\n } else if (character <= 4294967295) {\n handle = \"U\";\n length = 8;\n } else {\n throw new exception(\"code point within a string may not be greater than 0xFFFFFFFF\");\n }\n return \"\\\\\" + handle + common.repeat(\"0\", length - string.length) + string;\n}\n__name(encodeHex, \"encodeHex\");\nvar QUOTING_TYPE_SINGLE = 1;\nvar QUOTING_TYPE_DOUBLE = 2;\nfunction State(options) {\n this.schema = options[\"schema\"] || _default;\n this.indent = Math.max(1, options[\"indent\"] || 2);\n this.noArrayIndent = options[\"noArrayIndent\"] || false;\n this.skipInvalid = options[\"skipInvalid\"] || false;\n this.flowLevel = common.isNothing(options[\"flowLevel\"]) ? -1 : options[\"flowLevel\"];\n this.styleMap = compileStyleMap(this.schema, options[\"styles\"] || null);\n this.sortKeys = options[\"sortKeys\"] || false;\n this.lineWidth = options[\"lineWidth\"] || 80;\n this.noRefs = options[\"noRefs\"] || false;\n this.noCompatMode = options[\"noCompatMode\"] || false;\n this.condenseFlow = options[\"condenseFlow\"] || false;\n this.quotingType = options[\"quotingType\"] === '\"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;\n this.forceQuotes = options[\"forceQuotes\"] || false;\n this.replacer = typeof options[\"replacer\"] === \"function\" ? options[\"replacer\"] : null;\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n this.tag = null;\n this.result = \"\";\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n__name(State, \"State\");\nfunction indentString(string, spaces) {\n var ind = common.repeat(\" \", spaces), position = 0, next = -1, result = \"\", line, length = string.length;\n while (position < length) {\n next = string.indexOf(\"\\n\", position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n if (line.length && line !== \"\\n\") result += ind;\n result += line;\n }\n return result;\n}\n__name(indentString, \"indentString\");\nfunction generateNextLine(state, level) {\n return \"\\n\" + common.repeat(\" \", state.indent * level);\n}\n__name(generateNextLine, \"generateNextLine\");\nfunction testImplicitResolving(state, str2) {\n var index, length, type2;\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type2 = state.implicitTypes[index];\n if (type2.resolve(str2)) {\n return true;\n }\n }\n return false;\n}\n__name(testImplicitResolving, \"testImplicitResolving\");\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n__name(isWhitespace, \"isWhitespace\");\nfunction isPrintable(c) {\n return 32 <= c && c <= 126 || 161 <= c && c <= 55295 && c !== 8232 && c !== 8233 || 57344 <= c && c <= 65533 && c !== CHAR_BOM || 65536 <= c && c <= 1114111;\n}\n__name(isPrintable, \"isPrintable\");\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c) && c !== CHAR_BOM && c !== CHAR_CARRIAGE_RETURN && c !== CHAR_LINE_FEED;\n}\n__name(isNsCharOrWhitespace, \"isNsCharOrWhitespace\");\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return (\n // ns-plain-safe\n (inblock ? (\n // c = flow-in\n cIsNsCharOrWhitespace\n ) : cIsNsCharOrWhitespace && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET) && c !== CHAR_SHARP && !(prev === CHAR_COLON && !cIsNsChar) || isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP || prev === CHAR_COLON && cIsNsChar\n );\n}\n__name(isPlainSafe, \"isPlainSafe\");\nfunction isPlainSafeFirst(c) {\n return isPrintable(c) && c !== CHAR_BOM && !isWhitespace(c) && c !== CHAR_MINUS && c !== CHAR_QUESTION && c !== CHAR_COLON && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET && c !== CHAR_SHARP && c !== CHAR_AMPERSAND && c !== CHAR_ASTERISK && c !== CHAR_EXCLAMATION && c !== CHAR_VERTICAL_LINE && c !== CHAR_EQUALS && c !== CHAR_GREATER_THAN && c !== CHAR_SINGLE_QUOTE && c !== CHAR_DOUBLE_QUOTE && c !== CHAR_PERCENT && c !== CHAR_COMMERCIAL_AT && c !== CHAR_GRAVE_ACCENT;\n}\n__name(isPlainSafeFirst, \"isPlainSafeFirst\");\nfunction isPlainSafeLast(c) {\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\n__name(isPlainSafeLast, \"isPlainSafeLast\");\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos), second;\n if (first >= 55296 && first <= 56319 && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 56320 && second <= 57343) {\n return (first - 55296) * 1024 + second - 56320 + 65536;\n }\n }\n return first;\n}\n__name(codePointAt, \"codePointAt\");\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n__name(needIndentIndicator, \"needIndentIndicator\");\nvar STYLE_PLAIN = 1;\nvar STYLE_SINGLE = 2;\nvar STYLE_LITERAL = 3;\nvar STYLE_FOLDED = 4;\nvar STYLE_DOUBLE = 5;\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType, quotingType, forceQuotes, inblock) {\n var i;\n var char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false;\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1;\n var plain = isPlainSafeFirst(codePointAt(string, 0)) && isPlainSafeLast(codePointAt(string, string.length - 1));\n if (singleLineOnly || forceQuotes) {\n for (i = 0; i < string.length; char >= 65536 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n } else {\n for (i = 0; i < string.length; char >= 65536 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine || // Foldable line = too long, and not more-indented.\n i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== \" \";\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n hasFoldableLine = hasFoldableLine || shouldTrackWidth && (i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== \" \");\n }\n if (!hasLineBreak && !hasFoldableLine) {\n if (plain && !forceQuotes && !testAmbiguousType(string)) {\n return STYLE_PLAIN;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n if (!forceQuotes) {\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\n__name(chooseScalarStyle, \"chooseScalarStyle\");\nfunction writeScalar(state, string, level, iskey, inblock) {\n state.dump = function() {\n if (string.length === 0) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"\"' : \"''\";\n }\n if (!state.noCompatMode) {\n if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"' + string + '\"' : \"'\" + string + \"'\";\n }\n }\n var indent = state.indent * Math.max(1, level);\n var lineWidth = state.lineWidth === -1 ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n var singleLineOnly = iskey || state.flowLevel > -1 && level >= state.flowLevel;\n function testAmbiguity(string2) {\n return testImplicitResolving(state, string2);\n }\n __name(testAmbiguity, \"testAmbiguity\");\n switch (chooseScalarStyle(\n string,\n singleLineOnly,\n state.indent,\n lineWidth,\n testAmbiguity,\n state.quotingType,\n state.forceQuotes && !iskey,\n inblock\n )) {\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return \"|\" + blockHeader(string, state.indent) + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return \">\" + blockHeader(string, state.indent) + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string) + '\"';\n default:\n throw new exception(\"impossible error: invalid scalar style\");\n }\n }();\n}\n__name(writeScalar, \"writeScalar\");\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : \"\";\n var clip = string[string.length - 1] === \"\\n\";\n var keep = clip && (string[string.length - 2] === \"\\n\" || string === \"\\n\");\n var chomp = keep ? \"+\" : clip ? \"\" : \"-\";\n return indentIndicator + chomp + \"\\n\";\n}\n__name(blockHeader, \"blockHeader\");\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === \"\\n\" ? string.slice(0, -1) : string;\n}\n__name(dropEndingNewline, \"dropEndingNewline\");\nfunction foldString(string, width) {\n var lineRe = /(\\n+)([^\\n]*)/g;\n var result = function() {\n var nextLF = string.indexOf(\"\\n\");\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }();\n var prevMoreIndented = string[0] === \"\\n\" || string[0] === \" \";\n var moreIndented;\n var match;\n while (match = lineRe.exec(string)) {\n var prefix = match[1], line = match[2];\n moreIndented = line[0] === \" \";\n result += prefix + (!prevMoreIndented && !moreIndented && line !== \"\" ? \"\\n\" : \"\") + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n return result;\n}\n__name(foldString, \"foldString\");\nfunction foldLine(line, width) {\n if (line === \"\" || line[0] === \" \") return line;\n var breakRe = / [^ ]/g;\n var match;\n var start = 0, end, curr = 0, next = 0;\n var result = \"\";\n while (match = breakRe.exec(line)) {\n next = match.index;\n if (next - start > width) {\n end = curr > start ? curr : next;\n result += \"\\n\" + line.slice(start, end);\n start = end + 1;\n }\n curr = next;\n }\n result += \"\\n\";\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + \"\\n\" + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n return result.slice(1);\n}\n__name(foldLine, \"foldLine\");\nfunction escapeString(string) {\n var result = \"\";\n var char = 0;\n var escapeSeq;\n for (var i = 0; i < string.length; char >= 65536 ? i += 2 : i++) {\n char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[char];\n if (!escapeSeq && isPrintable(char)) {\n result += string[i];\n if (char >= 65536) result += string[i + 1];\n } else {\n result += escapeSeq || encodeHex(char);\n }\n }\n return result;\n}\n__name(escapeString, \"escapeString\");\nfunction writeFlowSequence(state, level, object) {\n var _result = \"\", _tag = state.tag, index, length, value;\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n if (writeNode(state, level, value, false, false) || typeof value === \"undefined\" && writeNode(state, level, null, false, false)) {\n if (_result !== \"\") _result += \",\" + (!state.condenseFlow ? \" \" : \"\");\n _result += state.dump;\n }\n }\n state.tag = _tag;\n state.dump = \"[\" + _result + \"]\";\n}\n__name(writeFlowSequence, \"writeFlowSequence\");\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = \"\", _tag = state.tag, index, length, value;\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n if (writeNode(state, level + 1, value, true, true, false, true) || typeof value === \"undefined\" && writeNode(state, level + 1, null, true, true, false, true)) {\n if (!compact || _result !== \"\") {\n _result += generateNextLine(state, level);\n }\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += \"-\";\n } else {\n _result += \"- \";\n }\n _result += state.dump;\n }\n }\n state.tag = _tag;\n state.dump = _result || \"[]\";\n}\n__name(writeBlockSequence, \"writeBlockSequence\");\nfunction writeFlowMapping(state, level, object) {\n var _result = \"\", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, pairBuffer;\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = \"\";\n if (_result !== \"\") pairBuffer += \", \";\n if (state.condenseFlow) pairBuffer += '\"';\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n if (!writeNode(state, level, objectKey, false, false)) {\n continue;\n }\n if (state.dump.length > 1024) pairBuffer += \"? \";\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : \"\") + \":\" + (state.condenseFlow ? \"\" : \" \");\n if (!writeNode(state, level, objectValue, false, false)) {\n continue;\n }\n pairBuffer += state.dump;\n _result += pairBuffer;\n }\n state.tag = _tag;\n state.dump = \"{\" + _result + \"}\";\n}\n__name(writeFlowMapping, \"writeFlowMapping\");\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = \"\", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, explicitPair, pairBuffer;\n if (state.sortKeys === true) {\n objectKeyList.sort();\n } else if (typeof state.sortKeys === \"function\") {\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n throw new exception(\"sortKeys must be a boolean or a function\");\n }\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = \"\";\n if (!compact || _result !== \"\") {\n pairBuffer += generateNextLine(state, level);\n }\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue;\n }\n explicitPair = state.tag !== null && state.tag !== \"?\" || state.dump && state.dump.length > 1024;\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += \"?\";\n } else {\n pairBuffer += \"? \";\n }\n }\n pairBuffer += state.dump;\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue;\n }\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += \":\";\n } else {\n pairBuffer += \": \";\n }\n pairBuffer += state.dump;\n _result += pairBuffer;\n }\n state.tag = _tag;\n state.dump = _result || \"{}\";\n}\n__name(writeBlockMapping, \"writeBlockMapping\");\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type2, style;\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type2 = typeList[index];\n if ((type2.instanceOf || type2.predicate) && (!type2.instanceOf || typeof object === \"object\" && object instanceof type2.instanceOf) && (!type2.predicate || type2.predicate(object))) {\n if (explicit) {\n if (type2.multi && type2.representName) {\n state.tag = type2.representName(object);\n } else {\n state.tag = type2.tag;\n }\n } else {\n state.tag = \"?\";\n }\n if (type2.represent) {\n style = state.styleMap[type2.tag] || type2.defaultStyle;\n if (_toString.call(type2.represent) === \"[object Function]\") {\n _result = type2.represent(object, style);\n } else if (_hasOwnProperty.call(type2.represent, style)) {\n _result = type2.represent[style](object, style);\n } else {\n throw new exception(\"!<\" + type2.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n state.dump = _result;\n }\n return true;\n }\n }\n return false;\n}\n__name(detectType, \"detectType\");\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n var type2 = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n if (block) {\n block = state.flowLevel < 0 || state.flowLevel > level;\n }\n var objectOrArray = type2 === \"[object Object]\" || type2 === \"[object Array]\", duplicateIndex, duplicate;\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n if (state.tag !== null && state.tag !== \"?\" || duplicate || state.indent !== 2 && level > 0) {\n compact = false;\n }\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = \"*ref_\" + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type2 === \"[object Object]\") {\n if (block && Object.keys(state.dump).length !== 0) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = \"&ref_\" + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = \"&ref_\" + duplicateIndex + \" \" + state.dump;\n }\n }\n } else if (type2 === \"[object Array]\") {\n if (block && state.dump.length !== 0) {\n if (state.noArrayIndent && !isblockseq && level > 0) {\n writeBlockSequence(state, level - 1, state.dump, compact);\n } else {\n writeBlockSequence(state, level, state.dump, compact);\n }\n if (duplicate) {\n state.dump = \"&ref_\" + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) {\n state.dump = \"&ref_\" + duplicateIndex + \" \" + state.dump;\n }\n }\n } else if (type2 === \"[object String]\") {\n if (state.tag !== \"?\") {\n writeScalar(state, state.dump, level, iskey, inblock);\n }\n } else if (type2 === \"[object Undefined]\") {\n return false;\n } else {\n if (state.skipInvalid) return false;\n throw new exception(\"unacceptable kind of an object to dump \" + type2);\n }\n if (state.tag !== null && state.tag !== \"?\") {\n tagStr = encodeURI(\n state.tag[0] === \"!\" ? state.tag.slice(1) : state.tag\n ).replace(/!/g, \"%21\");\n if (state.tag[0] === \"!\") {\n tagStr = \"!\" + tagStr;\n } else if (tagStr.slice(0, 18) === \"tag:yaml.org,2002:\") {\n tagStr = \"!!\" + tagStr.slice(18);\n } else {\n tagStr = \"!<\" + tagStr + \">\";\n }\n state.dump = tagStr + \" \" + state.dump;\n }\n }\n return true;\n}\n__name(writeNode, \"writeNode\");\nfunction getDuplicateReferences(object, state) {\n var objects = [], duplicatesIndexes = [], index, length;\n inspectNode(object, objects, duplicatesIndexes);\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n__name(getDuplicateReferences, \"getDuplicateReferences\");\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList, index, length;\n if (object !== null && typeof object === \"object\") {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n__name(inspectNode, \"inspectNode\");\nfunction dump$1(input, options) {\n options = options || {};\n var state = new State(options);\n if (!state.noRefs) getDuplicateReferences(input, state);\n var value = input;\n if (state.replacer) {\n value = state.replacer.call({ \"\": value }, \"\", value);\n }\n if (writeNode(state, 0, value, true, true)) return state.dump + \"\\n\";\n return \"\";\n}\n__name(dump$1, \"dump$1\");\nvar dump_1 = dump$1;\nvar dumper = {\n dump: dump_1\n};\nfunction renamed(from, to) {\n return function() {\n throw new Error(\"Function yaml.\" + from + \" is removed in js-yaml 4. Use yaml.\" + to + \" instead, which is now safe by default.\");\n };\n}\n__name(renamed, \"renamed\");\nvar JSON_SCHEMA = json;\nvar load = loader.load;\nvar loadAll = loader.loadAll;\nvar dump = dumper.dump;\nvar safeLoad = renamed(\"safeLoad\", \"load\");\nvar safeLoadAll = renamed(\"safeLoadAll\", \"loadAll\");\nvar safeDump = renamed(\"safeDump\", \"dump\");\n\nexport {\n JSON_SCHEMA,\n load\n};\n/*! Bundled license information:\n\njs-yaml/dist/js-yaml.mjs:\n (*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT *)\n*/\n","/*! @license DOMPurify 3.2.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.6/LICENSE */\n\nconst {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n} = Object;\nlet {\n freeze,\n seal,\n create\n} = Object; // eslint-disable-line import/no-mutable-exports\nlet {\n apply,\n construct\n} = typeof Reflect !== 'undefined' && Reflect;\nif (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n}\nif (!seal) {\n seal = function seal(x) {\n return x;\n };\n}\nif (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n}\nif (!construct) {\n construct = function construct(Func, args) {\n return new Func(...args);\n };\n}\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySplice = unapply(Array.prototype.splice);\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\nconst objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\nconst regExpTest = unapply(RegExp.prototype.test);\nconst typeErrorCreate = unconstruct(TypeError);\n/**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param func - The function to be wrapped and called.\n * @returns A new function that calls the given function with a specified thisArg and arguments.\n */\nfunction unapply(func) {\n return function (thisArg) {\n if (thisArg instanceof RegExp) {\n thisArg.lastIndex = 0;\n }\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return apply(func, thisArg, args);\n };\n}\n/**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param func - The constructor function to be wrapped and called.\n * @returns A new function that constructs an instance of the given constructor function with the provided arguments.\n */\nfunction unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return construct(func, args);\n };\n}\n/**\n * Add properties to a lookup table\n *\n * @param set - The set to which elements will be added.\n * @param array - The array containing elements to be added to the set.\n * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns The modified set with added elements.\n */\nfunction addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n}\n/**\n * Clean up an array to harden against CSPP\n *\n * @param array - The array to be cleaned.\n * @returns The cleaned version of the array\n */\nfunction cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n}\n/**\n * Shallow clone an object\n *\n * @param object - The object to be cloned.\n * @returns A new object that copies the original.\n */\nfunction clone(object) {\n const newObject = create(null);\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n}\n/**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param object - The object to look up the getter function in its prototype chain.\n * @param prop - The property name for which to find the getter function.\n * @returns The getter function found in the prototype chain or a fallback function.\n */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n}\n\nconst html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\nconst svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\nconst svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nconst svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\nconst mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nconst mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\nconst text = freeze(['#text']);\n\nconst html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\nconst svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\nconst mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\nconst xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n// eslint-disable-next-line unicorn/better-regex\nconst MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nconst ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nconst TMPLIT_EXPR = seal(/\\$\\{[\\w\\W]*/gm); // eslint-disable-line unicorn/better-regex\nconst DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\nconst ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nconst IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nconst IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nconst ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nconst DOCTYPE_NAME = seal(/^html$/i);\nconst CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\nvar EXPRESSIONS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ARIA_ATTR: ARIA_ATTR,\n ATTR_WHITESPACE: ATTR_WHITESPACE,\n CUSTOM_ELEMENT: CUSTOM_ELEMENT,\n DATA_ATTR: DATA_ATTR,\n DOCTYPE_NAME: DOCTYPE_NAME,\n ERB_EXPR: ERB_EXPR,\n IS_ALLOWED_URI: IS_ALLOWED_URI,\n IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n MUSTACHE_EXPR: MUSTACHE_EXPR,\n TMPLIT_EXPR: TMPLIT_EXPR\n});\n\n/* eslint-disable @typescript-eslint/indent */\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\nconst NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5,\n // Deprecated\n entityNode: 6,\n // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12 // Deprecated\n};\nconst getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n};\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param trustedTypes The policy factory.\n * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\nconst _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n};\nconst _createHooksMap = function _createHooksMap() {\n return {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n};\nfunction createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n DOMPurify.version = '3.2.6';\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let {\n document\n } = window;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes\n } = window;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName\n } = document;\n const {\n importNode\n } = originalDocument;\n let hooks = _createHooksMap();\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT\n } = EXPRESSIONS;\n let {\n IS_ALLOWED_URI: IS_ALLOWED_URI$1\n } = EXPRESSIONS;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n /*\n * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n /* Decide if document with <html>... should be returned */\n let WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : clone({});\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : clone({});\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;\n HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n /**\n * @param element a DOM element whose namespace is being checked\n * @returns Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n /**\n * _forceRemove\n *\n * @param node a DOM node\n */\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n /**\n * _removeAttribute\n *\n * @param name an Attribute name\n * @param element a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, element) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: element.getAttributeNode(name),\n from: element\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: element\n });\n }\n element.removeAttribute(name);\n // We void attribute values for unremovable \"is\" attributes\n if (name === 'is') {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(element);\n } catch (_) {}\n } else {\n try {\n element.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param dirty - a string of dirty markup\n * @return a DOM, filled with the dirty markup\n */\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n }\n const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n const body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param root The root element or node to start traversing on.\n * @return The created NodeIterator\n */\n const _createNodeIterator = function _createNodeIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n };\n /**\n * _isClobbered\n *\n * @param element element to check for clobbering attacks\n * @return true if clobbered, false if safe\n */\n const _isClobbered = function _isClobbered(element) {\n return element instanceof HTMLFormElement && (typeof element.nodeName !== 'string' || typeof element.textContent !== 'string' || typeof element.removeChild !== 'function' || !(element.attributes instanceof NamedNodeMap) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function');\n };\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param value object to check whether it's a DOM node\n * @return true is object is a DOM node\n */\n const _isNode = function _isNode(value) {\n return typeof Node === 'function' && value instanceof Node;\n };\n function _executeHooks(hooks, currentNode, data) {\n arrayForEach(hooks, hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n }\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n * @param currentNode to check for permission to exist\n * @return true if node was killed, false if left alive\n */\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content = null;\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeElements, currentNode, null);\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeElement, currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n if (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w!]/g, currentNode.innerHTML) && regExpTest(/<[/\\w!]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n return false;\n }\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n return false;\n }\n }\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n content = stringReplace(content, expr, ' ');\n });\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeElements, currentNode, null);\n return false;\n };\n /**\n * _isValidAttribute\n *\n * @param lcTag Lowercase tag name of containing element.\n * @param lcName Lowercase attribute name.\n * @param value Attribute value.\n * @return Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param tagName name of the tag of the node to sanitize\n * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param currentNode to sanitize\n */\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);\n const {\n attributes\n } = currentNode;\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes || _isClobbered(currentNode)) {\n return;\n }\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n forceKeepAttr: undefined\n };\n let l = attributes.length;\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const {\n name,\n namespaceURI,\n value: attrValue\n } = attr;\n const lcName = transformCaseFunc(name);\n const initValue = attrValue;\n let value = name === 'value' ? initValue : stringTrim(initValue);\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n value = stringReplace(value, expr, ' ');\n });\n }\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n /* Handle invalid data-* attribute set by try-catching it */\n if (value !== initValue) {\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {\n _removeAttribute(name, currentNode);\n }\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);\n };\n /**\n * _sanitizeShadowDOM\n *\n * @param fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);\n /* Sanitize tags and elements */\n _sanitizeElements(shadowNode);\n /* Check attributes next */\n _sanitizeAttributes(shadowNode);\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);\n };\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n /* Clean up removed elements */\n DOMPurify.removed = [];\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n _sanitizeElements(currentNode);\n /* Check attributes next */\n _sanitizeAttributes(currentNode);\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n }\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n }\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n arrayPush(hooks[entryPoint], hookFunction);\n };\n DOMPurify.removeHook = function (entryPoint, hookFunction) {\n if (hookFunction !== undefined) {\n const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);\n return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];\n }\n return arrayPop(hooks[entryPoint]);\n };\n DOMPurify.removeHooks = function (entryPoint) {\n hooks[entryPoint] = [];\n };\n DOMPurify.removeAllHooks = function () {\n hooks = _createHooksMap();\n };\n return DOMPurify;\n}\nvar purify = createDOMPurify();\n\nexport { purify as default };\n//# sourceMappingURL=purify.es.mjs.map\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import {\n __name\n} from \"./chunk-3XYRH5AP.mjs\";\n\n// src/utils/subGraphTitleMargins.ts\nvar getSubGraphTitleMargins = /* @__PURE__ */ __name(({\n flowchart\n}) => {\n const subGraphTitleTopMargin = flowchart?.subGraphTitleMargin?.top ?? 0;\n const subGraphTitleBottomMargin = flowchart?.subGraphTitleMargin?.bottom ?? 0;\n const subGraphTitleTotalMargin = subGraphTitleTopMargin + subGraphTitleBottomMargin;\n return {\n subGraphTitleTopMargin,\n subGraphTitleBottomMargin,\n subGraphTitleTotalMargin\n };\n}, \"getSubGraphTitleMargins\");\n\nexport {\n getSubGraphTitleMargins\n};\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\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 mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\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 of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BLANK_URL = exports.relativeFirstCharacters = exports.whitespaceEscapeCharsRegex = exports.urlSchemeRegex = exports.ctrlCharactersRegex = exports.htmlCtrlEntityRegex = exports.htmlEntitiesRegex = exports.invalidProtocolRegex = void 0;\nexports.invalidProtocolRegex = /^([^\\w]*)(javascript|data|vbscript)/im;\nexports.htmlEntitiesRegex = /&#(\\w+)(^\\w|;)?/g;\nexports.htmlCtrlEntityRegex = /&(newline|tab);/gi;\nexports.ctrlCharactersRegex = /[\\u0000-\\u001F\\u007F-\\u009F\\u2000-\\u200D\\uFEFF]/gim;\nexports.urlSchemeRegex = /^.+(:|&colon;)/gim;\nexports.whitespaceEscapeCharsRegex = /(\\\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g;\nexports.relativeFirstCharacters = [\".\", \"/\"];\nexports.BLANK_URL = \"about:blank\";\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","export default function(x) {\n return x;\n}\n","import identity from \"./identity.js\";\n\nvar top = 1,\n right = 2,\n bottom = 3,\n left = 4,\n epsilon = 1e-6;\n\nfunction translateX(x) {\n return \"translate(\" + x + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + y + \")\";\n}\n\nfunction number(scale) {\n return d => +scale(d);\n}\n\nfunction center(scale, offset) {\n offset = Math.max(0, scale.bandwidth() - offset * 2) / 2;\n if (scale.round()) offset = Math.round(offset);\n return d => +scale(d) + offset;\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3,\n offset = typeof window !== \"undefined\" && window.devicePixelRatio > 1 ? 0 : 0.5,\n k = orient === top || orient === left ? -1 : 1,\n x = orient === left || orient === right ? \"x\" : \"y\",\n transform = orient === top || orient === bottom ? translateX : translateY;\n\n function axis(context) {\n var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,\n format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n range = scale.range(),\n range0 = +range[0] + offset,\n range1 = +range[range.length - 1] + offset,\n position = (scale.bandwidth ? center : number)(scale.copy(), offset),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\");\n\n path = path.merge(path.enter().insert(\"path\", \".tick\")\n .attr(\"class\", \"domain\")\n .attr(\"stroke\", \"currentColor\"));\n\n tick = tick.merge(tickEnter);\n\n line = line.merge(tickEnter.append(\"line\")\n .attr(\"stroke\", \"currentColor\")\n .attr(x + \"2\", k * tickSizeInner));\n\n text = text.merge(tickEnter.append(\"text\")\n .attr(\"fill\", \"currentColor\")\n .attr(x, k * spacing)\n .attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n\n tickExit = tickExit.transition(context)\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute(\"transform\"); });\n\n tickEnter\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { var p = this.parentNode.__axis; return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient === right\n ? (tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H\" + offset + \"V\" + range1 + \"H\" + k * tickSizeOuter : \"M\" + offset + \",\" + range0 + \"V\" + range1)\n : (tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V\" + offset + \"H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",\" + offset + \"H\" + range1));\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d) + offset); });\n\n line\n .attr(x + \"2\", k * tickSizeInner);\n\n text\n .attr(x, k * spacing)\n .text(format);\n\n selection.filter(entering)\n .attr(\"fill\", \"none\")\n .attr(\"font-size\", 10)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n\n selection\n .each(function() { this.__axis = position; });\n }\n\n axis.scale = function(_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function() {\n return tickArguments = Array.from(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : Array.from(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : Array.from(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function(_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function(_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function(_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function(_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function(_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n axis.offset = function(_) {\n return arguments.length ? (offset = +_, axis) : offset;\n };\n\n return axis;\n}\n\nexport function axisTop(scale) {\n return axis(top, scale);\n}\n\nexport function axisRight(scale) {\n return axis(right, scale);\n}\n\nexport function axisBottom(scale) {\n return axis(bottom, scale);\n}\n\nexport function axisLeft(scale) {\n return axis(left, scale);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection, event) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start(event).brush(event).end(event);\n });\n }\n };\n\n brush.clear = function(group, event) {\n brush.move(group, null, event);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move(event);\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move(event);\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move(event);\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move(event);\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_find from \"./find.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\nimport node_iterator from \"./iterator.js\";\n\nexport default function hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) children = mapChildren;\n } else if (children === undefined) {\n children = objectChildren;\n }\n\n var root = new Node(data),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n while (node = nodes.pop()) {\n if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {\n node.children = childs;\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = childs[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction objectChildren(d) {\n return d.children;\n}\n\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : null;\n}\n\nfunction copyData(node) {\n if (node.data.value !== undefined) node.value = node.data.value;\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n find: node_find,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy,\n [Symbol.iterator]: node_iterator\n};\n","export default function(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], next = [], children, i, n, index = -1;\n while (node = nodes.pop()) {\n next.push(node);\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n while (node = next.pop()) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], children, i, index = -1;\n while (node = nodes.pop()) {\n callback.call(that, node, ++index, this);\n if (children = node.children) {\n for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n }\n return this;\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n if (callback.call(that, node, ++index, this)) {\n return node;\n }\n }\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function*() {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n yield node;\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n }\n } while (next.length);\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","export function constantZero() {\n return 0;\n}\n\nexport default function(x) {\n return function() {\n return x;\n };\n}\n","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport {required} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nexport default function() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","export const radians = Math.PI / 180;\nexport const degrees = 180 / Math.PI;\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb} from \"./color.js\";\nimport {degrees, radians} from \"./math.js\";\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nconst K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * degrees;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * radians;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb() {\n return hcl2lab(this).rgb();\n }\n}));\n","import {hcl as colorHcl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = color(start.c, end.c),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);\n","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","export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(key);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n // noop\n}, (date, step) => {\n date.setTime(+date + step);\n}, (start, end) => {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return timeInterval((date) => {\n date.setTime(Math.floor(date / k) * k);\n }, (date, step) => {\n date.setTime(+date + step * k);\n }, (start, end) => {\n return (end - start) / k;\n });\n};\n\nexport const milliseconds = millisecond.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport {millisecond} from \"./millisecond.js\";\nimport {second} from \"./second.js\";\nimport {timeMinute, utcMinute} from \"./minute.js\";\nimport {timeHour, utcHour} from \"./hour.js\";\nimport {timeDay, unixDay} from \"./day.js\";\nimport {timeSunday, utcSunday} from \"./week.js\";\nimport {timeMonth, utcMonth} from \"./month.js\";\nimport {timeYear, utcYear} from \"./year.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import colors from \"../colors.js\";\n\nexport default colors(\"4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab\");\n","export default function(specifier) {\n var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;\n while (i < n) colors[i] = \"#\" + specifier.slice(i * 6, ++i * 6);\n return colors;\n}\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","import constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\nimport {withPath} from \"./path.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null,\n path = withPath(arc);\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle. If this\n // intersection fails, it’s probably because the arc is too small, so\n // disable the corner radius entirely.\n if (da < pi) {\n if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n } else {\n rc0 = rc1 = 0;\n }\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = (data = array(data)).length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // falls through\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import pointRadial from \"../pointRadial.js\";\n\nclass Bump {\n constructor(context, x) {\n this._context = context;\n this._x = x;\n }\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n }\n point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: {\n this._point = 1;\n if (this._line) this._context.lineTo(x, y);\n else this._context.moveTo(x, y);\n break;\n }\n case 1: this._point = 2; // falls through\n default: {\n if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);\n else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);\n break;\n }\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nclass BumpRadial {\n constructor(context) {\n this._context = context;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {}\n point(x, y) {\n x = +x, y = +y;\n if (this._point === 0) {\n this._point = 1;\n } else {\n const p0 = pointRadial(this._x0, this._y0);\n const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2);\n const p2 = pointRadial(x, this._y0);\n const p3 = pointRadial(x, y);\n this._context.moveTo(...p0);\n this._context.bezierCurveTo(...p1, ...p2, ...p3);\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nexport function bumpX(context) {\n return new Bump(context, true);\n}\n\nexport function bumpY(context) {\n return new Bump(context, false);\n}\n\nexport function bumpRadial(context) {\n return new BumpRadial(context);\n}\n","import {Basis} from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nexport default (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {point} from \"./cardinal.js\";\n\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {epsilon} from \"../math.js\";\nimport {Cardinal} from \"./cardinal.js\";\n\nexport function point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // falls through\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalClosed} from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalOpen} from \"./cardinalOpen.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\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 * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.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 * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","/* IMPORT */\nimport { TYPE } from '../constants.js';\n/* MAIN */\nclass Type {\n constructor() {\n /* VARIABLES */\n this.type = TYPE.ALL;\n }\n /* API */\n get() {\n return this.type;\n }\n set(type) {\n if (this.type && this.type !== type)\n throw new Error('Cannot change both RGB and HSL channels at the same time');\n this.type = type;\n }\n reset() {\n this.type = TYPE.ALL;\n }\n is(type) {\n return this.type === type;\n }\n}\n/* EXPORT */\nexport default Type;\n","/* IMPORT */\nimport Channels from './/index.js';\n/* MAIN */\nconst channels = new Channels({ r: 0, g: 0, b: 0, a: 0 }, 'transparent');\n/* EXPORT */\nexport default channels;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Type from './type.js';\nimport { TYPE } from '../constants.js';\n/* MAIN */\nclass Channels {\n /* CONSTRUCTOR */\n constructor(data, color) {\n this.color = color;\n this.changed = false;\n this.data = data; //TSC\n this.type = new Type();\n }\n /* API */\n set(data, color) {\n this.color = color;\n this.changed = false;\n this.data = data; //TSC\n this.type.type = TYPE.ALL;\n return this;\n }\n /* HELPERS */\n _ensureHSL() {\n const data = this.data;\n const { h, s, l } = data;\n if (h === undefined)\n data.h = _.channel.rgb2hsl(data, 'h');\n if (s === undefined)\n data.s = _.channel.rgb2hsl(data, 's');\n if (l === undefined)\n data.l = _.channel.rgb2hsl(data, 'l');\n }\n _ensureRGB() {\n const data = this.data;\n const { r, g, b } = data;\n if (r === undefined)\n data.r = _.channel.hsl2rgb(data, 'r');\n if (g === undefined)\n data.g = _.channel.hsl2rgb(data, 'g');\n if (b === undefined)\n data.b = _.channel.hsl2rgb(data, 'b');\n }\n /* GETTERS */\n get r() {\n const data = this.data;\n const r = data.r;\n if (!this.type.is(TYPE.HSL) && r !== undefined)\n return r;\n this._ensureHSL();\n return _.channel.hsl2rgb(data, 'r');\n }\n get g() {\n const data = this.data;\n const g = data.g;\n if (!this.type.is(TYPE.HSL) && g !== undefined)\n return g;\n this._ensureHSL();\n return _.channel.hsl2rgb(data, 'g');\n }\n get b() {\n const data = this.data;\n const b = data.b;\n if (!this.type.is(TYPE.HSL) && b !== undefined)\n return b;\n this._ensureHSL();\n return _.channel.hsl2rgb(data, 'b');\n }\n get h() {\n const data = this.data;\n const h = data.h;\n if (!this.type.is(TYPE.RGB) && h !== undefined)\n return h;\n this._ensureRGB();\n return _.channel.rgb2hsl(data, 'h');\n }\n get s() {\n const data = this.data;\n const s = data.s;\n if (!this.type.is(TYPE.RGB) && s !== undefined)\n return s;\n this._ensureRGB();\n return _.channel.rgb2hsl(data, 's');\n }\n get l() {\n const data = this.data;\n const l = data.l;\n if (!this.type.is(TYPE.RGB) && l !== undefined)\n return l;\n this._ensureRGB();\n return _.channel.rgb2hsl(data, 'l');\n }\n get a() {\n return this.data.a;\n }\n /* SETTERS */\n set r(r) {\n this.type.set(TYPE.RGB);\n this.changed = true;\n this.data.r = r;\n }\n set g(g) {\n this.type.set(TYPE.RGB);\n this.changed = true;\n this.data.g = g;\n }\n set b(b) {\n this.type.set(TYPE.RGB);\n this.changed = true;\n this.data.b = b;\n }\n set h(h) {\n this.type.set(TYPE.HSL);\n this.changed = true;\n this.data.h = h;\n }\n set s(s) {\n this.type.set(TYPE.HSL);\n this.changed = true;\n this.data.s = s;\n }\n set l(l) {\n this.type.set(TYPE.HSL);\n this.changed = true;\n this.data.l = l;\n }\n set a(a) {\n this.changed = true;\n this.data.a = a;\n }\n}\n/* EXPORT */\nexport default Channels;\n","import Symbol from './_Symbol.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 * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","import {\n getLineFunctionsWithOffset\n} from \"./chunk-MXNHSMXR.mjs\";\nimport {\n createLabel_default\n} from \"./chunk-JW4RIYDF.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-AC5SNWB5.mjs\";\nimport {\n isLabelStyle\n} from \"./chunk-UWXLY5YG.mjs\";\nimport {\n createText\n} from \"./chunk-QESNASVV.mjs\";\nimport {\n utils_default\n} from \"./chunk-55PJQP7W.mjs\";\nimport {\n __name,\n evaluate,\n getConfig2 as getConfig,\n getUrl,\n log\n} from \"./chunk-3XYRH5AP.mjs\";\n\n// src/rendering-util/rendering-elements/edges.js\nimport {\n curveBasis,\n curveLinear,\n curveCardinal,\n curveBumpX,\n curveBumpY,\n curveCatmullRom,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore,\n line,\n select\n} from \"d3\";\nimport rough from \"roughjs\";\n\n// src/rendering-util/rendering-elements/edgeMarker.ts\nvar addEdgeMarkers = /* @__PURE__ */ __name((svgPath, edge, url, id, diagramType, strokeColor) => {\n if (edge.arrowTypeStart) {\n addEdgeMarker(svgPath, \"start\", edge.arrowTypeStart, url, id, diagramType, strokeColor);\n }\n if (edge.arrowTypeEnd) {\n addEdgeMarker(svgPath, \"end\", edge.arrowTypeEnd, url, id, diagramType, strokeColor);\n }\n}, \"addEdgeMarkers\");\nvar arrowTypesMap = {\n arrow_cross: { type: \"cross\", fill: false },\n arrow_point: { type: \"point\", fill: true },\n arrow_barb: { type: \"barb\", fill: true },\n arrow_circle: { type: \"circle\", fill: false },\n aggregation: { type: \"aggregation\", fill: false },\n extension: { type: \"extension\", fill: false },\n composition: { type: \"composition\", fill: true },\n dependency: { type: \"dependency\", fill: true },\n lollipop: { type: \"lollipop\", fill: false },\n only_one: { type: \"onlyOne\", fill: false },\n zero_or_one: { type: \"zeroOrOne\", fill: false },\n one_or_more: { type: \"oneOrMore\", fill: false },\n zero_or_more: { type: \"zeroOrMore\", fill: false },\n requirement_arrow: { type: \"requirement_arrow\", fill: false },\n requirement_contains: { type: \"requirement_contains\", fill: false }\n};\nvar addEdgeMarker = /* @__PURE__ */ __name((svgPath, position, arrowType, url, id, diagramType, strokeColor) => {\n const arrowTypeInfo = arrowTypesMap[arrowType];\n if (!arrowTypeInfo) {\n log.warn(`Unknown arrow type: ${arrowType}`);\n return;\n }\n const endMarkerType = arrowTypeInfo.type;\n const suffix = position === \"start\" ? \"Start\" : \"End\";\n const originalMarkerId = `${id}_${diagramType}-${endMarkerType}${suffix}`;\n if (strokeColor && strokeColor.trim() !== \"\") {\n const colorId = strokeColor.replace(/[^\\dA-Za-z]/g, \"_\");\n const coloredMarkerId = `${originalMarkerId}_${colorId}`;\n if (!document.getElementById(coloredMarkerId)) {\n const originalMarker = document.getElementById(originalMarkerId);\n if (originalMarker) {\n const coloredMarker = originalMarker.cloneNode(true);\n coloredMarker.id = coloredMarkerId;\n const paths = coloredMarker.querySelectorAll(\"path, circle, line\");\n paths.forEach((path) => {\n path.setAttribute(\"stroke\", strokeColor);\n if (arrowTypeInfo.fill) {\n path.setAttribute(\"fill\", strokeColor);\n }\n });\n originalMarker.parentNode?.appendChild(coloredMarker);\n }\n }\n svgPath.attr(`marker-${position}`, `url(${url}#${coloredMarkerId})`);\n } else {\n svgPath.attr(`marker-${position}`, `url(${url}#${originalMarkerId})`);\n }\n}, \"addEdgeMarker\");\n\n// src/rendering-util/rendering-elements/edges.js\nvar edgeLabels = /* @__PURE__ */ new Map();\nvar terminalLabels = /* @__PURE__ */ new Map();\nvar clear = /* @__PURE__ */ __name(() => {\n edgeLabels.clear();\n terminalLabels.clear();\n}, \"clear\");\nvar getLabelStyles = /* @__PURE__ */ __name((styleArray) => {\n let styles = styleArray ? styleArray.reduce((acc, style) => acc + \";\" + style, \"\") : \"\";\n return styles;\n}, \"getLabelStyles\");\nvar insertEdgeLabel = /* @__PURE__ */ __name(async (elem, edge) => {\n let useHtmlLabels = evaluate(getConfig().flowchart.htmlLabels);\n const labelElement = await createText(elem, edge.label, {\n style: getLabelStyles(edge.labelStyle),\n useHtmlLabels,\n addSvgBackground: true,\n isNode: false\n });\n log.info(\"abc82\", edge, edge.labelType);\n const edgeLabel = elem.insert(\"g\").attr(\"class\", \"edgeLabel\");\n const label = edgeLabel.insert(\"g\").attr(\"class\", \"label\");\n label.node().appendChild(labelElement);\n let bbox = labelElement.getBBox();\n if (useHtmlLabels) {\n const div = labelElement.children[0];\n const dv = select(labelElement);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n label.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n edgeLabels.set(edge.id, edgeLabel);\n edge.width = bbox.width;\n edge.height = bbox.height;\n let fo;\n if (edge.startLabelLeft) {\n const startLabelElement = await createLabel_default(\n edge.startLabelLeft,\n getLabelStyles(edge.labelStyle)\n );\n const startEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).startLeft = startEdgeLabelLeft;\n setTerminalWidth(fo, edge.startLabelLeft);\n }\n if (edge.startLabelRight) {\n const startLabelElement = await createLabel_default(\n edge.startLabelRight,\n getLabelStyles(edge.labelStyle)\n );\n const startEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = startEdgeLabelRight.node().appendChild(startLabelElement);\n inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).startRight = startEdgeLabelRight;\n setTerminalWidth(fo, edge.startLabelRight);\n }\n if (edge.endLabelLeft) {\n const endLabelElement = await createLabel_default(edge.endLabelLeft, getLabelStyles(edge.labelStyle));\n const endEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelLeft.node().appendChild(endLabelElement);\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).endLeft = endEdgeLabelLeft;\n setTerminalWidth(fo, edge.endLabelLeft);\n }\n if (edge.endLabelRight) {\n const endLabelElement = await createLabel_default(edge.endLabelRight, getLabelStyles(edge.labelStyle));\n const endEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelRight.node().appendChild(endLabelElement);\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).endRight = endEdgeLabelRight;\n setTerminalWidth(fo, edge.endLabelRight);\n }\n return labelElement;\n}, \"insertEdgeLabel\");\nfunction setTerminalWidth(fo, value) {\n if (getConfig().flowchart.htmlLabels && fo) {\n fo.style.width = value.length * 9 + \"px\";\n fo.style.height = \"12px\";\n }\n}\n__name(setTerminalWidth, \"setTerminalWidth\");\nvar positionEdgeLabel = /* @__PURE__ */ __name((edge, paths) => {\n log.debug(\"Moving label abc88 \", edge.id, edge.label, edgeLabels.get(edge.id), paths);\n let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n const siteConfig = getConfig();\n const { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig);\n if (edge.label) {\n const el = edgeLabels.get(edge.id);\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcLabelPosition(path);\n log.debug(\n \"Moving label \" + edge.label + \" from (\",\n x,\n \",\",\n y,\n \") to (\",\n pos.x,\n \",\",\n pos.y,\n \") abc88\"\n );\n if (paths.updatedPath) {\n x = pos.x;\n y = pos.y;\n }\n }\n el.attr(\"transform\", `translate(${x}, ${y + subGraphTitleTotalMargin / 2})`);\n }\n if (edge.startLabelLeft) {\n const el = terminalLabels.get(edge.id).startLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, \"start_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.startLabelRight) {\n const el = terminalLabels.get(edge.id).startRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(\n edge.arrowTypeStart ? 10 : 0,\n \"start_right\",\n path\n );\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.endLabelLeft) {\n const el = terminalLabels.get(edge.id).endLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.endLabelRight) {\n const el = terminalLabels.get(edge.id).endRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_right\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n}, \"positionEdgeLabel\");\nvar outsideNode = /* @__PURE__ */ __name((node, point2) => {\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(point2.x - x);\n const dy = Math.abs(point2.y - y);\n const w = node.width / 2;\n const h = node.height / 2;\n return dx >= w || dy >= h;\n}, \"outsideNode\");\nvar intersection = /* @__PURE__ */ __name((node, outsidePoint, insidePoint) => {\n log.debug(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(outsidePoint)}\n insidePoint : ${JSON.stringify(insidePoint)}\n node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`);\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(x - insidePoint.x);\n const w = node.width / 2;\n let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;\n const h = node.height / 2;\n const Q = Math.abs(outsidePoint.y - insidePoint.y);\n const R = Math.abs(outsidePoint.x - insidePoint.x);\n if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) {\n let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n r = R * q / Q;\n const res = {\n x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,\n y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q\n };\n if (r === 0) {\n res.x = outsidePoint.x;\n res.y = outsidePoint.y;\n }\n if (R === 0) {\n res.x = outsidePoint.x;\n }\n if (Q === 0) {\n res.y = outsidePoint.y;\n }\n log.debug(`abc89 top/bottom calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res);\n return res;\n } else {\n if (insidePoint.x < outsidePoint.x) {\n r = outsidePoint.x - w - x;\n } else {\n r = x - w - outsidePoint.x;\n }\n let q = Q * r / R;\n let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;\n let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;\n log.debug(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y });\n if (r === 0) {\n _x = outsidePoint.x;\n _y = outsidePoint.y;\n }\n if (R === 0) {\n _x = outsidePoint.x;\n }\n if (Q === 0) {\n _y = outsidePoint.y;\n }\n return { x: _x, y: _y };\n }\n}, \"intersection\");\nvar cutPathAtIntersect = /* @__PURE__ */ __name((_points, boundaryNode) => {\n log.warn(\"abc88 cutPathAtIntersect\", _points, boundaryNode);\n let points = [];\n let lastPointOutside = _points[0];\n let isInside = false;\n _points.forEach((point2) => {\n log.info(\"abc88 checking point\", point2, boundaryNode);\n if (!outsideNode(boundaryNode, point2) && !isInside) {\n const inter = intersection(boundaryNode, lastPointOutside, point2);\n log.debug(\"abc88 inside\", point2, lastPointOutside, inter);\n log.debug(\"abc88 intersection\", inter, boundaryNode);\n let pointPresent = false;\n points.forEach((p) => {\n pointPresent = pointPresent || p.x === inter.x && p.y === inter.y;\n });\n if (!points.some((e) => e.x === inter.x && e.y === inter.y)) {\n points.push(inter);\n } else {\n log.warn(\"abc88 no intersect\", inter, points);\n }\n isInside = true;\n } else {\n log.warn(\"abc88 outside\", point2, lastPointOutside);\n lastPointOutside = point2;\n if (!isInside) {\n points.push(point2);\n }\n }\n });\n log.debug(\"returning points\", points);\n return points;\n}, \"cutPathAtIntersect\");\nfunction extractCornerPoints(points) {\n const cornerPoints = [];\n const cornerPointPositions = [];\n for (let i = 1; i < points.length - 1; i++) {\n const prev = points[i - 1];\n const curr = points[i];\n const next = points[i + 1];\n if (prev.x === curr.x && curr.y === next.y && Math.abs(curr.x - next.x) > 5 && Math.abs(curr.y - prev.y) > 5) {\n cornerPoints.push(curr);\n cornerPointPositions.push(i);\n } else if (prev.y === curr.y && curr.x === next.x && Math.abs(curr.x - prev.x) > 5 && Math.abs(curr.y - next.y) > 5) {\n cornerPoints.push(curr);\n cornerPointPositions.push(i);\n }\n }\n return { cornerPoints, cornerPointPositions };\n}\n__name(extractCornerPoints, \"extractCornerPoints\");\nvar findAdjacentPoint = /* @__PURE__ */ __name(function(pointA, pointB, distance) {\n const xDiff = pointB.x - pointA.x;\n const yDiff = pointB.y - pointA.y;\n const length = Math.sqrt(xDiff * xDiff + yDiff * yDiff);\n const ratio = distance / length;\n return { x: pointB.x - ratio * xDiff, y: pointB.y - ratio * yDiff };\n}, \"findAdjacentPoint\");\nvar fixCorners = /* @__PURE__ */ __name(function(lineData) {\n const { cornerPointPositions } = extractCornerPoints(lineData);\n const newLineData = [];\n for (let i = 0; i < lineData.length; i++) {\n if (cornerPointPositions.includes(i)) {\n const prevPoint = lineData[i - 1];\n const nextPoint = lineData[i + 1];\n const cornerPoint = lineData[i];\n const newPrevPoint = findAdjacentPoint(prevPoint, cornerPoint, 5);\n const newNextPoint = findAdjacentPoint(nextPoint, cornerPoint, 5);\n const xDiff = newNextPoint.x - newPrevPoint.x;\n const yDiff = newNextPoint.y - newPrevPoint.y;\n newLineData.push(newPrevPoint);\n const a = Math.sqrt(2) * 2;\n let newCornerPoint = { x: cornerPoint.x, y: cornerPoint.y };\n if (Math.abs(nextPoint.x - prevPoint.x) > 10 && Math.abs(nextPoint.y - prevPoint.y) >= 10) {\n log.debug(\n \"Corner point fixing\",\n Math.abs(nextPoint.x - prevPoint.x),\n Math.abs(nextPoint.y - prevPoint.y)\n );\n const r = 5;\n if (cornerPoint.x === newPrevPoint.x) {\n newCornerPoint = {\n x: xDiff < 0 ? newPrevPoint.x - r + a : newPrevPoint.x + r - a,\n y: yDiff < 0 ? newPrevPoint.y - a : newPrevPoint.y + a\n };\n } else {\n newCornerPoint = {\n x: xDiff < 0 ? newPrevPoint.x - a : newPrevPoint.x + a,\n y: yDiff < 0 ? newPrevPoint.y - r + a : newPrevPoint.y + r - a\n };\n }\n } else {\n log.debug(\n \"Corner point skipping fixing\",\n Math.abs(nextPoint.x - prevPoint.x),\n Math.abs(nextPoint.y - prevPoint.y)\n );\n }\n newLineData.push(newCornerPoint, newNextPoint);\n } else {\n newLineData.push(lineData[i]);\n }\n }\n return newLineData;\n}, \"fixCorners\");\nvar insertEdge = /* @__PURE__ */ __name(function(elem, edge, clusterDb, diagramType, startNode, endNode, id) {\n const { handDrawnSeed } = getConfig();\n let points = edge.points;\n let pointsHasChanged = false;\n const tail = startNode;\n var head = endNode;\n const edgeClassStyles = [];\n for (const key in edge.cssCompiledStyles) {\n if (isLabelStyle(key)) {\n continue;\n }\n edgeClassStyles.push(edge.cssCompiledStyles[key]);\n }\n if (head.intersect && tail.intersect) {\n points = points.slice(1, edge.points.length - 1);\n points.unshift(tail.intersect(points[0]));\n log.debug(\n \"Last point APA12\",\n edge.start,\n \"-->\",\n edge.end,\n points[points.length - 1],\n head,\n head.intersect(points[points.length - 1])\n );\n points.push(head.intersect(points[points.length - 1]));\n }\n if (edge.toCluster) {\n log.info(\"to cluster abc88\", clusterDb.get(edge.toCluster));\n points = cutPathAtIntersect(edge.points, clusterDb.get(edge.toCluster).node);\n pointsHasChanged = true;\n }\n if (edge.fromCluster) {\n log.debug(\n \"from cluster abc88\",\n clusterDb.get(edge.fromCluster),\n JSON.stringify(points, null, 2)\n );\n points = cutPathAtIntersect(points.reverse(), clusterDb.get(edge.fromCluster).node).reverse();\n pointsHasChanged = true;\n }\n let lineData = points.filter((p) => !Number.isNaN(p.y));\n lineData = fixCorners(lineData);\n let curve = curveBasis;\n curve = curveLinear;\n switch (edge.curve) {\n case \"linear\":\n curve = curveLinear;\n break;\n case \"basis\":\n curve = curveBasis;\n break;\n case \"cardinal\":\n curve = curveCardinal;\n break;\n case \"bumpX\":\n curve = curveBumpX;\n break;\n case \"bumpY\":\n curve = curveBumpY;\n break;\n case \"catmullRom\":\n curve = curveCatmullRom;\n break;\n case \"monotoneX\":\n curve = curveMonotoneX;\n break;\n case \"monotoneY\":\n curve = curveMonotoneY;\n break;\n case \"natural\":\n curve = curveNatural;\n break;\n case \"step\":\n curve = curveStep;\n break;\n case \"stepAfter\":\n curve = curveStepAfter;\n break;\n case \"stepBefore\":\n curve = curveStepBefore;\n break;\n default:\n curve = curveBasis;\n }\n const { x, y } = getLineFunctionsWithOffset(edge);\n const lineFunction = line().x(x).y(y).curve(curve);\n let strokeClasses;\n switch (edge.thickness) {\n case \"normal\":\n strokeClasses = \"edge-thickness-normal\";\n break;\n case \"thick\":\n strokeClasses = \"edge-thickness-thick\";\n break;\n case \"invisible\":\n strokeClasses = \"edge-thickness-invisible\";\n break;\n default:\n strokeClasses = \"edge-thickness-normal\";\n }\n switch (edge.pattern) {\n case \"solid\":\n strokeClasses += \" edge-pattern-solid\";\n break;\n case \"dotted\":\n strokeClasses += \" edge-pattern-dotted\";\n break;\n case \"dashed\":\n strokeClasses += \" edge-pattern-dashed\";\n break;\n default:\n strokeClasses += \" edge-pattern-solid\";\n }\n let svgPath;\n let linePath = lineFunction(lineData);\n const edgeStyles = Array.isArray(edge.style) ? edge.style : edge.style ? [edge.style] : [];\n let strokeColor = edgeStyles.find((style) => style?.startsWith(\"stroke:\"));\n if (edge.look === \"handDrawn\") {\n const rc = rough.svg(elem);\n Object.assign([], lineData);\n const svgPathNode = rc.path(linePath, {\n roughness: 0.3,\n seed: handDrawnSeed\n });\n strokeClasses += \" transition\";\n svgPath = select(svgPathNode).select(\"path\").attr(\"id\", edge.id).attr(\"class\", \" \" + strokeClasses + (edge.classes ? \" \" + edge.classes : \"\")).attr(\"style\", edgeStyles ? edgeStyles.reduce((acc, style) => acc + \";\" + style, \"\") : \"\");\n let d = svgPath.attr(\"d\");\n svgPath.attr(\"d\", d);\n elem.node().appendChild(svgPath.node());\n } else {\n const stylesFromClasses = edgeClassStyles.join(\";\");\n const styles = edgeStyles ? edgeStyles.reduce((acc, style) => acc + style + \";\", \"\") : \"\";\n let animationClass = \"\";\n if (edge.animate) {\n animationClass = \" edge-animation-fast\";\n }\n if (edge.animation) {\n animationClass = \" edge-animation-\" + edge.animation;\n }\n const pathStyle = stylesFromClasses ? stylesFromClasses + \";\" + styles + \";\" : styles;\n svgPath = elem.append(\"path\").attr(\"d\", linePath).attr(\"id\", edge.id).attr(\n \"class\",\n \" \" + strokeClasses + (edge.classes ? \" \" + edge.classes : \"\") + (animationClass ?? \"\")\n ).attr(\"style\", pathStyle);\n strokeColor = pathStyle.match(/stroke:([^;]+)/)?.[1];\n }\n let url = \"\";\n if (getConfig().flowchart.arrowMarkerAbsolute || getConfig().state.arrowMarkerAbsolute) {\n url = getUrl(true);\n }\n log.info(\"arrowTypeStart\", edge.arrowTypeStart);\n log.info(\"arrowTypeEnd\", edge.arrowTypeEnd);\n addEdgeMarkers(svgPath, edge, url, id, diagramType, strokeColor);\n let paths = {};\n if (pointsHasChanged) {\n paths.updatedPath = points;\n }\n paths.originalPath = edge.points;\n return paths;\n}, \"insertEdge\");\n\n// src/rendering-util/rendering-elements/markers.js\nvar insertMarkers = /* @__PURE__ */ __name((elem, markerArray, type, id) => {\n markerArray.forEach((markerName) => {\n markers[markerName](elem, type, id);\n });\n}, \"insertMarkers\");\nvar extension = /* @__PURE__ */ __name((elem, type, id) => {\n log.trace(\"Making markers for \", id);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionStart\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,7 L18,13 V 1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionEnd\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 V 13 L18,7 Z\");\n}, \"extension\");\nvar composition = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionStart\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionEnd\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n}, \"composition\");\nvar aggregation = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationStart\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationEnd\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n}, \"aggregation\");\nvar dependency = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyStart\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 6).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 5,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyEnd\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 13).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L14,7 L9,1 Z\");\n}, \"dependency\");\nvar lollipop = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopStart\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 13).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"circle\").attr(\"stroke\", \"black\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopEnd\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"circle\").attr(\"stroke\", \"black\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6);\n}, \"lollipop\");\nvar point = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointEnd\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 5).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 8).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointStart\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 4.5).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 8).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 5 L 10 10 L 10 0 z\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n}, \"point\");\nvar circle = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleEnd\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 11).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleStart\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", -1).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n}, \"circle\");\nvar cross = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossEnd\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 11 11\").attr(\"refX\", 12).attr(\"refY\", 5.2).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 l 9,9 M 10,1 l -9,9\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossStart\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 11 11\").attr(\"refX\", -1).attr(\"refY\", 5.2).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 l 9,9 M 10,1 l -9,9\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"1,0\");\n}, \"cross\");\nvar barb = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-barbEnd\").attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 14).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 19,7 L9,13 L14,7 L9,1 Z\");\n}, \"barb\");\nvar only_one = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-onlyOneStart\").attr(\"class\", \"marker onlyOne \" + type).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M9,0 L9,18 M15,0 L15,18\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-onlyOneEnd\").attr(\"class\", \"marker onlyOne \" + type).attr(\"refX\", 18).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M3,0 L3,18 M9,0 L9,18\");\n}, \"only_one\");\nvar zero_or_one = /* @__PURE__ */ __name((elem, type, id) => {\n const startMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrOneStart\").attr(\"class\", \"marker zeroOrOne \" + type).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n startMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 21).attr(\"cy\", 9).attr(\"r\", 6);\n startMarker.append(\"path\").attr(\"d\", \"M9,0 L9,18\");\n const endMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrOneEnd\").attr(\"class\", \"marker zeroOrOne \" + type).attr(\"refX\", 30).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n endMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 9).attr(\"r\", 6);\n endMarker.append(\"path\").attr(\"d\", \"M21,0 L21,18\");\n}, \"zero_or_one\");\nvar one_or_more = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-oneOrMoreStart\").attr(\"class\", \"marker oneOrMore \" + type).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-oneOrMoreEnd\").attr(\"class\", \"marker oneOrMore \" + type).attr(\"refX\", 27).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18\");\n}, \"one_or_more\");\nvar zero_or_more = /* @__PURE__ */ __name((elem, type, id) => {\n const startMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrMoreStart\").attr(\"class\", \"marker zeroOrMore \" + type).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n startMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 48).attr(\"cy\", 18).attr(\"r\", 6);\n startMarker.append(\"path\").attr(\"d\", \"M0,18 Q18,0 36,18 Q18,36 0,18\");\n const endMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrMoreEnd\").attr(\"class\", \"marker zeroOrMore \" + type).attr(\"refX\", 39).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n endMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 18).attr(\"r\", 6);\n endMarker.append(\"path\").attr(\"d\", \"M21,18 Q39,0 57,18 Q39,36 21,18\");\n}, \"zero_or_more\");\nvar requirement_arrow = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-requirement_arrowEnd\").attr(\"refX\", 20).attr(\"refY\", 10).attr(\"markerWidth\", 20).attr(\"markerHeight\", 20).attr(\"orient\", \"auto\").append(\"path\").attr(\n \"d\",\n `M0,0\n L20,10\n M20,10\n L0,20`\n );\n}, \"requirement_arrow\");\nvar requirement_contains = /* @__PURE__ */ __name((elem, type, id) => {\n const containsNode = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-requirement_containsStart\").attr(\"refX\", 0).attr(\"refY\", 10).attr(\"markerWidth\", 20).attr(\"markerHeight\", 20).attr(\"orient\", \"auto\").append(\"g\");\n containsNode.append(\"circle\").attr(\"cx\", 10).attr(\"cy\", 10).attr(\"r\", 9).attr(\"fill\", \"none\");\n containsNode.append(\"line\").attr(\"x1\", 1).attr(\"x2\", 19).attr(\"y1\", 10).attr(\"y2\", 10);\n containsNode.append(\"line\").attr(\"y1\", 1).attr(\"y2\", 19).attr(\"x1\", 10).attr(\"x2\", 10);\n}, \"requirement_contains\");\nvar markers = {\n extension,\n composition,\n aggregation,\n dependency,\n lollipop,\n point,\n circle,\n cross,\n barb,\n only_one,\n zero_or_one,\n one_or_more,\n zero_or_more,\n requirement_arrow,\n requirement_contains\n};\nvar markers_default = insertMarkers;\n\nexport {\n clear,\n insertEdgeLabel,\n positionEdgeLabel,\n insertEdge,\n markers_default\n};\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\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 buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","/* IMPORT */\nimport _ from './utils/index.js';\n/* MAIN */\nconst DEC2HEX = {};\nfor (let i = 0; i <= 255; i++)\n DEC2HEX[i] = _.unit.dec2hex(i); // Populating dynamically, striking a balance between code size and performance\nconst TYPE = {\n ALL: 0,\n RGB: 1,\n HSL: 2\n};\n/* EXPORT */\nexport { DEC2HEX, TYPE };\n","import {\n getSubGraphTitleMargins\n} from \"./chunk-AC5SNWB5.mjs\";\nimport {\n compileStyles,\n solidStateFill,\n styles2String,\n userNodeOverrides\n} from \"./chunk-UWXLY5YG.mjs\";\nimport {\n createText,\n getIconSVG\n} from \"./chunk-QESNASVV.mjs\";\nimport {\n calculateTextWidth,\n decodeEntities,\n handleUndefinedAttr,\n parseFontSize\n} from \"./chunk-55PJQP7W.mjs\";\nimport {\n __name,\n common_default,\n defaultConfig_default,\n evaluate,\n getConfig,\n getConfig2,\n hasKatex,\n log,\n parseGenericTypes,\n renderKatex,\n sanitizeText,\n sanitizeText2\n} from \"./chunk-3XYRH5AP.mjs\";\n\n// src/rendering-util/rendering-elements/shapes/util.ts\nimport { select } from \"d3\";\nvar labelHelper = /* @__PURE__ */ __name(async (parent, node, _classes) => {\n let cssClasses;\n const useHtmlLabels = node.useHtmlLabels || evaluate(getConfig2()?.htmlLabels);\n if (!_classes) {\n cssClasses = \"node default\";\n } else {\n cssClasses = _classes;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", cssClasses).attr(\"id\", node.domId || node.id);\n const labelEl = shapeSvg.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", handleUndefinedAttr(node.labelStyle));\n let label;\n if (node.label === void 0) {\n label = \"\";\n } else {\n label = typeof node.label === \"string\" ? node.label : node.label[0];\n }\n const text2 = await createText(labelEl, sanitizeText(decodeEntities(label), getConfig2()), {\n useHtmlLabels,\n width: node.width || getConfig2().flowchart?.wrappingWidth,\n // @ts-expect-error -- This is currently not used. Should this be `classes` instead?\n cssClasses: \"markdown-node-label\",\n style: node.labelStyle,\n addSvgBackground: !!node.icon || !!node.img\n });\n let bbox = text2.getBBox();\n const halfPadding = (node?.padding ?? 0) / 2;\n if (useHtmlLabels) {\n const div = text2.children[0];\n const dv = select(text2);\n const images = div.getElementsByTagName(\"img\");\n if (images) {\n const noImgText = label.replace(/<img[^>]*>/g, \"\").trim() === \"\";\n await Promise.all(\n [...images].map(\n (img) => new Promise((res) => {\n function setupImage() {\n img.style.display = \"flex\";\n img.style.flexDirection = \"column\";\n if (noImgText) {\n const bodyFontSize = getConfig2().fontSize ? getConfig2().fontSize : window.getComputedStyle(document.body).fontSize;\n const enlargingFactor = 5;\n const [parsedBodyFontSize = defaultConfig_default.fontSize] = parseFontSize(bodyFontSize);\n const width = parsedBodyFontSize * enlargingFactor + \"px\";\n img.style.minWidth = width;\n img.style.maxWidth = width;\n } else {\n img.style.width = \"100%\";\n }\n res(img);\n }\n __name(setupImage, \"setupImage\");\n setTimeout(() => {\n if (img.complete) {\n setupImage();\n }\n });\n img.addEventListener(\"error\", setupImage);\n img.addEventListener(\"load\", setupImage);\n })\n )\n );\n }\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (useHtmlLabels) {\n labelEl.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n } else {\n labelEl.attr(\"transform\", \"translate(0, \" + -bbox.height / 2 + \")\");\n }\n if (node.centerLabel) {\n labelEl.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n }\n labelEl.insert(\"rect\", \":first-child\");\n return { shapeSvg, bbox, halfPadding, label: labelEl };\n}, \"labelHelper\");\nvar insertLabel = /* @__PURE__ */ __name(async (parent, label, options) => {\n const useHtmlLabels = options.useHtmlLabels || evaluate(getConfig2()?.flowchart?.htmlLabels);\n const labelEl = parent.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", options.labelStyle || \"\");\n const text2 = await createText(labelEl, sanitizeText(decodeEntities(label), getConfig2()), {\n useHtmlLabels,\n width: options.width || getConfig2()?.flowchart?.wrappingWidth,\n style: options.labelStyle,\n addSvgBackground: !!options.icon || !!options.img\n });\n let bbox = text2.getBBox();\n const halfPadding = options.padding / 2;\n if (evaluate(getConfig2()?.flowchart?.htmlLabels)) {\n const div = text2.children[0];\n const dv = select(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (useHtmlLabels) {\n labelEl.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n } else {\n labelEl.attr(\"transform\", \"translate(0, \" + -bbox.height / 2 + \")\");\n }\n if (options.centerLabel) {\n labelEl.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n }\n labelEl.insert(\"rect\", \":first-child\");\n return { shapeSvg: parent, bbox, halfPadding, label: labelEl };\n}, \"insertLabel\");\nvar updateNodeBounds = /* @__PURE__ */ __name((node, element) => {\n const bbox = element.node().getBBox();\n node.width = bbox.width;\n node.height = bbox.height;\n}, \"updateNodeBounds\");\nvar getNodeClasses = /* @__PURE__ */ __name((node, extra) => (node.look === \"handDrawn\" ? \"rough-node\" : \"node\") + \" \" + node.cssClasses + \" \" + (extra || \"\"), \"getNodeClasses\");\nfunction createPathFromPoints(points) {\n const pointStrings = points.map((p, i) => `${i === 0 ? \"M\" : \"L\"}${p.x},${p.y}`);\n pointStrings.push(\"Z\");\n return pointStrings.join(\" \");\n}\n__name(createPathFromPoints, \"createPathFromPoints\");\nfunction generateFullSineWavePoints(x1, y1, x2, y2, amplitude, numCycles) {\n const points = [];\n const steps = 50;\n const deltaX = x2 - x1;\n const deltaY = y2 - y1;\n const cycleLength = deltaX / numCycles;\n const frequency = 2 * Math.PI / cycleLength;\n const midY = y1 + deltaY / 2;\n for (let i = 0; i <= steps; i++) {\n const t = i / steps;\n const x = x1 + t * deltaX;\n const y = midY + amplitude * Math.sin(frequency * (x - x1));\n points.push({ x, y });\n }\n return points;\n}\n__name(generateFullSineWavePoints, \"generateFullSineWavePoints\");\nfunction generateCirclePoints(centerX, centerY, radius, numPoints, startAngle, endAngle) {\n const points = [];\n const startAngleRad = startAngle * Math.PI / 180;\n const endAngleRad = endAngle * Math.PI / 180;\n const angleRange = endAngleRad - startAngleRad;\n const angleStep = angleRange / (numPoints - 1);\n for (let i = 0; i < numPoints; i++) {\n const angle = startAngleRad + i * angleStep;\n const x = centerX + radius * Math.cos(angle);\n const y = centerY + radius * Math.sin(angle);\n points.push({ x: -x, y: -y });\n }\n return points;\n}\n__name(generateCirclePoints, \"generateCirclePoints\");\n\n// src/rendering-util/rendering-elements/clusters.js\nimport { select as select3 } from \"d3\";\nimport rough from \"roughjs\";\n\n// src/rendering-util/rendering-elements/intersect/intersect-rect.js\nvar intersectRect = /* @__PURE__ */ __name((node, point) => {\n var x = node.x;\n var y = node.y;\n var dx = point.x - x;\n var dy = point.y - y;\n var w = node.width / 2;\n var h = node.height / 2;\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n if (dy < 0) {\n h = -h;\n }\n sx = dy === 0 ? 0 : h * dx / dy;\n sy = h;\n } else {\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = dx === 0 ? 0 : w * dy / dx;\n }\n return { x: x + sx, y: y + sy };\n}, \"intersectRect\");\nvar intersect_rect_default = intersectRect;\n\n// src/rendering-util/rendering-elements/createLabel.js\nimport { select as select2 } from \"d3\";\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr(\"style\", styleFn);\n }\n}\n__name(applyStyle, \"applyStyle\");\nasync function addHtmlLabel(node) {\n const fo = select2(document.createElementNS(\"http://www.w3.org/2000/svg\", \"foreignObject\"));\n const div = fo.append(\"xhtml:div\");\n let label = node.label;\n if (node.label && hasKatex(node.label)) {\n label = await renderKatex(node.label.replace(common_default.lineBreakRegex, \"\\n\"), getConfig2());\n }\n const labelClass = node.isNode ? \"nodeLabel\" : \"edgeLabel\";\n div.html(\n '<span class=\"' + labelClass + '\" ' + (node.labelStyle ? 'style=\"' + node.labelStyle + '\"' : \"\") + // codeql [js/html-constructed-from-input] : false positive\n \">\" + label + \"</span>\"\n );\n applyStyle(div, node.labelStyle);\n div.style(\"display\", \"inline-block\");\n div.style(\"padding-right\", \"1px\");\n div.style(\"white-space\", \"nowrap\");\n div.attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\");\n return fo.node();\n}\n__name(addHtmlLabel, \"addHtmlLabel\");\nvar createLabel = /* @__PURE__ */ __name(async (_vertexText, style, isTitle, isNode) => {\n let vertexText = _vertexText || \"\";\n if (typeof vertexText === \"object\") {\n vertexText = vertexText[0];\n }\n if (evaluate(getConfig2().flowchart.htmlLabels)) {\n vertexText = vertexText.replace(/\\\\n|\\n/g, \"<br />\");\n log.info(\"vertexText\" + vertexText);\n const node = {\n isNode,\n label: decodeEntities(vertexText).replace(\n /fa[blrs]?:fa-[\\w-]+/g,\n (s) => `<i class='${s.replace(\":\", \" \")}'></i>`\n ),\n labelStyle: style ? style.replace(\"fill:\", \"color:\") : style\n };\n let vertexNode = await addHtmlLabel(node);\n return vertexNode;\n } else {\n const svgLabel = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n svgLabel.setAttribute(\"style\", style.replace(\"color:\", \"fill:\"));\n let rows = [];\n if (typeof vertexText === \"string\") {\n rows = vertexText.split(/\\\\n|\\n|<br\\s*\\/?>/gi);\n } else if (Array.isArray(vertexText)) {\n rows = vertexText;\n } else {\n rows = [];\n }\n for (const row of rows) {\n const tspan = document.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n tspan.setAttribute(\"dy\", \"1em\");\n tspan.setAttribute(\"x\", \"0\");\n if (isTitle) {\n tspan.setAttribute(\"class\", \"title-row\");\n } else {\n tspan.setAttribute(\"class\", \"row\");\n }\n tspan.textContent = row.trim();\n svgLabel.appendChild(tspan);\n }\n return svgLabel;\n }\n}, \"createLabel\");\nvar createLabel_default = createLabel;\n\n// src/rendering-util/rendering-elements/shapes/roundedRectPath.ts\nvar createRoundedRectPathD = /* @__PURE__ */ __name((x, y, totalWidth, totalHeight, radius) => [\n \"M\",\n x + radius,\n y,\n // Move to the first point\n \"H\",\n x + totalWidth - radius,\n // Draw horizontal line to the beginning of the right corner\n \"A\",\n radius,\n radius,\n 0,\n 0,\n 1,\n x + totalWidth,\n y + radius,\n // Draw arc to the right top corner\n \"V\",\n y + totalHeight - radius,\n // Draw vertical line down to the beginning of the right bottom corner\n \"A\",\n radius,\n radius,\n 0,\n 0,\n 1,\n x + totalWidth - radius,\n y + totalHeight,\n // Draw arc to the right bottom corner\n \"H\",\n x + radius,\n // Draw horizontal line to the beginning of the left bottom corner\n \"A\",\n radius,\n radius,\n 0,\n 0,\n 1,\n x,\n y + totalHeight - radius,\n // Draw arc to the left bottom corner\n \"V\",\n y + radius,\n // Draw vertical line up to the beginning of the left top corner\n \"A\",\n radius,\n radius,\n 0,\n 0,\n 1,\n x + radius,\n y,\n // Draw arc to the left top corner\n \"Z\"\n // Close the path\n].join(\" \"), \"createRoundedRectPathD\");\n\n// src/rendering-util/rendering-elements/clusters.js\nvar rect = /* @__PURE__ */ __name(async (parent, node) => {\n log.info(\"Creating subgraph rect for \", node.id, node);\n const siteConfig = getConfig2();\n const { themeVariables, handDrawnSeed } = siteConfig;\n const { clusterBkg, clusterBorder } = themeVariables;\n const { labelStyles, nodeStyles, borderStyles, backgroundStyles } = styles2String(node);\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"cluster \" + node.cssClasses).attr(\"id\", node.id).attr(\"data-look\", node.look);\n const useHtmlLabels = evaluate(siteConfig.flowchart.htmlLabels);\n const labelEl = shapeSvg.insert(\"g\").attr(\"class\", \"cluster-label \");\n const text2 = await createText(labelEl, node.label, {\n style: node.labelStyle,\n useHtmlLabels,\n isNode: true\n });\n let bbox = text2.getBBox();\n if (evaluate(siteConfig.flowchart.htmlLabels)) {\n const div = text2.children[0];\n const dv = select3(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n const width = node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width;\n if (node.width <= bbox.width + node.padding) {\n node.diff = (width - node.width) / 2 - node.padding;\n } else {\n node.diff = -node.padding;\n }\n const height = node.height;\n const x = node.x - width / 2;\n const y = node.y - height / 2;\n log.trace(\"Data \", node, JSON.stringify(node));\n let rect2;\n if (node.look === \"handDrawn\") {\n const rc = rough.svg(shapeSvg);\n const options = userNodeOverrides(node, {\n roughness: 0.7,\n fill: clusterBkg,\n // fill: 'red',\n stroke: clusterBorder,\n fillWeight: 3,\n seed: handDrawnSeed\n });\n const roughNode = rc.path(createRoundedRectPathD(x, y, width, height, 0), options);\n rect2 = shapeSvg.insert(() => {\n log.debug(\"Rough node insert CXC\", roughNode);\n return roughNode;\n }, \":first-child\");\n rect2.select(\"path:nth-child(2)\").attr(\"style\", borderStyles.join(\";\"));\n rect2.select(\"path\").attr(\"style\", backgroundStyles.join(\";\").replace(\"fill\", \"stroke\"));\n } else {\n rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"style\", nodeStyles).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height);\n }\n const { subGraphTitleTopMargin } = getSubGraphTitleMargins(siteConfig);\n labelEl.attr(\n \"transform\",\n // This puts the label on top of the box instead of inside it\n `translate(${node.x - bbox.width / 2}, ${node.y - node.height / 2 + subGraphTitleTopMargin})`\n );\n if (labelStyles) {\n const span = labelEl.select(\"span\");\n if (span) {\n span.attr(\"style\", labelStyles);\n }\n }\n const rectBox = rect2.node().getBBox();\n node.offsetX = 0;\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.offsetY = bbox.height - node.padding / 2;\n node.intersect = function(point) {\n return intersect_rect_default(node, point);\n };\n return { cluster: shapeSvg, labelBBox: bbox };\n}, \"rect\");\nvar noteGroup = /* @__PURE__ */ __name((parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"note-cluster\").attr(\"id\", node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n rect2.attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", node.x - node.width / 2 - halfPadding).attr(\"y\", node.y - node.height / 2 - halfPadding).attr(\"width\", node.width + padding).attr(\"height\", node.height + padding).attr(\"fill\", \"none\");\n const rectBox = rect2.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.intersect = function(point) {\n return intersect_rect_default(node, point);\n };\n return { cluster: shapeSvg, labelBBox: { width: 0, height: 0 } };\n}, \"noteGroup\");\nvar roundedWithTitle = /* @__PURE__ */ __name(async (parent, node) => {\n const siteConfig = getConfig2();\n const { themeVariables, handDrawnSeed } = siteConfig;\n const { altBackground, compositeBackground, compositeTitleBackground, nodeBorder } = themeVariables;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", node.cssClasses).attr(\"id\", node.id).attr(\"data-id\", node.id).attr(\"data-look\", node.look);\n const outerRectG = shapeSvg.insert(\"g\", \":first-child\");\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"cluster-label\");\n let innerRect = shapeSvg.append(\"rect\");\n const text2 = label.node().appendChild(await createLabel_default(node.label, node.labelStyle, void 0, true));\n let bbox = text2.getBBox();\n if (evaluate(siteConfig.flowchart.htmlLabels)) {\n const div = text2.children[0];\n const dv = select3(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n const width = (node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width) + padding;\n if (node.width <= bbox.width + node.padding) {\n node.diff = (width - node.width) / 2 - node.padding;\n } else {\n node.diff = -node.padding;\n }\n const height = node.height + padding;\n const innerHeight = node.height + padding - bbox.height - 6;\n const x = node.x - width / 2;\n const y = node.y - height / 2;\n node.width = width;\n const innerY = node.y - node.height / 2 - halfPadding + bbox.height + 2;\n let rect2;\n if (node.look === \"handDrawn\") {\n const isAlt = node.cssClasses.includes(\"statediagram-cluster-alt\");\n const rc = rough.svg(shapeSvg);\n const roughOuterNode = node.rx || node.ry ? rc.path(createRoundedRectPathD(x, y, width, height, 10), {\n roughness: 0.7,\n fill: compositeTitleBackground,\n fillStyle: \"solid\",\n stroke: nodeBorder,\n seed: handDrawnSeed\n }) : rc.rectangle(x, y, width, height, { seed: handDrawnSeed });\n rect2 = shapeSvg.insert(() => roughOuterNode, \":first-child\");\n const roughInnerNode = rc.rectangle(x, innerY, width, innerHeight, {\n fill: isAlt ? altBackground : compositeBackground,\n fillStyle: isAlt ? \"hachure\" : \"solid\",\n stroke: nodeBorder,\n seed: handDrawnSeed\n });\n rect2 = shapeSvg.insert(() => roughOuterNode, \":first-child\");\n innerRect = shapeSvg.insert(() => roughInnerNode);\n } else {\n rect2 = outerRectG.insert(\"rect\", \":first-child\");\n const outerRectClass = \"outer\";\n rect2.attr(\"class\", outerRectClass).attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height).attr(\"data-look\", node.look);\n innerRect.attr(\"class\", \"inner\").attr(\"x\", x).attr(\"y\", innerY).attr(\"width\", width).attr(\"height\", innerHeight);\n }\n label.attr(\n \"transform\",\n `translate(${node.x - bbox.width / 2}, ${y + 1 - (evaluate(siteConfig.flowchart.htmlLabels) ? 0 : 3)})`\n );\n const rectBox = rect2.node().getBBox();\n node.height = rectBox.height;\n node.offsetX = 0;\n node.offsetY = bbox.height - node.padding / 2;\n node.labelBBox = bbox;\n node.intersect = function(point) {\n return intersect_rect_default(node, point);\n };\n return { cluster: shapeSvg, labelBBox: bbox };\n}, \"roundedWithTitle\");\nvar kanbanSection = /* @__PURE__ */ __name(async (parent, node) => {\n log.info(\"Creating subgraph rect for \", node.id, node);\n const siteConfig = getConfig2();\n const { themeVariables, handDrawnSeed } = siteConfig;\n const { clusterBkg, clusterBorder } = themeVariables;\n const { labelStyles, nodeStyles, borderStyles, backgroundStyles } = styles2String(node);\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"cluster \" + node.cssClasses).attr(\"id\", node.id).attr(\"data-look\", node.look);\n const useHtmlLabels = evaluate(siteConfig.flowchart.htmlLabels);\n const labelEl = shapeSvg.insert(\"g\").attr(\"class\", \"cluster-label \");\n const text2 = await createText(labelEl, node.label, {\n style: node.labelStyle,\n useHtmlLabels,\n isNode: true,\n width: node.width\n });\n let bbox = text2.getBBox();\n if (evaluate(siteConfig.flowchart.htmlLabels)) {\n const div = text2.children[0];\n const dv = select3(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n const width = node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width;\n if (node.width <= bbox.width + node.padding) {\n node.diff = (width - node.width) / 2 - node.padding;\n } else {\n node.diff = -node.padding;\n }\n const height = node.height;\n const x = node.x - width / 2;\n const y = node.y - height / 2;\n log.trace(\"Data \", node, JSON.stringify(node));\n let rect2;\n if (node.look === \"handDrawn\") {\n const rc = rough.svg(shapeSvg);\n const options = userNodeOverrides(node, {\n roughness: 0.7,\n fill: clusterBkg,\n // fill: 'red',\n stroke: clusterBorder,\n fillWeight: 4,\n seed: handDrawnSeed\n });\n const roughNode = rc.path(createRoundedRectPathD(x, y, width, height, node.rx), options);\n rect2 = shapeSvg.insert(() => {\n log.debug(\"Rough node insert CXC\", roughNode);\n return roughNode;\n }, \":first-child\");\n rect2.select(\"path:nth-child(2)\").attr(\"style\", borderStyles.join(\";\"));\n rect2.select(\"path\").attr(\"style\", backgroundStyles.join(\";\").replace(\"fill\", \"stroke\"));\n } else {\n rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"style\", nodeStyles).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height);\n }\n const { subGraphTitleTopMargin } = getSubGraphTitleMargins(siteConfig);\n labelEl.attr(\n \"transform\",\n // This puts the label on top of the box instead of inside it\n `translate(${node.x - bbox.width / 2}, ${node.y - node.height / 2 + subGraphTitleTopMargin})`\n );\n if (labelStyles) {\n const span = labelEl.select(\"span\");\n if (span) {\n span.attr(\"style\", labelStyles);\n }\n }\n const rectBox = rect2.node().getBBox();\n node.offsetX = 0;\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.offsetY = bbox.height - node.padding / 2;\n node.intersect = function(point) {\n return intersect_rect_default(node, point);\n };\n return { cluster: shapeSvg, labelBBox: bbox };\n}, \"kanbanSection\");\nvar divider = /* @__PURE__ */ __name((parent, node) => {\n const siteConfig = getConfig2();\n const { themeVariables, handDrawnSeed } = siteConfig;\n const { nodeBorder } = themeVariables;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", node.cssClasses).attr(\"id\", node.id).attr(\"data-look\", node.look);\n const outerRectG = shapeSvg.insert(\"g\", \":first-child\");\n const padding = 0 * node.padding;\n const width = node.width + padding;\n node.diff = -node.padding;\n const height = node.height + padding;\n const x = node.x - width / 2;\n const y = node.y - height / 2;\n node.width = width;\n let rect2;\n if (node.look === \"handDrawn\") {\n const rc = rough.svg(shapeSvg);\n const roughOuterNode = rc.rectangle(x, y, width, height, {\n fill: \"lightgrey\",\n roughness: 0.5,\n strokeLineDash: [5],\n stroke: nodeBorder,\n seed: handDrawnSeed\n });\n rect2 = shapeSvg.insert(() => roughOuterNode, \":first-child\");\n } else {\n rect2 = outerRectG.insert(\"rect\", \":first-child\");\n const outerRectClass = \"divider\";\n rect2.attr(\"class\", outerRectClass).attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height).attr(\"data-look\", node.look);\n }\n const rectBox = rect2.node().getBBox();\n node.height = rectBox.height;\n node.offsetX = 0;\n node.offsetY = 0;\n node.intersect = function(point) {\n return intersect_rect_default(node, point);\n };\n return { cluster: shapeSvg, labelBBox: {} };\n}, \"divider\");\nvar squareRect = rect;\nvar shapes = {\n rect,\n squareRect,\n roundedWithTitle,\n noteGroup,\n divider,\n kanbanSection\n};\nvar clusterElems = /* @__PURE__ */ new Map();\nvar insertCluster = /* @__PURE__ */ __name(async (elem, node) => {\n const shape = node.shape || \"rect\";\n const cluster = await shapes[shape](elem, node);\n clusterElems.set(node.id, cluster);\n return cluster;\n}, \"insertCluster\");\nvar clear = /* @__PURE__ */ __name(() => {\n clusterElems = /* @__PURE__ */ new Map();\n}, \"clear\");\n\n// src/rendering-util/rendering-elements/intersect/intersect-node.js\nfunction intersectNode(node, point) {\n return node.intersect(point);\n}\n__name(intersectNode, \"intersectNode\");\nvar intersect_node_default = intersectNode;\n\n// src/rendering-util/rendering-elements/intersect/intersect-ellipse.js\nfunction intersectEllipse(node, rx, ry, point) {\n var cx = node.x;\n var cy = node.y;\n var px = cx - point.x;\n var py = cy - point.y;\n var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);\n var dx = Math.abs(rx * ry * px / det);\n if (point.x < cx) {\n dx = -dx;\n }\n var dy = Math.abs(rx * ry * py / det);\n if (point.y < cy) {\n dy = -dy;\n }\n return { x: cx + dx, y: cy + dy };\n}\n__name(intersectEllipse, \"intersectEllipse\");\nvar intersect_ellipse_default = intersectEllipse;\n\n// src/rendering-util/rendering-elements/intersect/intersect-circle.js\nfunction intersectCircle(node, rx, point) {\n return intersect_ellipse_default(node, rx, rx, point);\n}\n__name(intersectCircle, \"intersectCircle\");\nvar intersect_circle_default = intersectCircle;\n\n// src/rendering-util/rendering-elements/intersect/intersect-line.js\nfunction intersectLine(p1, p2, q1, q2) {\n var a1, a2, b1, b2, c1, c2;\n var r1, r2, r3, r4;\n var denom, offset, num;\n var x, y;\n a1 = p2.y - p1.y;\n b1 = p1.x - p2.x;\n c1 = p2.x * p1.y - p1.x * p2.y;\n r3 = a1 * q1.x + b1 * q1.y + c1;\n r4 = a1 * q2.x + b1 * q2.y + c1;\n if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {\n return;\n }\n a2 = q2.y - q1.y;\n b2 = q1.x - q2.x;\n c2 = q2.x * q1.y - q1.x * q2.y;\n r1 = a2 * p1.x + b2 * p1.y + c2;\n r2 = a2 * p2.x + b2 * p2.y + c2;\n if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {\n return;\n }\n denom = a1 * b2 - a2 * b1;\n if (denom === 0) {\n return;\n }\n offset = Math.abs(denom / 2);\n num = b1 * c2 - b2 * c1;\n x = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n num = a2 * c1 - a1 * c2;\n y = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n return { x, y };\n}\n__name(intersectLine, \"intersectLine\");\nfunction sameSign(r1, r2) {\n return r1 * r2 > 0;\n}\n__name(sameSign, \"sameSign\");\nvar intersect_line_default = intersectLine;\n\n// src/rendering-util/rendering-elements/intersect/intersect-polygon.js\nfunction intersectPolygon(node, polyPoints, point) {\n let x1 = node.x;\n let y1 = node.y;\n let intersections = [];\n let minX = Number.POSITIVE_INFINITY;\n let minY = Number.POSITIVE_INFINITY;\n if (typeof polyPoints.forEach === \"function\") {\n polyPoints.forEach(function(entry) {\n minX = Math.min(minX, entry.x);\n minY = Math.min(minY, entry.y);\n });\n } else {\n minX = Math.min(minX, polyPoints.x);\n minY = Math.min(minY, polyPoints.y);\n }\n let left = x1 - node.width / 2 - minX;\n let top = y1 - node.height / 2 - minY;\n for (let i = 0; i < polyPoints.length; i++) {\n let p1 = polyPoints[i];\n let p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];\n let intersect = intersect_line_default(\n node,\n point,\n { x: left + p1.x, y: top + p1.y },\n { x: left + p2.x, y: top + p2.y }\n );\n if (intersect) {\n intersections.push(intersect);\n }\n }\n if (!intersections.length) {\n return node;\n }\n if (intersections.length > 1) {\n intersections.sort(function(p, q) {\n let pdx = p.x - point.x;\n let pdy = p.y - point.y;\n let distp = Math.sqrt(pdx * pdx + pdy * pdy);\n let qdx = q.x - point.x;\n let qdy = q.y - point.y;\n let distq = Math.sqrt(qdx * qdx + qdy * qdy);\n return distp < distq ? -1 : distp === distq ? 0 : 1;\n });\n }\n return intersections[0];\n}\n__name(intersectPolygon, \"intersectPolygon\");\nvar intersect_polygon_default = intersectPolygon;\n\n// src/rendering-util/rendering-elements/intersect/index.js\nvar intersect_default = {\n node: intersect_node_default,\n circle: intersect_circle_default,\n ellipse: intersect_ellipse_default,\n polygon: intersect_polygon_default,\n rect: intersect_rect_default\n};\n\n// src/rendering-util/rendering-elements/shapes/anchor.ts\nimport rough2 from \"roughjs\";\nfunction anchor(parent, node) {\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const classes = getNodeClasses(node);\n let cssClasses = classes;\n if (!classes) {\n cssClasses = \"anchor\";\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", cssClasses).attr(\"id\", node.domId || node.id);\n const radius = 1;\n const { cssStyles } = node;\n const rc = rough2.svg(shapeSvg);\n const options = userNodeOverrides(node, { fill: \"black\", stroke: \"none\", fillStyle: \"solid\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n }\n const roughNode = rc.circle(0, 0, radius * 2, options);\n const circleElem = shapeSvg.insert(() => roughNode, \":first-child\");\n circleElem.attr(\"class\", \"anchor\").attr(\"style\", handleUndefinedAttr(cssStyles));\n updateNodeBounds(node, circleElem);\n node.intersect = function(point) {\n log.info(\"Circle intersect\", node, radius, point);\n return intersect_default.circle(node, radius, point);\n };\n return shapeSvg;\n}\n__name(anchor, \"anchor\");\n\n// src/rendering-util/rendering-elements/shapes/bowTieRect.ts\nimport rough3 from \"roughjs\";\nfunction generateArcPoints(x1, y1, x2, y2, rx, ry, clockwise) {\n const numPoints = 20;\n const midX = (x1 + x2) / 2;\n const midY = (y1 + y2) / 2;\n const angle = Math.atan2(y2 - y1, x2 - x1);\n const dx = (x2 - x1) / 2;\n const dy = (y2 - y1) / 2;\n const transformedX = dx / rx;\n const transformedY = dy / ry;\n const distance = Math.sqrt(transformedX ** 2 + transformedY ** 2);\n if (distance > 1) {\n throw new Error(\"The given radii are too small to create an arc between the points.\");\n }\n const scaledCenterDistance = Math.sqrt(1 - distance ** 2);\n const centerX = midX + scaledCenterDistance * ry * Math.sin(angle) * (clockwise ? -1 : 1);\n const centerY = midY - scaledCenterDistance * rx * Math.cos(angle) * (clockwise ? -1 : 1);\n const startAngle = Math.atan2((y1 - centerY) / ry, (x1 - centerX) / rx);\n const endAngle = Math.atan2((y2 - centerY) / ry, (x2 - centerX) / rx);\n let angleRange = endAngle - startAngle;\n if (clockwise && angleRange < 0) {\n angleRange += 2 * Math.PI;\n }\n if (!clockwise && angleRange > 0) {\n angleRange -= 2 * Math.PI;\n }\n const points = [];\n for (let i = 0; i < numPoints; i++) {\n const t = i / (numPoints - 1);\n const angle2 = startAngle + t * angleRange;\n const x = centerX + rx * Math.cos(angle2);\n const y = centerY + ry * Math.sin(angle2);\n points.push({ x, y });\n }\n return points;\n}\n__name(generateArcPoints, \"generateArcPoints\");\nasync function bowTieRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + node.padding + 20;\n const h = bbox.height + node.padding;\n const ry = h / 2;\n const rx = ry / (2.5 + h / 50);\n const { cssStyles } = node;\n const points = [\n { x: w / 2, y: -h / 2 },\n { x: -w / 2, y: -h / 2 },\n ...generateArcPoints(-w / 2, -h / 2, -w / 2, h / 2, rx, ry, false),\n { x: w / 2, y: h / 2 },\n ...generateArcPoints(w / 2, h / 2, w / 2, -h / 2, rx, ry, true)\n ];\n const rc = rough3.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const bowTieRectPath = createPathFromPoints(points);\n const bowTieRectShapePath = rc.path(bowTieRectPath, options);\n const bowTieRectShape = shapeSvg.insert(() => bowTieRectShapePath, \":first-child\");\n bowTieRectShape.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n bowTieRectShape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n bowTieRectShape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n bowTieRectShape.attr(\"transform\", `translate(${rx / 2}, 0)`);\n updateNodeBounds(node, bowTieRectShape);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(bowTieRect, \"bowTieRect\");\n\n// src/rendering-util/rendering-elements/shapes/card.ts\nimport rough4 from \"roughjs\";\n\n// src/rendering-util/rendering-elements/shapes/insertPolygonShape.ts\nfunction insertPolygonShape(parent, w, h, points) {\n return parent.insert(\"polygon\", \":first-child\").attr(\n \"points\",\n points.map(function(d) {\n return d.x + \",\" + d.y;\n }).join(\" \")\n ).attr(\"class\", \"label-container\").attr(\"transform\", \"translate(\" + -w / 2 + \",\" + h / 2 + \")\");\n}\n__name(insertPolygonShape, \"insertPolygonShape\");\n\n// src/rendering-util/rendering-elements/shapes/card.ts\nasync function card(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const h = bbox.height + node.padding;\n const padding = 12;\n const w = bbox.width + node.padding + padding;\n const left = 0;\n const right = w;\n const top = -h;\n const bottom = 0;\n const points = [\n { x: left + padding, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom },\n { x: left, y: top + padding },\n { x: left + padding, y: top }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough4.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(card, \"card\");\n\n// src/rendering-util/rendering-elements/shapes/choice.ts\nimport rough5 from \"roughjs\";\nfunction choice(parent, node) {\n const { nodeStyles } = styles2String(node);\n node.label = \"\";\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId ?? node.id);\n const { cssStyles } = node;\n const s = Math.max(28, node.width ?? 0);\n const points = [\n { x: 0, y: s / 2 },\n { x: s / 2, y: 0 },\n { x: 0, y: -s / 2 },\n { x: -s / 2, y: 0 }\n ];\n const rc = rough5.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const choicePath = createPathFromPoints(points);\n const roughNode = rc.path(choicePath, options);\n const choiceShape = shapeSvg.insert(() => roughNode, \":first-child\");\n if (cssStyles && node.look !== \"handDrawn\") {\n choiceShape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n choiceShape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n node.width = 28;\n node.height = 28;\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(choice, \"choice\");\n\n// src/rendering-util/rendering-elements/shapes/circle.ts\nimport rough6 from \"roughjs\";\nasync function circle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, halfPadding } = await labelHelper(parent, node, getNodeClasses(node));\n const radius = bbox.width / 2 + halfPadding;\n let circleElem;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough6.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const roughNode = rc.circle(0, 0, radius * 2, options);\n circleElem = shapeSvg.insert(() => roughNode, \":first-child\");\n circleElem.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n } else {\n circleElem = shapeSvg.insert(\"circle\", \":first-child\").attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles).attr(\"r\", radius).attr(\"cx\", 0).attr(\"cy\", 0);\n }\n updateNodeBounds(node, circleElem);\n node.intersect = function(point) {\n log.info(\"Circle intersect\", node, radius, point);\n return intersect_default.circle(node, radius, point);\n };\n return shapeSvg;\n}\n__name(circle, \"circle\");\n\n// src/rendering-util/rendering-elements/shapes/crossedCircle.ts\nimport rough7 from \"roughjs\";\nfunction createLine(r) {\n const xAxis45 = Math.cos(Math.PI / 4);\n const yAxis45 = Math.sin(Math.PI / 4);\n const lineLength = r * 2;\n const pointQ1 = { x: lineLength / 2 * xAxis45, y: lineLength / 2 * yAxis45 };\n const pointQ2 = { x: -(lineLength / 2) * xAxis45, y: lineLength / 2 * yAxis45 };\n const pointQ3 = { x: -(lineLength / 2) * xAxis45, y: -(lineLength / 2) * yAxis45 };\n const pointQ4 = { x: lineLength / 2 * xAxis45, y: -(lineLength / 2) * yAxis45 };\n return `M ${pointQ2.x},${pointQ2.y} L ${pointQ4.x},${pointQ4.y}\n M ${pointQ1.x},${pointQ1.y} L ${pointQ3.x},${pointQ3.y}`;\n}\n__name(createLine, \"createLine\");\nfunction crossedCircle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n node.label = \"\";\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId ?? node.id);\n const radius = Math.max(30, node?.width ?? 0);\n const { cssStyles } = node;\n const rc = rough7.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const circleNode = rc.circle(0, 0, radius * 2, options);\n const linePath = createLine(radius);\n const lineNode = rc.path(linePath, options);\n const crossedCircle2 = shapeSvg.insert(() => circleNode, \":first-child\");\n crossedCircle2.insert(() => lineNode);\n if (cssStyles && node.look !== \"handDrawn\") {\n crossedCircle2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n crossedCircle2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, crossedCircle2);\n node.intersect = function(point) {\n log.info(\"crossedCircle intersect\", node, { radius, point });\n const pos = intersect_default.circle(node, radius, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(crossedCircle, \"crossedCircle\");\n\n// src/rendering-util/rendering-elements/shapes/curlyBraceLeft.ts\nimport rough8 from \"roughjs\";\nfunction generateCirclePoints2(centerX, centerY, radius, numPoints = 100, startAngle = 0, endAngle = 180) {\n const points = [];\n const startAngleRad = startAngle * Math.PI / 180;\n const endAngleRad = endAngle * Math.PI / 180;\n const angleRange = endAngleRad - startAngleRad;\n const angleStep = angleRange / (numPoints - 1);\n for (let i = 0; i < numPoints; i++) {\n const angle = startAngleRad + i * angleStep;\n const x = centerX + radius * Math.cos(angle);\n const y = centerY + radius * Math.sin(angle);\n points.push({ x: -x, y: -y });\n }\n return points;\n}\n__name(generateCirclePoints2, \"generateCirclePoints\");\nasync function curlyBraceLeft(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + (node.padding ?? 0);\n const h = bbox.height + (node.padding ?? 0);\n const radius = Math.max(5, h * 0.1);\n const { cssStyles } = node;\n const points = [\n ...generateCirclePoints2(w / 2, -h / 2, radius, 30, -90, 0),\n { x: -w / 2 - radius, y: radius },\n ...generateCirclePoints2(w / 2 + radius * 2, -radius, radius, 20, -180, -270),\n ...generateCirclePoints2(w / 2 + radius * 2, radius, radius, 20, -90, -180),\n { x: -w / 2 - radius, y: -h / 2 },\n ...generateCirclePoints2(w / 2, h / 2, radius, 20, 0, 90)\n ];\n const rectPoints = [\n { x: w / 2, y: -h / 2 - radius },\n { x: -w / 2, y: -h / 2 - radius },\n ...generateCirclePoints2(w / 2, -h / 2, radius, 20, -90, 0),\n { x: -w / 2 - radius, y: -radius },\n ...generateCirclePoints2(w / 2 + w * 0.1, -radius, radius, 20, -180, -270),\n ...generateCirclePoints2(w / 2 + w * 0.1, radius, radius, 20, -90, -180),\n { x: -w / 2 - radius, y: h / 2 },\n ...generateCirclePoints2(w / 2, h / 2, radius, 20, 0, 90),\n { x: -w / 2, y: h / 2 + radius },\n { x: w / 2, y: h / 2 + radius }\n ];\n const rc = rough8.svg(shapeSvg);\n const options = userNodeOverrides(node, { fill: \"none\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const curlyBraceLeftPath = createPathFromPoints(points);\n const newCurlyBracePath = curlyBraceLeftPath.replace(\"Z\", \"\");\n const curlyBraceLeftNode = rc.path(newCurlyBracePath, options);\n const rectPath = createPathFromPoints(rectPoints);\n const rectShape = rc.path(rectPath, { ...options });\n const curlyBraceLeftShape = shapeSvg.insert(\"g\", \":first-child\");\n curlyBraceLeftShape.insert(() => rectShape, \":first-child\").attr(\"stroke-opacity\", 0);\n curlyBraceLeftShape.insert(() => curlyBraceLeftNode, \":first-child\");\n curlyBraceLeftShape.attr(\"class\", \"text\");\n if (cssStyles && node.look !== \"handDrawn\") {\n curlyBraceLeftShape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n curlyBraceLeftShape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n curlyBraceLeftShape.attr(\"transform\", `translate(${radius}, 0)`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + radius - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, curlyBraceLeftShape);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, rectPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(curlyBraceLeft, \"curlyBraceLeft\");\n\n// src/rendering-util/rendering-elements/shapes/curlyBraceRight.ts\nimport rough9 from \"roughjs\";\nfunction generateCirclePoints3(centerX, centerY, radius, numPoints = 100, startAngle = 0, endAngle = 180) {\n const points = [];\n const startAngleRad = startAngle * Math.PI / 180;\n const endAngleRad = endAngle * Math.PI / 180;\n const angleRange = endAngleRad - startAngleRad;\n const angleStep = angleRange / (numPoints - 1);\n for (let i = 0; i < numPoints; i++) {\n const angle = startAngleRad + i * angleStep;\n const x = centerX + radius * Math.cos(angle);\n const y = centerY + radius * Math.sin(angle);\n points.push({ x, y });\n }\n return points;\n}\n__name(generateCirclePoints3, \"generateCirclePoints\");\nasync function curlyBraceRight(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + (node.padding ?? 0);\n const h = bbox.height + (node.padding ?? 0);\n const radius = Math.max(5, h * 0.1);\n const { cssStyles } = node;\n const points = [\n ...generateCirclePoints3(w / 2, -h / 2, radius, 20, -90, 0),\n { x: w / 2 + radius, y: -radius },\n ...generateCirclePoints3(w / 2 + radius * 2, -radius, radius, 20, -180, -270),\n ...generateCirclePoints3(w / 2 + radius * 2, radius, radius, 20, -90, -180),\n { x: w / 2 + radius, y: h / 2 },\n ...generateCirclePoints3(w / 2, h / 2, radius, 20, 0, 90)\n ];\n const rectPoints = [\n { x: -w / 2, y: -h / 2 - radius },\n { x: w / 2, y: -h / 2 - radius },\n ...generateCirclePoints3(w / 2, -h / 2, radius, 20, -90, 0),\n { x: w / 2 + radius, y: -radius },\n ...generateCirclePoints3(w / 2 + radius * 2, -radius, radius, 20, -180, -270),\n ...generateCirclePoints3(w / 2 + radius * 2, radius, radius, 20, -90, -180),\n { x: w / 2 + radius, y: h / 2 },\n ...generateCirclePoints3(w / 2, h / 2, radius, 20, 0, 90),\n { x: w / 2, y: h / 2 + radius },\n { x: -w / 2, y: h / 2 + radius }\n ];\n const rc = rough9.svg(shapeSvg);\n const options = userNodeOverrides(node, { fill: \"none\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const curlyBraceRightPath = createPathFromPoints(points);\n const newCurlyBracePath = curlyBraceRightPath.replace(\"Z\", \"\");\n const curlyBraceRightNode = rc.path(newCurlyBracePath, options);\n const rectPath = createPathFromPoints(rectPoints);\n const rectShape = rc.path(rectPath, { ...options });\n const curlyBraceRightShape = shapeSvg.insert(\"g\", \":first-child\");\n curlyBraceRightShape.insert(() => rectShape, \":first-child\").attr(\"stroke-opacity\", 0);\n curlyBraceRightShape.insert(() => curlyBraceRightNode, \":first-child\");\n curlyBraceRightShape.attr(\"class\", \"text\");\n if (cssStyles && node.look !== \"handDrawn\") {\n curlyBraceRightShape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n curlyBraceRightShape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n curlyBraceRightShape.attr(\"transform\", `translate(${-radius}, 0)`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) / 2 - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, curlyBraceRightShape);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, rectPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(curlyBraceRight, \"curlyBraceRight\");\n\n// src/rendering-util/rendering-elements/shapes/curlyBraces.ts\nimport rough10 from \"roughjs\";\nfunction generateCirclePoints4(centerX, centerY, radius, numPoints = 100, startAngle = 0, endAngle = 180) {\n const points = [];\n const startAngleRad = startAngle * Math.PI / 180;\n const endAngleRad = endAngle * Math.PI / 180;\n const angleRange = endAngleRad - startAngleRad;\n const angleStep = angleRange / (numPoints - 1);\n for (let i = 0; i < numPoints; i++) {\n const angle = startAngleRad + i * angleStep;\n const x = centerX + radius * Math.cos(angle);\n const y = centerY + radius * Math.sin(angle);\n points.push({ x: -x, y: -y });\n }\n return points;\n}\n__name(generateCirclePoints4, \"generateCirclePoints\");\nasync function curlyBraces(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + (node.padding ?? 0);\n const h = bbox.height + (node.padding ?? 0);\n const radius = Math.max(5, h * 0.1);\n const { cssStyles } = node;\n const leftCurlyBracePoints = [\n ...generateCirclePoints4(w / 2, -h / 2, radius, 30, -90, 0),\n { x: -w / 2 - radius, y: radius },\n ...generateCirclePoints4(w / 2 + radius * 2, -radius, radius, 20, -180, -270),\n ...generateCirclePoints4(w / 2 + radius * 2, radius, radius, 20, -90, -180),\n { x: -w / 2 - radius, y: -h / 2 },\n ...generateCirclePoints4(w / 2, h / 2, radius, 20, 0, 90)\n ];\n const rightCurlyBracePoints = [\n ...generateCirclePoints4(-w / 2 + radius + radius / 2, -h / 2, radius, 20, -90, -180),\n { x: w / 2 - radius / 2, y: radius },\n ...generateCirclePoints4(-w / 2 - radius / 2, -radius, radius, 20, 0, 90),\n ...generateCirclePoints4(-w / 2 - radius / 2, radius, radius, 20, -90, 0),\n { x: w / 2 - radius / 2, y: -radius },\n ...generateCirclePoints4(-w / 2 + radius + radius / 2, h / 2, radius, 30, -180, -270)\n ];\n const rectPoints = [\n { x: w / 2, y: -h / 2 - radius },\n { x: -w / 2, y: -h / 2 - radius },\n ...generateCirclePoints4(w / 2, -h / 2, radius, 20, -90, 0),\n { x: -w / 2 - radius, y: -radius },\n ...generateCirclePoints4(w / 2 + radius * 2, -radius, radius, 20, -180, -270),\n ...generateCirclePoints4(w / 2 + radius * 2, radius, radius, 20, -90, -180),\n { x: -w / 2 - radius, y: h / 2 },\n ...generateCirclePoints4(w / 2, h / 2, radius, 20, 0, 90),\n { x: -w / 2, y: h / 2 + radius },\n { x: w / 2 - radius - radius / 2, y: h / 2 + radius },\n ...generateCirclePoints4(-w / 2 + radius + radius / 2, -h / 2, radius, 20, -90, -180),\n { x: w / 2 - radius / 2, y: radius },\n ...generateCirclePoints4(-w / 2 - radius / 2, -radius, radius, 20, 0, 90),\n ...generateCirclePoints4(-w / 2 - radius / 2, radius, radius, 20, -90, 0),\n { x: w / 2 - radius / 2, y: -radius },\n ...generateCirclePoints4(-w / 2 + radius + radius / 2, h / 2, radius, 30, -180, -270)\n ];\n const rc = rough10.svg(shapeSvg);\n const options = userNodeOverrides(node, { fill: \"none\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const leftCurlyBracePath = createPathFromPoints(leftCurlyBracePoints);\n const newLeftCurlyBracePath = leftCurlyBracePath.replace(\"Z\", \"\");\n const leftCurlyBraceNode = rc.path(newLeftCurlyBracePath, options);\n const rightCurlyBracePath = createPathFromPoints(rightCurlyBracePoints);\n const newRightCurlyBracePath = rightCurlyBracePath.replace(\"Z\", \"\");\n const rightCurlyBraceNode = rc.path(newRightCurlyBracePath, options);\n const rectPath = createPathFromPoints(rectPoints);\n const rectShape = rc.path(rectPath, { ...options });\n const curlyBracesShape = shapeSvg.insert(\"g\", \":first-child\");\n curlyBracesShape.insert(() => rectShape, \":first-child\").attr(\"stroke-opacity\", 0);\n curlyBracesShape.insert(() => leftCurlyBraceNode, \":first-child\");\n curlyBracesShape.insert(() => rightCurlyBraceNode, \":first-child\");\n curlyBracesShape.attr(\"class\", \"text\");\n if (cssStyles && node.look !== \"handDrawn\") {\n curlyBracesShape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n curlyBracesShape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n curlyBracesShape.attr(\"transform\", `translate(${radius - radius / 4}, 0)`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) / 2 - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, curlyBracesShape);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, rectPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(curlyBraces, \"curlyBraces\");\n\n// src/rendering-util/rendering-elements/shapes/curvedTrapezoid.ts\nimport rough11 from \"roughjs\";\nasync function curvedTrapezoid(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const minWidth = 80, minHeight = 20;\n const w = Math.max(minWidth, (bbox.width + (node.padding ?? 0) * 2) * 1.25, node?.width ?? 0);\n const h = Math.max(minHeight, bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const radius = h / 2;\n const { cssStyles } = node;\n const rc = rough11.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const totalWidth = w, totalHeight = h;\n const rw = totalWidth - radius;\n const tw = totalHeight / 4;\n const points = [\n { x: rw, y: 0 },\n { x: tw, y: 0 },\n { x: 0, y: totalHeight / 2 },\n { x: tw, y: totalHeight },\n { x: rw, y: totalHeight },\n ...generateCirclePoints(-rw, -totalHeight / 2, radius, 50, 270, 90)\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n polygon.attr(\"transform\", `translate(${-w / 2}, ${-h / 2})`);\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(curvedTrapezoid, \"curvedTrapezoid\");\n\n// src/rendering-util/rendering-elements/shapes/cylinder.ts\nimport rough12 from \"roughjs\";\nvar createCylinderPathD = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [\n `M${x},${y + ry}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `a${rx},${ry} 0,0,0 ${-width},0`,\n `l0,${height}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `l0,${-height}`\n ].join(\" \");\n}, \"createCylinderPathD\");\nvar createOuterCylinderPathD = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [\n `M${x},${y + ry}`,\n `M${x + width},${y + ry}`,\n `a${rx},${ry} 0,0,0 ${-width},0`,\n `l0,${height}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `l0,${-height}`\n ].join(\" \");\n}, \"createOuterCylinderPathD\");\nvar createInnerCylinderPathD = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [`M${x - width / 2},${-height / 2}`, `a${rx},${ry} 0,0,0 ${width},0`].join(\" \");\n}, \"createInnerCylinderPathD\");\nasync function cylinder(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + node.padding, node.width ?? 0);\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const h = Math.max(bbox.height + ry + node.padding, node.height ?? 0);\n let cylinder2;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough12.svg(shapeSvg);\n const outerPathData = createOuterCylinderPathD(0, 0, w, h, rx, ry);\n const innerPathData = createInnerCylinderPathD(0, ry, w, h, rx, ry);\n const outerNode = rc.path(outerPathData, userNodeOverrides(node, {}));\n const innerLine = rc.path(innerPathData, userNodeOverrides(node, { fill: \"none\" }));\n cylinder2 = shapeSvg.insert(() => innerLine, \":first-child\");\n cylinder2 = shapeSvg.insert(() => outerNode, \":first-child\");\n cylinder2.attr(\"class\", \"basic label-container\");\n if (cssStyles) {\n cylinder2.attr(\"style\", cssStyles);\n }\n } else {\n const pathData = createCylinderPathD(0, 0, w, h, rx, ry);\n cylinder2 = shapeSvg.insert(\"path\", \":first-child\").attr(\"d\", pathData).attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles)).attr(\"style\", nodeStyles);\n }\n cylinder2.attr(\"label-offset-y\", ry);\n cylinder2.attr(\"transform\", `translate(${-w / 2}, ${-(h / 2 + ry)})`);\n updateNodeBounds(node, cylinder2);\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) + (node.padding ?? 0) / 1.5 - (bbox.y - (bbox.top ?? 0))})`\n );\n node.intersect = function(point) {\n const pos = intersect_default.rect(node, point);\n const x = pos.x - (node.x ?? 0);\n if (rx != 0 && (Math.abs(x) < (node.width ?? 0) / 2 || Math.abs(x) == (node.width ?? 0) / 2 && Math.abs(pos.y - (node.y ?? 0)) > (node.height ?? 0) / 2 - ry)) {\n let y = ry * ry * (1 - x * x / (rx * rx));\n if (y > 0) {\n y = Math.sqrt(y);\n }\n y = ry - y;\n if (point.y - (node.y ?? 0) > 0) {\n y = -y;\n }\n pos.y += y;\n }\n return pos;\n };\n return shapeSvg;\n}\n__name(cylinder, \"cylinder\");\n\n// src/rendering-util/rendering-elements/shapes/dividedRect.ts\nimport rough13 from \"roughjs\";\nasync function dividedRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const rectOffset = h * 0.2;\n const x = -w / 2;\n const y = -h / 2 - rectOffset / 2;\n const { cssStyles } = node;\n const rc = rough13.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const pts = [\n { x, y: y + rectOffset },\n { x: -x, y: y + rectOffset },\n { x: -x, y: -y },\n { x, y: -y },\n { x, y },\n { x: -x, y },\n { x: -x, y: y + rectOffset }\n ];\n const poly = rc.polygon(\n pts.map((p) => [p.x, p.y]),\n options\n );\n const polygon = shapeSvg.insert(() => poly, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n label.attr(\n \"transform\",\n `translate(${x + (node.padding ?? 0) / 2 - (bbox.x - (bbox.left ?? 0))}, ${y + rectOffset + (node.padding ?? 0) / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.rect(node, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(dividedRectangle, \"dividedRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/doubleCircle.ts\nimport rough14 from \"roughjs\";\nasync function doublecircle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, halfPadding } = await labelHelper(parent, node, getNodeClasses(node));\n const gap = 5;\n const outerRadius = bbox.width / 2 + halfPadding + gap;\n const innerRadius = bbox.width / 2 + halfPadding;\n let circleGroup;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough14.svg(shapeSvg);\n const outerOptions = userNodeOverrides(node, { roughness: 0.2, strokeWidth: 2.5 });\n const innerOptions = userNodeOverrides(node, { roughness: 0.2, strokeWidth: 1.5 });\n const outerRoughNode = rc.circle(0, 0, outerRadius * 2, outerOptions);\n const innerRoughNode = rc.circle(0, 0, innerRadius * 2, innerOptions);\n circleGroup = shapeSvg.insert(\"g\", \":first-child\");\n circleGroup.attr(\"class\", handleUndefinedAttr(node.cssClasses)).attr(\"style\", handleUndefinedAttr(cssStyles));\n circleGroup.node()?.appendChild(outerRoughNode);\n circleGroup.node()?.appendChild(innerRoughNode);\n } else {\n circleGroup = shapeSvg.insert(\"g\", \":first-child\");\n const outerCircle = circleGroup.insert(\"circle\", \":first-child\");\n const innerCircle = circleGroup.insert(\"circle\");\n circleGroup.attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles);\n outerCircle.attr(\"class\", \"outer-circle\").attr(\"style\", nodeStyles).attr(\"r\", outerRadius).attr(\"cx\", 0).attr(\"cy\", 0);\n innerCircle.attr(\"class\", \"inner-circle\").attr(\"style\", nodeStyles).attr(\"r\", innerRadius).attr(\"cx\", 0).attr(\"cy\", 0);\n }\n updateNodeBounds(node, circleGroup);\n node.intersect = function(point) {\n log.info(\"DoubleCircle intersect\", node, outerRadius, point);\n return intersect_default.circle(node, outerRadius, point);\n };\n return shapeSvg;\n}\n__name(doublecircle, \"doublecircle\");\n\n// src/rendering-util/rendering-elements/shapes/filledCircle.ts\nimport rough15 from \"roughjs\";\nfunction filledCircle(parent, node, { config: { themeVariables } }) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.label = \"\";\n node.labelStyle = labelStyles;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId ?? node.id);\n const radius = 7;\n const { cssStyles } = node;\n const rc = rough15.svg(shapeSvg);\n const { nodeBorder } = themeVariables;\n const options = userNodeOverrides(node, { fillStyle: \"solid\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n }\n const circleNode = rc.circle(0, 0, radius * 2, options);\n const filledCircle2 = shapeSvg.insert(() => circleNode, \":first-child\");\n filledCircle2.selectAll(\"path\").attr(\"style\", `fill: ${nodeBorder} !important;`);\n if (cssStyles && cssStyles.length > 0 && node.look !== \"handDrawn\") {\n filledCircle2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n filledCircle2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, filledCircle2);\n node.intersect = function(point) {\n log.info(\"filledCircle intersect\", node, { radius, point });\n const pos = intersect_default.circle(node, radius, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(filledCircle, \"filledCircle\");\n\n// src/rendering-util/rendering-elements/shapes/flippedTriangle.ts\nimport rough16 from \"roughjs\";\nasync function flippedTriangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + (node.padding ?? 0);\n const h = w + bbox.height;\n const tw = w + bbox.height;\n const points = [\n { x: 0, y: -h },\n { x: tw, y: -h },\n { x: tw / 2, y: 0 }\n ];\n const { cssStyles } = node;\n const rc = rough16.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n const flippedTriangle2 = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-h / 2}, ${h / 2})`);\n if (cssStyles && node.look !== \"handDrawn\") {\n flippedTriangle2.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n flippedTriangle2.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, flippedTriangle2);\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))}, ${-h / 2 + (node.padding ?? 0) / 2 + (bbox.y - (bbox.top ?? 0))})`\n );\n node.intersect = function(point) {\n log.info(\"Triangle intersect\", node, points, point);\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(flippedTriangle, \"flippedTriangle\");\n\n// src/rendering-util/rendering-elements/shapes/forkJoin.ts\nimport rough17 from \"roughjs\";\nfunction forkJoin(parent, node, { dir, config: { state: state2, themeVariables } }) {\n const { nodeStyles } = styles2String(node);\n node.label = \"\";\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId ?? node.id);\n const { cssStyles } = node;\n let width = Math.max(70, node?.width ?? 0);\n let height = Math.max(10, node?.height ?? 0);\n if (dir === \"LR\") {\n width = Math.max(10, node?.width ?? 0);\n height = Math.max(70, node?.height ?? 0);\n }\n const x = -1 * width / 2;\n const y = -1 * height / 2;\n const rc = rough17.svg(shapeSvg);\n const options = userNodeOverrides(node, {\n stroke: themeVariables.lineColor,\n fill: themeVariables.lineColor\n });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const roughNode = rc.rectangle(x, y, width, height, options);\n const shape = shapeSvg.insert(() => roughNode, \":first-child\");\n if (cssStyles && node.look !== \"handDrawn\") {\n shape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n shape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, shape);\n const padding = state2?.padding ?? 0;\n if (node.width && node.height) {\n node.width += padding / 2 || 0;\n node.height += padding / 2 || 0;\n }\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(forkJoin, \"forkJoin\");\n\n// src/rendering-util/rendering-elements/shapes/halfRoundedRectangle.ts\nimport rough18 from \"roughjs\";\nasync function halfRoundedRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const minWidth = 80, minHeight = 50;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(minWidth, bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(minHeight, bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const radius = h / 2;\n const { cssStyles } = node;\n const rc = rough18.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2, y: -h / 2 },\n { x: w / 2 - radius, y: -h / 2 },\n ...generateCirclePoints(-w / 2 + radius, 0, radius, 50, 90, 270),\n { x: w / 2 - radius, y: h / 2 },\n { x: -w / 2, y: h / 2 }\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n log.info(\"Pill intersect\", node, { radius, point });\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(halfRoundedRectangle, \"halfRoundedRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/hexagon.ts\nimport rough19 from \"roughjs\";\nvar createHexagonPathD = /* @__PURE__ */ __name((x, y, width, height, m) => {\n return [\n `M${x + m},${y}`,\n `L${x + width - m},${y}`,\n `L${x + width},${y - height / 2}`,\n `L${x + width - m},${y - height}`,\n `L${x + m},${y - height}`,\n `L${x},${y - height / 2}`,\n \"Z\"\n ].join(\" \");\n}, \"createHexagonPathD\");\nasync function hexagon(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const f = 4;\n const h = bbox.height + node.padding;\n const m = h / f;\n const w = bbox.width + 2 * m + node.padding;\n const points = [\n { x: m, y: 0 },\n { x: w - m, y: 0 },\n { x: w, y: -h / 2 },\n { x: w - m, y: -h },\n { x: m, y: -h },\n { x: 0, y: -h / 2 }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough19.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createHexagonPathD(0, 0, w, h, m);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(hexagon, \"hexagon\");\n\n// src/rendering-util/rendering-elements/shapes/hourglass.ts\nimport rough20 from \"roughjs\";\nasync function hourglass(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.label = \"\";\n node.labelStyle = labelStyles;\n const { shapeSvg } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(30, node?.width ?? 0);\n const h = Math.max(30, node?.height ?? 0);\n const { cssStyles } = node;\n const rc = rough20.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: 0, y: h },\n { x: w, y: h }\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n polygon.attr(\"transform\", `translate(${-w / 2}, ${-h / 2})`);\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n log.info(\"Pill intersect\", node, { points });\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(hourglass, \"hourglass\");\n\n// src/rendering-util/rendering-elements/shapes/icon.ts\nimport rough21 from \"roughjs\";\nasync function icon(parent, node, { config: { themeVariables, flowchart } }) {\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const assetHeight = node.assetHeight ?? 48;\n const assetWidth = node.assetWidth ?? 48;\n const iconSize = Math.max(assetHeight, assetWidth);\n const defaultWidth = flowchart?.wrappingWidth;\n node.width = Math.max(iconSize, defaultWidth ?? 0);\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, \"icon-shape default\");\n const topLabel = node.pos === \"t\";\n const height = iconSize;\n const width = iconSize;\n const { nodeBorder } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const x = -width / 2;\n const y = -height / 2;\n const labelPadding = node.label ? 8 : 0;\n const rc = rough21.svg(shapeSvg);\n const options = userNodeOverrides(node, { stroke: \"none\", fill: \"none\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const iconNode = rc.rectangle(x, y, width, height, options);\n const outerWidth = Math.max(width, bbox.width);\n const outerHeight = height + bbox.height + labelPadding;\n const outerNode = rc.rectangle(-outerWidth / 2, -outerHeight / 2, outerWidth, outerHeight, {\n ...options,\n fill: \"transparent\",\n stroke: \"none\"\n });\n const iconShape = shapeSvg.insert(() => iconNode, \":first-child\");\n const outerShape = shapeSvg.insert(() => outerNode);\n if (node.icon) {\n const iconElem = shapeSvg.append(\"g\");\n iconElem.html(\n `<g>${await getIconSVG(node.icon, {\n height: iconSize,\n width: iconSize,\n fallbackPrefix: \"\"\n })}</g>`\n );\n const iconBBox = iconElem.node().getBBox();\n const iconWidth = iconBBox.width;\n const iconHeight = iconBBox.height;\n const iconX = iconBBox.x;\n const iconY = iconBBox.y;\n iconElem.attr(\n \"transform\",\n `translate(${-iconWidth / 2 - iconX},${topLabel ? bbox.height / 2 + labelPadding / 2 - iconHeight / 2 - iconY : -bbox.height / 2 - labelPadding / 2 - iconHeight / 2 - iconY})`\n );\n iconElem.attr(\"style\", `color: ${stylesMap.get(\"stroke\") ?? nodeBorder};`);\n }\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))},${topLabel ? -outerHeight / 2 : outerHeight / 2 - bbox.height})`\n );\n iconShape.attr(\n \"transform\",\n `translate(${0},${topLabel ? bbox.height / 2 + labelPadding / 2 : -bbox.height / 2 - labelPadding / 2})`\n );\n updateNodeBounds(node, outerShape);\n node.intersect = function(point) {\n log.info(\"iconSquare intersect\", node, point);\n if (!node.label) {\n return intersect_default.rect(node, point);\n }\n const dx = node.x ?? 0;\n const dy = node.y ?? 0;\n const nodeHeight = node.height ?? 0;\n let points = [];\n if (topLabel) {\n points = [\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding }\n ];\n } else {\n points = [\n { x: dx - width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2 / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + height }\n ];\n }\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(icon, \"icon\");\n\n// src/rendering-util/rendering-elements/shapes/iconCircle.ts\nimport rough22 from \"roughjs\";\nasync function iconCircle(parent, node, { config: { themeVariables, flowchart } }) {\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const assetHeight = node.assetHeight ?? 48;\n const assetWidth = node.assetWidth ?? 48;\n const iconSize = Math.max(assetHeight, assetWidth);\n const defaultWidth = flowchart?.wrappingWidth;\n node.width = Math.max(iconSize, defaultWidth ?? 0);\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, \"icon-shape default\");\n const padding = 20;\n const labelPadding = node.label ? 8 : 0;\n const topLabel = node.pos === \"t\";\n const { nodeBorder, mainBkg } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const rc = rough22.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const fill = stylesMap.get(\"fill\");\n options.stroke = fill ?? mainBkg;\n const iconElem = shapeSvg.append(\"g\");\n if (node.icon) {\n iconElem.html(\n `<g>${await getIconSVG(node.icon, {\n height: iconSize,\n width: iconSize,\n fallbackPrefix: \"\"\n })}</g>`\n );\n }\n const iconBBox = iconElem.node().getBBox();\n const iconWidth = iconBBox.width;\n const iconHeight = iconBBox.height;\n const iconX = iconBBox.x;\n const iconY = iconBBox.y;\n const diameter = Math.max(iconWidth, iconHeight) * Math.SQRT2 + padding * 2;\n const iconNode = rc.circle(0, 0, diameter, options);\n const outerWidth = Math.max(diameter, bbox.width);\n const outerHeight = diameter + bbox.height + labelPadding;\n const outerNode = rc.rectangle(-outerWidth / 2, -outerHeight / 2, outerWidth, outerHeight, {\n ...options,\n fill: \"transparent\",\n stroke: \"none\"\n });\n const iconShape = shapeSvg.insert(() => iconNode, \":first-child\");\n const outerShape = shapeSvg.insert(() => outerNode);\n iconElem.attr(\n \"transform\",\n `translate(${-iconWidth / 2 - iconX},${topLabel ? bbox.height / 2 + labelPadding / 2 - iconHeight / 2 - iconY : -bbox.height / 2 - labelPadding / 2 - iconHeight / 2 - iconY})`\n );\n iconElem.attr(\"style\", `color: ${stylesMap.get(\"stroke\") ?? nodeBorder};`);\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))},${topLabel ? -outerHeight / 2 : outerHeight / 2 - bbox.height})`\n );\n iconShape.attr(\n \"transform\",\n `translate(${0},${topLabel ? bbox.height / 2 + labelPadding / 2 : -bbox.height / 2 - labelPadding / 2})`\n );\n updateNodeBounds(node, outerShape);\n node.intersect = function(point) {\n log.info(\"iconSquare intersect\", node, point);\n const pos = intersect_default.rect(node, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(iconCircle, \"iconCircle\");\n\n// src/rendering-util/rendering-elements/shapes/iconRounded.ts\nimport rough23 from \"roughjs\";\nasync function iconRounded(parent, node, { config: { themeVariables, flowchart } }) {\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const assetHeight = node.assetHeight ?? 48;\n const assetWidth = node.assetWidth ?? 48;\n const iconSize = Math.max(assetHeight, assetWidth);\n const defaultWidth = flowchart?.wrappingWidth;\n node.width = Math.max(iconSize, defaultWidth ?? 0);\n const { shapeSvg, bbox, halfPadding, label } = await labelHelper(\n parent,\n node,\n \"icon-shape default\"\n );\n const topLabel = node.pos === \"t\";\n const height = iconSize + halfPadding * 2;\n const width = iconSize + halfPadding * 2;\n const { nodeBorder, mainBkg } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const x = -width / 2;\n const y = -height / 2;\n const labelPadding = node.label ? 8 : 0;\n const rc = rough23.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const fill = stylesMap.get(\"fill\");\n options.stroke = fill ?? mainBkg;\n const iconNode = rc.path(createRoundedRectPathD(x, y, width, height, 5), options);\n const outerWidth = Math.max(width, bbox.width);\n const outerHeight = height + bbox.height + labelPadding;\n const outerNode = rc.rectangle(-outerWidth / 2, -outerHeight / 2, outerWidth, outerHeight, {\n ...options,\n fill: \"transparent\",\n stroke: \"none\"\n });\n const iconShape = shapeSvg.insert(() => iconNode, \":first-child\").attr(\"class\", \"icon-shape2\");\n const outerShape = shapeSvg.insert(() => outerNode);\n if (node.icon) {\n const iconElem = shapeSvg.append(\"g\");\n iconElem.html(\n `<g>${await getIconSVG(node.icon, {\n height: iconSize,\n width: iconSize,\n fallbackPrefix: \"\"\n })}</g>`\n );\n const iconBBox = iconElem.node().getBBox();\n const iconWidth = iconBBox.width;\n const iconHeight = iconBBox.height;\n const iconX = iconBBox.x;\n const iconY = iconBBox.y;\n iconElem.attr(\n \"transform\",\n `translate(${-iconWidth / 2 - iconX},${topLabel ? bbox.height / 2 + labelPadding / 2 - iconHeight / 2 - iconY : -bbox.height / 2 - labelPadding / 2 - iconHeight / 2 - iconY})`\n );\n iconElem.attr(\"style\", `color: ${stylesMap.get(\"stroke\") ?? nodeBorder};`);\n }\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))},${topLabel ? -outerHeight / 2 : outerHeight / 2 - bbox.height})`\n );\n iconShape.attr(\n \"transform\",\n `translate(${0},${topLabel ? bbox.height / 2 + labelPadding / 2 : -bbox.height / 2 - labelPadding / 2})`\n );\n updateNodeBounds(node, outerShape);\n node.intersect = function(point) {\n log.info(\"iconSquare intersect\", node, point);\n if (!node.label) {\n return intersect_default.rect(node, point);\n }\n const dx = node.x ?? 0;\n const dy = node.y ?? 0;\n const nodeHeight = node.height ?? 0;\n let points = [];\n if (topLabel) {\n points = [\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding }\n ];\n } else {\n points = [\n { x: dx - width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2 / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + height }\n ];\n }\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(iconRounded, \"iconRounded\");\n\n// src/rendering-util/rendering-elements/shapes/iconSquare.ts\nimport rough24 from \"roughjs\";\nasync function iconSquare(parent, node, { config: { themeVariables, flowchart } }) {\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const assetHeight = node.assetHeight ?? 48;\n const assetWidth = node.assetWidth ?? 48;\n const iconSize = Math.max(assetHeight, assetWidth);\n const defaultWidth = flowchart?.wrappingWidth;\n node.width = Math.max(iconSize, defaultWidth ?? 0);\n const { shapeSvg, bbox, halfPadding, label } = await labelHelper(\n parent,\n node,\n \"icon-shape default\"\n );\n const topLabel = node.pos === \"t\";\n const height = iconSize + halfPadding * 2;\n const width = iconSize + halfPadding * 2;\n const { nodeBorder, mainBkg } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const x = -width / 2;\n const y = -height / 2;\n const labelPadding = node.label ? 8 : 0;\n const rc = rough24.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const fill = stylesMap.get(\"fill\");\n options.stroke = fill ?? mainBkg;\n const iconNode = rc.path(createRoundedRectPathD(x, y, width, height, 0.1), options);\n const outerWidth = Math.max(width, bbox.width);\n const outerHeight = height + bbox.height + labelPadding;\n const outerNode = rc.rectangle(-outerWidth / 2, -outerHeight / 2, outerWidth, outerHeight, {\n ...options,\n fill: \"transparent\",\n stroke: \"none\"\n });\n const iconShape = shapeSvg.insert(() => iconNode, \":first-child\");\n const outerShape = shapeSvg.insert(() => outerNode);\n if (node.icon) {\n const iconElem = shapeSvg.append(\"g\");\n iconElem.html(\n `<g>${await getIconSVG(node.icon, {\n height: iconSize,\n width: iconSize,\n fallbackPrefix: \"\"\n })}</g>`\n );\n const iconBBox = iconElem.node().getBBox();\n const iconWidth = iconBBox.width;\n const iconHeight = iconBBox.height;\n const iconX = iconBBox.x;\n const iconY = iconBBox.y;\n iconElem.attr(\n \"transform\",\n `translate(${-iconWidth / 2 - iconX},${topLabel ? bbox.height / 2 + labelPadding / 2 - iconHeight / 2 - iconY : -bbox.height / 2 - labelPadding / 2 - iconHeight / 2 - iconY})`\n );\n iconElem.attr(\"style\", `color: ${stylesMap.get(\"stroke\") ?? nodeBorder};`);\n }\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))},${topLabel ? -outerHeight / 2 : outerHeight / 2 - bbox.height})`\n );\n iconShape.attr(\n \"transform\",\n `translate(${0},${topLabel ? bbox.height / 2 + labelPadding / 2 : -bbox.height / 2 - labelPadding / 2})`\n );\n updateNodeBounds(node, outerShape);\n node.intersect = function(point) {\n log.info(\"iconSquare intersect\", node, point);\n if (!node.label) {\n return intersect_default.rect(node, point);\n }\n const dx = node.x ?? 0;\n const dy = node.y ?? 0;\n const nodeHeight = node.height ?? 0;\n let points = [];\n if (topLabel) {\n points = [\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding }\n ];\n } else {\n points = [\n { x: dx - width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2 / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + height }\n ];\n }\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(iconSquare, \"iconSquare\");\n\n// src/rendering-util/rendering-elements/shapes/imageSquare.ts\nimport rough25 from \"roughjs\";\nasync function imageSquare(parent, node, { config: { flowchart } }) {\n const img = new Image();\n img.src = node?.img ?? \"\";\n await img.decode();\n const imageNaturalWidth = Number(img.naturalWidth.toString().replace(\"px\", \"\"));\n const imageNaturalHeight = Number(img.naturalHeight.toString().replace(\"px\", \"\"));\n node.imageAspectRatio = imageNaturalWidth / imageNaturalHeight;\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const defaultWidth = flowchart?.wrappingWidth;\n node.defaultWidth = flowchart?.wrappingWidth;\n const imageRawWidth = Math.max(\n node.label ? defaultWidth ?? 0 : 0,\n node?.assetWidth ?? imageNaturalWidth\n );\n const imageWidth = node.constraint === \"on\" ? node?.assetHeight ? node.assetHeight * node.imageAspectRatio : imageRawWidth : imageRawWidth;\n const imageHeight = node.constraint === \"on\" ? imageWidth / node.imageAspectRatio : node?.assetHeight ?? imageNaturalHeight;\n node.width = Math.max(imageWidth, defaultWidth ?? 0);\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, \"image-shape default\");\n const topLabel = node.pos === \"t\";\n const x = -imageWidth / 2;\n const y = -imageHeight / 2;\n const labelPadding = node.label ? 8 : 0;\n const rc = rough25.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const imageNode = rc.rectangle(x, y, imageWidth, imageHeight, options);\n const outerWidth = Math.max(imageWidth, bbox.width);\n const outerHeight = imageHeight + bbox.height + labelPadding;\n const outerNode = rc.rectangle(-outerWidth / 2, -outerHeight / 2, outerWidth, outerHeight, {\n ...options,\n fill: \"none\",\n stroke: \"none\"\n });\n const iconShape = shapeSvg.insert(() => imageNode, \":first-child\");\n const outerShape = shapeSvg.insert(() => outerNode);\n if (node.img) {\n const image = shapeSvg.append(\"image\");\n image.attr(\"href\", node.img);\n image.attr(\"width\", imageWidth);\n image.attr(\"height\", imageHeight);\n image.attr(\"preserveAspectRatio\", \"none\");\n image.attr(\n \"transform\",\n `translate(${-imageWidth / 2},${topLabel ? outerHeight / 2 - imageHeight : -outerHeight / 2})`\n );\n }\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))},${topLabel ? -imageHeight / 2 - bbox.height / 2 - labelPadding / 2 : imageHeight / 2 - bbox.height / 2 + labelPadding / 2})`\n );\n iconShape.attr(\n \"transform\",\n `translate(${0},${topLabel ? bbox.height / 2 + labelPadding / 2 : -bbox.height / 2 - labelPadding / 2})`\n );\n updateNodeBounds(node, outerShape);\n node.intersect = function(point) {\n log.info(\"iconSquare intersect\", node, point);\n if (!node.label) {\n return intersect_default.rect(node, point);\n }\n const dx = node.x ?? 0;\n const dy = node.y ?? 0;\n const nodeHeight = node.height ?? 0;\n let points = [];\n if (topLabel) {\n points = [\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + imageWidth / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + imageWidth / 2, y: dy + nodeHeight / 2 },\n { x: dx - imageWidth / 2, y: dy + nodeHeight / 2 },\n { x: dx - imageWidth / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding }\n ];\n } else {\n points = [\n { x: dx - imageWidth / 2, y: dy - nodeHeight / 2 },\n { x: dx + imageWidth / 2, y: dy - nodeHeight / 2 },\n { x: dx + imageWidth / 2, y: dy - nodeHeight / 2 + imageHeight },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + imageHeight },\n { x: dx + bbox.width / 2 / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + imageHeight },\n { x: dx - imageWidth / 2, y: dy - nodeHeight / 2 + imageHeight }\n ];\n }\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(imageSquare, \"imageSquare\");\n\n// src/rendering-util/rendering-elements/shapes/invertedTrapezoid.ts\nimport rough26 from \"roughjs\";\nasync function inv_trapezoid(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: w + 3 * h / 6, y: -h },\n { x: -3 * h / 6, y: -h }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough26.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(inv_trapezoid, \"inv_trapezoid\");\n\n// src/rendering-util/rendering-elements/shapes/drawRect.ts\nimport rough27 from \"roughjs\";\nasync function drawRect(parent, node, options) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const totalWidth = Math.max(bbox.width + options.labelPaddingX * 2, node?.width || 0);\n const totalHeight = Math.max(bbox.height + options.labelPaddingY * 2, node?.height || 0);\n const x = -totalWidth / 2;\n const y = -totalHeight / 2;\n let rect2;\n let { rx, ry } = node;\n const { cssStyles } = node;\n if (options?.rx && options.ry) {\n rx = options.rx;\n ry = options.ry;\n }\n if (node.look === \"handDrawn\") {\n const rc = rough27.svg(shapeSvg);\n const options2 = userNodeOverrides(node, {});\n const roughNode = rx || ry ? rc.path(createRoundedRectPathD(x, y, totalWidth, totalHeight, rx || 0), options2) : rc.rectangle(x, y, totalWidth, totalHeight, options2);\n rect2 = shapeSvg.insert(() => roughNode, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n } else {\n rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles).attr(\"rx\", handleUndefinedAttr(rx)).attr(\"ry\", handleUndefinedAttr(ry)).attr(\"x\", x).attr(\"y\", y).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(drawRect, \"drawRect\");\n\n// src/rendering-util/rendering-elements/shapes/labelRect.ts\nasync function labelRect(parent, node) {\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, \"label\");\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const totalWidth = 0.1;\n const totalHeight = 0.1;\n rect2.attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n shapeSvg.attr(\"class\", \"label edgeLabel\");\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(labelRect, \"labelRect\");\n\n// src/rendering-util/rendering-elements/shapes/leanLeft.ts\nimport rough28 from \"roughjs\";\nasync function lean_left(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0), node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0), node?.height ?? 0);\n const points = [\n { x: 0, y: 0 },\n { x: w + 3 * h / 6, y: 0 },\n { x: w, y: -h },\n { x: -(3 * h) / 6, y: -h }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough28.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(lean_left, \"lean_left\");\n\n// src/rendering-util/rendering-elements/shapes/leanRight.ts\nimport rough29 from \"roughjs\";\nasync function lean_right(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0), node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0), node?.height ?? 0);\n const points = [\n { x: -3 * h / 6, y: 0 },\n { x: w, y: 0 },\n { x: w + 3 * h / 6, y: -h },\n { x: 0, y: -h }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough29.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(lean_right, \"lean_right\");\n\n// src/rendering-util/rendering-elements/shapes/lightningBolt.ts\nimport rough30 from \"roughjs\";\nfunction lightningBolt(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.label = \"\";\n node.labelStyle = labelStyles;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId ?? node.id);\n const { cssStyles } = node;\n const width = Math.max(35, node?.width ?? 0);\n const height = Math.max(35, node?.height ?? 0);\n const gap = 7;\n const points = [\n { x: width, y: 0 },\n { x: 0, y: height + gap / 2 },\n { x: width - 2 * gap, y: height + gap / 2 },\n { x: 0, y: 2 * height },\n { x: width, y: height - gap / 2 },\n { x: 2 * gap, y: height - gap / 2 }\n ];\n const rc = rough30.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const linePath = createPathFromPoints(points);\n const lineNode = rc.path(linePath, options);\n const lightningBolt2 = shapeSvg.insert(() => lineNode, \":first-child\");\n if (cssStyles && node.look !== \"handDrawn\") {\n lightningBolt2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n lightningBolt2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n lightningBolt2.attr(\"transform\", `translate(-${width / 2},${-height})`);\n updateNodeBounds(node, lightningBolt2);\n node.intersect = function(point) {\n log.info(\"lightningBolt intersect\", node, point);\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(lightningBolt, \"lightningBolt\");\n\n// src/rendering-util/rendering-elements/shapes/linedCylinder.ts\nimport rough31 from \"roughjs\";\nvar createCylinderPathD2 = /* @__PURE__ */ __name((x, y, width, height, rx, ry, outerOffset) => {\n return [\n `M${x},${y + ry}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `a${rx},${ry} 0,0,0 ${-width},0`,\n `l0,${height}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `l0,${-height}`,\n `M${x},${y + ry + outerOffset}`,\n `a${rx},${ry} 0,0,0 ${width},0`\n ].join(\" \");\n}, \"createCylinderPathD\");\nvar createOuterCylinderPathD2 = /* @__PURE__ */ __name((x, y, width, height, rx, ry, outerOffset) => {\n return [\n `M${x},${y + ry}`,\n `M${x + width},${y + ry}`,\n `a${rx},${ry} 0,0,0 ${-width},0`,\n `l0,${height}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `l0,${-height}`,\n `M${x},${y + ry + outerOffset}`,\n `a${rx},${ry} 0,0,0 ${width},0`\n ].join(\" \");\n}, \"createOuterCylinderPathD\");\nvar createInnerCylinderPathD2 = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [`M${x - width / 2},${-height / 2}`, `a${rx},${ry} 0,0,0 ${width},0`].join(\" \");\n}, \"createInnerCylinderPathD\");\nasync function linedCylinder(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0), node.width ?? 0);\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const h = Math.max(bbox.height + ry + (node.padding ?? 0), node.height ?? 0);\n const outerOffset = h * 0.1;\n let cylinder2;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough31.svg(shapeSvg);\n const outerPathData = createOuterCylinderPathD2(0, 0, w, h, rx, ry, outerOffset);\n const innerPathData = createInnerCylinderPathD2(0, ry, w, h, rx, ry);\n const options = userNodeOverrides(node, {});\n const outerNode = rc.path(outerPathData, options);\n const innerLine = rc.path(innerPathData, options);\n const innerLineEl = shapeSvg.insert(() => innerLine, \":first-child\");\n innerLineEl.attr(\"class\", \"line\");\n cylinder2 = shapeSvg.insert(() => outerNode, \":first-child\");\n cylinder2.attr(\"class\", \"basic label-container\");\n if (cssStyles) {\n cylinder2.attr(\"style\", cssStyles);\n }\n } else {\n const pathData = createCylinderPathD2(0, 0, w, h, rx, ry, outerOffset);\n cylinder2 = shapeSvg.insert(\"path\", \":first-child\").attr(\"d\", pathData).attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles)).attr(\"style\", nodeStyles);\n }\n cylinder2.attr(\"label-offset-y\", ry);\n cylinder2.attr(\"transform\", `translate(${-w / 2}, ${-(h / 2 + ry)})`);\n updateNodeBounds(node, cylinder2);\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) + ry - (bbox.y - (bbox.top ?? 0))})`\n );\n node.intersect = function(point) {\n const pos = intersect_default.rect(node, point);\n const x = pos.x - (node.x ?? 0);\n if (rx != 0 && (Math.abs(x) < (node.width ?? 0) / 2 || Math.abs(x) == (node.width ?? 0) / 2 && Math.abs(pos.y - (node.y ?? 0)) > (node.height ?? 0) / 2 - ry)) {\n let y = ry * ry * (1 - x * x / (rx * rx));\n if (y > 0) {\n y = Math.sqrt(y);\n }\n y = ry - y;\n if (point.y - (node.y ?? 0) > 0) {\n y = -y;\n }\n pos.y += y;\n }\n return pos;\n };\n return shapeSvg;\n}\n__name(linedCylinder, \"linedCylinder\");\n\n// src/rendering-util/rendering-elements/shapes/linedWaveEdgedRect.ts\nimport rough32 from \"roughjs\";\nasync function linedWaveEdgedRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const waveAmplitude = h / 4;\n const finalH = h + waveAmplitude;\n const { cssStyles } = node;\n const rc = rough32.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2 - w / 2 * 0.1, y: -finalH / 2 },\n { x: -w / 2 - w / 2 * 0.1, y: finalH / 2 },\n ...generateFullSineWavePoints(\n -w / 2 - w / 2 * 0.1,\n finalH / 2,\n w / 2 + w / 2 * 0.1,\n finalH / 2,\n waveAmplitude,\n 0.8\n ),\n { x: w / 2 + w / 2 * 0.1, y: -finalH / 2 },\n { x: -w / 2 - w / 2 * 0.1, y: -finalH / 2 },\n { x: -w / 2, y: -finalH / 2 },\n { x: -w / 2, y: finalH / 2 * 1.1 },\n { x: -w / 2, y: -finalH / 2 }\n ];\n const poly = rc.polygon(\n points.map((p) => [p.x, p.y]),\n options\n );\n const waveEdgeRect = shapeSvg.insert(() => poly, \":first-child\");\n waveEdgeRect.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n waveEdgeRect.attr(\"transform\", `translate(0,${-waveAmplitude / 2})`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) + w / 2 * 0.1 / 2 - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) - waveAmplitude / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, waveEdgeRect);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(linedWaveEdgedRect, \"linedWaveEdgedRect\");\n\n// src/rendering-util/rendering-elements/shapes/multiRect.ts\nimport rough33 from \"roughjs\";\nasync function multiRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const rectOffset = 5;\n const x = -w / 2;\n const y = -h / 2;\n const { cssStyles } = node;\n const rc = rough33.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const outerPathPoints = [\n { x: x - rectOffset, y: y + rectOffset },\n { x: x - rectOffset, y: y + h + rectOffset },\n { x: x + w - rectOffset, y: y + h + rectOffset },\n { x: x + w - rectOffset, y: y + h },\n { x: x + w, y: y + h },\n { x: x + w, y: y + h - rectOffset },\n { x: x + w + rectOffset, y: y + h - rectOffset },\n { x: x + w + rectOffset, y: y - rectOffset },\n { x: x + rectOffset, y: y - rectOffset },\n { x: x + rectOffset, y },\n { x, y },\n { x, y: y + rectOffset }\n ];\n const innerPathPoints = [\n { x, y: y + rectOffset },\n { x: x + w - rectOffset, y: y + rectOffset },\n { x: x + w - rectOffset, y: y + h },\n { x: x + w, y: y + h },\n { x: x + w, y },\n { x, y }\n ];\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const outerPath = createPathFromPoints(outerPathPoints);\n const outerNode = rc.path(outerPath, options);\n const innerPath = createPathFromPoints(innerPathPoints);\n const innerNode = rc.path(innerPath, { ...options, fill: \"none\" });\n const multiRect2 = shapeSvg.insert(() => innerNode, \":first-child\");\n multiRect2.insert(() => outerNode, \":first-child\");\n multiRect2.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n multiRect2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n multiRect2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - rectOffset - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) + rectOffset - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, multiRect2);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, outerPathPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(multiRect, \"multiRect\");\n\n// src/rendering-util/rendering-elements/shapes/multiWaveEdgedRectangle.ts\nimport rough34 from \"roughjs\";\nasync function multiWaveEdgedRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const waveAmplitude = h / 4;\n const finalH = h + waveAmplitude;\n const x = -w / 2;\n const y = -finalH / 2;\n const rectOffset = 5;\n const { cssStyles } = node;\n const wavePoints = generateFullSineWavePoints(\n x - rectOffset,\n y + finalH + rectOffset,\n x + w - rectOffset,\n y + finalH + rectOffset,\n waveAmplitude,\n 0.8\n );\n const lastWavePoint = wavePoints?.[wavePoints.length - 1];\n const outerPathPoints = [\n { x: x - rectOffset, y: y + rectOffset },\n { x: x - rectOffset, y: y + finalH + rectOffset },\n ...wavePoints,\n { x: x + w - rectOffset, y: lastWavePoint.y - rectOffset },\n { x: x + w, y: lastWavePoint.y - rectOffset },\n { x: x + w, y: lastWavePoint.y - 2 * rectOffset },\n { x: x + w + rectOffset, y: lastWavePoint.y - 2 * rectOffset },\n { x: x + w + rectOffset, y: y - rectOffset },\n { x: x + rectOffset, y: y - rectOffset },\n { x: x + rectOffset, y },\n { x, y },\n { x, y: y + rectOffset }\n ];\n const innerPathPoints = [\n { x, y: y + rectOffset },\n { x: x + w - rectOffset, y: y + rectOffset },\n { x: x + w - rectOffset, y: lastWavePoint.y - rectOffset },\n { x: x + w, y: lastWavePoint.y - rectOffset },\n { x: x + w, y },\n { x, y }\n ];\n const rc = rough34.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const outerPath = createPathFromPoints(outerPathPoints);\n const outerNode = rc.path(outerPath, options);\n const innerPath = createPathFromPoints(innerPathPoints);\n const innerNode = rc.path(innerPath, options);\n const shape = shapeSvg.insert(() => outerNode, \":first-child\");\n shape.insert(() => innerNode);\n shape.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n shape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n shape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n shape.attr(\"transform\", `translate(0,${-waveAmplitude / 2})`);\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - rectOffset - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) + rectOffset - waveAmplitude / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, shape);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, outerPathPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(multiWaveEdgedRectangle, \"multiWaveEdgedRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/note.ts\nimport rough35 from \"roughjs\";\nasync function note(parent, node, { config: { themeVariables } }) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const useHtmlLabels = node.useHtmlLabels || getConfig().flowchart?.htmlLabels !== false;\n if (!useHtmlLabels) {\n node.centerLabel = true;\n }\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const totalWidth = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const totalHeight = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const x = -totalWidth / 2;\n const y = -totalHeight / 2;\n const { cssStyles } = node;\n const rc = rough35.svg(shapeSvg);\n const options = userNodeOverrides(node, {\n fill: themeVariables.noteBkgColor,\n stroke: themeVariables.noteBorderColor\n });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const noteShapeNode = rc.rectangle(x, y, totalWidth, totalHeight, options);\n const rect2 = shapeSvg.insert(() => noteShapeNode, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n rect2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n rect2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(note, \"note\");\n\n// src/rendering-util/rendering-elements/shapes/question.ts\nimport rough36 from \"roughjs\";\nvar createDecisionBoxPathD = /* @__PURE__ */ __name((x, y, size) => {\n return [\n `M${x + size / 2},${y}`,\n `L${x + size},${y - size / 2}`,\n `L${x + size / 2},${y - size}`,\n `L${x},${y - size / 2}`,\n \"Z\"\n ].join(\" \");\n}, \"createDecisionBoxPathD\");\nasync function question(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const s = w + h;\n const points = [\n { x: s / 2, y: 0 },\n { x: s, y: -s / 2 },\n { x: s / 2, y: -s },\n { x: 0, y: -s / 2 }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough36.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createDecisionBoxPathD(0, 0, s);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-s / 2}, ${s / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, s, s, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n log.debug(\n \"APA12 Intersect called SPLIT\\npoint:\",\n point,\n \"\\nnode:\\n\",\n node,\n \"\\nres:\",\n intersect_default.polygon(node, points, point)\n );\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(question, \"question\");\n\n// src/rendering-util/rendering-elements/shapes/rectLeftInvArrow.ts\nimport rough37 from \"roughjs\";\nasync function rect_left_inv_arrow(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0), node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0), node?.height ?? 0);\n const x = -w / 2;\n const y = -h / 2;\n const notch = y / 2;\n const points = [\n { x: x + notch, y },\n { x, y: 0 },\n { x: x + notch, y: -y },\n { x: -x, y: -y },\n { x: -x, y }\n ];\n const { cssStyles } = node;\n const rc = rough37.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => roughNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n polygon.attr(\"transform\", `translate(${-notch / 2},0)`);\n label.attr(\n \"transform\",\n `translate(${-notch / 2 - bbox.width / 2 - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(rect_left_inv_arrow, \"rect_left_inv_arrow\");\n\n// src/rendering-util/rendering-elements/shapes/rectWithTitle.ts\nimport { select as select4 } from \"d3\";\nimport rough38 from \"roughjs\";\nasync function rectWithTitle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n let classes;\n if (!node.cssClasses) {\n classes = \"node default\";\n } else {\n classes = \"node \" + node.cssClasses;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes).attr(\"id\", node.domId || node.id);\n const g = shapeSvg.insert(\"g\");\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", nodeStyles);\n const description = node.description;\n const title = node.label;\n const text2 = label.node().appendChild(await createLabel_default(title, node.labelStyle, true, true));\n let bbox = { width: 0, height: 0 };\n if (evaluate(getConfig2()?.flowchart?.htmlLabels)) {\n const div2 = text2.children[0];\n const dv2 = select4(text2);\n bbox = div2.getBoundingClientRect();\n dv2.attr(\"width\", bbox.width);\n dv2.attr(\"height\", bbox.height);\n }\n log.info(\"Text 2\", description);\n const textRows = description || [];\n const titleBox = text2.getBBox();\n const descr = label.node().appendChild(\n await createLabel_default(\n textRows.join ? textRows.join(\"<br/>\") : textRows,\n node.labelStyle,\n true,\n true\n )\n );\n const div = descr.children[0];\n const dv = select4(descr);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n const halfPadding = (node.padding || 0) / 2;\n select4(descr).attr(\n \"transform\",\n \"translate( \" + (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) + \", \" + (titleBox.height + halfPadding + 5) + \")\"\n );\n select4(text2).attr(\n \"transform\",\n \"translate( \" + (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) + \", 0)\"\n );\n bbox = label.node().getBBox();\n label.attr(\n \"transform\",\n \"translate(\" + -bbox.width / 2 + \", \" + (-bbox.height / 2 - halfPadding + 3) + \")\"\n );\n const totalWidth = bbox.width + (node.padding || 0);\n const totalHeight = bbox.height + (node.padding || 0);\n const x = -bbox.width / 2 - halfPadding;\n const y = -bbox.height / 2 - halfPadding;\n let rect2;\n let innerLine;\n if (node.look === \"handDrawn\") {\n const rc = rough38.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const roughNode = rc.path(\n createRoundedRectPathD(x, y, totalWidth, totalHeight, node.rx || 0),\n options\n );\n const roughLine = rc.line(\n -bbox.width / 2 - halfPadding,\n -bbox.height / 2 - halfPadding + titleBox.height + halfPadding,\n bbox.width / 2 + halfPadding,\n -bbox.height / 2 - halfPadding + titleBox.height + halfPadding,\n options\n );\n innerLine = shapeSvg.insert(() => {\n log.debug(\"Rough node insert CXC\", roughNode);\n return roughLine;\n }, \":first-child\");\n rect2 = shapeSvg.insert(() => {\n log.debug(\"Rough node insert CXC\", roughNode);\n return roughNode;\n }, \":first-child\");\n } else {\n rect2 = g.insert(\"rect\", \":first-child\");\n innerLine = g.insert(\"line\");\n rect2.attr(\"class\", \"outer title-state\").attr(\"style\", nodeStyles).attr(\"x\", -bbox.width / 2 - halfPadding).attr(\"y\", -bbox.height / 2 - halfPadding).attr(\"width\", bbox.width + (node.padding || 0)).attr(\"height\", bbox.height + (node.padding || 0));\n innerLine.attr(\"class\", \"divider\").attr(\"x1\", -bbox.width / 2 - halfPadding).attr(\"x2\", bbox.width / 2 + halfPadding).attr(\"y1\", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding).attr(\"y2\", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(rectWithTitle, \"rectWithTitle\");\n\n// src/rendering-util/rendering-elements/shapes/roundedRect.ts\nasync function roundedRect(parent, node) {\n const options = {\n rx: 5,\n ry: 5,\n classes: \"\",\n labelPaddingX: (node?.padding || 0) * 1,\n labelPaddingY: (node?.padding || 0) * 1\n };\n return drawRect(parent, node, options);\n}\n__name(roundedRect, \"roundedRect\");\n\n// src/rendering-util/rendering-elements/shapes/shadedProcess.ts\nimport rough39 from \"roughjs\";\nasync function shadedProcess(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const halfPadding = node?.padding ?? 0;\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const x = -bbox.width / 2 - halfPadding;\n const y = -bbox.height / 2 - halfPadding;\n const { cssStyles } = node;\n const rc = rough39.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x, y },\n { x: x + w + 8, y },\n { x: x + w + 8, y: y + h },\n { x: x - 8, y: y + h },\n { x: x - 8, y },\n { x, y },\n { x, y: y + h }\n ];\n const roughNode = rc.polygon(\n points.map((p) => [p.x, p.y]),\n options\n );\n const rect2 = shapeSvg.insert(() => roughNode, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n if (nodeStyles && node.look !== \"handDrawn\") {\n rect2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n if (cssStyles && node.look !== \"handDrawn\") {\n rect2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n label.attr(\n \"transform\",\n `translate(${-w / 2 + 4 + (node.padding ?? 0) - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(shadedProcess, \"shadedProcess\");\n\n// src/rendering-util/rendering-elements/shapes/slopedRect.ts\nimport rough40 from \"roughjs\";\nasync function slopedRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const x = -w / 2;\n const y = -h / 2;\n const { cssStyles } = node;\n const rc = rough40.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x, y },\n { x, y: y + h },\n { x: x + w, y: y + h },\n { x: x + w, y: y - h / 2 }\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n polygon.attr(\"transform\", `translate(0, ${h / 4})`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) - (bbox.x - (bbox.left ?? 0))}, ${-h / 4 + (node.padding ?? 0) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(slopedRect, \"slopedRect\");\n\n// src/rendering-util/rendering-elements/shapes/squareRect.ts\nasync function squareRect2(parent, node) {\n const options = {\n rx: 0,\n ry: 0,\n classes: \"\",\n labelPaddingX: (node?.padding || 0) * 2,\n labelPaddingY: (node?.padding || 0) * 1\n };\n return drawRect(parent, node, options);\n}\n__name(squareRect2, \"squareRect\");\n\n// src/rendering-util/rendering-elements/shapes/stadium.ts\nimport rough41 from \"roughjs\";\nasync function stadium(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const h = bbox.height + node.padding;\n const w = bbox.width + h / 4 + node.padding;\n let rect2;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough41.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createRoundedRectPathD(-w / 2, -h / 2, w, h, h / 2);\n const roughNode = rc.path(pathData, options);\n rect2 = shapeSvg.insert(() => roughNode, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n } else {\n rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles).attr(\"rx\", h / 2).attr(\"ry\", h / 2).attr(\"x\", -w / 2).attr(\"y\", -h / 2).attr(\"width\", w).attr(\"height\", h);\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(stadium, \"stadium\");\n\n// src/rendering-util/rendering-elements/shapes/state.ts\nasync function state(parent, node) {\n const options = {\n rx: 5,\n ry: 5,\n classes: \"flowchart-node\"\n };\n return drawRect(parent, node, options);\n}\n__name(state, \"state\");\n\n// src/rendering-util/rendering-elements/shapes/stateEnd.ts\nimport rough42 from \"roughjs\";\nfunction stateEnd(parent, node, { config: { themeVariables } }) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { cssStyles } = node;\n const { lineColor, stateBorder, nodeBorder } = themeVariables;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n const rc = rough42.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const roughNode = rc.circle(0, 0, 14, {\n ...options,\n stroke: lineColor,\n strokeWidth: 2\n });\n const innerFill = stateBorder ?? nodeBorder;\n const roughInnerNode = rc.circle(0, 0, 5, {\n ...options,\n fill: innerFill,\n stroke: innerFill,\n strokeWidth: 2,\n fillStyle: \"solid\"\n });\n const circle2 = shapeSvg.insert(() => roughNode, \":first-child\");\n circle2.insert(() => roughInnerNode);\n if (cssStyles) {\n circle2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles) {\n circle2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, circle2);\n node.intersect = function(point) {\n return intersect_default.circle(node, 7, point);\n };\n return shapeSvg;\n}\n__name(stateEnd, \"stateEnd\");\n\n// src/rendering-util/rendering-elements/shapes/stateStart.ts\nimport rough43 from \"roughjs\";\nfunction stateStart(parent, node, { config: { themeVariables } }) {\n const { lineColor } = themeVariables;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n let circle2;\n if (node.look === \"handDrawn\") {\n const rc = rough43.svg(shapeSvg);\n const roughNode = rc.circle(0, 0, 14, solidStateFill(lineColor));\n circle2 = shapeSvg.insert(() => roughNode);\n circle2.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 14).attr(\"height\", 14);\n } else {\n circle2 = shapeSvg.insert(\"circle\", \":first-child\");\n circle2.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 14).attr(\"height\", 14);\n }\n updateNodeBounds(node, circle2);\n node.intersect = function(point) {\n return intersect_default.circle(node, 7, point);\n };\n return shapeSvg;\n}\n__name(stateStart, \"stateStart\");\n\n// src/rendering-util/rendering-elements/shapes/subroutine.ts\nimport rough44 from \"roughjs\";\nasync function subroutine(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const halfPadding = (node?.padding || 0) / 2;\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const x = -bbox.width / 2 - halfPadding;\n const y = -bbox.height / 2 - halfPadding;\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: 0, y: -h },\n { x: 0, y: 0 },\n { x: -8, y: 0 },\n { x: w + 8, y: 0 },\n { x: w + 8, y: -h },\n { x: -8, y: -h },\n { x: -8, y: 0 }\n ];\n if (node.look === \"handDrawn\") {\n const rc = rough44.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const roughNode = rc.rectangle(x - 8, y, w + 16, h, options);\n const l1 = rc.line(x, y, x, y + h, options);\n const l2 = rc.line(x + w, y, x + w, y + h, options);\n shapeSvg.insert(() => l1, \":first-child\");\n shapeSvg.insert(() => l2, \":first-child\");\n const rect2 = shapeSvg.insert(() => roughNode, \":first-child\");\n const { cssStyles } = node;\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n updateNodeBounds(node, rect2);\n } else {\n const el = insertPolygonShape(shapeSvg, w, h, points);\n if (nodeStyles) {\n el.attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, el);\n }\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(subroutine, \"subroutine\");\n\n// src/rendering-util/rendering-elements/shapes/taggedRect.ts\nimport rough45 from \"roughjs\";\nasync function taggedRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const x = -w / 2;\n const y = -h / 2;\n const tagWidth = 0.2 * h;\n const tagHeight = 0.2 * h;\n const { cssStyles } = node;\n const rc = rough45.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const rectPoints = [\n { x: x - tagWidth / 2, y },\n { x: x + w + tagWidth / 2, y },\n { x: x + w + tagWidth / 2, y: y + h },\n { x: x - tagWidth / 2, y: y + h }\n ];\n const tagPoints = [\n { x: x + w - tagWidth / 2, y: y + h },\n { x: x + w + tagWidth / 2, y: y + h },\n { x: x + w + tagWidth / 2, y: y + h - tagHeight }\n ];\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const rectPath = createPathFromPoints(rectPoints);\n const rectNode = rc.path(rectPath, options);\n const tagPath = createPathFromPoints(tagPoints);\n const tagNode = rc.path(tagPath, { ...options, fillStyle: \"solid\" });\n const taggedRect2 = shapeSvg.insert(() => tagNode, \":first-child\");\n taggedRect2.insert(() => rectNode, \":first-child\");\n taggedRect2.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n taggedRect2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n taggedRect2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, taggedRect2);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, rectPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(taggedRect, \"taggedRect\");\n\n// src/rendering-util/rendering-elements/shapes/taggedWaveEdgedRectangle.ts\nimport rough46 from \"roughjs\";\nasync function taggedWaveEdgedRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const waveAmplitude = h / 4;\n const tagWidth = 0.2 * w;\n const tagHeight = 0.2 * h;\n const finalH = h + waveAmplitude;\n const { cssStyles } = node;\n const rc = rough46.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2 - w / 2 * 0.1, y: finalH / 2 },\n ...generateFullSineWavePoints(\n -w / 2 - w / 2 * 0.1,\n finalH / 2,\n w / 2 + w / 2 * 0.1,\n finalH / 2,\n waveAmplitude,\n 0.8\n ),\n { x: w / 2 + w / 2 * 0.1, y: -finalH / 2 },\n { x: -w / 2 - w / 2 * 0.1, y: -finalH / 2 }\n ];\n const x = -w / 2 + w / 2 * 0.1;\n const y = -finalH / 2 - tagHeight * 0.4;\n const tagPoints = [\n { x: x + w - tagWidth, y: (y + h) * 1.4 },\n { x: x + w, y: y + h - tagHeight },\n { x: x + w, y: (y + h) * 0.9 },\n ...generateFullSineWavePoints(\n x + w,\n (y + h) * 1.3,\n x + w - tagWidth,\n (y + h) * 1.5,\n -h * 0.03,\n 0.5\n )\n ];\n const waveEdgeRectPath = createPathFromPoints(points);\n const waveEdgeRectNode = rc.path(waveEdgeRectPath, options);\n const taggedWaveEdgeRectPath = createPathFromPoints(tagPoints);\n const taggedWaveEdgeRectNode = rc.path(taggedWaveEdgeRectPath, {\n ...options,\n fillStyle: \"solid\"\n });\n const waveEdgeRect = shapeSvg.insert(() => taggedWaveEdgeRectNode, \":first-child\");\n waveEdgeRect.insert(() => waveEdgeRectNode, \":first-child\");\n waveEdgeRect.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n waveEdgeRect.attr(\"transform\", `translate(0,${-waveAmplitude / 2})`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) - waveAmplitude / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, waveEdgeRect);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(taggedWaveEdgedRectangle, \"taggedWaveEdgedRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/text.ts\nasync function text(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const totalWidth = Math.max(bbox.width + node.padding, node?.width || 0);\n const totalHeight = Math.max(bbox.height + node.padding, node?.height || 0);\n const x = -totalWidth / 2;\n const y = -totalHeight / 2;\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"class\", \"text\").attr(\"style\", nodeStyles).attr(\"rx\", 0).attr(\"ry\", 0).attr(\"x\", x).attr(\"y\", y).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(text, \"text\");\n\n// src/rendering-util/rendering-elements/shapes/tiltedCylinder.ts\nimport rough47 from \"roughjs\";\nvar createCylinderPathD3 = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return `M${x},${y}\n a${rx},${ry} 0,0,1 ${0},${-height}\n l${width},${0}\n a${rx},${ry} 0,0,1 ${0},${height}\n M${width},${-height}\n a${rx},${ry} 0,0,0 ${0},${height}\n l${-width},${0}`;\n}, \"createCylinderPathD\");\nvar createOuterCylinderPathD3 = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [\n `M${x},${y}`,\n `M${x + width},${y}`,\n `a${rx},${ry} 0,0,0 ${0},${-height}`,\n `l${-width},0`,\n `a${rx},${ry} 0,0,0 ${0},${height}`,\n `l${width},0`\n ].join(\" \");\n}, \"createOuterCylinderPathD\");\nvar createInnerCylinderPathD3 = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [`M${x + width / 2},${-height / 2}`, `a${rx},${ry} 0,0,0 0,${height}`].join(\" \");\n}, \"createInnerCylinderPathD\");\nasync function tiltedCylinder(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label, halfPadding } = await labelHelper(\n parent,\n node,\n getNodeClasses(node)\n );\n const labelPadding = node.look === \"neo\" ? halfPadding * 2 : halfPadding;\n const h = bbox.height + labelPadding;\n const ry = h / 2;\n const rx = ry / (2.5 + h / 50);\n const w = bbox.width + rx + labelPadding;\n const { cssStyles } = node;\n let cylinder2;\n if (node.look === \"handDrawn\") {\n const rc = rough47.svg(shapeSvg);\n const outerPathData = createOuterCylinderPathD3(0, 0, w, h, rx, ry);\n const innerPathData = createInnerCylinderPathD3(0, 0, w, h, rx, ry);\n const outerNode = rc.path(outerPathData, userNodeOverrides(node, {}));\n const innerLine = rc.path(innerPathData, userNodeOverrides(node, { fill: \"none\" }));\n cylinder2 = shapeSvg.insert(() => innerLine, \":first-child\");\n cylinder2 = shapeSvg.insert(() => outerNode, \":first-child\");\n cylinder2.attr(\"class\", \"basic label-container\");\n if (cssStyles) {\n cylinder2.attr(\"style\", cssStyles);\n }\n } else {\n const pathData = createCylinderPathD3(0, 0, w, h, rx, ry);\n cylinder2 = shapeSvg.insert(\"path\", \":first-child\").attr(\"d\", pathData).attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles)).attr(\"style\", nodeStyles);\n cylinder2.attr(\"class\", \"basic label-container\");\n if (cssStyles) {\n cylinder2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles) {\n cylinder2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n }\n cylinder2.attr(\"label-offset-x\", rx);\n cylinder2.attr(\"transform\", `translate(${-w / 2}, ${h / 2} )`);\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - rx - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, cylinder2);\n node.intersect = function(point) {\n const pos = intersect_default.rect(node, point);\n const y = pos.y - (node.y ?? 0);\n if (ry != 0 && (Math.abs(y) < (node.height ?? 0) / 2 || Math.abs(y) == (node.height ?? 0) / 2 && Math.abs(pos.x - (node.x ?? 0)) > (node.width ?? 0) / 2 - rx)) {\n let x = rx * rx * (1 - y * y / (ry * ry));\n if (x != 0) {\n x = Math.sqrt(Math.abs(x));\n }\n x = rx - x;\n if (point.x - (node.x ?? 0) > 0) {\n x = -x;\n }\n pos.x += x;\n }\n return pos;\n };\n return shapeSvg;\n}\n__name(tiltedCylinder, \"tiltedCylinder\");\n\n// src/rendering-util/rendering-elements/shapes/trapezoid.ts\nimport rough48 from \"roughjs\";\nasync function trapezoid(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -3 * h / 6, y: 0 },\n { x: w + 3 * h / 6, y: 0 },\n { x: w, y: -h },\n { x: 0, y: -h }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough48.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(trapezoid, \"trapezoid\");\n\n// src/rendering-util/rendering-elements/shapes/trapezoidalPentagon.ts\nimport rough49 from \"roughjs\";\nasync function trapezoidalPentagon(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const minWidth = 60, minHeight = 20;\n const w = Math.max(minWidth, bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(minHeight, bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const { cssStyles } = node;\n const rc = rough49.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2 * 0.8, y: -h / 2 },\n { x: w / 2 * 0.8, y: -h / 2 },\n { x: w / 2, y: -h / 2 * 0.6 },\n { x: w / 2, y: h / 2 },\n { x: -w / 2, y: h / 2 },\n { x: -w / 2, y: -h / 2 * 0.6 }\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(trapezoidalPentagon, \"trapezoidalPentagon\");\n\n// src/rendering-util/rendering-elements/shapes/triangle.ts\nimport rough50 from \"roughjs\";\nasync function triangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const useHtmlLabels = evaluate(getConfig2().flowchart?.htmlLabels);\n const w = bbox.width + (node.padding ?? 0);\n const h = w + bbox.height;\n const tw = w + bbox.height;\n const points = [\n { x: 0, y: 0 },\n { x: tw, y: 0 },\n { x: tw / 2, y: -h }\n ];\n const { cssStyles } = node;\n const rc = rough50.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-h / 2}, ${h / 2})`);\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))}, ${h / 2 - (bbox.height + (node.padding ?? 0) / (useHtmlLabels ? 2 : 1) - (bbox.y - (bbox.top ?? 0)))})`\n );\n node.intersect = function(point) {\n log.info(\"Triangle intersect\", node, points, point);\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(triangle, \"triangle\");\n\n// src/rendering-util/rendering-elements/shapes/waveEdgedRectangle.ts\nimport rough51 from \"roughjs\";\nasync function waveEdgedRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const waveAmplitude = h / 8;\n const finalH = h + waveAmplitude;\n const { cssStyles } = node;\n const minWidth = 70;\n const widthDif = minWidth - w;\n const extraW = widthDif > 0 ? widthDif / 2 : 0;\n const rc = rough51.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2 - extraW, y: finalH / 2 },\n ...generateFullSineWavePoints(\n -w / 2 - extraW,\n finalH / 2,\n w / 2 + extraW,\n finalH / 2,\n waveAmplitude,\n 0.8\n ),\n { x: w / 2 + extraW, y: -finalH / 2 },\n { x: -w / 2 - extraW, y: -finalH / 2 }\n ];\n const waveEdgeRectPath = createPathFromPoints(points);\n const waveEdgeRectNode = rc.path(waveEdgeRectPath, options);\n const waveEdgeRect = shapeSvg.insert(() => waveEdgeRectNode, \":first-child\");\n waveEdgeRect.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n waveEdgeRect.attr(\"transform\", `translate(0,${-waveAmplitude / 2})`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) - waveAmplitude - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, waveEdgeRect);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(waveEdgedRectangle, \"waveEdgedRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/waveRectangle.ts\nimport rough52 from \"roughjs\";\nasync function waveRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const minWidth = 100;\n const minHeight = 50;\n const baseWidth = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const baseHeight = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const aspectRatio = baseWidth / baseHeight;\n let w = baseWidth;\n let h = baseHeight;\n if (w > h * aspectRatio) {\n h = w / aspectRatio;\n } else {\n w = h * aspectRatio;\n }\n w = Math.max(w, minWidth);\n h = Math.max(h, minHeight);\n const waveAmplitude = Math.min(h * 0.2, h / 4);\n const finalH = h + waveAmplitude * 2;\n const { cssStyles } = node;\n const rc = rough52.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2, y: finalH / 2 },\n ...generateFullSineWavePoints(-w / 2, finalH / 2, w / 2, finalH / 2, waveAmplitude, 1),\n { x: w / 2, y: -finalH / 2 },\n ...generateFullSineWavePoints(w / 2, -finalH / 2, -w / 2, -finalH / 2, waveAmplitude, -1)\n ];\n const waveRectPath = createPathFromPoints(points);\n const waveRectNode = rc.path(waveRectPath, options);\n const waveRect = shapeSvg.insert(() => waveRectNode, \":first-child\");\n waveRect.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n waveRect.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n waveRect.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, waveRect);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(waveRectangle, \"waveRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/windowPane.ts\nimport rough53 from \"roughjs\";\nasync function windowPane(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const rectOffset = 5;\n const x = -w / 2;\n const y = -h / 2;\n const { cssStyles } = node;\n const rc = rough53.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const outerPathPoints = [\n { x: x - rectOffset, y: y - rectOffset },\n { x: x - rectOffset, y: y + h },\n { x: x + w, y: y + h },\n { x: x + w, y: y - rectOffset }\n ];\n const path = `M${x - rectOffset},${y - rectOffset} L${x + w},${y - rectOffset} L${x + w},${y + h} L${x - rectOffset},${y + h} L${x - rectOffset},${y - rectOffset}\n M${x - rectOffset},${y} L${x + w},${y}\n M${x},${y - rectOffset} L${x},${y + h}`;\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const no = rc.path(path, options);\n const windowPane2 = shapeSvg.insert(() => no, \":first-child\");\n windowPane2.attr(\"transform\", `translate(${rectOffset / 2}, ${rectOffset / 2})`);\n windowPane2.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n windowPane2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n windowPane2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) + rectOffset / 2 - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) + rectOffset / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, windowPane2);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, outerPathPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(windowPane, \"windowPane\");\n\n// src/rendering-util/rendering-elements/shapes/erBox.ts\nimport rough54 from \"roughjs\";\nimport { select as select5 } from \"d3\";\nasync function erBox(parent, node) {\n const entityNode = node;\n if (entityNode.alias) {\n node.label = entityNode.alias;\n }\n if (node.look === \"handDrawn\") {\n const { themeVariables: themeVariables2 } = getConfig();\n const { background } = themeVariables2;\n const backgroundNode = {\n ...node,\n id: node.id + \"-background\",\n look: \"default\",\n cssStyles: [\"stroke: none\", `fill: ${background}`]\n };\n await erBox(parent, backgroundNode);\n }\n const config = getConfig();\n node.useHtmlLabels = config.htmlLabels;\n let PADDING = config.er?.diagramPadding ?? 10;\n let TEXT_PADDING = config.er?.entityPadding ?? 6;\n const { cssStyles } = node;\n const { labelStyles, nodeStyles } = styles2String(node);\n if (entityNode.attributes.length === 0 && node.label) {\n const options2 = {\n rx: 0,\n ry: 0,\n labelPaddingX: PADDING,\n labelPaddingY: PADDING * 1.5,\n classes: \"\"\n };\n if (calculateTextWidth(node.label, config) + options2.labelPaddingX * 2 < config.er.minEntityWidth) {\n node.width = config.er.minEntityWidth;\n }\n const shapeSvg2 = await drawRect(parent, node, options2);\n if (!evaluate(config.htmlLabels)) {\n const textElement = shapeSvg2.select(\"text\");\n const bbox = textElement.node()?.getBBox();\n textElement.attr(\"transform\", `translate(${-bbox.width / 2}, 0)`);\n }\n return shapeSvg2;\n }\n if (!config.htmlLabels) {\n PADDING *= 1.25;\n TEXT_PADDING *= 1.25;\n }\n let cssClasses = getNodeClasses(node);\n if (!cssClasses) {\n cssClasses = \"node default\";\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", cssClasses).attr(\"id\", node.domId || node.id);\n const nameBBox = await addText(shapeSvg, node.label ?? \"\", config, 0, 0, [\"name\"], labelStyles);\n nameBBox.height += TEXT_PADDING;\n let yOffset = 0;\n const yOffsets = [];\n const rows = [];\n let maxTypeWidth = 0;\n let maxNameWidth = 0;\n let maxKeysWidth = 0;\n let maxCommentWidth = 0;\n let keysPresent = true;\n let commentPresent = true;\n for (const attribute of entityNode.attributes) {\n const typeBBox = await addText(\n shapeSvg,\n attribute.type,\n config,\n 0,\n yOffset,\n [\"attribute-type\"],\n labelStyles\n );\n maxTypeWidth = Math.max(maxTypeWidth, typeBBox.width + PADDING);\n const nameBBox2 = await addText(\n shapeSvg,\n attribute.name,\n config,\n 0,\n yOffset,\n [\"attribute-name\"],\n labelStyles\n );\n maxNameWidth = Math.max(maxNameWidth, nameBBox2.width + PADDING);\n const keysBBox = await addText(\n shapeSvg,\n attribute.keys.join(),\n config,\n 0,\n yOffset,\n [\"attribute-keys\"],\n labelStyles\n );\n maxKeysWidth = Math.max(maxKeysWidth, keysBBox.width + PADDING);\n const commentBBox = await addText(\n shapeSvg,\n attribute.comment,\n config,\n 0,\n yOffset,\n [\"attribute-comment\"],\n labelStyles\n );\n maxCommentWidth = Math.max(maxCommentWidth, commentBBox.width + PADDING);\n const rowHeight = Math.max(typeBBox.height, nameBBox2.height, keysBBox.height, commentBBox.height) + TEXT_PADDING;\n rows.push({ yOffset, rowHeight });\n yOffset += rowHeight;\n }\n let totalWidthSections = 4;\n if (maxKeysWidth <= PADDING) {\n keysPresent = false;\n maxKeysWidth = 0;\n totalWidthSections--;\n }\n if (maxCommentWidth <= PADDING) {\n commentPresent = false;\n maxCommentWidth = 0;\n totalWidthSections--;\n }\n const shapeBBox = shapeSvg.node().getBBox();\n if (nameBBox.width + PADDING * 2 - (maxTypeWidth + maxNameWidth + maxKeysWidth + maxCommentWidth) > 0) {\n const difference = nameBBox.width + PADDING * 2 - (maxTypeWidth + maxNameWidth + maxKeysWidth + maxCommentWidth);\n maxTypeWidth += difference / totalWidthSections;\n maxNameWidth += difference / totalWidthSections;\n if (maxKeysWidth > 0) {\n maxKeysWidth += difference / totalWidthSections;\n }\n if (maxCommentWidth > 0) {\n maxCommentWidth += difference / totalWidthSections;\n }\n }\n const maxWidth = maxTypeWidth + maxNameWidth + maxKeysWidth + maxCommentWidth;\n const rc = rough54.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n let totalShapeBBoxHeight = 0;\n if (rows.length > 0) {\n totalShapeBBoxHeight = rows.reduce((sum, row) => sum + (row?.rowHeight ?? 0), 0);\n }\n const w = Math.max(shapeBBox.width + PADDING * 2, node?.width || 0, maxWidth);\n const h = Math.max((totalShapeBBoxHeight ?? 0) + nameBBox.height, node?.height || 0);\n const x = -w / 2;\n const y = -h / 2;\n shapeSvg.selectAll(\"g:not(:first-child)\").each((_, i, nodes) => {\n const text2 = select5(nodes[i]);\n const transform = text2.attr(\"transform\");\n let translateX = 0;\n let translateY = 0;\n if (transform) {\n const regex = RegExp(/translate\\(([^,]+),([^)]+)\\)/);\n const translate = regex.exec(transform);\n if (translate) {\n translateX = parseFloat(translate[1]);\n translateY = parseFloat(translate[2]);\n if (text2.attr(\"class\").includes(\"attribute-name\")) {\n translateX += maxTypeWidth;\n } else if (text2.attr(\"class\").includes(\"attribute-keys\")) {\n translateX += maxTypeWidth + maxNameWidth;\n } else if (text2.attr(\"class\").includes(\"attribute-comment\")) {\n translateX += maxTypeWidth + maxNameWidth + maxKeysWidth;\n }\n }\n }\n text2.attr(\n \"transform\",\n `translate(${x + PADDING / 2 + translateX}, ${translateY + y + nameBBox.height + TEXT_PADDING / 2})`\n );\n });\n shapeSvg.select(\".name\").attr(\"transform\", \"translate(\" + -nameBBox.width / 2 + \", \" + (y + TEXT_PADDING / 2) + \")\");\n const roughRect = rc.rectangle(x, y, w, h, options);\n const rect2 = shapeSvg.insert(() => roughRect, \":first-child\").attr(\"style\", cssStyles.join(\"\"));\n const { themeVariables } = getConfig();\n const { rowEven, rowOdd, nodeBorder } = themeVariables;\n yOffsets.push(0);\n for (const [i, row] of rows.entries()) {\n const contentRowIndex = i + 1;\n const isEven = contentRowIndex % 2 === 0 && row.yOffset !== 0;\n const roughRect2 = rc.rectangle(x, nameBBox.height + y + row?.yOffset, w, row?.rowHeight, {\n ...options,\n fill: isEven ? rowEven : rowOdd,\n stroke: nodeBorder\n });\n shapeSvg.insert(() => roughRect2, \"g.label\").attr(\"style\", cssStyles.join(\"\")).attr(\"class\", `row-rect-${isEven ? \"even\" : \"odd\"}`);\n }\n let roughLine = rc.line(x, nameBBox.height + y, w + x, nameBBox.height + y, options);\n shapeSvg.insert(() => roughLine).attr(\"class\", \"divider\");\n roughLine = rc.line(maxTypeWidth + x, nameBBox.height + y, maxTypeWidth + x, h + y, options);\n shapeSvg.insert(() => roughLine).attr(\"class\", \"divider\");\n if (keysPresent) {\n roughLine = rc.line(\n maxTypeWidth + maxNameWidth + x,\n nameBBox.height + y,\n maxTypeWidth + maxNameWidth + x,\n h + y,\n options\n );\n shapeSvg.insert(() => roughLine).attr(\"class\", \"divider\");\n }\n if (commentPresent) {\n roughLine = rc.line(\n maxTypeWidth + maxNameWidth + maxKeysWidth + x,\n nameBBox.height + y,\n maxTypeWidth + maxNameWidth + maxKeysWidth + x,\n h + y,\n options\n );\n shapeSvg.insert(() => roughLine).attr(\"class\", \"divider\");\n }\n for (const yOffset2 of yOffsets) {\n roughLine = rc.line(\n x,\n nameBBox.height + y + yOffset2,\n w + x,\n nameBBox.height + y + yOffset2,\n options\n );\n shapeSvg.insert(() => roughLine).attr(\"class\", \"divider\");\n }\n updateNodeBounds(node, rect2);\n if (nodeStyles && node.look !== \"handDrawn\") {\n const allStyle = nodeStyles.split(\";\");\n const strokeStyles = allStyle?.filter((e) => {\n return e.includes(\"stroke\");\n })?.map((s) => `${s}`).join(\"; \");\n shapeSvg.selectAll(\"path\").attr(\"style\", strokeStyles ?? \"\");\n shapeSvg.selectAll(\".row-rect-even path\").attr(\"style\", nodeStyles);\n }\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(erBox, \"erBox\");\nasync function addText(shapeSvg, labelText, config, translateX = 0, translateY = 0, classes = [], style = \"\") {\n const label = shapeSvg.insert(\"g\").attr(\"class\", `label ${classes.join(\" \")}`).attr(\"transform\", `translate(${translateX}, ${translateY})`).attr(\"style\", style);\n if (labelText !== parseGenericTypes(labelText)) {\n labelText = parseGenericTypes(labelText);\n labelText = labelText.replaceAll(\"<\", \"&lt;\").replaceAll(\">\", \"&gt;\");\n }\n const text2 = label.node().appendChild(\n await createText(\n label,\n labelText,\n {\n width: calculateTextWidth(labelText, config) + 100,\n style,\n useHtmlLabels: config.htmlLabels\n },\n config\n )\n );\n if (labelText.includes(\"&lt;\") || labelText.includes(\"&gt;\")) {\n let child = text2.children[0];\n child.textContent = child.textContent.replaceAll(\"&lt;\", \"<\").replaceAll(\"&gt;\", \">\");\n while (child.childNodes[0]) {\n child = child.childNodes[0];\n child.textContent = child.textContent.replaceAll(\"&lt;\", \"<\").replaceAll(\"&gt;\", \">\");\n }\n }\n let bbox = text2.getBBox();\n if (evaluate(config.htmlLabels)) {\n const div = text2.children[0];\n div.style.textAlign = \"start\";\n const dv = select5(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n return bbox;\n}\n__name(addText, \"addText\");\n\n// src/rendering-util/rendering-elements/shapes/classBox.ts\nimport { select as select7 } from \"d3\";\nimport rough55 from \"roughjs\";\n\n// src/diagrams/class/shapeUtil.ts\nimport { select as select6 } from \"d3\";\nasync function textHelper(parent, node, config, useHtmlLabels, GAP = config.class.padding ?? 12) {\n const TEXT_PADDING = !useHtmlLabels ? 3 : 0;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId || node.id);\n let annotationGroup = null;\n let labelGroup = null;\n let membersGroup = null;\n let methodsGroup = null;\n let annotationGroupHeight = 0;\n let labelGroupHeight = 0;\n let membersGroupHeight = 0;\n annotationGroup = shapeSvg.insert(\"g\").attr(\"class\", \"annotation-group text\");\n if (node.annotations.length > 0) {\n const annotation = node.annotations[0];\n await addText2(annotationGroup, { text: `\\xAB${annotation}\\xBB` }, 0);\n const annotationGroupBBox = annotationGroup.node().getBBox();\n annotationGroupHeight = annotationGroupBBox.height;\n }\n labelGroup = shapeSvg.insert(\"g\").attr(\"class\", \"label-group text\");\n await addText2(labelGroup, node, 0, [\"font-weight: bolder\"]);\n const labelGroupBBox = labelGroup.node().getBBox();\n labelGroupHeight = labelGroupBBox.height;\n membersGroup = shapeSvg.insert(\"g\").attr(\"class\", \"members-group text\");\n let yOffset = 0;\n for (const member of node.members) {\n const height = await addText2(membersGroup, member, yOffset, [member.parseClassifier()]);\n yOffset += height + TEXT_PADDING;\n }\n membersGroupHeight = membersGroup.node().getBBox().height;\n if (membersGroupHeight <= 0) {\n membersGroupHeight = GAP / 2;\n }\n methodsGroup = shapeSvg.insert(\"g\").attr(\"class\", \"methods-group text\");\n let methodsYOffset = 0;\n for (const method of node.methods) {\n const height = await addText2(methodsGroup, method, methodsYOffset, [method.parseClassifier()]);\n methodsYOffset += height + TEXT_PADDING;\n }\n let bbox = shapeSvg.node().getBBox();\n if (annotationGroup !== null) {\n const annotationGroupBBox = annotationGroup.node().getBBox();\n annotationGroup.attr(\"transform\", `translate(${-annotationGroupBBox.width / 2})`);\n }\n labelGroup.attr(\"transform\", `translate(${-labelGroupBBox.width / 2}, ${annotationGroupHeight})`);\n bbox = shapeSvg.node().getBBox();\n membersGroup.attr(\n \"transform\",\n `translate(${0}, ${annotationGroupHeight + labelGroupHeight + GAP * 2})`\n );\n bbox = shapeSvg.node().getBBox();\n methodsGroup.attr(\n \"transform\",\n `translate(${0}, ${annotationGroupHeight + labelGroupHeight + (membersGroupHeight ? membersGroupHeight + GAP * 4 : GAP * 2)})`\n );\n bbox = shapeSvg.node().getBBox();\n return { shapeSvg, bbox };\n}\n__name(textHelper, \"textHelper\");\nasync function addText2(parentGroup, node, yOffset, styles = []) {\n const textEl = parentGroup.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", styles.join(\"; \"));\n const config = getConfig();\n let useHtmlLabels = \"useHtmlLabels\" in node ? node.useHtmlLabels : evaluate(config.htmlLabels) ?? true;\n let textContent = \"\";\n if (\"text\" in node) {\n textContent = node.text;\n } else {\n textContent = node.label;\n }\n if (!useHtmlLabels && textContent.startsWith(\"\\\\\")) {\n textContent = textContent.substring(1);\n }\n if (hasKatex(textContent)) {\n useHtmlLabels = true;\n }\n const text2 = await createText(\n textEl,\n sanitizeText2(decodeEntities(textContent)),\n {\n width: calculateTextWidth(textContent, config) + 50,\n // Add room for error when splitting text into multiple lines\n classes: \"markdown-node-label\",\n useHtmlLabels\n },\n config\n );\n let bbox;\n let numberOfLines = 1;\n if (!useHtmlLabels) {\n if (styles.includes(\"font-weight: bolder\")) {\n select6(text2).selectAll(\"tspan\").attr(\"font-weight\", \"\");\n }\n numberOfLines = text2.children.length;\n const textChild = text2.children[0];\n if (text2.textContent === \"\" || text2.textContent.includes(\"&gt\")) {\n textChild.textContent = textContent[0] + textContent.substring(1).replaceAll(\"&gt;\", \">\").replaceAll(\"&lt;\", \"<\").trim();\n const preserveSpace = textContent[1] === \" \";\n if (preserveSpace) {\n textChild.textContent = textChild.textContent[0] + \" \" + textChild.textContent.substring(1);\n }\n }\n if (textChild.textContent === \"undefined\") {\n textChild.textContent = \"\";\n }\n bbox = text2.getBBox();\n } else {\n const div = text2.children[0];\n const dv = select6(text2);\n numberOfLines = div.innerHTML.split(\"<br>\").length;\n if (div.innerHTML.includes(\"</math>\")) {\n numberOfLines += div.innerHTML.split(\"<mrow>\").length - 1;\n }\n const images = div.getElementsByTagName(\"img\");\n if (images) {\n const noImgText = textContent.replace(/<img[^>]*>/g, \"\").trim() === \"\";\n await Promise.all(\n [...images].map(\n (img) => new Promise((res) => {\n function setupImage() {\n img.style.display = \"flex\";\n img.style.flexDirection = \"column\";\n if (noImgText) {\n const bodyFontSize = config.fontSize?.toString() ?? window.getComputedStyle(document.body).fontSize;\n const enlargingFactor = 5;\n const width = parseInt(bodyFontSize, 10) * enlargingFactor + \"px\";\n img.style.minWidth = width;\n img.style.maxWidth = width;\n } else {\n img.style.width = \"100%\";\n }\n res(img);\n }\n __name(setupImage, \"setupImage\");\n setTimeout(() => {\n if (img.complete) {\n setupImage();\n }\n });\n img.addEventListener(\"error\", setupImage);\n img.addEventListener(\"load\", setupImage);\n })\n )\n );\n }\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n textEl.attr(\"transform\", \"translate(0,\" + (-bbox.height / (2 * numberOfLines) + yOffset) + \")\");\n return bbox.height;\n}\n__name(addText2, \"addText\");\n\n// src/rendering-util/rendering-elements/shapes/classBox.ts\nasync function classBox(parent, node) {\n const config = getConfig2();\n const PADDING = config.class.padding ?? 12;\n const GAP = PADDING;\n const useHtmlLabels = node.useHtmlLabels ?? evaluate(config.htmlLabels) ?? true;\n const classNode = node;\n classNode.annotations = classNode.annotations ?? [];\n classNode.members = classNode.members ?? [];\n classNode.methods = classNode.methods ?? [];\n const { shapeSvg, bbox } = await textHelper(parent, node, config, useHtmlLabels, GAP);\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n node.cssStyles = classNode.styles || \"\";\n const styles = classNode.styles?.join(\";\") || nodeStyles || \"\";\n if (!node.cssStyles) {\n node.cssStyles = styles.replaceAll(\"!important\", \"\").split(\";\");\n }\n const renderExtraBox = classNode.members.length === 0 && classNode.methods.length === 0 && !config.class?.hideEmptyMembersBox;\n const rc = rough55.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const w = bbox.width;\n let h = bbox.height;\n if (classNode.members.length === 0 && classNode.methods.length === 0) {\n h += GAP;\n } else if (classNode.members.length > 0 && classNode.methods.length === 0) {\n h += GAP * 2;\n }\n const x = -w / 2;\n const y = -h / 2;\n const roughRect = rc.rectangle(\n x - PADDING,\n y - PADDING - (renderExtraBox ? PADDING : classNode.members.length === 0 && classNode.methods.length === 0 ? -PADDING / 2 : 0),\n w + 2 * PADDING,\n h + 2 * PADDING + (renderExtraBox ? PADDING * 2 : classNode.members.length === 0 && classNode.methods.length === 0 ? -PADDING : 0),\n options\n );\n const rect2 = shapeSvg.insert(() => roughRect, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\");\n const rectBBox = rect2.node().getBBox();\n shapeSvg.selectAll(\".text\").each((_, i, nodes) => {\n const text2 = select7(nodes[i]);\n const transform = text2.attr(\"transform\");\n let translateY = 0;\n if (transform) {\n const regex = RegExp(/translate\\(([^,]+),([^)]+)\\)/);\n const translate = regex.exec(transform);\n if (translate) {\n translateY = parseFloat(translate[2]);\n }\n }\n let newTranslateY = translateY + y + PADDING - (renderExtraBox ? PADDING : classNode.members.length === 0 && classNode.methods.length === 0 ? -PADDING / 2 : 0);\n if (!useHtmlLabels) {\n newTranslateY -= 4;\n }\n let newTranslateX = x;\n if (text2.attr(\"class\").includes(\"label-group\") || text2.attr(\"class\").includes(\"annotation-group\")) {\n newTranslateX = -text2.node()?.getBBox().width / 2 || 0;\n shapeSvg.selectAll(\"text\").each(function(_2, i2, nodes2) {\n if (window.getComputedStyle(nodes2[i2]).textAnchor === \"middle\") {\n newTranslateX = 0;\n }\n });\n }\n text2.attr(\"transform\", `translate(${newTranslateX}, ${newTranslateY})`);\n });\n const annotationGroupHeight = shapeSvg.select(\".annotation-group\").node().getBBox().height - (renderExtraBox ? PADDING / 2 : 0) || 0;\n const labelGroupHeight = shapeSvg.select(\".label-group\").node().getBBox().height - (renderExtraBox ? PADDING / 2 : 0) || 0;\n const membersGroupHeight = shapeSvg.select(\".members-group\").node().getBBox().height - (renderExtraBox ? PADDING / 2 : 0) || 0;\n if (classNode.members.length > 0 || classNode.methods.length > 0 || renderExtraBox) {\n const roughLine = rc.line(\n rectBBox.x,\n annotationGroupHeight + labelGroupHeight + y + PADDING,\n rectBBox.x + rectBBox.width,\n annotationGroupHeight + labelGroupHeight + y + PADDING,\n options\n );\n const line = shapeSvg.insert(() => roughLine);\n line.attr(\"class\", \"divider\").attr(\"style\", styles);\n }\n if (renderExtraBox || classNode.members.length > 0 || classNode.methods.length > 0) {\n const roughLine = rc.line(\n rectBBox.x,\n annotationGroupHeight + labelGroupHeight + membersGroupHeight + y + GAP * 2 + PADDING,\n rectBBox.x + rectBBox.width,\n annotationGroupHeight + labelGroupHeight + membersGroupHeight + y + PADDING + GAP * 2,\n options\n );\n const line = shapeSvg.insert(() => roughLine);\n line.attr(\"class\", \"divider\").attr(\"style\", styles);\n }\n if (classNode.look !== \"handDrawn\") {\n shapeSvg.selectAll(\"path\").attr(\"style\", styles);\n }\n rect2.select(\":nth-child(2)\").attr(\"style\", styles);\n shapeSvg.selectAll(\".divider\").select(\"path\").attr(\"style\", styles);\n if (node.labelStyle) {\n shapeSvg.selectAll(\"span\").attr(\"style\", node.labelStyle);\n } else {\n shapeSvg.selectAll(\"span\").attr(\"style\", styles);\n }\n if (!useHtmlLabels) {\n const colorRegex = RegExp(/color\\s*:\\s*([^;]*)/);\n const match = colorRegex.exec(styles);\n if (match) {\n const colorStyle = match[0].replace(\"color\", \"fill\");\n shapeSvg.selectAll(\"tspan\").attr(\"style\", colorStyle);\n } else if (labelStyles) {\n const match2 = colorRegex.exec(labelStyles);\n if (match2) {\n const colorStyle = match2[0].replace(\"color\", \"fill\");\n shapeSvg.selectAll(\"tspan\").attr(\"style\", colorStyle);\n }\n }\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(classBox, \"classBox\");\n\n// src/rendering-util/rendering-elements/shapes/requirementBox.ts\nimport rough56 from \"roughjs\";\nimport { select as select8 } from \"d3\";\nasync function requirementBox(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const requirementNode = node;\n const elementNode = node;\n const padding = 20;\n const gap = 20;\n const isRequirementNode = \"verifyMethod\" in node;\n const classes = getNodeClasses(node);\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes).attr(\"id\", node.domId ?? node.id);\n let typeHeight;\n if (isRequirementNode) {\n typeHeight = await addText3(\n shapeSvg,\n `&lt;&lt;${requirementNode.type}&gt;&gt;`,\n 0,\n node.labelStyle\n );\n } else {\n typeHeight = await addText3(shapeSvg, \"&lt;&lt;Element&gt;&gt;\", 0, node.labelStyle);\n }\n let accumulativeHeight = typeHeight;\n const nameHeight = await addText3(\n shapeSvg,\n requirementNode.name,\n accumulativeHeight,\n node.labelStyle + \"; font-weight: bold;\"\n );\n accumulativeHeight += nameHeight + gap;\n if (isRequirementNode) {\n const idHeight = await addText3(\n shapeSvg,\n `${requirementNode.requirementId ? `id: ${requirementNode.requirementId}` : \"\"}`,\n accumulativeHeight,\n node.labelStyle\n );\n accumulativeHeight += idHeight;\n const textHeight = await addText3(\n shapeSvg,\n `${requirementNode.text ? `Text: ${requirementNode.text}` : \"\"}`,\n accumulativeHeight,\n node.labelStyle\n );\n accumulativeHeight += textHeight;\n const riskHeight = await addText3(\n shapeSvg,\n `${requirementNode.risk ? `Risk: ${requirementNode.risk}` : \"\"}`,\n accumulativeHeight,\n node.labelStyle\n );\n accumulativeHeight += riskHeight;\n await addText3(\n shapeSvg,\n `${requirementNode.verifyMethod ? `Verification: ${requirementNode.verifyMethod}` : \"\"}`,\n accumulativeHeight,\n node.labelStyle\n );\n } else {\n const typeHeight2 = await addText3(\n shapeSvg,\n `${elementNode.type ? `Type: ${elementNode.type}` : \"\"}`,\n accumulativeHeight,\n node.labelStyle\n );\n accumulativeHeight += typeHeight2;\n await addText3(\n shapeSvg,\n `${elementNode.docRef ? `Doc Ref: ${elementNode.docRef}` : \"\"}`,\n accumulativeHeight,\n node.labelStyle\n );\n }\n const totalWidth = (shapeSvg.node()?.getBBox().width ?? 200) + padding;\n const totalHeight = (shapeSvg.node()?.getBBox().height ?? 200) + padding;\n const x = -totalWidth / 2;\n const y = -totalHeight / 2;\n const rc = rough56.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const roughRect = rc.rectangle(x, y, totalWidth, totalHeight, options);\n const rect2 = shapeSvg.insert(() => roughRect, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles);\n shapeSvg.selectAll(\".label\").each((_, i, nodes) => {\n const text2 = select8(nodes[i]);\n const transform = text2.attr(\"transform\");\n let translateX = 0;\n let translateY = 0;\n if (transform) {\n const regex = RegExp(/translate\\(([^,]+),([^)]+)\\)/);\n const translate = regex.exec(transform);\n if (translate) {\n translateX = parseFloat(translate[1]);\n translateY = parseFloat(translate[2]);\n }\n }\n const newTranslateY = translateY - totalHeight / 2;\n let newTranslateX = x + padding / 2;\n if (i === 0 || i === 1) {\n newTranslateX = translateX;\n }\n text2.attr(\"transform\", `translate(${newTranslateX}, ${newTranslateY + padding})`);\n });\n if (accumulativeHeight > typeHeight + nameHeight + gap) {\n const roughLine = rc.line(\n x,\n y + typeHeight + nameHeight + gap,\n x + totalWidth,\n y + typeHeight + nameHeight + gap,\n options\n );\n const dividerLine = shapeSvg.insert(() => roughLine);\n dividerLine.attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(requirementBox, \"requirementBox\");\nasync function addText3(parentGroup, inputText, yOffset, style = \"\") {\n if (inputText === \"\") {\n return 0;\n }\n const textEl = parentGroup.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", style);\n const config = getConfig2();\n const useHtmlLabels = config.htmlLabels ?? true;\n const text2 = await createText(\n textEl,\n sanitizeText2(decodeEntities(inputText)),\n {\n width: calculateTextWidth(inputText, config) + 50,\n // Add room for error when splitting text into multiple lines\n classes: \"markdown-node-label\",\n useHtmlLabels,\n style\n },\n config\n );\n let bbox;\n if (!useHtmlLabels) {\n const textChild = text2.children[0];\n for (const child of textChild.children) {\n child.textContent = child.textContent.replaceAll(\"&gt;\", \">\").replaceAll(\"&lt;\", \"<\");\n if (style) {\n child.setAttribute(\"style\", style);\n }\n }\n bbox = text2.getBBox();\n bbox.height += 6;\n } else {\n const div = text2.children[0];\n const dv = select8(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n textEl.attr(\"transform\", `translate(${-bbox.width / 2},${-bbox.height / 2 + yOffset})`);\n return bbox.height;\n}\n__name(addText3, \"addText\");\n\n// src/rendering-util/rendering-elements/shapes/kanbanItem.ts\nimport rough57 from \"roughjs\";\nvar colorFromPriority = /* @__PURE__ */ __name((priority) => {\n switch (priority) {\n case \"Very High\":\n return \"red\";\n case \"High\":\n return \"orange\";\n case \"Medium\":\n return null;\n // no stroke\n case \"Low\":\n return \"blue\";\n case \"Very Low\":\n return \"lightblue\";\n }\n}, \"colorFromPriority\");\nasync function kanbanItem(parent, kanbanNode, { config }) {\n const { labelStyles, nodeStyles } = styles2String(kanbanNode);\n kanbanNode.labelStyle = labelStyles || \"\";\n const labelPaddingX = 10;\n const orgWidth = kanbanNode.width;\n kanbanNode.width = (kanbanNode.width ?? 200) - 10;\n const {\n shapeSvg,\n bbox,\n label: labelElTitle\n } = await labelHelper(parent, kanbanNode, getNodeClasses(kanbanNode));\n const padding = kanbanNode.padding || 10;\n let ticketUrl = \"\";\n let link;\n if (\"ticket\" in kanbanNode && kanbanNode.ticket && config?.kanban?.ticketBaseUrl) {\n ticketUrl = config?.kanban?.ticketBaseUrl.replace(\"#TICKET#\", kanbanNode.ticket);\n link = shapeSvg.insert(\"svg:a\", \":first-child\").attr(\"class\", \"kanban-ticket-link\").attr(\"xlink:href\", ticketUrl).attr(\"target\", \"_blank\");\n }\n const options = {\n useHtmlLabels: kanbanNode.useHtmlLabels,\n labelStyle: kanbanNode.labelStyle || \"\",\n width: kanbanNode.width,\n img: kanbanNode.img,\n padding: kanbanNode.padding || 8,\n centerLabel: false\n };\n let labelEl, bbox2;\n if (link) {\n ({ label: labelEl, bbox: bbox2 } = await insertLabel(\n link,\n \"ticket\" in kanbanNode && kanbanNode.ticket || \"\",\n options\n ));\n } else {\n ({ label: labelEl, bbox: bbox2 } = await insertLabel(\n shapeSvg,\n \"ticket\" in kanbanNode && kanbanNode.ticket || \"\",\n options\n ));\n }\n const { label: labelElAssigned, bbox: bboxAssigned } = await insertLabel(\n shapeSvg,\n \"assigned\" in kanbanNode && kanbanNode.assigned || \"\",\n options\n );\n kanbanNode.width = orgWidth;\n const labelPaddingY = 10;\n const totalWidth = kanbanNode?.width || 0;\n const heightAdj = Math.max(bbox2.height, bboxAssigned.height) / 2;\n const totalHeight = Math.max(bbox.height + labelPaddingY * 2, kanbanNode?.height || 0) + heightAdj;\n const x = -totalWidth / 2;\n const y = -totalHeight / 2;\n labelElTitle.attr(\n \"transform\",\n \"translate(\" + (padding - totalWidth / 2) + \", \" + (-heightAdj - bbox.height / 2) + \")\"\n );\n labelEl.attr(\n \"transform\",\n \"translate(\" + (padding - totalWidth / 2) + \", \" + (-heightAdj + bbox.height / 2) + \")\"\n );\n labelElAssigned.attr(\n \"transform\",\n \"translate(\" + (padding + totalWidth / 2 - bboxAssigned.width - 2 * labelPaddingX) + \", \" + (-heightAdj + bbox.height / 2) + \")\"\n );\n let rect2;\n const { rx, ry } = kanbanNode;\n const { cssStyles } = kanbanNode;\n if (kanbanNode.look === \"handDrawn\") {\n const rc = rough57.svg(shapeSvg);\n const options2 = userNodeOverrides(kanbanNode, {});\n const roughNode = rx || ry ? rc.path(createRoundedRectPathD(x, y, totalWidth, totalHeight, rx || 0), options2) : rc.rectangle(x, y, totalWidth, totalHeight, options2);\n rect2 = shapeSvg.insert(() => roughNode, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", cssStyles ? cssStyles : null);\n } else {\n rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"class\", \"basic label-container __APA__\").attr(\"style\", nodeStyles).attr(\"rx\", rx ?? 5).attr(\"ry\", ry ?? 5).attr(\"x\", x).attr(\"y\", y).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n const priority = \"priority\" in kanbanNode && kanbanNode.priority;\n if (priority) {\n const line = shapeSvg.append(\"line\");\n const lineX = x + 2;\n const y1 = y + Math.floor((rx ?? 0) / 2);\n const y2 = y + totalHeight - Math.floor((rx ?? 0) / 2);\n line.attr(\"x1\", lineX).attr(\"y1\", y1).attr(\"x2\", lineX).attr(\"y2\", y2).attr(\"stroke-width\", \"4\").attr(\"stroke\", colorFromPriority(priority));\n }\n }\n updateNodeBounds(kanbanNode, rect2);\n kanbanNode.height = totalHeight;\n kanbanNode.intersect = function(point) {\n return intersect_default.rect(kanbanNode, point);\n };\n return shapeSvg;\n}\n__name(kanbanItem, \"kanbanItem\");\n\n// src/rendering-util/rendering-elements/shapes.ts\nvar shapesDefs = [\n {\n semanticName: \"Process\",\n name: \"Rectangle\",\n shortName: \"rect\",\n description: \"Standard process shape\",\n aliases: [\"proc\", \"process\", \"rectangle\"],\n internalAliases: [\"squareRect\"],\n handler: squareRect2\n },\n {\n semanticName: \"Event\",\n name: \"Rounded Rectangle\",\n shortName: \"rounded\",\n description: \"Represents an event\",\n aliases: [\"event\"],\n internalAliases: [\"roundedRect\"],\n handler: roundedRect\n },\n {\n semanticName: \"Terminal Point\",\n name: \"Stadium\",\n shortName: \"stadium\",\n description: \"Terminal point\",\n aliases: [\"terminal\", \"pill\"],\n handler: stadium\n },\n {\n semanticName: \"Subprocess\",\n name: \"Framed Rectangle\",\n shortName: \"fr-rect\",\n description: \"Subprocess\",\n aliases: [\"subprocess\", \"subproc\", \"framed-rectangle\", \"subroutine\"],\n handler: subroutine\n },\n {\n semanticName: \"Database\",\n name: \"Cylinder\",\n shortName: \"cyl\",\n description: \"Database storage\",\n aliases: [\"db\", \"database\", \"cylinder\"],\n handler: cylinder\n },\n {\n semanticName: \"Start\",\n name: \"Circle\",\n shortName: \"circle\",\n description: \"Starting point\",\n aliases: [\"circ\"],\n handler: circle\n },\n {\n semanticName: \"Decision\",\n name: \"Diamond\",\n shortName: \"diam\",\n description: \"Decision-making step\",\n aliases: [\"decision\", \"diamond\", \"question\"],\n handler: question\n },\n {\n semanticName: \"Prepare Conditional\",\n name: \"Hexagon\",\n shortName: \"hex\",\n description: \"Preparation or condition step\",\n aliases: [\"hexagon\", \"prepare\"],\n handler: hexagon\n },\n {\n semanticName: \"Data Input/Output\",\n name: \"Lean Right\",\n shortName: \"lean-r\",\n description: \"Represents input or output\",\n aliases: [\"lean-right\", \"in-out\"],\n internalAliases: [\"lean_right\"],\n handler: lean_right\n },\n {\n semanticName: \"Data Input/Output\",\n name: \"Lean Left\",\n shortName: \"lean-l\",\n description: \"Represents output or input\",\n aliases: [\"lean-left\", \"out-in\"],\n internalAliases: [\"lean_left\"],\n handler: lean_left\n },\n {\n semanticName: \"Priority Action\",\n name: \"Trapezoid Base Bottom\",\n shortName: \"trap-b\",\n description: \"Priority action\",\n aliases: [\"priority\", \"trapezoid-bottom\", \"trapezoid\"],\n handler: trapezoid\n },\n {\n semanticName: \"Manual Operation\",\n name: \"Trapezoid Base Top\",\n shortName: \"trap-t\",\n description: \"Represents a manual task\",\n aliases: [\"manual\", \"trapezoid-top\", \"inv-trapezoid\"],\n internalAliases: [\"inv_trapezoid\"],\n handler: inv_trapezoid\n },\n {\n semanticName: \"Stop\",\n name: \"Double Circle\",\n shortName: \"dbl-circ\",\n description: \"Represents a stop point\",\n aliases: [\"double-circle\"],\n internalAliases: [\"doublecircle\"],\n handler: doublecircle\n },\n {\n semanticName: \"Text Block\",\n name: \"Text Block\",\n shortName: \"text\",\n description: \"Text block\",\n handler: text\n },\n {\n semanticName: \"Card\",\n name: \"Notched Rectangle\",\n shortName: \"notch-rect\",\n description: \"Represents a card\",\n aliases: [\"card\", \"notched-rectangle\"],\n handler: card\n },\n {\n semanticName: \"Lined/Shaded Process\",\n name: \"Lined Rectangle\",\n shortName: \"lin-rect\",\n description: \"Lined process shape\",\n aliases: [\"lined-rectangle\", \"lined-process\", \"lin-proc\", \"shaded-process\"],\n handler: shadedProcess\n },\n {\n semanticName: \"Start\",\n name: \"Small Circle\",\n shortName: \"sm-circ\",\n description: \"Small starting point\",\n aliases: [\"start\", \"small-circle\"],\n internalAliases: [\"stateStart\"],\n handler: stateStart\n },\n {\n semanticName: \"Stop\",\n name: \"Framed Circle\",\n shortName: \"fr-circ\",\n description: \"Stop point\",\n aliases: [\"stop\", \"framed-circle\"],\n internalAliases: [\"stateEnd\"],\n handler: stateEnd\n },\n {\n semanticName: \"Fork/Join\",\n name: \"Filled Rectangle\",\n shortName: \"fork\",\n description: \"Fork or join in process flow\",\n aliases: [\"join\"],\n internalAliases: [\"forkJoin\"],\n handler: forkJoin\n },\n {\n semanticName: \"Collate\",\n name: \"Hourglass\",\n shortName: \"hourglass\",\n description: \"Represents a collate operation\",\n aliases: [\"hourglass\", \"collate\"],\n handler: hourglass\n },\n {\n semanticName: \"Comment\",\n name: \"Curly Brace\",\n shortName: \"brace\",\n description: \"Adds a comment\",\n aliases: [\"comment\", \"brace-l\"],\n handler: curlyBraceLeft\n },\n {\n semanticName: \"Comment Right\",\n name: \"Curly Brace\",\n shortName: \"brace-r\",\n description: \"Adds a comment\",\n handler: curlyBraceRight\n },\n {\n semanticName: \"Comment with braces on both sides\",\n name: \"Curly Braces\",\n shortName: \"braces\",\n description: \"Adds a comment\",\n handler: curlyBraces\n },\n {\n semanticName: \"Com Link\",\n name: \"Lightning Bolt\",\n shortName: \"bolt\",\n description: \"Communication link\",\n aliases: [\"com-link\", \"lightning-bolt\"],\n handler: lightningBolt\n },\n {\n semanticName: \"Document\",\n name: \"Document\",\n shortName: \"doc\",\n description: \"Represents a document\",\n aliases: [\"doc\", \"document\"],\n handler: waveEdgedRectangle\n },\n {\n semanticName: \"Delay\",\n name: \"Half-Rounded Rectangle\",\n shortName: \"delay\",\n description: \"Represents a delay\",\n aliases: [\"half-rounded-rectangle\"],\n handler: halfRoundedRectangle\n },\n {\n semanticName: \"Direct Access Storage\",\n name: \"Horizontal Cylinder\",\n shortName: \"h-cyl\",\n description: \"Direct access storage\",\n aliases: [\"das\", \"horizontal-cylinder\"],\n handler: tiltedCylinder\n },\n {\n semanticName: \"Disk Storage\",\n name: \"Lined Cylinder\",\n shortName: \"lin-cyl\",\n description: \"Disk storage\",\n aliases: [\"disk\", \"lined-cylinder\"],\n handler: linedCylinder\n },\n {\n semanticName: \"Display\",\n name: \"Curved Trapezoid\",\n shortName: \"curv-trap\",\n description: \"Represents a display\",\n aliases: [\"curved-trapezoid\", \"display\"],\n handler: curvedTrapezoid\n },\n {\n semanticName: \"Divided Process\",\n name: \"Divided Rectangle\",\n shortName: \"div-rect\",\n description: \"Divided process shape\",\n aliases: [\"div-proc\", \"divided-rectangle\", \"divided-process\"],\n handler: dividedRectangle\n },\n {\n semanticName: \"Extract\",\n name: \"Triangle\",\n shortName: \"tri\",\n description: \"Extraction process\",\n aliases: [\"extract\", \"triangle\"],\n handler: triangle\n },\n {\n semanticName: \"Internal Storage\",\n name: \"Window Pane\",\n shortName: \"win-pane\",\n description: \"Internal storage\",\n aliases: [\"internal-storage\", \"window-pane\"],\n handler: windowPane\n },\n {\n semanticName: \"Junction\",\n name: \"Filled Circle\",\n shortName: \"f-circ\",\n description: \"Junction point\",\n aliases: [\"junction\", \"filled-circle\"],\n handler: filledCircle\n },\n {\n semanticName: \"Loop Limit\",\n name: \"Trapezoidal Pentagon\",\n shortName: \"notch-pent\",\n description: \"Loop limit step\",\n aliases: [\"loop-limit\", \"notched-pentagon\"],\n handler: trapezoidalPentagon\n },\n {\n semanticName: \"Manual File\",\n name: \"Flipped Triangle\",\n shortName: \"flip-tri\",\n description: \"Manual file operation\",\n aliases: [\"manual-file\", \"flipped-triangle\"],\n handler: flippedTriangle\n },\n {\n semanticName: \"Manual Input\",\n name: \"Sloped Rectangle\",\n shortName: \"sl-rect\",\n description: \"Manual input step\",\n aliases: [\"manual-input\", \"sloped-rectangle\"],\n handler: slopedRect\n },\n {\n semanticName: \"Multi-Document\",\n name: \"Stacked Document\",\n shortName: \"docs\",\n description: \"Multiple documents\",\n aliases: [\"documents\", \"st-doc\", \"stacked-document\"],\n handler: multiWaveEdgedRectangle\n },\n {\n semanticName: \"Multi-Process\",\n name: \"Stacked Rectangle\",\n shortName: \"st-rect\",\n description: \"Multiple processes\",\n aliases: [\"procs\", \"processes\", \"stacked-rectangle\"],\n handler: multiRect\n },\n {\n semanticName: \"Stored Data\",\n name: \"Bow Tie Rectangle\",\n shortName: \"bow-rect\",\n description: \"Stored data\",\n aliases: [\"stored-data\", \"bow-tie-rectangle\"],\n handler: bowTieRect\n },\n {\n semanticName: \"Summary\",\n name: \"Crossed Circle\",\n shortName: \"cross-circ\",\n description: \"Summary\",\n aliases: [\"summary\", \"crossed-circle\"],\n handler: crossedCircle\n },\n {\n semanticName: \"Tagged Document\",\n name: \"Tagged Document\",\n shortName: \"tag-doc\",\n description: \"Tagged document\",\n aliases: [\"tag-doc\", \"tagged-document\"],\n handler: taggedWaveEdgedRectangle\n },\n {\n semanticName: \"Tagged Process\",\n name: \"Tagged Rectangle\",\n shortName: \"tag-rect\",\n description: \"Tagged process\",\n aliases: [\"tagged-rectangle\", \"tag-proc\", \"tagged-process\"],\n handler: taggedRect\n },\n {\n semanticName: \"Paper Tape\",\n name: \"Flag\",\n shortName: \"flag\",\n description: \"Paper tape\",\n aliases: [\"paper-tape\"],\n handler: waveRectangle\n },\n {\n semanticName: \"Odd\",\n name: \"Odd\",\n shortName: \"odd\",\n description: \"Odd shape\",\n internalAliases: [\"rect_left_inv_arrow\"],\n handler: rect_left_inv_arrow\n },\n {\n semanticName: \"Lined Document\",\n name: \"Lined Document\",\n shortName: \"lin-doc\",\n description: \"Lined document\",\n aliases: [\"lined-document\"],\n handler: linedWaveEdgedRect\n }\n];\nvar generateShapeMap = /* @__PURE__ */ __name(() => {\n const undocumentedShapes = {\n // States\n state,\n choice,\n note,\n // Rectangles\n rectWithTitle,\n labelRect,\n // Icons\n iconSquare,\n iconCircle,\n icon,\n iconRounded,\n imageSquare,\n anchor,\n // Kanban diagram\n kanbanItem,\n // class diagram\n classBox,\n // er diagram\n erBox,\n // Requirement diagram\n requirementBox\n };\n const entries = [\n ...Object.entries(undocumentedShapes),\n ...shapesDefs.flatMap((shape) => {\n const aliases = [\n shape.shortName,\n ...\"aliases\" in shape ? shape.aliases : [],\n ...\"internalAliases\" in shape ? shape.internalAliases : []\n ];\n return aliases.map((alias) => [alias, shape.handler]);\n })\n ];\n return Object.fromEntries(entries);\n}, \"generateShapeMap\");\nvar shapes2 = generateShapeMap();\nfunction isValidShape(shape) {\n return shape in shapes2;\n}\n__name(isValidShape, \"isValidShape\");\n\n// src/rendering-util/rendering-elements/nodes.ts\nvar nodeElems = /* @__PURE__ */ new Map();\nasync function insertNode(elem, node, renderOptions) {\n let newEl;\n let el;\n if (node.shape === \"rect\") {\n if (node.rx && node.ry) {\n node.shape = \"roundedRect\";\n } else {\n node.shape = \"squareRect\";\n }\n }\n const shapeHandler = node.shape ? shapes2[node.shape] : void 0;\n if (!shapeHandler) {\n throw new Error(`No such shape: ${node.shape}. Please check your syntax.`);\n }\n if (node.link) {\n let target;\n if (renderOptions.config.securityLevel === \"sandbox\") {\n target = \"_top\";\n } else if (node.linkTarget) {\n target = node.linkTarget || \"_blank\";\n }\n newEl = elem.insert(\"svg:a\").attr(\"xlink:href\", node.link).attr(\"target\", target ?? null);\n el = await shapeHandler(newEl, node, renderOptions);\n } else {\n el = await shapeHandler(elem, node, renderOptions);\n newEl = el;\n }\n if (node.tooltip) {\n el.attr(\"title\", node.tooltip);\n }\n nodeElems.set(node.id, newEl);\n if (node.haveCallback) {\n newEl.attr(\"class\", newEl.attr(\"class\") + \" clickable\");\n }\n return newEl;\n}\n__name(insertNode, \"insertNode\");\nvar setNodeElem = /* @__PURE__ */ __name((elem, node) => {\n nodeElems.set(node.id, elem);\n}, \"setNodeElem\");\nvar clear2 = /* @__PURE__ */ __name(() => {\n nodeElems.clear();\n}, \"clear\");\nvar positionNode = /* @__PURE__ */ __name((node) => {\n const el = nodeElems.get(node.id);\n log.trace(\n \"Transforming node\",\n node.diff,\n node,\n \"translate(\" + (node.x - node.width / 2 - 5) + \", \" + node.width / 2 + \")\"\n );\n const padding = 8;\n const diff = node.diff || 0;\n if (node.clusterNode) {\n el.attr(\n \"transform\",\n \"translate(\" + (node.x + diff - node.width / 2) + \", \" + (node.y - node.height / 2 - padding) + \")\"\n );\n } else {\n el.attr(\"transform\", \"translate(\" + node.x + \", \" + node.y + \")\");\n }\n return diff;\n}, \"positionNode\");\n\nexport {\n labelHelper,\n updateNodeBounds,\n createLabel_default,\n isValidShape,\n insertCluster,\n clear,\n insertNode,\n setNodeElem,\n clear2,\n positionNode\n};\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","// package.json\nvar package_default = {\n name: \"mermaid\",\n version: \"11.9.0\",\n description: \"Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.\",\n type: \"module\",\n module: \"./dist/mermaid.core.mjs\",\n types: \"./dist/mermaid.d.ts\",\n exports: {\n \".\": {\n types: \"./dist/mermaid.d.ts\",\n import: \"./dist/mermaid.core.mjs\",\n default: \"./dist/mermaid.core.mjs\"\n },\n \"./*\": \"./*\"\n },\n keywords: [\n \"diagram\",\n \"markdown\",\n \"flowchart\",\n \"sequence diagram\",\n \"gantt\",\n \"class diagram\",\n \"git graph\",\n \"mindmap\",\n \"packet diagram\",\n \"c4 diagram\",\n \"er diagram\",\n \"pie chart\",\n \"pie diagram\",\n \"quadrant chart\",\n \"requirement diagram\",\n \"graph\"\n ],\n scripts: {\n clean: \"rimraf dist\",\n dev: \"pnpm -w dev\",\n \"docs:code\": \"typedoc src/defaultConfig.ts src/config.ts src/mermaid.ts && prettier --write ./src/docs/config/setup\",\n \"docs:build\": \"rimraf ../../docs && pnpm docs:code && pnpm docs:spellcheck && tsx scripts/docs.cli.mts\",\n \"docs:verify\": \"pnpm docs:code && pnpm docs:spellcheck && tsx scripts/docs.cli.mts --verify\",\n \"docs:pre:vitepress\": \"pnpm --filter ./src/docs prefetch && rimraf src/vitepress && pnpm docs:code && tsx scripts/docs.cli.mts --vitepress && pnpm --filter ./src/vitepress install --no-frozen-lockfile --ignore-scripts\",\n \"docs:build:vitepress\": \"pnpm docs:pre:vitepress && (cd src/vitepress && pnpm run build) && cpy --flat src/docs/landing/ ./src/vitepress/.vitepress/dist/landing\",\n \"docs:dev\": 'pnpm docs:pre:vitepress && concurrently \"pnpm --filter ./src/vitepress dev\" \"tsx scripts/docs.cli.mts --watch --vitepress\"',\n \"docs:dev:docker\": 'pnpm docs:pre:vitepress && concurrently \"pnpm --filter ./src/vitepress dev:docker\" \"tsx scripts/docs.cli.mts --watch --vitepress\"',\n \"docs:serve\": \"pnpm docs:build:vitepress && vitepress serve src/vitepress\",\n \"docs:spellcheck\": 'cspell \"src/docs/**/*.md\"',\n \"docs:release-version\": \"tsx scripts/update-release-version.mts\",\n \"docs:verify-version\": \"tsx scripts/update-release-version.mts --verify\",\n \"types:build-config\": \"tsx scripts/create-types-from-json-schema.mts\",\n \"types:verify-config\": \"tsx scripts/create-types-from-json-schema.mts --verify\",\n checkCircle: \"npx madge --circular ./src\",\n prepublishOnly: \"pnpm docs:verify-version\"\n },\n repository: {\n type: \"git\",\n url: \"https://github.com/mermaid-js/mermaid\"\n },\n author: \"Knut Sveidqvist\",\n license: \"MIT\",\n standard: {\n ignore: [\n \"**/parser/*.js\",\n \"dist/**/*.js\",\n \"cypress/**/*.js\"\n ],\n globals: [\n \"page\"\n ]\n },\n dependencies: {\n \"@braintree/sanitize-url\": \"^7.0.4\",\n \"@iconify/utils\": \"^2.1.33\",\n \"@mermaid-js/parser\": \"workspace:^\",\n \"@types/d3\": \"^7.4.3\",\n cytoscape: \"^3.29.3\",\n \"cytoscape-cose-bilkent\": \"^4.1.0\",\n \"cytoscape-fcose\": \"^2.2.0\",\n d3: \"^7.9.0\",\n \"d3-sankey\": \"^0.12.3\",\n \"dagre-d3-es\": \"7.0.11\",\n dayjs: \"^1.11.13\",\n dompurify: \"^3.2.5\",\n katex: \"^0.16.22\",\n khroma: \"^2.1.0\",\n \"lodash-es\": \"^4.17.21\",\n marked: \"^16.0.0\",\n roughjs: \"^4.6.6\",\n stylis: \"^4.3.6\",\n \"ts-dedent\": \"^2.2.0\",\n uuid: \"^11.1.0\"\n },\n devDependencies: {\n \"@adobe/jsonschema2md\": \"^8.0.2\",\n \"@iconify/types\": \"^2.0.0\",\n \"@types/cytoscape\": \"^3.21.9\",\n \"@types/cytoscape-fcose\": \"^2.2.4\",\n \"@types/d3-sankey\": \"^0.12.4\",\n \"@types/d3-scale\": \"^4.0.9\",\n \"@types/d3-scale-chromatic\": \"^3.1.0\",\n \"@types/d3-selection\": \"^3.0.11\",\n \"@types/d3-shape\": \"^3.1.7\",\n \"@types/jsdom\": \"^21.1.7\",\n \"@types/katex\": \"^0.16.7\",\n \"@types/lodash-es\": \"^4.17.12\",\n \"@types/micromatch\": \"^4.0.9\",\n \"@types/stylis\": \"^4.2.7\",\n \"@types/uuid\": \"^10.0.0\",\n ajv: \"^8.17.1\",\n canvas: \"^3.1.0\",\n chokidar: \"3.6.0\",\n concurrently: \"^9.1.2\",\n \"csstree-validator\": \"^4.0.1\",\n globby: \"^14.0.2\",\n jison: \"^0.4.18\",\n \"js-base64\": \"^3.7.7\",\n jsdom: \"^26.1.0\",\n \"json-schema-to-typescript\": \"^15.0.4\",\n micromatch: \"^4.0.8\",\n \"path-browserify\": \"^1.0.1\",\n prettier: \"^3.5.2\",\n remark: \"^15.0.1\",\n \"remark-frontmatter\": \"^5.0.0\",\n \"remark-gfm\": \"^4.0.1\",\n rimraf: \"^6.0.1\",\n \"start-server-and-test\": \"^2.0.10\",\n \"type-fest\": \"^4.35.0\",\n typedoc: \"^0.27.8\",\n \"typedoc-plugin-markdown\": \"^4.4.2\",\n typescript: \"~5.7.3\",\n \"unist-util-flatmap\": \"^1.0.0\",\n \"unist-util-visit\": \"^5.0.0\",\n vitepress: \"^1.0.2\",\n \"vitepress-plugin-search\": \"1.0.4-alpha.22\"\n },\n files: [\n \"dist/\",\n \"README.md\"\n ],\n publishConfig: {\n access: \"public\"\n }\n};\n\nexport {\n package_default\n};\n","import {\n __name,\n getConfig2 as getConfig\n} from \"./chunk-3XYRH5AP.mjs\";\n\n// src/rendering-util/selectSvgElement.ts\nimport { select } from \"d3\";\nvar selectSvgElement = /* @__PURE__ */ __name((id) => {\n const { securityLevel } = getConfig();\n let root = select(\"body\");\n if (securityLevel === \"sandbox\") {\n const sandboxElement = select(`#i${id}`);\n const doc = sandboxElement.node()?.contentDocument ?? document;\n root = select(doc.body);\n }\n const svg = root.select(`#${id}`);\n return svg;\n}, \"selectSvgElement\");\n\nexport {\n selectSvgElement\n};\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import {\n __name,\n assignWithDepth_default,\n common_default,\n detectType,\n directiveRegex,\n log,\n sanitizeDirective\n} from \"./chunk-3XYRH5AP.mjs\";\n\n// src/utils.ts\nimport { sanitizeUrl } from \"@braintree/sanitize-url\";\nimport {\n curveBasis,\n curveBasisClosed,\n curveBasisOpen,\n curveBumpX,\n curveBumpY,\n curveBundle,\n curveCardinalClosed,\n curveCardinalOpen,\n curveCardinal,\n curveCatmullRomClosed,\n curveCatmullRomOpen,\n curveCatmullRom,\n curveLinear,\n curveLinearClosed,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore,\n select\n} from \"d3\";\nimport memoize from \"lodash-es/memoize.js\";\nimport merge from \"lodash-es/merge.js\";\nvar ZERO_WIDTH_SPACE = \"\\u200B\";\nvar d3CurveTypes = {\n curveBasis,\n curveBasisClosed,\n curveBasisOpen,\n curveBumpX,\n curveBumpY,\n curveBundle,\n curveCardinalClosed,\n curveCardinalOpen,\n curveCardinal,\n curveCatmullRomClosed,\n curveCatmullRomOpen,\n curveCatmullRom,\n curveLinear,\n curveLinearClosed,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore\n};\nvar directiveWithoutOpen = /\\s*(?:(\\w+)(?=:):|(\\w+))\\s*(?:(\\w+)|((?:(?!}%{2}).|\\r?\\n)*))?\\s*(?:}%{2})?/gi;\nvar detectInit = /* @__PURE__ */ __name(function(text, config) {\n const inits = detectDirective(text, /(?:init\\b)|(?:initialize\\b)/);\n let results = {};\n if (Array.isArray(inits)) {\n const args = inits.map((init) => init.args);\n sanitizeDirective(args);\n results = assignWithDepth_default(results, [...args]);\n } else {\n results = inits.args;\n }\n if (!results) {\n return;\n }\n let type = detectType(text, config);\n const prop = \"config\";\n if (results[prop] !== void 0) {\n if (type === \"flowchart-v2\") {\n type = \"flowchart\";\n }\n results[type] = results[prop];\n delete results[prop];\n }\n return results;\n}, \"detectInit\");\nvar detectDirective = /* @__PURE__ */ __name(function(text, type = null) {\n try {\n const commentWithoutDirectives = new RegExp(\n `[%]{2}(?![{]${directiveWithoutOpen.source})(?=[}][%]{2}).*\n`,\n \"ig\"\n );\n text = text.trim().replace(commentWithoutDirectives, \"\").replace(/'/gm, '\"');\n log.debug(\n `Detecting diagram directive${type !== null ? \" type:\" + type : \"\"} based on the text:${text}`\n );\n let match;\n const result = [];\n while ((match = directiveRegex.exec(text)) !== null) {\n if (match.index === directiveRegex.lastIndex) {\n directiveRegex.lastIndex++;\n }\n if (match && !type || type && match[1]?.match(type) || type && match[2]?.match(type)) {\n const type2 = match[1] ? match[1] : match[2];\n const args = match[3] ? match[3].trim() : match[4] ? JSON.parse(match[4].trim()) : null;\n result.push({ type: type2, args });\n }\n }\n if (result.length === 0) {\n return { type: text, args: null };\n }\n return result.length === 1 ? result[0] : result;\n } catch (error) {\n log.error(\n `ERROR: ${error.message} - Unable to parse directive type: '${type}' based on the text: '${text}'`\n );\n return { type: void 0, args: null };\n }\n}, \"detectDirective\");\nvar removeDirectives = /* @__PURE__ */ __name(function(text) {\n return text.replace(directiveRegex, \"\");\n}, \"removeDirectives\");\nvar isSubstringInArray = /* @__PURE__ */ __name(function(str, arr) {\n for (const [i, element] of arr.entries()) {\n if (element.match(str)) {\n return i;\n }\n }\n return -1;\n}, \"isSubstringInArray\");\nfunction interpolateToCurve(interpolate, defaultCurve) {\n if (!interpolate) {\n return defaultCurve;\n }\n const curveName = `curve${interpolate.charAt(0).toUpperCase() + interpolate.slice(1)}`;\n return d3CurveTypes[curveName] ?? defaultCurve;\n}\n__name(interpolateToCurve, \"interpolateToCurve\");\nfunction formatUrl(linkStr, config) {\n const url = linkStr.trim();\n if (!url) {\n return void 0;\n }\n if (config.securityLevel !== \"loose\") {\n return sanitizeUrl(url);\n }\n return url;\n}\n__name(formatUrl, \"formatUrl\");\nvar runFunc = /* @__PURE__ */ __name((functionName, ...params) => {\n const arrPaths = functionName.split(\".\");\n const len = arrPaths.length - 1;\n const fnName = arrPaths[len];\n let obj = window;\n for (let i = 0; i < len; i++) {\n obj = obj[arrPaths[i]];\n if (!obj) {\n log.error(`Function name: ${functionName} not found in window`);\n return;\n }\n }\n obj[fnName](...params);\n}, \"runFunc\");\nfunction distance(p1, p2) {\n if (!p1 || !p2) {\n return 0;\n }\n return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));\n}\n__name(distance, \"distance\");\nfunction traverseEdge(points) {\n let prevPoint;\n let totalDistance = 0;\n points.forEach((point) => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n const remainingDistance = totalDistance / 2;\n return calculatePoint(points, remainingDistance);\n}\n__name(traverseEdge, \"traverseEdge\");\nfunction calcLabelPosition(points) {\n if (points.length === 1) {\n return points[0];\n }\n return traverseEdge(points);\n}\n__name(calcLabelPosition, \"calcLabelPosition\");\nvar roundNumber = /* @__PURE__ */ __name((num, precision = 2) => {\n const factor = Math.pow(10, precision);\n return Math.round(num * factor) / factor;\n}, \"roundNumber\");\nvar calculatePoint = /* @__PURE__ */ __name((points, distanceToTraverse) => {\n let prevPoint = void 0;\n let remainingDistance = distanceToTraverse;\n for (const point of points) {\n if (prevPoint) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance === 0) {\n return prevPoint;\n }\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) {\n return prevPoint;\n }\n if (distanceRatio >= 1) {\n return { x: point.x, y: point.y };\n }\n if (distanceRatio > 0 && distanceRatio < 1) {\n return {\n x: roundNumber((1 - distanceRatio) * prevPoint.x + distanceRatio * point.x, 5),\n y: roundNumber((1 - distanceRatio) * prevPoint.y + distanceRatio * point.y, 5)\n };\n }\n }\n }\n prevPoint = point;\n }\n throw new Error(\"Could not find a suitable point for the given distance\");\n}, \"calculatePoint\");\nvar calcCardinalityPosition = /* @__PURE__ */ __name((isRelationTypePresent, points, initialPosition) => {\n log.info(`our points ${JSON.stringify(points)}`);\n if (points[0] !== initialPosition) {\n points = points.reverse();\n }\n const distanceToCardinalityPoint = 25;\n const center = calculatePoint(points, distanceToCardinalityPoint);\n const d = isRelationTypePresent ? 10 : 5;\n const angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);\n const cardinalityPosition = { x: 0, y: 0 };\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;\n return cardinalityPosition;\n}, \"calcCardinalityPosition\");\nfunction calcTerminalLabelPosition(terminalMarkerSize, position, _points) {\n const points = structuredClone(_points);\n log.info(\"our points\", points);\n if (position !== \"start_left\" && position !== \"start_right\") {\n points.reverse();\n }\n const distanceToCardinalityPoint = 25 + terminalMarkerSize;\n const center = calculatePoint(points, distanceToCardinalityPoint);\n const d = 10 + terminalMarkerSize * 0.5;\n const angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);\n const cardinalityPosition = { x: 0, y: 0 };\n if (position === \"start_left\") {\n cardinalityPosition.x = Math.sin(angle + Math.PI) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle + Math.PI) * d + (points[0].y + center.y) / 2;\n } else if (position === \"end_right\") {\n cardinalityPosition.x = Math.sin(angle - Math.PI) * d + (points[0].x + center.x) / 2 - 5;\n cardinalityPosition.y = -Math.cos(angle - Math.PI) * d + (points[0].y + center.y) / 2 - 5;\n } else if (position === \"end_left\") {\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2 - 5;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2 - 5;\n } else {\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;\n }\n return cardinalityPosition;\n}\n__name(calcTerminalLabelPosition, \"calcTerminalLabelPosition\");\nfunction getStylesFromArray(arr) {\n let style = \"\";\n let labelStyle = \"\";\n for (const element of arr) {\n if (element !== void 0) {\n if (element.startsWith(\"color:\") || element.startsWith(\"text-align:\")) {\n labelStyle = labelStyle + element + \";\";\n } else {\n style = style + element + \";\";\n }\n }\n }\n return { style, labelStyle };\n}\n__name(getStylesFromArray, \"getStylesFromArray\");\nvar cnt = 0;\nvar generateId = /* @__PURE__ */ __name(() => {\n cnt++;\n return \"id-\" + Math.random().toString(36).substr(2, 12) + \"-\" + cnt;\n}, \"generateId\");\nfunction makeRandomHex(length) {\n let result = \"\";\n const characters = \"0123456789abcdef\";\n const charactersLength = characters.length;\n for (let i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n}\n__name(makeRandomHex, \"makeRandomHex\");\nvar random = /* @__PURE__ */ __name((options) => {\n return makeRandomHex(options.length);\n}, \"random\");\nvar getTextObj = /* @__PURE__ */ __name(function() {\n return {\n x: 0,\n y: 0,\n fill: void 0,\n anchor: \"start\",\n style: \"#666\",\n width: 100,\n height: 100,\n textMargin: 0,\n rx: 0,\n ry: 0,\n valign: void 0,\n text: \"\"\n };\n}, \"getTextObj\");\nvar drawSimpleText = /* @__PURE__ */ __name(function(elem, textData) {\n const nText = textData.text.replace(common_default.lineBreakRegex, \" \");\n const [, _fontSizePx] = parseFontSize(textData.fontSize);\n const textElem = elem.append(\"text\");\n textElem.attr(\"x\", textData.x);\n textElem.attr(\"y\", textData.y);\n textElem.style(\"text-anchor\", textData.anchor);\n textElem.style(\"font-family\", textData.fontFamily);\n textElem.style(\"font-size\", _fontSizePx);\n textElem.style(\"font-weight\", textData.fontWeight);\n textElem.attr(\"fill\", textData.fill);\n if (textData.class !== void 0) {\n textElem.attr(\"class\", textData.class);\n }\n const span = textElem.append(\"tspan\");\n span.attr(\"x\", textData.x + textData.textMargin * 2);\n span.attr(\"fill\", textData.fill);\n span.text(nText);\n return textElem;\n}, \"drawSimpleText\");\nvar wrapLabel = memoize(\n (label, maxWidth, config) => {\n if (!label) {\n return label;\n }\n config = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: \"Arial\", joinWith: \"<br/>\" },\n config\n );\n if (common_default.lineBreakRegex.test(label)) {\n return label;\n }\n const words = label.split(\" \").filter(Boolean);\n const completedLines = [];\n let nextLine = \"\";\n words.forEach((word, index) => {\n const wordLength = calculateTextWidth(`${word} `, config);\n const nextLineLength = calculateTextWidth(nextLine, config);\n if (wordLength > maxWidth) {\n const { hyphenatedStrings, remainingWord } = breakString(word, maxWidth, \"-\", config);\n completedLines.push(nextLine, ...hyphenatedStrings);\n nextLine = remainingWord;\n } else if (nextLineLength + wordLength >= maxWidth) {\n completedLines.push(nextLine);\n nextLine = word;\n } else {\n nextLine = [nextLine, word].filter(Boolean).join(\" \");\n }\n const currentWord = index + 1;\n const isLastWord = currentWord === words.length;\n if (isLastWord) {\n completedLines.push(nextLine);\n }\n });\n return completedLines.filter((line) => line !== \"\").join(config.joinWith);\n },\n (label, maxWidth, config) => `${label}${maxWidth}${config.fontSize}${config.fontWeight}${config.fontFamily}${config.joinWith}`\n);\nvar breakString = memoize(\n (word, maxWidth, hyphenCharacter = \"-\", config) => {\n config = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: \"Arial\", margin: 0 },\n config\n );\n const characters = [...word];\n const lines = [];\n let currentLine = \"\";\n characters.forEach((character, index) => {\n const nextLine = `${currentLine}${character}`;\n const lineWidth = calculateTextWidth(nextLine, config);\n if (lineWidth >= maxWidth) {\n const currentCharacter = index + 1;\n const isLastLine = characters.length === currentCharacter;\n const hyphenatedNextLine = `${nextLine}${hyphenCharacter}`;\n lines.push(isLastLine ? nextLine : hyphenatedNextLine);\n currentLine = \"\";\n } else {\n currentLine = nextLine;\n }\n });\n return { hyphenatedStrings: lines, remainingWord: currentLine };\n },\n (word, maxWidth, hyphenCharacter = \"-\", config) => `${word}${maxWidth}${hyphenCharacter}${config.fontSize}${config.fontWeight}${config.fontFamily}`\n);\nfunction calculateTextHeight(text, config) {\n return calculateTextDimensions(text, config).height;\n}\n__name(calculateTextHeight, \"calculateTextHeight\");\nfunction calculateTextWidth(text, config) {\n return calculateTextDimensions(text, config).width;\n}\n__name(calculateTextWidth, \"calculateTextWidth\");\nvar calculateTextDimensions = memoize(\n (text, config) => {\n const { fontSize = 12, fontFamily = \"Arial\", fontWeight = 400 } = config;\n if (!text) {\n return { width: 0, height: 0 };\n }\n const [, _fontSizePx] = parseFontSize(fontSize);\n const fontFamilies = [\"sans-serif\", fontFamily];\n const lines = text.split(common_default.lineBreakRegex);\n const dims = [];\n const body = select(\"body\");\n if (!body.remove) {\n return { width: 0, height: 0, lineHeight: 0 };\n }\n const g = body.append(\"svg\");\n for (const fontFamily2 of fontFamilies) {\n let cHeight = 0;\n const dim = { width: 0, height: 0, lineHeight: 0 };\n for (const line of lines) {\n const textObj = getTextObj();\n textObj.text = line || ZERO_WIDTH_SPACE;\n const textElem = drawSimpleText(g, textObj).style(\"font-size\", _fontSizePx).style(\"font-weight\", fontWeight).style(\"font-family\", fontFamily2);\n const bBox = (textElem._groups || textElem)[0][0].getBBox();\n if (bBox.width === 0 && bBox.height === 0) {\n throw new Error(\"svg element not in render tree\");\n }\n dim.width = Math.round(Math.max(dim.width, bBox.width));\n cHeight = Math.round(bBox.height);\n dim.height += cHeight;\n dim.lineHeight = Math.round(Math.max(dim.lineHeight, cHeight));\n }\n dims.push(dim);\n }\n g.remove();\n const index = isNaN(dims[1].height) || isNaN(dims[1].width) || isNaN(dims[1].lineHeight) || dims[0].height > dims[1].height && dims[0].width > dims[1].width && dims[0].lineHeight > dims[1].lineHeight ? 0 : 1;\n return dims[index];\n },\n (text, config) => `${text}${config.fontSize}${config.fontWeight}${config.fontFamily}`\n);\nvar InitIDGenerator = class {\n constructor(deterministic = false, seed) {\n this.count = 0;\n this.count = seed ? seed.length : 0;\n this.next = deterministic ? () => this.count++ : () => Date.now();\n }\n static {\n __name(this, \"InitIDGenerator\");\n }\n};\nvar decoder;\nvar entityDecode = /* @__PURE__ */ __name(function(html) {\n decoder = decoder || document.createElement(\"div\");\n html = escape(html).replace(/%26/g, \"&\").replace(/%23/g, \"#\").replace(/%3B/g, \";\");\n decoder.innerHTML = html;\n return unescape(decoder.textContent);\n}, \"entityDecode\");\nfunction isDetailedError(error) {\n return \"str\" in error;\n}\n__name(isDetailedError, \"isDetailedError\");\nvar insertTitle = /* @__PURE__ */ __name((parent, cssClass, titleTopMargin, title) => {\n if (!title) {\n return;\n }\n const bounds = parent.node()?.getBBox();\n if (!bounds) {\n return;\n }\n parent.append(\"text\").text(title).attr(\"text-anchor\", \"middle\").attr(\"x\", bounds.x + bounds.width / 2).attr(\"y\", -titleTopMargin).attr(\"class\", cssClass);\n}, \"insertTitle\");\nvar parseFontSize = /* @__PURE__ */ __name((fontSize) => {\n if (typeof fontSize === \"number\") {\n return [fontSize, fontSize + \"px\"];\n }\n const fontSizeNumber = parseInt(fontSize ?? \"\", 10);\n if (Number.isNaN(fontSizeNumber)) {\n return [void 0, void 0];\n } else if (fontSize === String(fontSizeNumber)) {\n return [fontSizeNumber, fontSize + \"px\"];\n } else {\n return [fontSizeNumber, fontSize];\n }\n}, \"parseFontSize\");\nfunction cleanAndMerge(defaultData, data) {\n return merge({}, defaultData, data);\n}\n__name(cleanAndMerge, \"cleanAndMerge\");\nvar utils_default = {\n assignWithDepth: assignWithDepth_default,\n wrapLabel,\n calculateTextHeight,\n calculateTextWidth,\n calculateTextDimensions,\n cleanAndMerge,\n detectInit,\n detectDirective,\n isSubstringInArray,\n interpolateToCurve,\n calcLabelPosition,\n calcCardinalityPosition,\n calcTerminalLabelPosition,\n formatUrl,\n getStylesFromArray,\n generateId,\n random,\n runFunc,\n entityDecode,\n insertTitle,\n parseFontSize,\n InitIDGenerator\n};\nvar encodeEntities = /* @__PURE__ */ __name(function(text) {\n let txt = text;\n txt = txt.replace(/style.*:\\S*#.*;/g, function(s) {\n return s.substring(0, s.length - 1);\n });\n txt = txt.replace(/classDef.*:\\S*#.*;/g, function(s) {\n return s.substring(0, s.length - 1);\n });\n txt = txt.replace(/#\\w+;/g, function(s) {\n const innerTxt = s.substring(1, s.length - 1);\n const isInt = /^\\+?\\d+$/.test(innerTxt);\n if (isInt) {\n return \"\\uFB02\\xB0\\xB0\" + innerTxt + \"\\xB6\\xDF\";\n } else {\n return \"\\uFB02\\xB0\" + innerTxt + \"\\xB6\\xDF\";\n }\n });\n return txt;\n}, \"encodeEntities\");\nvar decodeEntities = /* @__PURE__ */ __name(function(text) {\n return text.replace(/fl°°/g, \"&#\").replace(/fl°/g, \"&\").replace(/¶ß/g, \";\");\n}, \"decodeEntities\");\nvar getEdgeId = /* @__PURE__ */ __name((from, to, {\n counter = 0,\n prefix,\n suffix\n}, id) => {\n if (id) {\n return id;\n }\n return `${prefix ? `${prefix}_` : \"\"}${from}_${to}_${counter}${suffix ? `_${suffix}` : \"\"}`;\n}, \"getEdgeId\");\nfunction handleUndefinedAttr(attrValue) {\n return attrValue ?? null;\n}\n__name(handleUndefinedAttr, \"handleUndefinedAttr\");\n\nexport {\n ZERO_WIDTH_SPACE,\n removeDirectives,\n interpolateToCurve,\n getStylesFromArray,\n generateId,\n random,\n wrapLabel,\n calculateTextHeight,\n calculateTextWidth,\n isDetailedError,\n parseFontSize,\n cleanAndMerge,\n utils_default,\n encodeEntities,\n decodeEntities,\n getEdgeId,\n handleUndefinedAttr\n};\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","/* IMPORT */\n/* MAIN */\nconst Channel = {\n /* CLAMP */\n min: {\n r: 0,\n g: 0,\n b: 0,\n s: 0,\n l: 0,\n a: 0\n },\n max: {\n r: 255,\n g: 255,\n b: 255,\n h: 360,\n s: 100,\n l: 100,\n a: 1\n },\n clamp: {\n r: (r) => r >= 255 ? 255 : (r < 0 ? 0 : r),\n g: (g) => g >= 255 ? 255 : (g < 0 ? 0 : g),\n b: (b) => b >= 255 ? 255 : (b < 0 ? 0 : b),\n h: (h) => h % 360,\n s: (s) => s >= 100 ? 100 : (s < 0 ? 0 : s),\n l: (l) => l >= 100 ? 100 : (l < 0 ? 0 : l),\n a: (a) => a >= 1 ? 1 : (a < 0 ? 0 : a)\n },\n /* CONVERSION */\n //SOURCE: https://planetcalc.com/7779\n toLinear: (c) => {\n const n = c / 255;\n return c > .03928 ? Math.pow(((n + .055) / 1.055), 2.4) : n / 12.92;\n },\n //SOURCE: https://gist.github.com/mjackson/5311256\n hue2rgb: (p, q, t) => {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n },\n hsl2rgb: ({ h, s, l }, channel) => {\n if (!s)\n return l * 2.55; // Achromatic\n h /= 360;\n s /= 100;\n l /= 100;\n const q = (l < .5) ? l * (1 + s) : (l + s) - (l * s);\n const p = 2 * l - q;\n switch (channel) {\n case 'r': return Channel.hue2rgb(p, q, h + 1 / 3) * 255;\n case 'g': return Channel.hue2rgb(p, q, h) * 255;\n case 'b': return Channel.hue2rgb(p, q, h - 1 / 3) * 255;\n }\n },\n rgb2hsl: ({ r, g, b }, channel) => {\n r /= 255;\n g /= 255;\n b /= 255;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n if (channel === 'l')\n return l * 100;\n if (max === min)\n return 0; // Achromatic\n const d = max - min;\n const s = (l > .5) ? d / (2 - max - min) : d / (max + min);\n if (channel === 's')\n return s * 100;\n switch (max) {\n case r: return ((g - b) / d + (g < b ? 6 : 0)) * 60;\n case g: return ((b - r) / d + 2) * 60;\n case b: return ((r - g) / d + 4) * 60;\n default: return -1; //TSC: TypeScript is stupid and complains if there isn't this useless default statement\n }\n }\n};\n/* EXPORT */\nexport default Channel;\n","/* IMPORT */\nimport channel from './channel.js';\nimport lang from './lang.js';\nimport unit from './unit.js';\n/* MAIN */\nconst Utils = {\n channel,\n lang,\n unit\n};\n/* EXPORT */\nexport default Utils;\n","/* MAIN */\nconst Lang = {\n /* API */\n clamp: (number, lower, upper) => {\n if (lower > upper)\n return Math.min(lower, Math.max(upper, number));\n return Math.min(upper, Math.max(lower, number));\n },\n round: (number) => {\n return Math.round(number * 10000000000) / 10000000000;\n }\n};\n/* EXPORT */\nexport default Lang;\n","/* MAIN */\nconst Unit = {\n /* API */\n dec2hex: (dec) => {\n const hex = Math.round(dec).toString(16);\n return hex.length > 1 ? hex : `0${hex}`;\n }\n};\n/* EXPORT */\nexport default Unit;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\nconst adjustChannel = (color, channel, amount) => {\n const channels = Color.parse(color);\n const amountCurrent = channels[channel];\n const amountNext = _.channel.clamp[channel](amountCurrent + amount);\n if (amountCurrent !== amountNext)\n channels[channel] = amountNext;\n return Color.stringify(channels);\n};\n/* EXPORT */\nexport default adjustChannel;\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","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.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 * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\nconst change = (color, channels) => {\n const ch = Color.parse(color);\n for (const c in channels) {\n ch[c] = _.channel.clamp[c](channels[c]);\n }\n return Color.stringify(ch);\n};\n/* EXPORT */\nexport default change;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","/**\n * Checks if `value` is classified as an `Array` object.\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 an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import {\n __name\n} from \"./chunk-3XYRH5AP.mjs\";\n\n// src/utils/lineWithOffset.ts\nvar markerOffsets = {\n aggregation: 18,\n extension: 18,\n composition: 18,\n dependency: 6,\n lollipop: 13.5,\n arrow_point: 4\n};\nfunction calculateDeltaAndAngle(point1, point2) {\n if (point1 === void 0 || point2 === void 0) {\n return { angle: 0, deltaX: 0, deltaY: 0 };\n }\n point1 = pointTransformer(point1);\n point2 = pointTransformer(point2);\n const [x1, y1] = [point1.x, point1.y];\n const [x2, y2] = [point2.x, point2.y];\n const deltaX = x2 - x1;\n const deltaY = y2 - y1;\n return { angle: Math.atan(deltaY / deltaX), deltaX, deltaY };\n}\n__name(calculateDeltaAndAngle, \"calculateDeltaAndAngle\");\nvar pointTransformer = /* @__PURE__ */ __name((data) => {\n if (Array.isArray(data)) {\n return { x: data[0], y: data[1] };\n }\n return data;\n}, \"pointTransformer\");\nvar getLineFunctionsWithOffset = /* @__PURE__ */ __name((edge) => {\n return {\n x: /* @__PURE__ */ __name(function(d, i, data) {\n let offset = 0;\n const DIRECTION = pointTransformer(data[0]).x < pointTransformer(data[data.length - 1]).x ? \"left\" : \"right\";\n if (i === 0 && Object.hasOwn(markerOffsets, edge.arrowTypeStart)) {\n const { angle, deltaX } = calculateDeltaAndAngle(data[0], data[1]);\n offset = markerOffsets[edge.arrowTypeStart] * Math.cos(angle) * (deltaX >= 0 ? 1 : -1);\n } else if (i === data.length - 1 && Object.hasOwn(markerOffsets, edge.arrowTypeEnd)) {\n const { angle, deltaX } = calculateDeltaAndAngle(\n data[data.length - 1],\n data[data.length - 2]\n );\n offset = markerOffsets[edge.arrowTypeEnd] * Math.cos(angle) * (deltaX >= 0 ? 1 : -1);\n }\n const differenceToEnd = Math.abs(\n pointTransformer(d).x - pointTransformer(data[data.length - 1]).x\n );\n const differenceInYEnd = Math.abs(\n pointTransformer(d).y - pointTransformer(data[data.length - 1]).y\n );\n const differenceToStart = Math.abs(pointTransformer(d).x - pointTransformer(data[0]).x);\n const differenceInYStart = Math.abs(pointTransformer(d).y - pointTransformer(data[0]).y);\n const startMarkerHeight = markerOffsets[edge.arrowTypeStart];\n const endMarkerHeight = markerOffsets[edge.arrowTypeEnd];\n const extraRoom = 1;\n if (differenceToEnd < endMarkerHeight && differenceToEnd > 0 && differenceInYEnd < endMarkerHeight) {\n let adjustment = endMarkerHeight + extraRoom - differenceToEnd;\n adjustment *= DIRECTION === \"right\" ? -1 : 1;\n offset -= adjustment;\n }\n if (differenceToStart < startMarkerHeight && differenceToStart > 0 && differenceInYStart < startMarkerHeight) {\n let adjustment = startMarkerHeight + extraRoom - differenceToStart;\n adjustment *= DIRECTION === \"right\" ? -1 : 1;\n offset += adjustment;\n }\n return pointTransformer(d).x + offset;\n }, \"x\"),\n y: /* @__PURE__ */ __name(function(d, i, data) {\n let offset = 0;\n const DIRECTION = pointTransformer(data[0]).y < pointTransformer(data[data.length - 1]).y ? \"down\" : \"up\";\n if (i === 0 && Object.hasOwn(markerOffsets, edge.arrowTypeStart)) {\n const { angle, deltaY } = calculateDeltaAndAngle(data[0], data[1]);\n offset = markerOffsets[edge.arrowTypeStart] * Math.abs(Math.sin(angle)) * (deltaY >= 0 ? 1 : -1);\n } else if (i === data.length - 1 && Object.hasOwn(markerOffsets, edge.arrowTypeEnd)) {\n const { angle, deltaY } = calculateDeltaAndAngle(\n data[data.length - 1],\n data[data.length - 2]\n );\n offset = markerOffsets[edge.arrowTypeEnd] * Math.abs(Math.sin(angle)) * (deltaY >= 0 ? 1 : -1);\n }\n const differenceToEnd = Math.abs(\n pointTransformer(d).y - pointTransformer(data[data.length - 1]).y\n );\n const differenceInXEnd = Math.abs(\n pointTransformer(d).x - pointTransformer(data[data.length - 1]).x\n );\n const differenceToStart = Math.abs(pointTransformer(d).y - pointTransformer(data[0]).y);\n const differenceInXStart = Math.abs(pointTransformer(d).x - pointTransformer(data[0]).x);\n const startMarkerHeight = markerOffsets[edge.arrowTypeStart];\n const endMarkerHeight = markerOffsets[edge.arrowTypeEnd];\n const extraRoom = 1;\n if (differenceToEnd < endMarkerHeight && differenceToEnd > 0 && differenceInXEnd < endMarkerHeight) {\n let adjustment = endMarkerHeight + extraRoom - differenceToEnd;\n adjustment *= DIRECTION === \"up\" ? -1 : 1;\n offset -= adjustment;\n }\n if (differenceToStart < startMarkerHeight && differenceToStart > 0 && differenceInXStart < startMarkerHeight) {\n let adjustment = startMarkerHeight + extraRoom - differenceToStart;\n adjustment *= DIRECTION === \"up\" ? -1 : 1;\n offset += adjustment;\n }\n return pointTransformer(d).y + offset;\n }, \"y\")\n };\n}, \"getLineFunctionsWithOffset\");\nif (void 0) {\n const { it, expect, describe } = void 0;\n describe(\"calculateDeltaAndAngle\", () => {\n it(\"should calculate the angle and deltas between two points\", () => {\n expect(calculateDeltaAndAngle([0, 0], [0, 1])).toStrictEqual({\n angle: 1.5707963267948966,\n deltaX: 0,\n deltaY: 1\n });\n expect(calculateDeltaAndAngle([1, 0], [0, -1])).toStrictEqual({\n angle: 0.7853981633974483,\n deltaX: -1,\n deltaY: -1\n });\n expect(calculateDeltaAndAngle({ x: 1, y: 0 }, [0, -1])).toStrictEqual({\n angle: 0.7853981633974483,\n deltaX: -1,\n deltaY: -1\n });\n expect(calculateDeltaAndAngle({ x: 1, y: 0 }, { x: 1, y: 0 })).toStrictEqual({\n angle: NaN,\n deltaX: 0,\n deltaY: 0\n });\n });\n it(\"should calculate the angle and deltas if one point in undefined\", () => {\n expect(calculateDeltaAndAngle(void 0, [0, 1])).toStrictEqual({\n angle: 0,\n deltaX: 0,\n deltaY: 0\n });\n expect(calculateDeltaAndAngle([0, 1], void 0)).toStrictEqual({\n angle: 0,\n deltaX: 0,\n deltaY: 0\n });\n });\n });\n}\n\nexport {\n getLineFunctionsWithOffset\n};\n","function t(t,e,s){if(t&&t.length){const[n,o]=e,a=Math.PI/180*s,h=Math.cos(a),r=Math.sin(a);for(const e of t){const[t,s]=e;e[0]=(t-n)*h-(s-o)*r+n,e[1]=(t-n)*r+(s-o)*h+o}}}function e(t,e){return t[0]===e[0]&&t[1]===e[1]}function s(s,n,o,a=1){const h=o,r=Math.max(n,.1),i=s[0]&&s[0][0]&&\"number\"==typeof s[0][0]?[s]:s,c=[0,0];if(h)for(const e of i)t(e,c,h);const l=function(t,s,n){const o=[];for(const s of t){const t=[...s];e(t[0],t[t.length-1])||t.push([t[0][0],t[0][1]]),t.length>2&&o.push(t)}const a=[];s=Math.max(s,.1);const h=[];for(const t of o)for(let e=0;e<t.length-1;e++){const s=t[e],n=t[e+1];if(s[1]!==n[1]){const t=Math.min(s[1],n[1]);h.push({ymin:t,ymax:Math.max(s[1],n[1]),x:t===s[1]?s[0]:n[0],islope:(n[0]-s[0])/(n[1]-s[1])})}}if(h.sort(((t,e)=>t.ymin<e.ymin?-1:t.ymin>e.ymin?1:t.x<e.x?-1:t.x>e.x?1:t.ymax===e.ymax?0:(t.ymax-e.ymax)/Math.abs(t.ymax-e.ymax))),!h.length)return a;let r=[],i=h[0].ymin,c=0;for(;r.length||h.length;){if(h.length){let t=-1;for(let e=0;e<h.length&&!(h[e].ymin>i);e++)t=e;h.splice(0,t+1).forEach((t=>{r.push({s:i,edge:t})}))}if(r=r.filter((t=>!(t.edge.ymax<=i))),r.sort(((t,e)=>t.edge.x===e.edge.x?0:(t.edge.x-e.edge.x)/Math.abs(t.edge.x-e.edge.x))),(1!==n||c%s==0)&&r.length>1)for(let t=0;t<r.length;t+=2){const e=t+1;if(e>=r.length)break;const s=r[t].edge,n=r[e].edge;a.push([[Math.round(s.x),i],[Math.round(n.x),i]])}i+=n,r.forEach((t=>{t.edge.x=t.edge.x+n*t.edge.islope})),c++}return a}(i,r,a);if(h){for(const e of i)t(e,c,-h);!function(e,s,n){const o=[];e.forEach((t=>o.push(...t))),t(o,s,n)}(l,c,-h)}return l}function n(t,e){var n;const o=e.hachureAngle+90;let a=e.hachureGap;a<0&&(a=4*e.strokeWidth),a=Math.round(Math.max(a,.1));let h=1;return e.roughness>=1&&((null===(n=e.randomizer)||void 0===n?void 0:n.next())||Math.random())>.7&&(h=a),s(t,a,o,h||1)}class o{constructor(t){this.helper=t}fillPolygons(t,e){return this._fillPolygons(t,e)}_fillPolygons(t,e){const s=n(t,e);return{type:\"fillSketch\",ops:this.renderLines(s,e)}}renderLines(t,e){const s=[];for(const n of t)s.push(...this.helper.doubleLineOps(n[0][0],n[0][1],n[1][0],n[1][1],e));return s}}function a(t){const e=t[0],s=t[1];return Math.sqrt(Math.pow(e[0]-s[0],2)+Math.pow(e[1]-s[1],2))}class h extends o{fillPolygons(t,e){let s=e.hachureGap;s<0&&(s=4*e.strokeWidth),s=Math.max(s,.1);const o=n(t,Object.assign({},e,{hachureGap:s})),h=Math.PI/180*e.hachureAngle,r=[],i=.5*s*Math.cos(h),c=.5*s*Math.sin(h);for(const[t,e]of o)a([t,e])&&r.push([[t[0]-i,t[1]+c],[...e]],[[t[0]+i,t[1]-c],[...e]]);return{type:\"fillSketch\",ops:this.renderLines(r,e)}}}class r extends o{fillPolygons(t,e){const s=this._fillPolygons(t,e),n=Object.assign({},e,{hachureAngle:e.hachureAngle+90}),o=this._fillPolygons(t,n);return s.ops=s.ops.concat(o.ops),s}}class i{constructor(t){this.helper=t}fillPolygons(t,e){const s=n(t,e=Object.assign({},e,{hachureAngle:0}));return this.dotsOnLines(s,e)}dotsOnLines(t,e){const s=[];let n=e.hachureGap;n<0&&(n=4*e.strokeWidth),n=Math.max(n,.1);let o=e.fillWeight;o<0&&(o=e.strokeWidth/2);const h=n/4;for(const r of t){const t=a(r),i=t/n,c=Math.ceil(i)-1,l=t-c*n,u=(r[0][0]+r[1][0])/2-n/4,p=Math.min(r[0][1],r[1][1]);for(let t=0;t<c;t++){const a=p+l+t*n,r=u-h+2*Math.random()*h,i=a-h+2*Math.random()*h,c=this.helper.ellipse(r,i,o,o,e);s.push(...c.ops)}}return{type:\"fillSketch\",ops:s}}}class c{constructor(t){this.helper=t}fillPolygons(t,e){const s=n(t,e);return{type:\"fillSketch\",ops:this.dashedLine(s,e)}}dashedLine(t,e){const s=e.dashOffset<0?e.hachureGap<0?4*e.strokeWidth:e.hachureGap:e.dashOffset,n=e.dashGap<0?e.hachureGap<0?4*e.strokeWidth:e.hachureGap:e.dashGap,o=[];return t.forEach((t=>{const h=a(t),r=Math.floor(h/(s+n)),i=(h+n-r*(s+n))/2;let c=t[0],l=t[1];c[0]>l[0]&&(c=t[1],l=t[0]);const u=Math.atan((l[1]-c[1])/(l[0]-c[0]));for(let t=0;t<r;t++){const a=t*(s+n),h=a+s,r=[c[0]+a*Math.cos(u)+i*Math.cos(u),c[1]+a*Math.sin(u)+i*Math.sin(u)],l=[c[0]+h*Math.cos(u)+i*Math.cos(u),c[1]+h*Math.sin(u)+i*Math.sin(u)];o.push(...this.helper.doubleLineOps(r[0],r[1],l[0],l[1],e))}})),o}}class l{constructor(t){this.helper=t}fillPolygons(t,e){const s=e.hachureGap<0?4*e.strokeWidth:e.hachureGap,o=e.zigzagOffset<0?s:e.zigzagOffset,a=n(t,e=Object.assign({},e,{hachureGap:s+o}));return{type:\"fillSketch\",ops:this.zigzagLines(a,o,e)}}zigzagLines(t,e,s){const n=[];return t.forEach((t=>{const o=a(t),h=Math.round(o/(2*e));let r=t[0],i=t[1];r[0]>i[0]&&(r=t[1],i=t[0]);const c=Math.atan((i[1]-r[1])/(i[0]-r[0]));for(let t=0;t<h;t++){const o=2*t*e,a=2*(t+1)*e,h=Math.sqrt(2*Math.pow(e,2)),i=[r[0]+o*Math.cos(c),r[1]+o*Math.sin(c)],l=[r[0]+a*Math.cos(c),r[1]+a*Math.sin(c)],u=[i[0]+h*Math.cos(c+Math.PI/4),i[1]+h*Math.sin(c+Math.PI/4)];n.push(...this.helper.doubleLineOps(i[0],i[1],u[0],u[1],s),...this.helper.doubleLineOps(u[0],u[1],l[0],l[1],s))}})),n}}const u={};class p{constructor(t){this.seed=t}next(){return this.seed?(2**31-1&(this.seed=Math.imul(48271,this.seed)))/2**31:Math.random()}}const f=0,d=1,g=2,M={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0};function k(t,e){return t.type===e}function b(t){const e=[],s=function(t){const e=new Array;for(;\"\"!==t;)if(t.match(/^([ \\t\\r\\n,]+)/))t=t.substr(RegExp.$1.length);else if(t.match(/^([aAcChHlLmMqQsStTvVzZ])/))e[e.length]={type:f,text:RegExp.$1},t=t.substr(RegExp.$1.length);else{if(!t.match(/^(([-+]?[0-9]+(\\.[0-9]*)?|[-+]?\\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];e[e.length]={type:d,text:`${parseFloat(RegExp.$1)}`},t=t.substr(RegExp.$1.length)}return e[e.length]={type:g,text:\"\"},e}(t);let n=\"BOD\",o=0,a=s[o];for(;!k(a,g);){let h=0;const r=[];if(\"BOD\"===n){if(\"M\"!==a.text&&\"m\"!==a.text)return b(\"M0,0\"+t);o++,h=M[a.text],n=a.text}else k(a,d)?h=M[n]:(o++,h=M[a.text],n=a.text);if(!(o+h<s.length))throw new Error(\"Path data ended short\");for(let t=o;t<o+h;t++){const e=s[t];if(!k(e,d))throw new Error(\"Param not a number: \"+n+\",\"+e.text);r[r.length]=+e.text}if(\"number\"!=typeof M[n])throw new Error(\"Bad segment: \"+n);{const t={key:n,data:r};e.push(t),o+=h,a=s[o],\"M\"===n&&(n=\"L\"),\"m\"===n&&(n=\"l\")}}return e}function y(t){let e=0,s=0,n=0,o=0;const a=[];for(const{key:h,data:r}of t)switch(h){case\"M\":a.push({key:\"M\",data:[...r]}),[e,s]=r,[n,o]=r;break;case\"m\":e+=r[0],s+=r[1],a.push({key:\"M\",data:[e,s]}),n=e,o=s;break;case\"L\":a.push({key:\"L\",data:[...r]}),[e,s]=r;break;case\"l\":e+=r[0],s+=r[1],a.push({key:\"L\",data:[e,s]});break;case\"C\":a.push({key:\"C\",data:[...r]}),e=r[4],s=r[5];break;case\"c\":{const t=r.map(((t,n)=>n%2?t+s:t+e));a.push({key:\"C\",data:t}),e=t[4],s=t[5];break}case\"Q\":a.push({key:\"Q\",data:[...r]}),e=r[2],s=r[3];break;case\"q\":{const t=r.map(((t,n)=>n%2?t+s:t+e));a.push({key:\"Q\",data:t}),e=t[2],s=t[3];break}case\"A\":a.push({key:\"A\",data:[...r]}),e=r[5],s=r[6];break;case\"a\":e+=r[5],s+=r[6],a.push({key:\"A\",data:[r[0],r[1],r[2],r[3],r[4],e,s]});break;case\"H\":a.push({key:\"H\",data:[...r]}),e=r[0];break;case\"h\":e+=r[0],a.push({key:\"H\",data:[e]});break;case\"V\":a.push({key:\"V\",data:[...r]}),s=r[0];break;case\"v\":s+=r[0],a.push({key:\"V\",data:[s]});break;case\"S\":a.push({key:\"S\",data:[...r]}),e=r[2],s=r[3];break;case\"s\":{const t=r.map(((t,n)=>n%2?t+s:t+e));a.push({key:\"S\",data:t}),e=t[2],s=t[3];break}case\"T\":a.push({key:\"T\",data:[...r]}),e=r[0],s=r[1];break;case\"t\":e+=r[0],s+=r[1],a.push({key:\"T\",data:[e,s]});break;case\"Z\":case\"z\":a.push({key:\"Z\",data:[]}),e=n,s=o}return a}function m(t){const e=[];let s=\"\",n=0,o=0,a=0,h=0,r=0,i=0;for(const{key:c,data:l}of t){switch(c){case\"M\":e.push({key:\"M\",data:[...l]}),[n,o]=l,[a,h]=l;break;case\"C\":e.push({key:\"C\",data:[...l]}),n=l[4],o=l[5],r=l[2],i=l[3];break;case\"L\":e.push({key:\"L\",data:[...l]}),[n,o]=l;break;case\"H\":n=l[0],e.push({key:\"L\",data:[n,o]});break;case\"V\":o=l[0],e.push({key:\"L\",data:[n,o]});break;case\"S\":{let t=0,a=0;\"C\"===s||\"S\"===s?(t=n+(n-r),a=o+(o-i)):(t=n,a=o),e.push({key:\"C\",data:[t,a,...l]}),r=l[0],i=l[1],n=l[2],o=l[3];break}case\"T\":{const[t,a]=l;let h=0,c=0;\"Q\"===s||\"T\"===s?(h=n+(n-r),c=o+(o-i)):(h=n,c=o);const u=n+2*(h-n)/3,p=o+2*(c-o)/3,f=t+2*(h-t)/3,d=a+2*(c-a)/3;e.push({key:\"C\",data:[u,p,f,d,t,a]}),r=h,i=c,n=t,o=a;break}case\"Q\":{const[t,s,a,h]=l,c=n+2*(t-n)/3,u=o+2*(s-o)/3,p=a+2*(t-a)/3,f=h+2*(s-h)/3;e.push({key:\"C\",data:[c,u,p,f,a,h]}),r=t,i=s,n=a,o=h;break}case\"A\":{const t=Math.abs(l[0]),s=Math.abs(l[1]),a=l[2],h=l[3],r=l[4],i=l[5],c=l[6];if(0===t||0===s)e.push({key:\"C\",data:[n,o,i,c,i,c]}),n=i,o=c;else if(n!==i||o!==c){x(n,o,i,c,t,s,a,h,r).forEach((function(t){e.push({key:\"C\",data:t})})),n=i,o=c}break}case\"Z\":e.push({key:\"Z\",data:[]}),n=a,o=h}s=c}return e}function w(t,e,s){return[t*Math.cos(s)-e*Math.sin(s),t*Math.sin(s)+e*Math.cos(s)]}function x(t,e,s,n,o,a,h,r,i,c){const l=(u=h,Math.PI*u/180);var u;let p=[],f=0,d=0,g=0,M=0;if(c)[f,d,g,M]=c;else{[t,e]=w(t,e,-l),[s,n]=w(s,n,-l);const h=(t-s)/2,c=(e-n)/2;let u=h*h/(o*o)+c*c/(a*a);u>1&&(u=Math.sqrt(u),o*=u,a*=u);const p=o*o,k=a*a,b=p*k-p*c*c-k*h*h,y=p*c*c+k*h*h,m=(r===i?-1:1)*Math.sqrt(Math.abs(b/y));g=m*o*c/a+(t+s)/2,M=m*-a*h/o+(e+n)/2,f=Math.asin(parseFloat(((e-M)/a).toFixed(9))),d=Math.asin(parseFloat(((n-M)/a).toFixed(9))),t<g&&(f=Math.PI-f),s<g&&(d=Math.PI-d),f<0&&(f=2*Math.PI+f),d<0&&(d=2*Math.PI+d),i&&f>d&&(f-=2*Math.PI),!i&&d>f&&(d-=2*Math.PI)}let k=d-f;if(Math.abs(k)>120*Math.PI/180){const t=d,e=s,r=n;d=i&&d>f?f+120*Math.PI/180*1:f+120*Math.PI/180*-1,p=x(s=g+o*Math.cos(d),n=M+a*Math.sin(d),e,r,o,a,h,0,i,[d,t,g,M])}k=d-f;const b=Math.cos(f),y=Math.sin(f),m=Math.cos(d),P=Math.sin(d),v=Math.tan(k/4),S=4/3*o*v,O=4/3*a*v,L=[t,e],T=[t+S*y,e-O*b],D=[s+S*P,n-O*m],A=[s,n];if(T[0]=2*L[0]-T[0],T[1]=2*L[1]-T[1],c)return[T,D,A].concat(p);{p=[T,D,A].concat(p);const t=[];for(let e=0;e<p.length;e+=3){const s=w(p[e][0],p[e][1],l),n=w(p[e+1][0],p[e+1][1],l),o=w(p[e+2][0],p[e+2][1],l);t.push([s[0],s[1],n[0],n[1],o[0],o[1]])}return t}}const P={randOffset:function(t,e){return G(t,e)},randOffsetWithRange:function(t,e,s){return E(t,e,s)},ellipse:function(t,e,s,n,o){const a=T(s,n,o);return D(t,e,o,a).opset},doubleLineOps:function(t,e,s,n,o){return $(t,e,s,n,o,!0)}};function v(t,e,s,n,o){return{type:\"path\",ops:$(t,e,s,n,o)}}function S(t,e,s){const n=(t||[]).length;if(n>2){const o=[];for(let e=0;e<n-1;e++)o.push(...$(t[e][0],t[e][1],t[e+1][0],t[e+1][1],s));return e&&o.push(...$(t[n-1][0],t[n-1][1],t[0][0],t[0][1],s)),{type:\"path\",ops:o}}return 2===n?v(t[0][0],t[0][1],t[1][0],t[1][1],s):{type:\"path\",ops:[]}}function O(t,e,s,n,o){return function(t,e){return S(t,!0,e)}([[t,e],[t+s,e],[t+s,e+n],[t,e+n]],o)}function L(t,e){if(t.length){const s=\"number\"==typeof t[0][0]?[t]:t,n=j(s[0],1*(1+.2*e.roughness),e),o=e.disableMultiStroke?[]:j(s[0],1.5*(1+.22*e.roughness),z(e));for(let t=1;t<s.length;t++){const a=s[t];if(a.length){const t=j(a,1*(1+.2*e.roughness),e),s=e.disableMultiStroke?[]:j(a,1.5*(1+.22*e.roughness),z(e));for(const e of t)\"move\"!==e.op&&n.push(e);for(const t of s)\"move\"!==t.op&&o.push(t)}}return{type:\"path\",ops:n.concat(o)}}return{type:\"path\",ops:[]}}function T(t,e,s){const n=Math.sqrt(2*Math.PI*Math.sqrt((Math.pow(t/2,2)+Math.pow(e/2,2))/2)),o=Math.ceil(Math.max(s.curveStepCount,s.curveStepCount/Math.sqrt(200)*n)),a=2*Math.PI/o;let h=Math.abs(t/2),r=Math.abs(e/2);const i=1-s.curveFitting;return h+=G(h*i,s),r+=G(r*i,s),{increment:a,rx:h,ry:r}}function D(t,e,s,n){const[o,a]=F(n.increment,t,e,n.rx,n.ry,1,n.increment*E(.1,E(.4,1,s),s),s);let h=q(o,null,s);if(!s.disableMultiStroke&&0!==s.roughness){const[o]=F(n.increment,t,e,n.rx,n.ry,1.5,0,s),a=q(o,null,s);h=h.concat(a)}return{estimatedPoints:a,opset:{type:\"path\",ops:h}}}function A(t,e,s,n,o,a,h,r,i){const c=t,l=e;let u=Math.abs(s/2),p=Math.abs(n/2);u+=G(.01*u,i),p+=G(.01*p,i);let f=o,d=a;for(;f<0;)f+=2*Math.PI,d+=2*Math.PI;d-f>2*Math.PI&&(f=0,d=2*Math.PI);const g=2*Math.PI/i.curveStepCount,M=Math.min(g/2,(d-f)/2),k=V(M,c,l,u,p,f,d,1,i);if(!i.disableMultiStroke){const t=V(M,c,l,u,p,f,d,1.5,i);k.push(...t)}return h&&(r?k.push(...$(c,l,c+u*Math.cos(f),l+p*Math.sin(f),i),...$(c,l,c+u*Math.cos(d),l+p*Math.sin(d),i)):k.push({op:\"lineTo\",data:[c,l]},{op:\"lineTo\",data:[c+u*Math.cos(f),l+p*Math.sin(f)]})),{type:\"path\",ops:k}}function _(t,e){const s=m(y(b(t))),n=[];let o=[0,0],a=[0,0];for(const{key:t,data:h}of s)switch(t){case\"M\":a=[h[0],h[1]],o=[h[0],h[1]];break;case\"L\":n.push(...$(a[0],a[1],h[0],h[1],e)),a=[h[0],h[1]];break;case\"C\":{const[t,s,o,r,i,c]=h;n.push(...Z(t,s,o,r,i,c,a,e)),a=[i,c];break}case\"Z\":n.push(...$(a[0],a[1],o[0],o[1],e)),a=[o[0],o[1]]}return{type:\"path\",ops:n}}function I(t,e){const s=[];for(const n of t)if(n.length){const t=e.maxRandomnessOffset||0,o=n.length;if(o>2){s.push({op:\"move\",data:[n[0][0]+G(t,e),n[0][1]+G(t,e)]});for(let a=1;a<o;a++)s.push({op:\"lineTo\",data:[n[a][0]+G(t,e),n[a][1]+G(t,e)]})}}return{type:\"fillPath\",ops:s}}function C(t,e){return function(t,e){let s=t.fillStyle||\"hachure\";if(!u[s])switch(s){case\"zigzag\":u[s]||(u[s]=new h(e));break;case\"cross-hatch\":u[s]||(u[s]=new r(e));break;case\"dots\":u[s]||(u[s]=new i(e));break;case\"dashed\":u[s]||(u[s]=new c(e));break;case\"zigzag-line\":u[s]||(u[s]=new l(e));break;default:s=\"hachure\",u[s]||(u[s]=new o(e))}return u[s]}(e,P).fillPolygons(t,e)}function z(t){const e=Object.assign({},t);return e.randomizer=void 0,t.seed&&(e.seed=t.seed+1),e}function W(t){return t.randomizer||(t.randomizer=new p(t.seed||0)),t.randomizer.next()}function E(t,e,s,n=1){return s.roughness*n*(W(s)*(e-t)+t)}function G(t,e,s=1){return E(-t,t,e,s)}function $(t,e,s,n,o,a=!1){const h=a?o.disableMultiStrokeFill:o.disableMultiStroke,r=R(t,e,s,n,o,!0,!1);if(h)return r;const i=R(t,e,s,n,o,!0,!0);return r.concat(i)}function R(t,e,s,n,o,a,h){const r=Math.pow(t-s,2)+Math.pow(e-n,2),i=Math.sqrt(r);let c=1;c=i<200?1:i>500?.4:-.0016668*i+1.233334;let l=o.maxRandomnessOffset||0;l*l*100>r&&(l=i/10);const u=l/2,p=.2+.2*W(o);let f=o.bowing*o.maxRandomnessOffset*(n-e)/200,d=o.bowing*o.maxRandomnessOffset*(t-s)/200;f=G(f,o,c),d=G(d,o,c);const g=[],M=()=>G(u,o,c),k=()=>G(l,o,c),b=o.preserveVertices;return a&&(h?g.push({op:\"move\",data:[t+(b?0:M()),e+(b?0:M())]}):g.push({op:\"move\",data:[t+(b?0:G(l,o,c)),e+(b?0:G(l,o,c))]})),h?g.push({op:\"bcurveTo\",data:[f+t+(s-t)*p+M(),d+e+(n-e)*p+M(),f+t+2*(s-t)*p+M(),d+e+2*(n-e)*p+M(),s+(b?0:M()),n+(b?0:M())]}):g.push({op:\"bcurveTo\",data:[f+t+(s-t)*p+k(),d+e+(n-e)*p+k(),f+t+2*(s-t)*p+k(),d+e+2*(n-e)*p+k(),s+(b?0:k()),n+(b?0:k())]}),g}function j(t,e,s){if(!t.length)return[];const n=[];n.push([t[0][0]+G(e,s),t[0][1]+G(e,s)]),n.push([t[0][0]+G(e,s),t[0][1]+G(e,s)]);for(let o=1;o<t.length;o++)n.push([t[o][0]+G(e,s),t[o][1]+G(e,s)]),o===t.length-1&&n.push([t[o][0]+G(e,s),t[o][1]+G(e,s)]);return q(n,null,s)}function q(t,e,s){const n=t.length,o=[];if(n>3){const a=[],h=1-s.curveTightness;o.push({op:\"move\",data:[t[1][0],t[1][1]]});for(let e=1;e+2<n;e++){const s=t[e];a[0]=[s[0],s[1]],a[1]=[s[0]+(h*t[e+1][0]-h*t[e-1][0])/6,s[1]+(h*t[e+1][1]-h*t[e-1][1])/6],a[2]=[t[e+1][0]+(h*t[e][0]-h*t[e+2][0])/6,t[e+1][1]+(h*t[e][1]-h*t[e+2][1])/6],a[3]=[t[e+1][0],t[e+1][1]],o.push({op:\"bcurveTo\",data:[a[1][0],a[1][1],a[2][0],a[2][1],a[3][0],a[3][1]]})}if(e&&2===e.length){const t=s.maxRandomnessOffset;o.push({op:\"lineTo\",data:[e[0]+G(t,s),e[1]+G(t,s)]})}}else 3===n?(o.push({op:\"move\",data:[t[1][0],t[1][1]]}),o.push({op:\"bcurveTo\",data:[t[1][0],t[1][1],t[2][0],t[2][1],t[2][0],t[2][1]]})):2===n&&o.push(...R(t[0][0],t[0][1],t[1][0],t[1][1],s,!0,!0));return o}function F(t,e,s,n,o,a,h,r){const i=[],c=[];if(0===r.roughness){t/=4,c.push([e+n*Math.cos(-t),s+o*Math.sin(-t)]);for(let a=0;a<=2*Math.PI;a+=t){const t=[e+n*Math.cos(a),s+o*Math.sin(a)];i.push(t),c.push(t)}c.push([e+n*Math.cos(0),s+o*Math.sin(0)]),c.push([e+n*Math.cos(t),s+o*Math.sin(t)])}else{const l=G(.5,r)-Math.PI/2;c.push([G(a,r)+e+.9*n*Math.cos(l-t),G(a,r)+s+.9*o*Math.sin(l-t)]);const u=2*Math.PI+l-.01;for(let h=l;h<u;h+=t){const t=[G(a,r)+e+n*Math.cos(h),G(a,r)+s+o*Math.sin(h)];i.push(t),c.push(t)}c.push([G(a,r)+e+n*Math.cos(l+2*Math.PI+.5*h),G(a,r)+s+o*Math.sin(l+2*Math.PI+.5*h)]),c.push([G(a,r)+e+.98*n*Math.cos(l+h),G(a,r)+s+.98*o*Math.sin(l+h)]),c.push([G(a,r)+e+.9*n*Math.cos(l+.5*h),G(a,r)+s+.9*o*Math.sin(l+.5*h)])}return[c,i]}function V(t,e,s,n,o,a,h,r,i){const c=a+G(.1,i),l=[];l.push([G(r,i)+e+.9*n*Math.cos(c-t),G(r,i)+s+.9*o*Math.sin(c-t)]);for(let a=c;a<=h;a+=t)l.push([G(r,i)+e+n*Math.cos(a),G(r,i)+s+o*Math.sin(a)]);return l.push([e+n*Math.cos(h),s+o*Math.sin(h)]),l.push([e+n*Math.cos(h),s+o*Math.sin(h)]),q(l,null,i)}function Z(t,e,s,n,o,a,h,r){const i=[],c=[r.maxRandomnessOffset||1,(r.maxRandomnessOffset||1)+.3];let l=[0,0];const u=r.disableMultiStroke?1:2,p=r.preserveVertices;for(let f=0;f<u;f++)0===f?i.push({op:\"move\",data:[h[0],h[1]]}):i.push({op:\"move\",data:[h[0]+(p?0:G(c[0],r)),h[1]+(p?0:G(c[0],r))]}),l=p?[o,a]:[o+G(c[f],r),a+G(c[f],r)],i.push({op:\"bcurveTo\",data:[t+G(c[f],r),e+G(c[f],r),s+G(c[f],r),n+G(c[f],r),l[0],l[1]]});return i}function Q(t){return[...t]}function H(t,e=0){const s=t.length;if(s<3)throw new Error(\"A curve must have at least three points.\");const n=[];if(3===s)n.push(Q(t[0]),Q(t[1]),Q(t[2]),Q(t[2]));else{const s=[];s.push(t[0],t[0]);for(let e=1;e<t.length;e++)s.push(t[e]),e===t.length-1&&s.push(t[e]);const o=[],a=1-e;n.push(Q(s[0]));for(let t=1;t+2<s.length;t++){const e=s[t];o[0]=[e[0],e[1]],o[1]=[e[0]+(a*s[t+1][0]-a*s[t-1][0])/6,e[1]+(a*s[t+1][1]-a*s[t-1][1])/6],o[2]=[s[t+1][0]+(a*s[t][0]-a*s[t+2][0])/6,s[t+1][1]+(a*s[t][1]-a*s[t+2][1])/6],o[3]=[s[t+1][0],s[t+1][1]],n.push(o[1],o[2],o[3])}}return n}function N(t,e){return Math.pow(t[0]-e[0],2)+Math.pow(t[1]-e[1],2)}function B(t,e,s){const n=N(e,s);if(0===n)return N(t,e);let o=((t[0]-e[0])*(s[0]-e[0])+(t[1]-e[1])*(s[1]-e[1]))/n;return o=Math.max(0,Math.min(1,o)),N(t,J(e,s,o))}function J(t,e,s){return[t[0]+(e[0]-t[0])*s,t[1]+(e[1]-t[1])*s]}function K(t,e,s,n){const o=n||[];if(function(t,e){const s=t[e+0],n=t[e+1],o=t[e+2],a=t[e+3];let h=3*n[0]-2*s[0]-a[0];h*=h;let r=3*n[1]-2*s[1]-a[1];r*=r;let i=3*o[0]-2*a[0]-s[0];i*=i;let c=3*o[1]-2*a[1]-s[1];return c*=c,h<i&&(h=i),r<c&&(r=c),h+r}(t,e)<s){const s=t[e+0];if(o.length){(a=o[o.length-1],h=s,Math.sqrt(N(a,h)))>1&&o.push(s)}else o.push(s);o.push(t[e+3])}else{const n=.5,a=t[e+0],h=t[e+1],r=t[e+2],i=t[e+3],c=J(a,h,n),l=J(h,r,n),u=J(r,i,n),p=J(c,l,n),f=J(l,u,n),d=J(p,f,n);K([a,c,p,d],0,s,o),K([d,f,u,i],0,s,o)}var a,h;return o}function U(t,e){return X(t,0,t.length,e)}function X(t,e,s,n,o){const a=o||[],h=t[e],r=t[s-1];let i=0,c=1;for(let n=e+1;n<s-1;++n){const e=B(t[n],h,r);e>i&&(i=e,c=n)}return Math.sqrt(i)>n?(X(t,e,c+1,n,a),X(t,c,s,n,a)):(a.length||a.push(h),a.push(r)),a}function Y(t,e=.15,s){const n=[],o=(t.length-1)/3;for(let s=0;s<o;s++){K(t,3*s,e,n)}return s&&s>0?X(n,0,n.length,s):n}const tt=\"none\";class et{constructor(t){this.defaultOptions={maxRandomnessOffset:2,roughness:1,bowing:1,stroke:\"#000\",strokeWidth:1,curveTightness:0,curveFitting:.95,curveStepCount:9,fillStyle:\"hachure\",fillWeight:-1,hachureAngle:-41,hachureGap:-1,dashOffset:-1,dashGap:-1,zigzagOffset:-1,seed:0,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!1,fillShapeRoughnessGain:.8},this.config=t||{},this.config.options&&(this.defaultOptions=this._o(this.config.options))}static newSeed(){return Math.floor(Math.random()*2**31)}_o(t){return t?Object.assign({},this.defaultOptions,t):this.defaultOptions}_d(t,e,s){return{shape:t,sets:e||[],options:s||this.defaultOptions}}line(t,e,s,n,o){const a=this._o(o);return this._d(\"line\",[v(t,e,s,n,a)],a)}rectangle(t,e,s,n,o){const a=this._o(o),h=[],r=O(t,e,s,n,a);if(a.fill){const o=[[t,e],[t+s,e],[t+s,e+n],[t,e+n]];\"solid\"===a.fillStyle?h.push(I([o],a)):h.push(C([o],a))}return a.stroke!==tt&&h.push(r),this._d(\"rectangle\",h,a)}ellipse(t,e,s,n,o){const a=this._o(o),h=[],r=T(s,n,a),i=D(t,e,a,r);if(a.fill)if(\"solid\"===a.fillStyle){const s=D(t,e,a,r).opset;s.type=\"fillPath\",h.push(s)}else h.push(C([i.estimatedPoints],a));return a.stroke!==tt&&h.push(i.opset),this._d(\"ellipse\",h,a)}circle(t,e,s,n){const o=this.ellipse(t,e,s,s,n);return o.shape=\"circle\",o}linearPath(t,e){const s=this._o(e);return this._d(\"linearPath\",[S(t,!1,s)],s)}arc(t,e,s,n,o,a,h=!1,r){const i=this._o(r),c=[],l=A(t,e,s,n,o,a,h,!0,i);if(h&&i.fill)if(\"solid\"===i.fillStyle){const h=Object.assign({},i);h.disableMultiStroke=!0;const r=A(t,e,s,n,o,a,!0,!1,h);r.type=\"fillPath\",c.push(r)}else c.push(function(t,e,s,n,o,a,h){const r=t,i=e;let c=Math.abs(s/2),l=Math.abs(n/2);c+=G(.01*c,h),l+=G(.01*l,h);let u=o,p=a;for(;u<0;)u+=2*Math.PI,p+=2*Math.PI;p-u>2*Math.PI&&(u=0,p=2*Math.PI);const f=(p-u)/h.curveStepCount,d=[];for(let t=u;t<=p;t+=f)d.push([r+c*Math.cos(t),i+l*Math.sin(t)]);return d.push([r+c*Math.cos(p),i+l*Math.sin(p)]),d.push([r,i]),C([d],h)}(t,e,s,n,o,a,i));return i.stroke!==tt&&c.push(l),this._d(\"arc\",c,i)}curve(t,e){const s=this._o(e),n=[],o=L(t,s);if(s.fill&&s.fill!==tt)if(\"solid\"===s.fillStyle){const e=L(t,Object.assign(Object.assign({},s),{disableMultiStroke:!0,roughness:s.roughness?s.roughness+s.fillShapeRoughnessGain:0}));n.push({type:\"fillPath\",ops:this._mergedShape(e.ops)})}else{const e=[],o=t;if(o.length){const t=\"number\"==typeof o[0][0]?[o]:o;for(const n of t)n.length<3?e.push(...n):3===n.length?e.push(...Y(H([n[0],n[0],n[1],n[2]]),10,(1+s.roughness)/2)):e.push(...Y(H(n),10,(1+s.roughness)/2))}e.length&&n.push(C([e],s))}return s.stroke!==tt&&n.push(o),this._d(\"curve\",n,s)}polygon(t,e){const s=this._o(e),n=[],o=S(t,!0,s);return s.fill&&(\"solid\"===s.fillStyle?n.push(I([t],s)):n.push(C([t],s))),s.stroke!==tt&&n.push(o),this._d(\"polygon\",n,s)}path(t,e){const s=this._o(e),n=[];if(!t)return this._d(\"path\",n,s);t=(t||\"\").replace(/\\n/g,\" \").replace(/(-\\s)/g,\"-\").replace(\"/(ss)/g\",\" \");const o=s.fill&&\"transparent\"!==s.fill&&s.fill!==tt,a=s.stroke!==tt,h=!!(s.simplification&&s.simplification<1),r=function(t,e,s){const n=m(y(b(t))),o=[];let a=[],h=[0,0],r=[];const i=()=>{r.length>=4&&a.push(...Y(r,e)),r=[]},c=()=>{i(),a.length&&(o.push(a),a=[])};for(const{key:t,data:e}of n)switch(t){case\"M\":c(),h=[e[0],e[1]],a.push(h);break;case\"L\":i(),a.push([e[0],e[1]]);break;case\"C\":if(!r.length){const t=a.length?a[a.length-1]:h;r.push([t[0],t[1]])}r.push([e[0],e[1]]),r.push([e[2],e[3]]),r.push([e[4],e[5]]);break;case\"Z\":i(),a.push([h[0],h[1]])}if(c(),!s)return o;const l=[];for(const t of o){const e=U(t,s);e.length&&l.push(e)}return l}(t,1,h?4-4*(s.simplification||1):(1+s.roughness)/2),i=_(t,s);if(o)if(\"solid\"===s.fillStyle)if(1===r.length){const e=_(t,Object.assign(Object.assign({},s),{disableMultiStroke:!0,roughness:s.roughness?s.roughness+s.fillShapeRoughnessGain:0}));n.push({type:\"fillPath\",ops:this._mergedShape(e.ops)})}else n.push(I(r,s));else n.push(C(r,s));return a&&(h?r.forEach((t=>{n.push(S(t,!1,s))})):n.push(i)),this._d(\"path\",n,s)}opsToPath(t,e){let s=\"\";for(const n of t.ops){const t=\"number\"==typeof e&&e>=0?n.data.map((t=>+t.toFixed(e))):n.data;switch(n.op){case\"move\":s+=`M${t[0]} ${t[1]} `;break;case\"bcurveTo\":s+=`C${t[0]} ${t[1]}, ${t[2]} ${t[3]}, ${t[4]} ${t[5]} `;break;case\"lineTo\":s+=`L${t[0]} ${t[1]} `}}return s.trim()}toPaths(t){const e=t.sets||[],s=t.options||this.defaultOptions,n=[];for(const t of e){let e=null;switch(t.type){case\"path\":e={d:this.opsToPath(t),stroke:s.stroke,strokeWidth:s.strokeWidth,fill:tt};break;case\"fillPath\":e={d:this.opsToPath(t),stroke:tt,strokeWidth:0,fill:s.fill||tt};break;case\"fillSketch\":e=this.fillSketch(t,s)}e&&n.push(e)}return n}fillSketch(t,e){let s=e.fillWeight;return s<0&&(s=e.strokeWidth/2),{d:this.opsToPath(t),stroke:e.fill||tt,strokeWidth:s,fill:tt}}_mergedShape(t){return t.filter(((t,e)=>0===e||\"move\"!==t.op))}}class st{constructor(t,e){this.canvas=t,this.ctx=this.canvas.getContext(\"2d\"),this.gen=new et(e)}draw(t){const e=t.sets||[],s=t.options||this.getDefaultOptions(),n=this.ctx,o=t.options.fixedDecimalPlaceDigits;for(const a of e)switch(a.type){case\"path\":n.save(),n.strokeStyle=\"none\"===s.stroke?\"transparent\":s.stroke,n.lineWidth=s.strokeWidth,s.strokeLineDash&&n.setLineDash(s.strokeLineDash),s.strokeLineDashOffset&&(n.lineDashOffset=s.strokeLineDashOffset),this._drawToContext(n,a,o),n.restore();break;case\"fillPath\":{n.save(),n.fillStyle=s.fill||\"\";const e=\"curve\"===t.shape||\"polygon\"===t.shape||\"path\"===t.shape?\"evenodd\":\"nonzero\";this._drawToContext(n,a,o,e),n.restore();break}case\"fillSketch\":this.fillSketch(n,a,s)}}fillSketch(t,e,s){let n=s.fillWeight;n<0&&(n=s.strokeWidth/2),t.save(),s.fillLineDash&&t.setLineDash(s.fillLineDash),s.fillLineDashOffset&&(t.lineDashOffset=s.fillLineDashOffset),t.strokeStyle=s.fill||\"\",t.lineWidth=n,this._drawToContext(t,e,s.fixedDecimalPlaceDigits),t.restore()}_drawToContext(t,e,s,n=\"nonzero\"){t.beginPath();for(const n of e.ops){const e=\"number\"==typeof s&&s>=0?n.data.map((t=>+t.toFixed(s))):n.data;switch(n.op){case\"move\":t.moveTo(e[0],e[1]);break;case\"bcurveTo\":t.bezierCurveTo(e[0],e[1],e[2],e[3],e[4],e[5]);break;case\"lineTo\":t.lineTo(e[0],e[1])}}\"fillPath\"===e.type?t.fill(n):t.stroke()}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}line(t,e,s,n,o){const a=this.gen.line(t,e,s,n,o);return this.draw(a),a}rectangle(t,e,s,n,o){const a=this.gen.rectangle(t,e,s,n,o);return this.draw(a),a}ellipse(t,e,s,n,o){const a=this.gen.ellipse(t,e,s,n,o);return this.draw(a),a}circle(t,e,s,n){const o=this.gen.circle(t,e,s,n);return this.draw(o),o}linearPath(t,e){const s=this.gen.linearPath(t,e);return this.draw(s),s}polygon(t,e){const s=this.gen.polygon(t,e);return this.draw(s),s}arc(t,e,s,n,o,a,h=!1,r){const i=this.gen.arc(t,e,s,n,o,a,h,r);return this.draw(i),i}curve(t,e){const s=this.gen.curve(t,e);return this.draw(s),s}path(t,e){const s=this.gen.path(t,e);return this.draw(s),s}}const nt=\"http://www.w3.org/2000/svg\";class ot{constructor(t,e){this.svg=t,this.gen=new et(e)}draw(t){const e=t.sets||[],s=t.options||this.getDefaultOptions(),n=this.svg.ownerDocument||window.document,o=n.createElementNS(nt,\"g\"),a=t.options.fixedDecimalPlaceDigits;for(const h of e){let e=null;switch(h.type){case\"path\":e=n.createElementNS(nt,\"path\"),e.setAttribute(\"d\",this.opsToPath(h,a)),e.setAttribute(\"stroke\",s.stroke),e.setAttribute(\"stroke-width\",s.strokeWidth+\"\"),e.setAttribute(\"fill\",\"none\"),s.strokeLineDash&&e.setAttribute(\"stroke-dasharray\",s.strokeLineDash.join(\" \").trim()),s.strokeLineDashOffset&&e.setAttribute(\"stroke-dashoffset\",`${s.strokeLineDashOffset}`);break;case\"fillPath\":e=n.createElementNS(nt,\"path\"),e.setAttribute(\"d\",this.opsToPath(h,a)),e.setAttribute(\"stroke\",\"none\"),e.setAttribute(\"stroke-width\",\"0\"),e.setAttribute(\"fill\",s.fill||\"\"),\"curve\"!==t.shape&&\"polygon\"!==t.shape||e.setAttribute(\"fill-rule\",\"evenodd\");break;case\"fillSketch\":e=this.fillSketch(n,h,s)}e&&o.appendChild(e)}return o}fillSketch(t,e,s){let n=s.fillWeight;n<0&&(n=s.strokeWidth/2);const o=t.createElementNS(nt,\"path\");return o.setAttribute(\"d\",this.opsToPath(e,s.fixedDecimalPlaceDigits)),o.setAttribute(\"stroke\",s.fill||\"\"),o.setAttribute(\"stroke-width\",n+\"\"),o.setAttribute(\"fill\",\"none\"),s.fillLineDash&&o.setAttribute(\"stroke-dasharray\",s.fillLineDash.join(\" \").trim()),s.fillLineDashOffset&&o.setAttribute(\"stroke-dashoffset\",`${s.fillLineDashOffset}`),o}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(t,e){return this.gen.opsToPath(t,e)}line(t,e,s,n,o){const a=this.gen.line(t,e,s,n,o);return this.draw(a)}rectangle(t,e,s,n,o){const a=this.gen.rectangle(t,e,s,n,o);return this.draw(a)}ellipse(t,e,s,n,o){const a=this.gen.ellipse(t,e,s,n,o);return this.draw(a)}circle(t,e,s,n){const o=this.gen.circle(t,e,s,n);return this.draw(o)}linearPath(t,e){const s=this.gen.linearPath(t,e);return this.draw(s)}polygon(t,e){const s=this.gen.polygon(t,e);return this.draw(s)}arc(t,e,s,n,o,a,h=!1,r){const i=this.gen.arc(t,e,s,n,o,a,h,r);return this.draw(i)}curve(t,e){const s=this.gen.curve(t,e);return this.draw(s)}path(t,e){const s=this.gen.path(t,e);return this.draw(s)}}var at={canvas:(t,e)=>new st(t,e),svg:(t,e)=>new ot(t,e),generator:t=>new et(t),newSeed:()=>et.newSeed()};export{at as default};\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.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 * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\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 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","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\nexport var SCOPE = '@scope'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @param {number} position\n * @return {number}\n */\nexport function indexof (value, search, position) {\n\treturn value.indexOf(search, position)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES, NAMESPACE} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case NAMESPACE: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, token, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f', abs(index ? points[index - 1] : 0)) != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tif ((token(previous || 1) == 5 || token(peek() || 1) == 5) && strlen(characters) && substr(characters, -1, void 0) !== ' ') characters += ' '\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length || (variable === 0 && previous === 47)))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tswitch (atrule) {\n\t\t\t\t\t\t\t\t\t// c(ontainer)\n\t\t\t\t\t\t\t\t\tcase 99:\n\t\t\t\t\t\t\t\t\t\tif (charat(characters, 3) === 110) break\n\t\t\t\t\t\t\t\t\t// l(ayer)\n\t\t\t\t\t\t\t\t\tcase 108:\n\t\t\t\t\t\t\t\t\t\tif (charat(characters, 2) === 97) break\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\toffset = 0\n\t\t\t\t\t\t\t\t\t// d(ocument) m(edia) s(upports)\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (offset) parse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\telse parse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n","import {\n JSON_SCHEMA,\n load\n} from \"./chunks/mermaid.core/chunk-L5ZGVLVO.mjs\";\nimport {\n registerLayoutLoaders\n} from \"./chunks/mermaid.core/chunk-IWUHOULB.mjs\";\nimport \"./chunks/mermaid.core/chunk-M6DAPIYF.mjs\";\nimport \"./chunks/mermaid.core/chunk-MXNHSMXR.mjs\";\nimport \"./chunks/mermaid.core/chunk-JW4RIYDF.mjs\";\nimport \"./chunks/mermaid.core/chunk-AC5SNWB5.mjs\";\nimport \"./chunks/mermaid.core/chunk-UWXLY5YG.mjs\";\nimport {\n registerIconPacks\n} from \"./chunks/mermaid.core/chunk-QESNASVV.mjs\";\nimport {\n cleanAndMerge,\n decodeEntities,\n encodeEntities,\n isDetailedError,\n removeDirectives,\n utils_default\n} from \"./chunks/mermaid.core/chunk-55PJQP7W.mjs\";\nimport {\n package_default\n} from \"./chunks/mermaid.core/chunk-RKKUNAVE.mjs\";\nimport {\n selectSvgElement\n} from \"./chunks/mermaid.core/chunk-P3VETL53.mjs\";\nimport {\n UnknownDiagramError,\n __name,\n addDirective,\n assignWithDepth_default,\n configureSvgSize,\n defaultConfig,\n detectType,\n detectors,\n evaluate,\n frontMatterRegex,\n getConfig,\n getDiagram,\n getDiagramLoader,\n getSiteConfig,\n log,\n registerDiagram,\n registerLazyLoadedDiagrams,\n reset,\n saveConfigFromInitialize,\n setConfig,\n setLogLevel,\n setSiteConfig,\n styles_default,\n themes_default,\n updateSiteConfig\n} from \"./chunks/mermaid.core/chunk-3XYRH5AP.mjs\";\n\n// src/mermaid.ts\nimport { dedent } from \"ts-dedent\";\n\n// src/diagrams/c4/c4Detector.ts\nvar id = \"c4\";\nvar detector = /* @__PURE__ */ __name((txt) => {\n return /^\\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(txt);\n}, \"detector\");\nvar loader = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/c4Diagram-6F6E4RAY.mjs\");\n return { id, diagram: diagram2 };\n}, \"loader\");\nvar plugin = {\n id,\n detector,\n loader\n};\nvar c4Detector_default = plugin;\n\n// src/diagrams/flowchart/flowDetector.ts\nvar id2 = \"flowchart\";\nvar detector2 = /* @__PURE__ */ __name((txt, config) => {\n if (config?.flowchart?.defaultRenderer === \"dagre-wrapper\" || config?.flowchart?.defaultRenderer === \"elk\") {\n return false;\n }\n return /^\\s*graph/.test(txt);\n}, \"detector\");\nvar loader2 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/flowDiagram-KYDEHFYC.mjs\");\n return { id: id2, diagram: diagram2 };\n}, \"loader\");\nvar plugin2 = {\n id: id2,\n detector: detector2,\n loader: loader2\n};\nvar flowDetector_default = plugin2;\n\n// src/diagrams/flowchart/flowDetector-v2.ts\nvar id3 = \"flowchart-v2\";\nvar detector3 = /* @__PURE__ */ __name((txt, config) => {\n if (config?.flowchart?.defaultRenderer === \"dagre-d3\") {\n return false;\n }\n if (config?.flowchart?.defaultRenderer === \"elk\") {\n config.layout = \"elk\";\n }\n if (/^\\s*graph/.test(txt) && config?.flowchart?.defaultRenderer === \"dagre-wrapper\") {\n return true;\n }\n return /^\\s*flowchart/.test(txt);\n}, \"detector\");\nvar loader3 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/flowDiagram-KYDEHFYC.mjs\");\n return { id: id3, diagram: diagram2 };\n}, \"loader\");\nvar plugin3 = {\n id: id3,\n detector: detector3,\n loader: loader3\n};\nvar flowDetector_v2_default = plugin3;\n\n// src/diagrams/er/erDetector.ts\nvar id4 = \"er\";\nvar detector4 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*erDiagram/.test(txt);\n}, \"detector\");\nvar loader4 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/erDiagram-3M52JZNH.mjs\");\n return { id: id4, diagram: diagram2 };\n}, \"loader\");\nvar plugin4 = {\n id: id4,\n detector: detector4,\n loader: loader4\n};\nvar erDetector_default = plugin4;\n\n// src/diagrams/git/gitGraphDetector.ts\nvar id5 = \"gitGraph\";\nvar detector5 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*gitGraph/.test(txt);\n}, \"detector\");\nvar loader5 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/gitGraphDiagram-GW3U2K7C.mjs\");\n return { id: id5, diagram: diagram2 };\n}, \"loader\");\nvar plugin5 = {\n id: id5,\n detector: detector5,\n loader: loader5\n};\nvar gitGraphDetector_default = plugin5;\n\n// src/diagrams/gantt/ganttDetector.ts\nvar id6 = \"gantt\";\nvar detector6 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*gantt/.test(txt);\n}, \"detector\");\nvar loader6 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/ganttDiagram-EK5VF46D.mjs\");\n return { id: id6, diagram: diagram2 };\n}, \"loader\");\nvar plugin6 = {\n id: id6,\n detector: detector6,\n loader: loader6\n};\nvar ganttDetector_default = plugin6;\n\n// src/diagrams/info/infoDetector.ts\nvar id7 = \"info\";\nvar detector7 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*info/.test(txt);\n}, \"detector\");\nvar loader7 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/infoDiagram-LHK5PUON.mjs\");\n return { id: id7, diagram: diagram2 };\n}, \"loader\");\nvar info = {\n id: id7,\n detector: detector7,\n loader: loader7\n};\n\n// src/diagrams/pie/pieDetector.ts\nvar id8 = \"pie\";\nvar detector8 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*pie/.test(txt);\n}, \"detector\");\nvar loader8 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/pieDiagram-NIOCPIFQ.mjs\");\n return { id: id8, diagram: diagram2 };\n}, \"loader\");\nvar pie = {\n id: id8,\n detector: detector8,\n loader: loader8\n};\n\n// src/diagrams/quadrant-chart/quadrantDetector.ts\nvar id9 = \"quadrantChart\";\nvar detector9 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*quadrantChart/.test(txt);\n}, \"detector\");\nvar loader9 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/quadrantDiagram-2OG54O6I.mjs\");\n return { id: id9, diagram: diagram2 };\n}, \"loader\");\nvar plugin7 = {\n id: id9,\n detector: detector9,\n loader: loader9\n};\nvar quadrantDetector_default = plugin7;\n\n// src/diagrams/xychart/xychartDetector.ts\nvar id10 = \"xychart\";\nvar detector10 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*xychart-beta/.test(txt);\n}, \"detector\");\nvar loader10 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/xychartDiagram-H2YORKM3.mjs\");\n return { id: id10, diagram: diagram2 };\n}, \"loader\");\nvar plugin8 = {\n id: id10,\n detector: detector10,\n loader: loader10\n};\nvar xychartDetector_default = plugin8;\n\n// src/diagrams/requirement/requirementDetector.ts\nvar id11 = \"requirement\";\nvar detector11 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*requirement(Diagram)?/.test(txt);\n}, \"detector\");\nvar loader11 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/requirementDiagram-QOLK2EJ7.mjs\");\n return { id: id11, diagram: diagram2 };\n}, \"loader\");\nvar plugin9 = {\n id: id11,\n detector: detector11,\n loader: loader11\n};\nvar requirementDetector_default = plugin9;\n\n// src/diagrams/sequence/sequenceDetector.ts\nvar id12 = \"sequence\";\nvar detector12 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*sequenceDiagram/.test(txt);\n}, \"detector\");\nvar loader12 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/sequenceDiagram-SKLFT4DO.mjs\");\n return { id: id12, diagram: diagram2 };\n}, \"loader\");\nvar plugin10 = {\n id: id12,\n detector: detector12,\n loader: loader12\n};\nvar sequenceDetector_default = plugin10;\n\n// src/diagrams/class/classDetector.ts\nvar id13 = \"class\";\nvar detector13 = /* @__PURE__ */ __name((txt, config) => {\n if (config?.class?.defaultRenderer === \"dagre-wrapper\") {\n return false;\n }\n return /^\\s*classDiagram/.test(txt);\n}, \"detector\");\nvar loader13 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/classDiagram-M3E45YP4.mjs\");\n return { id: id13, diagram: diagram2 };\n}, \"loader\");\nvar plugin11 = {\n id: id13,\n detector: detector13,\n loader: loader13\n};\nvar classDetector_default = plugin11;\n\n// src/diagrams/class/classDetector-V2.ts\nvar id14 = \"classDiagram\";\nvar detector14 = /* @__PURE__ */ __name((txt, config) => {\n if (/^\\s*classDiagram/.test(txt) && config?.class?.defaultRenderer === \"dagre-wrapper\") {\n return true;\n }\n return /^\\s*classDiagram-v2/.test(txt);\n}, \"detector\");\nvar loader14 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/classDiagram-v2-YAWTLIQI.mjs\");\n return { id: id14, diagram: diagram2 };\n}, \"loader\");\nvar plugin12 = {\n id: id14,\n detector: detector14,\n loader: loader14\n};\nvar classDetector_V2_default = plugin12;\n\n// src/diagrams/state/stateDetector.ts\nvar id15 = \"state\";\nvar detector15 = /* @__PURE__ */ __name((txt, config) => {\n if (config?.state?.defaultRenderer === \"dagre-wrapper\") {\n return false;\n }\n return /^\\s*stateDiagram/.test(txt);\n}, \"detector\");\nvar loader15 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/stateDiagram-MI5ZYTHO.mjs\");\n return { id: id15, diagram: diagram2 };\n}, \"loader\");\nvar plugin13 = {\n id: id15,\n detector: detector15,\n loader: loader15\n};\nvar stateDetector_default = plugin13;\n\n// src/diagrams/state/stateDetector-V2.ts\nvar id16 = \"stateDiagram\";\nvar detector16 = /* @__PURE__ */ __name((txt, config) => {\n if (/^\\s*stateDiagram-v2/.test(txt)) {\n return true;\n }\n if (/^\\s*stateDiagram/.test(txt) && config?.state?.defaultRenderer === \"dagre-wrapper\") {\n return true;\n }\n return false;\n}, \"detector\");\nvar loader16 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/stateDiagram-v2-5AN5P6BG.mjs\");\n return { id: id16, diagram: diagram2 };\n}, \"loader\");\nvar plugin14 = {\n id: id16,\n detector: detector16,\n loader: loader16\n};\nvar stateDetector_V2_default = plugin14;\n\n// src/diagrams/user-journey/journeyDetector.ts\nvar id17 = \"journey\";\nvar detector17 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*journey/.test(txt);\n}, \"detector\");\nvar loader17 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/journeyDiagram-EWQZEKCU.mjs\");\n return { id: id17, diagram: diagram2 };\n}, \"loader\");\nvar plugin15 = {\n id: id17,\n detector: detector17,\n loader: loader17\n};\nvar journeyDetector_default = plugin15;\n\n// src/diagrams/error/errorRenderer.ts\nvar draw = /* @__PURE__ */ __name((_text, id28, version) => {\n log.debug(\"rendering svg for syntax error\\n\");\n const svg = selectSvgElement(id28);\n const g = svg.append(\"g\");\n svg.attr(\"viewBox\", \"0 0 2412 512\");\n configureSvgSize(svg, 100, 512, true);\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z\"\n );\n g.append(\"text\").attr(\"class\", \"error-text\").attr(\"x\", 1440).attr(\"y\", 250).attr(\"font-size\", \"150px\").style(\"text-anchor\", \"middle\").text(\"Syntax error in text\");\n g.append(\"text\").attr(\"class\", \"error-text\").attr(\"x\", 1250).attr(\"y\", 400).attr(\"font-size\", \"100px\").style(\"text-anchor\", \"middle\").text(`mermaid version ${version}`);\n}, \"draw\");\nvar renderer = { draw };\nvar errorRenderer_default = renderer;\n\n// src/diagrams/error/errorDiagram.ts\nvar diagram = {\n db: {},\n renderer,\n parser: {\n parse: /* @__PURE__ */ __name(() => {\n return;\n }, \"parse\")\n }\n};\nvar errorDiagram_default = diagram;\n\n// src/diagrams/flowchart/elk/detector.ts\nvar id18 = \"flowchart-elk\";\nvar detector18 = /* @__PURE__ */ __name((txt, config = {}) => {\n if (\n // If diagram explicitly states flowchart-elk\n /^\\s*flowchart-elk/.test(txt) || // If a flowchart/graph diagram has their default renderer set to elk\n /^\\s*flowchart|graph/.test(txt) && config?.flowchart?.defaultRenderer === \"elk\"\n ) {\n config.layout = \"elk\";\n return true;\n }\n return false;\n}, \"detector\");\nvar loader18 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/flowDiagram-KYDEHFYC.mjs\");\n return { id: id18, diagram: diagram2 };\n}, \"loader\");\nvar plugin16 = {\n id: id18,\n detector: detector18,\n loader: loader18\n};\nvar detector_default = plugin16;\n\n// src/diagrams/timeline/detector.ts\nvar id19 = \"timeline\";\nvar detector19 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*timeline/.test(txt);\n}, \"detector\");\nvar loader19 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/timeline-definition-MYPXXCX6.mjs\");\n return { id: id19, diagram: diagram2 };\n}, \"loader\");\nvar plugin17 = {\n id: id19,\n detector: detector19,\n loader: loader19\n};\nvar detector_default2 = plugin17;\n\n// src/diagrams/mindmap/detector.ts\nvar id20 = \"mindmap\";\nvar detector20 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*mindmap/.test(txt);\n}, \"detector\");\nvar loader20 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/mindmap-definition-6CBA2TL7.mjs\");\n return { id: id20, diagram: diagram2 };\n}, \"loader\");\nvar plugin18 = {\n id: id20,\n detector: detector20,\n loader: loader20\n};\nvar detector_default3 = plugin18;\n\n// src/diagrams/kanban/detector.ts\nvar id21 = \"kanban\";\nvar detector21 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*kanban/.test(txt);\n}, \"detector\");\nvar loader21 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/kanban-definition-ZSS6B67P.mjs\");\n return { id: id21, diagram: diagram2 };\n}, \"loader\");\nvar plugin19 = {\n id: id21,\n detector: detector21,\n loader: loader21\n};\nvar detector_default4 = plugin19;\n\n// src/diagrams/sankey/sankeyDetector.ts\nvar id22 = \"sankey\";\nvar detector22 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*sankey-beta/.test(txt);\n}, \"detector\");\nvar loader22 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/sankeyDiagram-4UZDY2LN.mjs\");\n return { id: id22, diagram: diagram2 };\n}, \"loader\");\nvar plugin20 = {\n id: id22,\n detector: detector22,\n loader: loader22\n};\nvar sankeyDetector_default = plugin20;\n\n// src/diagrams/packet/detector.ts\nvar id23 = \"packet\";\nvar detector23 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*packet(-beta)?/.test(txt);\n}, \"detector\");\nvar loader23 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/diagram-5UYTHUR4.mjs\");\n return { id: id23, diagram: diagram2 };\n}, \"loader\");\nvar packet = {\n id: id23,\n detector: detector23,\n loader: loader23\n};\n\n// src/diagrams/radar/detector.ts\nvar id24 = \"radar\";\nvar detector24 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*radar-beta/.test(txt);\n}, \"detector\");\nvar loader24 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/diagram-ZTM2IBQH.mjs\");\n return { id: id24, diagram: diagram2 };\n}, \"loader\");\nvar radar = {\n id: id24,\n detector: detector24,\n loader: loader24\n};\n\n// src/diagrams/block/blockDetector.ts\nvar id25 = \"block\";\nvar detector25 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*block-beta/.test(txt);\n}, \"detector\");\nvar loader25 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/blockDiagram-6J76NXCF.mjs\");\n return { id: id25, diagram: diagram2 };\n}, \"loader\");\nvar plugin21 = {\n id: id25,\n detector: detector25,\n loader: loader25\n};\nvar blockDetector_default = plugin21;\n\n// src/diagrams/architecture/architectureDetector.ts\nvar id26 = \"architecture\";\nvar detector26 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*architecture/.test(txt);\n}, \"detector\");\nvar loader26 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/architectureDiagram-SUXI7LT5.mjs\");\n return { id: id26, diagram: diagram2 };\n}, \"loader\");\nvar architecture = {\n id: id26,\n detector: detector26,\n loader: loader26\n};\nvar architectureDetector_default = architecture;\n\n// src/diagrams/treemap/detector.ts\nvar id27 = \"treemap\";\nvar detector27 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*treemap/.test(txt);\n}, \"detector\");\nvar loader27 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/diagram-VMROVX33.mjs\");\n return { id: id27, diagram: diagram2 };\n}, \"loader\");\nvar treemap = {\n id: id27,\n detector: detector27,\n loader: loader27\n};\n\n// src/diagram-api/diagram-orchestration.ts\nvar hasLoadedDiagrams = false;\nvar addDiagrams = /* @__PURE__ */ __name(() => {\n if (hasLoadedDiagrams) {\n return;\n }\n hasLoadedDiagrams = true;\n registerDiagram(\"error\", errorDiagram_default, (text) => {\n return text.toLowerCase().trim() === \"error\";\n });\n registerDiagram(\n \"---\",\n // --- diagram type may appear if YAML front-matter is not parsed correctly\n {\n db: {\n clear: /* @__PURE__ */ __name(() => {\n }, \"clear\")\n },\n styles: {},\n // should never be used\n renderer: {\n draw: /* @__PURE__ */ __name(() => {\n }, \"draw\")\n },\n parser: {\n parse: /* @__PURE__ */ __name(() => {\n throw new Error(\n \"Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks\"\n );\n }, \"parse\")\n },\n init: /* @__PURE__ */ __name(() => null, \"init\")\n // no op\n },\n (text) => {\n return text.toLowerCase().trimStart().startsWith(\"---\");\n }\n );\n if (true) {\n registerLazyLoadedDiagrams(detector_default, detector_default3, architectureDetector_default);\n }\n registerLazyLoadedDiagrams(\n c4Detector_default,\n detector_default4,\n classDetector_V2_default,\n classDetector_default,\n erDetector_default,\n ganttDetector_default,\n info,\n pie,\n requirementDetector_default,\n sequenceDetector_default,\n flowDetector_v2_default,\n flowDetector_default,\n detector_default2,\n gitGraphDetector_default,\n stateDetector_V2_default,\n stateDetector_default,\n journeyDetector_default,\n quadrantDetector_default,\n sankeyDetector_default,\n packet,\n xychartDetector_default,\n blockDetector_default,\n radar,\n treemap\n );\n}, \"addDiagrams\");\n\n// src/diagram-api/loadDiagram.ts\nvar loadRegisteredDiagrams = /* @__PURE__ */ __name(async () => {\n log.debug(`Loading registered diagrams`);\n const results = await Promise.allSettled(\n Object.entries(detectors).map(async ([key, { detector: detector28, loader: loader28 }]) => {\n if (!loader28) {\n return;\n }\n try {\n getDiagram(key);\n } catch {\n try {\n const { diagram: diagram2, id: id28 } = await loader28();\n registerDiagram(id28, diagram2, detector28);\n } catch (err) {\n log.error(`Failed to load external diagram with key ${key}. Removing from detectors.`);\n delete detectors[key];\n throw err;\n }\n }\n })\n );\n const failed = results.filter((result) => result.status === \"rejected\");\n if (failed.length > 0) {\n log.error(`Failed to load ${failed.length} external diagrams`);\n for (const res of failed) {\n log.error(res);\n }\n throw new Error(`Failed to load ${failed.length} external diagrams`);\n }\n}, \"loadRegisteredDiagrams\");\n\n// src/mermaidAPI.ts\nimport { select } from \"d3\";\nimport { compile, serialize, stringify } from \"stylis\";\nimport DOMPurify from \"dompurify\";\nimport isEmpty from \"lodash-es/isEmpty.js\";\n\n// src/accessibility.ts\nvar SVG_ROLE = \"graphics-document document\";\nfunction setA11yDiagramInfo(svg, diagramType) {\n svg.attr(\"role\", SVG_ROLE);\n if (diagramType !== \"\") {\n svg.attr(\"aria-roledescription\", diagramType);\n }\n}\n__name(setA11yDiagramInfo, \"setA11yDiagramInfo\");\nfunction addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, baseId) {\n if (svg.insert === void 0) {\n return;\n }\n if (a11yDesc) {\n const descId = `chart-desc-${baseId}`;\n svg.attr(\"aria-describedby\", descId);\n svg.insert(\"desc\", \":first-child\").attr(\"id\", descId).text(a11yDesc);\n }\n if (a11yTitle) {\n const titleId = `chart-title-${baseId}`;\n svg.attr(\"aria-labelledby\", titleId);\n svg.insert(\"title\", \":first-child\").attr(\"id\", titleId).text(a11yTitle);\n }\n}\n__name(addSVGa11yTitleDescription, \"addSVGa11yTitleDescription\");\n\n// src/Diagram.ts\nvar Diagram = class _Diagram {\n constructor(type, text, db, parser, renderer2) {\n this.type = type;\n this.text = text;\n this.db = db;\n this.parser = parser;\n this.renderer = renderer2;\n }\n static {\n __name(this, \"Diagram\");\n }\n static async fromText(text, metadata = {}) {\n const config = getConfig();\n const type = detectType(text, config);\n text = encodeEntities(text) + \"\\n\";\n try {\n getDiagram(type);\n } catch {\n const loader28 = getDiagramLoader(type);\n if (!loader28) {\n throw new UnknownDiagramError(`Diagram ${type} not found.`);\n }\n const { id: id28, diagram: diagram2 } = await loader28();\n registerDiagram(id28, diagram2);\n }\n const { db, parser, renderer: renderer2, init: init2 } = getDiagram(type);\n if (parser.parser) {\n parser.parser.yy = db;\n }\n db.clear?.();\n init2?.(config);\n if (metadata.title) {\n db.setDiagramTitle?.(metadata.title);\n }\n await parser.parse(text);\n return new _Diagram(type, text, db, parser, renderer2);\n }\n async render(id28, version) {\n await this.renderer.draw(this.text, id28, version, this);\n }\n getParser() {\n return this.parser;\n }\n getType() {\n return this.type;\n }\n};\n\n// src/interactionDb.ts\nvar interactionFunctions = [];\nvar attachFunctions = /* @__PURE__ */ __name(() => {\n interactionFunctions.forEach((f) => {\n f();\n });\n interactionFunctions = [];\n}, \"attachFunctions\");\n\n// src/diagram-api/comments.ts\nvar cleanupComments = /* @__PURE__ */ __name((text) => {\n return text.replace(/^\\s*%%(?!{)[^\\n]+\\n?/gm, \"\").trimStart();\n}, \"cleanupComments\");\n\n// src/diagram-api/frontmatter.ts\nfunction extractFrontMatter(text) {\n const matches = text.match(frontMatterRegex);\n if (!matches) {\n return {\n text,\n metadata: {}\n };\n }\n let parsed = load(matches[1], {\n // To support config, we need JSON schema.\n // https://www.yaml.org/spec/1.2/spec.html#id2803231\n schema: JSON_SCHEMA\n }) ?? {};\n parsed = typeof parsed === \"object\" && !Array.isArray(parsed) ? parsed : {};\n const metadata = {};\n if (parsed.displayMode) {\n metadata.displayMode = parsed.displayMode.toString();\n }\n if (parsed.title) {\n metadata.title = parsed.title.toString();\n }\n if (parsed.config) {\n metadata.config = parsed.config;\n }\n return {\n text: text.slice(matches[0].length),\n metadata\n };\n}\n__name(extractFrontMatter, \"extractFrontMatter\");\n\n// src/preprocess.ts\nvar cleanupText = /* @__PURE__ */ __name((code) => {\n return code.replace(/\\r\\n?/g, \"\\n\").replace(\n /<(\\w+)([^>]*)>/g,\n (match, tag, attributes) => \"<\" + tag + attributes.replace(/=\"([^\"]*)\"/g, \"='$1'\") + \">\"\n );\n}, \"cleanupText\");\nvar processFrontmatter = /* @__PURE__ */ __name((code) => {\n const { text, metadata } = extractFrontMatter(code);\n const { displayMode, title, config = {} } = metadata;\n if (displayMode) {\n if (!config.gantt) {\n config.gantt = {};\n }\n config.gantt.displayMode = displayMode;\n }\n return { title, config, text };\n}, \"processFrontmatter\");\nvar processDirectives = /* @__PURE__ */ __name((code) => {\n const initDirective = utils_default.detectInit(code) ?? {};\n const wrapDirectives = utils_default.detectDirective(code, \"wrap\");\n if (Array.isArray(wrapDirectives)) {\n initDirective.wrap = wrapDirectives.some(({ type }) => type === \"wrap\");\n } else if (wrapDirectives?.type === \"wrap\") {\n initDirective.wrap = true;\n }\n return {\n text: removeDirectives(code),\n directive: initDirective\n };\n}, \"processDirectives\");\nfunction preprocessDiagram(code) {\n const cleanedCode = cleanupText(code);\n const frontMatterResult = processFrontmatter(cleanedCode);\n const directiveResult = processDirectives(frontMatterResult.text);\n const config = cleanAndMerge(frontMatterResult.config, directiveResult.directive);\n code = cleanupComments(directiveResult.text);\n return {\n code,\n title: frontMatterResult.title,\n config\n };\n}\n__name(preprocessDiagram, \"preprocessDiagram\");\n\n// src/utils/base64.ts\nfunction toBase64(str) {\n const utf8Bytes = new TextEncoder().encode(str);\n const utf8Str = Array.from(utf8Bytes, (byte) => String.fromCodePoint(byte)).join(\"\");\n return btoa(utf8Str);\n}\n__name(toBase64, \"toBase64\");\n\n// src/mermaidAPI.ts\nvar MAX_TEXTLENGTH = 5e4;\nvar MAX_TEXTLENGTH_EXCEEDED_MSG = \"graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa\";\nvar SECURITY_LVL_SANDBOX = \"sandbox\";\nvar SECURITY_LVL_LOOSE = \"loose\";\nvar XMLNS_SVG_STD = \"http://www.w3.org/2000/svg\";\nvar XMLNS_XLINK_STD = \"http://www.w3.org/1999/xlink\";\nvar XMLNS_XHTML_STD = \"http://www.w3.org/1999/xhtml\";\nvar IFRAME_WIDTH = \"100%\";\nvar IFRAME_HEIGHT = \"100%\";\nvar IFRAME_STYLES = \"border:0;margin:0;\";\nvar IFRAME_BODY_STYLE = \"margin:0\";\nvar IFRAME_SANDBOX_OPTS = \"allow-top-navigation-by-user-activation allow-popups\";\nvar IFRAME_NOT_SUPPORTED_MSG = 'The \"iframe\" tag is not supported by your browser.';\nvar DOMPURIFY_TAGS = [\"foreignobject\"];\nvar DOMPURIFY_ATTR = [\"dominant-baseline\"];\nfunction processAndSetConfigs(text) {\n const processed = preprocessDiagram(text);\n reset();\n addDirective(processed.config ?? {});\n return processed;\n}\n__name(processAndSetConfigs, \"processAndSetConfigs\");\nasync function parse(text, parseOptions) {\n addDiagrams();\n try {\n const { code, config } = processAndSetConfigs(text);\n const diagram2 = await getDiagramFromText(code);\n return { diagramType: diagram2.type, config };\n } catch (error) {\n if (parseOptions?.suppressErrors) {\n return false;\n }\n throw error;\n }\n}\n__name(parse, \"parse\");\nvar cssImportantStyles = /* @__PURE__ */ __name((cssClass, element, cssClasses = []) => {\n return `\n.${cssClass} ${element} { ${cssClasses.join(\" !important; \")} !important; }`;\n}, \"cssImportantStyles\");\nvar createCssStyles = /* @__PURE__ */ __name((config, classDefs = /* @__PURE__ */ new Map()) => {\n let cssStyles = \"\";\n if (config.themeCSS !== void 0) {\n cssStyles += `\n${config.themeCSS}`;\n }\n if (config.fontFamily !== void 0) {\n cssStyles += `\n:root { --mermaid-font-family: ${config.fontFamily}}`;\n }\n if (config.altFontFamily !== void 0) {\n cssStyles += `\n:root { --mermaid-alt-font-family: ${config.altFontFamily}}`;\n }\n if (classDefs instanceof Map) {\n const htmlLabels = config.htmlLabels ?? config.flowchart?.htmlLabels;\n const cssHtmlElements = [\"> *\", \"span\"];\n const cssShapeElements = [\"rect\", \"polygon\", \"ellipse\", \"circle\", \"path\"];\n const cssElements = htmlLabels ? cssHtmlElements : cssShapeElements;\n classDefs.forEach((styleClassDef) => {\n if (!isEmpty(styleClassDef.styles)) {\n cssElements.forEach((cssElement) => {\n cssStyles += cssImportantStyles(styleClassDef.id, cssElement, styleClassDef.styles);\n });\n }\n if (!isEmpty(styleClassDef.textStyles)) {\n cssStyles += cssImportantStyles(\n styleClassDef.id,\n \"tspan\",\n (styleClassDef?.textStyles || []).map((s) => s.replace(\"color\", \"fill\"))\n );\n }\n });\n }\n return cssStyles;\n}, \"createCssStyles\");\nvar createUserStyles = /* @__PURE__ */ __name((config, graphType, classDefs, svgId) => {\n const userCSSstyles = createCssStyles(config, classDefs);\n const allStyles = styles_default(graphType, userCSSstyles, config.themeVariables);\n return serialize(compile(`${svgId}{${allStyles}}`), stringify);\n}, \"createUserStyles\");\nvar cleanUpSvgCode = /* @__PURE__ */ __name((svgCode = \"\", inSandboxMode, useArrowMarkerUrls) => {\n let cleanedUpSvg = svgCode;\n if (!useArrowMarkerUrls && !inSandboxMode) {\n cleanedUpSvg = cleanedUpSvg.replace(\n /marker-end=\"url\\([\\d+./:=?A-Za-z-]*?#/g,\n 'marker-end=\"url(#'\n );\n }\n cleanedUpSvg = decodeEntities(cleanedUpSvg);\n cleanedUpSvg = cleanedUpSvg.replace(/<br>/g, \"<br/>\");\n return cleanedUpSvg;\n}, \"cleanUpSvgCode\");\nvar putIntoIFrame = /* @__PURE__ */ __name((svgCode = \"\", svgElement) => {\n const height = svgElement?.viewBox?.baseVal?.height ? svgElement.viewBox.baseVal.height + \"px\" : IFRAME_HEIGHT;\n const base64encodedSrc = toBase64(`<body style=\"${IFRAME_BODY_STYLE}\">${svgCode}</body>`);\n return `<iframe style=\"width:${IFRAME_WIDTH};height:${height};${IFRAME_STYLES}\" src=\"data:text/html;charset=UTF-8;base64,${base64encodedSrc}\" sandbox=\"${IFRAME_SANDBOX_OPTS}\">\n ${IFRAME_NOT_SUPPORTED_MSG}\n</iframe>`;\n}, \"putIntoIFrame\");\nvar appendDivSvgG = /* @__PURE__ */ __name((parentRoot, id28, enclosingDivId, divStyle, svgXlink) => {\n const enclosingDiv = parentRoot.append(\"div\");\n enclosingDiv.attr(\"id\", enclosingDivId);\n if (divStyle) {\n enclosingDiv.attr(\"style\", divStyle);\n }\n const svgNode = enclosingDiv.append(\"svg\").attr(\"id\", id28).attr(\"width\", \"100%\").attr(\"xmlns\", XMLNS_SVG_STD);\n if (svgXlink) {\n svgNode.attr(\"xmlns:xlink\", svgXlink);\n }\n svgNode.append(\"g\");\n return parentRoot;\n}, \"appendDivSvgG\");\nfunction sandboxedIframe(parentNode, iFrameId) {\n return parentNode.append(\"iframe\").attr(\"id\", iFrameId).attr(\"style\", \"width: 100%; height: 100%;\").attr(\"sandbox\", \"\");\n}\n__name(sandboxedIframe, \"sandboxedIframe\");\nvar removeExistingElements = /* @__PURE__ */ __name((doc, id28, divId, iFrameId) => {\n doc.getElementById(id28)?.remove();\n doc.getElementById(divId)?.remove();\n doc.getElementById(iFrameId)?.remove();\n}, \"removeExistingElements\");\nvar render = /* @__PURE__ */ __name(async function(id28, text, svgContainingElement) {\n addDiagrams();\n const processed = processAndSetConfigs(text);\n text = processed.code;\n const config = getConfig();\n log.debug(config);\n if (text.length > (config?.maxTextSize ?? MAX_TEXTLENGTH)) {\n text = MAX_TEXTLENGTH_EXCEEDED_MSG;\n }\n const idSelector = \"#\" + id28;\n const iFrameID = \"i\" + id28;\n const iFrameID_selector = \"#\" + iFrameID;\n const enclosingDivID = \"d\" + id28;\n const enclosingDivID_selector = \"#\" + enclosingDivID;\n const removeTempElements = /* @__PURE__ */ __name(() => {\n const tmpElementSelector = isSandboxed ? iFrameID_selector : enclosingDivID_selector;\n const node = select(tmpElementSelector).node();\n if (node && \"remove\" in node) {\n node.remove();\n }\n }, \"removeTempElements\");\n let root = select(\"body\");\n const isSandboxed = config.securityLevel === SECURITY_LVL_SANDBOX;\n const isLooseSecurityLevel = config.securityLevel === SECURITY_LVL_LOOSE;\n const fontFamily = config.fontFamily;\n if (svgContainingElement !== void 0) {\n if (svgContainingElement) {\n svgContainingElement.innerHTML = \"\";\n }\n if (isSandboxed) {\n const iframe = sandboxedIframe(select(svgContainingElement), iFrameID);\n root = select(iframe.nodes()[0].contentDocument.body);\n root.node().style.margin = 0;\n } else {\n root = select(svgContainingElement);\n }\n appendDivSvgG(root, id28, enclosingDivID, `font-family: ${fontFamily}`, XMLNS_XLINK_STD);\n } else {\n removeExistingElements(document, id28, enclosingDivID, iFrameID);\n if (isSandboxed) {\n const iframe = sandboxedIframe(select(\"body\"), iFrameID);\n root = select(iframe.nodes()[0].contentDocument.body);\n root.node().style.margin = 0;\n } else {\n root = select(\"body\");\n }\n appendDivSvgG(root, id28, enclosingDivID);\n }\n let diag;\n let parseEncounteredException;\n try {\n diag = await Diagram.fromText(text, { title: processed.title });\n } catch (error) {\n if (config.suppressErrorRendering) {\n removeTempElements();\n throw error;\n }\n diag = await Diagram.fromText(\"error\");\n parseEncounteredException = error;\n }\n const element = root.select(enclosingDivID_selector).node();\n const diagramType = diag.type;\n const svg = element.firstChild;\n const firstChild = svg.firstChild;\n const diagramClassDefs = diag.renderer.getClasses?.(text, diag);\n const rules = createUserStyles(config, diagramType, diagramClassDefs, idSelector);\n const style1 = document.createElement(\"style\");\n style1.innerHTML = rules;\n svg.insertBefore(style1, firstChild);\n try {\n await diag.renderer.draw(text, id28, package_default.version, diag);\n } catch (e) {\n if (config.suppressErrorRendering) {\n removeTempElements();\n } else {\n errorRenderer_default.draw(text, id28, package_default.version);\n }\n throw e;\n }\n const svgNode = root.select(`${enclosingDivID_selector} svg`);\n const a11yTitle = diag.db.getAccTitle?.();\n const a11yDescr = diag.db.getAccDescription?.();\n addA11yInfo(diagramType, svgNode, a11yTitle, a11yDescr);\n root.select(`[id=\"${id28}\"]`).selectAll(\"foreignobject > *\").attr(\"xmlns\", XMLNS_XHTML_STD);\n let svgCode = root.select(enclosingDivID_selector).node().innerHTML;\n log.debug(\"config.arrowMarkerAbsolute\", config.arrowMarkerAbsolute);\n svgCode = cleanUpSvgCode(svgCode, isSandboxed, evaluate(config.arrowMarkerAbsolute));\n if (isSandboxed) {\n const svgEl = root.select(enclosingDivID_selector + \" svg\").node();\n svgCode = putIntoIFrame(svgCode, svgEl);\n } else if (!isLooseSecurityLevel) {\n svgCode = DOMPurify.sanitize(svgCode, {\n ADD_TAGS: DOMPURIFY_TAGS,\n ADD_ATTR: DOMPURIFY_ATTR,\n HTML_INTEGRATION_POINTS: { foreignobject: true }\n });\n }\n attachFunctions();\n if (parseEncounteredException) {\n throw parseEncounteredException;\n }\n removeTempElements();\n return {\n diagramType,\n svg: svgCode,\n bindFunctions: diag.db.bindFunctions\n };\n}, \"render\");\nfunction initialize(userOptions = {}) {\n const options = assignWithDepth_default({}, userOptions);\n if (options?.fontFamily && !options.themeVariables?.fontFamily) {\n if (!options.themeVariables) {\n options.themeVariables = {};\n }\n options.themeVariables.fontFamily = options.fontFamily;\n }\n saveConfigFromInitialize(options);\n if (options?.theme && options.theme in themes_default) {\n options.themeVariables = themes_default[options.theme].getThemeVariables(\n options.themeVariables\n );\n } else if (options) {\n options.themeVariables = themes_default.default.getThemeVariables(options.themeVariables);\n }\n const config = typeof options === \"object\" ? setSiteConfig(options) : getSiteConfig();\n setLogLevel(config.logLevel);\n addDiagrams();\n}\n__name(initialize, \"initialize\");\nvar getDiagramFromText = /* @__PURE__ */ __name((text, metadata = {}) => {\n const { code } = preprocessDiagram(text);\n return Diagram.fromText(code, metadata);\n}, \"getDiagramFromText\");\nfunction addA11yInfo(diagramType, svgNode, a11yTitle, a11yDescr) {\n setA11yDiagramInfo(svgNode, diagramType);\n addSVGa11yTitleDescription(svgNode, a11yTitle, a11yDescr, svgNode.attr(\"id\"));\n}\n__name(addA11yInfo, \"addA11yInfo\");\nvar mermaidAPI = Object.freeze({\n render,\n parse,\n getDiagramFromText,\n initialize,\n getConfig,\n setConfig,\n getSiteConfig,\n updateSiteConfig,\n reset: /* @__PURE__ */ __name(() => {\n reset();\n }, \"reset\"),\n globalReset: /* @__PURE__ */ __name(() => {\n reset(defaultConfig);\n }, \"globalReset\"),\n defaultConfig\n});\nsetLogLevel(getConfig().logLevel);\nreset(getConfig());\n\n// src/mermaid.ts\nvar handleError = /* @__PURE__ */ __name((error, errors, parseError) => {\n log.warn(error);\n if (isDetailedError(error)) {\n if (parseError) {\n parseError(error.str, error.hash);\n }\n errors.push({ ...error, message: error.str, error });\n } else {\n if (parseError) {\n parseError(error);\n }\n if (error instanceof Error) {\n errors.push({\n str: error.message,\n message: error.message,\n hash: error.name,\n error\n });\n }\n }\n}, \"handleError\");\nvar run = /* @__PURE__ */ __name(async function(options = {\n querySelector: \".mermaid\"\n}) {\n try {\n await runThrowsErrors(options);\n } catch (e) {\n if (isDetailedError(e)) {\n log.error(e.str);\n }\n if (mermaid.parseError) {\n mermaid.parseError(e);\n }\n if (!options.suppressErrors) {\n log.error(\"Use the suppressErrors option to suppress these errors\");\n throw e;\n }\n }\n}, \"run\");\nvar runThrowsErrors = /* @__PURE__ */ __name(async function({ postRenderCallback, querySelector, nodes } = {\n querySelector: \".mermaid\"\n}) {\n const conf = mermaidAPI.getConfig();\n log.debug(`${!postRenderCallback ? \"No \" : \"\"}Callback function found`);\n let nodesToProcess;\n if (nodes) {\n nodesToProcess = nodes;\n } else if (querySelector) {\n nodesToProcess = document.querySelectorAll(querySelector);\n } else {\n throw new Error(\"Nodes and querySelector are both undefined\");\n }\n log.debug(`Found ${nodesToProcess.length} diagrams`);\n if (conf?.startOnLoad !== void 0) {\n log.debug(\"Start On Load: \" + conf?.startOnLoad);\n mermaidAPI.updateSiteConfig({ startOnLoad: conf?.startOnLoad });\n }\n const idGenerator = new utils_default.InitIDGenerator(conf.deterministicIds, conf.deterministicIDSeed);\n let txt;\n const errors = [];\n for (const element of Array.from(nodesToProcess)) {\n log.info(\"Rendering diagram: \" + element.id);\n if (element.getAttribute(\"data-processed\")) {\n continue;\n }\n element.setAttribute(\"data-processed\", \"true\");\n const id28 = `mermaid-${idGenerator.next()}`;\n txt = element.innerHTML;\n txt = dedent(utils_default.entityDecode(txt)).trim().replace(/<br\\s*\\/?>/gi, \"<br/>\");\n const init2 = utils_default.detectInit(txt);\n if (init2) {\n log.debug(\"Detected early reinit: \", init2);\n }\n try {\n const { svg, bindFunctions } = await render2(id28, txt, element);\n element.innerHTML = svg;\n if (postRenderCallback) {\n await postRenderCallback(id28);\n }\n if (bindFunctions) {\n bindFunctions(element);\n }\n } catch (error) {\n handleError(error, errors, mermaid.parseError);\n }\n }\n if (errors.length > 0) {\n throw errors[0];\n }\n}, \"runThrowsErrors\");\nvar initialize2 = /* @__PURE__ */ __name(function(config) {\n mermaidAPI.initialize(config);\n}, \"initialize\");\nvar init = /* @__PURE__ */ __name(async function(config, nodes, callback) {\n log.warn(\"mermaid.init is deprecated. Please use run instead.\");\n if (config) {\n initialize2(config);\n }\n const runOptions = { postRenderCallback: callback, querySelector: \".mermaid\" };\n if (typeof nodes === \"string\") {\n runOptions.querySelector = nodes;\n } else if (nodes) {\n if (nodes instanceof HTMLElement) {\n runOptions.nodes = [nodes];\n } else {\n runOptions.nodes = nodes;\n }\n }\n await run(runOptions);\n}, \"init\");\nvar registerExternalDiagrams = /* @__PURE__ */ __name(async (diagrams, {\n lazyLoad = true\n} = {}) => {\n addDiagrams();\n registerLazyLoadedDiagrams(...diagrams);\n if (lazyLoad === false) {\n await loadRegisteredDiagrams();\n }\n}, \"registerExternalDiagrams\");\nvar contentLoaded = /* @__PURE__ */ __name(function() {\n if (mermaid.startOnLoad) {\n const { startOnLoad } = mermaidAPI.getConfig();\n if (startOnLoad) {\n mermaid.run().catch((err) => log.error(\"Mermaid failed to initialize\", err));\n }\n }\n}, \"contentLoaded\");\nif (typeof document !== \"undefined\") {\n window.addEventListener(\"load\", contentLoaded, false);\n}\nvar setParseErrorHandler = /* @__PURE__ */ __name(function(parseErrorHandler) {\n mermaid.parseError = parseErrorHandler;\n}, \"setParseErrorHandler\");\nvar executionQueue = [];\nvar executionQueueRunning = false;\nvar executeQueue = /* @__PURE__ */ __name(async () => {\n if (executionQueueRunning) {\n return;\n }\n executionQueueRunning = true;\n while (executionQueue.length > 0) {\n const f = executionQueue.shift();\n if (f) {\n try {\n await f();\n } catch (e) {\n log.error(\"Error executing queue\", e);\n }\n }\n }\n executionQueueRunning = false;\n}, \"executeQueue\");\nvar parse2 = /* @__PURE__ */ __name(async (text, parseOptions) => {\n return new Promise((resolve, reject) => {\n const performCall = /* @__PURE__ */ __name(() => new Promise((res, rej) => {\n mermaidAPI.parse(text, parseOptions).then(\n (r) => {\n res(r);\n resolve(r);\n },\n (e) => {\n log.error(\"Error parsing\", e);\n mermaid.parseError?.(e);\n rej(e);\n reject(e);\n }\n );\n }), \"performCall\");\n executionQueue.push(performCall);\n executeQueue().catch(reject);\n });\n}, \"parse\");\nvar render2 = /* @__PURE__ */ __name((id28, text, container) => {\n return new Promise((resolve, reject) => {\n const performCall = /* @__PURE__ */ __name(() => new Promise((res, rej) => {\n mermaidAPI.render(id28, text, container).then(\n (r) => {\n res(r);\n resolve(r);\n },\n (e) => {\n log.error(\"Error parsing\", e);\n mermaid.parseError?.(e);\n rej(e);\n reject(e);\n }\n );\n }), \"performCall\");\n executionQueue.push(performCall);\n executeQueue().catch(reject);\n });\n}, \"render\");\nvar getRegisteredDiagramsMetadata = /* @__PURE__ */ __name(() => {\n return Object.keys(detectors).map((id28) => ({\n id: id28\n }));\n}, \"getRegisteredDiagramsMetadata\");\nvar mermaid = {\n startOnLoad: true,\n mermaidAPI,\n parse: parse2,\n render: render2,\n init,\n run,\n registerExternalDiagrams,\n registerLayoutLoaders,\n initialize: initialize2,\n parseError: void 0,\n contentLoaded,\n setParseErrorHandler,\n detectType,\n registerIconPacks,\n getRegisteredDiagramsMetadata\n};\nvar mermaid_default = mermaid;\nexport {\n mermaid_default as default\n};\n/*! Check if previously processed */\n/*!\n * Wait for document loaded before starting the execution\n */\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","/* IMPORT */\nimport adjustChannel from './adjust_channel.js';\n/* MAIN */\nconst darken = (color, amount) => {\n return adjustChannel(color, 'l', -amount);\n};\n/* EXPORT */\nexport default darken;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\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 an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","/* IMPORT */\nimport adjustChannel from './adjust_channel.js';\n/* MAIN */\nconst lighten = (color, amount) => {\n return adjustChannel(color, 'l', amount);\n};\n/* EXPORT */\nexport default lighten;\n","import {\n __name,\n getConfig2 as getConfig\n} from \"./chunk-3XYRH5AP.mjs\";\n\n// src/rendering-util/rendering-elements/shapes/handDrawnShapeStyles.ts\nvar solidStateFill = /* @__PURE__ */ __name((color) => {\n const { handDrawnSeed } = getConfig();\n return {\n fill: color,\n hachureAngle: 120,\n // angle of hachure,\n hachureGap: 4,\n fillWeight: 2,\n roughness: 0.7,\n stroke: color,\n seed: handDrawnSeed\n };\n}, \"solidStateFill\");\nvar compileStyles = /* @__PURE__ */ __name((node) => {\n const stylesMap = styles2Map([...node.cssCompiledStyles || [], ...node.cssStyles || []]);\n return { stylesMap, stylesArray: [...stylesMap] };\n}, \"compileStyles\");\nvar styles2Map = /* @__PURE__ */ __name((styles) => {\n const styleMap = /* @__PURE__ */ new Map();\n styles.forEach((style) => {\n const [key, value] = style.split(\":\");\n styleMap.set(key.trim(), value?.trim());\n });\n return styleMap;\n}, \"styles2Map\");\nvar isLabelStyle = /* @__PURE__ */ __name((key) => {\n return key === \"color\" || key === \"font-size\" || key === \"font-family\" || key === \"font-weight\" || key === \"font-style\" || key === \"text-decoration\" || key === \"text-align\" || key === \"text-transform\" || key === \"line-height\" || key === \"letter-spacing\" || key === \"word-spacing\" || key === \"text-shadow\" || key === \"text-overflow\" || key === \"white-space\" || key === \"word-wrap\" || key === \"word-break\" || key === \"overflow-wrap\" || key === \"hyphens\";\n}, \"isLabelStyle\");\nvar styles2String = /* @__PURE__ */ __name((node) => {\n const { stylesArray } = compileStyles(node);\n const labelStyles = [];\n const nodeStyles = [];\n const borderStyles = [];\n const backgroundStyles = [];\n stylesArray.forEach((style) => {\n const key = style[0];\n if (isLabelStyle(key)) {\n labelStyles.push(style.join(\":\") + \" !important\");\n } else {\n nodeStyles.push(style.join(\":\") + \" !important\");\n if (key.includes(\"stroke\")) {\n borderStyles.push(style.join(\":\") + \" !important\");\n }\n if (key === \"fill\") {\n backgroundStyles.push(style.join(\":\") + \" !important\");\n }\n }\n });\n return {\n labelStyles: labelStyles.join(\";\"),\n nodeStyles: nodeStyles.join(\";\"),\n stylesArray,\n borderStyles,\n backgroundStyles\n };\n}, \"styles2String\");\nvar userNodeOverrides = /* @__PURE__ */ __name((node, options) => {\n const { themeVariables, handDrawnSeed } = getConfig();\n const { nodeBorder, mainBkg } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const result = Object.assign(\n {\n roughness: 0.7,\n fill: stylesMap.get(\"fill\") || mainBkg,\n fillStyle: \"hachure\",\n // solid fill\n fillWeight: 4,\n hachureGap: 5.2,\n stroke: stylesMap.get(\"stroke\") || nodeBorder,\n seed: handDrawnSeed,\n strokeWidth: stylesMap.get(\"stroke-width\")?.replace(\"px\", \"\") || 1.3,\n fillLineDash: [0, 0]\n },\n options\n );\n return result;\n}, \"userNodeOverrides\");\n\nexport {\n solidStateFill,\n compileStyles,\n isLabelStyle,\n styles2String,\n userNodeOverrides\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sanitizeUrl = void 0;\nvar constants_1 = require(\"./constants\");\nfunction isRelativeUrlWithoutProtocol(url) {\n return constants_1.relativeFirstCharacters.indexOf(url[0]) > -1;\n}\nfunction decodeHtmlCharacters(str) {\n var removedNullByte = str.replace(constants_1.ctrlCharactersRegex, \"\");\n return removedNullByte.replace(constants_1.htmlEntitiesRegex, function (match, dec) {\n return String.fromCharCode(dec);\n });\n}\nfunction isValidUrl(url) {\n return URL.canParse(url);\n}\nfunction decodeURI(uri) {\n try {\n return decodeURIComponent(uri);\n }\n catch (e) {\n // Ignoring error\n // It is possible that the URI contains a `%` not associated\n // with URI/URL-encoding.\n return uri;\n }\n}\nfunction sanitizeUrl(url) {\n if (!url) {\n return constants_1.BLANK_URL;\n }\n var charsToDecode;\n var decodedUrl = decodeURI(url.trim());\n do {\n decodedUrl = decodeHtmlCharacters(decodedUrl)\n .replace(constants_1.htmlCtrlEntityRegex, \"\")\n .replace(constants_1.ctrlCharactersRegex, \"\")\n .replace(constants_1.whitespaceEscapeCharsRegex, \"\")\n .trim();\n decodedUrl = decodeURI(decodedUrl);\n charsToDecode =\n decodedUrl.match(constants_1.ctrlCharactersRegex) ||\n decodedUrl.match(constants_1.htmlEntitiesRegex) ||\n decodedUrl.match(constants_1.htmlCtrlEntityRegex) ||\n decodedUrl.match(constants_1.whitespaceEscapeCharsRegex);\n } while (charsToDecode && charsToDecode.length > 0);\n var sanitizedUrl = decodedUrl;\n if (!sanitizedUrl) {\n return constants_1.BLANK_URL;\n }\n if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {\n return sanitizedUrl;\n }\n // Remove any leading whitespace before checking the URL scheme\n var trimmedUrl = sanitizedUrl.trimStart();\n var urlSchemeParseResults = trimmedUrl.match(constants_1.urlSchemeRegex);\n if (!urlSchemeParseResults) {\n return sanitizedUrl;\n }\n var urlScheme = urlSchemeParseResults[0].toLowerCase().trim();\n if (constants_1.invalidProtocolRegex.test(urlScheme)) {\n return constants_1.BLANK_URL;\n }\n var backSanitized = trimmedUrl.replace(/\\\\/g, \"/\");\n // Handle special cases for mailto: and custom deep-link protocols\n if (urlScheme === \"mailto:\" || urlScheme.includes(\"://\")) {\n return backSanitized;\n }\n // For http and https URLs, perform additional validation\n if (urlScheme === \"http:\" || urlScheme === \"https:\") {\n if (!isValidUrl(backSanitized)) {\n return constants_1.BLANK_URL;\n }\n var url_1 = new URL(backSanitized);\n url_1.protocol = url_1.protocol.toLowerCase();\n url_1.hostname = url_1.hostname.toLowerCase();\n return url_1.toString();\n }\n return backSanitized;\n}\nexports.sanitizeUrl = sanitizeUrl;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","/* IMPORT */\nimport Color from '../color/index.js';\nimport change from './change.js';\n/* MAIN */\nconst adjust = (color, channels) => {\n const ch = Color.parse(color);\n const changes = {};\n for (const c in channels) {\n if (!channels[c])\n continue;\n changes[c] = ch[c] + channels[c];\n }\n return change(color, changes);\n};\n/* EXPORT */\nexport default adjust;\n","/* IMPORT */\nimport Color from '../color/index.js';\nimport rgba from './rgba.js';\n/* MAIN */\n//SOURCE: https://github.com/sass/dart-sass/blob/7457d2e9e7e623d9844ffd037a070cf32d39c348/lib/src/functions/color.dart#L718-L756\nconst mix = (color1, color2, weight = 50) => {\n const { r: r1, g: g1, b: b1, a: a1 } = Color.parse(color1);\n const { r: r2, g: g2, b: b2, a: a2 } = Color.parse(color2);\n const weightScale = weight / 100;\n const weightNormalized = (weightScale * 2) - 1;\n const alphaDelta = a1 - a2;\n const weight1combined = ((weightNormalized * alphaDelta) === -1) ? weightNormalized : (weightNormalized + alphaDelta) / (1 + weightNormalized * alphaDelta);\n const weight1 = (weight1combined + 1) / 2;\n const weight2 = 1 - weight1;\n const r = (r1 * weight1) + (r2 * weight2);\n const g = (g1 * weight1) + (g2 * weight2);\n const b = (b1 * weight1) + (b2 * weight2);\n const a = (a1 * weightScale) + (a2 * (1 - weightScale));\n return rgba(r, g, b, a);\n};\n/* EXPORT */\nexport default mix;\n","/* IMPORT */\nimport Color from '../color/index.js';\nimport mix from './mix.js';\n/* MAIN */\nconst invert = (color, weight = 100) => {\n const inverse = Color.parse(color);\n inverse.r = 255 - inverse.r;\n inverse.g = 255 - inverse.g;\n inverse.b = 255 - inverse.b;\n return mix(inverse, color, weight);\n};\n/* EXPORT */\nexport default invert;\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// src/logger.ts\nimport dayjs from \"dayjs\";\nvar LEVELS = {\n trace: 0,\n debug: 1,\n info: 2,\n warn: 3,\n error: 4,\n fatal: 5\n};\nvar log = {\n trace: /* @__PURE__ */ __name((..._args) => {\n }, \"trace\"),\n debug: /* @__PURE__ */ __name((..._args) => {\n }, \"debug\"),\n info: /* @__PURE__ */ __name((..._args) => {\n }, \"info\"),\n warn: /* @__PURE__ */ __name((..._args) => {\n }, \"warn\"),\n error: /* @__PURE__ */ __name((..._args) => {\n }, \"error\"),\n fatal: /* @__PURE__ */ __name((..._args) => {\n }, \"fatal\")\n};\nvar setLogLevel = /* @__PURE__ */ __name(function(level = \"fatal\") {\n let numericLevel = LEVELS.fatal;\n if (typeof level === \"string\") {\n if (level.toLowerCase() in LEVELS) {\n numericLevel = LEVELS[level];\n }\n } else if (typeof level === \"number\") {\n numericLevel = level;\n }\n log.trace = () => {\n };\n log.debug = () => {\n };\n log.info = () => {\n };\n log.warn = () => {\n };\n log.error = () => {\n };\n log.fatal = () => {\n };\n if (numericLevel <= LEVELS.fatal) {\n log.fatal = console.error ? console.error.bind(console, format(\"FATAL\"), \"color: orange\") : console.log.bind(console, \"\\x1B[35m\", format(\"FATAL\"));\n }\n if (numericLevel <= LEVELS.error) {\n log.error = console.error ? console.error.bind(console, format(\"ERROR\"), \"color: orange\") : console.log.bind(console, \"\\x1B[31m\", format(\"ERROR\"));\n }\n if (numericLevel <= LEVELS.warn) {\n log.warn = console.warn ? console.warn.bind(console, format(\"WARN\"), \"color: orange\") : console.log.bind(console, `\\x1B[33m`, format(\"WARN\"));\n }\n if (numericLevel <= LEVELS.info) {\n log.info = console.info ? console.info.bind(console, format(\"INFO\"), \"color: lightblue\") : console.log.bind(console, \"\\x1B[34m\", format(\"INFO\"));\n }\n if (numericLevel <= LEVELS.debug) {\n log.debug = console.debug ? console.debug.bind(console, format(\"DEBUG\"), \"color: lightgreen\") : console.log.bind(console, \"\\x1B[32m\", format(\"DEBUG\"));\n }\n if (numericLevel <= LEVELS.trace) {\n log.trace = console.debug ? console.debug.bind(console, format(\"TRACE\"), \"color: lightgreen\") : console.log.bind(console, \"\\x1B[32m\", format(\"TRACE\"));\n }\n}, \"setLogLevel\");\nvar format = /* @__PURE__ */ __name((level) => {\n const time = dayjs().format(\"ss.SSS\");\n return `%c${time} : ${level} : `;\n}, \"format\");\n\n// src/diagram-api/regexes.ts\nvar frontMatterRegex = /^-{3}\\s*[\\n\\r](.*?)[\\n\\r]-{3}\\s*[\\n\\r]+/s;\nvar directiveRegex = /%{2}{\\s*(?:(\\w+)\\s*:|(\\w+))\\s*(?:(\\w+)|((?:(?!}%{2}).|\\r?\\n)*))?\\s*(?:}%{2})?/gi;\nvar anyCommentRegex = /\\s*%%.*\\n/gm;\n\n// src/errors.ts\nvar UnknownDiagramError = class extends Error {\n static {\n __name(this, \"UnknownDiagramError\");\n }\n constructor(message) {\n super(message);\n this.name = \"UnknownDiagramError\";\n }\n};\n\n// src/diagram-api/detectType.ts\nvar detectors = {};\nvar detectType = /* @__PURE__ */ __name(function(text, config2) {\n text = text.replace(frontMatterRegex, \"\").replace(directiveRegex, \"\").replace(anyCommentRegex, \"\\n\");\n for (const [key, { detector }] of Object.entries(detectors)) {\n const diagram = detector(text, config2);\n if (diagram) {\n return key;\n }\n }\n throw new UnknownDiagramError(\n `No diagram type detected matching given configuration for text: ${text}`\n );\n}, \"detectType\");\nvar registerLazyLoadedDiagrams = /* @__PURE__ */ __name((...diagrams2) => {\n for (const { id, detector, loader } of diagrams2) {\n addDetector(id, detector, loader);\n }\n}, \"registerLazyLoadedDiagrams\");\nvar addDetector = /* @__PURE__ */ __name((key, detector, loader) => {\n if (detectors[key]) {\n log.warn(`Detector with key ${key} already exists. Overwriting.`);\n }\n detectors[key] = { detector, loader };\n log.debug(`Detector with key ${key} added${loader ? \" with loader\" : \"\"}`);\n}, \"addDetector\");\nvar getDiagramLoader = /* @__PURE__ */ __name((key) => {\n return detectors[key].loader;\n}, \"getDiagramLoader\");\n\n// src/assignWithDepth.ts\nvar assignWithDepth = /* @__PURE__ */ __name((dst, src, { depth = 2, clobber = false } = {}) => {\n const config2 = { depth, clobber };\n if (Array.isArray(src) && !Array.isArray(dst)) {\n src.forEach((s) => assignWithDepth(dst, s, config2));\n return dst;\n } else if (Array.isArray(src) && Array.isArray(dst)) {\n src.forEach((s) => {\n if (!dst.includes(s)) {\n dst.push(s);\n }\n });\n return dst;\n }\n if (dst === void 0 || depth <= 0) {\n if (dst !== void 0 && dst !== null && typeof dst === \"object\" && typeof src === \"object\") {\n return Object.assign(dst, src);\n } else {\n return src;\n }\n }\n if (src !== void 0 && typeof dst === \"object\" && typeof src === \"object\") {\n Object.keys(src).forEach((key) => {\n if (typeof src[key] === \"object\" && (dst[key] === void 0 || typeof dst[key] === \"object\")) {\n if (dst[key] === void 0) {\n dst[key] = Array.isArray(src[key]) ? [] : {};\n }\n dst[key] = assignWithDepth(dst[key], src[key], { depth: depth - 1, clobber });\n } else if (clobber || typeof dst[key] !== \"object\" && typeof src[key] !== \"object\") {\n dst[key] = src[key];\n }\n });\n }\n return dst;\n}, \"assignWithDepth\");\nvar assignWithDepth_default = assignWithDepth;\n\n// src/themes/theme-base.js\nimport { adjust as adjust2, darken, invert, isDark, lighten } from \"khroma\";\n\n// src/themes/erDiagram-oldHardcodedValues.ts\nvar oldAttributeBackgroundColorOdd = \"#ffffff\";\nvar oldAttributeBackgroundColorEven = \"#f2f2f2\";\n\n// src/themes/theme-helpers.js\nimport { adjust } from \"khroma\";\nvar mkBorder = /* @__PURE__ */ __name((col, darkMode) => darkMode ? adjust(col, { s: -40, l: 10 }) : adjust(col, { s: -40, l: -10 }), \"mkBorder\");\n\n// src/themes/theme-base.js\nvar Theme = class {\n static {\n __name(this, \"Theme\");\n }\n constructor() {\n this.background = \"#f4f4f4\";\n this.primaryColor = \"#fff4dd\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"#333\";\n this.THEME_COLOR_LIMIT = 12;\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n }\n updateColors() {\n this.primaryTextColor = this.primaryTextColor || (this.darkMode ? \"#eee\" : \"#333\");\n this.secondaryColor = this.secondaryColor || adjust2(this.primaryColor, { h: -120 });\n this.tertiaryColor = this.tertiaryColor || adjust2(this.primaryColor, { h: 180, l: 5 });\n this.primaryBorderColor = this.primaryBorderColor || mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = this.secondaryBorderColor || mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = this.tertiaryBorderColor || mkBorder(this.tertiaryColor, this.darkMode);\n this.noteBorderColor = this.noteBorderColor || mkBorder(this.noteBkgColor, this.darkMode);\n this.noteBkgColor = this.noteBkgColor || \"#fff5ad\";\n this.noteTextColor = this.noteTextColor || \"#333\";\n this.secondaryTextColor = this.secondaryTextColor || invert(this.secondaryColor);\n this.tertiaryTextColor = this.tertiaryTextColor || invert(this.tertiaryColor);\n this.lineColor = this.lineColor || invert(this.background);\n this.arrowheadColor = this.arrowheadColor || invert(this.background);\n this.textColor = this.textColor || this.primaryTextColor;\n this.border2 = this.border2 || this.tertiaryBorderColor;\n this.nodeBkg = this.nodeBkg || this.primaryColor;\n this.mainBkg = this.mainBkg || this.primaryColor;\n this.nodeBorder = this.nodeBorder || this.primaryBorderColor;\n this.clusterBkg = this.clusterBkg || this.tertiaryColor;\n this.clusterBorder = this.clusterBorder || this.tertiaryBorderColor;\n this.defaultLinkColor = this.defaultLinkColor || this.lineColor;\n this.titleColor = this.titleColor || this.tertiaryTextColor;\n this.edgeLabelBackground = this.edgeLabelBackground || (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.nodeTextColor = this.nodeTextColor || this.primaryTextColor;\n this.actorBorder = this.actorBorder || this.primaryBorderColor;\n this.actorBkg = this.actorBkg || this.mainBkg;\n this.actorTextColor = this.actorTextColor || this.primaryTextColor;\n this.actorLineColor = this.actorLineColor || this.actorBorder;\n this.labelBoxBkgColor = this.labelBoxBkgColor || this.actorBkg;\n this.signalColor = this.signalColor || this.textColor;\n this.signalTextColor = this.signalTextColor || this.textColor;\n this.labelBoxBorderColor = this.labelBoxBorderColor || this.actorBorder;\n this.labelTextColor = this.labelTextColor || this.actorTextColor;\n this.loopTextColor = this.loopTextColor || this.actorTextColor;\n this.activationBorderColor = this.activationBorderColor || darken(this.secondaryColor, 10);\n this.activationBkgColor = this.activationBkgColor || this.secondaryColor;\n this.sequenceNumberColor = this.sequenceNumberColor || invert(this.lineColor);\n this.sectionBkgColor = this.sectionBkgColor || this.tertiaryColor;\n this.altSectionBkgColor = this.altSectionBkgColor || \"white\";\n this.sectionBkgColor = this.sectionBkgColor || this.secondaryColor;\n this.sectionBkgColor2 = this.sectionBkgColor2 || this.primaryColor;\n this.excludeBkgColor = this.excludeBkgColor || \"#eeeeee\";\n this.taskBorderColor = this.taskBorderColor || this.primaryBorderColor;\n this.taskBkgColor = this.taskBkgColor || this.primaryColor;\n this.activeTaskBorderColor = this.activeTaskBorderColor || this.primaryColor;\n this.activeTaskBkgColor = this.activeTaskBkgColor || lighten(this.primaryColor, 23);\n this.gridColor = this.gridColor || \"lightgrey\";\n this.doneTaskBkgColor = this.doneTaskBkgColor || \"lightgrey\";\n this.doneTaskBorderColor = this.doneTaskBorderColor || \"grey\";\n this.critBorderColor = this.critBorderColor || \"#ff8888\";\n this.critBkgColor = this.critBkgColor || \"red\";\n this.todayLineColor = this.todayLineColor || \"red\";\n this.vertLineColor = this.vertLineColor || \"navy\";\n this.taskTextColor = this.taskTextColor || this.textColor;\n this.taskTextOutsideColor = this.taskTextOutsideColor || this.textColor;\n this.taskTextLightColor = this.taskTextLightColor || this.textColor;\n this.taskTextColor = this.taskTextColor || this.primaryTextColor;\n this.taskTextDarkColor = this.taskTextDarkColor || this.textColor;\n this.taskTextClickableColor = this.taskTextClickableColor || \"#003163\";\n this.personBorder = this.personBorder || this.primaryBorderColor;\n this.personBkg = this.personBkg || this.mainBkg;\n if (this.darkMode) {\n this.rowOdd = this.rowOdd || darken(this.mainBkg, 5) || \"#ffffff\";\n this.rowEven = this.rowEven || darken(this.mainBkg, 10);\n } else {\n this.rowOdd = this.rowOdd || lighten(this.mainBkg, 75) || \"#ffffff\";\n this.rowEven = this.rowEven || lighten(this.mainBkg, 5);\n }\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || this.tertiaryColor;\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.nodeBorder;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.specialStateColor = this.lineColor;\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust2(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust2(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust2(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust2(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust2(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust2(this.primaryColor, { h: 210, l: 150 });\n this.cScale9 = this.cScale9 || adjust2(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust2(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust2(this.primaryColor, { h: 330 });\n if (this.darkMode) {\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken(this[\"cScale\" + i], 75);\n }\n } else {\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken(this[\"cScale\" + i], 25);\n }\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || invert(this[\"cScale\" + i]);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n if (this.darkMode) {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || lighten(this[\"cScale\" + i], 10);\n } else {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken(this[\"cScale\" + i], 10);\n }\n }\n this.scaleLabelColor = this.scaleLabelColor || this.labelTextColor;\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n const multiplier = this.darkMode ? -4 : -1;\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust2(this.mainBkg, { h: 180, s: -15, l: multiplier * (5 + i * 3) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust2(this.mainBkg, { h: 180, s: -15, l: multiplier * (8 + i * 3) });\n }\n this.classText = this.classText || this.textColor;\n this.fillType0 = this.fillType0 || this.primaryColor;\n this.fillType1 = this.fillType1 || this.secondaryColor;\n this.fillType2 = this.fillType2 || adjust2(this.primaryColor, { h: 64 });\n this.fillType3 = this.fillType3 || adjust2(this.secondaryColor, { h: 64 });\n this.fillType4 = this.fillType4 || adjust2(this.primaryColor, { h: -64 });\n this.fillType5 = this.fillType5 || adjust2(this.secondaryColor, { h: -64 });\n this.fillType6 = this.fillType6 || adjust2(this.primaryColor, { h: 128 });\n this.fillType7 = this.fillType7 || adjust2(this.secondaryColor, { h: 128 });\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || this.tertiaryColor;\n this.pie4 = this.pie4 || adjust2(this.primaryColor, { l: -10 });\n this.pie5 = this.pie5 || adjust2(this.secondaryColor, { l: -10 });\n this.pie6 = this.pie6 || adjust2(this.tertiaryColor, { l: -10 });\n this.pie7 = this.pie7 || adjust2(this.primaryColor, { h: 60, l: -10 });\n this.pie8 = this.pie8 || adjust2(this.primaryColor, { h: -60, l: -10 });\n this.pie9 = this.pie9 || adjust2(this.primaryColor, { h: 120, l: 0 });\n this.pie10 = this.pie10 || adjust2(this.primaryColor, { h: 60, l: -20 });\n this.pie11 = this.pie11 || adjust2(this.primaryColor, { h: -60, l: -20 });\n this.pie12 = this.pie12 || adjust2(this.primaryColor, { h: 120, l: -10 });\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.radar = {\n axisColor: this.radar?.axisColor || this.lineColor,\n axisStrokeWidth: this.radar?.axisStrokeWidth || 2,\n axisLabelFontSize: this.radar?.axisLabelFontSize || 12,\n curveOpacity: this.radar?.curveOpacity || 0.5,\n curveStrokeWidth: this.radar?.curveStrokeWidth || 2,\n graticuleColor: this.radar?.graticuleColor || \"#DEDEDE\",\n graticuleStrokeWidth: this.radar?.graticuleStrokeWidth || 1,\n graticuleOpacity: this.radar?.graticuleOpacity || 0.3,\n legendBoxSize: this.radar?.legendBoxSize || 12,\n legendFontSize: this.radar?.legendFontSize || 12\n };\n this.archEdgeColor = this.archEdgeColor || \"#777\";\n this.archEdgeArrowColor = this.archEdgeArrowColor || \"#777\";\n this.archEdgeWidth = this.archEdgeWidth || \"3\";\n this.archGroupBorderColor = this.archGroupBorderColor || \"#000\";\n this.archGroupBorderWidth = this.archGroupBorderWidth || \"2px\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust2(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust2(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust2(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust2(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust2(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust2(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark(this.quadrant1Fill) ? lighten(this.quadrant1Fill) : darken(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.xyChart = {\n backgroundColor: this.xyChart?.backgroundColor || this.background,\n titleColor: this.xyChart?.titleColor || this.primaryTextColor,\n xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,\n xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,\n xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,\n xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,\n yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,\n yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,\n yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,\n yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,\n plotColorPalette: this.xyChart?.plotColorPalette || \"#FFF4DD,#FFD8B1,#FFA07A,#ECEFF1,#D6DBDF,#C3E0A8,#FFB6A4,#FFD74D,#738FA7,#FFFFF0\"\n };\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust2(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust2(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust2(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust2(this.primaryColor, { h: 60 });\n this.git7 = this.git7 || adjust2(this.primaryColor, { h: 120 });\n if (this.darkMode) {\n this.git0 = lighten(this.git0, 25);\n this.git1 = lighten(this.git1, 25);\n this.git2 = lighten(this.git2, 25);\n this.git3 = lighten(this.git3, 25);\n this.git4 = lighten(this.git4, 25);\n this.git5 = lighten(this.git5, 25);\n this.git6 = lighten(this.git6, 25);\n this.git7 = lighten(this.git7, 25);\n } else {\n this.git0 = darken(this.git0, 25);\n this.git1 = darken(this.git1, 25);\n this.git2 = darken(this.git2, 25);\n this.git3 = darken(this.git3, 25);\n this.git4 = darken(this.git4, 25);\n this.git5 = darken(this.git5, 25);\n this.git6 = darken(this.git6, 25);\n this.git7 = darken(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || invert(this.git0);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n this.branchLabelColor = this.branchLabelColor || (this.darkMode ? \"black\" : this.labelTextColor);\n this.gitBranchLabel0 = this.gitBranchLabel0 || this.branchLabelColor;\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.branchLabelColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.branchLabelColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || this.branchLabelColor;\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.branchLabelColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.branchLabelColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.branchLabelColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.branchLabelColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nvar getThemeVariables = /* @__PURE__ */ __name((userOverrides) => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n return theme;\n}, \"getThemeVariables\");\n\n// src/themes/theme-dark.js\nimport { adjust as adjust3, darken as darken2, invert as invert2, isDark as isDark2, lighten as lighten2, rgba } from \"khroma\";\nvar Theme2 = class {\n static {\n __name(this, \"Theme\");\n }\n constructor() {\n this.background = \"#333\";\n this.primaryColor = \"#1f2020\";\n this.secondaryColor = lighten2(this.primaryColor, 16);\n this.tertiaryColor = adjust3(this.primaryColor, { h: -160 });\n this.primaryBorderColor = invert2(this.background);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert2(this.primaryColor);\n this.secondaryTextColor = invert2(this.secondaryColor);\n this.tertiaryTextColor = invert2(this.tertiaryColor);\n this.lineColor = invert2(this.background);\n this.textColor = invert2(this.background);\n this.mainBkg = \"#1f2020\";\n this.secondBkg = \"calculated\";\n this.mainContrastColor = \"lightgrey\";\n this.darkTextColor = lighten2(invert2(\"#323D47\"), 10);\n this.lineColor = \"calculated\";\n this.border1 = \"#ccc\";\n this.border2 = rgba(255, 255, 255, 0.25);\n this.arrowheadColor = \"calculated\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.labelBackground = \"#181818\";\n this.textColor = \"#ccc\";\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"#F9FFFE\";\n this.edgeLabelBackground = \"calculated\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"calculated\";\n this.actorLineColor = \"calculated\";\n this.signalColor = \"calculated\";\n this.signalTextColor = \"calculated\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"calculated\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"calculated\";\n this.activationBkgColor = \"calculated\";\n this.sequenceNumberColor = \"black\";\n this.sectionBkgColor = darken2(\"#EAE8D9\", 30);\n this.altSectionBkgColor = \"calculated\";\n this.sectionBkgColor2 = \"#EAE8D9\";\n this.excludeBkgColor = darken2(this.sectionBkgColor, 10);\n this.taskBorderColor = rgba(255, 255, 255, 70);\n this.taskBkgColor = \"calculated\";\n this.taskTextColor = \"calculated\";\n this.taskTextLightColor = \"calculated\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = rgba(255, 255, 255, 50);\n this.activeTaskBkgColor = \"#81B1DB\";\n this.gridColor = \"calculated\";\n this.doneTaskBkgColor = \"calculated\";\n this.doneTaskBorderColor = \"grey\";\n this.critBorderColor = \"#E83737\";\n this.critBkgColor = \"#E83737\";\n this.taskTextDarkColor = \"calculated\";\n this.todayLineColor = \"#DB5757\";\n this.vertLineColor = \"#00BFFF\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.archEdgeColor = \"calculated\";\n this.archEdgeArrowColor = \"calculated\";\n this.archEdgeWidth = \"3\";\n this.archGroupBorderColor = this.primaryBorderColor;\n this.archGroupBorderWidth = \"2px\";\n this.rowOdd = this.rowOdd || lighten2(this.mainBkg, 5) || \"#ffffff\";\n this.rowEven = this.rowEven || darken2(this.mainBkg, 10);\n this.labelColor = \"calculated\";\n this.errorBkgColor = \"#a44141\";\n this.errorTextColor = \"#ddd\";\n }\n updateColors() {\n this.secondBkg = lighten2(this.mainBkg, 16);\n this.lineColor = this.mainContrastColor;\n this.arrowheadColor = this.mainContrastColor;\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.edgeLabelBackground = lighten2(this.labelBackground, 25);\n this.actorBorder = this.border1;\n this.actorBkg = this.mainBkg;\n this.actorTextColor = this.mainContrastColor;\n this.actorLineColor = this.actorBorder;\n this.signalColor = this.mainContrastColor;\n this.signalTextColor = this.mainContrastColor;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.mainContrastColor;\n this.loopTextColor = this.mainContrastColor;\n this.noteBorderColor = this.secondaryBorderColor;\n this.noteBkgColor = this.secondBkg;\n this.noteTextColor = this.secondaryTextColor;\n this.activationBorderColor = this.border1;\n this.activationBkgColor = this.secondBkg;\n this.altSectionBkgColor = this.background;\n this.taskBkgColor = lighten2(this.mainBkg, 23);\n this.taskTextColor = this.darkTextColor;\n this.taskTextLightColor = this.mainContrastColor;\n this.taskTextOutsideColor = this.taskTextLightColor;\n this.gridColor = this.mainContrastColor;\n this.doneTaskBkgColor = this.mainContrastColor;\n this.taskTextDarkColor = this.darkTextColor;\n this.archEdgeColor = this.lineColor;\n this.archEdgeArrowColor = this.lineColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#555\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = \"#f4f4f4\";\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust3(this.primaryColor, { h: 64 });\n this.fillType3 = adjust3(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust3(this.primaryColor, { h: -64 });\n this.fillType5 = adjust3(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust3(this.primaryColor, { h: 128 });\n this.fillType7 = adjust3(this.secondaryColor, { h: 128 });\n this.cScale1 = this.cScale1 || \"#0b0000\";\n this.cScale2 = this.cScale2 || \"#4d1037\";\n this.cScale3 = this.cScale3 || \"#3f5258\";\n this.cScale4 = this.cScale4 || \"#4f2f1b\";\n this.cScale5 = this.cScale5 || \"#6e0a0a\";\n this.cScale6 = this.cScale6 || \"#3b0048\";\n this.cScale7 = this.cScale7 || \"#995a01\";\n this.cScale8 = this.cScale8 || \"#154706\";\n this.cScale9 = this.cScale9 || \"#161722\";\n this.cScale10 = this.cScale10 || \"#00296f\";\n this.cScale11 = this.cScale11 || \"#01629c\";\n this.cScale12 = this.cScale12 || \"#010029\";\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust3(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust3(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust3(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust3(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust3(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust3(this.primaryColor, { h: 210 });\n this.cScale9 = this.cScale9 || adjust3(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust3(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust3(this.primaryColor, { h: 330 });\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || invert2(this[\"cScale\" + i]);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || lighten2(this[\"cScale\" + i], 10);\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust3(this.mainBkg, { h: 30, s: -30, l: -(-10 + i * 4) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust3(this.mainBkg, { h: 30, s: -30, l: -(-7 + i * 4) });\n }\n this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? \"black\" : this.labelTextColor);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"pie\" + i] = this[\"cScale\" + i];\n }\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust3(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust3(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust3(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust3(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust3(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust3(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark2(this.quadrant1Fill) ? lighten2(this.quadrant1Fill) : darken2(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.xyChart = {\n backgroundColor: this.xyChart?.backgroundColor || this.background,\n titleColor: this.xyChart?.titleColor || this.primaryTextColor,\n xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,\n xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,\n xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,\n xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,\n yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,\n yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,\n yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,\n yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,\n plotColorPalette: this.xyChart?.plotColorPalette || \"#3498db,#2ecc71,#e74c3c,#f1c40f,#bdc3c7,#ffffff,#34495e,#9b59b6,#1abc9c,#e67e22\"\n };\n this.packet = {\n startByteColor: this.primaryTextColor,\n endByteColor: this.primaryTextColor,\n labelColor: this.primaryTextColor,\n titleColor: this.primaryTextColor,\n blockStrokeColor: this.primaryTextColor,\n blockFillColor: this.background\n };\n this.radar = {\n axisColor: this.radar?.axisColor || this.lineColor,\n axisStrokeWidth: this.radar?.axisStrokeWidth || 2,\n axisLabelFontSize: this.radar?.axisLabelFontSize || 12,\n curveOpacity: this.radar?.curveOpacity || 0.5,\n curveStrokeWidth: this.radar?.curveStrokeWidth || 2,\n graticuleColor: this.radar?.graticuleColor || \"#DEDEDE\",\n graticuleStrokeWidth: this.radar?.graticuleStrokeWidth || 1,\n graticuleOpacity: this.radar?.graticuleOpacity || 0.3,\n legendBoxSize: this.radar?.legendBoxSize || 12,\n legendFontSize: this.radar?.legendFontSize || 12\n };\n this.classText = this.primaryTextColor;\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken2(this.secondaryColor, 30) : this.secondaryColor);\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = lighten2(this.secondaryColor, 20);\n this.git1 = lighten2(this.pie2 || this.secondaryColor, 20);\n this.git2 = lighten2(this.pie3 || this.tertiaryColor, 20);\n this.git3 = lighten2(this.pie4 || adjust3(this.primaryColor, { h: -30 }), 20);\n this.git4 = lighten2(this.pie5 || adjust3(this.primaryColor, { h: -60 }), 20);\n this.git5 = lighten2(this.pie6 || adjust3(this.primaryColor, { h: -90 }), 10);\n this.git6 = lighten2(this.pie7 || adjust3(this.primaryColor, { h: 60 }), 10);\n this.git7 = lighten2(this.pie8 || adjust3(this.primaryColor, { h: 120 }), 20);\n this.gitInv0 = this.gitInv0 || invert2(this.git0);\n this.gitInv1 = this.gitInv1 || invert2(this.git1);\n this.gitInv2 = this.gitInv2 || invert2(this.git2);\n this.gitInv3 = this.gitInv3 || invert2(this.git3);\n this.gitInv4 = this.gitInv4 || invert2(this.git4);\n this.gitInv5 = this.gitInv5 || invert2(this.git5);\n this.gitInv6 = this.gitInv6 || invert2(this.git6);\n this.gitInv7 = this.gitInv7 || invert2(this.git7);\n this.gitBranchLabel0 = this.gitBranchLabel0 || invert2(this.labelTextColor);\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || invert2(this.labelTextColor);\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || lighten2(this.background, 12);\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || lighten2(this.background, 2);\n this.nodeBorder = this.nodeBorder || \"#999\";\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nvar getThemeVariables2 = /* @__PURE__ */ __name((userOverrides) => {\n const theme = new Theme2();\n theme.calculate(userOverrides);\n return theme;\n}, \"getThemeVariables\");\n\n// src/themes/theme-default.js\nimport { invert as invert3, lighten as lighten3, rgba as rgba2, adjust as adjust4, darken as darken3, isDark as isDark3 } from \"khroma\";\nvar Theme3 = class {\n static {\n __name(this, \"Theme\");\n }\n constructor() {\n this.background = \"#f4f4f4\";\n this.primaryColor = \"#ECECFF\";\n this.secondaryColor = adjust4(this.primaryColor, { h: 120 });\n this.secondaryColor = \"#ffffde\";\n this.tertiaryColor = adjust4(this.primaryColor, { h: -160 });\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert3(this.primaryColor);\n this.secondaryTextColor = invert3(this.secondaryColor);\n this.tertiaryTextColor = invert3(this.tertiaryColor);\n this.lineColor = invert3(this.background);\n this.textColor = invert3(this.background);\n this.background = \"white\";\n this.mainBkg = \"#ECECFF\";\n this.secondBkg = \"#ffffde\";\n this.lineColor = \"#333333\";\n this.border1 = \"#9370DB\";\n this.border2 = \"#aaaa33\";\n this.arrowheadColor = \"#333333\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.labelBackground = \"rgba(232,232,232, 0.8)\";\n this.textColor = \"#333\";\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"calculated\";\n this.edgeLabelBackground = \"calculated\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"black\";\n this.actorLineColor = \"calculated\";\n this.signalColor = \"calculated\";\n this.signalTextColor = \"calculated\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"calculated\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"#666\";\n this.activationBkgColor = \"#f4f4f4\";\n this.sequenceNumberColor = \"white\";\n this.sectionBkgColor = \"calculated\";\n this.altSectionBkgColor = \"calculated\";\n this.sectionBkgColor2 = \"calculated\";\n this.excludeBkgColor = \"#eeeeee\";\n this.taskBorderColor = \"calculated\";\n this.taskBkgColor = \"calculated\";\n this.taskTextLightColor = \"calculated\";\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextDarkColor = \"calculated\";\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.taskTextClickableColor = \"calculated\";\n this.activeTaskBorderColor = \"calculated\";\n this.activeTaskBkgColor = \"calculated\";\n this.gridColor = \"calculated\";\n this.doneTaskBkgColor = \"calculated\";\n this.doneTaskBorderColor = \"calculated\";\n this.critBorderColor = \"calculated\";\n this.critBkgColor = \"calculated\";\n this.todayLineColor = \"calculated\";\n this.vertLineColor = \"calculated\";\n this.sectionBkgColor = rgba2(102, 102, 255, 0.49);\n this.altSectionBkgColor = \"white\";\n this.sectionBkgColor2 = \"#fff400\";\n this.taskBorderColor = \"#534fbc\";\n this.taskBkgColor = \"#8a90dd\";\n this.taskTextLightColor = \"white\";\n this.taskTextColor = \"calculated\";\n this.taskTextDarkColor = \"black\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = \"#534fbc\";\n this.activeTaskBkgColor = \"#bfc7ff\";\n this.gridColor = \"lightgrey\";\n this.doneTaskBkgColor = \"lightgrey\";\n this.doneTaskBorderColor = \"grey\";\n this.critBorderColor = \"#ff8888\";\n this.critBkgColor = \"red\";\n this.todayLineColor = \"red\";\n this.vertLineColor = \"navy\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.archEdgeColor = \"calculated\";\n this.archEdgeArrowColor = \"calculated\";\n this.archEdgeWidth = \"3\";\n this.archGroupBorderColor = this.primaryBorderColor;\n this.archGroupBorderWidth = \"2px\";\n this.rowOdd = \"calculated\";\n this.rowEven = \"calculated\";\n this.labelColor = \"black\";\n this.errorBkgColor = \"#552222\";\n this.errorTextColor = \"#552222\";\n this.updateColors();\n }\n updateColors() {\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust4(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust4(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust4(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust4(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust4(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust4(this.primaryColor, { h: 210 });\n this.cScale9 = this.cScale9 || adjust4(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust4(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust4(this.primaryColor, { h: 330 });\n this[\"cScalePeer1\"] = this[\"cScalePeer1\"] || darken3(this.secondaryColor, 45);\n this[\"cScalePeer2\"] = this[\"cScalePeer2\"] || darken3(this.tertiaryColor, 40);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken3(this[\"cScale\" + i], 10);\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken3(this[\"cScale\" + i], 25);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || adjust4(this[\"cScale\" + i], { h: 180 });\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust4(this.mainBkg, { h: 30, l: -(5 + i * 5) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust4(this.mainBkg, { h: 30, l: -(7 + i * 5) });\n }\n this.scaleLabelColor = this.scaleLabelColor !== \"calculated\" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;\n if (this.labelTextColor !== \"calculated\") {\n this.cScaleLabel0 = this.cScaleLabel0 || invert3(this.labelTextColor);\n this.cScaleLabel3 = this.cScaleLabel3 || invert3(this.labelTextColor);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.labelTextColor;\n }\n }\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.titleColor = this.textColor;\n this.edgeLabelBackground = this.labelBackground;\n this.actorBorder = lighten3(this.border1, 23);\n this.actorBkg = this.mainBkg;\n this.labelBoxBkgColor = this.actorBkg;\n this.signalColor = this.textColor;\n this.signalTextColor = this.textColor;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.actorTextColor;\n this.loopTextColor = this.actorTextColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.actorTextColor;\n this.actorLineColor = this.actorBorder;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.archEdgeColor = this.lineColor;\n this.archEdgeArrowColor = this.lineColor;\n this.rowOdd = this.rowOdd || lighten3(this.primaryColor, 75) || \"#ffffff\";\n this.rowEven = this.rowEven || lighten3(this.primaryColor, 1);\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#f0f0f0\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.nodeBorder;\n this.specialStateColor = this.lineColor;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.classText = this.primaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust4(this.primaryColor, { h: 64 });\n this.fillType3 = adjust4(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust4(this.primaryColor, { h: -64 });\n this.fillType5 = adjust4(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust4(this.primaryColor, { h: 128 });\n this.fillType7 = adjust4(this.secondaryColor, { h: 128 });\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || adjust4(this.tertiaryColor, { l: -40 });\n this.pie4 = this.pie4 || adjust4(this.primaryColor, { l: -10 });\n this.pie5 = this.pie5 || adjust4(this.secondaryColor, { l: -30 });\n this.pie6 = this.pie6 || adjust4(this.tertiaryColor, { l: -20 });\n this.pie7 = this.pie7 || adjust4(this.primaryColor, { h: 60, l: -20 });\n this.pie8 = this.pie8 || adjust4(this.primaryColor, { h: -60, l: -40 });\n this.pie9 = this.pie9 || adjust4(this.primaryColor, { h: 120, l: -40 });\n this.pie10 = this.pie10 || adjust4(this.primaryColor, { h: 60, l: -40 });\n this.pie11 = this.pie11 || adjust4(this.primaryColor, { h: -90, l: -40 });\n this.pie12 = this.pie12 || adjust4(this.primaryColor, { h: 120, l: -30 });\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust4(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust4(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust4(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust4(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust4(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust4(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark3(this.quadrant1Fill) ? lighten3(this.quadrant1Fill) : darken3(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.radar = {\n axisColor: this.radar?.axisColor || this.lineColor,\n axisStrokeWidth: this.radar?.axisStrokeWidth || 2,\n axisLabelFontSize: this.radar?.axisLabelFontSize || 12,\n curveOpacity: this.radar?.curveOpacity || 0.5,\n curveStrokeWidth: this.radar?.curveStrokeWidth || 2,\n graticuleColor: this.radar?.graticuleColor || \"#DEDEDE\",\n graticuleStrokeWidth: this.radar?.graticuleStrokeWidth || 1,\n graticuleOpacity: this.radar?.graticuleOpacity || 0.3,\n legendBoxSize: this.radar?.legendBoxSize || 12,\n legendFontSize: this.radar?.legendFontSize || 12\n };\n this.xyChart = {\n backgroundColor: this.xyChart?.backgroundColor || this.background,\n titleColor: this.xyChart?.titleColor || this.primaryTextColor,\n xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,\n xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,\n xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,\n xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,\n yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,\n yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,\n yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,\n yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,\n plotColorPalette: this.xyChart?.plotColorPalette || \"#ECECFF,#8493A6,#FFC3A0,#DCDDE1,#B8E994,#D1A36F,#C3CDE6,#FFB6C1,#496078,#F8F3E3\"\n };\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.labelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust4(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust4(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust4(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust4(this.primaryColor, { h: 60 });\n this.git7 = this.git7 || adjust4(this.primaryColor, { h: 120 });\n if (this.darkMode) {\n this.git0 = lighten3(this.git0, 25);\n this.git1 = lighten3(this.git1, 25);\n this.git2 = lighten3(this.git2, 25);\n this.git3 = lighten3(this.git3, 25);\n this.git4 = lighten3(this.git4, 25);\n this.git5 = lighten3(this.git5, 25);\n this.git6 = lighten3(this.git6, 25);\n this.git7 = lighten3(this.git7, 25);\n } else {\n this.git0 = darken3(this.git0, 25);\n this.git1 = darken3(this.git1, 25);\n this.git2 = darken3(this.git2, 25);\n this.git3 = darken3(this.git3, 25);\n this.git4 = darken3(this.git4, 25);\n this.git5 = darken3(this.git5, 25);\n this.git6 = darken3(this.git6, 25);\n this.git7 = darken3(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || darken3(invert3(this.git0), 25);\n this.gitInv1 = this.gitInv1 || invert3(this.git1);\n this.gitInv2 = this.gitInv2 || invert3(this.git2);\n this.gitInv3 = this.gitInv3 || invert3(this.git3);\n this.gitInv4 = this.gitInv4 || invert3(this.git4);\n this.gitInv5 = this.gitInv5 || invert3(this.git5);\n this.gitInv6 = this.gitInv6 || invert3(this.git6);\n this.gitInv7 = this.gitInv7 || invert3(this.git7);\n this.gitBranchLabel0 = this.gitBranchLabel0 || invert3(this.labelTextColor);\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || invert3(this.labelTextColor);\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n Object.keys(this).forEach((k) => {\n if (this[k] === \"calculated\") {\n this[k] = void 0;\n }\n });\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nvar getThemeVariables3 = /* @__PURE__ */ __name((userOverrides) => {\n const theme = new Theme3();\n theme.calculate(userOverrides);\n return theme;\n}, \"getThemeVariables\");\n\n// src/themes/theme-forest.js\nimport { adjust as adjust5, darken as darken4, invert as invert4, isDark as isDark4, lighten as lighten4 } from \"khroma\";\nvar Theme4 = class {\n static {\n __name(this, \"Theme\");\n }\n constructor() {\n this.background = \"#f4f4f4\";\n this.primaryColor = \"#cde498\";\n this.secondaryColor = \"#cdffb2\";\n this.background = \"white\";\n this.mainBkg = \"#cde498\";\n this.secondBkg = \"#cdffb2\";\n this.lineColor = \"green\";\n this.border1 = \"#13540c\";\n this.border2 = \"#6eaa49\";\n this.arrowheadColor = \"green\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.tertiaryColor = lighten4(\"#cde498\", 10);\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert4(this.primaryColor);\n this.secondaryTextColor = invert4(this.secondaryColor);\n this.tertiaryTextColor = invert4(this.primaryColor);\n this.lineColor = invert4(this.background);\n this.textColor = invert4(this.background);\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"#333\";\n this.edgeLabelBackground = \"#e8e8e8\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"black\";\n this.actorLineColor = \"calculated\";\n this.signalColor = \"#333\";\n this.signalTextColor = \"#333\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"#326932\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"#666\";\n this.activationBkgColor = \"#f4f4f4\";\n this.sequenceNumberColor = \"white\";\n this.sectionBkgColor = \"#6eaa49\";\n this.altSectionBkgColor = \"white\";\n this.sectionBkgColor2 = \"#6eaa49\";\n this.excludeBkgColor = \"#eeeeee\";\n this.taskBorderColor = \"calculated\";\n this.taskBkgColor = \"#487e3a\";\n this.taskTextLightColor = \"white\";\n this.taskTextColor = \"calculated\";\n this.taskTextDarkColor = \"black\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = \"calculated\";\n this.activeTaskBkgColor = \"calculated\";\n this.gridColor = \"lightgrey\";\n this.doneTaskBkgColor = \"lightgrey\";\n this.doneTaskBorderColor = \"grey\";\n this.critBorderColor = \"#ff8888\";\n this.critBkgColor = \"red\";\n this.todayLineColor = \"red\";\n this.vertLineColor = \"#00BFFF\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.archEdgeColor = \"calculated\";\n this.archEdgeArrowColor = \"calculated\";\n this.archEdgeWidth = \"3\";\n this.archGroupBorderColor = this.primaryBorderColor;\n this.archGroupBorderWidth = \"2px\";\n this.labelColor = \"black\";\n this.errorBkgColor = \"#552222\";\n this.errorTextColor = \"#552222\";\n }\n updateColors() {\n this.actorBorder = darken4(this.mainBkg, 20);\n this.actorBkg = this.mainBkg;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelTextColor = this.actorTextColor;\n this.loopTextColor = this.actorTextColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.actorTextColor;\n this.actorLineColor = this.actorBorder;\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust5(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust5(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust5(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust5(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust5(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust5(this.primaryColor, { h: 210 });\n this.cScale9 = this.cScale9 || adjust5(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust5(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust5(this.primaryColor, { h: 330 });\n this[\"cScalePeer1\"] = this[\"cScalePeer1\"] || darken4(this.secondaryColor, 45);\n this[\"cScalePeer2\"] = this[\"cScalePeer2\"] || darken4(this.tertiaryColor, 40);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken4(this[\"cScale\" + i], 10);\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken4(this[\"cScale\" + i], 25);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || adjust5(this[\"cScale\" + i], { h: 180 });\n }\n this.scaleLabelColor = this.scaleLabelColor !== \"calculated\" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust5(this.mainBkg, { h: 30, s: -30, l: -(5 + i * 5) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust5(this.mainBkg, { h: 30, s: -30, l: -(8 + i * 5) });\n }\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.taskBorderColor = this.border1;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.activeTaskBorderColor = this.taskBorderColor;\n this.activeTaskBkgColor = this.mainBkg;\n this.archEdgeColor = this.lineColor;\n this.archEdgeArrowColor = this.lineColor;\n this.rowOdd = this.rowOdd || lighten4(this.mainBkg, 75) || \"#ffffff\";\n this.rowEven = this.rowEven || lighten4(this.mainBkg, 20);\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#f0f0f0\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = this.lineColor;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.classText = this.primaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust5(this.primaryColor, { h: 64 });\n this.fillType3 = adjust5(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust5(this.primaryColor, { h: -64 });\n this.fillType5 = adjust5(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust5(this.primaryColor, { h: 128 });\n this.fillType7 = adjust5(this.secondaryColor, { h: 128 });\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || this.tertiaryColor;\n this.pie4 = this.pie4 || adjust5(this.primaryColor, { l: -30 });\n this.pie5 = this.pie5 || adjust5(this.secondaryColor, { l: -30 });\n this.pie6 = this.pie6 || adjust5(this.tertiaryColor, { h: 40, l: -40 });\n this.pie7 = this.pie7 || adjust5(this.primaryColor, { h: 60, l: -10 });\n this.pie8 = this.pie8 || adjust5(this.primaryColor, { h: -60, l: -10 });\n this.pie9 = this.pie9 || adjust5(this.primaryColor, { h: 120, l: 0 });\n this.pie10 = this.pie10 || adjust5(this.primaryColor, { h: 60, l: -50 });\n this.pie11 = this.pie11 || adjust5(this.primaryColor, { h: -60, l: -50 });\n this.pie12 = this.pie12 || adjust5(this.primaryColor, { h: 120, l: -50 });\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust5(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust5(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust5(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust5(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust5(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust5(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark4(this.quadrant1Fill) ? lighten4(this.quadrant1Fill) : darken4(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.packet = {\n startByteColor: this.primaryTextColor,\n endByteColor: this.primaryTextColor,\n labelColor: this.primaryTextColor,\n titleColor: this.primaryTextColor,\n blockStrokeColor: this.primaryTextColor,\n blockFillColor: this.mainBkg\n };\n this.radar = {\n axisColor: this.radar?.axisColor || this.lineColor,\n axisStrokeWidth: this.radar?.axisStrokeWidth || 2,\n axisLabelFontSize: this.radar?.axisLabelFontSize || 12,\n curveOpacity: this.radar?.curveOpacity || 0.5,\n curveStrokeWidth: this.radar?.curveStrokeWidth || 2,\n graticuleColor: this.radar?.graticuleColor || \"#DEDEDE\",\n graticuleStrokeWidth: this.radar?.graticuleStrokeWidth || 1,\n graticuleOpacity: this.radar?.graticuleOpacity || 0.3,\n legendBoxSize: this.radar?.legendBoxSize || 12,\n legendFontSize: this.radar?.legendFontSize || 12\n };\n this.xyChart = {\n backgroundColor: this.xyChart?.backgroundColor || this.background,\n titleColor: this.xyChart?.titleColor || this.primaryTextColor,\n xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,\n xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,\n xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,\n xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,\n yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,\n yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,\n yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,\n yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,\n plotColorPalette: this.xyChart?.plotColorPalette || \"#CDE498,#FF6B6B,#A0D2DB,#D7BDE2,#F0F0F0,#FFC3A0,#7FD8BE,#FF9A8B,#FAF3E0,#FFF176\"\n };\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust5(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust5(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust5(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust5(this.primaryColor, { h: 60 });\n this.git7 = this.git7 || adjust5(this.primaryColor, { h: 120 });\n if (this.darkMode) {\n this.git0 = lighten4(this.git0, 25);\n this.git1 = lighten4(this.git1, 25);\n this.git2 = lighten4(this.git2, 25);\n this.git3 = lighten4(this.git3, 25);\n this.git4 = lighten4(this.git4, 25);\n this.git5 = lighten4(this.git5, 25);\n this.git6 = lighten4(this.git6, 25);\n this.git7 = lighten4(this.git7, 25);\n } else {\n this.git0 = darken4(this.git0, 25);\n this.git1 = darken4(this.git1, 25);\n this.git2 = darken4(this.git2, 25);\n this.git3 = darken4(this.git3, 25);\n this.git4 = darken4(this.git4, 25);\n this.git5 = darken4(this.git5, 25);\n this.git6 = darken4(this.git6, 25);\n this.git7 = darken4(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || invert4(this.git0);\n this.gitInv1 = this.gitInv1 || invert4(this.git1);\n this.gitInv2 = this.gitInv2 || invert4(this.git2);\n this.gitInv3 = this.gitInv3 || invert4(this.git3);\n this.gitInv4 = this.gitInv4 || invert4(this.git4);\n this.gitInv5 = this.gitInv5 || invert4(this.git5);\n this.gitInv6 = this.gitInv6 || invert4(this.git6);\n this.gitInv7 = this.gitInv7 || invert4(this.git7);\n this.gitBranchLabel0 = this.gitBranchLabel0 || invert4(this.labelTextColor);\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || invert4(this.labelTextColor);\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nvar getThemeVariables4 = /* @__PURE__ */ __name((userOverrides) => {\n const theme = new Theme4();\n theme.calculate(userOverrides);\n return theme;\n}, \"getThemeVariables\");\n\n// src/themes/theme-neutral.js\nimport { invert as invert5, darken as darken5, lighten as lighten5, adjust as adjust6, isDark as isDark5 } from \"khroma\";\nvar Theme5 = class {\n static {\n __name(this, \"Theme\");\n }\n constructor() {\n this.primaryColor = \"#eee\";\n this.contrast = \"#707070\";\n this.secondaryColor = lighten5(this.contrast, 55);\n this.background = \"#ffffff\";\n this.tertiaryColor = adjust6(this.primaryColor, { h: -160 });\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert5(this.primaryColor);\n this.secondaryTextColor = invert5(this.secondaryColor);\n this.tertiaryTextColor = invert5(this.tertiaryColor);\n this.lineColor = invert5(this.background);\n this.textColor = invert5(this.background);\n this.mainBkg = \"#eee\";\n this.secondBkg = \"calculated\";\n this.lineColor = \"#666\";\n this.border1 = \"#999\";\n this.border2 = \"calculated\";\n this.note = \"#ffa\";\n this.text = \"#333\";\n this.critical = \"#d42\";\n this.done = \"#bbb\";\n this.arrowheadColor = \"#333333\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"calculated\";\n this.edgeLabelBackground = \"white\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"calculated\";\n this.actorLineColor = this.actorBorder;\n this.signalColor = \"calculated\";\n this.signalTextColor = \"calculated\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"calculated\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"calculated\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"#666\";\n this.activationBkgColor = \"#f4f4f4\";\n this.sequenceNumberColor = \"white\";\n this.sectionBkgColor = \"calculated\";\n this.altSectionBkgColor = \"white\";\n this.sectionBkgColor2 = \"calculated\";\n this.excludeBkgColor = \"#eeeeee\";\n this.taskBorderColor = \"calculated\";\n this.taskBkgColor = \"calculated\";\n this.taskTextLightColor = \"white\";\n this.taskTextColor = \"calculated\";\n this.taskTextDarkColor = \"calculated\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = \"calculated\";\n this.activeTaskBkgColor = \"calculated\";\n this.gridColor = \"calculated\";\n this.doneTaskBkgColor = \"calculated\";\n this.doneTaskBorderColor = \"calculated\";\n this.critBkgColor = \"calculated\";\n this.critBorderColor = \"calculated\";\n this.todayLineColor = \"calculated\";\n this.vertLineColor = \"calculated\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.archEdgeColor = \"calculated\";\n this.archEdgeArrowColor = \"calculated\";\n this.archEdgeWidth = \"3\";\n this.archGroupBorderColor = this.primaryBorderColor;\n this.archGroupBorderWidth = \"2px\";\n this.rowOdd = this.rowOdd || lighten5(this.mainBkg, 75) || \"#ffffff\";\n this.rowEven = this.rowEven || \"#f4f4f4\";\n this.labelColor = \"black\";\n this.errorBkgColor = \"#552222\";\n this.errorTextColor = \"#552222\";\n }\n updateColors() {\n this.secondBkg = lighten5(this.contrast, 55);\n this.border2 = this.contrast;\n this.actorBorder = lighten5(this.border1, 23);\n this.actorBkg = this.mainBkg;\n this.actorTextColor = this.text;\n this.actorLineColor = this.actorBorder;\n this.signalColor = this.text;\n this.signalTextColor = this.text;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.text;\n this.loopTextColor = this.text;\n this.noteBorderColor = \"#999\";\n this.noteBkgColor = \"#666\";\n this.noteTextColor = \"#fff\";\n this.cScale0 = this.cScale0 || \"#555\";\n this.cScale1 = this.cScale1 || \"#F4F4F4\";\n this.cScale2 = this.cScale2 || \"#555\";\n this.cScale3 = this.cScale3 || \"#BBB\";\n this.cScale4 = this.cScale4 || \"#777\";\n this.cScale5 = this.cScale5 || \"#999\";\n this.cScale6 = this.cScale6 || \"#DDD\";\n this.cScale7 = this.cScale7 || \"#FFF\";\n this.cScale8 = this.cScale8 || \"#DDD\";\n this.cScale9 = this.cScale9 || \"#BBB\";\n this.cScale10 = this.cScale10 || \"#999\";\n this.cScale11 = this.cScale11 || \"#777\";\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || invert5(this[\"cScale\" + i]);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n if (this.darkMode) {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || lighten5(this[\"cScale\" + i], 10);\n } else {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken5(this[\"cScale\" + i], 10);\n }\n }\n this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? \"black\" : this.labelTextColor);\n this.cScaleLabel0 = this.cScaleLabel0 || this.cScale1;\n this.cScaleLabel2 = this.cScaleLabel2 || this.cScale1;\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust6(this.mainBkg, { l: -(5 + i * 5) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust6(this.mainBkg, { l: -(8 + i * 5) });\n }\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.titleColor = this.text;\n this.sectionBkgColor = lighten5(this.contrast, 30);\n this.sectionBkgColor2 = lighten5(this.contrast, 30);\n this.taskBorderColor = darken5(this.contrast, 10);\n this.taskBkgColor = this.contrast;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextDarkColor = this.text;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.activeTaskBorderColor = this.taskBorderColor;\n this.activeTaskBkgColor = this.mainBkg;\n this.gridColor = lighten5(this.border1, 30);\n this.doneTaskBkgColor = this.done;\n this.doneTaskBorderColor = this.lineColor;\n this.critBkgColor = this.critical;\n this.critBorderColor = darken5(this.critBkgColor, 10);\n this.todayLineColor = this.critBkgColor;\n this.vertLineColor = this.critBkgColor;\n this.archEdgeColor = this.lineColor;\n this.archEdgeArrowColor = this.lineColor;\n this.transitionColor = this.transitionColor || \"#000\";\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#f4f4f4\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.stateBorder = this.stateBorder || \"#000\";\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = \"#222\";\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.classText = this.primaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust6(this.primaryColor, { h: 64 });\n this.fillType3 = adjust6(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust6(this.primaryColor, { h: -64 });\n this.fillType5 = adjust6(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust6(this.primaryColor, { h: 128 });\n this.fillType7 = adjust6(this.secondaryColor, { h: 128 });\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"pie\" + i] = this[\"cScale\" + i];\n }\n this.pie12 = this.pie0;\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust6(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust6(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust6(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust6(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust6(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust6(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark5(this.quadrant1Fill) ? lighten5(this.quadrant1Fill) : darken5(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.xyChart = {\n backgroundColor: this.xyChart?.backgroundColor || this.background,\n titleColor: this.xyChart?.titleColor || this.primaryTextColor,\n xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,\n xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,\n xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,\n xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,\n yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,\n yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,\n yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,\n yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,\n plotColorPalette: this.xyChart?.plotColorPalette || \"#EEE,#6BB8E4,#8ACB88,#C7ACD6,#E8DCC2,#FFB2A8,#FFF380,#7E8D91,#FFD8B1,#FAF3E0\"\n };\n this.radar = {\n axisColor: this.radar?.axisColor || this.lineColor,\n axisStrokeWidth: this.radar?.axisStrokeWidth || 2,\n axisLabelFontSize: this.radar?.axisLabelFontSize || 12,\n curveOpacity: this.radar?.curveOpacity || 0.5,\n curveStrokeWidth: this.radar?.curveStrokeWidth || 2,\n graticuleColor: this.radar?.graticuleColor || \"#DEDEDE\",\n graticuleStrokeWidth: this.radar?.graticuleStrokeWidth || 1,\n graticuleOpacity: this.radar?.graticuleOpacity || 0.3,\n legendBoxSize: this.radar?.legendBoxSize || 12,\n legendFontSize: this.radar?.legendFontSize || 12\n };\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = darken5(this.pie1, 25) || this.primaryColor;\n this.git1 = this.pie2 || this.secondaryColor;\n this.git2 = this.pie3 || this.tertiaryColor;\n this.git3 = this.pie4 || adjust6(this.primaryColor, { h: -30 });\n this.git4 = this.pie5 || adjust6(this.primaryColor, { h: -60 });\n this.git5 = this.pie6 || adjust6(this.primaryColor, { h: -90 });\n this.git6 = this.pie7 || adjust6(this.primaryColor, { h: 60 });\n this.git7 = this.pie8 || adjust6(this.primaryColor, { h: 120 });\n this.gitInv0 = this.gitInv0 || invert5(this.git0);\n this.gitInv1 = this.gitInv1 || invert5(this.git1);\n this.gitInv2 = this.gitInv2 || invert5(this.git2);\n this.gitInv3 = this.gitInv3 || invert5(this.git3);\n this.gitInv4 = this.gitInv4 || invert5(this.git4);\n this.gitInv5 = this.gitInv5 || invert5(this.git5);\n this.gitInv6 = this.gitInv6 || invert5(this.git6);\n this.gitInv7 = this.gitInv7 || invert5(this.git7);\n this.branchLabelColor = this.branchLabelColor || this.labelTextColor;\n this.gitBranchLabel0 = this.branchLabelColor;\n this.gitBranchLabel1 = \"white\";\n this.gitBranchLabel2 = this.branchLabelColor;\n this.gitBranchLabel3 = \"white\";\n this.gitBranchLabel4 = this.branchLabelColor;\n this.gitBranchLabel5 = this.branchLabelColor;\n this.gitBranchLabel6 = this.branchLabelColor;\n this.gitBranchLabel7 = this.branchLabelColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nvar getThemeVariables5 = /* @__PURE__ */ __name((userOverrides) => {\n const theme = new Theme5();\n theme.calculate(userOverrides);\n return theme;\n}, \"getThemeVariables\");\n\n// src/themes/index.js\nvar themes_default = {\n base: {\n getThemeVariables\n },\n dark: {\n getThemeVariables: getThemeVariables2\n },\n default: {\n getThemeVariables: getThemeVariables3\n },\n forest: {\n getThemeVariables: getThemeVariables4\n },\n neutral: {\n getThemeVariables: getThemeVariables5\n }\n};\n\n// src/schemas/config.schema.yaml?only-defaults=true\nvar config_schema_default = {\n \"flowchart\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"subGraphTitleMargin\": {\n \"top\": 0,\n \"bottom\": 0\n },\n \"diagramPadding\": 8,\n \"htmlLabels\": true,\n \"nodeSpacing\": 50,\n \"rankSpacing\": 50,\n \"curve\": \"basis\",\n \"padding\": 15,\n \"defaultRenderer\": \"dagre-wrapper\",\n \"wrappingWidth\": 200,\n \"inheritDir\": false\n },\n \"sequence\": {\n \"useMaxWidth\": true,\n \"hideUnusedParticipants\": false,\n \"activationWidth\": 10,\n \"diagramMarginX\": 50,\n \"diagramMarginY\": 10,\n \"actorMargin\": 50,\n \"width\": 150,\n \"height\": 65,\n \"boxMargin\": 10,\n \"boxTextMargin\": 5,\n \"noteMargin\": 10,\n \"messageMargin\": 35,\n \"messageAlign\": \"center\",\n \"mirrorActors\": true,\n \"forceMenus\": false,\n \"bottomMarginAdj\": 1,\n \"rightAngles\": false,\n \"showSequenceNumbers\": false,\n \"actorFontSize\": 14,\n \"actorFontFamily\": '\"Open Sans\", sans-serif',\n \"actorFontWeight\": 400,\n \"noteFontSize\": 14,\n \"noteFontFamily\": '\"trebuchet ms\", verdana, arial, sans-serif',\n \"noteFontWeight\": 400,\n \"noteAlign\": \"center\",\n \"messageFontSize\": 16,\n \"messageFontFamily\": '\"trebuchet ms\", verdana, arial, sans-serif',\n \"messageFontWeight\": 400,\n \"wrap\": false,\n \"wrapPadding\": 10,\n \"labelBoxWidth\": 50,\n \"labelBoxHeight\": 20\n },\n \"gantt\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"barHeight\": 20,\n \"barGap\": 4,\n \"topPadding\": 50,\n \"rightPadding\": 75,\n \"leftPadding\": 75,\n \"gridLineStartPadding\": 35,\n \"fontSize\": 11,\n \"sectionFontSize\": 11,\n \"numberSectionStyles\": 4,\n \"axisFormat\": \"%Y-%m-%d\",\n \"topAxis\": false,\n \"displayMode\": \"\",\n \"weekday\": \"sunday\"\n },\n \"journey\": {\n \"useMaxWidth\": true,\n \"diagramMarginX\": 50,\n \"diagramMarginY\": 10,\n \"leftMargin\": 150,\n \"maxLabelWidth\": 360,\n \"width\": 150,\n \"height\": 50,\n \"boxMargin\": 10,\n \"boxTextMargin\": 5,\n \"noteMargin\": 10,\n \"messageMargin\": 35,\n \"messageAlign\": \"center\",\n \"bottomMarginAdj\": 1,\n \"rightAngles\": false,\n \"taskFontSize\": 14,\n \"taskFontFamily\": '\"Open Sans\", sans-serif',\n \"taskMargin\": 50,\n \"activationWidth\": 10,\n \"textPlacement\": \"fo\",\n \"actorColours\": [\n \"#8FBC8F\",\n \"#7CFC00\",\n \"#00FFFF\",\n \"#20B2AA\",\n \"#B0E0E6\",\n \"#FFFFE0\"\n ],\n \"sectionFills\": [\n \"#191970\",\n \"#8B008B\",\n \"#4B0082\",\n \"#2F4F4F\",\n \"#800000\",\n \"#8B4513\",\n \"#00008B\"\n ],\n \"sectionColours\": [\n \"#fff\"\n ],\n \"titleColor\": \"\",\n \"titleFontFamily\": '\"trebuchet ms\", verdana, arial, sans-serif',\n \"titleFontSize\": \"4ex\"\n },\n \"class\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"arrowMarkerAbsolute\": false,\n \"dividerMargin\": 10,\n \"padding\": 5,\n \"textHeight\": 10,\n \"defaultRenderer\": \"dagre-wrapper\",\n \"htmlLabels\": false,\n \"hideEmptyMembersBox\": false\n },\n \"state\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"dividerMargin\": 10,\n \"sizeUnit\": 5,\n \"padding\": 8,\n \"textHeight\": 10,\n \"titleShift\": -15,\n \"noteMargin\": 10,\n \"forkWidth\": 70,\n \"forkHeight\": 7,\n \"miniPadding\": 2,\n \"fontSizeFactor\": 5.02,\n \"fontSize\": 24,\n \"labelHeight\": 16,\n \"edgeLengthFactor\": \"20\",\n \"compositTitleSize\": 35,\n \"radius\": 5,\n \"defaultRenderer\": \"dagre-wrapper\"\n },\n \"er\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"diagramPadding\": 20,\n \"layoutDirection\": \"TB\",\n \"minEntityWidth\": 100,\n \"minEntityHeight\": 75,\n \"entityPadding\": 15,\n \"nodeSpacing\": 140,\n \"rankSpacing\": 80,\n \"stroke\": \"gray\",\n \"fill\": \"honeydew\",\n \"fontSize\": 12\n },\n \"pie\": {\n \"useMaxWidth\": true,\n \"textPosition\": 0.75\n },\n \"quadrantChart\": {\n \"useMaxWidth\": true,\n \"chartWidth\": 500,\n \"chartHeight\": 500,\n \"titleFontSize\": 20,\n \"titlePadding\": 10,\n \"quadrantPadding\": 5,\n \"xAxisLabelPadding\": 5,\n \"yAxisLabelPadding\": 5,\n \"xAxisLabelFontSize\": 16,\n \"yAxisLabelFontSize\": 16,\n \"quadrantLabelFontSize\": 16,\n \"quadrantTextTopPadding\": 5,\n \"pointTextPadding\": 5,\n \"pointLabelFontSize\": 12,\n \"pointRadius\": 5,\n \"xAxisPosition\": \"top\",\n \"yAxisPosition\": \"left\",\n \"quadrantInternalBorderStrokeWidth\": 1,\n \"quadrantExternalBorderStrokeWidth\": 2\n },\n \"xyChart\": {\n \"useMaxWidth\": true,\n \"width\": 700,\n \"height\": 500,\n \"titleFontSize\": 20,\n \"titlePadding\": 10,\n \"showDataLabel\": false,\n \"showTitle\": true,\n \"xAxis\": {\n \"$ref\": \"#/$defs/XYChartAxisConfig\",\n \"showLabel\": true,\n \"labelFontSize\": 14,\n \"labelPadding\": 5,\n \"showTitle\": true,\n \"titleFontSize\": 16,\n \"titlePadding\": 5,\n \"showTick\": true,\n \"tickLength\": 5,\n \"tickWidth\": 2,\n \"showAxisLine\": true,\n \"axisLineWidth\": 2\n },\n \"yAxis\": {\n \"$ref\": \"#/$defs/XYChartAxisConfig\",\n \"showLabel\": true,\n \"labelFontSize\": 14,\n \"labelPadding\": 5,\n \"showTitle\": true,\n \"titleFontSize\": 16,\n \"titlePadding\": 5,\n \"showTick\": true,\n \"tickLength\": 5,\n \"tickWidth\": 2,\n \"showAxisLine\": true,\n \"axisLineWidth\": 2\n },\n \"chartOrientation\": \"vertical\",\n \"plotReservedSpacePercent\": 50\n },\n \"requirement\": {\n \"useMaxWidth\": true,\n \"rect_fill\": \"#f9f9f9\",\n \"text_color\": \"#333\",\n \"rect_border_size\": \"0.5px\",\n \"rect_border_color\": \"#bbb\",\n \"rect_min_width\": 200,\n \"rect_min_height\": 200,\n \"fontSize\": 14,\n \"rect_padding\": 10,\n \"line_height\": 20\n },\n \"mindmap\": {\n \"useMaxWidth\": true,\n \"padding\": 10,\n \"maxNodeWidth\": 200\n },\n \"kanban\": {\n \"useMaxWidth\": true,\n \"padding\": 8,\n \"sectionWidth\": 200,\n \"ticketBaseUrl\": \"\"\n },\n \"timeline\": {\n \"useMaxWidth\": true,\n \"diagramMarginX\": 50,\n \"diagramMarginY\": 10,\n \"leftMargin\": 150,\n \"width\": 150,\n \"height\": 50,\n \"boxMargin\": 10,\n \"boxTextMargin\": 5,\n \"noteMargin\": 10,\n \"messageMargin\": 35,\n \"messageAlign\": \"center\",\n \"bottomMarginAdj\": 1,\n \"rightAngles\": false,\n \"taskFontSize\": 14,\n \"taskFontFamily\": '\"Open Sans\", sans-serif',\n \"taskMargin\": 50,\n \"activationWidth\": 10,\n \"textPlacement\": \"fo\",\n \"actorColours\": [\n \"#8FBC8F\",\n \"#7CFC00\",\n \"#00FFFF\",\n \"#20B2AA\",\n \"#B0E0E6\",\n \"#FFFFE0\"\n ],\n \"sectionFills\": [\n \"#191970\",\n \"#8B008B\",\n \"#4B0082\",\n \"#2F4F4F\",\n \"#800000\",\n \"#8B4513\",\n \"#00008B\"\n ],\n \"sectionColours\": [\n \"#fff\"\n ],\n \"disableMulticolor\": false\n },\n \"gitGraph\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"diagramPadding\": 8,\n \"nodeLabel\": {\n \"width\": 75,\n \"height\": 100,\n \"x\": -25,\n \"y\": 0\n },\n \"mainBranchName\": \"main\",\n \"mainBranchOrder\": 0,\n \"showCommitLabel\": true,\n \"showBranches\": true,\n \"rotateCommitLabel\": true,\n \"parallelCommits\": false,\n \"arrowMarkerAbsolute\": false\n },\n \"c4\": {\n \"useMaxWidth\": true,\n \"diagramMarginX\": 50,\n \"diagramMarginY\": 10,\n \"c4ShapeMargin\": 50,\n \"c4ShapePadding\": 20,\n \"width\": 216,\n \"height\": 60,\n \"boxMargin\": 10,\n \"c4ShapeInRow\": 4,\n \"nextLinePaddingX\": 0,\n \"c4BoundaryInRow\": 2,\n \"personFontSize\": 14,\n \"personFontFamily\": '\"Open Sans\", sans-serif',\n \"personFontWeight\": \"normal\",\n \"external_personFontSize\": 14,\n \"external_personFontFamily\": '\"Open Sans\", sans-serif',\n \"external_personFontWeight\": \"normal\",\n \"systemFontSize\": 14,\n \"systemFontFamily\": '\"Open Sans\", sans-serif',\n \"systemFontWeight\": \"normal\",\n \"external_systemFontSize\": 14,\n \"external_systemFontFamily\": '\"Open Sans\", sans-serif',\n \"external_systemFontWeight\": \"normal\",\n \"system_dbFontSize\": 14,\n \"system_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"system_dbFontWeight\": \"normal\",\n \"external_system_dbFontSize\": 14,\n \"external_system_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"external_system_dbFontWeight\": \"normal\",\n \"system_queueFontSize\": 14,\n \"system_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"system_queueFontWeight\": \"normal\",\n \"external_system_queueFontSize\": 14,\n \"external_system_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"external_system_queueFontWeight\": \"normal\",\n \"boundaryFontSize\": 14,\n \"boundaryFontFamily\": '\"Open Sans\", sans-serif',\n \"boundaryFontWeight\": \"normal\",\n \"messageFontSize\": 12,\n \"messageFontFamily\": '\"Open Sans\", sans-serif',\n \"messageFontWeight\": \"normal\",\n \"containerFontSize\": 14,\n \"containerFontFamily\": '\"Open Sans\", sans-serif',\n \"containerFontWeight\": \"normal\",\n \"external_containerFontSize\": 14,\n \"external_containerFontFamily\": '\"Open Sans\", sans-serif',\n \"external_containerFontWeight\": \"normal\",\n \"container_dbFontSize\": 14,\n \"container_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"container_dbFontWeight\": \"normal\",\n \"external_container_dbFontSize\": 14,\n \"external_container_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"external_container_dbFontWeight\": \"normal\",\n \"container_queueFontSize\": 14,\n \"container_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"container_queueFontWeight\": \"normal\",\n \"external_container_queueFontSize\": 14,\n \"external_container_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"external_container_queueFontWeight\": \"normal\",\n \"componentFontSize\": 14,\n \"componentFontFamily\": '\"Open Sans\", sans-serif',\n \"componentFontWeight\": \"normal\",\n \"external_componentFontSize\": 14,\n \"external_componentFontFamily\": '\"Open Sans\", sans-serif',\n \"external_componentFontWeight\": \"normal\",\n \"component_dbFontSize\": 14,\n \"component_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"component_dbFontWeight\": \"normal\",\n \"external_component_dbFontSize\": 14,\n \"external_component_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"external_component_dbFontWeight\": \"normal\",\n \"component_queueFontSize\": 14,\n \"component_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"component_queueFontWeight\": \"normal\",\n \"external_component_queueFontSize\": 14,\n \"external_component_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"external_component_queueFontWeight\": \"normal\",\n \"wrap\": true,\n \"wrapPadding\": 10,\n \"person_bg_color\": \"#08427B\",\n \"person_border_color\": \"#073B6F\",\n \"external_person_bg_color\": \"#686868\",\n \"external_person_border_color\": \"#8A8A8A\",\n \"system_bg_color\": \"#1168BD\",\n \"system_border_color\": \"#3C7FC0\",\n \"system_db_bg_color\": \"#1168BD\",\n \"system_db_border_color\": \"#3C7FC0\",\n \"system_queue_bg_color\": \"#1168BD\",\n \"system_queue_border_color\": \"#3C7FC0\",\n \"external_system_bg_color\": \"#999999\",\n \"external_system_border_color\": \"#8A8A8A\",\n \"external_system_db_bg_color\": \"#999999\",\n \"external_system_db_border_color\": \"#8A8A8A\",\n \"external_system_queue_bg_color\": \"#999999\",\n \"external_system_queue_border_color\": \"#8A8A8A\",\n \"container_bg_color\": \"#438DD5\",\n \"container_border_color\": \"#3C7FC0\",\n \"container_db_bg_color\": \"#438DD5\",\n \"container_db_border_color\": \"#3C7FC0\",\n \"container_queue_bg_color\": \"#438DD5\",\n \"container_queue_border_color\": \"#3C7FC0\",\n \"external_container_bg_color\": \"#B3B3B3\",\n \"external_container_border_color\": \"#A6A6A6\",\n \"external_container_db_bg_color\": \"#B3B3B3\",\n \"external_container_db_border_color\": \"#A6A6A6\",\n \"external_container_queue_bg_color\": \"#B3B3B3\",\n \"external_container_queue_border_color\": \"#A6A6A6\",\n \"component_bg_color\": \"#85BBF0\",\n \"component_border_color\": \"#78A8D8\",\n \"component_db_bg_color\": \"#85BBF0\",\n \"component_db_border_color\": \"#78A8D8\",\n \"component_queue_bg_color\": \"#85BBF0\",\n \"component_queue_border_color\": \"#78A8D8\",\n \"external_component_bg_color\": \"#CCCCCC\",\n \"external_component_border_color\": \"#BFBFBF\",\n \"external_component_db_bg_color\": \"#CCCCCC\",\n \"external_component_db_border_color\": \"#BFBFBF\",\n \"external_component_queue_bg_color\": \"#CCCCCC\",\n \"external_component_queue_border_color\": \"#BFBFBF\"\n },\n \"sankey\": {\n \"useMaxWidth\": true,\n \"width\": 600,\n \"height\": 400,\n \"linkColor\": \"gradient\",\n \"nodeAlignment\": \"justify\",\n \"showValues\": true,\n \"prefix\": \"\",\n \"suffix\": \"\"\n },\n \"block\": {\n \"useMaxWidth\": true,\n \"padding\": 8\n },\n \"packet\": {\n \"useMaxWidth\": true,\n \"rowHeight\": 32,\n \"bitWidth\": 32,\n \"bitsPerRow\": 32,\n \"showBits\": true,\n \"paddingX\": 5,\n \"paddingY\": 5\n },\n \"architecture\": {\n \"useMaxWidth\": true,\n \"padding\": 40,\n \"iconSize\": 80,\n \"fontSize\": 16\n },\n \"radar\": {\n \"useMaxWidth\": true,\n \"width\": 600,\n \"height\": 600,\n \"marginTop\": 50,\n \"marginRight\": 50,\n \"marginBottom\": 50,\n \"marginLeft\": 50,\n \"axisScaleFactor\": 1,\n \"axisLabelFactor\": 1.05,\n \"curveTension\": 0.17\n },\n \"theme\": \"default\",\n \"look\": \"classic\",\n \"handDrawnSeed\": 0,\n \"layout\": \"dagre\",\n \"maxTextSize\": 5e4,\n \"maxEdges\": 500,\n \"darkMode\": false,\n \"fontFamily\": '\"trebuchet ms\", verdana, arial, sans-serif;',\n \"logLevel\": 5,\n \"securityLevel\": \"strict\",\n \"startOnLoad\": true,\n \"arrowMarkerAbsolute\": false,\n \"secure\": [\n \"secure\",\n \"securityLevel\",\n \"startOnLoad\",\n \"maxTextSize\",\n \"suppressErrorRendering\",\n \"maxEdges\"\n ],\n \"legacyMathML\": false,\n \"forceLegacyMathML\": false,\n \"deterministicIds\": false,\n \"fontSize\": 16,\n \"markdownAutoWrap\": true,\n \"suppressErrorRendering\": false\n};\n\n// src/defaultConfig.ts\nvar config = {\n ...config_schema_default,\n // Set, even though they're `undefined` so that `configKeys` finds these keys\n // TODO: Should we replace these with `null` so that they can go in the JSON Schema?\n deterministicIDSeed: void 0,\n elk: {\n // mergeEdges is needed here to be considered\n mergeEdges: false,\n nodePlacementStrategy: \"BRANDES_KOEPF\"\n },\n themeCSS: void 0,\n // add non-JSON default config values\n themeVariables: themes_default.default.getThemeVariables(),\n sequence: {\n ...config_schema_default.sequence,\n messageFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.messageFontFamily,\n fontSize: this.messageFontSize,\n fontWeight: this.messageFontWeight\n };\n }, \"messageFont\"),\n noteFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.noteFontFamily,\n fontSize: this.noteFontSize,\n fontWeight: this.noteFontWeight\n };\n }, \"noteFont\"),\n actorFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.actorFontFamily,\n fontSize: this.actorFontSize,\n fontWeight: this.actorFontWeight\n };\n }, \"actorFont\")\n },\n class: {\n hideEmptyMembersBox: false\n },\n gantt: {\n ...config_schema_default.gantt,\n tickInterval: void 0,\n useWidth: void 0\n // can probably be removed since `configKeys` already includes this\n },\n c4: {\n ...config_schema_default.c4,\n useWidth: void 0,\n personFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.personFontFamily,\n fontSize: this.personFontSize,\n fontWeight: this.personFontWeight\n };\n }, \"personFont\"),\n flowchart: {\n ...config_schema_default.flowchart,\n inheritDir: false\n // default to legacy behavior\n },\n external_personFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_personFontFamily,\n fontSize: this.external_personFontSize,\n fontWeight: this.external_personFontWeight\n };\n }, \"external_personFont\"),\n systemFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.systemFontFamily,\n fontSize: this.systemFontSize,\n fontWeight: this.systemFontWeight\n };\n }, \"systemFont\"),\n external_systemFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_systemFontFamily,\n fontSize: this.external_systemFontSize,\n fontWeight: this.external_systemFontWeight\n };\n }, \"external_systemFont\"),\n system_dbFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.system_dbFontFamily,\n fontSize: this.system_dbFontSize,\n fontWeight: this.system_dbFontWeight\n };\n }, \"system_dbFont\"),\n external_system_dbFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_system_dbFontFamily,\n fontSize: this.external_system_dbFontSize,\n fontWeight: this.external_system_dbFontWeight\n };\n }, \"external_system_dbFont\"),\n system_queueFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.system_queueFontFamily,\n fontSize: this.system_queueFontSize,\n fontWeight: this.system_queueFontWeight\n };\n }, \"system_queueFont\"),\n external_system_queueFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_system_queueFontFamily,\n fontSize: this.external_system_queueFontSize,\n fontWeight: this.external_system_queueFontWeight\n };\n }, \"external_system_queueFont\"),\n containerFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.containerFontFamily,\n fontSize: this.containerFontSize,\n fontWeight: this.containerFontWeight\n };\n }, \"containerFont\"),\n external_containerFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_containerFontFamily,\n fontSize: this.external_containerFontSize,\n fontWeight: this.external_containerFontWeight\n };\n }, \"external_containerFont\"),\n container_dbFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.container_dbFontFamily,\n fontSize: this.container_dbFontSize,\n fontWeight: this.container_dbFontWeight\n };\n }, \"container_dbFont\"),\n external_container_dbFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_container_dbFontFamily,\n fontSize: this.external_container_dbFontSize,\n fontWeight: this.external_container_dbFontWeight\n };\n }, \"external_container_dbFont\"),\n container_queueFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.container_queueFontFamily,\n fontSize: this.container_queueFontSize,\n fontWeight: this.container_queueFontWeight\n };\n }, \"container_queueFont\"),\n external_container_queueFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_container_queueFontFamily,\n fontSize: this.external_container_queueFontSize,\n fontWeight: this.external_container_queueFontWeight\n };\n }, \"external_container_queueFont\"),\n componentFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.componentFontFamily,\n fontSize: this.componentFontSize,\n fontWeight: this.componentFontWeight\n };\n }, \"componentFont\"),\n external_componentFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_componentFontFamily,\n fontSize: this.external_componentFontSize,\n fontWeight: this.external_componentFontWeight\n };\n }, \"external_componentFont\"),\n component_dbFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.component_dbFontFamily,\n fontSize: this.component_dbFontSize,\n fontWeight: this.component_dbFontWeight\n };\n }, \"component_dbFont\"),\n external_component_dbFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_component_dbFontFamily,\n fontSize: this.external_component_dbFontSize,\n fontWeight: this.external_component_dbFontWeight\n };\n }, \"external_component_dbFont\"),\n component_queueFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.component_queueFontFamily,\n fontSize: this.component_queueFontSize,\n fontWeight: this.component_queueFontWeight\n };\n }, \"component_queueFont\"),\n external_component_queueFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_component_queueFontFamily,\n fontSize: this.external_component_queueFontSize,\n fontWeight: this.external_component_queueFontWeight\n };\n }, \"external_component_queueFont\"),\n boundaryFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.boundaryFontFamily,\n fontSize: this.boundaryFontSize,\n fontWeight: this.boundaryFontWeight\n };\n }, \"boundaryFont\"),\n messageFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.messageFontFamily,\n fontSize: this.messageFontSize,\n fontWeight: this.messageFontWeight\n };\n }, \"messageFont\")\n },\n pie: {\n ...config_schema_default.pie,\n useWidth: 984\n },\n xyChart: {\n ...config_schema_default.xyChart,\n useWidth: void 0\n },\n requirement: {\n ...config_schema_default.requirement,\n useWidth: void 0\n },\n packet: {\n ...config_schema_default.packet\n },\n radar: {\n ...config_schema_default.radar\n },\n treemap: {\n useMaxWidth: true,\n padding: 10,\n diagramPadding: 8,\n showValues: true,\n nodeWidth: 100,\n nodeHeight: 40,\n borderWidth: 1,\n valueFontSize: 12,\n labelFontSize: 14,\n valueFormat: \",\"\n }\n};\nvar keyify = /* @__PURE__ */ __name((obj, prefix = \"\") => Object.keys(obj).reduce((res, el) => {\n if (Array.isArray(obj[el])) {\n return res;\n } else if (typeof obj[el] === \"object\" && obj[el] !== null) {\n return [...res, prefix + el, ...keyify(obj[el], \"\")];\n }\n return [...res, prefix + el];\n}, []), \"keyify\");\nvar configKeys = new Set(keyify(config, \"\"));\nvar defaultConfig_default = config;\n\n// src/utils/sanitizeDirective.ts\nvar sanitizeDirective = /* @__PURE__ */ __name((args) => {\n log.debug(\"sanitizeDirective called with\", args);\n if (typeof args !== \"object\" || args == null) {\n return;\n }\n if (Array.isArray(args)) {\n args.forEach((arg) => sanitizeDirective(arg));\n return;\n }\n for (const key of Object.keys(args)) {\n log.debug(\"Checking key\", key);\n if (key.startsWith(\"__\") || key.includes(\"proto\") || key.includes(\"constr\") || !configKeys.has(key) || args[key] == null) {\n log.debug(\"sanitize deleting key: \", key);\n delete args[key];\n continue;\n }\n if (typeof args[key] === \"object\") {\n log.debug(\"sanitizing object\", key);\n sanitizeDirective(args[key]);\n continue;\n }\n const cssMatchers = [\"themeCSS\", \"fontFamily\", \"altFontFamily\"];\n for (const cssKey of cssMatchers) {\n if (key.includes(cssKey)) {\n log.debug(\"sanitizing css option\", key);\n args[key] = sanitizeCss(args[key]);\n }\n }\n }\n if (args.themeVariables) {\n for (const k of Object.keys(args.themeVariables)) {\n const val = args.themeVariables[k];\n if (val?.match && !val.match(/^[\\d \"#%(),.;A-Za-z]+$/)) {\n args.themeVariables[k] = \"\";\n }\n }\n }\n log.debug(\"After sanitization\", args);\n}, \"sanitizeDirective\");\nvar sanitizeCss = /* @__PURE__ */ __name((str) => {\n let startCnt = 0;\n let endCnt = 0;\n for (const element of str) {\n if (startCnt < endCnt) {\n return \"{ /* ERROR: Unbalanced CSS */ }\";\n }\n if (element === \"{\") {\n startCnt++;\n } else if (element === \"}\") {\n endCnt++;\n }\n }\n if (startCnt !== endCnt) {\n return \"{ /* ERROR: Unbalanced CSS */ }\";\n }\n return str;\n}, \"sanitizeCss\");\n\n// src/config.ts\nvar defaultConfig = Object.freeze(defaultConfig_default);\nvar siteConfig = assignWithDepth_default({}, defaultConfig);\nvar configFromInitialize;\nvar directives = [];\nvar currentConfig = assignWithDepth_default({}, defaultConfig);\nvar updateCurrentConfig = /* @__PURE__ */ __name((siteCfg, _directives) => {\n let cfg = assignWithDepth_default({}, siteCfg);\n let sumOfDirectives = {};\n for (const d of _directives) {\n sanitize(d);\n sumOfDirectives = assignWithDepth_default(sumOfDirectives, d);\n }\n cfg = assignWithDepth_default(cfg, sumOfDirectives);\n if (sumOfDirectives.theme && sumOfDirectives.theme in themes_default) {\n const tmpConfigFromInitialize = assignWithDepth_default({}, configFromInitialize);\n const themeVariables = assignWithDepth_default(\n tmpConfigFromInitialize.themeVariables || {},\n sumOfDirectives.themeVariables\n );\n if (cfg.theme && cfg.theme in themes_default) {\n cfg.themeVariables = themes_default[cfg.theme].getThemeVariables(themeVariables);\n }\n }\n currentConfig = cfg;\n checkConfig(currentConfig);\n return currentConfig;\n}, \"updateCurrentConfig\");\nvar setSiteConfig = /* @__PURE__ */ __name((conf) => {\n siteConfig = assignWithDepth_default({}, defaultConfig);\n siteConfig = assignWithDepth_default(siteConfig, conf);\n if (conf.theme && themes_default[conf.theme]) {\n siteConfig.themeVariables = themes_default[conf.theme].getThemeVariables(conf.themeVariables);\n }\n updateCurrentConfig(siteConfig, directives);\n return siteConfig;\n}, \"setSiteConfig\");\nvar saveConfigFromInitialize = /* @__PURE__ */ __name((conf) => {\n configFromInitialize = assignWithDepth_default({}, conf);\n}, \"saveConfigFromInitialize\");\nvar updateSiteConfig = /* @__PURE__ */ __name((conf) => {\n siteConfig = assignWithDepth_default(siteConfig, conf);\n updateCurrentConfig(siteConfig, directives);\n return siteConfig;\n}, \"updateSiteConfig\");\nvar getSiteConfig = /* @__PURE__ */ __name(() => {\n return assignWithDepth_default({}, siteConfig);\n}, \"getSiteConfig\");\nvar setConfig = /* @__PURE__ */ __name((conf) => {\n checkConfig(conf);\n assignWithDepth_default(currentConfig, conf);\n return getConfig();\n}, \"setConfig\");\nvar getConfig = /* @__PURE__ */ __name(() => {\n return assignWithDepth_default({}, currentConfig);\n}, \"getConfig\");\nvar sanitize = /* @__PURE__ */ __name((options) => {\n if (!options) {\n return;\n }\n [\"secure\", ...siteConfig.secure ?? []].forEach((key) => {\n if (Object.hasOwn(options, key)) {\n log.debug(`Denied attempt to modify a secure key ${key}`, options[key]);\n delete options[key];\n }\n });\n Object.keys(options).forEach((key) => {\n if (key.startsWith(\"__\")) {\n delete options[key];\n }\n });\n Object.keys(options).forEach((key) => {\n if (typeof options[key] === \"string\" && (options[key].includes(\"<\") || options[key].includes(\">\") || options[key].includes(\"url(data:\"))) {\n delete options[key];\n }\n if (typeof options[key] === \"object\") {\n sanitize(options[key]);\n }\n });\n}, \"sanitize\");\nvar addDirective = /* @__PURE__ */ __name((directive) => {\n sanitizeDirective(directive);\n if (directive.fontFamily && !directive.themeVariables?.fontFamily) {\n directive.themeVariables = {\n ...directive.themeVariables,\n fontFamily: directive.fontFamily\n };\n }\n directives.push(directive);\n updateCurrentConfig(siteConfig, directives);\n}, \"addDirective\");\nvar reset = /* @__PURE__ */ __name((config2 = siteConfig) => {\n directives = [];\n updateCurrentConfig(config2, directives);\n}, \"reset\");\nvar ConfigWarning = {\n LAZY_LOAD_DEPRECATED: \"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.\"\n};\nvar issuedWarnings = {};\nvar issueWarning = /* @__PURE__ */ __name((warning) => {\n if (issuedWarnings[warning]) {\n return;\n }\n log.warn(ConfigWarning[warning]);\n issuedWarnings[warning] = true;\n}, \"issueWarning\");\nvar checkConfig = /* @__PURE__ */ __name((config2) => {\n if (!config2) {\n return;\n }\n if (config2.lazyLoadedDiagrams || config2.loadExternalDiagramsAtStartup) {\n issueWarning(\"LAZY_LOAD_DEPRECATED\");\n }\n}, \"checkConfig\");\n\n// src/diagrams/common/common.ts\nimport DOMPurify from \"dompurify\";\nvar lineBreakRegex = /<br\\s*\\/?>/gi;\nvar getRows = /* @__PURE__ */ __name((s) => {\n if (!s) {\n return [\"\"];\n }\n const str = breakToPlaceholder(s).replace(/\\\\n/g, \"#br#\");\n return str.split(\"#br#\");\n}, \"getRows\");\nvar setupDompurifyHooksIfNotSetup = /* @__PURE__ */ (() => {\n let setup = false;\n return () => {\n if (!setup) {\n setupDompurifyHooks();\n setup = true;\n }\n };\n})();\nfunction setupDompurifyHooks() {\n const TEMPORARY_ATTRIBUTE = \"data-temp-href-target\";\n DOMPurify.addHook(\"beforeSanitizeAttributes\", (node) => {\n if (node instanceof Element && node.tagName === \"A\" && node.hasAttribute(\"target\")) {\n node.setAttribute(TEMPORARY_ATTRIBUTE, node.getAttribute(\"target\") ?? \"\");\n }\n });\n DOMPurify.addHook(\"afterSanitizeAttributes\", (node) => {\n if (node instanceof Element && node.tagName === \"A\" && node.hasAttribute(TEMPORARY_ATTRIBUTE)) {\n node.setAttribute(\"target\", node.getAttribute(TEMPORARY_ATTRIBUTE) ?? \"\");\n node.removeAttribute(TEMPORARY_ATTRIBUTE);\n if (node.getAttribute(\"target\") === \"_blank\") {\n node.setAttribute(\"rel\", \"noopener\");\n }\n }\n });\n}\n__name(setupDompurifyHooks, \"setupDompurifyHooks\");\nvar removeScript = /* @__PURE__ */ __name((txt) => {\n setupDompurifyHooksIfNotSetup();\n const sanitizedText = DOMPurify.sanitize(txt);\n return sanitizedText;\n}, \"removeScript\");\nvar sanitizeMore = /* @__PURE__ */ __name((text, config2) => {\n if (config2.flowchart?.htmlLabels !== false) {\n const level = config2.securityLevel;\n if (level === \"antiscript\" || level === \"strict\") {\n text = removeScript(text);\n } else if (level !== \"loose\") {\n text = breakToPlaceholder(text);\n text = text.replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\");\n text = text.replace(/=/g, \"&equals;\");\n text = placeholderToBreak(text);\n }\n }\n return text;\n}, \"sanitizeMore\");\nvar sanitizeText = /* @__PURE__ */ __name((text, config2) => {\n if (!text) {\n return text;\n }\n if (config2.dompurifyConfig) {\n text = DOMPurify.sanitize(sanitizeMore(text, config2), config2.dompurifyConfig).toString();\n } else {\n text = DOMPurify.sanitize(sanitizeMore(text, config2), {\n FORBID_TAGS: [\"style\"]\n }).toString();\n }\n return text;\n}, \"sanitizeText\");\nvar sanitizeTextOrArray = /* @__PURE__ */ __name((a, config2) => {\n if (typeof a === \"string\") {\n return sanitizeText(a, config2);\n }\n return a.flat().map((x) => sanitizeText(x, config2));\n}, \"sanitizeTextOrArray\");\nvar hasBreaks = /* @__PURE__ */ __name((text) => {\n return lineBreakRegex.test(text);\n}, \"hasBreaks\");\nvar splitBreaks = /* @__PURE__ */ __name((text) => {\n return text.split(lineBreakRegex);\n}, \"splitBreaks\");\nvar placeholderToBreak = /* @__PURE__ */ __name((s) => {\n return s.replace(/#br#/g, \"<br/>\");\n}, \"placeholderToBreak\");\nvar breakToPlaceholder = /* @__PURE__ */ __name((s) => {\n return s.replace(lineBreakRegex, \"#br#\");\n}, \"breakToPlaceholder\");\nvar getUrl = /* @__PURE__ */ __name((useAbsolute) => {\n let url = \"\";\n if (useAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = CSS.escape(url);\n }\n return url;\n}, \"getUrl\");\nvar evaluate = /* @__PURE__ */ __name((val) => val === false || [\"false\", \"null\", \"0\"].includes(String(val).trim().toLowerCase()) ? false : true, \"evaluate\");\nvar getMax = /* @__PURE__ */ __name(function(...values) {\n const newValues = values.filter((value) => {\n return !isNaN(value);\n });\n return Math.max(...newValues);\n}, \"getMax\");\nvar getMin = /* @__PURE__ */ __name(function(...values) {\n const newValues = values.filter((value) => {\n return !isNaN(value);\n });\n return Math.min(...newValues);\n}, \"getMin\");\nvar parseGenericTypes = /* @__PURE__ */ __name(function(input) {\n const inputSets = input.split(/(,)/);\n const output = [];\n for (let i = 0; i < inputSets.length; i++) {\n let thisSet = inputSets[i];\n if (thisSet === \",\" && i > 0 && i + 1 < inputSets.length) {\n const previousSet = inputSets[i - 1];\n const nextSet = inputSets[i + 1];\n if (shouldCombineSets(previousSet, nextSet)) {\n thisSet = previousSet + \",\" + nextSet;\n i++;\n output.pop();\n }\n }\n output.push(processSet(thisSet));\n }\n return output.join(\"\");\n}, \"parseGenericTypes\");\nvar countOccurrence = /* @__PURE__ */ __name((string, substring) => {\n return Math.max(0, string.split(substring).length - 1);\n}, \"countOccurrence\");\nvar shouldCombineSets = /* @__PURE__ */ __name((previousSet, nextSet) => {\n const prevCount = countOccurrence(previousSet, \"~\");\n const nextCount = countOccurrence(nextSet, \"~\");\n return prevCount === 1 && nextCount === 1;\n}, \"shouldCombineSets\");\nvar processSet = /* @__PURE__ */ __name((input) => {\n const tildeCount = countOccurrence(input, \"~\");\n let hasStartingTilde = false;\n if (tildeCount <= 1) {\n return input;\n }\n if (tildeCount % 2 !== 0 && input.startsWith(\"~\")) {\n input = input.substring(1);\n hasStartingTilde = true;\n }\n const chars = [...input];\n let first = chars.indexOf(\"~\");\n let last = chars.lastIndexOf(\"~\");\n while (first !== -1 && last !== -1 && first !== last) {\n chars[first] = \"<\";\n chars[last] = \">\";\n first = chars.indexOf(\"~\");\n last = chars.lastIndexOf(\"~\");\n }\n if (hasStartingTilde) {\n chars.unshift(\"~\");\n }\n return chars.join(\"\");\n}, \"processSet\");\nvar isMathMLSupported = /* @__PURE__ */ __name(() => window.MathMLElement !== void 0, \"isMathMLSupported\");\nvar katexRegex = /\\$\\$(.*)\\$\\$/g;\nvar hasKatex = /* @__PURE__ */ __name((text) => (text.match(katexRegex)?.length ?? 0) > 0, \"hasKatex\");\nvar calculateMathMLDimensions = /* @__PURE__ */ __name(async (text, config2) => {\n text = await renderKatex(text, config2);\n const divElem = document.createElement(\"div\");\n divElem.innerHTML = text;\n divElem.id = \"katex-temp\";\n divElem.style.visibility = \"hidden\";\n divElem.style.position = \"absolute\";\n divElem.style.top = \"0\";\n const body = document.querySelector(\"body\");\n body?.insertAdjacentElement(\"beforeend\", divElem);\n const dim = { width: divElem.clientWidth, height: divElem.clientHeight };\n divElem.remove();\n return dim;\n}, \"calculateMathMLDimensions\");\nvar renderKatex = /* @__PURE__ */ __name(async (text, config2) => {\n if (!hasKatex(text)) {\n return text;\n }\n if (!(isMathMLSupported() || config2.legacyMathML || config2.forceLegacyMathML)) {\n return text.replace(katexRegex, \"MathML is unsupported in this environment.\");\n }\n if (true) {\n const { default: katex } = await import(\"katex\");\n const outputMode = config2.forceLegacyMathML || !isMathMLSupported() && config2.legacyMathML ? \"htmlAndMathml\" : \"mathml\";\n return text.split(lineBreakRegex).map(\n (line) => hasKatex(line) ? `<div style=\"display: flex; align-items: center; justify-content: center; white-space: nowrap;\">${line}</div>` : `<div>${line}</div>`\n ).join(\"\").replace(\n katexRegex,\n (_, c) => katex.renderToString(c, {\n throwOnError: true,\n displayMode: true,\n output: outputMode\n }).replace(/\\n/g, \" \").replace(/<annotation.*<\\/annotation>/g, \"\")\n );\n }\n return text.replace(\n katexRegex,\n \"Katex is not supported in @mermaid-js/tiny. Please use the full mermaid library.\"\n );\n}, \"renderKatex\");\nvar common_default = {\n getRows,\n sanitizeText,\n sanitizeTextOrArray,\n hasBreaks,\n splitBreaks,\n lineBreakRegex,\n removeScript,\n getUrl,\n evaluate,\n getMax,\n getMin\n};\n\n// src/setupGraphViewbox.js\nvar d3Attrs = /* @__PURE__ */ __name(function(d3Elem, attrs) {\n for (let attr of attrs) {\n d3Elem.attr(attr[0], attr[1]);\n }\n}, \"d3Attrs\");\nvar calculateSvgSizeAttrs = /* @__PURE__ */ __name(function(height, width, useMaxWidth) {\n let attrs = /* @__PURE__ */ new Map();\n if (useMaxWidth) {\n attrs.set(\"width\", \"100%\");\n attrs.set(\"style\", `max-width: ${width}px;`);\n } else {\n attrs.set(\"height\", height);\n attrs.set(\"width\", width);\n }\n return attrs;\n}, \"calculateSvgSizeAttrs\");\nvar configureSvgSize = /* @__PURE__ */ __name(function(svgElem, height, width, useMaxWidth) {\n const attrs = calculateSvgSizeAttrs(height, width, useMaxWidth);\n d3Attrs(svgElem, attrs);\n}, \"configureSvgSize\");\nvar setupGraphViewbox = /* @__PURE__ */ __name(function(graph, svgElem, padding, useMaxWidth) {\n const svgBounds = svgElem.node().getBBox();\n const sWidth = svgBounds.width;\n const sHeight = svgBounds.height;\n log.info(`SVG bounds: ${sWidth}x${sHeight}`, svgBounds);\n let width = 0;\n let height = 0;\n log.info(`Graph bounds: ${width}x${height}`, graph);\n width = sWidth + padding * 2;\n height = sHeight + padding * 2;\n log.info(`Calculated bounds: ${width}x${height}`);\n configureSvgSize(svgElem, height, width, useMaxWidth);\n const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${svgBounds.width + 2 * padding} ${svgBounds.height + 2 * padding}`;\n svgElem.attr(\"viewBox\", vBox);\n}, \"setupGraphViewbox\");\n\n// src/styles.ts\nvar themes = {};\nvar getStyles = /* @__PURE__ */ __name((type, userStyles, options) => {\n let diagramStyles = \"\";\n if (type in themes && themes[type]) {\n diagramStyles = themes[type](options);\n } else {\n log.warn(`No theme found for ${type}`);\n }\n return ` & {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n fill: ${options.textColor}\n }\n @keyframes edge-animation-frame {\n from {\n stroke-dashoffset: 0;\n }\n }\n @keyframes dash {\n to {\n stroke-dashoffset: 0;\n }\n }\n & .edge-animation-slow {\n stroke-dasharray: 9,5 !important;\n stroke-dashoffset: 900;\n animation: dash 50s linear infinite;\n stroke-linecap: round;\n }\n & .edge-animation-fast {\n stroke-dasharray: 9,5 !important;\n stroke-dashoffset: 900;\n animation: dash 20s linear infinite;\n stroke-linecap: round;\n }\n /* Classes common for multiple diagrams */\n\n & .error-icon {\n fill: ${options.errorBkgColor};\n }\n & .error-text {\n fill: ${options.errorTextColor};\n stroke: ${options.errorTextColor};\n }\n\n & .edge-thickness-normal {\n stroke-width: 1px;\n }\n & .edge-thickness-thick {\n stroke-width: 3.5px\n }\n & .edge-pattern-solid {\n stroke-dasharray: 0;\n }\n & .edge-thickness-invisible {\n stroke-width: 0;\n fill: none;\n }\n & .edge-pattern-dashed{\n stroke-dasharray: 3;\n }\n .edge-pattern-dotted {\n stroke-dasharray: 2;\n }\n\n & .marker {\n fill: ${options.lineColor};\n stroke: ${options.lineColor};\n }\n & .marker.cross {\n stroke: ${options.lineColor};\n }\n\n & svg {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n }\n & p {\n margin: 0\n }\n\n ${diagramStyles}\n\n ${userStyles}\n`;\n}, \"getStyles\");\nvar addStylesForDiagram = /* @__PURE__ */ __name((type, diagramTheme) => {\n if (diagramTheme !== void 0) {\n themes[type] = diagramTheme;\n }\n}, \"addStylesForDiagram\");\nvar styles_default = getStyles;\n\n// src/diagrams/common/commonDb.ts\nvar commonDb_exports = {};\n__export(commonDb_exports, {\n clear: () => clear,\n getAccDescription: () => getAccDescription,\n getAccTitle: () => getAccTitle,\n getDiagramTitle: () => getDiagramTitle,\n setAccDescription: () => setAccDescription,\n setAccTitle: () => setAccTitle,\n setDiagramTitle: () => setDiagramTitle\n});\nvar accTitle = \"\";\nvar diagramTitle = \"\";\nvar accDescription = \"\";\nvar sanitizeText2 = /* @__PURE__ */ __name((txt) => sanitizeText(txt, getConfig()), \"sanitizeText\");\nvar clear = /* @__PURE__ */ __name(() => {\n accTitle = \"\";\n accDescription = \"\";\n diagramTitle = \"\";\n}, \"clear\");\nvar setAccTitle = /* @__PURE__ */ __name((txt) => {\n accTitle = sanitizeText2(txt).replace(/^\\s+/g, \"\");\n}, \"setAccTitle\");\nvar getAccTitle = /* @__PURE__ */ __name(() => accTitle, \"getAccTitle\");\nvar setAccDescription = /* @__PURE__ */ __name((txt) => {\n accDescription = sanitizeText2(txt).replace(/\\n\\s+/g, \"\\n\");\n}, \"setAccDescription\");\nvar getAccDescription = /* @__PURE__ */ __name(() => accDescription, \"getAccDescription\");\nvar setDiagramTitle = /* @__PURE__ */ __name((txt) => {\n diagramTitle = sanitizeText2(txt);\n}, \"setDiagramTitle\");\nvar getDiagramTitle = /* @__PURE__ */ __name(() => diagramTitle, \"getDiagramTitle\");\n\n// src/diagram-api/diagramAPI.ts\nvar log2 = log;\nvar setLogLevel2 = setLogLevel;\nvar getConfig2 = getConfig;\nvar setConfig2 = setConfig;\nvar defaultConfig2 = defaultConfig;\nvar sanitizeText3 = /* @__PURE__ */ __name((text) => sanitizeText(text, getConfig2()), \"sanitizeText\");\nvar setupGraphViewbox2 = setupGraphViewbox;\nvar getCommonDb = /* @__PURE__ */ __name(() => {\n return commonDb_exports;\n}, \"getCommonDb\");\nvar diagrams = {};\nvar registerDiagram = /* @__PURE__ */ __name((id, diagram, detector) => {\n if (diagrams[id]) {\n log2.warn(`Diagram with id ${id} already registered. Overwriting.`);\n }\n diagrams[id] = diagram;\n if (detector) {\n addDetector(id, detector);\n }\n addStylesForDiagram(id, diagram.styles);\n diagram.injectUtils?.(\n log2,\n setLogLevel2,\n getConfig2,\n sanitizeText3,\n setupGraphViewbox2,\n getCommonDb(),\n () => {\n }\n );\n}, \"registerDiagram\");\nvar getDiagram = /* @__PURE__ */ __name((name) => {\n if (name in diagrams) {\n return diagrams[name];\n }\n throw new DiagramNotFoundError(name);\n}, \"getDiagram\");\nvar DiagramNotFoundError = class extends Error {\n static {\n __name(this, \"DiagramNotFoundError\");\n }\n constructor(name) {\n super(`Diagram ${name} not found.`);\n }\n};\n\nexport {\n __name,\n __export,\n log,\n setLogLevel,\n frontMatterRegex,\n directiveRegex,\n UnknownDiagramError,\n detectors,\n detectType,\n registerLazyLoadedDiagrams,\n getDiagramLoader,\n assignWithDepth_default,\n getThemeVariables3 as getThemeVariables,\n themes_default,\n defaultConfig_default,\n sanitizeDirective,\n defaultConfig,\n setSiteConfig,\n saveConfigFromInitialize,\n updateSiteConfig,\n getSiteConfig,\n setConfig,\n getConfig,\n addDirective,\n reset,\n lineBreakRegex,\n sanitizeText,\n getUrl,\n evaluate,\n parseGenericTypes,\n hasKatex,\n calculateMathMLDimensions,\n renderKatex,\n common_default,\n configureSvgSize,\n setupGraphViewbox,\n styles_default,\n clear,\n setAccTitle,\n getAccTitle,\n setAccDescription,\n getAccDescription,\n setDiagramTitle,\n getDiagramTitle,\n commonDb_exports,\n getConfig2,\n setConfig2,\n defaultConfig2,\n sanitizeText3 as sanitizeText2,\n setupGraphViewbox2,\n registerDiagram,\n getDiagram\n};\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","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 Set = getNative(root, 'Set');\n\nexport default Set;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.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/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\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 an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","export function dedent(templ) {\n var values = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n values[_i - 1] = arguments[_i];\n }\n var strings = Array.from(typeof templ === 'string' ? [templ] : templ);\n strings[strings.length - 1] = strings[strings.length - 1].replace(/\\r?\\n([\\t ]*)$/, '');\n var indentLengths = strings.reduce(function (arr, str) {\n var matches = str.match(/\\n([\\t ]+|(?!\\s).)/g);\n if (matches) {\n return arr.concat(matches.map(function (match) { var _a, _b; return (_b = (_a = match.match(/[\\t ]/g)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0; }));\n }\n return arr;\n }, []);\n if (indentLengths.length) {\n var pattern_1 = new RegExp(\"\\n[\\t ]{\" + Math.min.apply(Math, indentLengths) + \"}\", 'g');\n strings = strings.map(function (str) { return str.replace(pattern_1, '\\n'); });\n }\n strings[0] = strings[0].replace(/^\\r?\\n/, '');\n var string = strings[0];\n values.forEach(function (value, i) {\n var endentations = string.match(/(?:^|\\n)( *)$/);\n var endentation = endentations ? endentations[1] : '';\n var indentedValue = value;\n if (typeof value === 'string' && value.includes('\\n')) {\n indentedValue = String(value)\n .split('\\n')\n .map(function (str, i) {\n return i === 0 ? str : \"\" + endentation + str;\n })\n .join('\\n');\n }\n string += indentedValue + strings[i + 1];\n });\n return string;\n}\nexport default dedent;\n//# sourceMappingURL=index.js.map","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n"],"names":["source","array","index","length","Array","uid","maskSrcKey","exec","keys","IE_PROTO","reIsHostCtor","funcProto","Function","prototype","objectProto","Object","funcToString","toString","hasOwnProperty","reIsNative","RegExp","call","replace","value","isObject","func","isFunction","test","object","key","undefined","freeExports","exports","nodeType","freeModule","module","freeProcess","process","require","types","binding","e","validateIconName","icon","allowSimpleName","prefix","name","defaultIconDimensions","freeze","left","top","width","height","defaultIconTransformations","rotate","vFlip","hFlip","defaultIconProps","defaultExtendedIconProps","body","hidden","mergeIconData","parent","child","result","obj1","obj2","mergeIconTransformations","internalGetIconData","data","tree","icons","aliases","create","currentProps","parse","name2","forEach","defaultIconSizeCustomisations","defaultIconCustomisations","unitsSplit","unitsTest","calculateSize","size","ratio","precision","Math","ceil","oldParts","split","newParts","code","shift","isNumber","num","parseFloat","isNaN","push","join","regex","randomPrefix","Date","now","random","counter","O","async","breaks","extensions","gfm","hooks","pedantic","renderer","silent","tokenizer","walkTokens","H","l","E","h","t","n","r","i","s","m","caret","getRegex","codeRemoveIndent","outputLinkReplace","indentCodeCompensation","beginningSpace","endingHash","startingSpaceChar","endingSpaceChar","nonSpaceChar","newLineCharGlobal","tabCharGlobal","multipleSpaceGlobal","blankLine","doubleBlankLine","blockquoteStart","blockquoteSetextReplace","blockquoteSetextReplace2","listReplaceTabs","listReplaceNesting","listIsTask","listReplaceTask","anyLine","hrefBrackets","tableDelimiter","tableAlignChars","tableRowBlankLine","tableAlignRight","tableAlignCenter","tableAlignLeft","startATag","endATag","startPreScriptTag","endPreScriptTag","startAngleBracket","endAngleBracket","pedanticHrefTitle","unicodeAlphaNumeric","escapeTest","escapeReplace","escapeTestNoEncode","escapeReplaceNoEncode","unescapeTest","percentDecode","findPipe","splitPipe","slashPipe","carriageReturn","spaceLine","notSpaceStart","endingNewline","listItemRegex","nextBulletRegex","min","hrRegex","fencesBeginRegex","headingBeginRegex","htmlBeginRegex","C","j","se","ie","Te","F","Q","ye","Pe","v","U","Se","oe","K","blockquote","def","fences","heading","hr","html","lheading","list","newline","paragraph","table","text","re","_e","Le","ae","D","X","le","Ee","ue","pe","qe","ve","ce","De","Ze","Ge","He","Ne","je","Fe","q","Qe","he","de","W","_backpedal","anyPunctuation","autolink","blockSkip","br","del","emStrongLDelim","emStrongRDelimAst","emStrongRDelimUnd","escape","link","nolink","punctuation","reflink","reflinkSearch","tag","url","Ke","N","Xe","I","normal","M","We","ke","w","J","encodeURI","V","o","a","u","trim","at","pop","splice","z","charAt","slice","fe","href","title","other","state","inLink","type","raw","tokens","inlineTokens","y","options","rules","lexer","constructor","this","space","block","codeBlockStyle","match","map","Je","lang","inline","depth","p","c","f","blockTokens","k","x","g","T","substring","ordered","start","loose","items","Z","repeat","trimStart","search","ee","te","ne","me","A","G","Y","task","checked","trimEnd","filter","some","pre","toLowerCase","header","align","rows","inRawBlock","indexOf","ge","emStrong","lastIndex","codespan","inlineText","escaped","b","inlineQueue","links","lex","lexInline","src","startBlock","charCodeAt","console","error","Error","includes","lastIndexOf","startInline","P","parser","parseInline","listitem","checkbox","unshift","tablecell","tablerow","strong","em","image","textRenderer","S","R","renderers","$","static","Set","preprocess","postprocess","processAllTokens","provideLexer","provideParser","_","defaults","setOptions","parseMarkdown","Parser","Renderer","TextRenderer","Lexer","Tokenizer","Hooks","use","concat","childTokens","flat","apply","level","passThroughHooks","has","Promise","resolve","then","onError","all","catch","message","reject","d","getDefaults","unknownIcon","iconsStore","Map","loaderStore","registerIconPacks","iconLoaders","iconLoader","debug","set","loader","getRegisteredIconData","iconName","fallbackPrefix","validate","provider","colonSeparated","dashSeparated","stringToIcon","get","iconData","names","resolved","getIconsTree","getIconData","isIconAvailable","getIconSVG","customisations","extraAttributes","renderData","fullIcon","fullCustomisations","box","props","transformations","tempValue","rotation","floor","content","defs","end","endEnd","splitSVGDefs","wrapSVGContent","customisationsWidth","customisationsHeight","boxWidth","boxHeight","attributes","setAttr","prop","isUnsetKeyword","viewBox","iconToSVG","renderAttribsHTML","attr","iconToHTML","ids","suffix","id","newID","escapedID","replaceIDs","preprocessMarkdown","markdown","markdownAutoWrap","withoutMultipleNewlines","withoutExtraSpaces","markdownToLines","config","preprocessedMarkdown","nodes","lines","currentLine","processNode","node","parentType","textLine","word","contentNode","treeNode","markdownToHTML","output","splitTextToChars","Intl","Segmenter","segment","splitWordToFitWidth","checkFit","splitWordToFitWidthRecursion","usedChars","remainingChars","nextChar","rest","newWord","splitLineToFitWidth","line","splitLineToFitWidthRecursion","words","newLine","joiner","nextWord","lineWithNextWord","applyStyle","dom","styleFn","addHtmlSpan","element","classes","addBackground","fo","append","div","label","lineBreakRegex","labelClass","isNode","span","labelStyle","style","bbox","getBoundingClientRect","createTspan","textElement","lineIndex","lineHeight","computeWidthOfText","parentNode","testElement","testSpan","updateTextContentAndStyles","textLength","getComputedTextLength","remove","computeDimensionOfText","textDimension","createFormattedText","structuredText","labelGroup","bkg","insert","checkWidth","line2","linesUnderWidth","preparedLine","getBBox","padding","tspan","wrappedLine","innerTspan","replaceIconSubstring","pendingReplacements","fullMatch","registeredIconName","class","replacements","createText","el","isTitle","useHtmlLabels","addSvgBackground","htmlText","decodedReplacedText","inputForKatex","svgLabel","nodeLabelTextStyle","edgeLabelRectStyle","select","edgeLabelTextStyle","Buffer","allocUnsafe","buffer","isDeep","copy","Hex","color","hex","dec","parseInt","hasAlpha","isFullLength","multiplier","bits","bitsOffset","mask","stringify","channels","round","HSL","hueRe","_hue2deg","hue","number","unit","channel","clamp","PI","charCode","isAlphaPercentage","Keyword","colors","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyanaqua","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","tan","teal","thistle","transparent","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","RGB","isRedPercentage","isGreenPercentage","isBluePercentage","Color","format","keyword","rgb","rgba","hsl","hsla","changed","is","Number","isInteger","Ctor","internalHelpers","common","getConfig","insertCluster","insertEdge","insertEdgeLabel","insertMarkers","insertNode","interpolateToCurve","labelHelper","log","positionEdgeLabel","layoutAlgorithms","registerLayoutLoaders","loaders","registerDefaultLayoutLoaders","render","data4Layout","svg","layoutAlgorithm","layoutDefinition","algorithm","getRegisteredLayoutAlgorithm","fallback","warn","isProto","isArrayLike","luminance","toLinear","isNothing","subject","toArray","sequence","isArray","extend","target","sourceKeys","string","count","cycle","isNegativeZero","NEGATIVE_INFINITY","formatError","exception2","compact","where","reason","mark","column","snippet","YAMLException$1","captureStackTrace","stack","exception","getLine","lineStart","lineEnd","position","maxLineLength","head","tail","maxHalfLength","str","pos","padStart","max","makeSnippet","maxLength","indent","linesBefore","linesAfter","lineStarts","lineEnds","foundLineNo","lineNoLength","TYPE_CONSTRUCTOR_OPTIONS","YAML_NODE_KINDS","compileStyleAliases","map2","alias","String","Type$1","kind","construct","instanceOf","predicate","represent","representName","defaultStyle","multi","styleAliases","compileList","schema2","currentType","newIndex","previousType","previousIndex","compileMap","scalar","mapping","collectType","type2","arguments","Schema$1","definition","implicit","explicit","type$1","loadKind","compiledImplicit","compiledExplicit","compiledTypeMap","failsafe","resolveYamlNull","constructYamlNull","isNull","_null","canonical","lowercase","uppercase","camelcase","empty","resolveYamlBoolean","constructYamlBoolean","isBoolean","bool","isHexCode","isOctCode","isDecCode","resolveYamlInteger","ch","hasDigits","constructYamlInteger","sign","int","binary","obj","octal","decimal","hexadecimal","toUpperCase","YAML_FLOAT_PATTERN","resolveYamlFloat","constructYamlFloat","POSITIVE_INFINITY","NaN","SCIENTIFIC_WITHOUT_DOT","representYamlFloat","res","isFloat","float","json","core","YAML_DATE_REGEXP","YAML_TIMESTAMP_REGEXP","resolveYamlTimestamp","constructYamlTimestamp","year","month","day","hour","minute","second","date","fraction","delta","UTC","setTime","getTime","representYamlTimestamp","toISOString","timestamp","resolveYamlMerge","merge","BASE64_MAP","resolveYamlBinary","idx","bitlen","constructYamlBinary","tailbits","input","Uint8Array","representYamlBinary","isBinary","_hasOwnProperty$3","_toString$2","resolveYamlOmap","pair","pairKey","pairHasKey","objectKeys","constructYamlOmap","omap","_toString$1","resolveYamlPairs","constructYamlPairs","pairs","_hasOwnProperty$2","resolveYamlSet","constructYamlSet","_default","_hasOwnProperty$1","PATTERN_NON_PRINTABLE","PATTERN_NON_ASCII_LINE_BREAKS","PATTERN_FLOW_INDICATORS","PATTERN_TAG_HANDLE","PATTERN_TAG_URI","_class","is_EOL","is_WHITE_SPACE","is_WS_OR_EOL","is_FLOW_INDICATOR","fromHexCode","lc","escapedHexLen","fromDecimalCode","simpleEscapeSequence","charFromCodepoint","fromCharCode","simpleEscapeCheck","simpleEscapeMap","State$1","filename","schema","onWarning","legacy","listener","implicitTypes","typeMap","lineIndent","firstTabInLine","documents","generateError","throwError","throwWarning","directiveHandlers","YAML","args","major","minor","version","checkLineBreaks","TAG","handle","tagMap","decodeURIComponent","err","captureSegment","checkJson","_position","_length","_character","_result","mergeMappings","destination","overridableKeys","quantity","storeMappingPair","keyTag","keyNode","valueNode","startLine","startLineStart","startPos","defineProperty","configurable","enumerable","writable","readLineBreak","skipSeparationSpace","allowComments","checkIndent","lineBreaks","testDocumentSeparator","writeFoldedLines","readPlainScalar","nodeIndent","withinFlowCollection","following","captureStart","captureEnd","hasPendingContent","_line","_lineStart","_lineIndent","_kind","readSingleQuotedScalar","readDoubleQuotedScalar","hexLength","hexResult","tmp","readFlowCollection","_pos","terminator","isPair","isExplicitPair","isMapping","readNext","_tag","_anchor","anchor","anchorMap","composeNode","readBlockScalar","folding","chomping","didReadContent","detectedIndent","textIndent","emptyLines","atMoreIndented","readBlockSequence","detected","readBlockMapping","flowIndent","allowCompact","_keyLine","_keyLineStart","_keyPos","atExplicitKey","readTagProperty","tagHandle","tagName","isVerbatim","isNamed","readAnchorProperty","readAlias","parentIndent","nodeContext","allowToSeek","allowBlockStyles","allowBlockScalars","allowBlockCollections","typeIndex","typeQuantity","typeList","blockIndent","indentStatus","atNewLine","hasContent","readDocument","directiveName","directiveArgs","documentStart","hasDirectives","loadDocuments","nullpos","loadAll$1","iterator","load$1","_toString","_hasOwnProperty","CHAR_BOM","ESCAPE_SEQUENCES","DEPRECATED_BOOLEANS_SYNTAX","DEPRECATED_BASE60_SYNTAX","compileStyleMap","encodeHex","character","State","noArrayIndent","skipInvalid","flowLevel","styleMap","sortKeys","lineWidth","noRefs","noCompatMode","condenseFlow","quotingType","forceQuotes","replacer","explicitTypes","duplicates","usedDuplicates","indentString","spaces","ind","next","generateNextLine","testImplicitResolving","str2","isWhitespace","isPrintable","isNsCharOrWhitespace","isPlainSafe","prev","inblock","cIsNsCharOrWhitespace","cIsNsChar","isPlainSafeFirst","isPlainSafeLast","codePointAt","first","needIndentIndicator","chooseScalarStyle","singleLineOnly","indentPerLevel","testAmbiguousType","char","prevChar","hasLineBreak","hasFoldableLine","shouldTrackWidth","previousLineBreak","plain","writeScalar","iskey","dump","testAmbiguity","string2","blockHeader","dropEndingNewline","foldString","escapeString","indentIndicator","clip","nextLF","moreIndented","lineRe","foldLine","prevMoreIndented","breakRe","curr","escapeSeq","writeFlowSequence","writeNode","writeBlockSequence","writeFlowMapping","objectKey","objectValue","pairBuffer","objectKeyList","writeBlockMapping","explicitPair","sort","detectType","isblockseq","tagStr","duplicateIndex","duplicate","objectOrArray","getDuplicateReferences","objects","duplicatesIndexes","inspectNode","renamed","from","to","JSON_SCHEMA","load","entries","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","seal","Reflect","fun","thisValue","Func","arrayForEach","unapply","arrayLastIndexOf","arrayPop","arrayPush","arraySplice","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","objectHasOwnProperty","regExpTest","typeErrorCreate","TypeError","_len2","_key2","thisArg","_len","_key","addToSet","transformCaseFunc","lcElement","cleanArray","clone","newObject","property","lookupGetter","desc","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","EXPRESSIONS","__proto__","getGlobal","window","purify","createDOMPurify","DOMPurify","root","removed","document","Element","isSupported","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","NodeFilter","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","DOMParser","trustedTypes","ElementPrototype","cloneNode","getNextSibling","getChildNodes","getParentNode","template","createElement","ownerDocument","trustedTypesPolicy","emptyHTML","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","afterSanitizeAttributes","afterSanitizeElements","afterSanitizeShadowDOM","beforeSanitizeAttributes","beforeSanitizeElements","beforeSanitizeShadowDOM","uponSanitizeAttribute","uponSanitizeElement","uponSanitizeShadowNode","createHTMLDocument","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","tagNameCheck","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","tbody","TRUSTED_TYPES_POLICY","createHTML","createScriptURL","purifyHostElement","createPolicy","ATTR_NAME","hasAttribute","getAttribute","policyName","scriptUrl","_createTrustedTypesPolicy","ALL_SVG_TAGS","ALL_MATHML_TAGS","_forceRemove","removeChild","_removeAttribute","attribute","getAttributeNode","removeAttribute","setAttribute","_initDocument","dirty","doc","leadingWhitespace","matches","dirtyPayload","parseFromString","documentElement","createDocument","innerHTML","insertBefore","createTextNode","childNodes","_createNodeIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","_isClobbered","nodeName","textContent","namespaceURI","hasChildNodes","_isNode","_executeHooks","currentNode","hook","_sanitizeElements","allowedTags","firstElementChild","_isBasicCustomElement","childClone","__removalCount","parentTagName","Boolean","_checkValidNamespace","expr","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","forceKeepAttr","initValue","getAttributeType","setAttributeNS","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","nextNode","sanitize","importedNode","returnNode","appendChild","firstChild","nodeIterator","shadowroot","shadowrootmode","serializedHTML","outerHTML","doctype","setConfig","clearConfig","isValidAttribute","addHook","entryPoint","hookFunction","removeHook","removeHooks","removeAllHooks","iteratee","keysFunc","iterable","getSubGraphTitleMargins","flowchart","subGraphTitleTopMargin","subGraphTitleMargin","subGraphTitleBottomMargin","bottom","subGraphTitleTotalMargin","typedArrayTags","nodeIsTypedArray","isTypedArray","isObjectLike","isLength","eq","objectCtorString","srcIndex","mergeFunc","customizer","objValue","srcValue","stacked","newValue","isCommon","isArr","isBuff","isBuffer","isTyped","isArrayLikeObject","proto","isArguments","keysIn","baseMerge","BLANK_URL","relativeFirstCharacters","whitespaceEscapeCharsRegex","urlSchemeRegex","ctrlCharactersRegex","htmlCtrlEntityRegex","htmlEntitiesRegex","invalidProtocolRegex","values","valueof","right","epsilon","translateX","translateY","scale","center","offset","bandwidth","entering","__axis","axis","orient","tickArguments","tickValues","tickFormat","tickSizeInner","tickSizeOuter","tickPadding","devicePixelRatio","transform","context","ticks","domain","spacing","range","range0","range1","selection","path","selectAll","tick","order","tickExit","exit","tickEnter","enter","transition","isFinite","each","tickSize","axisTop","axisBottom","none","selector","querySelector","querySelectorAll","childMatcher","find","childFirst","children","update","EnterNode","datum","_next","_parent","__data__","bindIndex","group","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","keyValues","delete","arraylike","ascending","xhtml","xlink","xmlns","namespaces","local","attrRemove","attrRemoveNS","fullname","removeAttributeNS","attrConstant","attrConstantNS","attrFunction","attrFunctionNS","defaultView","styleRemove","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","propertyRemove","propertyConstant","propertyFunction","classArray","classList","ClassList","_node","_names","classedAdd","add","classedRemove","classedTrue","classedFalse","classedFunction","textRemove","textConstant","textFunction","htmlRemove","htmlConstant","htmlFunction","raise","nextSibling","lower","previousSibling","creatorInherit","uri","createElementNS","creatorFixed","namespace","constantNull","selection_cloneShallow","selection_cloneDeep","onRemove","typename","on","__on","removeEventListener","onAdd","event","contextListener","addEventListener","dispatchEvent","params","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","contains","Selection","groups","parents","_groups","_parents","subgroups","subnode","subgroup","arrayAll","selectorAll","selectChild","childFind","selectChildren","childrenFilter","matcher","bind","enterGroup","updateGroup","previous","i0","i1","_enter","_exit","sparse","onenter","onupdate","onexit","groups0","groups1","m0","m1","merges","group0","group1","compareDocumentPosition","compare","compareNode","sortgroups","sortgroup","callback","getAttributeNS","classed","creator","before","deep","typenames","parseTypenames","dispatch","Symbol","noop","Dispatch","that","taskHead","taskTail","timeout","interval","clockLast","clockNow","clockSkew","clock","performance","setFrame","requestAnimationFrame","setTimeout","clearNow","Timer","_call","_time","timer","delay","time","restart","wake","timerFlush","t0","t2","t1","Infinity","sleep","nap","poke","clearTimeout","clearInterval","setInterval","elapsed","stop","emptyOn","emptyTween","timing","schedules","__transition","self","tween","duration","ease","init","schedule","svgNode","degrees","skewX","scaleX","scaleY","sqrt","atan2","atan","interpolateTransform","pxComma","pxParen","degParen","xa","ya","xb","yb","translate","interpolateTransformCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","interpolateTransformSvg","baseVal","consolidate","matrix","tweenRemove","tween0","tween1","tweenFunction","tweenValue","_id","factory","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","cyan","steelblue","tomato","color_formatHex","formatHex","color_formatRgb","formatRgb","rgbn","Rgb","opacity","rgb_formatHex","rgb_formatRgb","clampa","clampi","Hsl","hslConvert","clamph","clampt","hsl2rgb","m2","assign","displayable","formatHex8","formatHsl","pow","basis","v0","v1","v2","v3","t3","linear","nogamma","rgbGamma","exponential","gamma","rgbSpline","spline","reA","reB","am","bm","bs","bi","one","zero","interpolate","value1","string00","interpolate0","string1","string0","string10","attrTweenNS","attrInterpolateNS","_value","attrTween","attrInterpolate","delayFunction","delayConstant","durationFunction","durationConstant","Transition","_name","newId","selection_prototype","inherit","id0","id1","on0","on1","sit","every","onFunction","styleTween","styleNull","listener0","styleMaybeRemove","styleInterpolate","textTween","textInterpolate","removeFunction","easeConstant","easeVarying","cancel","interrupt","defaultTiming","active","abs","formatDecimalParts","toExponential","coefficient","prefixExponent","formatSpecifier","specifier","FormatSpecifier","fill","symbol","comma","exponent","toFixed","toLocaleString","toPrecision","formatRounded","formatPrefix","prefixes","sum","hierarchy","mapChildren","objectChildren","childs","eachBefore","computeHeight","copyData","x0","y0","x1","y1","locale","grouping","thousands","reverse","currencyPrefix","currency","currencySuffix","numerals","formatNumerals","percent","minus","nan","newFormat","formatTypes","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","formatTrim","eachAfter","ancestor","aNodes","ancestors","bNodes","leastCommonAncestor","descendants","leaves","current","custom","squarify","row","nodeValue","dx","dy","sumValue","minValue","maxValue","newRatio","minRatio","alpha","beta","dice","squarifyRatio","constantZero","tile","paddingStack","paddingInner","paddingTop","paddingRight","paddingBottom","paddingLeft","treemap","positionNode","required","paddingOuter","radians","Xn","Zn","labConvert","Lab","Hcl","hcl2lab","rgb2lrgb","xyz2lab","lab2xyz","lrgb2rgb","hcl","hclConvert","cos","sin","initRange","InternMap","keyof","super","defineProperties","_intern","intern_get","intern_set","intern_delete","valueOf","ordinal","unknown","band","step","ordinalRange","r0","r1","rescale","rangeRound","e10","e5","e2","tickSpec","power","log10","factor","i2","inc","tickIncrement","tickStep","descending","bisector","compare1","compare2","lo","hi","mid","ascendingBisect","bisectRight","genericArray","nb","na","ArrayBuffer","isView","DataView","normalize","bimap","d0","d1","polymap","bisect","continuous","untransform","piecewise","invert","transformer","linearish","precisionPrefix","precisionRound","precisionFixed","nice","prestep","maxIter","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationYear","timeInterval","floori","offseti","field","millisecond","getMilliseconds","getUTCSeconds","timeMinute","getSeconds","getMinutes","utcMinute","setUTCSeconds","getUTCMinutes","timeHour","getHours","utcHour","setUTCMinutes","getUTCHours","timeDay","setHours","setDate","getDate","getTimezoneOffset","utcDay","setUTCHours","setUTCDate","getUTCDate","unixDay","timeWeekday","getDay","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","setMonth","getMonth","getFullYear","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","timeYear","setFullYear","utcYear","setUTCFullYear","ticker","week","tickIntervals","tickInterval","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","L","utcDate","newDate","timeFormat","pads","numberRe","percentRe","requoteRe","pad","requote","formatRe","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekNumberMonday","parseFullYear","parseYear","parseZone","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","dISO","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","utcFormats","parses","parseSpecifier","newParse","utcFormat","utcParse","formatLocale","pi","halfPi","tau","asin","tauEpsilon","strings","Path","digits","_x0","_y0","_x1","_y1","_append","appendRound","moveTo","closePath","lineTo","quadraticCurveTo","bezierCurveTo","x2","y2","arcTo","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","acos","t01","t21","arc","a0","a1","ccw","cw","da","rect","withPath","shape","RangeError","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","cornerTangents","rc","ox","oy","x11","y11","x10","y10","x00","y00","d2","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cx","cy","cornerRadius","padRadius","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","p0","p1","oc","x3","y3","x32","y32","intersect","ax","ay","bx","by","kc","centroid","Linear","_context","defined","curve","defined0","point","sortValues","pie","arcs","pa","Basis","BasisClosed","BasisOpen","areaStart","areaEnd","_point","_x2","_x3","_x4","_y2","_y3","_y4","Bump","_x","bumpX","bumpY","Bundle","_basis","_beta","_y","bundle","_k","Cardinal","tension","cardinal","CardinalClosed","_x5","_y5","CardinalOpen","_l01_a","_l01_2a","_l12_a","_l12_2a","_l23_a","_l23_2a","CatmullRom","_alpha","x23","y23","catmullRom","CatmullRomClosed","CatmullRomOpen","LinearClosed","slope3","h0","h1","s0","s1","slope2","MonotoneX","MonotoneY","ReflectContext","monotoneX","monotoneY","Natural","controlPoints","Step","_t","stepBefore","stepAfter","_t0","px","py","applyX","applyY","location","invertX","invertY","rescaleX","rescaleY","Hash","clear","entry","MapCache","weekdays","utcOffset","ms","$L","utc","$u","$x","$offset","$d","$y","$M","$D","$W","$H","$m","$s","$ms","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","unix","toDate","$locale","weekStart","$set","daysInMonth","subtract","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","diff","toJSON","toUTCString","$i","isDayjs","en","Ls","ALL","reset","_ensureHSL","rgb2hsl","_ensureRGB","nativeObjectToString","symToStringTag","toStringTag","isOwn","unmasked","addEdgeMarkers","svgPath","edge","diagramType","strokeColor","arrowTypeStart","addEdgeMarker","arrowTypeEnd","arrowTypesMap","arrow_cross","arrow_point","arrow_barb","arrow_circle","aggregation","extension","composition","dependency","lollipop","only_one","zero_or_one","one_or_more","zero_or_more","requirement_arrow","requirement_contains","arrowType","arrowTypeInfo","originalMarkerId","coloredMarkerId","getElementById","originalMarker","coloredMarker","edgeLabels","terminalLabels","getLabelStyles","styleArray","reduce","acc","elem","htmlLabels","labelElement","info","labelType","edgeLabel","dv","startLabelLeft","startLabelElement","startEdgeLabelLeft","inner","slBox","startLeft","setTerminalWidth","startLabelRight","startEdgeLabelRight","startRight","endLabelLeft","endLabelElement","endEdgeLabelLeft","endLeft","endLabelRight","endEdgeLabelRight","endRight","paths","updatedPath","originalPath","siteConfig","calcLabelPosition","calcTerminalLabelPosition","outsideNode","point2","intersection","outsidePoint","insidePoint","JSON","cutPathAtIntersect","_points","boundaryNode","points","lastPointOutside","isInside","inter","pointPresent","extractCornerPoints","cornerPoints","cornerPointPositions","findAdjacentPoint","pointA","pointB","distance","xDiff","yDiff","fixCorners","lineData","newLineData","prevPoint","nextPoint","cornerPoint","newPrevPoint","newNextPoint","newCornerPoint","clusterDb","startNode","endNode","handDrawnSeed","pointsHasChanged","edgeClassStyles","cssCompiledStyles","toCluster","fromCluster","lineFunction","strokeClasses","thickness","pattern","linePath","edgeStyles","startsWith","look","svgPathNode","roughness","seed","stylesFromClasses","styles","animationClass","animate","animation","pathStyle","arrowMarkerAbsolute","markerArray","markerName","markers","trace","circle","cross","barb","startMarker","endMarker","containsNode","markers_default","DEC2HEX","dec2hex","TYPE","_classes","cssClasses","shapeSvg","domId","labelEl","text2","wrappingWidth","img","halfPadding","images","noImgText","setupImage","display","flexDirection","bodyFontSize","fontSize","enlargingFactor","parsedBodyFontSize","minWidth","maxWidth","complete","centerLabel","insertLabel","updateNodeBounds","getNodeClasses","extra","createPathFromPoints","pointStrings","generateFullSineWavePoints","amplitude","numCycles","deltaX","deltaY","cycleLength","frequency","midY","generateCirclePoints","centerX","centerY","radius","numPoints","startAngleRad","angleStep","angle","intersect_rect_default","sx","sy","addHtmlLabel","createLabel_default","_vertexText","vertexText","createRoundedRectPathD","totalWidth","totalHeight","themeVariables","clusterBkg","clusterBorder","labelStyles","nodeStyles","borderStyles","backgroundStyles","rect2","stroke","fillWeight","roughNode","rx","ry","rectBox","offsetX","offsetY","cluster","labelBBox","noteGroup","roundedWithTitle","altBackground","compositeBackground","compositeTitleBackground","nodeBorder","outerRectG","innerRect","innerHeight","innerY","isAlt","roughOuterNode","fillStyle","rectangle","roughInnerNode","outerRectClass","kanbanSection","shapes","squareRect","divider","strokeLineDash","clusterElems","intersectNode","intersect_node_default","intersectEllipse","det","intersect_ellipse_default","intersectCircle","intersect_circle_default","intersectLine","p2","q1","q2","a2","b1","b2","c1","c2","r2","r3","r4","denom","sameSign","intersect_line_default","intersectPolygon","polyPoints","intersections","minX","minY","pdx","pdy","distp","qdx","qdy","distq","intersect_default","ellipse","polygon","cssStyles","circleElem","generateArcPoints","clockwise","midX","transformedX","transformedY","scaledCenterDistance","angleRange","angle2","bowTieRect","bowTieRectPath","bowTieRectShapePath","bowTieRectShape","insertPolygonShape","card","pathData","choice","choicePath","choiceShape","createLine","xAxis45","yAxis45","lineLength","crossedCircle","circleNode","lineNode","crossedCircle2","generateCirclePoints2","curlyBraceLeft","rectPoints","newCurlyBracePath","curlyBraceLeftNode","rectPath","rectShape","curlyBraceLeftShape","generateCirclePoints3","curlyBraceRight","curlyBraceRightNode","curlyBraceRightShape","generateCirclePoints4","curlyBraces","leftCurlyBracePoints","rightCurlyBracePoints","newLeftCurlyBracePath","leftCurlyBraceNode","newRightCurlyBracePath","rightCurlyBraceNode","curlyBracesShape","curvedTrapezoid","rw","tw","shapeNode","createCylinderPathD","createOuterCylinderPathD","createInnerCylinderPathD","cylinder","cylinder2","outerPathData","innerPathData","outerNode","innerLine","dividedRectangle","rectOffset","pts","poly","doublecircle","circleGroup","outerOptions","strokeWidth","innerOptions","outerRoughNode","innerRoughNode","outerCircle","innerCircle","filledCircle","filledCircle2","flippedTriangle","flippedTriangle2","forkJoin","dir","state2","lineColor","halfRoundedRectangle","createHexagonPathD","hexagon","hourglass","assetHeight","assetWidth","iconSize","defaultWidth","topLabel","stylesMap","labelPadding","iconNode","outerWidth","outerHeight","iconShape","outerShape","iconElem","iconBBox","iconWidth","iconHeight","iconX","iconY","nodeHeight","iconCircle","mainBkg","diameter","SQRT2","iconRounded","iconSquare","imageSquare","Image","decode","imageNaturalWidth","naturalWidth","imageNaturalHeight","naturalHeight","imageAspectRatio","imageRawWidth","imageWidth","constraint","imageHeight","imageNode","inv_trapezoid","drawRect","labelPaddingX","labelPaddingY","options2","labelRect","lean_left","lean_right","lightningBolt","gap","lightningBolt2","createCylinderPathD2","outerOffset","createOuterCylinderPathD2","createInnerCylinderPathD2","linedCylinder","linedWaveEdgedRect","waveAmplitude","finalH","waveEdgeRect","multiRect","outerPathPoints","innerPathPoints","outerPath","innerPath","innerNode","multiRect2","multiWaveEdgedRectangle","wavePoints","lastWavePoint","note","noteBkgColor","noteBorderColor","noteShapeNode","createDecisionBoxPathD","question","rect_left_inv_arrow","notch","rectWithTitle","description","div2","dv2","textRows","titleBox","descr","roughLine","roundedRect","shadedProcess","slopedRect","squareRect2","stadium","stateEnd","stateBorder","innerFill","circle2","stateStart","subroutine","l1","l2","taggedRect","tagWidth","tagHeight","tagPoints","rectNode","tagPath","tagNode","taggedRect2","taggedWaveEdgedRectangle","waveEdgeRectPath","waveEdgeRectNode","taggedWaveEdgeRectPath","taggedWaveEdgeRectNode","createCylinderPathD3","createOuterCylinderPathD3","createInnerCylinderPathD3","tiltedCylinder","trapezoid","trapezoidalPentagon","triangle","waveEdgedRectangle","widthDif","extraW","waveRectangle","baseWidth","baseHeight","aspectRatio","waveRectPath","waveRectNode","waveRect","windowPane","no","windowPane2","erBox","entityNode","themeVariables2","background","backgroundNode","PADDING","er","diagramPadding","TEXT_PADDING","entityPadding","minEntityWidth","shapeSvg2","nameBBox","addText","yOffset","yOffsets","maxTypeWidth","maxNameWidth","maxKeysWidth","maxCommentWidth","keysPresent","commentPresent","typeBBox","nameBBox2","keysBBox","commentBBox","comment","rowHeight","totalWidthSections","shapeBBox","difference","totalShapeBBoxHeight","roughRect","rowEven","rowOdd","isEven","roughRect2","yOffset2","allStyle","strokeStyles","labelText","replaceAll","textAlign","textHelper","GAP","annotationGroup","membersGroup","methodsGroup","annotationGroupHeight","labelGroupHeight","membersGroupHeight","annotations","annotation","addText2","labelGroupBBox","member","members","parseClassifier","methodsYOffset","method","methods","annotationGroupBBox","parentGroup","textEl","numberOfLines","textChild","classBox","classNode","renderExtraBox","hideEmptyMembersBox","rectBBox","newTranslateY","newTranslateX","_2","nodes2","textAnchor","colorRegex","colorStyle","match2","requirementBox","requirementNode","elementNode","isRequirementNode","typeHeight","addText3","accumulativeHeight","nameHeight","requirementId","risk","verifyMethod","docRef","inputText","colorFromPriority","kanbanItem","kanbanNode","orgWidth","labelElTitle","ticketUrl","ticket","kanban","ticketBaseUrl","bbox2","labelElAssigned","bboxAssigned","assigned","heightAdj","lineX","shapesDefs","semanticName","shortName","internalAliases","handler","shapes2","undocumentedShapes","flatMap","fromEntries","generateShapeMap","isValidShape","nodeElems","renderOptions","newEl","shapeHandler","securityLevel","linkTarget","tooltip","haveCallback","setNodeElem","clear2","clusterNode","package_default","import","default","keywords","scripts","clean","dev","checkCircle","prepublishOnly","repository","author","license","standard","ignore","globals","dependencies","cytoscape","d3","dayjs","dompurify","katex","khroma","marked","roughjs","stylis","uuid","devDependencies","ajv","canvas","chokidar","concurrently","globby","jison","jsdom","micromatch","prettier","remark","rimraf","typedoc","typescript","vitepress","files","publishConfig","access","selectSvgElement","sandboxElement","contentDocument","typedArray","byteOffset","ZERO_WIDTH_SPACE","d3CurveTypes","curveBasis","curveBasisClosed","curveBasisOpen","curveBumpX","curveBumpY","curveBundle","curveCardinalClosed","curveCardinalOpen","curveCardinal","curveCatmullRomClosed","curveCatmullRomOpen","curveCatmullRom","curveLinear","curveLinearClosed","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","directiveWithoutOpen","detectInit","inits","detectDirective","results","commentWithoutDirectives","removeDirectives","isSubstringInArray","arr","defaultCurve","curveName","formatUrl","linkStr","runFunc","functionName","arrPaths","len","fnName","traverseEdge","totalDistance","calculatePoint","roundNumber","distanceToTraverse","remainingDistance","vectorDistance","distanceRatio","calcCardinalityPosition","isRelationTypePresent","initialPosition","cardinalityPosition","terminalMarkerSize","structuredClone","getStylesFromArray","cnt","generateId","substr","makeRandomHex","characters","getTextObj","textMargin","valign","drawSimpleText","textData","nText","_fontSizePx","parseFontSize","textElem","fontFamily","fontWeight","wrapLabel","joinWith","completedLines","nextLine","wordLength","calculateTextWidth","nextLineLength","hyphenatedStrings","remainingWord","breakString","hyphenCharacter","margin","currentCharacter","isLastLine","hyphenatedNextLine","calculateTextHeight","calculateTextDimensions","decoder","fontFamilies","dims","fontFamily2","cHeight","dim","textObj","bBox","InitIDGenerator","deterministic","entityDecode","unescape","isDetailedError","insertTitle","cssClass","titleTopMargin","bounds","fontSizeNumber","cleanAndMerge","defaultData","utils_default","assignWithDepth","encodeEntities","txt","innerTxt","decodeEntities","getEdgeId","handleUndefinedAttr","reIsUint","Channel","hue2rgb","upper","amount","amountCurrent","amountNext","ListCache","nativeMax","otherArgs","global","Stack","LARGE_ARRAY_SIZE","markerOffsets","calculateDeltaAndAngle","point1","pointTransformer","getLineFunctionsWithOffset","DIRECTION","hasOwn","differenceToEnd","differenceInYEnd","differenceToStart","differenceInYStart","startMarkerHeight","endMarkerHeight","adjustment","differenceInXEnd","differenceInXStart","ymin","ymax","islope","hachureAngle","hachureGap","randomizer","helper","fillPolygons","_fillPolygons","ops","renderLines","doubleLineOps","dotsOnLines","dashedLine","dashOffset","dashGap","zigzagOffset","zigzagLines","imul","$1","randOffset","randOffsetWithRange","opset","disableMultiStroke","op","curveStepCount","curveFitting","increment","estimatedPoints","maxRandomnessOffset","disableMultiStrokeFill","bowing","preserveVertices","curveTightness","B","tt","et","defaultOptions","fillShapeRoughnessGain","_o","newSeed","_d","sets","linearPath","_mergedShape","simplification","opsToPath","toPaths","fillSketch","st","ctx","getContext","gen","draw","getDefaultOptions","fixedDecimalPlaceDigits","save","strokeStyle","setLineDash","strokeLineDashOffset","lineDashOffset","_drawToContext","restore","fillLineDash","fillLineDashOffset","beginPath","generator","nt","ot","arg","inherited","isArg","isType","skipIndexes","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","COMMENT","RULESET","DECLARATION","replacement","indexof","charat","begin","strlen","serialize","return","siblings","peek","token","delimit","delimiter","whitespace","escaping","commenter","identifier","compile","dealloc","alloc","rule","rulesets","pseudo","declarations","atrule","variable","scanning","ampersand","reference","declaration","ruleset","post","sizeof","c4Detector_default","detector","diagram","diagram2","id2","flowDetector_default","defaultRenderer","id3","flowDetector_v2_default","layout","erDetector_default","id5","gitGraphDetector_default","id6","ganttDetector_default","id7","id9","quadrantDetector_default","id10","xychartDetector_default","id11","requirementDetector_default","id12","sequenceDetector_default","id13","classDetector_default","id14","classDetector_V2_default","id15","stateDetector_default","id16","stateDetector_V2_default","id17","journeyDetector_default","_text","id28","errorRenderer_default","errorDiagram_default","db","id18","detector_default","id19","detector_default2","id20","detector_default3","id21","detector_default4","id22","sankeyDetector_default","id23","packet","id24","radar","id25","blockDetector_default","id26","architectureDetector_default","id27","hasLoadedDiagrams","addDiagrams","loadRegisteredDiagrams","failed","allSettled","detector28","loader28","status","setA11yDiagramInfo","addSVGa11yTitleDescription","a11yTitle","a11yDesc","baseId","descId","titleId","Diagram","_Diagram","renderer2","fromText","metadata","init2","yy","setDiagramTitle","getParser","getType","interactionFunctions","attachFunctions","cleanupComments","extractFrontMatter","parsed","displayMode","cleanupText","processFrontmatter","gantt","processDirectives","initDirective","wrapDirectives","wrap","directive","preprocessDiagram","cleanedCode","frontMatterResult","directiveResult","toBase64","utf8Bytes","TextEncoder","encode","utf8Str","byte","fromCodePoint","btoa","DOMPURIFY_TAGS","DOMPURIFY_ATTR","processAndSetConfigs","processed","parseOptions","getDiagramFromText","suppressErrors","cssImportantStyles","createCssStyles","classDefs","themeCSS","altFontFamily","cssElements","styleClassDef","isEmpty","cssElement","textStyles","createUserStyles","graphType","svgId","userCSSstyles","cleanUpSvgCode","svgCode","inSandboxMode","useArrowMarkerUrls","cleanedUpSvg","putIntoIFrame","svgElement","appendDivSvgG","parentRoot","enclosingDivId","divStyle","svgXlink","enclosingDiv","sandboxedIframe","iFrameId","removeExistingElements","divId","svgContainingElement","maxTextSize","idSelector","iFrameID","iFrameID_selector","enclosingDivID","enclosingDivID_selector","removeTempElements","tmpElementSelector","isSandboxed","isLooseSecurityLevel","iframe","diag","parseEncounteredException","suppressErrorRendering","diagramClassDefs","getClasses","style1","getAccTitle","a11yDescr","getAccDescription","addA11yInfo","svgEl","foreignobject","bindFunctions","initialize","userOptions","theme","getThemeVariables","logLevel","mermaidAPI","getSiteConfig","updateSiteConfig","globalReset","defaultConfig","handleError","errors","parseError","hash","run","runThrowsErrors","mermaid","postRenderCallback","conf","nodesToProcess","startOnLoad","idGenerator","deterministicIds","deterministicIDSeed","render2","initialize2","runOptions","HTMLElement","registerExternalDiagrams","diagrams","lazyLoad","contentLoaded","setParseErrorHandler","parseErrorHandler","executionQueue","executionQueueRunning","executeQueue","parse2","performCall","rej","container","getRegisteredDiagramsMetadata","mermaid_default","constant","identity","nativeNow","lastCalled","stamp","remaining","solidStateFill","compileStyles","styles2Map","stylesArray","isLabelStyle","styles2String","userNodeOverrides","constants_1","decodeURI","charsToDecode","decodedUrl","sanitizedUrl","isRelativeUrlWithoutProtocol","trimmedUrl","urlSchemeParseResults","urlScheme","backSanitized","URL","canParse","isValidUrl","url_1","protocol","hostname","assigner","sources","guard","isNew","changes","change","weight","inverse","color1","color2","g1","g2","weightScale","weightNormalized","alphaDelta","weight1","weight2","configFromInitialize","__defProp","__name","__export","LEVELS","fatal","_args","setLogLevel","numericLevel","frontMatterRegex","directiveRegex","anyCommentRegex","UnknownDiagramError","detectors","config2","registerLazyLoadedDiagrams","diagrams2","addDetector","getDiagramLoader","dst","clobber","assignWithDepth_default","oldAttributeBackgroundColorOdd","oldAttributeBackgroundColorEven","mkBorder","col","darkMode","Theme","primaryColor","noteTextColor","THEME_COLOR_LIMIT","updateColors","primaryTextColor","secondaryColor","tertiaryColor","primaryBorderColor","secondaryBorderColor","tertiaryBorderColor","secondaryTextColor","tertiaryTextColor","arrowheadColor","textColor","border2","nodeBkg","defaultLinkColor","titleColor","edgeLabelBackground","darken","nodeTextColor","actorBorder","actorBkg","actorTextColor","actorLineColor","labelBoxBkgColor","signalColor","signalTextColor","labelBoxBorderColor","labelTextColor","loopTextColor","activationBorderColor","activationBkgColor","sequenceNumberColor","sectionBkgColor","altSectionBkgColor","sectionBkgColor2","excludeBkgColor","taskBorderColor","taskBkgColor","activeTaskBorderColor","activeTaskBkgColor","lighten","gridColor","doneTaskBkgColor","doneTaskBorderColor","critBorderColor","critBkgColor","todayLineColor","vertLineColor","taskTextColor","taskTextOutsideColor","taskTextLightColor","taskTextDarkColor","taskTextClickableColor","personBorder","personBkg","transitionColor","transitionLabelColor","stateLabelColor","stateBkg","labelBackgroundColor","compositeBorder","innerEndBackground","errorBkgColor","errorTextColor","specialStateColor","cScale0","cScale1","cScale2","cScale3","cScale4","cScale5","cScale6","cScale7","cScale8","cScale9","cScale10","cScale11","scaleLabelColor","classText","fillType0","fillType1","fillType2","fillType3","fillType4","fillType5","fillType6","fillType7","pie1","pie2","pie3","pie4","pie5","pie6","pie7","pie8","pie9","pie10","pie11","pie12","pieTitleTextSize","pieTitleTextColor","pieSectionTextSize","pieSectionTextColor","pieLegendTextSize","pieLegendTextColor","pieStrokeColor","pieStrokeWidth","pieOuterStrokeWidth","pieOuterStrokeColor","pieOpacity","axisColor","axisStrokeWidth","axisLabelFontSize","curveOpacity","curveStrokeWidth","graticuleColor","graticuleStrokeWidth","graticuleOpacity","legendBoxSize","legendFontSize","archEdgeColor","archEdgeArrowColor","archEdgeWidth","archGroupBorderColor","archGroupBorderWidth","quadrant1Fill","quadrant2Fill","quadrant3Fill","quadrant4Fill","quadrant1TextFill","quadrant2TextFill","quadrant3TextFill","quadrant4TextFill","quadrantPointFill","quadrantPointTextFill","quadrantXAxisTextFill","quadrantYAxisTextFill","quadrantInternalBorderStrokeFill","quadrantExternalBorderStrokeFill","quadrantTitleFill","xyChart","backgroundColor","xAxisTitleColor","xAxisLabelColor","xAxisTickColor","xAxisLineColor","yAxisTitleColor","yAxisLabelColor","yAxisTickColor","yAxisLineColor","plotColorPalette","requirementBackground","requirementBorderColor","requirementBorderSize","requirementTextColor","relationColor","relationLabelBackground","relationLabelColor","git0","git1","git2","git3","git4","git5","git6","git7","gitInv0","gitInv1","gitInv2","gitInv3","gitInv4","gitInv5","gitInv6","gitInv7","branchLabelColor","gitBranchLabel0","gitBranchLabel1","gitBranchLabel2","gitBranchLabel3","gitBranchLabel4","gitBranchLabel5","gitBranchLabel6","gitBranchLabel7","tagLabelColor","tagLabelBackground","tagLabelBorder","tagBorder","tagLabelFontSize","commitLabelColor","commitLabelBackground","commitLabelFontSize","attributeBackgroundColorOdd","attributeBackgroundColorEven","calculate","overrides","userOverrides","Theme2","secondBkg","mainContrastColor","darkTextColor","border1","labelBackground","labelColor","cScale12","startByteColor","endByteColor","blockStrokeColor","blockFillColor","getThemeVariables2","Theme3","cScaleLabel0","cScaleLabel3","getThemeVariables3","Theme4","getThemeVariables4","Theme5","contrast","critical","done","cScaleLabel2","pie0","themes_default","base","dark","forest","neutral","config_schema_default","elk","mergeEdges","nodePlacementStrategy","messageFont","messageFontFamily","messageFontSize","messageFontWeight","noteFont","noteFontFamily","noteFontSize","noteFontWeight","actorFont","actorFontFamily","actorFontSize","actorFontWeight","useWidth","c4","personFont","personFontFamily","personFontSize","personFontWeight","inheritDir","external_personFont","external_personFontFamily","external_personFontSize","external_personFontWeight","systemFont","systemFontFamily","systemFontSize","systemFontWeight","external_systemFont","external_systemFontFamily","external_systemFontSize","external_systemFontWeight","system_dbFont","system_dbFontFamily","system_dbFontSize","system_dbFontWeight","external_system_dbFont","external_system_dbFontFamily","external_system_dbFontSize","external_system_dbFontWeight","system_queueFont","system_queueFontFamily","system_queueFontSize","system_queueFontWeight","external_system_queueFont","external_system_queueFontFamily","external_system_queueFontSize","external_system_queueFontWeight","containerFont","containerFontFamily","containerFontSize","containerFontWeight","external_containerFont","external_containerFontFamily","external_containerFontSize","external_containerFontWeight","container_dbFont","container_dbFontFamily","container_dbFontSize","container_dbFontWeight","external_container_dbFont","external_container_dbFontFamily","external_container_dbFontSize","external_container_dbFontWeight","container_queueFont","container_queueFontFamily","container_queueFontSize","container_queueFontWeight","external_container_queueFont","external_container_queueFontFamily","external_container_queueFontSize","external_container_queueFontWeight","componentFont","componentFontFamily","componentFontSize","componentFontWeight","external_componentFont","external_componentFontFamily","external_componentFontSize","external_componentFontWeight","component_dbFont","component_dbFontFamily","component_dbFontSize","component_dbFontWeight","external_component_dbFont","external_component_dbFontFamily","external_component_dbFontSize","external_component_dbFontWeight","component_queueFont","component_queueFontFamily","component_queueFontSize","component_queueFontWeight","external_component_queueFont","external_component_queueFontFamily","external_component_queueFontSize","external_component_queueFontWeight","boundaryFont","boundaryFontFamily","boundaryFontSize","boundaryFontWeight","requirement","useMaxWidth","showValues","nodeWidth","borderWidth","valueFontSize","labelFontSize","valueFormat","keyify","configKeys","defaultConfig_default","sanitizeDirective","cssMatchers","cssKey","sanitizeCss","val","startCnt","endCnt","directives","currentConfig","updateCurrentConfig","siteCfg","_directives","sumOfDirectives","tmpConfigFromInitialize","checkConfig","setSiteConfig","saveConfigFromInitialize","secure","addDirective","ConfigWarning","LAZY_LOAD_DEPRECATED","issuedWarnings","issueWarning","warning","lazyLoadedDiagrams","loadExternalDiagramsAtStartup","getRows","breakToPlaceholder","setupDompurifyHooksIfNotSetup","setup","setupDompurifyHooks","TEMPORARY_ATTRIBUTE","removeScript","sanitizeMore","placeholderToBreak","sanitizeText","dompurifyConfig","sanitizeTextOrArray","hasBreaks","splitBreaks","getUrl","useAbsolute","host","pathname","CSS","evaluate","getMax","newValues","getMin","parseGenericTypes","inputSets","thisSet","previousSet","nextSet","shouldCombineSets","processSet","countOccurrence","prevCount","nextCount","tildeCount","hasStartingTilde","chars","last","isMathMLSupported","MathMLElement","katexRegex","hasKatex","calculateMathMLDimensions","renderKatex","divElem","visibility","insertAdjacentElement","clientWidth","clientHeight","legacyMathML","forceLegacyMathML","outputMode","renderToString","throwOnError","common_default","d3Attrs","d3Elem","attrs","calculateSvgSizeAttrs","configureSvgSize","svgElem","setupGraphViewbox","graph","svgBounds","sWidth","sHeight","vBox","themes","getStyles","userStyles","diagramStyles","addStylesForDiagram","diagramTheme","styles_default","commonDb_exports","getDiagramTitle","setAccDescription","setAccTitle","accTitle","diagramTitle","accDescription","sanitizeText2","log2","setLogLevel2","getConfig2","setConfig2","defaultConfig2","sanitizeText3","setupGraphViewbox2","getCommonDb","registerDiagram","injectUtils","getDiagram","DiagramNotFoundError","objectCreate","arrayBuffer","byteLength","propertyIsEnumerable","dedent","templ","_i","indentLengths","_a","_b","pattern_1","endentations","endentation","indentedValue","freeSelf","memoize","resolver","memoized","cache","Cache"],"sourceRoot":""}