@next-bricks/ai-portal 0.32.9 → 0.33.0

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 (93) hide show
  1. package/dist/bricks.json +23 -21
  2. package/dist/chunks/3554.206bf5f8.js +2 -0
  3. package/dist/chunks/3554.206bf5f8.js.map +1 -0
  4. package/dist/chunks/4937.be28e874.js +2 -0
  5. package/dist/chunks/4937.be28e874.js.map +1 -0
  6. package/dist/chunks/4957.f878df32.js +3 -0
  7. package/dist/chunks/4957.f878df32.js.LICENSE.txt +5 -0
  8. package/dist/chunks/4957.f878df32.js.map +1 -0
  9. package/dist/chunks/5521.ef48a4d3.js +2 -0
  10. package/dist/chunks/5521.ef48a4d3.js.map +1 -0
  11. package/dist/chunks/7367.26e21493.js +3 -0
  12. package/dist/chunks/7367.26e21493.js.LICENSE.txt +13 -0
  13. package/dist/chunks/7367.26e21493.js.map +1 -0
  14. package/dist/chunks/7525.b8ed4213.js +2 -0
  15. package/dist/chunks/7525.b8ed4213.js.map +1 -0
  16. package/dist/chunks/7824.c9360190.js +3 -0
  17. package/dist/chunks/{6677.2fea9748.js.LICENSE.txt → 7824.c9360190.js.LICENSE.txt} +4 -12
  18. package/dist/chunks/7824.c9360190.js.map +1 -0
  19. package/dist/chunks/8324.71f13678.js +2 -0
  20. package/dist/chunks/8324.71f13678.js.map +1 -0
  21. package/dist/chunks/833.ea1388c6.js +2 -0
  22. package/dist/chunks/833.ea1388c6.js.map +1 -0
  23. package/dist/chunks/8989.ddf83737.js +2 -0
  24. package/dist/chunks/{8989.9db8c4fb.js.map → 8989.ddf83737.js.map} +1 -1
  25. package/dist/chunks/9535.9827a039.js +2 -0
  26. package/dist/chunks/9535.9827a039.js.map +1 -0
  27. package/dist/chunks/entity-sdk-get.37c62d5f.js +3 -0
  28. package/dist/chunks/entity-sdk-get.37c62d5f.js.LICENSE.txt +1 -0
  29. package/dist/chunks/entity-sdk-get.37c62d5f.js.map +1 -0
  30. package/dist/chunks/entity-sdk-list.0b8120ce.js +3 -0
  31. package/dist/chunks/entity-sdk-list.0b8120ce.js.LICENSE.txt +1 -0
  32. package/dist/chunks/entity-sdk-list.0b8120ce.js.map +1 -0
  33. package/dist/chunks/main.0cbe3b18.js +2 -0
  34. package/dist/chunks/main.0cbe3b18.js.map +1 -0
  35. package/dist/examples.json +11 -11
  36. package/dist/index.7b4d5912.js +2 -0
  37. package/dist/index.7b4d5912.js.map +1 -0
  38. package/dist/manifest.json +155 -149
  39. package/dist/types.json +546 -817
  40. package/dist-types/bootstrap.d.ts +2 -0
  41. package/dist-types/chat-stream/ChatStream.d.ts +1 -1
  42. package/dist-types/cruise-canvas/CruiseCanvas.d.ts +1 -1
  43. package/dist-types/cruise-canvas/NodeJob/NodeJob.d.ts +2 -2
  44. package/dist-types/cruise-canvas/interfaces.d.ts +3 -11
  45. package/dist-types/cruise-canvas/reducers/interfaces.d.ts +1 -0
  46. package/dist-types/data-providers/entity-sdk-get.d.ts +1 -0
  47. package/dist-types/data-providers/entity-sdk-list.d.ts +1 -0
  48. package/dist-types/shared/TaskContext.d.ts +5 -3
  49. package/dist-types/shared/getAsyncConstructedView.d.ts +2 -0
  50. package/dist-types/shared/interfaces.d.ts +11 -5
  51. package/dist-types/shared/workers/tsxParser.d.ts +5 -0
  52. package/dist-types/shared/workers/tsxParser.worker.d.ts +1 -0
  53. package/package.json +2 -2
  54. package/dist/chunks/1194.5eabae99.js +0 -2
  55. package/dist/chunks/1194.5eabae99.js.map +0 -1
  56. package/dist/chunks/1370.e6adbca3.js +0 -2
  57. package/dist/chunks/1370.e6adbca3.js.map +0 -1
  58. package/dist/chunks/3554.d1b81183.js +0 -2
  59. package/dist/chunks/3554.d1b81183.js.map +0 -1
  60. package/dist/chunks/4937.59e921b9.js +0 -2
  61. package/dist/chunks/4937.59e921b9.js.map +0 -1
  62. package/dist/chunks/6677.2fea9748.js +0 -3
  63. package/dist/chunks/6677.2fea9748.js.map +0 -1
  64. package/dist/chunks/7525.6915bed7.js +0 -2
  65. package/dist/chunks/7525.6915bed7.js.map +0 -1
  66. package/dist/chunks/8989.9db8c4fb.js +0 -2
  67. package/dist/chunks/main.a5c3ae85.js +0 -2
  68. package/dist/chunks/main.a5c3ae85.js.map +0 -1
  69. package/dist/index.f9bad569.js +0 -2
  70. package/dist/index.f9bad569.js.map +0 -1
  71. package/dist-types/cruise-canvas/utils/converters/convertButton.d.ts +0 -3
  72. package/dist-types/cruise-canvas/utils/converters/convertDashboard.d.ts +0 -3
  73. package/dist-types/cruise-canvas/utils/converters/convertDescriptions.d.ts +0 -3
  74. package/dist-types/cruise-canvas/utils/converters/convertEvents.d.ts +0 -3
  75. package/dist-types/cruise-canvas/utils/converters/convertFlexLayout.d.ts +0 -3
  76. package/dist-types/cruise-canvas/utils/converters/convertForm.d.ts +0 -3
  77. package/dist-types/cruise-canvas/utils/converters/convertFormItem.d.ts +0 -3
  78. package/dist-types/cruise-canvas/utils/converters/convertList.d.ts +0 -3
  79. package/dist-types/cruise-canvas/utils/converters/convertModal.d.ts +0 -3
  80. package/dist-types/cruise-canvas/utils/converters/convertTable.d.ts +0 -3
  81. package/dist-types/cruise-canvas/utils/converters/convertView.d.ts +0 -3
  82. package/dist-types/cruise-canvas/utils/converters/expressions.d.ts +0 -13
  83. package/dist-types/cruise-canvas/utils/converters/findNearestCandidate.d.ts +0 -3
  84. package/dist-types/cruise-canvas/utils/converters/findObjectIdByUsedDataContexts.d.ts +0 -7
  85. package/dist-types/cruise-canvas/utils/converters/getModelObjectInstanceId.d.ts +0 -1
  86. package/dist-types/cruise-canvas/utils/converters/getPreGeneratedAttrViews.d.ts +0 -1
  87. package/dist-types/cruise-canvas/utils/converters/getPreGeneratedMetricGroups.d.ts +0 -6
  88. package/dist-types/cruise-canvas/utils/converters/interfaces.d.ts +0 -75
  89. package/dist-types/cruise-canvas/utils/converters/raw-data-generate/convert.d.ts +0 -5
  90. package/dist-types/cruise-canvas/utils/converters/raw-data-generate/getMemberAccessor.d.ts +0 -1
  91. package/dist-types/cruise-canvas/utils/converters/raw-data-generate/raw-data-interfaces.d.ts +0 -87
  92. package/dist-types/cruise-canvas/utils/converters/withBox.d.ts +0 -3
  93. package/dist-types/cruise-canvas/utils/isJsxView.d.ts +0 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/7367.26e21493.js","mappings":"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","sources":["webpack:///../../node_modules/lodash-es/_cloneBuffer.js","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/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/dayjs/dayjs.min.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/stylis/src/Enum.js","webpack:///../../node_modules/stylis/src/Utility.js","webpack:///../../node_modules/stylis/src/Serializer.js","webpack:///../../node_modules/stylis/src/Tokenizer.js","webpack:///../../node_modules/stylis/src/Parser.js","webpack:///../../node_modules/mermaid/dist/mermaid.core.mjs","webpack:///../../node_modules/lodash-es/_nativeKeys.js","webpack:///../../node_modules/lodash-es/_baseKeys.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-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-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/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","/** 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","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","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","// 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","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\nexport var SCOPE = '@scope'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @param {number} position\n * @return {number}\n */\nexport function indexof (value, search, position) {\n\treturn value.indexOf(search, position)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES, NAMESPACE} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case NAMESPACE: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, token, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f', abs(index ? points[index - 1] : 0)) != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tif ((token(previous || 1) == 5 || token(peek() || 1) == 5) && strlen(characters) && substr(characters, -1, void 0) !== ' ') characters += ' '\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length || (variable === 0 && previous === 47)))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tswitch (atrule) {\n\t\t\t\t\t\t\t\t\t// c(ontainer)\n\t\t\t\t\t\t\t\t\tcase 99:\n\t\t\t\t\t\t\t\t\t\tif (charat(characters, 3) === 110) break\n\t\t\t\t\t\t\t\t\t// l(ayer)\n\t\t\t\t\t\t\t\t\tcase 108:\n\t\t\t\t\t\t\t\t\t\tif (charat(characters, 2) === 97) break\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\toffset = 0\n\t\t\t\t\t\t\t\t\t// d(ocument) m(edia) s(upports)\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (offset) parse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\telse parse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n","import {\n JSON_SCHEMA,\n load\n} from \"./chunks/mermaid.core/chunk-L5ZGVLVO.mjs\";\nimport {\n registerLayoutLoaders\n} from \"./chunks/mermaid.core/chunk-IWUHOULB.mjs\";\nimport \"./chunks/mermaid.core/chunk-M6DAPIYF.mjs\";\nimport \"./chunks/mermaid.core/chunk-MXNHSMXR.mjs\";\nimport \"./chunks/mermaid.core/chunk-JW4RIYDF.mjs\";\nimport \"./chunks/mermaid.core/chunk-AC5SNWB5.mjs\";\nimport \"./chunks/mermaid.core/chunk-UWXLY5YG.mjs\";\nimport {\n registerIconPacks\n} from \"./chunks/mermaid.core/chunk-QESNASVV.mjs\";\nimport {\n cleanAndMerge,\n decodeEntities,\n encodeEntities,\n isDetailedError,\n removeDirectives,\n utils_default\n} from \"./chunks/mermaid.core/chunk-55PJQP7W.mjs\";\nimport {\n package_default\n} from \"./chunks/mermaid.core/chunk-RKKUNAVE.mjs\";\nimport {\n selectSvgElement\n} from \"./chunks/mermaid.core/chunk-P3VETL53.mjs\";\nimport {\n UnknownDiagramError,\n __name,\n addDirective,\n assignWithDepth_default,\n configureSvgSize,\n defaultConfig,\n detectType,\n detectors,\n evaluate,\n frontMatterRegex,\n getConfig,\n getDiagram,\n getDiagramLoader,\n getSiteConfig,\n log,\n registerDiagram,\n registerLazyLoadedDiagrams,\n reset,\n saveConfigFromInitialize,\n setConfig,\n setLogLevel,\n setSiteConfig,\n styles_default,\n themes_default,\n updateSiteConfig\n} from \"./chunks/mermaid.core/chunk-3XYRH5AP.mjs\";\n\n// src/mermaid.ts\nimport { dedent } from \"ts-dedent\";\n\n// src/diagrams/c4/c4Detector.ts\nvar id = \"c4\";\nvar detector = /* @__PURE__ */ __name((txt) => {\n return /^\\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(txt);\n}, \"detector\");\nvar loader = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/c4Diagram-6F6E4RAY.mjs\");\n return { id, diagram: diagram2 };\n}, \"loader\");\nvar plugin = {\n id,\n detector,\n loader\n};\nvar c4Detector_default = plugin;\n\n// src/diagrams/flowchart/flowDetector.ts\nvar id2 = \"flowchart\";\nvar detector2 = /* @__PURE__ */ __name((txt, config) => {\n if (config?.flowchart?.defaultRenderer === \"dagre-wrapper\" || config?.flowchart?.defaultRenderer === \"elk\") {\n return false;\n }\n return /^\\s*graph/.test(txt);\n}, \"detector\");\nvar loader2 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/flowDiagram-KYDEHFYC.mjs\");\n return { id: id2, diagram: diagram2 };\n}, \"loader\");\nvar plugin2 = {\n id: id2,\n detector: detector2,\n loader: loader2\n};\nvar flowDetector_default = plugin2;\n\n// src/diagrams/flowchart/flowDetector-v2.ts\nvar id3 = \"flowchart-v2\";\nvar detector3 = /* @__PURE__ */ __name((txt, config) => {\n if (config?.flowchart?.defaultRenderer === \"dagre-d3\") {\n return false;\n }\n if (config?.flowchart?.defaultRenderer === \"elk\") {\n config.layout = \"elk\";\n }\n if (/^\\s*graph/.test(txt) && config?.flowchart?.defaultRenderer === \"dagre-wrapper\") {\n return true;\n }\n return /^\\s*flowchart/.test(txt);\n}, \"detector\");\nvar loader3 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/flowDiagram-KYDEHFYC.mjs\");\n return { id: id3, diagram: diagram2 };\n}, \"loader\");\nvar plugin3 = {\n id: id3,\n detector: detector3,\n loader: loader3\n};\nvar flowDetector_v2_default = plugin3;\n\n// src/diagrams/er/erDetector.ts\nvar id4 = \"er\";\nvar detector4 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*erDiagram/.test(txt);\n}, \"detector\");\nvar loader4 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/erDiagram-3M52JZNH.mjs\");\n return { id: id4, diagram: diagram2 };\n}, \"loader\");\nvar plugin4 = {\n id: id4,\n detector: detector4,\n loader: loader4\n};\nvar erDetector_default = plugin4;\n\n// src/diagrams/git/gitGraphDetector.ts\nvar id5 = \"gitGraph\";\nvar detector5 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*gitGraph/.test(txt);\n}, \"detector\");\nvar loader5 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/gitGraphDiagram-GW3U2K7C.mjs\");\n return { id: id5, diagram: diagram2 };\n}, \"loader\");\nvar plugin5 = {\n id: id5,\n detector: detector5,\n loader: loader5\n};\nvar gitGraphDetector_default = plugin5;\n\n// src/diagrams/gantt/ganttDetector.ts\nvar id6 = \"gantt\";\nvar detector6 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*gantt/.test(txt);\n}, \"detector\");\nvar loader6 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/ganttDiagram-EK5VF46D.mjs\");\n return { id: id6, diagram: diagram2 };\n}, \"loader\");\nvar plugin6 = {\n id: id6,\n detector: detector6,\n loader: loader6\n};\nvar ganttDetector_default = plugin6;\n\n// src/diagrams/info/infoDetector.ts\nvar id7 = \"info\";\nvar detector7 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*info/.test(txt);\n}, \"detector\");\nvar loader7 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/infoDiagram-LHK5PUON.mjs\");\n return { id: id7, diagram: diagram2 };\n}, \"loader\");\nvar info = {\n id: id7,\n detector: detector7,\n loader: loader7\n};\n\n// src/diagrams/pie/pieDetector.ts\nvar id8 = \"pie\";\nvar detector8 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*pie/.test(txt);\n}, \"detector\");\nvar loader8 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/pieDiagram-NIOCPIFQ.mjs\");\n return { id: id8, diagram: diagram2 };\n}, \"loader\");\nvar pie = {\n id: id8,\n detector: detector8,\n loader: loader8\n};\n\n// src/diagrams/quadrant-chart/quadrantDetector.ts\nvar id9 = \"quadrantChart\";\nvar detector9 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*quadrantChart/.test(txt);\n}, \"detector\");\nvar loader9 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/quadrantDiagram-2OG54O6I.mjs\");\n return { id: id9, diagram: diagram2 };\n}, \"loader\");\nvar plugin7 = {\n id: id9,\n detector: detector9,\n loader: loader9\n};\nvar quadrantDetector_default = plugin7;\n\n// src/diagrams/xychart/xychartDetector.ts\nvar id10 = \"xychart\";\nvar detector10 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*xychart-beta/.test(txt);\n}, \"detector\");\nvar loader10 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/xychartDiagram-H2YORKM3.mjs\");\n return { id: id10, diagram: diagram2 };\n}, \"loader\");\nvar plugin8 = {\n id: id10,\n detector: detector10,\n loader: loader10\n};\nvar xychartDetector_default = plugin8;\n\n// src/diagrams/requirement/requirementDetector.ts\nvar id11 = \"requirement\";\nvar detector11 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*requirement(Diagram)?/.test(txt);\n}, \"detector\");\nvar loader11 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/requirementDiagram-QOLK2EJ7.mjs\");\n return { id: id11, diagram: diagram2 };\n}, \"loader\");\nvar plugin9 = {\n id: id11,\n detector: detector11,\n loader: loader11\n};\nvar requirementDetector_default = plugin9;\n\n// src/diagrams/sequence/sequenceDetector.ts\nvar id12 = \"sequence\";\nvar detector12 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*sequenceDiagram/.test(txt);\n}, \"detector\");\nvar loader12 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/sequenceDiagram-SKLFT4DO.mjs\");\n return { id: id12, diagram: diagram2 };\n}, \"loader\");\nvar plugin10 = {\n id: id12,\n detector: detector12,\n loader: loader12\n};\nvar sequenceDetector_default = plugin10;\n\n// src/diagrams/class/classDetector.ts\nvar id13 = \"class\";\nvar detector13 = /* @__PURE__ */ __name((txt, config) => {\n if (config?.class?.defaultRenderer === \"dagre-wrapper\") {\n return false;\n }\n return /^\\s*classDiagram/.test(txt);\n}, \"detector\");\nvar loader13 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/classDiagram-M3E45YP4.mjs\");\n return { id: id13, diagram: diagram2 };\n}, \"loader\");\nvar plugin11 = {\n id: id13,\n detector: detector13,\n loader: loader13\n};\nvar classDetector_default = plugin11;\n\n// src/diagrams/class/classDetector-V2.ts\nvar id14 = \"classDiagram\";\nvar detector14 = /* @__PURE__ */ __name((txt, config) => {\n if (/^\\s*classDiagram/.test(txt) && config?.class?.defaultRenderer === \"dagre-wrapper\") {\n return true;\n }\n return /^\\s*classDiagram-v2/.test(txt);\n}, \"detector\");\nvar loader14 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/classDiagram-v2-YAWTLIQI.mjs\");\n return { id: id14, diagram: diagram2 };\n}, \"loader\");\nvar plugin12 = {\n id: id14,\n detector: detector14,\n loader: loader14\n};\nvar classDetector_V2_default = plugin12;\n\n// src/diagrams/state/stateDetector.ts\nvar id15 = \"state\";\nvar detector15 = /* @__PURE__ */ __name((txt, config) => {\n if (config?.state?.defaultRenderer === \"dagre-wrapper\") {\n return false;\n }\n return /^\\s*stateDiagram/.test(txt);\n}, \"detector\");\nvar loader15 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/stateDiagram-MI5ZYTHO.mjs\");\n return { id: id15, diagram: diagram2 };\n}, \"loader\");\nvar plugin13 = {\n id: id15,\n detector: detector15,\n loader: loader15\n};\nvar stateDetector_default = plugin13;\n\n// src/diagrams/state/stateDetector-V2.ts\nvar id16 = \"stateDiagram\";\nvar detector16 = /* @__PURE__ */ __name((txt, config) => {\n if (/^\\s*stateDiagram-v2/.test(txt)) {\n return true;\n }\n if (/^\\s*stateDiagram/.test(txt) && config?.state?.defaultRenderer === \"dagre-wrapper\") {\n return true;\n }\n return false;\n}, \"detector\");\nvar loader16 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/stateDiagram-v2-5AN5P6BG.mjs\");\n return { id: id16, diagram: diagram2 };\n}, \"loader\");\nvar plugin14 = {\n id: id16,\n detector: detector16,\n loader: loader16\n};\nvar stateDetector_V2_default = plugin14;\n\n// src/diagrams/user-journey/journeyDetector.ts\nvar id17 = \"journey\";\nvar detector17 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*journey/.test(txt);\n}, \"detector\");\nvar loader17 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/journeyDiagram-EWQZEKCU.mjs\");\n return { id: id17, diagram: diagram2 };\n}, \"loader\");\nvar plugin15 = {\n id: id17,\n detector: detector17,\n loader: loader17\n};\nvar journeyDetector_default = plugin15;\n\n// src/diagrams/error/errorRenderer.ts\nvar draw = /* @__PURE__ */ __name((_text, id28, version) => {\n log.debug(\"rendering svg for syntax error\\n\");\n const svg = selectSvgElement(id28);\n const g = svg.append(\"g\");\n svg.attr(\"viewBox\", \"0 0 2412 512\");\n configureSvgSize(svg, 100, 512, true);\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z\"\n );\n g.append(\"text\").attr(\"class\", \"error-text\").attr(\"x\", 1440).attr(\"y\", 250).attr(\"font-size\", \"150px\").style(\"text-anchor\", \"middle\").text(\"Syntax error in text\");\n g.append(\"text\").attr(\"class\", \"error-text\").attr(\"x\", 1250).attr(\"y\", 400).attr(\"font-size\", \"100px\").style(\"text-anchor\", \"middle\").text(`mermaid version ${version}`);\n}, \"draw\");\nvar renderer = { draw };\nvar errorRenderer_default = renderer;\n\n// src/diagrams/error/errorDiagram.ts\nvar diagram = {\n db: {},\n renderer,\n parser: {\n parse: /* @__PURE__ */ __name(() => {\n return;\n }, \"parse\")\n }\n};\nvar errorDiagram_default = diagram;\n\n// src/diagrams/flowchart/elk/detector.ts\nvar id18 = \"flowchart-elk\";\nvar detector18 = /* @__PURE__ */ __name((txt, config = {}) => {\n if (\n // If diagram explicitly states flowchart-elk\n /^\\s*flowchart-elk/.test(txt) || // If a flowchart/graph diagram has their default renderer set to elk\n /^\\s*flowchart|graph/.test(txt) && config?.flowchart?.defaultRenderer === \"elk\"\n ) {\n config.layout = \"elk\";\n return true;\n }\n return false;\n}, \"detector\");\nvar loader18 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/flowDiagram-KYDEHFYC.mjs\");\n return { id: id18, diagram: diagram2 };\n}, \"loader\");\nvar plugin16 = {\n id: id18,\n detector: detector18,\n loader: loader18\n};\nvar detector_default = plugin16;\n\n// src/diagrams/timeline/detector.ts\nvar id19 = \"timeline\";\nvar detector19 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*timeline/.test(txt);\n}, \"detector\");\nvar loader19 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/timeline-definition-MYPXXCX6.mjs\");\n return { id: id19, diagram: diagram2 };\n}, \"loader\");\nvar plugin17 = {\n id: id19,\n detector: detector19,\n loader: loader19\n};\nvar detector_default2 = plugin17;\n\n// src/diagrams/mindmap/detector.ts\nvar id20 = \"mindmap\";\nvar detector20 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*mindmap/.test(txt);\n}, \"detector\");\nvar loader20 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/mindmap-definition-6CBA2TL7.mjs\");\n return { id: id20, diagram: diagram2 };\n}, \"loader\");\nvar plugin18 = {\n id: id20,\n detector: detector20,\n loader: loader20\n};\nvar detector_default3 = plugin18;\n\n// src/diagrams/kanban/detector.ts\nvar id21 = \"kanban\";\nvar detector21 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*kanban/.test(txt);\n}, \"detector\");\nvar loader21 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/kanban-definition-ZSS6B67P.mjs\");\n return { id: id21, diagram: diagram2 };\n}, \"loader\");\nvar plugin19 = {\n id: id21,\n detector: detector21,\n loader: loader21\n};\nvar detector_default4 = plugin19;\n\n// src/diagrams/sankey/sankeyDetector.ts\nvar id22 = \"sankey\";\nvar detector22 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*sankey-beta/.test(txt);\n}, \"detector\");\nvar loader22 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/sankeyDiagram-4UZDY2LN.mjs\");\n return { id: id22, diagram: diagram2 };\n}, \"loader\");\nvar plugin20 = {\n id: id22,\n detector: detector22,\n loader: loader22\n};\nvar sankeyDetector_default = plugin20;\n\n// src/diagrams/packet/detector.ts\nvar id23 = \"packet\";\nvar detector23 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*packet(-beta)?/.test(txt);\n}, \"detector\");\nvar loader23 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/diagram-5UYTHUR4.mjs\");\n return { id: id23, diagram: diagram2 };\n}, \"loader\");\nvar packet = {\n id: id23,\n detector: detector23,\n loader: loader23\n};\n\n// src/diagrams/radar/detector.ts\nvar id24 = \"radar\";\nvar detector24 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*radar-beta/.test(txt);\n}, \"detector\");\nvar loader24 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/diagram-ZTM2IBQH.mjs\");\n return { id: id24, diagram: diagram2 };\n}, \"loader\");\nvar radar = {\n id: id24,\n detector: detector24,\n loader: loader24\n};\n\n// src/diagrams/block/blockDetector.ts\nvar id25 = \"block\";\nvar detector25 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*block-beta/.test(txt);\n}, \"detector\");\nvar loader25 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/blockDiagram-6J76NXCF.mjs\");\n return { id: id25, diagram: diagram2 };\n}, \"loader\");\nvar plugin21 = {\n id: id25,\n detector: detector25,\n loader: loader25\n};\nvar blockDetector_default = plugin21;\n\n// src/diagrams/architecture/architectureDetector.ts\nvar id26 = \"architecture\";\nvar detector26 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*architecture/.test(txt);\n}, \"detector\");\nvar loader26 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/architectureDiagram-SUXI7LT5.mjs\");\n return { id: id26, diagram: diagram2 };\n}, \"loader\");\nvar architecture = {\n id: id26,\n detector: detector26,\n loader: loader26\n};\nvar architectureDetector_default = architecture;\n\n// src/diagrams/treemap/detector.ts\nvar id27 = \"treemap\";\nvar detector27 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*treemap/.test(txt);\n}, \"detector\");\nvar loader27 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/diagram-VMROVX33.mjs\");\n return { id: id27, diagram: diagram2 };\n}, \"loader\");\nvar treemap = {\n id: id27,\n detector: detector27,\n loader: loader27\n};\n\n// src/diagram-api/diagram-orchestration.ts\nvar hasLoadedDiagrams = false;\nvar addDiagrams = /* @__PURE__ */ __name(() => {\n if (hasLoadedDiagrams) {\n return;\n }\n hasLoadedDiagrams = true;\n registerDiagram(\"error\", errorDiagram_default, (text) => {\n return text.toLowerCase().trim() === \"error\";\n });\n registerDiagram(\n \"---\",\n // --- diagram type may appear if YAML front-matter is not parsed correctly\n {\n db: {\n clear: /* @__PURE__ */ __name(() => {\n }, \"clear\")\n },\n styles: {},\n // should never be used\n renderer: {\n draw: /* @__PURE__ */ __name(() => {\n }, \"draw\")\n },\n parser: {\n parse: /* @__PURE__ */ __name(() => {\n throw new Error(\n \"Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks\"\n );\n }, \"parse\")\n },\n init: /* @__PURE__ */ __name(() => null, \"init\")\n // no op\n },\n (text) => {\n return text.toLowerCase().trimStart().startsWith(\"---\");\n }\n );\n if (true) {\n registerLazyLoadedDiagrams(detector_default, detector_default3, architectureDetector_default);\n }\n registerLazyLoadedDiagrams(\n c4Detector_default,\n detector_default4,\n classDetector_V2_default,\n classDetector_default,\n erDetector_default,\n ganttDetector_default,\n info,\n pie,\n requirementDetector_default,\n sequenceDetector_default,\n flowDetector_v2_default,\n flowDetector_default,\n detector_default2,\n gitGraphDetector_default,\n stateDetector_V2_default,\n stateDetector_default,\n journeyDetector_default,\n quadrantDetector_default,\n sankeyDetector_default,\n packet,\n xychartDetector_default,\n blockDetector_default,\n radar,\n treemap\n );\n}, \"addDiagrams\");\n\n// src/diagram-api/loadDiagram.ts\nvar loadRegisteredDiagrams = /* @__PURE__ */ __name(async () => {\n log.debug(`Loading registered diagrams`);\n const results = await Promise.allSettled(\n Object.entries(detectors).map(async ([key, { detector: detector28, loader: loader28 }]) => {\n if (!loader28) {\n return;\n }\n try {\n getDiagram(key);\n } catch {\n try {\n const { diagram: diagram2, id: id28 } = await loader28();\n registerDiagram(id28, diagram2, detector28);\n } catch (err) {\n log.error(`Failed to load external diagram with key ${key}. Removing from detectors.`);\n delete detectors[key];\n throw err;\n }\n }\n })\n );\n const failed = results.filter((result) => result.status === \"rejected\");\n if (failed.length > 0) {\n log.error(`Failed to load ${failed.length} external diagrams`);\n for (const res of failed) {\n log.error(res);\n }\n throw new Error(`Failed to load ${failed.length} external diagrams`);\n }\n}, \"loadRegisteredDiagrams\");\n\n// src/mermaidAPI.ts\nimport { select } from \"d3\";\nimport { compile, serialize, stringify } from \"stylis\";\nimport DOMPurify from \"dompurify\";\nimport isEmpty from \"lodash-es/isEmpty.js\";\n\n// src/accessibility.ts\nvar SVG_ROLE = \"graphics-document document\";\nfunction setA11yDiagramInfo(svg, diagramType) {\n svg.attr(\"role\", SVG_ROLE);\n if (diagramType !== \"\") {\n svg.attr(\"aria-roledescription\", diagramType);\n }\n}\n__name(setA11yDiagramInfo, \"setA11yDiagramInfo\");\nfunction addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, baseId) {\n if (svg.insert === void 0) {\n return;\n }\n if (a11yDesc) {\n const descId = `chart-desc-${baseId}`;\n svg.attr(\"aria-describedby\", descId);\n svg.insert(\"desc\", \":first-child\").attr(\"id\", descId).text(a11yDesc);\n }\n if (a11yTitle) {\n const titleId = `chart-title-${baseId}`;\n svg.attr(\"aria-labelledby\", titleId);\n svg.insert(\"title\", \":first-child\").attr(\"id\", titleId).text(a11yTitle);\n }\n}\n__name(addSVGa11yTitleDescription, \"addSVGa11yTitleDescription\");\n\n// src/Diagram.ts\nvar Diagram = class _Diagram {\n constructor(type, text, db, parser, renderer2) {\n this.type = type;\n this.text = text;\n this.db = db;\n this.parser = parser;\n this.renderer = renderer2;\n }\n static {\n __name(this, \"Diagram\");\n }\n static async fromText(text, metadata = {}) {\n const config = getConfig();\n const type = detectType(text, config);\n text = encodeEntities(text) + \"\\n\";\n try {\n getDiagram(type);\n } catch {\n const loader28 = getDiagramLoader(type);\n if (!loader28) {\n throw new UnknownDiagramError(`Diagram ${type} not found.`);\n }\n const { id: id28, diagram: diagram2 } = await loader28();\n registerDiagram(id28, diagram2);\n }\n const { db, parser, renderer: renderer2, init: init2 } = getDiagram(type);\n if (parser.parser) {\n parser.parser.yy = db;\n }\n db.clear?.();\n init2?.(config);\n if (metadata.title) {\n db.setDiagramTitle?.(metadata.title);\n }\n await parser.parse(text);\n return new _Diagram(type, text, db, parser, renderer2);\n }\n async render(id28, version) {\n await this.renderer.draw(this.text, id28, version, this);\n }\n getParser() {\n return this.parser;\n }\n getType() {\n return this.type;\n }\n};\n\n// src/interactionDb.ts\nvar interactionFunctions = [];\nvar attachFunctions = /* @__PURE__ */ __name(() => {\n interactionFunctions.forEach((f) => {\n f();\n });\n interactionFunctions = [];\n}, \"attachFunctions\");\n\n// src/diagram-api/comments.ts\nvar cleanupComments = /* @__PURE__ */ __name((text) => {\n return text.replace(/^\\s*%%(?!{)[^\\n]+\\n?/gm, \"\").trimStart();\n}, \"cleanupComments\");\n\n// src/diagram-api/frontmatter.ts\nfunction extractFrontMatter(text) {\n const matches = text.match(frontMatterRegex);\n if (!matches) {\n return {\n text,\n metadata: {}\n };\n }\n let parsed = load(matches[1], {\n // To support config, we need JSON schema.\n // https://www.yaml.org/spec/1.2/spec.html#id2803231\n schema: JSON_SCHEMA\n }) ?? {};\n parsed = typeof parsed === \"object\" && !Array.isArray(parsed) ? parsed : {};\n const metadata = {};\n if (parsed.displayMode) {\n metadata.displayMode = parsed.displayMode.toString();\n }\n if (parsed.title) {\n metadata.title = parsed.title.toString();\n }\n if (parsed.config) {\n metadata.config = parsed.config;\n }\n return {\n text: text.slice(matches[0].length),\n metadata\n };\n}\n__name(extractFrontMatter, \"extractFrontMatter\");\n\n// src/preprocess.ts\nvar cleanupText = /* @__PURE__ */ __name((code) => {\n return code.replace(/\\r\\n?/g, \"\\n\").replace(\n /<(\\w+)([^>]*)>/g,\n (match, tag, attributes) => \"<\" + tag + attributes.replace(/=\"([^\"]*)\"/g, \"='$1'\") + \">\"\n );\n}, \"cleanupText\");\nvar processFrontmatter = /* @__PURE__ */ __name((code) => {\n const { text, metadata } = extractFrontMatter(code);\n const { displayMode, title, config = {} } = metadata;\n if (displayMode) {\n if (!config.gantt) {\n config.gantt = {};\n }\n config.gantt.displayMode = displayMode;\n }\n return { title, config, text };\n}, \"processFrontmatter\");\nvar processDirectives = /* @__PURE__ */ __name((code) => {\n const initDirective = utils_default.detectInit(code) ?? {};\n const wrapDirectives = utils_default.detectDirective(code, \"wrap\");\n if (Array.isArray(wrapDirectives)) {\n initDirective.wrap = wrapDirectives.some(({ type }) => type === \"wrap\");\n } else if (wrapDirectives?.type === \"wrap\") {\n initDirective.wrap = true;\n }\n return {\n text: removeDirectives(code),\n directive: initDirective\n };\n}, \"processDirectives\");\nfunction preprocessDiagram(code) {\n const cleanedCode = cleanupText(code);\n const frontMatterResult = processFrontmatter(cleanedCode);\n const directiveResult = processDirectives(frontMatterResult.text);\n const config = cleanAndMerge(frontMatterResult.config, directiveResult.directive);\n code = cleanupComments(directiveResult.text);\n return {\n code,\n title: frontMatterResult.title,\n config\n };\n}\n__name(preprocessDiagram, \"preprocessDiagram\");\n\n// src/utils/base64.ts\nfunction toBase64(str) {\n const utf8Bytes = new TextEncoder().encode(str);\n const utf8Str = Array.from(utf8Bytes, (byte) => String.fromCodePoint(byte)).join(\"\");\n return btoa(utf8Str);\n}\n__name(toBase64, \"toBase64\");\n\n// src/mermaidAPI.ts\nvar MAX_TEXTLENGTH = 5e4;\nvar MAX_TEXTLENGTH_EXCEEDED_MSG = \"graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa\";\nvar SECURITY_LVL_SANDBOX = \"sandbox\";\nvar SECURITY_LVL_LOOSE = \"loose\";\nvar XMLNS_SVG_STD = \"http://www.w3.org/2000/svg\";\nvar XMLNS_XLINK_STD = \"http://www.w3.org/1999/xlink\";\nvar XMLNS_XHTML_STD = \"http://www.w3.org/1999/xhtml\";\nvar IFRAME_WIDTH = \"100%\";\nvar IFRAME_HEIGHT = \"100%\";\nvar IFRAME_STYLES = \"border:0;margin:0;\";\nvar IFRAME_BODY_STYLE = \"margin:0\";\nvar IFRAME_SANDBOX_OPTS = \"allow-top-navigation-by-user-activation allow-popups\";\nvar IFRAME_NOT_SUPPORTED_MSG = 'The \"iframe\" tag is not supported by your browser.';\nvar DOMPURIFY_TAGS = [\"foreignobject\"];\nvar DOMPURIFY_ATTR = [\"dominant-baseline\"];\nfunction processAndSetConfigs(text) {\n const processed = preprocessDiagram(text);\n reset();\n addDirective(processed.config ?? {});\n return processed;\n}\n__name(processAndSetConfigs, \"processAndSetConfigs\");\nasync function parse(text, parseOptions) {\n addDiagrams();\n try {\n const { code, config } = processAndSetConfigs(text);\n const diagram2 = await getDiagramFromText(code);\n return { diagramType: diagram2.type, config };\n } catch (error) {\n if (parseOptions?.suppressErrors) {\n return false;\n }\n throw error;\n }\n}\n__name(parse, \"parse\");\nvar cssImportantStyles = /* @__PURE__ */ __name((cssClass, element, cssClasses = []) => {\n return `\n.${cssClass} ${element} { ${cssClasses.join(\" !important; \")} !important; }`;\n}, \"cssImportantStyles\");\nvar createCssStyles = /* @__PURE__ */ __name((config, classDefs = /* @__PURE__ */ new Map()) => {\n let cssStyles = \"\";\n if (config.themeCSS !== void 0) {\n cssStyles += `\n${config.themeCSS}`;\n }\n if (config.fontFamily !== void 0) {\n cssStyles += `\n:root { --mermaid-font-family: ${config.fontFamily}}`;\n }\n if (config.altFontFamily !== void 0) {\n cssStyles += `\n:root { --mermaid-alt-font-family: ${config.altFontFamily}}`;\n }\n if (classDefs instanceof Map) {\n const htmlLabels = config.htmlLabels ?? config.flowchart?.htmlLabels;\n const cssHtmlElements = [\"> *\", \"span\"];\n const cssShapeElements = [\"rect\", \"polygon\", \"ellipse\", \"circle\", \"path\"];\n const cssElements = htmlLabels ? cssHtmlElements : cssShapeElements;\n classDefs.forEach((styleClassDef) => {\n if (!isEmpty(styleClassDef.styles)) {\n cssElements.forEach((cssElement) => {\n cssStyles += cssImportantStyles(styleClassDef.id, cssElement, styleClassDef.styles);\n });\n }\n if (!isEmpty(styleClassDef.textStyles)) {\n cssStyles += cssImportantStyles(\n styleClassDef.id,\n \"tspan\",\n (styleClassDef?.textStyles || []).map((s) => s.replace(\"color\", \"fill\"))\n );\n }\n });\n }\n return cssStyles;\n}, \"createCssStyles\");\nvar createUserStyles = /* @__PURE__ */ __name((config, graphType, classDefs, svgId) => {\n const userCSSstyles = createCssStyles(config, classDefs);\n const allStyles = styles_default(graphType, userCSSstyles, config.themeVariables);\n return serialize(compile(`${svgId}{${allStyles}}`), stringify);\n}, \"createUserStyles\");\nvar cleanUpSvgCode = /* @__PURE__ */ __name((svgCode = \"\", inSandboxMode, useArrowMarkerUrls) => {\n let cleanedUpSvg = svgCode;\n if (!useArrowMarkerUrls && !inSandboxMode) {\n cleanedUpSvg = cleanedUpSvg.replace(\n /marker-end=\"url\\([\\d+./:=?A-Za-z-]*?#/g,\n 'marker-end=\"url(#'\n );\n }\n cleanedUpSvg = decodeEntities(cleanedUpSvg);\n cleanedUpSvg = cleanedUpSvg.replace(/<br>/g, \"<br/>\");\n return cleanedUpSvg;\n}, \"cleanUpSvgCode\");\nvar putIntoIFrame = /* @__PURE__ */ __name((svgCode = \"\", svgElement) => {\n const height = svgElement?.viewBox?.baseVal?.height ? svgElement.viewBox.baseVal.height + \"px\" : IFRAME_HEIGHT;\n const base64encodedSrc = toBase64(`<body style=\"${IFRAME_BODY_STYLE}\">${svgCode}</body>`);\n return `<iframe style=\"width:${IFRAME_WIDTH};height:${height};${IFRAME_STYLES}\" src=\"data:text/html;charset=UTF-8;base64,${base64encodedSrc}\" sandbox=\"${IFRAME_SANDBOX_OPTS}\">\n ${IFRAME_NOT_SUPPORTED_MSG}\n</iframe>`;\n}, \"putIntoIFrame\");\nvar appendDivSvgG = /* @__PURE__ */ __name((parentRoot, id28, enclosingDivId, divStyle, svgXlink) => {\n const enclosingDiv = parentRoot.append(\"div\");\n enclosingDiv.attr(\"id\", enclosingDivId);\n if (divStyle) {\n enclosingDiv.attr(\"style\", divStyle);\n }\n const svgNode = enclosingDiv.append(\"svg\").attr(\"id\", id28).attr(\"width\", \"100%\").attr(\"xmlns\", XMLNS_SVG_STD);\n if (svgXlink) {\n svgNode.attr(\"xmlns:xlink\", svgXlink);\n }\n svgNode.append(\"g\");\n return parentRoot;\n}, \"appendDivSvgG\");\nfunction sandboxedIframe(parentNode, iFrameId) {\n return parentNode.append(\"iframe\").attr(\"id\", iFrameId).attr(\"style\", \"width: 100%; height: 100%;\").attr(\"sandbox\", \"\");\n}\n__name(sandboxedIframe, \"sandboxedIframe\");\nvar removeExistingElements = /* @__PURE__ */ __name((doc, id28, divId, iFrameId) => {\n doc.getElementById(id28)?.remove();\n doc.getElementById(divId)?.remove();\n doc.getElementById(iFrameId)?.remove();\n}, \"removeExistingElements\");\nvar render = /* @__PURE__ */ __name(async function(id28, text, svgContainingElement) {\n addDiagrams();\n const processed = processAndSetConfigs(text);\n text = processed.code;\n const config = getConfig();\n log.debug(config);\n if (text.length > (config?.maxTextSize ?? MAX_TEXTLENGTH)) {\n text = MAX_TEXTLENGTH_EXCEEDED_MSG;\n }\n const idSelector = \"#\" + id28;\n const iFrameID = \"i\" + id28;\n const iFrameID_selector = \"#\" + iFrameID;\n const enclosingDivID = \"d\" + id28;\n const enclosingDivID_selector = \"#\" + enclosingDivID;\n const removeTempElements = /* @__PURE__ */ __name(() => {\n const tmpElementSelector = isSandboxed ? iFrameID_selector : enclosingDivID_selector;\n const node = select(tmpElementSelector).node();\n if (node && \"remove\" in node) {\n node.remove();\n }\n }, \"removeTempElements\");\n let root = select(\"body\");\n const isSandboxed = config.securityLevel === SECURITY_LVL_SANDBOX;\n const isLooseSecurityLevel = config.securityLevel === SECURITY_LVL_LOOSE;\n const fontFamily = config.fontFamily;\n if (svgContainingElement !== void 0) {\n if (svgContainingElement) {\n svgContainingElement.innerHTML = \"\";\n }\n if (isSandboxed) {\n const iframe = sandboxedIframe(select(svgContainingElement), iFrameID);\n root = select(iframe.nodes()[0].contentDocument.body);\n root.node().style.margin = 0;\n } else {\n root = select(svgContainingElement);\n }\n appendDivSvgG(root, id28, enclosingDivID, `font-family: ${fontFamily}`, XMLNS_XLINK_STD);\n } else {\n removeExistingElements(document, id28, enclosingDivID, iFrameID);\n if (isSandboxed) {\n const iframe = sandboxedIframe(select(\"body\"), iFrameID);\n root = select(iframe.nodes()[0].contentDocument.body);\n root.node().style.margin = 0;\n } else {\n root = select(\"body\");\n }\n appendDivSvgG(root, id28, enclosingDivID);\n }\n let diag;\n let parseEncounteredException;\n try {\n diag = await Diagram.fromText(text, { title: processed.title });\n } catch (error) {\n if (config.suppressErrorRendering) {\n removeTempElements();\n throw error;\n }\n diag = await Diagram.fromText(\"error\");\n parseEncounteredException = error;\n }\n const element = root.select(enclosingDivID_selector).node();\n const diagramType = diag.type;\n const svg = element.firstChild;\n const firstChild = svg.firstChild;\n const diagramClassDefs = diag.renderer.getClasses?.(text, diag);\n const rules = createUserStyles(config, diagramType, diagramClassDefs, idSelector);\n const style1 = document.createElement(\"style\");\n style1.innerHTML = rules;\n svg.insertBefore(style1, firstChild);\n try {\n await diag.renderer.draw(text, id28, package_default.version, diag);\n } catch (e) {\n if (config.suppressErrorRendering) {\n removeTempElements();\n } else {\n errorRenderer_default.draw(text, id28, package_default.version);\n }\n throw e;\n }\n const svgNode = root.select(`${enclosingDivID_selector} svg`);\n const a11yTitle = diag.db.getAccTitle?.();\n const a11yDescr = diag.db.getAccDescription?.();\n addA11yInfo(diagramType, svgNode, a11yTitle, a11yDescr);\n root.select(`[id=\"${id28}\"]`).selectAll(\"foreignobject > *\").attr(\"xmlns\", XMLNS_XHTML_STD);\n let svgCode = root.select(enclosingDivID_selector).node().innerHTML;\n log.debug(\"config.arrowMarkerAbsolute\", config.arrowMarkerAbsolute);\n svgCode = cleanUpSvgCode(svgCode, isSandboxed, evaluate(config.arrowMarkerAbsolute));\n if (isSandboxed) {\n const svgEl = root.select(enclosingDivID_selector + \" svg\").node();\n svgCode = putIntoIFrame(svgCode, svgEl);\n } else if (!isLooseSecurityLevel) {\n svgCode = DOMPurify.sanitize(svgCode, {\n ADD_TAGS: DOMPURIFY_TAGS,\n ADD_ATTR: DOMPURIFY_ATTR,\n HTML_INTEGRATION_POINTS: { foreignobject: true }\n });\n }\n attachFunctions();\n if (parseEncounteredException) {\n throw parseEncounteredException;\n }\n removeTempElements();\n return {\n diagramType,\n svg: svgCode,\n bindFunctions: diag.db.bindFunctions\n };\n}, \"render\");\nfunction initialize(userOptions = {}) {\n const options = assignWithDepth_default({}, userOptions);\n if (options?.fontFamily && !options.themeVariables?.fontFamily) {\n if (!options.themeVariables) {\n options.themeVariables = {};\n }\n options.themeVariables.fontFamily = options.fontFamily;\n }\n saveConfigFromInitialize(options);\n if (options?.theme && options.theme in themes_default) {\n options.themeVariables = themes_default[options.theme].getThemeVariables(\n options.themeVariables\n );\n } else if (options) {\n options.themeVariables = themes_default.default.getThemeVariables(options.themeVariables);\n }\n const config = typeof options === \"object\" ? setSiteConfig(options) : getSiteConfig();\n setLogLevel(config.logLevel);\n addDiagrams();\n}\n__name(initialize, \"initialize\");\nvar getDiagramFromText = /* @__PURE__ */ __name((text, metadata = {}) => {\n const { code } = preprocessDiagram(text);\n return Diagram.fromText(code, metadata);\n}, \"getDiagramFromText\");\nfunction addA11yInfo(diagramType, svgNode, a11yTitle, a11yDescr) {\n setA11yDiagramInfo(svgNode, diagramType);\n addSVGa11yTitleDescription(svgNode, a11yTitle, a11yDescr, svgNode.attr(\"id\"));\n}\n__name(addA11yInfo, \"addA11yInfo\");\nvar mermaidAPI = Object.freeze({\n render,\n parse,\n getDiagramFromText,\n initialize,\n getConfig,\n setConfig,\n getSiteConfig,\n updateSiteConfig,\n reset: /* @__PURE__ */ __name(() => {\n reset();\n }, \"reset\"),\n globalReset: /* @__PURE__ */ __name(() => {\n reset(defaultConfig);\n }, \"globalReset\"),\n defaultConfig\n});\nsetLogLevel(getConfig().logLevel);\nreset(getConfig());\n\n// src/mermaid.ts\nvar handleError = /* @__PURE__ */ __name((error, errors, parseError) => {\n log.warn(error);\n if (isDetailedError(error)) {\n if (parseError) {\n parseError(error.str, error.hash);\n }\n errors.push({ ...error, message: error.str, error });\n } else {\n if (parseError) {\n parseError(error);\n }\n if (error instanceof Error) {\n errors.push({\n str: error.message,\n message: error.message,\n hash: error.name,\n error\n });\n }\n }\n}, \"handleError\");\nvar run = /* @__PURE__ */ __name(async function(options = {\n querySelector: \".mermaid\"\n}) {\n try {\n await runThrowsErrors(options);\n } catch (e) {\n if (isDetailedError(e)) {\n log.error(e.str);\n }\n if (mermaid.parseError) {\n mermaid.parseError(e);\n }\n if (!options.suppressErrors) {\n log.error(\"Use the suppressErrors option to suppress these errors\");\n throw e;\n }\n }\n}, \"run\");\nvar runThrowsErrors = /* @__PURE__ */ __name(async function({ postRenderCallback, querySelector, nodes } = {\n querySelector: \".mermaid\"\n}) {\n const conf = mermaidAPI.getConfig();\n log.debug(`${!postRenderCallback ? \"No \" : \"\"}Callback function found`);\n let nodesToProcess;\n if (nodes) {\n nodesToProcess = nodes;\n } else if (querySelector) {\n nodesToProcess = document.querySelectorAll(querySelector);\n } else {\n throw new Error(\"Nodes and querySelector are both undefined\");\n }\n log.debug(`Found ${nodesToProcess.length} diagrams`);\n if (conf?.startOnLoad !== void 0) {\n log.debug(\"Start On Load: \" + conf?.startOnLoad);\n mermaidAPI.updateSiteConfig({ startOnLoad: conf?.startOnLoad });\n }\n const idGenerator = new utils_default.InitIDGenerator(conf.deterministicIds, conf.deterministicIDSeed);\n let txt;\n const errors = [];\n for (const element of Array.from(nodesToProcess)) {\n log.info(\"Rendering diagram: \" + element.id);\n if (element.getAttribute(\"data-processed\")) {\n continue;\n }\n element.setAttribute(\"data-processed\", \"true\");\n const id28 = `mermaid-${idGenerator.next()}`;\n txt = element.innerHTML;\n txt = dedent(utils_default.entityDecode(txt)).trim().replace(/<br\\s*\\/?>/gi, \"<br/>\");\n const init2 = utils_default.detectInit(txt);\n if (init2) {\n log.debug(\"Detected early reinit: \", init2);\n }\n try {\n const { svg, bindFunctions } = await render2(id28, txt, element);\n element.innerHTML = svg;\n if (postRenderCallback) {\n await postRenderCallback(id28);\n }\n if (bindFunctions) {\n bindFunctions(element);\n }\n } catch (error) {\n handleError(error, errors, mermaid.parseError);\n }\n }\n if (errors.length > 0) {\n throw errors[0];\n }\n}, \"runThrowsErrors\");\nvar initialize2 = /* @__PURE__ */ __name(function(config) {\n mermaidAPI.initialize(config);\n}, \"initialize\");\nvar init = /* @__PURE__ */ __name(async function(config, nodes, callback) {\n log.warn(\"mermaid.init is deprecated. Please use run instead.\");\n if (config) {\n initialize2(config);\n }\n const runOptions = { postRenderCallback: callback, querySelector: \".mermaid\" };\n if (typeof nodes === \"string\") {\n runOptions.querySelector = nodes;\n } else if (nodes) {\n if (nodes instanceof HTMLElement) {\n runOptions.nodes = [nodes];\n } else {\n runOptions.nodes = nodes;\n }\n }\n await run(runOptions);\n}, \"init\");\nvar registerExternalDiagrams = /* @__PURE__ */ __name(async (diagrams, {\n lazyLoad = true\n} = {}) => {\n addDiagrams();\n registerLazyLoadedDiagrams(...diagrams);\n if (lazyLoad === false) {\n await loadRegisteredDiagrams();\n }\n}, \"registerExternalDiagrams\");\nvar contentLoaded = /* @__PURE__ */ __name(function() {\n if (mermaid.startOnLoad) {\n const { startOnLoad } = mermaidAPI.getConfig();\n if (startOnLoad) {\n mermaid.run().catch((err) => log.error(\"Mermaid failed to initialize\", err));\n }\n }\n}, \"contentLoaded\");\nif (typeof document !== \"undefined\") {\n window.addEventListener(\"load\", contentLoaded, false);\n}\nvar setParseErrorHandler = /* @__PURE__ */ __name(function(parseErrorHandler) {\n mermaid.parseError = parseErrorHandler;\n}, \"setParseErrorHandler\");\nvar executionQueue = [];\nvar executionQueueRunning = false;\nvar executeQueue = /* @__PURE__ */ __name(async () => {\n if (executionQueueRunning) {\n return;\n }\n executionQueueRunning = true;\n while (executionQueue.length > 0) {\n const f = executionQueue.shift();\n if (f) {\n try {\n await f();\n } catch (e) {\n log.error(\"Error executing queue\", e);\n }\n }\n }\n executionQueueRunning = false;\n}, \"executeQueue\");\nvar parse2 = /* @__PURE__ */ __name(async (text, parseOptions) => {\n return new Promise((resolve, reject) => {\n const performCall = /* @__PURE__ */ __name(() => new Promise((res, rej) => {\n mermaidAPI.parse(text, parseOptions).then(\n (r) => {\n res(r);\n resolve(r);\n },\n (e) => {\n log.error(\"Error parsing\", e);\n mermaid.parseError?.(e);\n rej(e);\n reject(e);\n }\n );\n }), \"performCall\");\n executionQueue.push(performCall);\n executeQueue().catch(reject);\n });\n}, \"parse\");\nvar render2 = /* @__PURE__ */ __name((id28, text, container) => {\n return new Promise((resolve, reject) => {\n const performCall = /* @__PURE__ */ __name(() => new Promise((res, rej) => {\n mermaidAPI.render(id28, text, container).then(\n (r) => {\n res(r);\n resolve(r);\n },\n (e) => {\n log.error(\"Error parsing\", e);\n mermaid.parseError?.(e);\n rej(e);\n reject(e);\n }\n );\n }), \"performCall\");\n executionQueue.push(performCall);\n executeQueue().catch(reject);\n });\n}, \"render\");\nvar getRegisteredDiagramsMetadata = /* @__PURE__ */ __name(() => {\n return Object.keys(detectors).map((id28) => ({\n id: id28\n }));\n}, \"getRegisteredDiagramsMetadata\");\nvar mermaid = {\n startOnLoad: true,\n mermaidAPI,\n parse: parse2,\n render: render2,\n init,\n run,\n registerExternalDiagrams,\n registerLayoutLoaders,\n initialize: initialize2,\n parseError: void 0,\n contentLoaded,\n setParseErrorHandler,\n detectType,\n registerIconPacks,\n getRegisteredDiagramsMetadata\n};\nvar mermaid_default = mermaid;\nexport {\n mermaid_default as default\n};\n/*! Check if previously processed */\n/*!\n * Wait for document loaded before starting the execution\n */\n","import 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","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","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","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","/** 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","funcToString","Function","prototype","toString","func","call","e","color","r","g","b","parse","luminance","channel","toLinear","lang","round","objectProto","Object","hasOwnProperty","nativeObjectToString","symToStringTag","toStringTag","value","isOwn","tag","unmasked","selectSvgElement","id","securityLevel","root","sandboxElement","doc","node","contentDocument","document","body","select","array","key","eq","splice","Array","ListCache","entries","index","this","clear","entry","set","__data__","size","data","pop","get","has","push","object","type","t","s","n","o","a","Math","PI","h","cos","sin","max","i","c","l","min","ymin","ymax","x","islope","sort","abs","forEach","edge","filter","hachureAngle","hachureGap","strokeWidth","roughness","randomizer","next","random","helper","fillPolygons","_fillPolygons","ops","renderLines","doubleLineOps","sqrt","pow","assign","concat","dotsOnLines","fillWeight","ceil","u","p","ellipse","dashedLine","dashOffset","dashGap","floor","atan","zigzagOffset","zigzagLines","seed","imul","M","A","C","H","L","m","Q","q","S","T","V","v","Z","z","k","match","substr","RegExp","$1","text","parseFloat","Error","y","map","f","d","w","asin","toFixed","P","tan","O","D","randOffset","G","randOffsetWithRange","E","opset","$","j","disableMultiStroke","op","curveStepCount","curveFitting","increment","rx","ry","F","estimatedPoints","_","I","maxRandomnessOffset","fillStyle","W","disableMultiStrokeFill","R","bowing","preserveVertices","curveTightness","N","B","J","K","U","X","Y","tt","et","defaultOptions","stroke","fillShapeRoughnessGain","config","options","_o","newSeed","_d","shape","sets","line","rectangle","fill","circle","linearPath","arc","curve","_mergedShape","polygon","path","replace","simplification","opsToPath","trim","toPaths","fillSketch","st","canvas","ctx","getContext","gen","draw","getDefaultOptions","fixedDecimalPlaceDigits","save","strokeStyle","lineWidth","strokeLineDash","setLineDash","strokeLineDashOffset","lineDashOffset","_drawToContext","restore","fillLineDash","fillLineDashOffset","beginPath","moveTo","bezierCurveTo","lineTo","generator","nt","ot","svg","ownerDocument","window","createElementNS","setAttribute","join","appendChild","at","constants_1","decodeURI","uri","decodeURIComponent","url","BLANK_URL","charsToDecode","str","decodedUrl","ctrlCharactersRegex","htmlEntitiesRegex","dec","String","fromCharCode","htmlCtrlEntityRegex","whitespaceEscapeCharsRegex","sanitizedUrl","relativeFirstCharacters","indexOf","isRelativeUrlWithoutProtocol","trimmedUrl","trimStart","urlSchemeParseResults","urlSchemeRegex","urlScheme","toLowerCase","invalidProtocolRegex","test","backSanitized","includes","URL","canParse","isValidUrl","url_1","protocol","hostname","dedent","templ","values","_i","arguments","strings","from","indentLengths","reduce","arr","matches","_a","_b","pattern_1","apply","string","endentations","endentation","indentedValue","split","freeProcess","process","require","types","binding","Hex","re","charCodeAt","hex","parseInt","hasAlpha","isFullLength","multiplier","bits","bitsOffset","mask","stringify","channels","HSL","hueRe","_hue2deg","hue","number","unit","clamp","charCode","isAlphaPercentage","Keyword","colors","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyanaqua","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","teal","thistle","transparent","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","name","RGB","isRedPercentage","isGreenPercentage","isBluePercentage","Color","format","keyword","rgb","rgba","hsl","hsla","changed","is","Number","isInteger","getSubGraphTitleMargins","flowchart","subGraphTitleTopMargin","subGraphTitleMargin","top","subGraphTitleBottomMargin","bottom","subGraphTitleTotalMargin","Hash","MapCache","nativeMax","start","transform","args","otherArgs","thisArg","internalHelpers","common","getConfig","insertCluster","insertEdge","insertEdgeLabel","insertMarkers","insertNode","interpolateToCurve","labelHelper","log","positionEdgeLabel","layoutAlgorithms","registerLayoutLoaders","loaders","loader","async","registerDefaultLayoutLoaders","render","data4Layout","layoutAlgorithm","layoutDefinition","algorithm","getRegisteredLayoutAlgorithm","fallback","warn","iteratee","keysFunc","iterable","props","funcProto","objectCtorString","source","srcIndex","mergeFunc","customizer","stack","objValue","srcValue","stacked","newValue","isCommon","isArr","isArray","isBuff","isBuffer","isTyped","isTypedArray","isArrayLikeObject","isObjectLike","proto","Ctor","isArguments","keysIn","isObject","isFunction","baseMerge","weekdays","months","ordinal","utcOffset","date","year","month","clone","add","ms","locale","$L","utc","$u","$x","$offset","$d","Date","NaN","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","unix","valueOf","getTime","toDate","$locale","weekStart","$set","daysInMonth","subtract","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","extend","$i","isDayjs","en","Ls","package_default","version","description","import","default","keywords","scripts","clean","dev","checkCircle","prepublishOnly","repository","author","license","standard","ignore","globals","dependencies","cytoscape","d3","dayjs","dompurify","katex","khroma","marked","roughjs","stylis","uuid","devDependencies","ajv","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","x1","y1","x2","y2","getLineFunctionsWithOffset","offset","DIRECTION","hasOwn","arrowTypeStart","arrowTypeEnd","differenceToEnd","differenceInYEnd","differenceToStart","differenceInYStart","startMarkerHeight","endMarkerHeight","adjustment","differenceInXEnd","differenceInXStart","isNew","isNothing","subject","toArray","sequence","target","sourceKeys","keys","repeat","count","cycle","isNegativeZero","NEGATIVE_INFINITY","formatError","exception2","compact","where","message","reason","mark","column","snippet","YAMLException$1","captureStackTrace","create","exception","getLine","lineStart","lineEnd","position","maxLineLength","head","tail","maxHalfLength","pos","padStart","makeSnippet","maxLength","indent","linesBefore","linesAfter","lineStarts","lineEnds","foundLineNo","exec","lineNoLength","TYPE_CONSTRUCTOR_OPTIONS","YAML_NODE_KINDS","compileStyleAliases","map2","style","alias","Type$1","kind","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","multi","styleAliases","compileList","schema2","currentType","newIndex","previousType","previousIndex","compileMap","scalar","mapping","collectType","type2","Schema$1","definition","implicit","explicit","type$1","loadKind","compiledImplicit","compiledExplicit","compiledTypeMap","failsafe","resolveYamlNull","constructYamlNull","isNull","_null","canonical","lowercase","uppercase","camelcase","empty","resolveYamlBoolean","constructYamlBoolean","isBoolean","bool","isHexCode","isOctCode","isDecCode","resolveYamlInteger","ch","hasDigits","constructYamlInteger","sign","int","binary","obj","octal","decimal","hexadecimal","toUpperCase","YAML_FLOAT_PATTERN","resolveYamlFloat","constructYamlFloat","POSITIVE_INFINITY","SCIENTIFIC_WITHOUT_DOT","representYamlFloat","res","isNaN","isFloat","float","json","core","YAML_DATE_REGEXP","YAML_TIMESTAMP_REGEXP","resolveYamlTimestamp","constructYamlTimestamp","day","hour","minute","second","fraction","delta","setTime","representYamlTimestamp","timestamp","resolveYamlMerge","merge","BASE64_MAP","resolveYamlBinary","code","idx","bitlen","charAt","constructYamlBinary","tailbits","input","Uint8Array","representYamlBinary","isBinary","_hasOwnProperty$3","_toString$2","resolveYamlOmap","pair","pairKey","pairHasKey","objectKeys","constructYamlOmap","omap","_toString$1","resolveYamlPairs","constructYamlPairs","pairs","_hasOwnProperty$2","resolveYamlSet","constructYamlSet","_default","_hasOwnProperty$1","PATTERN_NON_PRINTABLE","PATTERN_NON_ASCII_LINE_BREAKS","PATTERN_FLOW_INDICATORS","PATTERN_TAG_HANDLE","PATTERN_TAG_URI","_class","is_EOL","is_WHITE_SPACE","is_WS_OR_EOL","is_FLOW_INDICATOR","fromHexCode","lc","escapedHexLen","fromDecimalCode","simpleEscapeSequence","charFromCodepoint","simpleEscapeCheck","simpleEscapeMap","State$1","filename","schema","onWarning","legacy","listener","implicitTypes","typeMap","lineIndent","firstTabInLine","documents","generateError","state","throwError","throwWarning","directiveHandlers","YAML","major","minor","checkLineBreaks","TAG","handle","prefix","tagMap","err","captureSegment","end","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","_line","_lineStart","_lineIndent","_kind","readSingleQuotedScalar","readDoubleQuotedScalar","hexLength","hexResult","tmp","readFlowCollection","_pos","terminator","isPair","isExplicitPair","isMapping","readNext","_tag","_anchor","anchor","anchorMap","composeNode","readBlockScalar","folding","chomping","didReadContent","detectedIndent","textIndent","emptyLines","atMoreIndented","readBlockSequence","detected","readBlockMapping","flowIndent","allowCompact","_keyLine","_keyLineStart","_keyPos","atExplicitKey","readTagProperty","tagHandle","tagName","isVerbatim","isNamed","readAnchorProperty","readAlias","parentIndent","nodeContext","allowToSeek","allowBlockStyles","allowBlockScalars","allowBlockCollections","typeIndex","typeQuantity","typeList","blockIndent","indentStatus","atNewLine","hasContent","readDocument","directiveName","directiveArgs","documentStart","hasDirectives","loadDocuments","nullpos","loadAll$1","iterator","load$1","_toString","_hasOwnProperty","CHAR_BOM","ESCAPE_SEQUENCES","DEPRECATED_BOOLEANS_SYNTAX","DEPRECATED_BASE60_SYNTAX","compileStyleMap","encodeHex","character","State","noArrayIndent","skipInvalid","flowLevel","styleMap","sortKeys","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","width","nextLF","moreIndented","lineRe","lastIndex","foldLine","prevMoreIndented","breakRe","curr","escapeSeq","writeFlowSequence","writeNode","writeBlockSequence","writeFlowMapping","objectKey","objectValue","pairBuffer","objectKeyList","writeBlockMapping","explicitPair","detectType","block","isblockseq","tagStr","duplicateIndex","duplicate","objectOrArray","encodeURI","getDuplicateReferences","objects","duplicatesIndexes","inspectNode","renamed","to","JSON_SCHEMA","load","getPrototypeOf","global","Stack","LARGE_ARRAY_SIZE","freeSelf","self","memoize","resolver","TypeError","memoized","cache","Cache","Channel","hue2rgb","hsl2rgb","rgb2hsl","lower","upper","dec2hex","amount","uid","maskSrcKey","IE_PROTO","reIsHostCtor","reIsNative","setPrototypeOf","isFrozen","getOwnPropertyDescriptor","freeze","seal","Reflect","fun","thisValue","Func","arrayForEach","unapply","arrayLastIndexOf","lastIndexOf","arrayPop","arrayPush","arraySplice","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","objectHasOwnProperty","regExpTest","typeErrorCreate","_len2","_key2","_len","_key","addToSet","transformCaseFunc","element","lcElement","cleanArray","newObject","property","lookupGetter","prop","desc","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","html","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","EXPRESSIONS","__proto__","getGlobal","purify","createDOMPurify","DOMPurify","removed","Element","isSupported","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","NodeFilter","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","DOMParser","trustedTypes","ElementPrototype","cloneNode","remove","getNextSibling","getChildNodes","getParentNode","template","createElement","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","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","table","tbody","TRUSTED_TYPES_POLICY","createHTML","createScriptURL","purifyHostElement","createPolicy","suffix","ATTR_NAME","hasAttribute","getAttribute","policyName","scriptUrl","console","_createTrustedTypesPolicy","ALL_SVG_TAGS","ALL_MATHML_TAGS","_forceRemove","removeChild","_removeAttribute","attribute","getAttributeNode","removeAttribute","_initDocument","dirty","leadingWhitespace","dirtyPayload","parseFromString","documentElement","createDocument","innerHTML","insertBefore","createTextNode","childNodes","_createNodeIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","_isClobbered","nodeName","textContent","attributes","namespaceURI","hasChildNodes","_isNode","_executeHooks","currentNode","hook","_sanitizeElements","allowedTags","firstElementChild","_isBasicCustomElement","parentNode","childClone","__removalCount","parent","parentTagName","Boolean","_checkValidNamespace","expr","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","forceKeepAttr","attr","initValue","getAttributeType","setAttributeNS","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","nextNode","sanitize","importedNode","returnNode","firstChild","nodeIterator","shadowroot","shadowrootmode","serializedHTML","outerHTML","doctype","setConfig","clearConfig","isValidAttribute","addHook","entryPoint","hookFunction","removeHook","removeHooks","removeAllHooks","addEdgeMarkers","svgPath","diagramType","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","getElementById","originalMarker","coloredMarker","querySelectorAll","edgeLabels","Map","terminalLabels","getLabelStyles","styleArray","acc","elem","useHtmlLabels","htmlLabels","labelElement","label","labelStyle","addSvgBackground","isNode","info","labelType","edgeLabel","insert","fo","bbox","getBBox","div","children","dv","getBoundingClientRect","height","startLabelLeft","startLabelElement","startEdgeLabelLeft","inner","slBox","startLeft","setTerminalWidth","startLabelRight","startEdgeLabelRight","startRight","endLabelLeft","endLabelElement","endEdgeLabelLeft","endLeft","endLabelRight","endEdgeLabelRight","endRight","paths","debug","updatedPath","originalPath","siteConfig","el","calcLabelPosition","calcTerminalLabelPosition","outsideNode","dx","dy","intersection","outsidePoint","insidePoint","JSON","_x","_y","cutPathAtIntersect","_points","boundaryNode","points","lastPointOutside","isInside","inter","pointPresent","some","extractCornerPoints","cornerPoints","cornerPointPositions","findAdjacentPoint","pointA","pointB","distance","xDiff","yDiff","ratio","fixCorners","lineData","newLineData","prevPoint","nextPoint","cornerPoint","newPrevPoint","newNextPoint","newCornerPoint","clusterDb","startNode","endNode","handDrawnSeed","pointsHasChanged","edgeClassStyles","cssCompiledStyles","intersect","unshift","toCluster","fromCluster","reverse","lineFunction","strokeClasses","thickness","pattern","linePath","edgeStyles","find","startsWith","look","rc","svgPathNode","classes","stylesFromClasses","styles","animationClass","animate","animation","pathStyle","append","arrowMarkerAbsolute","markerArray","markerName","markers","trace","point","cross","barb","startMarker","endMarker","containsNode","markers_default","changes","change","weight","inverse","color1","color2","r1","g1","b1","a1","r2","g2","b2","a2","weightScale","weightNormalized","alphaDelta","weight1","weight2","configFromInitialize","__defProp","__name","__export","all","LEVELS","error","fatal","_args","setLogLevel","numericLevel","bind","frontMatterRegex","directiveRegex","anyCommentRegex","UnknownDiagramError","super","detectors","config2","detector","registerLazyLoadedDiagrams","diagrams2","addDetector","getDiagramLoader","assignWithDepth","dst","src","depth","clobber","assignWithDepth_default","oldAttributeBackgroundColorOdd","oldAttributeBackgroundColorEven","mkBorder","col","darkMode","Theme","background","primaryColor","noteBkgColor","noteTextColor","THEME_COLOR_LIMIT","fontFamily","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","radar","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","getThemeVariables","userOverrides","theme","Theme2","secondBkg","mainContrastColor","darkTextColor","border1","labelBackground","labelColor","cScale12","packet","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","deterministicIDSeed","elk","mergeEdges","nodePlacementStrategy","themeCSS","themeVariables","messageFont","messageFontFamily","messageFontSize","fontWeight","messageFontWeight","noteFont","noteFontFamily","noteFontSize","noteFontWeight","actorFont","actorFontFamily","actorFontSize","actorFontWeight","class","hideEmptyMembersBox","gantt","tickInterval","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","pie","requirement","treemap","useMaxWidth","padding","diagramPadding","showValues","nodeWidth","nodeHeight","borderWidth","valueFontSize","labelFontSize","valueFormat","keyify","configKeys","Set","defaultConfig_default","sanitizeDirective","arg","cssMatchers","cssKey","sanitizeCss","val","startCnt","endCnt","defaultConfig","directives","currentConfig","updateCurrentConfig","siteCfg","_directives","sumOfDirectives","tmpConfigFromInitialize","checkConfig","setSiteConfig","conf","saveConfigFromInitialize","updateSiteConfig","getSiteConfig","secure","addDirective","directive","ConfigWarning","LAZY_LOAD_DEPRECATED","issuedWarnings","issueWarning","warning","lazyLoadedDiagrams","loadExternalDiagramsAtStartup","lineBreakRegex","getRows","breakToPlaceholder","setupDompurifyHooksIfNotSetup","setup","setupDompurifyHooks","TEMPORARY_ATTRIBUTE","removeScript","txt","sanitizeMore","placeholderToBreak","sanitizeText","dompurifyConfig","sanitizeTextOrArray","flat","hasBreaks","splitBreaks","getUrl","useAbsolute","location","host","pathname","search","CSS","escape","evaluate","getMax","newValues","getMin","parseGenericTypes","inputSets","output","thisSet","previousSet","nextSet","shouldCombineSets","processSet","countOccurrence","prevCount","nextCount","tildeCount","hasStartingTilde","chars","last","isMathMLSupported","MathMLElement","katexRegex","hasKatex","calculateMathMLDimensions","renderKatex","divElem","visibility","querySelector","insertAdjacentElement","dim","clientWidth","clientHeight","legacyMathML","forceLegacyMathML","outputMode","renderToString","throwOnError","displayMode","common_default","d3Attrs","d3Elem","attrs","calculateSvgSizeAttrs","configureSvgSize","svgElem","setupGraphViewbox","graph","svgBounds","sWidth","sHeight","vBox","themes","getStyles","userStyles","diagramStyles","addStylesForDiagram","diagramTheme","styles_default","commonDb_exports","getAccDescription","getAccTitle","getDiagramTitle","setAccDescription","setAccTitle","setDiagramTitle","accTitle","diagramTitle","accDescription","sanitizeText2","log2","setLogLevel2","getConfig2","setConfig2","defaultConfig2","sanitizeText3","setupGraphViewbox2","getCommonDb","diagrams","registerDiagram","diagram","injectUtils","getDiagram","DiagramNotFoundError","validateIconName","icon","allowSimpleName","defaultIconDimensions","left","defaultIconTransformations","rotate","vFlip","hFlip","defaultIconProps","defaultExtendedIconProps","hidden","mergeIconData","child","obj1","obj2","mergeIconTransformations","internalGetIconData","tree","icons","aliases","currentProps","name2","defaultIconSizeCustomisations","defaultIconCustomisations","unitsSplit","unitsTest","calculateSize","precision","oldParts","newParts","shift","isNumber","num","regex","randomPrefix","now","counter","breaks","extensions","gfm","pedantic","renderer","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","list","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","title","inLink","raw","tokens","inlineTokens","rules","lexer","space","codeBlockStyle","Je","inline","blockTokens","ordered","loose","items","ee","te","ne","me","task","checked","trimEnd","pre","header","align","rows","inRawBlock","ge","emStrong","codespan","inlineText","escaped","inlineQueue","links","lex","lexInline","startBlock","startInline","parser","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","Promise","then","onError","catch","reject","getDefaults","unknownIcon","iconsStore","loaderStore","registerIconPacks","iconLoaders","iconLoader","getRegisteredIconData","iconName","fallbackPrefix","validate","provider","colonSeparated","dashSeparated","stringToIcon","iconData","names","resolved","getIconsTree","getIconData","isIconAvailable","getIconSVG","customisations","extraAttributes","renderData","fullIcon","fullCustomisations","box","transformations","tempValue","rotation","defs","endEnd","splitSVGDefs","wrapSVGContent","customisationsWidth","customisationsHeight","boxWidth","boxHeight","setAttr","isUnsetKeyword","viewBox","iconToSVG","renderAttribsHTML","iconToHTML","ids","newID","escapedID","replaceIDs","preprocessMarkdown","markdown","markdownAutoWrap","withoutMultipleNewlines","withoutExtraSpaces","markdownToLines","preprocessedMarkdown","nodes","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","reset","_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","detectInit","inits","detectDirective","results","commentWithoutDirectives","removeDirectives","isSubstringInArray","interpolate","defaultCurve","curveName","formatUrl","linkStr","runFunc","functionName","params","arrPaths","len","fnName","p1","p2","traverseEdge","totalDistance","calculatePoint","roundNumber","factor","distanceToTraverse","remainingDistance","vectorDistance","distanceRatio","calcCardinalityPosition","isRelationTypePresent","initialPosition","center","atan2","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","margin","currentCharacter","isLastLine","hyphenatedNextLine","calculateTextHeight","calculateTextDimensions","decoder","fontFamilies","dims","fontFamily2","cHeight","textObj","bBox","_groups","InitIDGenerator","deterministic","entityDecode","unescape","isDetailedError","insertTitle","cssClass","titleTopMargin","bounds","fontSizeNumber","cleanAndMerge","defaultData","utils_default","encodeEntities","innerTxt","decodeEntities","getEdgeId","handleUndefinedAttr","COMMENT","RULESET","DECLARATION","replacement","indexof","charat","begin","strlen","serialize","callback","return","siblings","peek","token","delimit","delimiter","whitespace","escaping","commenter","identifier","compile","dealloc","alloc","rule","rulesets","pseudo","declarations","atrule","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","sizeof","c4Detector_default","diagram2","id2","flowDetector_default","defaultRenderer","id3","flowDetector_v2_default","layout","erDetector_default","id5","gitGraphDetector_default","id6","ganttDetector_default","id7","id9","quadrantDetector_default","id10","xychartDetector_default","id11","requirementDetector_default","id12","sequenceDetector_default","id13","classDetector_default","id14","classDetector_V2_default","id15","stateDetector_default","id16","stateDetector_V2_default","id17","journeyDetector_default","_text","id28","errorRenderer_default","errorDiagram_default","db","id18","detector_default","id19","detector_default2","id20","detector_default3","id21","detector_default4","id22","sankeyDetector_default","id23","id24","id25","blockDetector_default","id26","architectureDetector_default","id27","hasLoadedDiagrams","addDiagrams","loadRegisteredDiagrams","failed","allSettled","detector28","loader28","status","setA11yDiagramInfo","addSVGa11yTitleDescription","a11yTitle","a11yDesc","baseId","descId","titleId","Diagram","_Diagram","renderer2","fromText","metadata","init2","yy","getParser","getType","interactionFunctions","attachFunctions","cleanupComments","extractFrontMatter","parsed","cleanupText","processFrontmatter","processDirectives","initDirective","wrapDirectives","wrap","preprocessDiagram","cleanedCode","frontMatterResult","directiveResult","toBase64","utf8Bytes","TextEncoder","encode","utf8Str","byte","fromCodePoint","btoa","DOMPURIFY_TAGS","DOMPURIFY_ATTR","processAndSetConfigs","processed","parseOptions","getDiagramFromText","suppressErrors","cssImportantStyles","cssClasses","createCssStyles","classDefs","cssStyles","altFontFamily","cssElements","styleClassDef","isEmpty","cssElement","textStyles","createUserStyles","graphType","svgId","userCSSstyles","cleanUpSvgCode","svgCode","inSandboxMode","useArrowMarkerUrls","cleanedUpSvg","putIntoIFrame","svgElement","baseVal","appendDivSvgG","parentRoot","enclosingDivId","divStyle","svgXlink","enclosingDiv","svgNode","sandboxedIframe","iFrameId","removeExistingElements","divId","svgContainingElement","maxTextSize","idSelector","iFrameID","iFrameID_selector","enclosingDivID","enclosingDivID_selector","removeTempElements","tmpElementSelector","isSandboxed","isLooseSecurityLevel","iframe","diag","parseEncounteredException","suppressErrorRendering","diagramClassDefs","getClasses","style1","a11yDescr","addA11yInfo","selectAll","svgEl","foreignobject","bindFunctions","initialize","userOptions","logLevel","mermaidAPI","globalReset","handleError","errors","parseError","hash","run","runThrowsErrors","mermaid","postRenderCallback","nodesToProcess","startOnLoad","idGenerator","deterministicIds","render2","initialize2","runOptions","HTMLElement","registerExternalDiagrams","lazyLoad","contentLoaded","addEventListener","setParseErrorHandler","parseErrorHandler","executionQueue","executionQueueRunning","executeQueue","parse2","performCall","rej","container","getRegisteredDiagramsMetadata","mermaid_default","valueof","right","epsilon","translateX","translateY","scale","bandwidth","entering","__axis","axis","orient","tickArguments","tickValues","tickFormat","tickSizeInner","tickSizeOuter","tickPadding","devicePixelRatio","context","ticks","domain","identity","spacing","range","range0","range1","selection","tick","order","tickExit","exit","tickEnter","enter","transition","isFinite","each","tickSize","axisTop","axisBottom","formatDecimalParts","toExponential","coefficient","prefixExponent","formatSpecifier","specifier","FormatSpecifier","symbol","zero","comma","exponent","toLocaleString","toPrecision","formatRounded","formatPrefix","prefixes","sum","hierarchy","mapChildren","objectChildren","childs","eachBefore","computeHeight","copyData","x0","y0","grouping","thousands","group","currencyPrefix","currency","currencySuffix","numerals","formatNumerals","percent","minus","nan","newFormat","formatTypes","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","i1","i0","formatTrim","Infinity","eachAfter","that","compare","ancestor","aNodes","ancestors","bNodes","leastCommonAncestor","descendants","leaves","Symbol","current","custom","squarify","row","nodeValue","sumValue","minValue","maxValue","newRatio","minRatio","alpha","beta","dice","squarifyRatio","constantZero","tile","paddingStack","paddingInner","paddingTop","paddingRight","paddingBottom","paddingLeft","positionNode","required","paddingOuter","radians","degrees","Xn","Zn","t0","t1","t2","t3","labConvert","Lab","opacity","Hcl","hcl2lab","rgb2lrgb","xyz2lab","lab2xyz","lrgb2rgb","hcl","hclConvert","brighter","darker","initRange","InternMap","keyof","defineProperties","_intern","intern_get","intern_set","delete","intern_delete","unknown","band","step","ordinalRange","r0","rescale","stop","rangeRound","e10","e5","e2","tickSpec","power","log10","i2","inc","tickIncrement","tickStep","ascending","descending","bisector","compare1","compare2","lo","hi","mid","ascendingBisect","bisectRight","genericArray","nb","na","ArrayBuffer","isView","DataView","normalize","bimap","d0","d1","polymap","bisect","continuous","untransform","piecewise","invert","transformer","linearish","precisionPrefix","precisionRound","precisionFixed","nice","prestep","maxIter","linear","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationYear","timeInterval","floori","offseti","field","interval","every","millisecond","getUTCSeconds","timeMinute","utcMinute","setUTCSeconds","getUTCMinutes","timeHour","utcHour","setUTCMinutes","getUTCHours","timeDay","setHours","setDate","utcDay","setUTCHours","setUTCDate","getUTCDate","unixDay","timeWeekday","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","setMonth","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","timeYear","setFullYear","utcYear","setUTCFullYear","ticker","week","tickIntervals","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","utcDate","newDate","timeFormat","pads","numberRe","percentRe","requoteRe","pad","requote","formatRe","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekNumberMonday","parseFullYear","parseYear","parseZone","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","dISO","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","time","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","utcFormats","parses","parseSpecifier","newParse","utcFormat","utcParse","formatLocale","pi","halfPi","tau","tauEpsilon","Path","digits","_x0","_y0","_x1","_y1","_append","appendRound","closePath","quadraticCurveTo","arcTo","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","acos","t01","t21","a0","ccw","cw","da","rect","withPath","RangeError","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","cornerTangents","ox","oy","x11","y11","x10","y10","x00","y00","d2","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cx","cy","cornerRadius","padRadius","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","p0","oc","x3","y3","x32","y32","ax","ay","bx","by","kc","centroid","Linear","_context","defined","defined0","sortValues","arcs","pa","Basis","BasisClosed","BasisOpen","areaStart","areaEnd","_point","noop","_x2","_x3","_x4","_y2","_y3","_y4","Bump","bumpX","bumpY","Bundle","_basis","_beta","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","inherited","isArg","isType","skipIndexes","isProto","isArrayLike","_classes","shapeSvg","domId","labelEl","text2","wrappingWidth","img","halfPadding","images","noImgText","setupImage","display","flexDirection","bodyFontSize","getComputedStyle","enlargingFactor","parsedBodyFontSize","minWidth","setTimeout","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","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","selectChildren","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","rowHeight","totalWidthSections","shapeBBox","difference","totalShapeBBoxHeight","translate","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","priority","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","nativeNow","lastCalled","stamp","remaining","solidStateFill","compileStyles","styles2Map","stylesArray","isLabelStyle","styles2String","userNodeOverrides","assigner","sources","guard","objectCreate"],"sourceRoot":""}