@next-bricks/visual-builder 1.39.5 → 1.39.7

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 (84) hide show
  1. package/dist/bricks.json +13 -13
  2. package/dist/chunks/1120.84e1f4e2.js +2 -0
  3. package/dist/chunks/1120.84e1f4e2.js.map +1 -0
  4. package/dist/chunks/1136.4f0b1e92.js +2 -0
  5. package/dist/chunks/1136.4f0b1e92.js.map +1 -0
  6. package/dist/chunks/1215.08ccbe4b.js +2 -0
  7. package/dist/chunks/1215.08ccbe4b.js.map +1 -0
  8. package/dist/chunks/2449.87bdc3cc.js +2 -0
  9. package/dist/chunks/2449.87bdc3cc.js.map +1 -0
  10. package/dist/chunks/2510.b6d69957.js +2 -0
  11. package/dist/chunks/2510.b6d69957.js.map +1 -0
  12. package/dist/chunks/2593.df61f6b7.js +2 -0
  13. package/dist/chunks/2593.df61f6b7.js.map +1 -0
  14. package/dist/chunks/36.b158228e.js +3 -0
  15. package/dist/chunks/36.b158228e.js.LICENSE.txt +9 -0
  16. package/dist/chunks/36.b158228e.js.map +1 -0
  17. package/dist/chunks/3623.c6955147.js +2 -0
  18. package/dist/chunks/3623.c6955147.js.map +1 -0
  19. package/dist/chunks/4190.f1eff80b.js +2 -0
  20. package/dist/chunks/4190.f1eff80b.js.map +1 -0
  21. package/dist/chunks/4609.8899c4ff.js +2 -0
  22. package/dist/chunks/4609.8899c4ff.js.map +1 -0
  23. package/dist/chunks/4735.8d0f300f.js +2 -0
  24. package/dist/chunks/4735.8d0f300f.js.map +1 -0
  25. package/dist/chunks/5032.14e135c9.js +2 -0
  26. package/dist/chunks/5032.14e135c9.js.map +1 -0
  27. package/dist/chunks/5065.3f848a74.js +2 -0
  28. package/dist/chunks/5065.3f848a74.js.map +1 -0
  29. package/dist/chunks/5498.80b037e7.js +2 -0
  30. package/dist/chunks/5498.80b037e7.js.map +1 -0
  31. package/dist/chunks/5522.7cc41a07.js +3 -0
  32. package/dist/chunks/5522.7cc41a07.js.map +1 -0
  33. package/dist/chunks/6724.cc08f7ba.js +2 -0
  34. package/dist/chunks/6724.cc08f7ba.js.map +1 -0
  35. package/dist/chunks/7085.c58ac475.js +3 -0
  36. package/dist/chunks/{8595.c2633081.js.LICENSE.txt → 7085.c58ac475.js.LICENSE.txt} +6 -0
  37. package/dist/chunks/7085.c58ac475.js.map +1 -0
  38. package/dist/chunks/8263.3a99285a.js +2 -0
  39. package/dist/chunks/8263.3a99285a.js.map +1 -0
  40. package/dist/chunks/8311.3484d7d3.js +2 -0
  41. package/dist/chunks/8311.3484d7d3.js.map +1 -0
  42. package/dist/chunks/8757.4deac642.js +2 -0
  43. package/dist/chunks/8757.4deac642.js.map +1 -0
  44. package/dist/chunks/9251.5e3a3027.js +2 -0
  45. package/dist/chunks/9251.5e3a3027.js.map +1 -0
  46. package/dist/chunks/934.22d82dfd.js +3 -0
  47. package/dist/chunks/{5020.9bdb495b.js.LICENSE.txt → 934.22d82dfd.js.LICENSE.txt} +0 -10
  48. package/dist/chunks/934.22d82dfd.js.map +1 -0
  49. package/dist/chunks/chat-conversation.c0add67d.js +3 -0
  50. package/dist/chunks/chat-conversation.c0add67d.js.map +1 -0
  51. package/dist/chunks/{contract-select.945ac0e3.js → contract-select.fe63ada2.js} +3 -3
  52. package/dist/chunks/contract-select.fe63ada2.js.map +1 -0
  53. package/dist/chunks/main.a8fcb5d6.js +2 -0
  54. package/dist/chunks/main.a8fcb5d6.js.map +1 -0
  55. package/dist/chunks/workbench-history-action.2f710853.js +3 -0
  56. package/dist/chunks/workbench-history-action.2f710853.js.map +1 -0
  57. package/dist/examples.json +3 -3
  58. package/dist/{index.a7b214de.js → index.c7ed311c.js} +2 -2
  59. package/dist/index.c7ed311c.js.map +1 -0
  60. package/dist/manifest.json +193 -193
  61. package/dist/types.json +893 -893
  62. package/package.json +2 -2
  63. package/dist/chunks/2630.1b331b35.js +0 -3
  64. package/dist/chunks/2630.1b331b35.js.map +0 -1
  65. package/dist/chunks/5020.9bdb495b.js +0 -3
  66. package/dist/chunks/5020.9bdb495b.js.map +0 -1
  67. package/dist/chunks/5522.e82b86a6.js +0 -3
  68. package/dist/chunks/5522.e82b86a6.js.map +0 -1
  69. package/dist/chunks/7936.0669d484.js +0 -2
  70. package/dist/chunks/7936.0669d484.js.map +0 -1
  71. package/dist/chunks/8595.c2633081.js +0 -3
  72. package/dist/chunks/8595.c2633081.js.map +0 -1
  73. package/dist/chunks/chat-conversation.bcc40462.js +0 -2
  74. package/dist/chunks/chat-conversation.bcc40462.js.map +0 -1
  75. package/dist/chunks/contract-select.945ac0e3.js.map +0 -1
  76. package/dist/chunks/main.0ffa74db.js +0 -2
  77. package/dist/chunks/main.0ffa74db.js.map +0 -1
  78. package/dist/chunks/workbench-history-action.61d07ecd.js +0 -3
  79. package/dist/chunks/workbench-history-action.61d07ecd.js.map +0 -1
  80. package/dist/index.a7b214de.js.map +0 -1
  81. /package/dist/chunks/{5522.e82b86a6.js.LICENSE.txt → 5522.7cc41a07.js.LICENSE.txt} +0 -0
  82. /package/dist/chunks/{2630.1b331b35.js.LICENSE.txt → chat-conversation.c0add67d.js.LICENSE.txt} +0 -0
  83. /package/dist/chunks/{contract-select.945ac0e3.js.LICENSE.txt → contract-select.fe63ada2.js.LICENSE.txt} +0 -0
  84. /package/dist/chunks/{workbench-history-action.61d07ecd.js.LICENSE.txt → workbench-history-action.2f710853.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/934.22d82dfd.js","mappings":"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","sources":["webpack:///../../node_modules/lodash-es/_cloneBuffer.js","webpack:///../../node_modules/mermaid/dist/mermaid.core.mjs","webpack:///../../node_modules/lodash-es/_toSource.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/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/_getRawTag.js","webpack:///../../node_modules/lodash-es/_objectToString.js","webpack:///../../node_modules/lodash-es/_baseGetTag.js","webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-P3VETL53.mjs","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/_isIterateeCall.js","webpack:///../../node_modules/roughjs/bundled/rough.esm.js","webpack:///../../node_modules/@braintree/sanitize-url/dist/index.js","webpack:///../../node_modules/ts-dedent/esm/index.js","webpack:///../../node_modules/lodash-es/_nodeUtil.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/mermaid/dist/chunks/mermaid.core/chunk-AC5SNWB5.mjs","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/lodash-es/identity.js","webpack:///../../node_modules/lodash-es/_overRest.js","webpack:///../../node_modules/lodash-es/_apply.js","webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-IWUHOULB.mjs","webpack:///../../node_modules/lodash-es/_baseFor.js","webpack:///../../node_modules/lodash-es/_createBaseFor.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/mermaid/dist/chunks/mermaid.core/chunk-RKKUNAVE.mjs","webpack:///../../node_modules/lodash-es/_Map.js","webpack:///../../node_modules/@braintree/sanitize-url/dist/constants.js","webpack:///../../node_modules/lodash-es/eq.js","webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-MXNHSMXR.mjs","webpack:///../../node_modules/lodash-es/_copyObject.js","webpack:///../../node_modules/lodash-es/_Set.js","webpack:///../../node_modules/lodash-es/isArrayLike.js","webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-L5ZGVLVO.mjs","webpack:///../../node_modules/lodash-es/isBuffer.js","webpack:///../../node_modules/lodash-es/stubFalse.js","webpack:///../../node_modules/lodash-es/_getPrototype.js","webpack:///../../node_modules/khroma/dist/methods/change.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/_root.js","webpack:///../../node_modules/lodash-es/memoize.js","webpack:///../../node_modules/lodash-es/isArrayLikeObject.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/lodash-es/isObjectLike.js","webpack:///../../node_modules/lodash-es/constant.js","webpack:///../../node_modules/lodash-es/isLength.js","webpack:///../../node_modules/khroma/dist/methods/lighten.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/isFunction.js","webpack:///../../node_modules/lodash-es/_baseRest.js","webpack:///../../node_modules/mermaid/node_modules/dompurify/dist/purify.es.mjs","webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-M6DAPIYF.mjs","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/@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/_defineProperty.js","webpack:///../../node_modules/khroma/dist/methods/rgba.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/khroma/dist/constants.js","webpack:///../../node_modules/lodash-es/_cloneTypedArray.js","webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-55PJQP7W.mjs","webpack:///../../node_modules/lodash-es/_overArg.js","webpack:///../../node_modules/lodash-es/_nativeKeys.js","webpack:///../../node_modules/lodash-es/_baseKeys.js","webpack:///../../node_modules/lodash-es/_isPrototype.js","webpack:///../../node_modules/lodash-es/isEmpty.js","webpack:///../../node_modules/lodash-es/_assignValue.js","webpack:///../../node_modules/lodash-es/_arrayLikeKeys.js","webpack:///../../node_modules/lodash-es/_baseTimes.js","webpack:///../../node_modules/lodash-es/_copyArray.js","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/_Symbol.js","webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-JW4RIYDF.mjs","webpack:///../../node_modules/lodash-es/_isIndex.js","webpack:///../../node_modules/khroma/dist/methods/adjust_channel.js","webpack:///../../node_modules/khroma/dist/methods/darken.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/lodash-es/_baseIsTypedArray.js","webpack:///../../node_modules/lodash-es/isTypedArray.js","webpack:///../../node_modules/lodash-es/isArray.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/lodash-es/_baseSetToString.js","webpack:///../../node_modules/lodash-es/_shortOut.js","webpack:///../../node_modules/lodash-es/_setToString.js","webpack:///../../node_modules/lodash-es/_Uint8Array.js","webpack:///../../node_modules/lodash-es/isObject.js","webpack:///../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-UWXLY5YG.mjs","webpack:///../../node_modules/lodash-es/_createAssigner.js","webpack:///../../node_modules/lodash-es/_baseCreate.js","webpack:///../../node_modules/lodash-es/_initCloneObject.js","webpack:///../../node_modules/lodash-es/_baseAssignValue.js"],"sourcesContent":["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 {\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","/** 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 */\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","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 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","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 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 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","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","\"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","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","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","/* 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","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 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","/**\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 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 {\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 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 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","// 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 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","\"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","/**\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","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 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 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 __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","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 overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\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","/** 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","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","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 */\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","/**\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","/**\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 */\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 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 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 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","/*! @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 {\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 */\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","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 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 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 */\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 */\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 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","/**\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 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","/** 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 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 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 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 * 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 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 root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\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","/** 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 */\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 */\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","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","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","/**\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","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","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 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 {\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","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 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 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"],"names":["freeExports","exports","nodeType","freeModule","module","Buffer","undefined","allocUnsafe","buffer","isDeep","slice","length","result","constructor","copy","c4Detector_default","id","detector","txt","test","loader","async","diagram","diagram2","id2","flowDetector_default","config","flowchart","defaultRenderer","id3","flowDetector_v2_default","layout","erDetector_default","id5","gitGraphDetector_default","id6","ganttDetector_default","id7","info","pie","id9","quadrantDetector_default","id10","xychartDetector_default","id11","requirementDetector_default","id12","sequenceDetector_default","id13","classDetector_default","class","id14","classDetector_V2_default","id15","stateDetector_default","state","id16","stateDetector_V2_default","id17","journeyDetector_default","renderer","draw","_text","id28","version","debug","svg","g","append","attr","style","text","errorRenderer_default","errorDiagram_default","db","parser","parse","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","treemap","hasLoadedDiagrams","addDiagrams","toLowerCase","trim","clear","styles","Error","init","trimStart","startsWith","loadRegisteredDiagrams","failed","Promise","allSettled","Object","entries","map","key","detector28","loader28","err","error","filter","status","res","setA11yDiagramInfo","diagramType","addSVGa11yTitleDescription","a11yTitle","a11yDesc","baseId","insert","descId","titleId","Diagram","_Diagram","type","renderer2","this","fromText","metadata","init2","yy","title","setDiagramTitle","render","getParser","getType","interactionFunctions","attachFunctions","forEach","f","cleanupComments","replace","extractFrontMatter","matches","match","parsed","schema","Array","isArray","displayMode","toString","cleanupText","code","tag","attributes","processFrontmatter","gantt","processDirectives","initDirective","detectInit","wrapDirectives","detectDirective","wrap","some","directive","preprocessDiagram","cleanedCode","frontMatterResult","directiveResult","toBase64","str","utf8Bytes","TextEncoder","encode","utf8Str","from","byte","String","fromCodePoint","join","btoa","DOMPURIFY_TAGS","DOMPURIFY_ATTR","processAndSetConfigs","processed","parseOptions","getDiagramFromText","suppressErrors","cssImportantStyles","cssClass","element","cssClasses","createCssStyles","classDefs","Map","cssStyles","themeCSS","fontFamily","altFontFamily","cssElements","htmlLabels","styleClassDef","cssElement","textStyles","s","createUserStyles","graphType","svgId","userCSSstyles","allStyles","themeVariables","cleanUpSvgCode","svgCode","inSandboxMode","useArrowMarkerUrls","cleanedUpSvg","putIntoIFrame","svgElement","viewBox","baseVal","height","appendDivSvgG","parentRoot","enclosingDivId","divStyle","svgXlink","enclosingDiv","svgNode","sandboxedIframe","parentNode","iFrameId","removeExistingElements","doc","divId","getElementById","remove","svgContainingElement","maxTextSize","idSelector","iFrameID","iFrameID_selector","enclosingDivID","enclosingDivID_selector","removeTempElements","tmpElementSelector","isSandboxed","node","root","securityLevel","isLooseSecurityLevel","innerHTML","iframe","nodes","contentDocument","body","margin","document","diag","parseEncounteredException","suppressErrorRendering","select","firstChild","diagramClassDefs","getClasses","rules","style1","createElement","insertBefore","e","getAccTitle","a11yDescr","getAccDescription","addA11yInfo","selectAll","arrowMarkerAbsolute","svgEl","sanitize","ADD_TAGS","ADD_ATTR","HTML_INTEGRATION_POINTS","foreignobject","bindFunctions","initialize","userOptions","options","theme","getThemeVariables","default","logLevel","mermaidAPI","freeze","getConfig","setConfig","getSiteConfig","updateSiteConfig","reset","globalReset","defaultConfig","handleError","errors","parseError","warn","hash","push","message","name","run","querySelector","runThrowsErrors","mermaid","postRenderCallback","conf","nodesToProcess","querySelectorAll","startOnLoad","idGenerator","InitIDGenerator","deterministicIds","deterministicIDSeed","getAttribute","setAttribute","next","entityDecode","render2","initialize2","callback","runOptions","HTMLElement","registerExternalDiagrams","diagrams","lazyLoad","contentLoaded","catch","window","addEventListener","setParseErrorHandler","parseErrorHandler","executionQueue","executionQueueRunning","executeQueue","shift","parse2","resolve","reject","performCall","rej","then","r","container","getRegisteredDiagramsMetadata","keys","registerLayoutLoaders","detectType","registerIconPacks","mermaid_default","funcToString","Function","prototype","func","call","color","b","luminance","channel","toLinear","lang","round","max","values","valueof","value","index","min","x","right","bottom","left","epsilon","translateX","translateY","y","number","scale","d","center","offset","Math","bandwidth","entering","__axis","axis","orient","tickArguments","tickValues","tickFormat","tickSizeInner","tickSizeOuter","tickPadding","devicePixelRatio","k","transform","context","ticks","apply","domain","format","spacing","range","range0","range1","position","selection","path","data","tick","order","tickExit","exit","tickEnter","enter","line","merge","transition","isFinite","p","each","_","arguments","tickSize","axisTop","axisBottom","none","selector","empty","childMatcher","find","childFirst","firstElementChild","children","update","EnterNode","parent","datum","ownerDocument","namespaceURI","_next","_parent","__data__","bindIndex","group","i","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","keyValues","has","set","get","delete","arraylike","ascending","a","NaN","appendChild","child","xhtml","xlink","xml","xmlns","prefix","indexOf","namespaces","hasOwnProperty","space","local","attrRemove","removeAttribute","attrRemoveNS","fullname","removeAttributeNS","attrConstant","attrConstantNS","setAttributeNS","attrFunction","v","attrFunctionNS","defaultView","styleRemove","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","propertyRemove","propertyConstant","propertyFunction","classArray","string","split","classList","ClassList","_node","_names","classedAdd","names","list","n","add","classedRemove","classedTrue","classedFalse","classedFunction","textRemove","textContent","textConstant","textFunction","htmlRemove","htmlConstant","htmlFunction","raise","nextSibling","lower","previousSibling","creatorInherit","uri","documentElement","createElementNS","creatorFixed","namespace","constantNull","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","onRemove","typename","on","__on","o","j","m","removeEventListener","listener","onAdd","event","contextListener","dispatchEvent","params","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","splice","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","sort","compare","compareNode","sortgroups","sortgroup","size","getAttributeNS","property","classed","html","create","creator","before","deep","t","typenames","parseTypenames","dispatch","Symbol","iterator","noop","Dispatch","c","concat","types","T","that","args","taskHead","taskTail","timeout","interval","clockLast","clockNow","clockSkew","clock","performance","now","Date","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","TypeError","emptyOn","emptyTween","timing","schedules","__transition","self","tween","start","duration","ease","schedule","degrees","PI","rotate","skewX","scaleX","scaleY","sqrt","atan2","atan","interpolateTransform","pxComma","pxParen","degParen","pop","q","xa","ya","xb","yb","translate","interpolateTransformCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","interpolateTransformSvg","consolidate","matrix","tweenRemove","tween0","tween1","tweenFunction","tweenValue","_id","factory","extend","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","RegExp","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","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","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","l","exec","parseInt","rgbn","Rgb","rgba","hsla","opacity","rgb_formatHex","hex","rgb_formatRgb","clampa","clampi","isNaN","h","Hsl","hslConvert","clamph","clampt","hsl2rgb","m2","channels","assign","displayable","formatHex8","formatHsl","pow","clamp","basis","v0","v1","v2","v3","t3","linear","nogamma","rgbGamma","exponential","gamma","end","rgbSpline","spline","colors","floor","reA","reB","source","am","bm","bs","bi","lastIndex","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","re","formatSpecifier","specifier","FormatSpecifier","fill","align","sign","symbol","width","comma","precision","exponent","toFixed","toLocaleString","toPrecision","formatRounded","toUpperCase","formatPrefix","prefixes","count","sum","hierarchy","mapChildren","objectChildren","childs","Node","depth","eachBefore","computeHeight","copyData","x0","y0","x1","y1","locale","grouping","thousands","Number","substring","reverse","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","percent","minus","nan","newFormat","formatTypes","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","formatTrim","charCodeAt","padding","eachAfter","ancestor","aNodes","ancestors","bNodes","leastCommonAncestor","descendants","leaves","links","target","current","custom","ratio","squarify","row","nodeValue","dx","dy","sumValue","minValue","maxValue","newRatio","minRatio","alpha","beta","rows","dice","squarifyRatio","constantZero","tile","paddingStack","paddingInner","paddingTop","paddingRight","paddingBottom","paddingLeft","positionNode","required","paddingOuter","radians","Xn","Zn","labConvert","Lab","Hcl","hcl2lab","z","rgb2lrgb","xyz2lab","lab2xyz","lrgb2rgb","hcl","hclConvert","cos","sin","hue","initRange","InternMap","keyof","super","defineProperties","_intern","_key","intern_get","intern_set","intern_delete","valueOf","Set","implicit","ordinal","unknown","band","step","ordinalRange","r0","r1","rescale","ceil","rangeRound","e10","e5","e2","tickSpec","power","log10","factor","i2","inc","tickIncrement","tickStep","descending","bisector","compare1","compare2","delta","lo","hi","mid","ascendingBisect","bisectRight","genericArray","nb","na","setTime","date","ArrayBuffer","isView","DataView","object","unit","normalize","bimap","d0","d1","polymap","bisect","continuous","untransform","piecewise","output","input","invert","u","transformer","linearish","precisionPrefix","precisionRound","precisionFixed","nice","prestep","maxIter","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationYear","timeInterval","floori","offseti","field","millisecond","second","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","year","month","week","day","hour","minute","tickIntervals","tickInterval","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","H","M","S","L","utcDate","UTC","newDate","timeFormat","pads","numberRe","percentRe","requoteRe","pad","requote","formatRe","formatLookup","parseWeekdayNumberSunday","w","parseWeekdayNumberMonday","parseWeekNumberSunday","U","parseWeekNumberISO","V","parseWeekNumberMonday","W","parseFullYear","parseYear","parseZone","Z","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","Q","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","charAt","newParse","X","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","D","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","lc","centroid","Linear","_context","defined","curve","defined0","lineStart","lineEnd","point","sortValues","arcs","pa","Basis","BasisClosed","BasisOpen","areaStart","_line","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","objectProto","nativeObjectToString","symToStringTag","toStringTag","isOwn","unmasked","selectSvgElement","sandboxElement","array","eq","ListCache","entry","ymin","ymax","islope","edge","hachureAngle","hachureGap","strokeWidth","roughness","randomizer","random","helper","fillPolygons","_fillPolygons","ops","renderLines","doubleLineOps","dotsOnLines","fillWeight","ellipse","dashedLine","dashOffset","dashGap","zigzagOffset","zigzagLines","seed","imul","A","C","substr","$1","parseFloat","P","O","randOffset","G","randOffsetWithRange","E","opset","$","disableMultiStroke","op","curveStepCount","curveFitting","increment","rx","ry","F","estimatedPoints","I","maxRandomnessOffset","fillStyle","disableMultiStrokeFill","R","bowing","preserveVertices","curveTightness","N","B","J","K","Y","tt","et","defaultOptions","stroke","fillShapeRoughnessGain","_o","newSeed","_d","sets","rectangle","circle","linearPath","_mergedShape","polygon","simplification","opsToPath","toPaths","fillSketch","st","canvas","ctx","getContext","gen","getDefaultOptions","fixedDecimalPlaceDigits","save","strokeStyle","lineWidth","strokeLineDash","setLineDash","strokeLineDashOffset","lineDashOffset","_drawToContext","restore","fillLineDash","fillLineDashOffset","beginPath","generator","nt","ot","at","constants_1","decodeURI","decodeURIComponent","url","BLANK_URL","charsToDecode","decodedUrl","ctrlCharactersRegex","htmlEntitiesRegex","dec","fromCharCode","htmlCtrlEntityRegex","whitespaceEscapeCharsRegex","sanitizedUrl","relativeFirstCharacters","isRelativeUrlWithoutProtocol","trimmedUrl","urlSchemeParseResults","urlSchemeRegex","urlScheme","invalidProtocolRegex","backSanitized","includes","URL","canParse","isValidUrl","url_1","protocol","hostname","dedent","templ","_i","indentLengths","reduce","arr","_a","_b","pattern_1","endentations","endentation","indentedValue","freeProcess","process","require","binding","Hex","hasAlpha","isFullLength","multiplier","bits","bitsOffset","mask","stringify","HSL","hueRe","_hue2deg","charCode","isAlphaPercentage","Keyword","cyanaqua","transparent","RGB","isRedPercentage","isGreenPercentage","isBluePercentage","keyword","hsl","changed","is","isInteger","getSubGraphTitleMargins","subGraphTitleTopMargin","subGraphTitleMargin","top","subGraphTitleBottomMargin","subGraphTitleTotalMargin","Hash","MapCache","nativeMax","otherArgs","thisArg","internalHelpers","common","insertCluster","insertEdge","insertEdgeLabel","insertMarkers","insertNode","interpolateToCurve","labelHelper","log","positionEdgeLabel","layoutAlgorithms","loaders","registerDefaultLayoutLoaders","data4Layout","layoutAlgorithm","layoutDefinition","algorithm","getRegisteredLayoutAlgorithm","fallback","iteratee","keysFunc","iterable","props","funcProto","objectCtorString","srcIndex","mergeFunc","customizer","stack","objValue","srcValue","stacked","newValue","isCommon","isArr","isBuff","isBuffer","isTyped","isTypedArray","isArrayLikeObject","isObjectLike","proto","Ctor","isArguments","keysIn","isObject","isFunction","baseMerge","package_default","description","import","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","chokidar","concurrently","globby","jison","jsdom","micromatch","prettier","remark","rimraf","typedoc","typescript","vitepress","files","publishConfig","access","defineProperty","other","markerOffsets","aggregation","extension","composition","dependency","lollipop","arrow_point","calculateDeltaAndAngle","point1","point2","angle","deltaX","deltaY","pointTransformer","getLineFunctionsWithOffset","DIRECTION","hasOwn","arrowTypeStart","arrowTypeEnd","differenceToEnd","differenceInYEnd","differenceToStart","differenceInYStart","startMarkerHeight","endMarkerHeight","adjustment","differenceInXEnd","differenceInXStart","isNew","isNothing","subject","toArray","sequence","sourceKeys","repeat","cycle","isNegativeZero","NEGATIVE_INFINITY","formatError","exception2","compact","where","reason","mark","column","snippet","YAMLException$1","captureStackTrace","exception","getLine","maxLineLength","head","tail","maxHalfLength","pos","padStart","makeSnippet","maxLength","indent","linesBefore","linesAfter","lineStarts","lineEnds","foundLineNo","lineNoLength","TYPE_CONSTRUCTOR_OPTIONS","YAML_NODE_KINDS","compileStyleAliases","map2","alias","Type$1","kind","construct","instanceOf","predicate","represent","representName","defaultStyle","multi","styleAliases","compileList","schema2","currentType","newIndex","previousType","previousIndex","compileMap","scalar","mapping","collectType","type2","Schema$1","explicit","type$1","loadKind","compiledImplicit","compiledExplicit","compiledTypeMap","failsafe","resolveYamlNull","constructYamlNull","isNull","_null","canonical","lowercase","uppercase","camelcase","resolveYamlBoolean","constructYamlBoolean","isBoolean","bool","isHexCode","isOctCode","isDecCode","resolveYamlInteger","ch","hasDigits","constructYamlInteger","int","binary","obj","octal","hexadecimal","YAML_FLOAT_PATTERN","resolveYamlFloat","constructYamlFloat","POSITIVE_INFINITY","SCIENTIFIC_WITHOUT_DOT","representYamlFloat","isFloat","float","json","core","YAML_DATE_REGEXP","YAML_TIMESTAMP_REGEXP","resolveYamlTimestamp","constructYamlTimestamp","fraction","getTime","representYamlTimestamp","toISOString","timestamp","resolveYamlMerge","BASE64_MAP","resolveYamlBinary","idx","bitlen","constructYamlBinary","tailbits","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","escapedHexLen","fromDecimalCode","simpleEscapeSequence","charFromCodepoint","simpleEscapeCheck","simpleEscapeMap","State$1","filename","onWarning","legacy","implicitTypes","typeMap","lineIndent","firstTabInLine","documents","generateError","throwError","throwWarning","directiveHandlers","YAML","major","minor","checkLineBreaks","TAG","handle","tagMap","captureSegment","checkJson","_position","_length","_character","_result","mergeMappings","destination","overridableKeys","quantity","storeMappingPair","keyTag","keyNode","valueNode","startLine","startLineStart","startPos","configurable","enumerable","writable","readLineBreak","skipSeparationSpace","allowComments","checkIndent","lineBreaks","testDocumentSeparator","writeFoldedLines","readPlainScalar","nodeIndent","withinFlowCollection","following","captureStart","captureEnd","hasPendingContent","_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","load$1","_toString","_hasOwnProperty","CHAR_BOM","ESCAPE_SEQUENCES","DEPRECATED_BOOLEANS_SYNTAX","DEPRECATED_BASE60_SYNTAX","compileStyleMap","encodeHex","character","State","noArrayIndent","skipInvalid","flowLevel","styleMap","sortKeys","noRefs","noCompatMode","condenseFlow","quotingType","forceQuotes","replacer","explicitTypes","duplicates","usedDuplicates","indentString","spaces","ind","generateNextLine","level","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","block","isblockseq","tagStr","duplicateIndex","duplicate","objectOrArray","encodeURI","getDuplicateReferences","objects","duplicatesIndexes","inspectNode","renamed","to","JSON_SCHEMA","load","getPrototypeOf","global","Stack","LARGE_ARRAY_SIZE","freeSelf","memoize","resolver","memoized","cache","Cache","Channel","hue2rgb","rgb2hsl","upper","dec2hex","amount","uid","maskSrcKey","IE_PROTO","reIsHostCtor","reIsNative","setPrototypeOf","isFrozen","getOwnPropertyDescriptor","seal","Reflect","fun","thisValue","Func","arrayForEach","unapply","arrayLastIndexOf","lastIndexOf","arrayPop","arrayPush","arraySplice","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","objectHasOwnProperty","regExpTest","typeErrorCreate","_len2","_key2","_len","addToSet","transformCaseFunc","lcElement","cleanArray","newObject","lookupGetter","prop","desc","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","mathMl","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","purify","createDOMPurify","DOMPurify","removed","Element","isSupported","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","NodeFilter","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","DOMParser","trustedTypes","ElementPrototype","getNextSibling","getChildNodes","getParentNode","template","content","trustedTypesPolicy","emptyHTML","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","hooks","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","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","table","tbody","TRUSTED_TYPES_POLICY","createHTML","createScriptURL","purifyHostElement","createPolicy","ATTR_NAME","hasAttribute","policyName","scriptUrl","console","_createTrustedTypesPolicy","ALL_SVG_TAGS","ALL_MATHML_TAGS","_forceRemove","_removeAttribute","attribute","getAttributeNode","_initDocument","dirty","leadingWhitespace","dirtyPayload","parseFromString","createDocument","createTextNode","childNodes","_createNodeIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","_isClobbered","nodeName","hasChildNodes","_isNode","_executeHooks","currentNode","hook","_sanitizeElements","allowedTags","_isBasicCustomElement","childClone","__removalCount","parentTagName","Boolean","_checkValidNamespace","expr","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","forceKeepAttr","initValue","getAttributeType","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","nextNode","importedNode","returnNode","nodeIterator","shadowroot","shadowrootmode","serializedHTML","outerHTML","doctype","clearConfig","isValidAttribute","addHook","entryPoint","hookFunction","removeHook","removeHooks","removeAllHooks","addEdgeMarkers","svgPath","strokeColor","addEdgeMarker","arrowTypesMap","arrow_cross","arrow_barb","arrow_circle","only_one","zero_or_one","one_or_more","zero_or_more","requirement_arrow","requirement_contains","arrowType","arrowTypeInfo","originalMarkerId","coloredMarkerId","originalMarker","coloredMarker","edgeLabels","terminalLabels","getLabelStyles","styleArray","acc","elem","useHtmlLabels","labelElement","label","labelStyle","addSvgBackground","isNode","labelType","edgeLabel","fo","bbox","getBBox","div","dv","getBoundingClientRect","startLabelLeft","startLabelElement","startEdgeLabelLeft","inner","slBox","startLeft","setTerminalWidth","startLabelRight","startEdgeLabelRight","startRight","endLabelLeft","endLabelElement","endEdgeLabelLeft","endLeft","endLabelRight","endEdgeLabelRight","endRight","paths","updatedPath","originalPath","siteConfig","el","calcLabelPosition","calcTerminalLabelPosition","outsideNode","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","unshift","toCluster","fromCluster","lineFunction","strokeClasses","thickness","pattern","linePath","edgeStyles","look","svgPathNode","classes","stylesFromClasses","animationClass","animate","animation","pathStyle","markerArray","markerName","markers","trace","cross","barb","startMarker","endMarker","containsNode","markers_default","changes","change","weight","inverse","color1","color2","g1","b1","r2","g2","b2","a2","weightScale","weightNormalized","alphaDelta","weight1","weight2","configFromInitialize","__defProp","__name","__export","all","LEVELS","fatal","_args","setLogLevel","numericLevel","frontMatterRegex","directiveRegex","anyCommentRegex","UnknownDiagramError","detectors","config2","registerLazyLoadedDiagrams","diagrams2","addDetector","getDiagramLoader","assignWithDepth","dst","src","clobber","assignWithDepth_default","oldAttributeBackgroundColorOdd","oldAttributeBackgroundColorEven","mkBorder","col","darkMode","Theme","background","primaryColor","noteBkgColor","noteTextColor","THEME_COLOR_LIMIT","fontSize","updateColors","primaryTextColor","secondaryColor","tertiaryColor","primaryBorderColor","secondaryBorderColor","tertiaryBorderColor","noteBorderColor","secondaryTextColor","tertiaryTextColor","lineColor","arrowheadColor","textColor","border2","nodeBkg","mainBkg","nodeBorder","clusterBkg","clusterBorder","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","rowOdd","rowEven","transitionColor","transitionLabelColor","stateLabelColor","stateBkg","labelBackgroundColor","compositeBackground","altBackground","compositeTitleBackground","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","note","critical","done","cScaleLabel2","stateBorder","pie0","themes_default","base","dark","forest","neutral","config_schema_default","elk","mergeEdges","nodePlacementStrategy","messageFont","messageFontFamily","messageFontSize","fontWeight","messageFontWeight","noteFont","noteFontFamily","noteFontSize","noteFontWeight","actorFont","actorFontFamily","actorFontSize","actorFontWeight","hideEmptyMembersBox","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","diagramPadding","showValues","nodeWidth","nodeHeight","borderWidth","valueFontSize","labelFontSize","valueFormat","keyify","configKeys","defaultConfig_default","sanitizeDirective","arg","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","lineBreakRegex","getRows","breakToPlaceholder","setupDompurifyHooksIfNotSetup","setup","setupDompurifyHooks","TEMPORARY_ATTRIBUTE","removeScript","sanitizeMore","placeholderToBreak","sanitizeText","dompurifyConfig","sanitizeTextOrArray","flat","hasBreaks","splitBreaks","getUrl","useAbsolute","host","pathname","search","CSS","escape","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","dim","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","validateIconName","icon","allowSimpleName","defaultIconDimensions","defaultIconTransformations","vFlip","hFlip","defaultIconProps","defaultExtendedIconProps","hidden","mergeIconData","obj1","obj2","mergeIconTransformations","internalGetIconData","tree","icons","aliases","currentProps","name2","defaultIconSizeCustomisations","defaultIconCustomisations","unitsSplit","unitsTest","calculateSize","oldParts","newParts","isNumber","num","regex","randomPrefix","counter","breaks","extensions","gfm","pedantic","silent","tokenizer","walkTokens","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","hrRegex","fencesBeginRegex","headingBeginRegex","htmlBeginRegex","se","ie","Te","ye","Pe","Se","oe","blockquote","def","fences","heading","hr","lheading","newline","paragraph","_e","Le","ae","le","Ee","ue","pe","qe","ve","ce","De","Ze","Ge","He","Ne","je","Fe","Qe","he","de","_backpedal","anyPunctuation","autolink","blockSkip","br","del","emStrongLDelim","emStrongRDelimAst","emStrongRDelimUnd","link","nolink","punctuation","reflink","reflinkSearch","Ke","Xe","normal","We","ke","fe","href","inLink","raw","tokens","inlineTokens","lexer","codeBlockStyle","Je","inline","blockTokens","ordered","loose","items","ee","te","ne","me","task","checked","trimEnd","pre","header","inRawBlock","ge","emStrong","codespan","inlineText","escaped","inlineQueue","lex","lexInline","startBlock","startInline","parseInline","listitem","checkbox","tablecell","tablerow","strong","em","image","textRenderer","renderers","static","preprocess","postprocess","processAllTokens","provideLexer","provideParser","defaults","setOptions","parseMarkdown","Parser","Renderer","TextRenderer","Lexer","Tokenizer","Hooks","use","childTokens","passThroughHooks","onError","getDefaults","unknownIcon","iconsStore","loaderStore","iconLoaders","iconLoader","getRegisteredIconData","iconName","fallbackPrefix","validate","provider","colonSeparated","dashSeparated","stringToIcon","iconData","resolved","getIconsTree","getIconData","isIconAvailable","getIconSVG","customisations","extraAttributes","renderData","fullIcon","fullCustomisations","box","transformations","tempValue","rotation","defs","endEnd","splitSVGDefs","wrapSVGContent","customisationsWidth","customisationsHeight","boxWidth","boxHeight","setAttr","isUnsetKeyword","iconToSVG","renderAttribsHTML","iconToHTML","ids","newID","escapedID","replaceIDs","preprocessMarkdown","markdown","markdownAutoWrap","withoutMultipleNewlines","withoutExtraSpaces","markdownToLines","preprocessedMarkdown","lines","currentLine","processNode","parentType","textLine","word","contentNode","treeNode","markdownToHTML","splitTextToChars","Intl","Segmenter","segment","splitWordToFitWidth","checkFit","splitWordToFitWidthRecursion","usedChars","remainingChars","nextChar","rest","newWord","splitLineToFitWidth","splitLineToFitWidthRecursion","words","newLine","joiner","nextWord","lineWithNextWord","applyStyle","dom","styleFn","addHtmlSpan","addBackground","labelClass","span","createTspan","textElement","lineIndex","lineHeight","computeWidthOfText","testElement","testSpan","updateTextContentAndStyles","textLength","getComputedTextLength","computeDimensionOfText","textDimension","createFormattedText","structuredText","labelGroup","bkg","checkWidth","line2","linesUnderWidth","preparedLine","tspan","wrappedLine","innerTspan","replaceIconSubstring","pendingReplacements","fullMatch","registeredIconName","replacements","createText","isTitle","htmlText","decodedReplacedText","inputForKatex","svgLabel","nodeLabelTextStyle","edgeLabelRectStyle","edgeLabelTextStyle","ALL","_ensureHSL","_ensureRGB","DEC2HEX","TYPE","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","inits","results","commentWithoutDirectives","removeDirectives","isSubstringInArray","defaultCurve","curveName","formatUrl","linkStr","runFunc","functionName","arrPaths","len","fnName","p2","traverseEdge","totalDistance","calculatePoint","roundNumber","distanceToTraverse","remainingDistance","vectorDistance","distanceRatio","calcCardinalityPosition","isRelationTypePresent","initialPosition","cardinalityPosition","terminalMarkerSize","structuredClone","getStylesFromArray","cnt","generateId","makeRandomHex","characters","getTextObj","textMargin","valign","drawSimpleText","textData","nText","_fontSizePx","parseFontSize","textElem","wrapLabel","maxWidth","joinWith","completedLines","nextLine","wordLength","calculateTextWidth","nextLineLength","hyphenatedStrings","remainingWord","breakString","hyphenCharacter","currentCharacter","isLastLine","hyphenatedNextLine","calculateTextHeight","calculateTextDimensions","decoder","fontFamilies","dims","fontFamily2","cHeight","textObj","bBox","deterministic","unescape","isDetailedError","insertTitle","titleTopMargin","bounds","fontSizeNumber","cleanAndMerge","defaultData","utils_default","encodeEntities","innerTxt","decodeEntities","getEdgeId","handleUndefinedAttr","inherited","isArg","isType","skipIndexes","isProto","isArrayLike","_classes","shapeSvg","domId","labelEl","text2","wrappingWidth","img","halfPadding","images","noImgText","setupImage","display","flexDirection","bodyFontSize","enlargingFactor","parsedBodyFontSize","minWidth","complete","centerLabel","insertLabel","updateNodeBounds","getNodeClasses","extra","createPathFromPoints","pointStrings","generateFullSineWavePoints","amplitude","numCycles","cycleLength","frequency","midY","generateCirclePoints","centerX","centerY","radius","numPoints","startAngleRad","angleStep","intersect_rect_default","sx","sy","addHtmlLabel","createLabel_default","_vertexText","vertexText","createRoundedRectPathD","totalWidth","totalHeight","labelStyles","nodeStyles","borderStyles","backgroundStyles","diff","rect2","roughNode","rectBox","offsetX","offsetY","cluster","labelBBox","noteGroup","roundedWithTitle","outerRectG","innerRect","innerHeight","innerY","isAlt","roughOuterNode","roughInnerNode","outerRectClass","kanbanSection","shapes","squareRect","divider","clusterElems","intersectNode","intersect_node_default","intersectEllipse","det","intersect_ellipse_default","intersectCircle","intersect_circle_default","intersectLine","q1","q2","c1","c2","r3","r4","denom","sameSign","intersect_line_default","intersectPolygon","polyPoints","intersections","minX","minY","pdx","pdy","distp","qdx","qdy","distq","intersect_default","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","innerOptions","outerRoughNode","innerRoughNode","outerCircle","innerCircle","filledCircle","filledCircle2","flippedTriangle","flippedTriangle2","forkJoin","dir","state2","halfRoundedRectangle","createHexagonPathD","hexagon","hourglass","assetHeight","assetWidth","iconSize","defaultWidth","topLabel","stylesMap","labelPadding","iconNode","outerWidth","outerHeight","iconShape","outerShape","iconElem","iconBBox","iconWidth","iconHeight","iconX","iconY","iconCircle","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","noteShapeNode","createDecisionBoxPathD","question","rect_left_inv_arrow","notch","rectWithTitle","div2","dv2","textRows","titleBox","descr","roughLine","roundedRect","shadedProcess","slopedRect","squareRect2","stadium","stateEnd","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","backgroundNode","PADDING","er","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","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","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","linkTarget","tooltip","haveCallback","setNodeElem","clear2","clusterNode","reIsUint","amountCurrent","amountNext","arrayBuffer","byteLength","propertyIsEnumerable","typedArrayTags","nodeIsTypedArray","isLength","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","constant","identity","nativeNow","lastCalled","stamp","remaining","solidStateFill","compileStyles","styles2Map","stylesArray","isLabelStyle","styles2String","userNodeOverrides","assigner","sources","guard","objectCreate"],"sourceRoot":""}