{"version":3,"file":"mermaidMarkdown-a72eac494ce65a7ee317.js","mappings":"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","sources":["webpack:///webpack/runtime/load script","webpack:///./node_modules/lodash-es/_cloneBuffer.js","webpack:///./node_modules/lodash.debounce/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack:///./node_modules/lodash-es/_Symbol.js","webpack:///./node_modules/lodash-es/_overArg.js","webpack:///./node_modules/lodash-es/_baseCreate.js","webpack:///./node_modules/lodash-es/_initCloneObject.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/ts-dedent/esm/index.js","webpack:///./node_modules/lodash-es/_cloneArrayBuffer.js","webpack:///./node_modules/d3/node_modules/d3-array/src/max.js","webpack:///./node_modules/d3/node_modules/d3-array/src/min.js","webpack:///./node_modules/d3-axis/src/identity.js","webpack:///./node_modules/d3-axis/src/axis.js","webpack:///./node_modules/d3-selection/src/selector.js","webpack:///./node_modules/d3-selection/src/selectorAll.js","webpack:///./node_modules/d3-selection/src/matcher.js","webpack:///./node_modules/d3-selection/src/selection/selectChild.js","webpack:///./node_modules/d3-selection/src/selection/selectChildren.js","webpack:///./node_modules/d3-selection/src/selection/sparse.js","webpack:///./node_modules/d3-selection/src/selection/enter.js","webpack:///./node_modules/d3-selection/src/selection/data.js","webpack:///./node_modules/d3-selection/src/selection/sort.js","webpack:///./node_modules/d3-selection/src/namespaces.js","webpack:///./node_modules/d3-selection/src/namespace.js","webpack:///./node_modules/d3-selection/src/selection/attr.js","webpack:///./node_modules/d3-selection/src/window.js","webpack:///./node_modules/d3-selection/src/selection/style.js","webpack:///./node_modules/d3-selection/src/selection/property.js","webpack:///./node_modules/d3-selection/src/selection/classed.js","webpack:///./node_modules/d3-selection/src/selection/text.js","webpack:///./node_modules/d3-selection/src/selection/html.js","webpack:///./node_modules/d3-selection/src/selection/raise.js","webpack:///./node_modules/d3-selection/src/selection/lower.js","webpack:///./node_modules/d3-selection/src/creator.js","webpack:///./node_modules/d3-selection/src/selection/insert.js","webpack:///./node_modules/d3-selection/src/selection/remove.js","webpack:///./node_modules/d3-selection/src/selection/clone.js","webpack:///./node_modules/d3-selection/src/selection/on.js","webpack:///./node_modules/d3-selection/src/selection/dispatch.js","webpack:///./node_modules/d3-selection/src/selection/index.js","webpack:///./node_modules/d3-selection/src/selection/select.js","webpack:///./node_modules/d3-selection/src/selection/selectAll.js","webpack:///./node_modules/d3-selection/src/array.js","webpack:///./node_modules/d3-selection/src/selection/filter.js","webpack:///./node_modules/d3-selection/src/constant.js","webpack:///./node_modules/d3-selection/src/selection/exit.js","webpack:///./node_modules/d3-selection/src/selection/join.js","webpack:///./node_modules/d3-selection/src/selection/merge.js","webpack:///./node_modules/d3-selection/src/selection/order.js","webpack:///./node_modules/d3-selection/src/selection/call.js","webpack:///./node_modules/d3-selection/src/selection/nodes.js","webpack:///./node_modules/d3-selection/src/selection/node.js","webpack:///./node_modules/d3-selection/src/selection/size.js","webpack:///./node_modules/d3-selection/src/selection/empty.js","webpack:///./node_modules/d3-selection/src/selection/each.js","webpack:///./node_modules/d3-selection/src/selection/append.js","webpack:///./node_modules/d3-selection/src/selection/datum.js","webpack:///./node_modules/d3-selection/src/selection/iterator.js","webpack:///./node_modules/d3-dispatch/src/dispatch.js","webpack:///./node_modules/d3-timer/src/timer.js","webpack:///./node_modules/d3-timer/src/timeout.js","webpack:///./node_modules/d3-transition/src/transition/schedule.js","webpack:///./node_modules/d3-interpolate/src/number.js","webpack:///./node_modules/d3-interpolate/src/transform/decompose.js","webpack:///./node_modules/d3-interpolate/src/transform/parse.js","webpack:///./node_modules/d3-interpolate/src/transform/index.js","webpack:///./node_modules/d3-transition/src/transition/tween.js","webpack:///./node_modules/d3-color/src/define.js","webpack:///./node_modules/d3-color/src/color.js","webpack:///./node_modules/d3-interpolate/src/basis.js","webpack:///./node_modules/d3-interpolate/src/constant.js","webpack:///./node_modules/d3-interpolate/src/color.js","webpack:///./node_modules/d3-interpolate/src/rgb.js","webpack:///./node_modules/d3-interpolate/src/basisClosed.js","webpack:///./node_modules/d3-interpolate/src/string.js","webpack:///./node_modules/d3-transition/src/transition/interpolate.js","webpack:///./node_modules/d3-transition/src/transition/attr.js","webpack:///./node_modules/d3-transition/src/transition/attrTween.js","webpack:///./node_modules/d3-transition/src/transition/delay.js","webpack:///./node_modules/d3-transition/src/transition/duration.js","webpack:///./node_modules/d3-transition/src/transition/selection.js","webpack:///./node_modules/d3-transition/src/transition/style.js","webpack:///./node_modules/d3-transition/src/transition/index.js","webpack:///./node_modules/d3-transition/src/transition/select.js","webpack:///./node_modules/d3-transition/src/transition/selectAll.js","webpack:///./node_modules/d3-transition/src/transition/filter.js","webpack:///./node_modules/d3-transition/src/transition/merge.js","webpack:///./node_modules/d3-transition/src/transition/transition.js","webpack:///./node_modules/d3-transition/src/transition/on.js","webpack:///./node_modules/d3-transition/src/transition/styleTween.js","webpack:///./node_modules/d3-transition/src/transition/text.js","webpack:///./node_modules/d3-transition/src/transition/textTween.js","webpack:///./node_modules/d3-transition/src/transition/remove.js","webpack:///./node_modules/d3-transition/src/transition/ease.js","webpack:///./node_modules/d3-transition/src/transition/easeVarying.js","webpack:///./node_modules/d3-transition/src/transition/end.js","webpack:///./node_modules/d3-transition/src/selection/transition.js","webpack:///./node_modules/d3-ease/src/cubic.js","webpack:///./node_modules/d3-transition/src/selection/index.js","webpack:///./node_modules/d3-transition/src/selection/interrupt.js","webpack:///./node_modules/d3-transition/src/interrupt.js","webpack:///./node_modules/d3-brush/src/brush.js","webpack:///./node_modules/d3-color/src/math.js","webpack:///./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-scale/node_modules/d3-array/src/range.js","webpack:///./node_modules/d3-scale/node_modules/d3-array/src/ticks.js","webpack:///./node_modules/d3-scale/node_modules/d3-array/src/ascending.js","webpack:///./node_modules/d3-scale/node_modules/d3-array/src/descending.js","webpack:///./node_modules/d3-scale/node_modules/d3-array/src/bisector.js","webpack:///./node_modules/d3-scale/node_modules/d3-array/src/bisect.js","webpack:///./node_modules/d3-scale/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-format/src/formatSpecifier.js","webpack:///./node_modules/d3-format/src/formatPrefixAuto.js","webpack:///./node_modules/d3-format/src/formatDecimal.js","webpack:///./node_modules/d3-format/src/exponent.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-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/node_modules/d3-array/src/ascending.js","webpack:///./node_modules/d3-time/node_modules/d3-array/src/descending.js","webpack:///./node_modules/d3-time/node_modules/d3-array/src/bisector.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-time/node_modules/d3-array/src/ticks.js","webpack:///./node_modules/d3-time/src/duration.js","webpack:///./node_modules/d3-time/src/interval.js","webpack:///./node_modules/d3-time/src/millisecond.js","webpack:///./node_modules/d3-time/src/second.js","webpack:///./node_modules/d3-time/src/minute.js","webpack:///./node_modules/d3-time/src/hour.js","webpack:///./node_modules/d3-time/src/day.js","webpack:///./node_modules/d3-time/src/week.js","webpack:///./node_modules/d3-time/src/month.js","webpack:///./node_modules/d3-time/src/year.js","webpack:///./node_modules/d3-time/src/ticks.js","webpack:///./node_modules/d3-time-format/src/locale.js","webpack:///./node_modules/d3-time-format/src/defaultLocale.js","webpack:///./node_modules/d3-scale/src/time.js","webpack:///./node_modules/d3-scale/src/nice.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Tableau10.js","webpack:///./node_modules/d3-scale-chromatic/src/colors.js","webpack:///./node_modules/d3-selection/src/select.js","webpack:///./node_modules/d3-shape/src/constant.js","webpack:///./node_modules/d3-shape/src/math.js","webpack:///./node_modules/d3-path/src/path.js","webpack:///./node_modules/d3-shape/src/path.js","webpack:///./node_modules/d3-shape/src/arc.js","webpack:///./node_modules/d3-shape/src/array.js","webpack:///./node_modules/d3-shape/src/curve/linear.js","webpack:///./node_modules/d3-shape/src/point.js","webpack:///./node_modules/d3-shape/src/line.js","webpack:///./node_modules/d3-shape/src/descending.js","webpack:///./node_modules/d3-shape/src/identity.js","webpack:///./node_modules/d3-shape/src/pie.js","webpack:///./node_modules/d3-shape/src/noop.js","webpack:///./node_modules/d3-shape/src/curve/basis.js","webpack:///./node_modules/d3-shape/src/curve/basisClosed.js","webpack:///./node_modules/d3-shape/src/curve/basisOpen.js","webpack:///./node_modules/d3-shape/src/curve/bump.js","webpack:///./node_modules/d3-shape/src/curve/bundle.js","webpack:///./node_modules/d3-shape/src/curve/cardinal.js","webpack:///./node_modules/d3-shape/src/curve/cardinalClosed.js","webpack:///./node_modules/d3-shape/src/curve/cardinalOpen.js","webpack:///./node_modules/d3-shape/src/curve/catmullRom.js","webpack:///./node_modules/d3-shape/src/curve/catmullRomClosed.js","webpack:///./node_modules/d3-shape/src/curve/catmullRomOpen.js","webpack:///./node_modules/d3-shape/src/curve/linearClosed.js","webpack:///./node_modules/d3-shape/src/curve/monotone.js","webpack:///./node_modules/d3-shape/src/curve/natural.js","webpack:///./node_modules/d3-shape/src/curve/step.js","webpack:///./node_modules/d3-zoom/src/transform.js","webpack:///./node_modules/@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/mermaid/dist/chunks/mermaid.core/chunk-OPO4IU42.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/_toSource.js","webpack:///./node_modules/lodash-es/isBuffer.js","webpack:///./node_modules/lodash-es/stubFalse.js","webpack:///./node_modules/mermaid/dist/chunks/mermaid.core/chunk-7NZE2EM7.mjs","webpack:///./node_modules/lodash-es/_cloneTypedArray.js","webpack:///./node_modules/lodash-es/_root.js","webpack:///./node_modules/khroma/dist/color/hex.js","webpack:///./node_modules/khroma/dist/color/hsl.js","webpack:///./node_modules/khroma/dist/color/keyword.js","webpack:///./node_modules/khroma/dist/color/rgb.js","webpack:///./node_modules/khroma/dist/color/index.js","webpack:///./node_modules/lodash-es/_copyObject.js","webpack:///./node_modules/lodash-es/isArray.js","webpack:///./node_modules/lodash-es/_nativeCreate.js","webpack:///./node_modules/lodash-es/_hashGet.js","webpack:///./node_modules/lodash-es/_hashHas.js","webpack:///./node_modules/lodash-es/_Hash.js","webpack:///./node_modules/lodash-es/_hashClear.js","webpack:///./node_modules/lodash-es/_hashDelete.js","webpack:///./node_modules/lodash-es/_hashSet.js","webpack:///./node_modules/lodash-es/_mapCacheClear.js","webpack:///./node_modules/lodash-es/_getMapData.js","webpack:///./node_modules/lodash-es/_isKeyable.js","webpack:///./node_modules/lodash-es/_MapCache.js","webpack:///./node_modules/lodash-es/_mapCacheDelete.js","webpack:///./node_modules/lodash-es/_mapCacheGet.js","webpack:///./node_modules/lodash-es/_mapCacheHas.js","webpack:///./node_modules/lodash-es/_mapCacheSet.js","webpack:///./node_modules/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/_freeGlobal.js","webpack:///./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack:///./node_modules/roughjs/bundled/rough.esm.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///./node_modules/lodash-es/_getRawTag.js","webpack:///./node_modules/lodash-es/_objectToString.js","webpack:///./node_modules/lodash-es/_baseGetTag.js","webpack:///./node_modules/lodash-es/_arrayLikeKeys.js","webpack:///./node_modules/lodash-es/_baseTimes.js","webpack:///./node_modules/lodash-es/_baseAssignValue.js","webpack:///./node_modules/lodash-es/_baseUnary.js","webpack:///./node_modules/lodash-es/_assignValue.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/lodash-es/isObjectLike.js","webpack:///./node_modules/mermaid/dist/chunks/mermaid.core/chunk-3X56UNUX.mjs","webpack:///./node_modules/khroma/dist/constants.js","webpack:///./assets/javascripts/render/logger.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./assets/javascripts/render/setup-globals.ts","webpack:///./assets/javascripts/render/config.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/lodash-es/isObject.js","webpack:///./assets/javascripts/render/status.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./node_modules/lodash-es/isArrayLikeObject.js","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/lodash-es/_createAssigner.js","webpack:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:///./node_modules/lodash-es/_Uint8Array.js","webpack:///./node_modules/lodash-es/_defineProperty.js","webpack:///./node_modules/stacktrace-parser/dist/stack-trace-parser.esm.js","webpack:///./node_modules/lodash-es/_baseRest.js","webpack:///./node_modules/dayjs/dayjs.min.js","webpack:///./node_modules/lodash-es/_nativeKeys.js","webpack:///./node_modules/lodash-es/_baseKeys.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack:///./assets/javascripts/render/failbot.ts","webpack:///./node_modules/lodash-es/_baseIsTypedArray.js","webpack:///./node_modules/lodash-es/isTypedArray.js","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/lodash.unescape/index.js","webpack:///./node_modules/lodash-es/_nodeUtil.js","webpack:///./node_modules/@primer/octicons/index.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/_baseIsArguments.js","webpack:///./node_modules/lodash-es/isArguments.js","webpack:///./node_modules/object-assign/index.js","webpack:///./node_modules/lodash-es/isLength.js","webpack:///./node_modules/lodash-es/_overRest.js","webpack:///./node_modules/lodash-es/_apply.js","webpack:///./node_modules/khroma/dist/methods/darken.js","webpack:///./node_modules/lodash-es/_isIndex.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack:///./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack:///./node_modules/khroma/dist/methods/rgba.js","webpack:///./assets/javascripts/render/utils.ts","webpack:///./node_modules/khroma/dist/methods/adjust_channel.js","webpack:///./node_modules/lodash-es/_getPrototype.js","webpack:///./node_modules/marked/lib/marked.esm.js","webpack:///./node_modules/mermaid/dist/chunks/mermaid.core/chunk-6JOS74DS.mjs","webpack:///./node_modules/mermaid/dist/chunks/mermaid.core/chunk-K6PMAZHR.mjs","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/@babel/runtime/helpers/esm/construct.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/lodash-es/isEmpty.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/lodash-es/memoize.js","webpack:///./node_modules/@braintree/sanitize-url/dist/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack:///./node_modules/lodash-es/_isIterateeCall.js","webpack:///./assets/javascripts/render/constants.ts","webpack:///./node_modules/lodash-es/eq.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","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/khroma/dist/channels/type.js","webpack:///./node_modules/khroma/dist/channels/reusable.js","webpack:///./node_modules/khroma/dist/channels/index.js","webpack:///./node_modules/lodash-es/_isPrototype.js","webpack:///./node_modules/mermaid/dist/chunks/mermaid.core/chunk-EJ4ZWXGL.mjs","webpack:///./node_modules/mermaid/dist/chunks/mermaid.core/chunk-BO7VGL7K.mjs","webpack:///./node_modules/lodash-es/_baseSetToString.js","webpack:///./node_modules/lodash-es/_shortOut.js","webpack:///./node_modules/lodash-es/_setToString.js","webpack:///./node_modules/mermaid/dist/chunks/mermaid.core/chunk-3JNJP5BE.mjs","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/mermaid/dist/chunks/mermaid.core/chunk-66SQ7PYY.mjs","webpack:///./node_modules/khroma/dist/methods/lighten.js","webpack:///./node_modules/mermaid/dist/chunks/mermaid.core/chunk-7DKRZKHE.mjs","webpack:///./node_modules/khroma/dist/methods/change.js","webpack:///./node_modules/lodash-es/_Map.js","webpack:///./node_modules/lodash-es/isArrayLike.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/identity.js","webpack:///./node_modules/@braintree/sanitize-url/dist/constants.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/constant.js","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/dompurify/dist/purify.es.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/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-6DBFFHIP.mjs","webpack:///./assets/javascripts/render/link-navigator.ts","webpack:///./node_modules/lodash-es/isFunction.js","webpack:///./node_modules/lodash-es/_copyArray.js","webpack:///./node_modules/lodash-es/_Set.js","webpack:///./node_modules/mermaid/dist/chunks/mermaid.core/chunk-S3SWNSAA.mjs","webpack:///./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///./node_modules/lodash-es/_baseKeysIn.js","webpack:///./node_modules/lodash-es/_nativeKeysIn.js","webpack:///./node_modules/lodash-es/keysIn.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/ensure chunk","webpack:///webpack/runtime/get javascript chunk filename","webpack:///webpack/runtime/get mini-css chunk filename","webpack:///webpack/runtime/getFullHash","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///webpack/runtime/publicPath","webpack:///webpack/runtime/jsonp chunk loading","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:///./assets/javascripts/mermaid-viewer/lib/mermaid-initializer.js","webpack:///./assets/javascripts/mermaid-viewer/lib/constants.ts","webpack:///./assets/javascripts/mermaid-viewer/lib/mermaid-renderer.ts","webpack:///./assets/javascripts/mermaid-viewer/lib/mermaid-viewer.ts","webpack:///./assets/javascripts/mermaid-viewer/lib/markdown-viewer.ts","webpack:///./assets/javascripts/mermaid-viewer/markdown.ts"],"sourcesContent":["var inProgress = {};\n// data-webpack is not used as build has no uniqueName\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\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\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 objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\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 && (type == 'object' || type == 'function');\n}\n\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 && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or 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 a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nexport { _isNativeFunction as default };","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import 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","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","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 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","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","export default function(x) {\n return x;\n}\n","import identity from \"./identity.js\";\n\nvar top = 1,\n right = 2,\n bottom = 3,\n left = 4,\n epsilon = 1e-6;\n\nfunction translateX(x) {\n return \"translate(\" + x + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + y + \")\";\n}\n\nfunction number(scale) {\n return d => +scale(d);\n}\n\nfunction center(scale, offset) {\n offset = Math.max(0, scale.bandwidth() - offset * 2) / 2;\n if (scale.round()) offset = Math.round(offset);\n return d => +scale(d) + offset;\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3,\n offset = typeof window !== \"undefined\" && window.devicePixelRatio > 1 ? 0 : 0.5,\n k = orient === top || orient === left ? -1 : 1,\n x = orient === left || orient === right ? \"x\" : \"y\",\n transform = orient === top || orient === bottom ? translateX : translateY;\n\n function axis(context) {\n var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,\n format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n range = scale.range(),\n range0 = +range[0] + offset,\n range1 = +range[range.length - 1] + offset,\n position = (scale.bandwidth ? center : number)(scale.copy(), offset),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\");\n\n path = path.merge(path.enter().insert(\"path\", \".tick\")\n .attr(\"class\", \"domain\")\n .attr(\"stroke\", \"currentColor\"));\n\n tick = tick.merge(tickEnter);\n\n line = line.merge(tickEnter.append(\"line\")\n .attr(\"stroke\", \"currentColor\")\n .attr(x + \"2\", k * tickSizeInner));\n\n text = text.merge(tickEnter.append(\"text\")\n .attr(\"fill\", \"currentColor\")\n .attr(x, k * spacing)\n .attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n\n tickExit = tickExit.transition(context)\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute(\"transform\"); });\n\n tickEnter\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { var p = this.parentNode.__axis; return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient === right\n ? (tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H\" + offset + \"V\" + range1 + \"H\" + k * tickSizeOuter : \"M\" + offset + \",\" + range0 + \"V\" + range1)\n : (tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V\" + offset + \"H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",\" + offset + \"H\" + range1));\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d) + offset); });\n\n line\n .attr(x + \"2\", k * tickSizeInner);\n\n text\n .attr(x, k * spacing)\n .text(format);\n\n selection.filter(entering)\n .attr(\"fill\", \"none\")\n .attr(\"font-size\", 10)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n\n selection\n .each(function() { this.__axis = position; });\n }\n\n axis.scale = function(_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function() {\n return tickArguments = Array.from(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : Array.from(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : Array.from(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function(_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function(_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function(_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function(_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function(_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n axis.offset = function(_) {\n return arguments.length ? (offset = +_, axis) : offset;\n };\n\n return axis;\n}\n\nexport function axisTop(scale) {\n return axis(top, scale);\n}\n\nexport function axisRight(scale) {\n return axis(right, scale);\n}\n\nexport function axisBottom(scale) {\n return axis(bottom, scale);\n}\n\nexport function axisLeft(scale) {\n return axis(left, scale);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection, event) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start(event).brush(event).end(event);\n });\n }\n };\n\n brush.clear = function(group, event) {\n brush.move(group, null, event);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move(event);\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move(event);\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move(event);\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move(event);\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","export 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","// [[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","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","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","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 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","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","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 const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n // noop\n}, (date, step) => {\n date.setTime(+date + step);\n}, (start, end) => {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return timeInterval((date) => {\n date.setTime(Math.floor(date / k) * k);\n }, (date, step) => {\n date.setTime(+date + step * k);\n }, (start, end) => {\n return (end - start) / k;\n });\n};\n\nexport const milliseconds = millisecond.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport {millisecond} from \"./millisecond.js\";\nimport {second} from \"./second.js\";\nimport {timeMinute, utcMinute} from \"./minute.js\";\nimport {timeHour, utcHour} from \"./hour.js\";\nimport {timeDay, unixDay} from \"./day.js\";\nimport {timeSunday, utcSunday} from \"./week.js\";\nimport {timeMonth, utcMonth} from \"./month.js\";\nimport {timeYear, utcYear} from \"./year.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import colors from \"../colors.js\";\n\nexport default colors(\"4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab\");\n","export default function(specifier) {\n var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;\n while (i < n) colors[i] = \"#\" + specifier.slice(i * 6, ++i * 6);\n return colors;\n}\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","import constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\nimport {withPath} from \"./path.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null,\n path = withPath(arc);\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle. If this\n // intersection fails, it’s probably because the arc is too small, so\n // disable the corner radius entirely.\n if (da < pi) {\n if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n } else {\n rc0 = rc1 = 0;\n }\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = (data = array(data)).length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // falls through\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import pointRadial from \"../pointRadial.js\";\n\nclass Bump {\n constructor(context, x) {\n this._context = context;\n this._x = x;\n }\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n }\n point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: {\n this._point = 1;\n if (this._line) this._context.lineTo(x, y);\n else this._context.moveTo(x, y);\n break;\n }\n case 1: this._point = 2; // falls through\n default: {\n if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);\n else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);\n break;\n }\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nclass BumpRadial {\n constructor(context) {\n this._context = context;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {}\n point(x, y) {\n x = +x, y = +y;\n if (this._point === 0) {\n this._point = 1;\n } else {\n const p0 = pointRadial(this._x0, this._y0);\n const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2);\n const p2 = pointRadial(x, this._y0);\n const p3 = pointRadial(x, y);\n this._context.moveTo(...p0);\n this._context.bezierCurveTo(...p1, ...p2, ...p3);\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nexport function bumpX(context) {\n return new Bump(context, true);\n}\n\nexport function bumpY(context) {\n return new Bump(context, false);\n}\n\nexport function bumpRadial(context) {\n return new BumpRadial(context);\n}\n","import {Basis} from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nexport default (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {point} from \"./cardinal.js\";\n\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {epsilon} from \"../math.js\";\nimport {Cardinal} from \"./cardinal.js\";\n\nexport function point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // falls through\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalClosed} from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalOpen} from \"./cardinalOpen.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","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 !!((icon.provider === \"\" || icon.provider.match(matchIconName)) && (allowSimpleName && icon.prefix === \"\" || icon.prefix.match(matchIconName)) && icon.name.match(matchIconName));\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","import {\n __name,\n log\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/rendering-util/icons.ts\nimport { getIconData, iconToHTML, iconToSVG, replaceIDs, stringToIcon } from \"@iconify/utils\";\nvar unknownIcon = {\n body: '?',\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 getIconSVG = /* @__PURE__ */ __name(async (iconName, customisations) => {\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), renderData.attributes);\n return svg;\n}, \"getIconSVG\");\n\nexport {\n unknownIcon,\n registerIconPacks,\n getIconSVG\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 '',\n \"\"\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(\"\", 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 + \"\" + 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 '\" + body + \"\";\n}\n\nexport { iconToHTML };\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 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 {\n getIconSVG\n} from \"./chunk-OPO4IU42.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-3X56UNUX.mjs\";\nimport {\n createText\n} from \"./chunk-6JOS74DS.mjs\";\nimport {\n calculateTextWidth,\n decodeEntities,\n handleUndefinedAttr,\n parseFontSize\n} from \"./chunk-7DKRZKHE.mjs\";\nimport {\n __name,\n common_default,\n defaultConfig_default,\n evaluate,\n getConfig,\n getConfig2,\n hasKatex,\n log,\n renderKatex,\n sanitizeText,\n sanitizeText2\n} from \"./chunk-6DBFFHIP.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(/]*>/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 '\" + label + \"\"\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, \"
\");\n log.info(\"vertexText\" + vertexText);\n const node = {\n isNode,\n label: decodeEntities(vertexText).replace(\n /fa[blrs]?:fa-[\\w-]+/g,\n (s) => ``\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|/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/shapes/handDrawnShapeStyles.ts\nvar solidStateFill = /* @__PURE__ */ __name((color) => {\n const { handDrawnSeed } = getConfig2();\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 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 (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 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 } = getConfig2();\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\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 `${await getIconSVG(node.icon, {\n height: iconSize,\n width: iconSize,\n fallbackPrefix: \"\"\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 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 `${await getIconSVG(node.icon, {\n height: iconSize,\n width: iconSize,\n fallbackPrefix: \"\"\n })}`\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 `${await getIconSVG(node.icon, {\n height: iconSize,\n width: iconSize,\n fallbackPrefix: \"\"\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 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 `${await getIconSVG(node.icon, {\n height: iconSize,\n width: iconSize,\n fallbackPrefix: \"\"\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 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 } = 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 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(\"
\") : 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/classBox.ts\nimport { select as select6 } from \"d3\";\nimport rough54 from \"roughjs\";\n\n// src/diagrams/class/shapeUtil.ts\nimport { select as select5 } 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 addText(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 addText(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 addText(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 addText(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 addText(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 select5(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(\">\")) {\n textChild.textContent = textContent[0] + textContent.substring(1).replaceAll(\">\", \">\").replaceAll(\"<\", \"<\").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 = select5(text2);\n numberOfLines = div.innerHTML.split(\"
\").length;\n if (div.innerHTML.includes(\"\")) {\n numberOfLines += div.innerHTML.split(\"\").length - 1;\n }\n const images = div.getElementsByTagName(\"img\");\n if (images) {\n const noImgText = textContent.replace(/]*>/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(addText, \"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 = rough54.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 = select6(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/kanbanItem.ts\nimport rough55 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 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 = rough55.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 };\n const entries = [\n ...Object.entries(undocumentedShapes),\n ...shapesDefs.flatMap((shape) => {\n const aliases = [\n shape.shortName,\n ...\"aliases\" in shape ? shape.aliases : [],\n ...\"internalAliases\" in shape ? shape.internalAliases : []\n ];\n return aliases.map((alias) => [alias, shape.handler]);\n })\n ];\n return Object.fromEntries(entries);\n}, \"generateShapeMap\");\nvar shapes2 = generateShapeMap();\nfunction isValidShape(shape) {\n return shape in shapes2;\n}\n__name(isValidShape, \"isValidShape\");\n\n// src/rendering-util/rendering-elements/nodes.ts\nvar nodeElems = /* @__PURE__ */ new Map();\nasync function insertNode(elem, node, renderOptions) {\n let newEl;\n let el;\n if (node.shape === \"rect\") {\n if (node.rx && node.ry) {\n node.shape = \"roundedRect\";\n } else {\n node.shape = \"squareRect\";\n }\n }\n const shapeHandler = node.shape ? shapes2[node.shape] : void 0;\n if (!shapeHandler) {\n throw new Error(`No such shape: ${node.shape}. Please check your syntax.`);\n }\n if (node.link) {\n let target;\n if (renderOptions.config.securityLevel === \"sandbox\") {\n target = \"_top\";\n } else if (node.linkTarget) {\n target = node.linkTarget || \"_blank\";\n }\n newEl = elem.insert(\"svg:a\").attr(\"xlink:href\", node.link).attr(\"target\", target ?? null);\n el = await shapeHandler(newEl, node, renderOptions);\n } else {\n el = await shapeHandler(elem, node, renderOptions);\n newEl = el;\n }\n if (node.tooltip) {\n el.attr(\"title\", node.tooltip);\n }\n nodeElems.set(node.id, newEl);\n if (node.haveCallback) {\n newEl.attr(\"class\", newEl.attr(\"class\") + \" clickable\");\n }\n return newEl;\n}\n__name(insertNode, \"insertNode\");\nvar setNodeElem = /* @__PURE__ */ __name((elem, node) => {\n nodeElems.set(node.id, elem);\n}, \"setNodeElem\");\nvar clear2 = /* @__PURE__ */ __name(() => {\n nodeElems.clear();\n}, \"clear\");\nvar positionNode = /* @__PURE__ */ __name((node) => {\n const el = nodeElems.get(node.id);\n log.trace(\n \"Transforming node\",\n node.diff,\n node,\n \"translate(\" + (node.x - node.width / 2 - 5) + \", \" + node.width / 2 + \")\"\n );\n const padding = 8;\n const diff = node.diff || 0;\n if (node.clusterNode) {\n el.attr(\n \"transform\",\n \"translate(\" + (node.x + diff - node.width / 2) + \", \" + (node.y - node.height / 2 - padding) + \")\"\n );\n } else {\n el.attr(\"transform\", \"translate(\" + node.x + \", \" + node.y + \")\");\n }\n return diff;\n}, \"positionNode\");\n\nexport {\n labelHelper,\n updateNodeBounds,\n createLabel_default,\n isValidShape,\n insertCluster,\n clear,\n insertNode,\n setNodeElem,\n clear2,\n positionNode\n};\n","import 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 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 */\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 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","/**\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';\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","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","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","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;et.ymine.ymin?1:t.xe.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;ei);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)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{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{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;tn%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))),td&&(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;e2){const o=[];for(let e=0;e2*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;a500?.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;o3){const a=[],h=1-s.curveTightness;o.push({op:\"move\",data:[t[1][0],t[1][1]]});for(let e=1;e+21&&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;ni&&(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;s0?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","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","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 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","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","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import 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 toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import {\n __name\n} from \"./chunk-6DBFFHIP.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 */\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","type LogMessage = {\n args: any[]\n time: number\n}\n\nexport type LoggerFn = (message?: any, ...data: any[]) => void\n\nfunction logMessage(...messageArgs: any[]): LogMessage {\n return {\n args: messageArgs,\n time: Date.now(),\n }\n}\n\nclass Logger {\n private _loggerFn: LoggerFn\n public buffer: LogMessage[] = []\n private bufferSize = 50\n private quiet = false\n\n constructor(options = {loggerFn: window.console.log, quiet: false}) {\n this._loggerFn = options.loggerFn\n this.quiet = options.quiet\n }\n\n debug(...args: any[]) {\n this.storeMessage(...args)\n\n if (!this.quiet) {\n this._loggerFn(...args)\n }\n }\n\n /**\n * Store the most recent log message at the end of the message buffer.\n * Resizes the buffer to bufferSize, removing older messages.\n * All operations performed on copies of the buffer array\n * @param {*} Any\n */\n storeMessage(...args: any[]) {\n const bufCopy = this.buffer\n bufCopy.push(logMessage(...args))\n const nextBuffer = bufCopy.slice(-this.bufferSize)\n\n this.buffer = nextBuffer\n }\n\n /**\n * Helper to replay the most recent numMessages in the log buffer\n * @param {number} numMessages? The number of debug / log messages to replay. Defaults to 1\n * @returns the total number of messages in the buffer\n */\n replayMessages(numMessages = 1) {\n const messagesToRead = this.buffer.slice(-numMessages)\n for (const message of messagesToRead) {\n this._loggerFn(`${new Date(message.time)}: `, ...message.args)\n }\n\n return this.buffer.length\n }\n}\n\nexport default Logger\n","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import Logger from './logger'\nimport config from './config'\n\nwindow.Render = window.Render || {}\n\n// Try to call `console.log`, if possible, in the way\n// most likely to invoke pretty-printing\nfunction safeLog(...args: Parameters) {\n if (!('log' in window.console)) {\n return\n }\n\n return window.console.log(...args)\n}\n\nconst logger = new Logger({\n loggerFn: safeLog,\n quiet: config.quiet,\n})\n\nexport {logger}\n\n// @ts-expect-error TS2322 `logger.debug` doesn't fully satisfy the type of\n// `window.debug`, seeing as we need `.buffer` to exist as a static property\n// as well. That despite that being added later here, ts cannot guarantee that\n// this line is safe if it relied on other lines. Type narrowing is a newish\n// concept to typescript, so maybe one day we'll get it — but not today. So lets\n// expect an error than ignore it.\nwindow.debug = logger.debug.bind(logger)\nwindow.debug.buffer = () => logger.buffer\n","export default {\n // Controls whether debug messages display in the console\n quiet: IS_QUIET_MODE,\n}\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","/**\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 unescape from 'lodash.unescape'\nimport type {TopoJSON} from 'topojson-specification'\nimport {MESSAGE_RESPONSE_TYPES, RENDER_FORMATS, STATUS_TYPES} from './constants'\nimport {isDefined, isSameOrigin} from './utils'\nimport LinkNavigator from './link-navigator'\nimport reportErrors from './failbot'\n\nclass InvalidProtocolError extends Error {\n constructor() {\n super('The client:// protocol is invalid.')\n }\n}\n\nclass FailedError extends Error {\n constructor() {\n super('Failed to load content')\n this.message = 'Failed to load content'\n }\n}\n\nwindow.Render = window.Render || {}\n\nconst isClientUrl = (url: string) => /^client:\\/\\//i.exec(url)\n\ntype StatusOptions = {\n allowLinks?: boolean\n initialMessage?: STATUS_TYPES\n}\n\ntype RenderStatusMessage = {\n sent: boolean\n status: STATUS_TYPES\n when: number\n payload: Record | null\n}\n\ntype RenderableLoaderCallbacks = {\n before: (xhr?: XMLHttpRequest, settings?: Record) => void\n success: (data: Data, response: Response) => void\n error: (error: E, xhr: Response) => void\n}\n\ntype RenderableLoaderOptions = {\n attempts?: number\n timeout?: number\n json?: boolean\n}\n\ntype DataResponseTypes = string | ArrayBuffer | TopoJSON | JSON | undefined\n\nconst renderableLoaderDefaults = {\n setStatus: true,\n attempts: 3,\n timeout: 30_000,\n json: true,\n}\n\nconst statusOptionDefaults = {\n allowLinks: false,\n initialMessage: STATUS_TYPES.hello,\n}\n\n/**\n * Responsible for handling communication between the render DOM and it's parent iframe\n *\n * @param format Valid renderable file format @see RENDER_FORMATS\n * @param opts.allowLinks? Should this class allow redirects from link within the render area?\n * @param opts.initial? The initial status message to be communicated\n */\nclass Status {\n acked = false\n format: RENDER_FORMATS\n githubEnv: string | null\n githubHostname: string\n identity: string\n protocol: string\n initialStatusTimeout: NodeJS.Timeout | null\n messages: RenderStatusMessage[]\n\n constructor(format: RENDER_FORMATS, opts: StatusOptions = {}) {\n const options = {...statusOptionDefaults, ...opts}\n\n this.githubHostname = document.body.getAttribute('data-github-hostname') ?? 'github.localhost'\n this.githubEnv = document.body.getAttribute('data-deploy-env') ?? 'development'\n this.format = format\n this.initialStatusTimeout = null\n\n if (options.allowLinks) {\n new LinkNavigator({hasParent: this.haveParent()})\n }\n\n this.identity = window.location.hash.substring(1)\n this.protocol = window.location.protocol\n\n this.messages = [\n {status: STATUS_TYPES.constructor, payload: null, when: Date.now(), sent: true}, // Debugging ctor call timing\n ]\n\n window.addEventListener('message', this.handleMessage)\n\n if (this.haveParent()) {\n this.sendInitial(options.initialMessage, 10, 1000)\n }\n }\n\n /**\n * This function is responsible for communicating the initial status of the renderer back to the parent frame.\n * Necessary as the render JS functionality is embedded in an iframe. This function will attempt to\n * contact its parent frame until it receives a response or exhausts the pool of attempts.\n */\n sendInitial = (initial: STATUS_TYPES, remaining = 10, interval = 1000) => {\n if (this.initialStatusTimeout && (this.acked || remaining < 1)) {\n clearTimeout(this.initialStatusTimeout)\n return\n }\n\n this.initialStatusTimeout = setTimeout(() => this.sendInitial(initial, remaining - 1, interval), interval)\n window.debug(\n `Sending hello. Will try again ${remaining} more times in ${interval / 1000} second intervals until ack'd`,\n )\n return this.set(initial)\n }\n\n // Fired when content is loaded and ready to be displayed.\n #onSuccess = () => {\n this.set(STATUS_TYPES.loaded)\n }\n\n // Fires when requested content fails to load.\n #onError = () => {\n this.set(STATUS_TYPES.error)\n }\n\n #onBeforeSend() {\n return void 0\n }\n\n //# Raw status access\n // Handles whether or not to post a message to the parent window\n // TODO: Rename? The name set is incredibly generic and doesn't really encapsulate\n // what this method does. It also does two things, adding a message to the message list\n // and posting that message?\n set = (status: STATUS_TYPES, payload = {}) => {\n const sent = this.alreadySentStatus(status)\n\n if (isDefined(sent) && ![STATUS_TYPES.hello, STATUS_TYPES.resize].includes(status)) {\n const ago = Math.abs(Date.now() - sent.when)\n return window.debug(`Already set status '${status}' ${ago}ms ago`)\n }\n\n const message = {status, payload, when: Date.now(), sent: false}\n // Don't push duplicate hello messages into our message cache.\n // However, it seems that we do still send duplicate `hello` messages to dotcom.\n if (!sent || status !== STATUS_TYPES.hello) {\n this.messages.push(message)\n }\n\n if (status === STATUS_TYPES.ready) {\n this.onReady()\n }\n\n if (!this.requireAck(status)) {\n message.sent = true\n\n return this.post({\n type: 'render',\n body: status,\n payload,\n })\n }\n }\n\n alreadySentStatus(status: STATUS_TYPES) {\n const found = this.messages.filter(e => e.status === status)\n return found[0]\n }\n\n async #prepareFetchedData(result: Response, options: RenderableLoaderOptions): Promise {\n const contentType = result.headers.get('content-type')\n\n /**\n * using vanilla XMLHTTPRequest / jquery, we were able to force the response\n * header's content-type to a specific value. This was needed for stl files,\n * since they may be a binary file OR ASCII text.\n *\n * We can't force the header with `fetch`, so we need to check for a header that\n * indicates a response with an array buffer data type.\n *\n * This works in all major browsers for CORs requests.\n */\n if (contentType === 'application/octet-stream') {\n return await result.arrayBuffer()\n }\n\n if (!options.json) {\n return await result.text()\n }\n\n try {\n return await result.json()\n } catch (error) {\n // Apparently Mobile Safari requires this, though it is unclear why.\n // Google searches didn't yield fruit\n window.debug(`Error while trying to parse initial JSON: ${error}`)\n window.debug('Attempting to parse htmlDecoded JSON')\n try {\n const maybeJson = await result.text()\n return JSON.parse(unescape(maybeJson))\n } catch {\n this.set(STATUS_TYPES.fatal)\n this.reportStatusError(new FailedError())\n }\n }\n\n return\n }\n\n async load(\n url: string,\n opts: RenderableLoaderOptions & Partial = renderableLoaderDefaults,\n ) {\n if (isClientUrl(url)) {\n this.reportStatusError(new InvalidProtocolError())\n }\n\n this.set(STATUS_TYPES.loading)\n\n const finalOptions = {...renderableLoaderDefaults, ...opts} as RenderableLoaderOptions & RenderableLoaderCallbacks\n finalOptions.attempts = finalOptions.attempts ?? this.clientTimeoutAttempts()\n finalOptions.before = finalOptions.before ?? this.#onBeforeSend\n finalOptions.success = finalOptions.success ?? this.#onSuccess\n finalOptions.error = finalOptions.error ?? this.#onError\n\n finalOptions.before?.()\n\n const requestController = new AbortController()\n const abortTimeoutId = setTimeout(() => {\n requestController.abort()\n }, finalOptions.timeout)\n\n const settings = {\n method: 'GET',\n signal: requestController.signal,\n }\n\n try {\n const response = await fetch(url, settings)\n\n if (response.status < 400) {\n const data = await this.#prepareFetchedData(response, finalOptions)\n this.set(STATUS_TYPES.loaded)\n finalOptions.success(data, response)\n\n return\n }\n } catch {\n window.debug(\"Couldn't load\")\n } finally {\n clearTimeout(abortTimeoutId)\n }\n\n finalOptions.attempts -= 1\n if (finalOptions.attempts > 0) {\n window.debug(`Going to retry up to ${finalOptions.attempts} more times!`)\n setTimeout(() => {\n this.load(url, finalOptions)\n }, 1000)\n } else {\n this.set(STATUS_TYPES.error)\n this.submitGiveup()\n const error = new FailedError()\n finalOptions.error(error, new Response(null, {status: 500}))\n this.reportStatusError(error)\n }\n }\n\n post(msg: {identity?: string; type: string; body: STATUS_TYPES; payload?: Record | null}) {\n msg.identity = msg.identity ?? this.identity\n\n if (!this.haveParent()) {\n window.debug('WARNING: No window.parent: postMessage:', msg)\n return\n }\n\n const parentHostname = document.referrer ? new URL(document.referrer).hostname : ''\n const isSameDomain = isSameOrigin(this.githubHostname, parentHostname)\n\n const targetOrigin = isSameDomain && this.githubEnv !== 'development' ? `${this.protocol}//${parentHostname}` : '*'\n\n window.debug('Render Status:', msg)\n window.parent.postMessage(msg, targetOrigin)\n }\n\n // Called when a status of \"ready\" is set for the first time\n onReady = () => {\n const localTiming: Partial> = {}\n for (const message of this.messages) {\n localTiming[message.status] = message.when\n }\n\n return this.submitTiming('local', localTiming)\n }\n\n onAck = () => {\n window.debug(\"Ack'd, sending saved messages\")\n this.acked = true\n for (const msg of this.messages) {\n if (msg.sent) {\n continue\n }\n\n msg.sent = true\n this.post({\n type: 'render',\n body: msg.status,\n payload: msg.payload,\n })\n }\n }\n\n /**\n * Determines whether the render iframe has sent its initial status message to the\n * parent window\n */\n requireAck = (status = '') => {\n return !this.acked && status !== 'hello'\n }\n\n submitTiming = (origin: string, timing: Record) => {\n window.debug(`Got ${origin} timing: ${this.format} => ${JSON.stringify(timing)}`)\n const baseRenderUrl = document.body.getAttribute('data-render-url')\n const didQueue = navigator.sendBeacon?.(\n `${baseRenderUrl}/stats/timing/${origin}/${this.format}/`,\n JSON.stringify(timing),\n )\n\n if (!didQueue) {\n window.debug('Failed to send remote timing info')\n } else {\n window.debug(`Sent ${origin} timing info:`, timing)\n }\n }\n\n submitGiveup = () => {\n const baseRenderUrl = document.body.getAttribute('data-render-url')\n\n const didQueue = navigator.sendBeacon?.(`${baseRenderUrl}/stats/${this.format}/gave_up`)\n\n if (!didQueue) {\n window.debug('Failed to send give up info')\n } else {\n window.debug('Sent give up status info.')\n }\n }\n\n handleCmd = (cmd: MESSAGE_RESPONSE_TYPES, arg: Record | boolean) => {\n if (cmd === MESSAGE_RESPONSE_TYPES.branding) {\n document.body.classList.remove('is-embedded')\n\n return\n }\n\n const renderableContent = arg as Record\n\n switch (cmd) {\n case MESSAGE_RESPONSE_TYPES.ack:\n if (this.requireAck()) {\n this.onAck()\n }\n\n break\n // this has to match the string in github/github/app/assets/modules/github/behaviors/render-editor.ts\n case MESSAGE_RESPONSE_TYPES.markdown:\n this.trigger(document, MESSAGE_RESPONSE_TYPES.markdown, {\n data: renderableContent.data,\n width: renderableContent.width,\n })\n break\n case MESSAGE_RESPONSE_TYPES.containerSize:\n this.trigger(document, MESSAGE_RESPONSE_TYPES.containerSize, {width: renderableContent.width})\n break\n case MESSAGE_RESPONSE_TYPES.readyAck:\n this.trigger(document, MESSAGE_RESPONSE_TYPES.readyAck)\n break\n case MESSAGE_RESPONSE_TYPES.sandboxReady:\n this.trigger(document, MESSAGE_RESPONSE_TYPES.sandboxReady, {\n content: renderableContent.content,\n scripts: renderableContent.scripts,\n styles: renderableContent.styles,\n })\n break\n default:\n window.debug(`Invalid command '${cmd}':`, arg)\n }\n }\n\n handleMessage = (event: MessageEvent) => {\n const {data, origin} = event\n if (!data || !origin || origin === 'null') {\n return\n }\n\n let originHostname = ''\n try {\n originHostname = new URL(origin).host\n } catch (e) {\n window.debug('Could not construct URL from origin', origin)\n if (e instanceof Error) this.reportStatusError(e)\n }\n\n if (\n !isSameOrigin(this.githubHostname, originHostname) &&\n // special case: allow local IP address for local development\n !(this.githubHostname === 'github.localhost' && isSameOrigin('127.0.0.1', originHostname))\n ) {\n return\n }\n\n const {type, identity, body} = (() => {\n try {\n return JSON.parse(data)\n } catch {\n return data\n }\n })()\n if (!type || !body) {\n return\n }\n if (identity && identity !== this.identity) {\n return window.debug(`Message has identity '${identity}', expected '${this.identity}'.`)\n }\n\n switch (type) {\n case 'render:timing': {\n const {timing, format} = body\n if (!timing || !format) {\n return window.debug('Malformed timing message:', body)\n }\n if (format !== this.format) {\n return window.debug(`Format mismatch: got '${format}' expected '${this.format}'`)\n }\n return this.submitTiming('remote', timing)\n }\n case 'render:cmd': {\n const {cmd} = body\n const arg = body[cmd]\n if (isDefined(cmd) && isDefined(arg)) {\n return this.handleCmd(cmd, arg)\n }\n break\n }\n default:\n return window.debug(`Unknown message type: ${type}`)\n }\n }\n\n // Is the viewscreen renderer running inside an iframe?\n haveParent = () => {\n return window.parent !== window\n }\n\n clientTimeoutAttempts() {\n return Number(document.body.getAttribute('data-client-timeout-attempts'))\n }\n\n trigger(target: Document | HTMLElement, name: string, data = {}) {\n const event = new CustomEvent(name, {detail: {...data}})\n target.dispatchEvent(event)\n }\n\n // Report a failed status error to Sentry\n reportStatusError(error: Error) {\n reportErrors(\n new ErrorEvent('status', {\n error,\n filename: 'status.ts',\n message: error.message,\n }),\n )\n }\n}\n\nexport default Status\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","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","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\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","var UNKNOWN_FUNCTION = '';\n/**\n * This parses the different stack traces and puts them into one format\n * This borrows heavily from TraceKit (https://github.com/csnover/TraceKit)\n */\n\nfunction parse(stackString) {\n var lines = stackString.split('\\n');\n return lines.reduce(function (stack, line) {\n var parseResult = parseChrome(line) || parseWinjs(line) || parseGecko(line) || parseNode(line) || parseJSC(line);\n\n if (parseResult) {\n stack.push(parseResult);\n }\n\n return stack;\n }, []);\n}\nvar chromeRe = /^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack||\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nvar chromeEvalRe = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nfunction parseChrome(line) {\n var parts = chromeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n var submatch = chromeEvalRe.exec(parts[2]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n\n parts[3] = submatch[2]; // line\n\n parts[4] = submatch[3]; // column\n }\n\n return {\n file: !isNative ? parts[2] : null,\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: isNative ? [parts[2]] : [],\n lineNumber: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null\n };\n}\n\nvar winjsRe = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseWinjs(line) {\n var parts = winjsRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n}\n\nvar geckoRe = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar geckoEvalRe = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nfunction parseGecko(line) {\n var parts = geckoRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n var submatch = geckoEvalRe.exec(parts[3]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line number\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = null; // no column when eval\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: parts[2] ? parts[2].split(',') : [],\n lineNumber: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null\n };\n}\n\nvar javaScriptCoreRe = /^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i;\n\nfunction parseJSC(line) {\n var parts = javaScriptCoreRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[4],\n column: parts[5] ? +parts[5] : null\n };\n}\n\nvar nodeRe = /^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseNode(line) {\n var parts = nodeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n}\n\nexport { parse };\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","!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()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)= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// Reports uncaught JS errors to Sentry\nimport {isDefined} from './utils'\nimport {parse} from 'stacktrace-parser'\n\ntype NavigationExtraInfo = Record\ntype NavigationDetails = {\n type: string\n url: string\n state: History['state']\n info: NavigationExtraInfo\n}\n\nconst baseContext = {originalHistoryState: JSON.stringify(window.history.state)}\nconst ERROR_METADATA_KEYS = ['commit', 'repository_id', 'repository_type', 'browser', 'version']\n\n/**\n * Firefox (and perhaps other browsers) will occasionally return a null\n * value for the error property on an error event.\n * It is unclear why this would happen, but it leads to some confusing error reporting\n * in Sentry\n *\n * @link https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror\n */\nconst errorFallback = {\n name: 'NullErrorEvent',\n stack: '',\n failbotContext: {},\n}\n\n/**\n * Parses the url of the renderable being displayed for metadata that can help us\n * troubleshoot client JS errors without exposing PII.\n * This data is currently being proxied to failbotg from the go server.\n *\n * @param locationData object adhering to the Location interface\n * @returns Map of additional error data we want to supply to sentry\n */\nfunction getErrorMetadata(locationData: Location) {\n const {pathname, search} = locationData\n const pathParts = pathname.split('/')\n const [action, format] = pathParts.slice(1)\n const urlParams = new URLSearchParams(search)\n\n const paramsMetadata = Array.from(urlParams.entries()).reduce((memo, pair) => {\n if (ERROR_METADATA_KEYS.includes(pair[0])) {\n memo = {\n ...memo,\n [pair[0]]: pair[1],\n }\n }\n\n return memo\n }, {})\n\n return {...paramsMetadata, format, action}\n}\n\n/**\n * Many errors are emitted from browser extensions, e.g. users\n * with TexAllTheThings, which attempts to load a version of mathjax.\n * That extension doesn't handle load failures and results in errors\n * being reported to us that we:\n * * cannot control\n * * do not affect the rendering of the notebook\n * So, we ignore them when detected.\n * @param filename\n * @returns boolean\n */\nfunction isBrowserExtension(filename: string = '') {\n return filename.includes('chrome-extension://') || filename.includes('moz-extension://')\n}\n\nconst loadTime = new Date().getTime()\n\n// Flag when page is unloaded\nlet unloaded = false\n\nfunction flagUnloaded() {\n unloaded = true\n}\n\nfunction flagLoaded() {\n unloaded = false\n}\n\nfunction reportErrors(event: ErrorEvent) {\n // Do this first so we can skip all the extra, unnecessary operations\n if (!reportable(event) && event.type !== 'submit') {\n return\n }\n const {message, filename, lineno, error} = event\n const safeError = error || errorFallback\n const {stack, name, failbotContext} = safeError\n const preprocessedStack = parse(stack ?? '')\n const stacktrace = preprocessedStack\n .map(frame => ({\n filename: frame.file || '',\n function: String(frame.methodName),\n lineno: (frame.lineNumber || 0).toString(),\n colno: (frame.column || 0).toString(),\n }))\n .reverse()\n const exceptionDetail = [\n {\n type: name,\n value: message,\n stacktrace,\n },\n ]\n\n const context = {\n message,\n filename,\n lineno,\n url: window.location.href,\n readyState: document.readyState,\n referrer: document.referrer,\n stack: safeError.stack,\n historyState: JSON.stringify(window.history.state),\n timeSinceLoad: Math.round(new Date().getTime() - loadTime),\n extensionScripts: JSON.stringify(extensionScripts().sort()),\n navigations: JSON.stringify(getNavigations()),\n exceptionDetail,\n platform: 'javascript',\n ...getErrorMetadata(window.location),\n ...failbotContext,\n ...baseContext,\n }\n\n // Attach any logging info we have\n context.logging = (() => {\n try {\n const debugMessages = (isDefined(window.debug) ? window.debug.buffer() : undefined) || []\n return JSON.stringify(debugMessages)\n } catch {\n return\n }\n })()\n\n // Report errors to app\n const viewscreenUrl = document.body.getAttribute('data-render-url')\n\n fetch(`${viewscreenUrl}/_errors`, {\n method: 'POST',\n headers: {'Content-Type': 'application/json; charset=utf-8'},\n body: JSON.stringify(context),\n })\n}\n\nconst reportable = (function () {\n let errorsReported = 0\n\n return function (event: ErrorEvent) {\n const {lineno, error, filename, message} = event\n const errorStack = error ? error.stack : undefined\n\n // Only report errors if we can get backtraces & line numbers\n if (!errorStack || !lineno) {\n return false\n }\n\n // Ignore errors raised when browsers cancel loading resources after\n // links are clicked or the page is stopped.\n if (unloaded) {\n return false\n }\n\n if (isBrowserExtension(filename) || isBrowserExtension(errorStack)) {\n return false\n }\n\n if (message.includes('Failed to load content') || errorStack?.includes('Failed to load content')) {\n return false\n }\n\n // Report a max of 10 errors per user per page load. This way if something is\n // generating errors continuously, we won't flood Haystack with duplicates.\n if (errorsReported >= 10) {\n return false\n }\n errorsReported++\n\n return true\n }\n})()\n\nconst extensionScripts = () =>\n (() => {\n const result = []\n const scripts = Array.from(document.querySelectorAll('script'))\n for (const script of scripts) {\n if (/^(?:chrome-extension|file):/.test(script.src)) {\n result.push(script.src)\n }\n }\n return result\n })()\n\n// Add the just-completed navigation to session storage to be included in\n// needles for debugging.\nfunction pushNavigation(loadType: string, info: NavigationExtraInfo = {}) {\n const navigations = getNavigations()\n navigations.push({type: loadType, url: window.location.href, state: window.history.state, info})\n return setNavigations(navigations)\n}\n\nconst NAVIGATIONS_KEY = 'navigations'\n\n// Retrieve all past navigations from the current session.\nfunction getNavigations() {\n const json = (() => {\n try {\n return sessionStorage.getItem(NAVIGATIONS_KEY)\n } catch {\n return\n }\n })()\n if (json) {\n return JSON.parse(json)\n } else {\n return []\n }\n}\n\n// Store the current session's navigations.\nfunction setNavigations(navigations: NavigationDetails[]) {\n try {\n return sessionStorage.setItem(NAVIGATIONS_KEY, JSON.stringify(navigations))\n } catch {\n return\n }\n}\n\n// Record all navigations in this session for inclusion in needles.\npushNavigation('load')\n\nwindow.addEventListener('hashchange', event =>\n pushNavigation('hashchange', {oldURL: event.oldURL, newURL: event.newURL}),\n)\nwindow.addEventListener('popstate', event => pushNavigation('popstate', {eventState: event.state}))\nwindow.addEventListener('pageshow', flagLoaded)\nwindow.addEventListener('pagehide', flagUnloaded)\nwindow.addEventListener('error', reportErrors)\n\ndocument.addEventListener('pjax:success', () => pushNavigation('pjax:success'))\ndocument.addEventListener('pjax:popstate', (event: PJaxPopStateEvent) =>\n pushNavigation('pjax:popstate', {pjaxDirection: event.direction, pjaxState: event.state}),\n)\n\nexport default reportErrors\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","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match HTML entities and HTML characters. */\nvar reEscapedHtml = /&(?:amp|lt|gt|quot|#39|#96);/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source);\n\n/** Used to map HTML entities to characters. */\nvar htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\",\n '`': '`'\n};\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\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\n/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\nvar unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\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/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\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 && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or 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 a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * The inverse of `_.escape`; this method converts the HTML entities\n * `&`, `<`, `>`, `"`, `'`, and ``` in `string` to\n * their corresponding characters.\n *\n * **Note:** No other HTML entities are unescaped. To unescape additional\n * HTML entities use a third-party library like [_he_](https://mths.be/he).\n *\n * @static\n * @memberOf _\n * @since 0.6.0\n * @category String\n * @param {string} [string=''] The string to unescape.\n * @returns {string} Returns the unescaped string.\n * @example\n *\n * _.unescape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\nfunction unescape(string) {\n string = toString(string);\n return (string && reHasEscapedHtml.test(string))\n ? string.replace(reEscapedHtml, unescapeHtmlChar)\n : string;\n}\n\nmodule.exports = unescape;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","const data = require('./build/data.json')\nconst objectAssign = require('object-assign')\n\nconst DEFAULT_HEIGHT = 16\n\nfor (const key of Object.keys(data)) {\n // Returns a string representation of html attributes\n const htmlAttributes = (icon, defaultOptions, options) => {\n const attributes = []\n const attrObj = objectAssign({}, defaultOptions, options)\n\n // If the user passed in options\n if (options) {\n // If any of the width or height is passed in\n if (options['width'] || options['height']) {\n attrObj['width'] = options['width']\n ? options['width']\n : (parseInt(options['height']) * defaultOptions['width']) / defaultOptions['height']\n attrObj['height'] = options['height']\n ? options['height']\n : (parseInt(options['width']) * defaultOptions['height']) / defaultOptions['width']\n }\n\n // If the user passed in class\n if (options['class']) {\n attrObj['class'] = `octicon octicon-${key} ${options['class']}`\n attrObj['class'].trim()\n }\n\n // If the user passed in aria-label\n if (options['aria-label']) {\n attrObj['aria-label'] = options['aria-label']\n attrObj['role'] = 'img'\n\n // Un-hide the icon\n delete attrObj['aria-hidden']\n }\n }\n\n for (const option of Object.keys(attrObj)) {\n attributes.push(`${option}=\"${attrObj[option]}\"`)\n }\n\n return attributes.join(' ').trim()\n }\n\n // Set the symbol for easy access\n data[key].symbol = key\n\n // Set options for each icon height\n for (const height of Object.keys(data[key].heights)) {\n data[key].heights[height].options = {\n version: '1.1',\n width: data[key].heights[height].width,\n height: parseInt(height),\n viewBox: `0 0 ${data[key].heights[height].width} ${height}`,\n class: `octicon octicon-${key}`,\n 'aria-hidden': 'true'\n }\n }\n\n // Function to return an SVG object\n data[key].toSVG = function (options = {}) {\n const {height, width} = options\n const naturalHeight = closestNaturalHeight(Object.keys(data[key].heights), height || width || DEFAULT_HEIGHT)\n return `${\n data[key].heights[naturalHeight].path\n }`\n }\n}\n\n// Import data into exports\nmodule.exports = data\n\nfunction closestNaturalHeight(naturalHeights, height) {\n return naturalHeights\n .map(naturalHeight => parseInt(naturalHeight, 10))\n .reduce((acc, naturalHeight) => (naturalHeight <= height ? naturalHeight : acc), naturalHeights[0])\n}\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 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","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\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 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 */\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","/** 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 setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","/* 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 {DEFAULT_DOCS_LINK_HOSTNAME} from './constants'\n\n/**\n * Determine if a value is nullish (undefined or null)\n * @param {*} value The value to check\n * @returns boolean\n */\nexport function isDefined(value?: T): value is NonNullable {\n return value !== null && value !== undefined && typeof value !== 'undefined'\n}\n\nexport function onDocumentReady(initializer: () => void) {\n if (document.readyState === 'complete') {\n initializer()\n } else {\n document.addEventListener('DOMContentLoaded', initializer)\n }\n}\n\nexport function decodeHTML(html: string) {\n // DOMParser won't run javascript and just returns text,\n // so this should be safe.\n const doc = new DOMParser().parseFromString(html, 'text/html')\n return doc.documentElement.textContent ?? ''\n}\n\nclass InvariantViolationError extends Error {}\n\nexport function invariant(condition: any, message?: string): asserts condition {\n if (condition) return\n\n throw new InvariantViolationError(message ?? 'Invariant violation')\n}\n\nexport const assertElement = (node: any): node is Element => node instanceof Element\n\nexport const assertHTMLElement = (node: Element | ParentNode | HTMLElement | null): node is HTMLElement =>\n node instanceof HTMLElement\n\nexport const assertSVGElement = (node: SVGElement | SVGSVGElement | null): node is SVGElement =>\n node instanceof SVGElement\n\nexport const getGitHubDocsHostname = () =>\n document.body.getAttribute('data-github-docs-hostname') || DEFAULT_DOCS_LINK_HOSTNAME\n\nconst getDomainName = (hostname: string) => hostname.split('.').slice(-2).join('.').toLowerCase()\n\n/**\n * Determine if the source domain has the same origin as the host domain. To match, the source domain must contain\n * have the same domain name (ignoring subdomains) as the host domain.\n */\nexport const isSameOrigin = (targetHostname: string, sourceHostname: string) =>\n getDomainName(targetHostname) === getDomainName(sourceHostname)\n\n/** Adds `target=\"_parent\"` (if not already set to something else) to all links in this node. */\nexport const openLinksInParent = (node: Element) => {\n for (const link of node.querySelectorAll('a'))\n if (!link.hasAttribute('_target')) link.setAttribute('target', '_parent')\n}\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 overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","/**\n * marked v13.0.3 - a markdown parser\n * Copyright (c) 2011-2024, 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\n/**\n * Gets the original marked default options.\n */\nfunction _getDefaults() {\n return {\n async: false,\n breaks: false,\n extensions: null,\n gfm: true,\n hooks: null,\n pedantic: false,\n renderer: null,\n silent: false,\n tokenizer: null,\n walkTokens: null,\n };\n}\nlet _defaults = _getDefaults();\nfunction changeDefaults(newDefaults) {\n _defaults = newDefaults;\n}\n\n/**\n * Helpers\n */\nconst escapeTest = /[&<>\"']/;\nconst escapeReplace = new RegExp(escapeTest.source, 'g');\nconst escapeTestNoEncode = /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/;\nconst escapeReplaceNoEncode = new RegExp(escapeTestNoEncode.source, 'g');\nconst escapeReplacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n};\nconst getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape$1(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n }\n else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n return html;\n}\nconst unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\nfunction unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, (_, n) => {\n n = n.toLowerCase();\n if (n === 'colon')\n return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x'\n ? String.fromCharCode(parseInt(n.substring(2), 16))\n : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\nconst caret = /(^|[^\\[])\\^/g;\nfunction edit(regex, opt) {\n let source = typeof regex === 'string' ? regex : regex.source;\n opt = opt || '';\n const obj = {\n replace: (name, val) => {\n let valSource = typeof val === 'string' ? val : val.source;\n valSource = valSource.replace(caret, '$1');\n source = source.replace(name, valSource);\n return obj;\n },\n getRegex: () => {\n return new RegExp(source, opt);\n },\n };\n return obj;\n}\nfunction cleanUrl(href) {\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n }\n catch {\n return null;\n }\n return href;\n}\nconst noopTest = { exec: () => null };\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(/\\|/g, (match, offset, str) => {\n let escaped = false;\n let curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\')\n escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n }\n else {\n // add space before unescaped |\n return ' |';\n }\n }), cells = row.split(/ \\|/);\n let i = 0;\n // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n if (!cells[0].trim()) {\n cells.shift();\n }\n if (cells.length > 0 && !cells[cells.length - 1].trim()) {\n cells.pop();\n }\n if (count) {\n if (cells.length > count) {\n cells.splice(count);\n }\n else {\n while (cells.length < count)\n cells.push('');\n }\n }\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n/**\n * Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n * /c*$/ is vulnerable to REDOS.\n *\n * @param str\n * @param c\n * @param invert Remove suffix of non-c chars instead. Default falsey.\n */\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n }\n else if (currChar !== c && invert) {\n suffLen++;\n }\n else {\n break;\n }\n }\n return str.slice(0, l - suffLen);\n}\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n let level = 0;\n for (let i = 0; i < str.length; i++) {\n if (str[i] === '\\\\') {\n i++;\n }\n else if (str[i] === b[0]) {\n level++;\n }\n else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\nfunction outputLink(cap, link, raw, lexer) {\n const href = link.href;\n const title = link.title ? escape$1(link.title) : null;\n const text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n if (cap[0].charAt(0) !== '!') {\n lexer.state.inLink = true;\n const token = {\n type: 'link',\n raw,\n href,\n title,\n text,\n tokens: lexer.inlineTokens(text),\n };\n lexer.state.inLink = false;\n return token;\n }\n return {\n type: 'image',\n raw,\n href,\n title,\n text: escape$1(text),\n };\n}\nfunction indentCodeCompensation(raw, text) {\n const matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n if (matchIndentToCode === null) {\n return text;\n }\n const indentToCode = matchIndentToCode[1];\n return text\n .split('\\n')\n .map(node => {\n const matchIndentInNode = node.match(/^\\s+/);\n if (matchIndentInNode === null) {\n return node;\n }\n const [indentInNode] = matchIndentInNode;\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n return node;\n })\n .join('\\n');\n}\n/**\n * Tokenizer\n */\nclass _Tokenizer {\n options;\n rules; // set by the lexer\n lexer; // set by the lexer\n constructor(options) {\n this.options = options || _defaults;\n }\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0],\n };\n }\n }\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(text, '\\n')\n : text,\n };\n }\n }\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || '');\n return {\n type: 'code',\n raw,\n lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, '$1') : cap[2],\n text,\n };\n }\n }\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n // remove trailing #s\n if (/#$/.test(text)) {\n const trimmed = rtrim(text, '#');\n if (this.options.pedantic) {\n text = trimmed.trim();\n }\n else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text,\n tokens: this.lexer.inline(text),\n };\n }\n }\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: 'hr',\n raw: rtrim(cap[0], '\\n'),\n };\n }\n }\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n let lines = rtrim(cap[0], '\\n').split('\\n');\n let raw = '';\n let text = '';\n const tokens = [];\n while (lines.length > 0) {\n let inBlockquote = false;\n const currentLines = [];\n let i;\n for (i = 0; i < lines.length; i++) {\n // get lines up to a continuation\n if (/^ {0,3}>/.test(lines[i])) {\n currentLines.push(lines[i]);\n inBlockquote = true;\n }\n else if (!inBlockquote) {\n currentLines.push(lines[i]);\n }\n else {\n break;\n }\n }\n lines = lines.slice(i);\n const currentRaw = currentLines.join('\\n');\n const currentText = currentRaw\n // precede setext continuation with 4 spaces so it isn't a setext\n .replace(/\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g, '\\n $1')\n .replace(/^ {0,3}>[ \\t]?/gm, '');\n raw = raw ? `${raw}\\n${currentRaw}` : currentRaw;\n text = text ? `${text}\\n${currentText}` : currentText;\n // parse blockquote lines as top level tokens\n // merge paragraphs if this is a continuation\n const top = this.lexer.state.top;\n this.lexer.state.top = true;\n this.lexer.blockTokens(currentText, tokens, true);\n this.lexer.state.top = top;\n // if there is no continuation then we are done\n if (lines.length === 0) {\n break;\n }\n const lastToken = tokens[tokens.length - 1];\n if (lastToken?.type === 'code') {\n // blockquote continuation cannot be preceded by a code block\n break;\n }\n else if (lastToken?.type === 'blockquote') {\n // include continuation in nested blockquote\n const oldToken = lastToken;\n const newText = oldToken.raw + '\\n' + lines.join('\\n');\n const newToken = this.blockquote(newText);\n tokens[tokens.length - 1] = newToken;\n raw = raw.substring(0, raw.length - oldToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.text.length) + newToken.text;\n break;\n }\n else if (lastToken?.type === 'list') {\n // include continuation in nested list\n const oldToken = lastToken;\n const newText = oldToken.raw + '\\n' + lines.join('\\n');\n const newToken = this.list(newText);\n tokens[tokens.length - 1] = newToken;\n raw = raw.substring(0, raw.length - lastToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.raw.length) + newToken.raw;\n lines = newText.substring(tokens[tokens.length - 1].raw.length).split('\\n');\n continue;\n }\n }\n return {\n type: 'blockquote',\n raw,\n tokens,\n text,\n };\n }\n }\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n const list = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: [],\n };\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n }\n // Get next list item\n const itemRegex = new RegExp(`^( {0,3}${bull})((?:[\\t ][^\\\\n]*)?(?:\\\\n|$))`);\n let endsWithBlankLine = false;\n // Check if current bullet point can start a new List Item\n while (src) {\n let endEarly = false;\n let raw = '';\n let itemContents = '';\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n if (this.rules.block.hr.test(src)) { // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n raw = cap[0];\n src = src.substring(raw.length);\n let line = cap[2].split('\\n', 1)[0].replace(/^\\t+/, (t) => ' '.repeat(3 * t.length));\n let nextLine = src.split('\\n', 1)[0];\n let blankLine = !line.trim();\n let indent = 0;\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimStart();\n }\n else if (blankLine) {\n indent = cap[1].length + 1;\n }\n else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n if (blankLine && /^ *$/.test(nextLine)) { // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n if (!endEarly) {\n const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \\t][^\\\\n]*)?(?:\\\\n|$))`);\n const hrRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`);\n const fencesBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\\`\\`\\`|~~~)`);\n const headingBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`);\n // Check if following lines should be included in List Item\n while (src) {\n const rawLine = src.split('\\n', 1)[0];\n nextLine = rawLine;\n // Re-align to follow commonmark nesting rules\n if (this.options.pedantic) {\n nextLine = nextLine.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');\n }\n // End list item if found code fences\n if (fencesBeginRegex.test(nextLine)) {\n break;\n }\n // End list item if found start of new heading\n if (headingBeginRegex.test(nextLine)) {\n break;\n }\n // End list item if found start of new bullet\n if (nextBulletRegex.test(nextLine)) {\n break;\n }\n // Horizontal rule found\n if (hrRegex.test(src)) {\n break;\n }\n if (nextLine.search(/[^ ]/) >= indent || !nextLine.trim()) { // Dedent if possible\n itemContents += '\\n' + nextLine.slice(indent);\n }\n else {\n // not enough indentation\n if (blankLine) {\n break;\n }\n // paragraph continuation unless last line was a different block level element\n if (line.search(/[^ ]/) >= 4) { // indented code block\n break;\n }\n if (fencesBeginRegex.test(line)) {\n break;\n }\n if (headingBeginRegex.test(line)) {\n break;\n }\n if (hrRegex.test(line)) {\n break;\n }\n itemContents += '\\n' + nextLine;\n }\n if (!blankLine && !nextLine.trim()) { // Check if current line is blank\n blankLine = true;\n }\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n line = nextLine.slice(indent);\n }\n }\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n }\n else if (/\\n *\\n *$/.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n let istask = null;\n let ischecked;\n // Check for task list items\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== '[ ] ';\n itemContents = itemContents.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n list.items.push({\n type: 'list_item',\n raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents,\n tokens: [],\n });\n list.raw += raw;\n }\n // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n list.items[list.items.length - 1].raw = list.items[list.items.length - 1].raw.trimEnd();\n list.items[list.items.length - 1].text = list.items[list.items.length - 1].text.trimEnd();\n list.raw = list.raw.trimEnd();\n // Item child tokens handled here at end because we needed to have the final item to trim it first\n for (let i = 0; i < list.items.length; i++) {\n this.lexer.state.top = false;\n list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n if (!list.loose) {\n // Check if list should be loose\n const spacers = list.items[i].tokens.filter(t => t.type === 'space');\n const hasMultipleLineBreaks = spacers.length > 0 && spacers.some(t => /\\n.*\\n/.test(t.raw));\n list.loose = hasMultipleLineBreaks;\n }\n }\n // Set all items to loose if list is loose\n if (list.loose) {\n for (let i = 0; i < list.items.length; i++) {\n list.items[i].loose = true;\n }\n }\n return list;\n }\n }\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: 'html',\n block: true,\n raw: cap[0],\n pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style',\n text: cap[0],\n };\n return token;\n }\n }\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n const tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n const href = cap[2] ? cap[2].replace(/^<(.*)>$/, '$1').replace(this.rules.inline.anyPunctuation, '$1') : '';\n const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, '$1') : cap[3];\n return {\n type: 'def',\n tag,\n raw: cap[0],\n href,\n title,\n };\n }\n }\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (!cap) {\n return;\n }\n if (!/[:|]/.test(cap[2])) {\n // delimiter row must have a pipe (|) or colon (:) otherwise it is a setext heading\n return;\n }\n const headers = splitCells(cap[1]);\n const aligns = cap[2].replace(/^\\||\\| *$/g, '').split('|');\n const rows = cap[3] && cap[3].trim() ? cap[3].replace(/\\n[ \\t]*$/, '').split('\\n') : [];\n const item = {\n type: 'table',\n raw: cap[0],\n header: [],\n align: [],\n rows: [],\n };\n if (headers.length !== aligns.length) {\n // header and align columns must be equal, rows can be different.\n return;\n }\n for (const align of aligns) {\n if (/^ *-+: *$/.test(align)) {\n item.align.push('right');\n }\n else if (/^ *:-+: *$/.test(align)) {\n item.align.push('center');\n }\n else if (/^ *:-+ *$/.test(align)) {\n item.align.push('left');\n }\n else {\n item.align.push(null);\n }\n }\n for (let i = 0; i < headers.length; i++) {\n item.header.push({\n text: headers[i],\n tokens: this.lexer.inline(headers[i]),\n header: true,\n align: item.align[i],\n });\n }\n for (const row of rows) {\n item.rows.push(splitCells(row, item.header.length).map((cell, i) => {\n return {\n text: cell,\n tokens: this.lexer.inline(cell),\n header: false,\n align: item.align[i],\n };\n }));\n }\n return item;\n }\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1],\n tokens: this.lexer.inline(cap[1]),\n };\n }\n }\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const text = cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1];\n return {\n type: 'paragraph',\n raw: cap[0],\n text,\n tokens: this.lexer.inline(text),\n };\n }\n }\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n return {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: this.lexer.inline(cap[0]),\n };\n }\n }\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: escape$1(cap[1]),\n };\n }\n }\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && /^/i.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n }\n else if (this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n return {\n type: 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n block: false,\n text: cap[0],\n };\n }\n }\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && /^$/.test(trimmedUrl))) {\n return;\n }\n // ending angle bracket cannot be escaped\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n }\n else {\n // find closing parenthesis\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n let href = cap[2];\n let title = '';\n if (this.options.pedantic) {\n // split pedantic href and title\n const link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n if (link) {\n href = link[1];\n title = link[3];\n }\n }\n else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n href = href.trim();\n if (/^$/.test(trimmedUrl))) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n }\n else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline.anyPunctuation, '$1') : href,\n title: title ? title.replace(this.rules.inline.anyPunctuation, '$1') : title,\n }, cap[0], this.lexer);\n }\n }\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src))\n || (cap = this.rules.inline.nolink.exec(src))) {\n const linkString = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n const link = links[linkString.toLowerCase()];\n if (!link) {\n const text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text,\n };\n }\n return outputLink(cap, link, cap[0], this.lexer);\n }\n }\n emStrong(src, maskedSrc, prevChar = '') {\n let match = this.rules.inline.emStrongLDelim.exec(src);\n if (!match)\n return;\n // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n if (match[3] && prevChar.match(/[\\p{L}\\p{N}]/u))\n return;\n const nextChar = match[1] || match[2] || '';\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n // unicode Regex counts emoji as 1 char; spread into array for proper count (used multiple times below)\n const lLength = [...match[0]].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n const endReg = match[0][0] === '*' ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;\n endReg.lastIndex = 0;\n // Clip maskedSrc to same section of string as src (move to lexer?)\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n if (!rDelim)\n continue; // skip single * in __abc*abc__\n rLength = [...rDelim].length;\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n }\n else if (match[5] || match[6]) { // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n delimTotal -= rLength;\n if (delimTotal > 0)\n continue; // Haven't found enough closing delimiters\n // Remove extra characters. *a*** -> *a*\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n // char length can be >1 for unicode characters;\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\n // Create `em` if smallest delimiter has odd char count. *a***\n if (Math.min(lLength, rLength) % 2) {\n const text = raw.slice(1, -1);\n return {\n type: 'em',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text),\n };\n }\n // Create 'strong' if smallest delimiter has even char count. **a***\n const text = raw.slice(2, -2);\n return {\n type: 'strong',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text),\n };\n }\n }\n }\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(/\\n/g, ' ');\n const hasNonSpaceChars = /[^ ]/.test(text);\n const hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n text = escape$1(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text,\n };\n }\n }\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: 'br',\n raw: cap[0],\n };\n }\n }\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2]),\n };\n }\n }\n autolink(src) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === '@') {\n text = escape$1(cap[1]);\n href = 'mailto:' + text;\n }\n else {\n text = escape$1(cap[1]);\n href = text;\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text,\n },\n ],\n };\n }\n }\n url(src) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === '@') {\n text = escape$1(cap[0]);\n href = 'mailto:' + text;\n }\n else {\n // do extended autolink path validation\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? '';\n } while (prevCapZero !== cap[0]);\n text = escape$1(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + cap[0];\n }\n else {\n href = cap[0];\n }\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text,\n },\n ],\n };\n }\n }\n inlineText(src) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n let text;\n if (this.lexer.state.inRawBlock) {\n text = cap[0];\n }\n else {\n text = escape$1(cap[0]);\n }\n return {\n type: 'text',\n raw: cap[0],\n text,\n };\n }\n }\n}\n\n/**\n * Block-Level Grammar\n */\nconst newline = /^(?: *(?:\\n|$))+/;\nconst blockCode = /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/;\nconst fences = /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/;\nconst hr = /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/;\nconst heading = /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/;\nconst bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nconst lheading = edit(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/)\n .replace(/bull/g, bullet) // lists can interrupt\n .replace(/blockCode/g, / {4}/) // indented code blocks can interrupt\n .replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/) // fenced code blocks can interrupt\n .replace(/blockquote/g, / {0,3}>/) // blockquote can interrupt\n .replace(/heading/g, / {0,3}#{1,6}/) // ATX heading can interrupt\n .replace(/html/g, / {0,3}<[^\\n>]+>\\n/) // block html can interrupt\n .getRegex();\nconst _paragraph = /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/;\nconst blockText = /^[^\\n]+/;\nconst _blockLabel = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nconst def = edit(/^ {0,3}\\[(label)\\]: *(?:\\n *)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n *)?| *\\n *)(title))? *(?:\\n+|$)/)\n .replace('label', _blockLabel)\n .replace('title', /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/)\n .getRegex();\nconst list = edit(/^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/)\n .replace(/bull/g, bullet)\n .getRegex();\nconst _tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title'\n + '|tr|track|ul';\nconst _comment = /|$))/;\nconst html = edit('^ {0,3}(?:' // optional indentation\n + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|\\\\n*|$)' // (4)\n + '|\\\\n*|$)' // (5)\n + '|)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n + '|(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')', 'i')\n .replace('comment', _comment)\n .replace('tag', _tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\nconst paragraph = edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\nconst blockquote = edit(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/)\n .replace('paragraph', paragraph)\n .getRegex();\n/**\n * Normal Block Grammar\n */\nconst blockNormal = {\n blockquote,\n code: blockCode,\n def,\n fences,\n heading,\n hr,\n html,\n lheading,\n list,\n newline,\n paragraph,\n table: noopTest,\n text: blockText,\n};\n/**\n * GFM Block Grammar\n */\nconst gfmTable = edit('^ *([^\\\\n ].*)\\\\n' // Header\n + ' {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)') // Cells\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('blockquote', ' {0,3}>')\n .replace('code', ' {4}[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\nconst blockGfm = {\n ...blockNormal,\n table: gfmTable,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs\n .replace('table', gfmTable) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex(),\n};\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\nconst blockPedantic = {\n ...blockNormal,\n html: edit('^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', _comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', lheading)\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .replace('|tag', '')\n .getRegex(),\n};\n/**\n * Inline-Level Grammar\n */\nconst escape = /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/;\nconst inlineCode = /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/;\nconst br = /^( {2,}|\\\\)\\n(?!\\s*$)/;\nconst inlineText = /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\\nconst blockSkip = /\\[[^[\\]]*?\\]\\([^\\(\\)]*?\\)|`[^`]*?`|<[^<>]*?>/g;\nconst emStrongLDelim = edit(/^(?:\\*+(?:((?!\\*)[punct])|[^\\s*]))|^_+(?:((?!_)[punct])|([^\\s_]))/, 'u')\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst emStrongRDelimAst = edit('^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)' // Skip orphan inside strong\n + '|[^*]+(?=[^*])' // Consume to delim\n + '|(?!\\\\*)[punct](\\\\*+)(?=[\\\\s]|$)' // (1) #*** can only be a Right Delimiter\n + '|[^punct\\\\s](\\\\*+)(?!\\\\*)(?=[punct\\\\s]|$)' // (2) a***#, a*** can only be a Right Delimiter\n + '|(?!\\\\*)[punct\\\\s](\\\\*+)(?=[^punct\\\\s])' // (3) #***a, ***a can only be Left Delimiter\n + '|[\\\\s](\\\\*+)(?!\\\\*)(?=[punct])' // (4) ***# can only be Left Delimiter\n + '|(?!\\\\*)[punct](\\\\*+)(?!\\\\*)(?=[punct])' // (5) #***# can be either Left or Right Delimiter\n + '|[^punct\\\\s](\\\\*+)(?=[^punct\\\\s])', 'gu') // (6) a***a can be either Left or Right Delimiter\n .replace(/punct/g, _punctuation)\n .getRegex();\n// (6) Not allowed for _\nconst emStrongRDelimUnd = edit('^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)' // Skip orphan inside strong\n + '|[^_]+(?=[^_])' // Consume to delim\n + '|(?!_)[punct](_+)(?=[\\\\s]|$)' // (1) #___ can only be a Right Delimiter\n + '|[^punct\\\\s](_+)(?!_)(?=[punct\\\\s]|$)' // (2) a___#, a___ can only be a Right Delimiter\n + '|(?!_)[punct\\\\s](_+)(?=[^punct\\\\s])' // (3) #___a, ___a can only be Left Delimiter\n + '|[\\\\s](_+)(?!_)(?=[punct])' // (4) ___# can only be Left Delimiter\n + '|(?!_)[punct](_+)(?!_)(?=[punct])', 'gu') // (5) #___# can be either Left or Right Delimiter\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst anyPunctuation = edit(/\\\\([punct])/, 'gu')\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst autolink = edit(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/)\n .replace('scheme', /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/)\n .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])?)+(?![-_])/)\n .getRegex();\nconst _inlineComment = edit(_comment).replace('(?:-->|$)', '-->').getRegex();\nconst tag = edit('^comment'\n + '|^' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. \n + '|^' // declaration, e.g. \n + '|^') // CDATA section\n .replace('comment', _inlineComment)\n .replace('attribute', /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/)\n .getRegex();\nconst _inlineLabel = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\nconst link = edit(/^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/)\n .replace('label', _inlineLabel)\n .replace('href', /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/)\n .replace('title', /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/)\n .getRegex();\nconst reflink = edit(/^!?\\[(label)\\]\\[(ref)\\]/)\n .replace('label', _inlineLabel)\n .replace('ref', _blockLabel)\n .getRegex();\nconst nolink = edit(/^!?\\[(ref)\\](?:\\[\\])?/)\n .replace('ref', _blockLabel)\n .getRegex();\nconst reflinkSearch = edit('reflink|nolink(?!\\\\()', 'g')\n .replace('reflink', reflink)\n .replace('nolink', nolink)\n .getRegex();\n/**\n * Normal Inline Grammar\n */\nconst inlineNormal = {\n _backpedal: noopTest, // only used for GFM url\n anyPunctuation,\n autolink,\n blockSkip,\n br,\n code: inlineCode,\n del: noopTest,\n emStrongLDelim,\n emStrongRDelimAst,\n emStrongRDelimUnd,\n escape,\n link,\n nolink,\n punctuation,\n reflink,\n reflinkSearch,\n tag,\n text: inlineText,\n url: noopTest,\n};\n/**\n * Pedantic Inline Grammar\n */\nconst inlinePedantic = {\n ...inlineNormal,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', _inlineLabel)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', _inlineLabel)\n .getRegex(),\n};\n/**\n * GFM Inline Grammar\n */\nconst inlineGfm = {\n ...inlineNormal,\n escape: edit(escape).replace('])', '~|])').getRegex(),\n url: edit(/^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/, 'i')\n .replace('email', /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/)\n .getRegex(),\n _backpedal: /(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\ {\n return leading + ' '.repeat(tabs.length);\n });\n }\n let token;\n let lastToken;\n let cutSrc;\n while (src) {\n if (this.options.extensions\n && this.options.extensions.block\n && this.options.extensions.block.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unnecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title,\n };\n }\n continue;\n }\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken?.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n lastParagraphClipped = (cutSrc.length !== src.length);\n src = src.substring(token.raw.length);\n continue;\n }\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n this.state.top = true;\n return tokens;\n }\n inline(src, tokens = []) {\n this.inlineQueue.push({ src, tokens });\n return tokens;\n }\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n // Mask out escaped characters\n while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);\n }\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n // extensions\n if (this.options.extensions\n && this.options.extensions.inline\n && this.options.extensions.inline.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // autolink\n if (token = this.tokenizer.autolink(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n return tokens;\n }\n}\n\n/**\n * Renderer\n */\nclass _Renderer {\n options;\n parser; // set by the parser\n constructor(options) {\n this.options = options || _defaults;\n }\n space(token) {\n return '';\n }\n code({ text, lang, escaped }) {\n const langString = (lang || '').match(/^\\S*/)?.[0];\n const code = text.replace(/\\n$/, '') + '\\n';\n if (!langString) {\n return '
'\n                + (escaped ? code : escape$1(code, true))\n                + '
\\n';\n }\n return '
'\n            + (escaped ? code : escape$1(code, true))\n            + '
\\n';\n }\n blockquote({ tokens }) {\n const body = this.parser.parse(tokens);\n return `
\\n${body}
\\n`;\n }\n html({ text }) {\n return text;\n }\n heading({ tokens, depth }) {\n return `${this.parser.parseInline(tokens)}\\n`;\n }\n hr(token) {\n return '
\\n';\n }\n list(token) {\n const ordered = token.ordered;\n const start = token.start;\n let body = '';\n for (let j = 0; j < token.items.length; j++) {\n const item = token.items[j];\n body += this.listitem(item);\n }\n const type = ordered ? 'ol' : 'ul';\n const startAttr = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startAttr + '>\\n' + body + '\\n';\n }\n listitem(item) {\n let itemBody = '';\n if (item.task) {\n const checkbox = this.checkbox({ checked: !!item.checked });\n if (item.loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n }\n else {\n item.tokens.unshift({\n type: 'text',\n raw: checkbox + ' ',\n text: checkbox + ' ',\n });\n }\n }\n else {\n itemBody += checkbox + ' ';\n }\n }\n itemBody += this.parser.parse(item.tokens, !!item.loose);\n return `
  • ${itemBody}
  • \\n`;\n }\n checkbox({ checked }) {\n return '';\n }\n paragraph({ tokens }) {\n return `

    ${this.parser.parseInline(tokens)}

    \\n`;\n }\n table(token) {\n let header = '';\n // header\n let cell = '';\n for (let j = 0; j < token.header.length; j++) {\n cell += this.tablecell(token.header[j]);\n }\n header += this.tablerow({ text: cell });\n let body = '';\n for (let j = 0; j < token.rows.length; j++) {\n const row = token.rows[j];\n cell = '';\n for (let k = 0; k < row.length; k++) {\n cell += this.tablecell(row[k]);\n }\n body += this.tablerow({ text: cell });\n }\n if (body)\n body = `${body}`;\n return '\\n'\n + '\\n'\n + header\n + '\\n'\n + body\n + '
    \\n';\n }\n tablerow({ text }) {\n return `\\n${text}\\n`;\n }\n tablecell(token) {\n const content = this.parser.parseInline(token.tokens);\n const type = token.header ? 'th' : 'td';\n const tag = token.align\n ? `<${type} align=\"${token.align}\">`\n : `<${type}>`;\n return tag + content + `\\n`;\n }\n /**\n * span level renderer\n */\n strong({ tokens }) {\n return `${this.parser.parseInline(tokens)}`;\n }\n em({ tokens }) {\n return `${this.parser.parseInline(tokens)}`;\n }\n codespan({ text }) {\n return `${text}`;\n }\n br(token) {\n return '
    ';\n }\n del({ tokens }) {\n return `${this.parser.parseInline(tokens)}`;\n }\n link({ href, title, tokens }) {\n const text = this.parser.parseInline(tokens);\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = '
    ';\n return out;\n }\n image({ href, title, text }) {\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = `\"${text}\"`;\n {\n const tokens = genericToken[childTokens].flat(Infinity);\n values = values.concat(this.walkTokens(tokens, callback));\n });\n }\n else if (genericToken.tokens) {\n values = values.concat(this.walkTokens(genericToken.tokens, callback));\n }\n }\n }\n }\n return values;\n }\n use(...args) {\n const extensions = this.defaults.extensions || { renderers: {}, childTokens: {} };\n args.forEach((pack) => {\n // copy options to new object\n const opts = { ...pack };\n // set async to true if it was set to true before\n opts.async = this.defaults.async || opts.async || false;\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if ('renderer' in ext) { // Renderer extensions\n const prevRenderer = extensions.renderers[ext.name];\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function (...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n }\n else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if ('tokenizer' in ext) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n const extLevel = extensions[ext.level];\n if (extLevel) {\n extLevel.unshift(ext.tokenizer);\n }\n else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n }\n else {\n extensions.startBlock = [ext.start];\n }\n }\n else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n }\n else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if ('childTokens' in ext && ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n opts.extensions = extensions;\n }\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = this.defaults.renderer || new _Renderer(this.defaults);\n for (const prop in pack.renderer) {\n if (!(prop in renderer)) {\n throw new Error(`renderer '${prop}' does not exist`);\n }\n if (['options', 'parser'].includes(prop)) {\n // ignore options property\n continue;\n }\n const rendererProp = prop;\n let rendererFunc = pack.renderer[rendererProp];\n if (!pack.useNewRenderer) {\n // TODO: Remove this in next major version\n rendererFunc = this.#convertRendererFunction(rendererFunc, rendererProp, renderer);\n }\n const prevRenderer = renderer[rendererProp];\n // Replace renderer with func to run extension, but fall back if false\n renderer[rendererProp] = (...args) => {\n let ret = rendererFunc.apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret || '';\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults);\n for (const prop in pack.tokenizer) {\n if (!(prop in tokenizer)) {\n throw new Error(`tokenizer '${prop}' does not exist`);\n }\n if (['options', 'rules', 'lexer'].includes(prop)) {\n // ignore options, rules, and lexer properties\n continue;\n }\n const tokenizerProp = prop;\n const tokenizerFunc = pack.tokenizer[tokenizerProp];\n const prevTokenizer = tokenizer[tokenizerProp];\n // Replace tokenizer with func to run extension, but fall back if false\n // @ts-expect-error cannot type tokenizer function dynamically\n tokenizer[tokenizerProp] = (...args) => {\n let ret = tokenizerFunc.apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n // ==-- Parse Hooks extensions --== //\n if (pack.hooks) {\n const hooks = this.defaults.hooks || new _Hooks();\n for (const prop in pack.hooks) {\n if (!(prop in hooks)) {\n throw new Error(`hook '${prop}' does not exist`);\n }\n if (prop === 'options') {\n // ignore options property\n continue;\n }\n const hooksProp = prop;\n const hooksFunc = pack.hooks[hooksProp];\n const prevHook = hooks[hooksProp];\n if (_Hooks.passThroughHooks.has(prop)) {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (arg) => {\n if (this.defaults.async) {\n return Promise.resolve(hooksFunc.call(hooks, arg)).then(ret => {\n return prevHook.call(hooks, ret);\n });\n }\n const ret = hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n };\n }\n else {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (...args) => {\n let ret = hooksFunc.apply(hooks, args);\n if (ret === false) {\n ret = prevHook.apply(hooks, args);\n }\n return ret;\n };\n }\n }\n opts.hooks = hooks;\n }\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = this.defaults.walkTokens;\n const packWalktokens = pack.walkTokens;\n opts.walkTokens = function (token) {\n let values = [];\n values.push(packWalktokens.call(this, token));\n if (walkTokens) {\n values = values.concat(walkTokens.call(this, token));\n }\n return values;\n };\n }\n this.defaults = { ...this.defaults, ...opts };\n });\n return this;\n }\n // TODO: Remove this in next major release\n #convertRendererFunction(func, prop, renderer) {\n switch (prop) {\n case 'heading':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, renderer.parser.parseInline(token.tokens), token.depth, unescape(renderer.parser.parseInline(token.tokens, renderer.parser.textRenderer)));\n };\n case 'code':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, token.text, token.lang, !!token.escaped);\n };\n case 'table':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n let header = '';\n // header\n let cell = '';\n for (let j = 0; j < token.header.length; j++) {\n cell += this.tablecell({\n text: token.header[j].text,\n tokens: token.header[j].tokens,\n header: true,\n align: token.align[j],\n });\n }\n header += this.tablerow({ text: cell });\n let body = '';\n for (let j = 0; j < token.rows.length; j++) {\n const row = token.rows[j];\n cell = '';\n for (let k = 0; k < row.length; k++) {\n cell += this.tablecell({\n text: row[k].text,\n tokens: row[k].tokens,\n header: false,\n align: token.align[k],\n });\n }\n body += this.tablerow({ text: cell });\n }\n return func.call(this, header, body);\n };\n case 'blockquote':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n const body = this.parser.parse(token.tokens);\n return func.call(this, body);\n };\n case 'list':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n const ordered = token.ordered;\n const start = token.start;\n const loose = token.loose;\n let body = '';\n for (let j = 0; j < token.items.length; j++) {\n const item = token.items[j];\n const checked = item.checked;\n const task = item.task;\n let itemBody = '';\n if (item.task) {\n const checkbox = this.checkbox({ checked: !!checked });\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n }\n else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox + ' ',\n });\n }\n }\n else {\n itemBody += checkbox + ' ';\n }\n }\n itemBody += this.parser.parse(item.tokens, loose);\n body += this.listitem({\n type: 'list_item',\n raw: itemBody,\n text: itemBody,\n task,\n checked: !!checked,\n loose,\n tokens: item.tokens,\n });\n }\n return func.call(this, body, ordered, start);\n };\n case 'html':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, token.text, token.block);\n };\n case 'paragraph':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, this.parser.parseInline(token.tokens));\n };\n case 'escape':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, token.text);\n };\n case 'link':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, token.href, token.title, this.parser.parseInline(token.tokens));\n };\n case 'image':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, token.href, token.title, token.text);\n };\n case 'strong':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, this.parser.parseInline(token.tokens));\n };\n case 'em':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, this.parser.parseInline(token.tokens));\n };\n case 'codespan':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, token.text);\n };\n case 'del':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, this.parser.parseInline(token.tokens));\n };\n case 'text':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, token.text);\n };\n // do nothing\n }\n return func;\n }\n setOptions(opt) {\n this.defaults = { ...this.defaults, ...opt };\n return this;\n }\n lexer(src, options) {\n return _Lexer.lex(src, options ?? this.defaults);\n }\n parser(tokens, options) {\n return _Parser.parse(tokens, options ?? this.defaults);\n }\n #parseMarkdown(lexer, parser) {\n return (src, options) => {\n const origOpt = { ...options };\n const opt = { ...this.defaults, ...origOpt };\n // Show warning if an extension set async to true but the parse was called with async: false\n if (this.defaults.async === true && origOpt.async === false) {\n if (!opt.silent) {\n console.warn('marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored.');\n }\n opt.async = true;\n }\n const throwError = this.#onError(!!opt.silent, !!opt.async);\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n return throwError(new Error('marked(): input parameter is undefined or null'));\n }\n if (typeof src !== 'string') {\n return throwError(new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected'));\n }\n if (opt.hooks) {\n opt.hooks.options = opt;\n }\n if (opt.async) {\n return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src)\n .then(src => lexer(src, opt))\n .then(tokens => opt.hooks ? opt.hooks.processAllTokens(tokens) : tokens)\n .then(tokens => opt.walkTokens ? Promise.all(this.walkTokens(tokens, opt.walkTokens)).then(() => tokens) : tokens)\n .then(tokens => parser(tokens, opt))\n .then(html => opt.hooks ? opt.hooks.postprocess(html) : html)\n .catch(throwError);\n }\n try {\n if (opt.hooks) {\n src = opt.hooks.preprocess(src);\n }\n let tokens = lexer(src, opt);\n if (opt.hooks) {\n tokens = opt.hooks.processAllTokens(tokens);\n }\n if (opt.walkTokens) {\n this.walkTokens(tokens, opt.walkTokens);\n }\n let html = parser(tokens, opt);\n if (opt.hooks) {\n html = opt.hooks.postprocess(html);\n }\n return html;\n }\n catch (e) {\n return throwError(e);\n }\n };\n }\n #onError(silent, async) {\n return (e) => {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (silent) {\n const msg = '

    An error occurred:

    '\n                    + escape$1(e.message + '', true)\n                    + '
    ';\n if (async) {\n return Promise.resolve(msg);\n }\n return msg;\n }\n if (async) {\n return Promise.reject(e);\n }\n throw e;\n };\n }\n}\n\nconst markedInstance = new Marked();\nfunction marked(src, opt) {\n return markedInstance.parse(src, opt);\n}\n/**\n * Sets the default options.\n *\n * @param options Hash of options\n */\nmarked.options =\n marked.setOptions = function (options) {\n markedInstance.setOptions(options);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n };\n/**\n * Gets the original marked default options.\n */\nmarked.getDefaults = _getDefaults;\nmarked.defaults = _defaults;\n/**\n * Use Extension\n */\nmarked.use = function (...args) {\n markedInstance.use(...args);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\n/**\n * Run callback for every token\n */\nmarked.walkTokens = function (tokens, callback) {\n return markedInstance.walkTokens(tokens, callback);\n};\n/**\n * Compiles markdown to HTML without enclosing `p` tag.\n *\n * @param src String of markdown source to be compiled\n * @param options Hash of options\n * @return String of compiled HTML\n */\nmarked.parseInline = markedInstance.parseInline;\n/**\n * Expose\n */\nmarked.Parser = _Parser;\nmarked.parser = _Parser.parse;\nmarked.Renderer = _Renderer;\nmarked.TextRenderer = _TextRenderer;\nmarked.Lexer = _Lexer;\nmarked.lexer = _Lexer.lex;\nmarked.Tokenizer = _Tokenizer;\nmarked.Hooks = _Hooks;\nmarked.parse = marked;\nconst options = marked.options;\nconst setOptions = marked.setOptions;\nconst use = marked.use;\nconst walkTokens = marked.walkTokens;\nconst parseInline = marked.parseInline;\nconst parse = marked;\nconst parser = _Parser.parse;\nconst lexer = _Lexer.lex;\n\nexport { _Hooks as Hooks, _Lexer as Lexer, Marked, _Parser as Parser, _Renderer as Renderer, _TextRenderer as TextRenderer, _Tokenizer as Tokenizer, _defaults as defaults, _getDefaults as getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };\n//# sourceMappingURL=marked.esm.js.map\n","import {\n decodeEntities\n} from \"./chunk-7DKRZKHE.mjs\";\nimport {\n __name,\n common_default,\n getConfig2 as getConfig,\n hasKatex,\n log,\n renderKatex\n} from \"./chunk-6DBFFHIP.mjs\";\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(//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, \" \");\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(/'/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, \"
    \").replace(/ /g, \" \");\n }\n return node.text.replace(/\\n */g, \"
    \");\n } else if (node.type === \"strong\") {\n return `${node.tokens?.map(output).join(\"\")}`;\n } else if (node.type === \"em\") {\n return `${node.tokens?.map(output).join(\"\")}`;\n } else if (node.type === \"paragraph\") {\n return `

    ${node.tokens?.map(output).join(\"\")}

    `;\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\");\nfunction replaceIconSubstring(text) {\n return text.replace(\n /fa[bklrs]?:fa-[\\w-]+/g,\n // cspell: disable-line\n (s) => ``\n );\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 = 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(//g, \"
    \");\n const structuredText = markdownToLines(sanitizeBR.replace(\"
    \", \"
    \"), 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 computeDimensionOfText,\n replaceIconSubstring,\n createText\n};\n","// package.json\nvar version = \"11.4.1\";\n\nexport {\n version\n};\n","/* IMPORT */\n/* MAIN */\nconst Channel = {\n /* CLAMP */\n min: {\n r: 0,\n g: 0,\n b: 0,\n s: 0,\n l: 0,\n a: 0\n },\n max: {\n r: 255,\n g: 255,\n b: 255,\n h: 360,\n s: 100,\n l: 100,\n a: 1\n },\n clamp: {\n r: (r) => r >= 255 ? 255 : (r < 0 ? 0 : r),\n g: (g) => g >= 255 ? 255 : (g < 0 ? 0 : g),\n b: (b) => b >= 255 ? 255 : (b < 0 ? 0 : b),\n h: (h) => h % 360,\n s: (s) => s >= 100 ? 100 : (s < 0 ? 0 : s),\n l: (l) => l >= 100 ? 100 : (l < 0 ? 0 : l),\n a: (a) => a >= 1 ? 1 : (a < 0 ? 0 : a)\n },\n /* CONVERSION */\n //SOURCE: https://planetcalc.com/7779\n toLinear: (c) => {\n const n = c / 255;\n return c > .03928 ? Math.pow(((n + .055) / 1.055), 2.4) : n / 12.92;\n },\n //SOURCE: https://gist.github.com/mjackson/5311256\n hue2rgb: (p, q, t) => {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n },\n hsl2rgb: ({ h, s, l }, channel) => {\n if (!s)\n return l * 2.55; // Achromatic\n h /= 360;\n s /= 100;\n l /= 100;\n const q = (l < .5) ? l * (1 + s) : (l + s) - (l * s);\n const p = 2 * l - q;\n switch (channel) {\n case 'r': return Channel.hue2rgb(p, q, h + 1 / 3) * 255;\n case 'g': return Channel.hue2rgb(p, q, h) * 255;\n case 'b': return Channel.hue2rgb(p, q, h - 1 / 3) * 255;\n }\n },\n rgb2hsl: ({ r, g, b }, channel) => {\n r /= 255;\n g /= 255;\n b /= 255;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n if (channel === 'l')\n return l * 100;\n if (max === min)\n return 0; // Achromatic\n const d = max - min;\n const s = (l > .5) ? d / (2 - max - min) : d / (max + min);\n if (channel === 's')\n return s * 100;\n switch (max) {\n case r: return ((g - b) / d + (g < b ? 6 : 0)) * 60;\n case g: return ((b - r) / d + 2) * 60;\n case b: return ((r - g) / d + 4) * 60;\n default: return -1; //TSC: TypeScript is stupid and complains if there isn't this useless default statement\n }\n }\n};\n/* EXPORT */\nexport default Channel;\n","/* IMPORT */\nimport channel from './channel.js';\nimport lang from './lang.js';\nimport unit from './unit.js';\n/* MAIN */\nconst Utils = {\n channel,\n lang,\n unit\n};\n/* EXPORT */\nexport default Utils;\n","/* MAIN */\nconst Lang = {\n /* API */\n clamp: (number, lower, upper) => {\n if (lower > upper)\n return Math.min(lower, Math.max(upper, number));\n return Math.min(upper, Math.max(lower, number));\n },\n round: (number) => {\n return Math.round(number * 10000000000) / 10000000000;\n }\n};\n/* EXPORT */\nexport default Lang;\n","/* MAIN */\nconst Unit = {\n /* API */\n dec2hex: (dec) => {\n const hex = Math.round(dec).toString(16);\n return hex.length > 1 ? hex : `0${hex}`;\n }\n};\n/* EXPORT */\nexport default Unit;\n","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","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","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","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","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sanitizeUrl = void 0;\nvar constants_1 = require(\"./constants\");\nfunction isRelativeUrlWithoutProtocol(url) {\n return constants_1.relativeFirstCharacters.indexOf(url[0]) > -1;\n}\nfunction decodeHtmlCharacters(str) {\n var removedNullByte = str.replace(constants_1.ctrlCharactersRegex, \"\");\n return removedNullByte.replace(constants_1.htmlEntitiesRegex, function (match, dec) {\n return String.fromCharCode(dec);\n });\n}\nfunction isValidUrl(url) {\n return URL.canParse(url);\n}\nfunction decodeURI(uri) {\n try {\n return decodeURIComponent(uri);\n }\n catch (e) {\n // Ignoring error\n // It is possible that the URI contains a `%` not associated\n // with URI/URL-encoding.\n return uri;\n }\n}\nfunction sanitizeUrl(url) {\n if (!url) {\n return constants_1.BLANK_URL;\n }\n var charsToDecode;\n var decodedUrl = decodeURI(url.trim());\n do {\n decodedUrl = decodeHtmlCharacters(decodedUrl)\n .replace(constants_1.htmlCtrlEntityRegex, \"\")\n .replace(constants_1.ctrlCharactersRegex, \"\")\n .replace(constants_1.whitespaceEscapeCharsRegex, \"\")\n .trim();\n decodedUrl = decodeURI(decodedUrl);\n charsToDecode =\n decodedUrl.match(constants_1.ctrlCharactersRegex) ||\n decodedUrl.match(constants_1.htmlEntitiesRegex) ||\n decodedUrl.match(constants_1.htmlCtrlEntityRegex) ||\n decodedUrl.match(constants_1.whitespaceEscapeCharsRegex);\n } while (charsToDecode && charsToDecode.length > 0);\n var sanitizedUrl = decodedUrl;\n if (!sanitizedUrl) {\n return constants_1.BLANK_URL;\n }\n if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {\n return sanitizedUrl;\n }\n // Remove any leading whitespace before checking the URL scheme\n var trimmedUrl = sanitizedUrl.trimStart();\n var urlSchemeParseResults = trimmedUrl.match(constants_1.urlSchemeRegex);\n if (!urlSchemeParseResults) {\n return sanitizedUrl;\n }\n var urlScheme = urlSchemeParseResults[0].toLowerCase().trim();\n if (constants_1.invalidProtocolRegex.test(urlScheme)) {\n return constants_1.BLANK_URL;\n }\n var backSanitized = trimmedUrl.replace(/\\\\/g, \"/\");\n // Handle special cases for mailto: and custom deep-link protocols\n if (urlScheme === \"mailto:\" || urlScheme.includes(\"://\")) {\n return backSanitized;\n }\n // For http and https URLs, perform additional validation\n if (urlScheme === \"http:\" || urlScheme === \"https:\") {\n if (!isValidUrl(backSanitized)) {\n return constants_1.BLANK_URL;\n }\n var url_1 = new URL(backSanitized);\n url_1.protocol = url_1.protocol.toLowerCase();\n url_1.hostname = url_1.hostname.toLowerCase();\n return url_1.toString();\n }\n return backSanitized;\n}\nexports.sanitizeUrl = sanitizeUrl;\n","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","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","/**\n * Map of supported render types\n * These correspond to the supported formats outlined in formats.go, and should\n * be kept in sync with those.\n * Certain formats when rendered, for example, the geojson code in this repo\n * handles both geojson and topojson files.\n */\nexport const enum RENDER_FORMATS {\n solid = 'solid',\n geojson = 'geojson',\n image = 'img',\n pdf = 'pdf',\n psd = 'psd',\n mermaid = 'mermaid',\n sandbox = 'sandbox',\n}\n\n/**\n * Map of supported states for the Status class\n * Enumerates the status message types accepted by the rails app\n */\nexport enum STATUS_TYPES {\n constructor = 'constructor',\n hello = 'hello',\n resize = 'resize',\n loading = 'loading',\n loaded = 'loaded',\n error = 'error',\n fatal = 'error:fatal',\n invalid = 'error:invalid',\n ready = 'ready',\n // these need to match the strings in github/github/app/assets/modules/github/behaviors/render-editor.ts\n markdown = 'code_rendering_service:markdown:get_data',\n getContainerSize = 'code_rendering_service:container:get_size',\n}\n\nexport const enum MESSAGE_RESPONSE_TYPES {\n ack = 'ack',\n branding = 'branding',\n markdown = 'code_rendering_service:data:ready',\n containerSize = 'code_rendering_service:container:size',\n readyAck = 'code_rendering_service:ready:ack',\n sandboxReady = 'sandbox:data:ready',\n}\n\n/**\n * This is set within the github css. However, because we need to manually\n * update the render container's height during pjax nav events, we also need to ensure that\n * every renderable type fires a resize event some height; this is a fallback for types\n * that did not previously report their height. For now, those types are `geojson` and `stl`\n */\nexport const DEFAULT_CONTAINER_HEIGHT = 500\n\nexport const DEFAULT_DOCS_LINK_HOSTNAME = 'https://docs.github.com'\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","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","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","/* 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","/** 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 {\n __name,\n getConfig2 as getConfig\n} from \"./chunk-6DBFFHIP.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 {\n insertEdge,\n insertEdgeLabel,\n markers_default,\n positionEdgeLabel\n} from \"./chunk-66SQ7PYY.mjs\";\nimport {\n insertCluster,\n insertNode,\n labelHelper\n} from \"./chunk-7NZE2EM7.mjs\";\nimport {\n interpolateToCurve\n} from \"./chunk-7DKRZKHE.mjs\";\nimport {\n __name,\n common_default,\n getConfig,\n log\n} from \"./chunk-6DBFFHIP.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-4EVJKHTY.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 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 {\n __name\n} from \"./chunk-6DBFFHIP.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 arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import {\n createLabel_default\n} from \"./chunk-7NZE2EM7.mjs\";\nimport {\n getLineFunctionsWithOffset\n} from \"./chunk-3JNJP5BE.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-3X56UNUX.mjs\";\nimport {\n createText\n} from \"./chunk-6JOS74DS.mjs\";\nimport {\n utils_default\n} from \"./chunk-7DKRZKHE.mjs\";\nimport {\n __name,\n evaluate,\n getConfig2 as getConfig,\n log\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/rendering-util/rendering-elements/edges.js\nimport { curveBasis, line, select } from \"d3\";\nimport rough from \"roughjs\";\n\n// src/rendering-util/rendering-elements/edgeMarker.ts\nvar addEdgeMarkers = /* @__PURE__ */ __name((svgPath, edge, url, id, diagramType) => {\n if (edge.arrowTypeStart) {\n addEdgeMarker(svgPath, \"start\", edge.arrowTypeStart, url, id, diagramType);\n }\n if (edge.arrowTypeEnd) {\n addEdgeMarker(svgPath, \"end\", edge.arrowTypeEnd, url, id, diagramType);\n }\n}, \"addEdgeMarkers\");\nvar arrowTypesMap = {\n arrow_cross: \"cross\",\n arrow_point: \"point\",\n arrow_barb: \"barb\",\n arrow_circle: \"circle\",\n aggregation: \"aggregation\",\n extension: \"extension\",\n composition: \"composition\",\n dependency: \"dependency\",\n lollipop: \"lollipop\"\n};\nvar addEdgeMarker = /* @__PURE__ */ __name((svgPath, position, arrowType, url, id, diagramType) => {\n const endMarkerType = arrowTypesMap[arrowType];\n if (!endMarkerType) {\n log.warn(`Unknown arrow type: ${arrowType}`);\n return;\n }\n const suffix = position === \"start\" ? \"Start\" : \"End\";\n svgPath.attr(`marker-${position}`, `url(${url}#${id}_${diagramType}-${endMarkerType}${suffix})`);\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 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 if (edge.curve) {\n curve = edge.curve;\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];\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 svgPath = elem.append(\"path\").attr(\"d\", linePath).attr(\"id\", edge.id).attr(\"class\", \" \" + strokeClasses + (edge.classes ? \" \" + edge.classes : \"\")).attr(\"style\", edgeStyles ? edgeStyles.reduce((acc, style) => acc + \";\" + style, \"\") : \"\");\n }\n let url = \"\";\n if (getConfig().flowchart.arrowMarkerAbsolute || getConfig().state.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\").replace(/\\)/g, \"\\\\)\");\n }\n log.info(\"arrowTypeStart\", edge.arrowTypeStart);\n log.info(\"arrowTypeEnd\", edge.arrowTypeEnd);\n addEdgeMarkers(svgPath, edge, url, id, diagramType);\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 markers = {\n extension,\n composition,\n aggregation,\n dependency,\n lollipop,\n point,\n circle,\n cross,\n barb\n};\nvar markers_default = insertMarkers;\n\nexport {\n clear,\n insertEdgeLabel,\n positionEdgeLabel,\n insertEdge,\n markers_default\n};\n","/* IMPORT */\nimport adjustChannel from './adjust_channel.js';\n/* MAIN */\nconst lighten = (color, amount) => {\n return adjustChannel(color, 'l', amount);\n};\n/* EXPORT */\nexport default lighten;\n","import {\n __name,\n assignWithDepth_default,\n common_default,\n detectType,\n directiveRegex,\n log,\n sanitizeDirective\n} from \"./chunk-6DBFFHIP.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 < 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: \"
    \" },\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}) => {\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","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\nconst change = (color, channels) => {\n const ch = Color.parse(color);\n for (const c in channels) {\n ch[c] = _.channel.clamp[c](channels[c]);\n }\n return Color.stringify(ch);\n};\n/* EXPORT */\nexport default change;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import 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 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","/**\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","\"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 = /^.+(:|:)/gim;\nexports.whitespaceEscapeCharsRegex = /(\\\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g;\nexports.relativeFirstCharacters = [\".\", \"/\"];\nexports.BLANK_URL = \"about:blank\";\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","/**\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","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","/*! @license DOMPurify 3.2.4 | (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.4/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 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):|[^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.4';\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 ... 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) : {};\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\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 . 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 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 . 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 // 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 = '' + 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 = '' + dirty + '';\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 (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 let value = name === 'value' ? attrValue : stringTrim(attrValue);\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 /* Remove attribute */\n _removeAttribute(name, currentNode);\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\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 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 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 }\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 = '\\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 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 */\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.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 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.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.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 = \"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.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.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.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 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.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.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 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.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.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.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.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.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.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.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 },\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 \"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 },\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 \"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 \"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 \"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 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};\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 = //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, \">\");\n text = text.replace(/=/g, \"=\");\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, \"
    \");\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 = url.replaceAll(/\\(/g, \"\\\\(\");\n url = url.replaceAll(/\\)/g, \"\\\\)\");\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 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) ? `
    ${line}
    ` : `
    ${line}
    `\n ).join(\"\").replace(\n katexRegex,\n (_, c) => katex.renderToString(c, {\n throwOnError: true,\n displayMode: true,\n output: outputMode\n }).replace(/\\n/g, \" \").replace(//g, \"\")\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\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 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","import {assertElement, invariant} from './utils'\n\n/**\n * LinkNavigator handles linking to relative and absolute URLs from a rich file.\n * Mostly used in geojson pins or within mermaid charts\n *\n * @param hasParent boolean Is this class instantiated from within an iframe?\n */\nclass LinkNavigator {\n private hasParent!: boolean\n\n constructor({hasParent = false}) {\n this.hasParent = hasParent\n\n document.addEventListener('click', (event: MouseEvent) => {\n const target = event.target\n invariant(assertElement(target), `Expected click target to be an instance of Element. Got ${target} instead.`)\n\n if (this.isLinkableNode(target)) {\n this.handleLink(event)\n }\n })\n }\n\n private isLinkableNode = (node: Element) => {\n return node.matches('a') || node.matches('svg')\n }\n\n // Handle the clicking of a link in the document in the context-appropriate way\n public handleLink = (e: MouseEvent) => {\n const target = e.target as HTMLAnchorElement | SVGElement\n const href = target.getAttribute('href') || target.getAttribute('xlink:href') || ''\n\n // Don't bother processing nothing\n if (!href.length) {\n return\n }\n // anchors can just pass through\n if (href.match(/^#/)) {\n return true\n }\n\n e.preventDefault()\n try {\n return this.navigateTo(href)\n } catch (error) {\n window.debug(`Navigation to '${href}' failed:`, error)\n const failClass = 'failed'\n const failInterval = 500\n\n target.classList.add(failClass)\n return setTimeout(() => target.classList.remove(failClass), failInterval)\n }\n }\n\n // Navigate to `href` either by asking the parent for the move, or by\n // performing the navigation myself.\n public navigateTo = (href: string) => {\n if (href.match(/^https?:\\/\\//) || href.match(/^\\/\\//)) {\n this.navigateDirect(href)\n } else {\n this.navigateRelative(href)\n }\n }\n\n public navigateRelative = (relHref: string) => {\n const rootUrl = document.body.getAttribute('data-github-hostname')\n\n // Using the URL constructor to build a full URL to take advantage of the built-in sanitization.\n const baseUrl = new URL(`https://${rootUrl}`)\n const prefixedRelHref = relHref.startsWith('/') ? relHref : `/${relHref}`\n const fullUrl = new URL(prefixedRelHref, baseUrl)\n const protocolRelativeURL = fullUrl.toString().replace(/^https:/, '')\n return this.navigateDirect(protocolRelativeURL)\n }\n\n public navigateDirect = (href: string) => {\n if (this.hasParent) {\n window.top!.location.href = href\n } else {\n window.location.href = href\n }\n }\n}\n\nexport default LinkNavigator\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","/**\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 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 {\n __name\n} from \"./chunk-6DBFFHIP.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 _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","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","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + __webpack_require__.h() + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.h = () => (\"a72eac494ce65a7ee317\")","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t323: 0,\n\t375: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunk\"] = self[\"webpackChunk\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","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} 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 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 === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(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\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\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-S3SWNSAA.mjs\";\nimport {\n registerLayoutLoaders\n} from \"./chunks/mermaid.core/chunk-BO7VGL7K.mjs\";\nimport \"./chunks/mermaid.core/chunk-66SQ7PYY.mjs\";\nimport \"./chunks/mermaid.core/chunk-7NZE2EM7.mjs\";\nimport {\n registerIconPacks\n} from \"./chunks/mermaid.core/chunk-OPO4IU42.mjs\";\nimport \"./chunks/mermaid.core/chunk-3JNJP5BE.mjs\";\nimport \"./chunks/mermaid.core/chunk-3X56UNUX.mjs\";\nimport \"./chunks/mermaid.core/chunk-6JOS74DS.mjs\";\nimport {\n cleanAndMerge,\n decodeEntities,\n encodeEntities,\n isDetailedError,\n removeDirectives,\n utils_default\n} from \"./chunks/mermaid.core/chunk-7DKRZKHE.mjs\";\nimport {\n version\n} from \"./chunks/mermaid.core/chunk-K6PMAZHR.mjs\";\nimport {\n selectSvgElement\n} from \"./chunks/mermaid.core/chunk-EJ4ZWXGL.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-6DBFFHIP.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-6F5ED5ID.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-7ASYPVHJ.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-7ASYPVHJ.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-6RL3IURR.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-NRZ2UAAF.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-NTVNEXSI.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-A4XQUW5V.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-YF2LJOPJ.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-OS5C2QUG.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-6QU3TZC5.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-MIRIMTAZ.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-G6AWOVSC.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-LNE6IOMH.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-MQ7JQ4JX.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-MAYHULR4.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-4JROLMXI.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-G5WM74LC.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, id26, version2) => {\n log.debug(\"rendering svg for syntax error\\n\");\n const svg = selectSvgElement(id26);\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 ${version2}`);\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-7ASYPVHJ.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-U7ZMHBDA.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-GWI6TPTV.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-QRCXZQQD.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-Y46BX6SQ.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-QW4FP2JN.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/block/blockDetector.ts\nvar id24 = \"block\";\nvar detector24 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*block-beta/.test(txt);\n}, \"detector\");\nvar loader24 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/blockDiagram-ZHA2E4KO.mjs\");\n return { id: id24, diagram: diagram2 };\n}, \"loader\");\nvar plugin21 = {\n id: id24,\n detector: detector24,\n loader: loader24\n};\nvar blockDetector_default = plugin21;\n\n// src/diagrams/architecture/architectureDetector.ts\nvar id25 = \"architecture\";\nvar detector25 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*architecture/.test(txt);\n}, \"detector\");\nvar loader25 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/architectureDiagram-UYN6MBPD.mjs\");\n return { id: id25, diagram: diagram2 };\n}, \"loader\");\nvar architecture = {\n id: id25,\n detector: detector25,\n loader: loader25\n};\nvar architectureDetector_default = architecture;\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 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 detector_default,\n flowDetector_v2_default,\n flowDetector_default,\n detector_default3,\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 architectureDetector_default\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: detector26, loader: loader26 }]) => {\n if (loader26) {\n try {\n getDiagram(key);\n } catch {\n try {\n const { diagram: diagram2, id: id26 } = await loader26();\n registerDiagram(id26, diagram2, detector26);\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 );\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 loader26 = getDiagramLoader(type);\n if (!loader26) {\n throw new UnknownDiagramError(`Diagram ${type} not found.`);\n }\n const { id: id26, diagram: diagram2 } = await loader26();\n registerDiagram(id26, 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(id26, version2) {\n await this.renderer.draw(this.text, id26, version2, 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(/
    /g, \"
    \");\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(`${svgCode}`);\n return ``;\n}, \"putIntoIFrame\");\nvar appendDivSvgG = /* @__PURE__ */ __name((parentRoot, id26, 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\", id26).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, id26, divId, iFrameId) => {\n doc.getElementById(id26)?.remove();\n doc.getElementById(divId)?.remove();\n doc.getElementById(iFrameId)?.remove();\n}, \"removeExistingElements\");\nvar render = /* @__PURE__ */ __name(async function(id26, 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 = \"#\" + id26;\n const iFrameID = \"i\" + id26;\n const iFrameID_selector = \"#\" + iFrameID;\n const enclosingDivID = \"d\" + id26;\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, id26, enclosingDivID, `font-family: ${fontFamily}`, XMLNS_XLINK_STD);\n } else {\n removeExistingElements(document, id26, 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, id26, 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, id26, version, diag);\n } catch (e) {\n if (config.suppressErrorRendering) {\n removeTempElements();\n } else {\n errorRenderer_default.draw(text, id26, 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=\"${id26}\"]`).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 id26 = `mermaid-${idGenerator.next()}`;\n txt = element.innerHTML;\n txt = dedent(utils_default.entityDecode(txt)).trim().replace(//gi, \"
    \");\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(id26, txt, element);\n element.innerHTML = svg;\n if (postRenderCallback) {\n await postRenderCallback(id26);\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((id26, text, container) => {\n return new Promise((resolve, reject) => {\n const performCall = /* @__PURE__ */ __name(() => new Promise((res, rej) => {\n mermaidAPI.render(id26, 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 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};\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 mermaid from 'mermaid'\n\nconst theme = document.querySelector('html')?.getAttribute('data-color-mode')\n\nmermaid.initialize({\n startOnLoad: false,\n // stop user configs in the mermaid files from overriding these keys\n secure: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'],\n // HTML tags in text are allowed (only script elements are removed) and click functionality is enabled\n securityLevel: 'antiscript',\n flowchart: {\n diagramPadding: 48,\n },\n gantt: {\n useWidth: 1200,\n },\n pie: {\n useWidth: 1200,\n },\n sequence: {\n diagramMarginY: 40,\n },\n theme: theme === 'dark' ? 'dark' : 'default',\n})\n\nexport default mermaid.render\n","export const ALLOWED_TAGS = [\n 'a',\n 'b',\n 'blockquote',\n 'br',\n 'dd',\n 'div',\n 'dl',\n 'dt',\n 'em',\n // foreignObject is necessary for links to work\n 'foreignObject',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'h7',\n 'h8',\n 'hr',\n 'i',\n 'li',\n 'ul',\n 'ol',\n 'p',\n 'pre',\n 'span',\n 'strike',\n 'strong',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'tr',\n]\n","import DOMPurify from 'dompurify'\nimport render from './mermaid-initializer'\nimport {ALLOWED_TAGS} from './constants'\nimport {assertSVGElement, invariant, openLinksInParent} from '../../render/utils'\n\nconst reSanitize = (content: string) =>\n DOMPurify.sanitize(content, {\n USE_PROFILES: {\n svg: true,\n },\n RETURN_DOM_FRAGMENT: true,\n // need this to support links in SVG\n HTML_INTEGRATION_POINTS: {foreignobject: true},\n ADD_TAGS: ALLOWED_TAGS,\n ADD_ATTR: ['transform-origin', 'dominant-baseline'],\n })\n\ntype RendererConfig = {\n data: string\n el: HTMLElement\n width: number\n}\n\nclass MermaidRenderer {\n data: string\n el: HTMLElement\n width: number\n\n constructor({data = '', el, width}: RendererConfig) {\n this.data = data\n this.el = el\n this.width = width\n }\n\n async render() {\n // We must set a minimum height to allow space for the view/pan controls\n const MIN_HEIGHT = 180\n\n // create a template element to safely render the diagram before sanitizing and appending it to the DOM\n const template = document.getElementById('mermaid-view-template')\n if (!template) return\n\n const {svg, bindFunctions} = await render('diagram', this.data, template)\n const sanitized = reSanitize(svg)\n // Many types of charts are generated with ridiculously huge margins.\n // This helps to mitigate that.\n const sanitizedSVG = sanitized.querySelector('svg')\n invariant(assertSVGElement(sanitizedSVG))\n\n // Manually set the svg height attribute based on the svg viewbox\n // See https://github.com/mermaid-js/mermaid/issues/3659\n const svgViewBoxParts = sanitizedSVG.getAttribute('viewBox')?.split(' ') || []\n const [, , svgViewBoxRawWidth, svgViewBoxRawHeight] = svgViewBoxParts\n if (!sanitizedSVG.hasAttribute('height')) {\n sanitizedSVG.setAttribute('height', svgViewBoxRawHeight)\n }\n\n sanitizedSVG.setAttribute('preserveAspectRatio', 'xMinYMin')\n openLinksInParent(sanitizedSVG)\n\n const mermaidNode = document.createElement('div')\n mermaidNode.classList.add('mermaid')\n mermaidNode.appendChild(sanitized)\n\n this.el.replaceChildren(mermaidNode)\n // We bind functions after the element is added to DOM so that Mermaid can find the element\n bindFunctions?.(this.el)\n\n const elBBox = this.el.getBoundingClientRect()\n // Make sure we get the padding / margin to avoid weird scroll bar\n // display in the dotcom iframe\n const diagramHeight = elBBox.height + elBBox.x + elBBox.y\n\n // Currently mermaid.js will not properly scale graph SVGs. See\n // https://github.com/mermaid-js/mermaid/issues/2657 and many similar\n // issues. The root cause is that mermaid calculates svg height/width\n // before overriding width to 100%. When rendered onto a narrower window\n // than max width, width will scale down but height will remain at the\n // original calculated value. This leaves massive top/bottom margins.\n //\n // To compensate, we take the width of the window\n // in dotcom, calculate how much the svg width will have to scale down, and\n // scale down the svg height by the same ratio.\n const svgWidth = Number(svgViewBoxRawWidth)\n\n if (svgWidth && this.width < svgWidth) {\n const ratio = this.width / svgWidth\n return Math.max(diagramHeight * ratio, MIN_HEIGHT)\n }\n\n return Math.max(diagramHeight, MIN_HEIGHT)\n }\n}\n\nexport default MermaidRenderer\n","import debounce from 'lodash.debounce'\nimport {MESSAGE_RESPONSE_TYPES, RENDER_FORMATS, STATUS_TYPES} from '../../render/constants'\nimport Status from '../../render/status'\nimport {assertHTMLElement, invariant, getGitHubDocsHostname} from '../../render/utils'\nimport type MermaidRenderer from './mermaid-renderer'\nimport octicons from '@primer/octicons'\n\nconst DOCS_LINK_PATH =\n '/get-started/writing-on-github/working-with-advanced-formatting/creating-diagrams#creating-mermaid-diagrams'\n\nexport type MermaidEventTypes = {onLoadEvent: MESSAGE_RESPONSE_TYPES; loadEvent: STATUS_TYPES}\n\nexport abstract class MermaidViewer {\n el: HTMLElement\n iframeMessenger: Status\n onLoadEvent: MESSAGE_RESPONSE_TYPES\n loadEvent: STATUS_TYPES\n\n constructor({onLoadEvent, loadEvent}: MermaidEventTypes) {\n const node = document.querySelector('.mermaid-view')\n\n invariant(assertHTMLElement(node), `Mermaid render root node does not exist. Got ${document.body.innerHTML}`)\n\n this.el = node\n this.iframeMessenger = new Status(RENDER_FORMATS.mermaid, {\n allowLinks: true,\n })\n\n this.loadEvent = loadEvent\n this.onLoadEvent = onLoadEvent\n\n let renderer: MermaidRenderer\n document.addEventListener(this.onLoadEvent, ((event: CustomEventType) => {\n renderer = this.onLoad(event, renderer)\n this.onAfterLoad(renderer, true)\n }) as EventListener)\n document.addEventListener(MESSAGE_RESPONSE_TYPES.readyAck, (() => {\n this.onAfterLoad(renderer, false)\n }) as EventListener)\n\n this.#panAndZoom()\n }\n\n lazyRender = (renderer: MermaidRenderer) =>\n debounce(async () => {\n const newWidth = this.el.getBoundingClientRect().width\n\n // The width of the element's container hasn't changed.\n if (renderer.width === newWidth) {\n return\n }\n\n renderer.width = newWidth\n const newHeight = await renderer.render()\n this.iframeMessenger.set(STATUS_TYPES.resize, {\n height: newHeight,\n })\n }, 200)\n\n protected abstract initialize(): void\n protected abstract onLoad(\n event: ContainerResizeEvent | MarkdownResponseEvent,\n renderer?: MermaidRenderer,\n ): MermaidRenderer\n\n private async onAfterLoad(renderer: MermaidRenderer, firstLoad = true) {\n try {\n // On initial load, the iframe is not the correct height. We need to\n // render the diagram to calculate the correct height, have the\n // embedding page resize the iframe, and then re-render the diagram.\n // To do this, we will use a two-pass render where we first render the\n // diagram and set the \"ready\" message and ask for a ready ack. The\n // embedder will ack the ready message once the iframe has been resized\n // _and redrawn on screen_ at the correct size. Once we receive the ack,\n // we will render the diagram again.\n //\n // This is necessary because some mermaid diagrams need the\n // container to be visible in order to calculate the correct positions\n // and dimensions of elements in the diagram.\n // See https://github.com/github/viewscreen/issues/471 for more details.\n const diagramHeight = await renderer.render()\n\n if (firstLoad) {\n this.iframeMessenger.set(STATUS_TYPES.ready, {\n height: diagramHeight,\n ack: true,\n })\n }\n } catch (error) {\n this.reportError(error as Error)\n }\n }\n\n protected reportError(error: Error) {\n const url = new URL(DOCS_LINK_PATH, getGitHubDocsHostname())\n const message = `\n ${error.message}\n \n For more information, see ${url.toString()}\n `.trim()\n this.iframeMessenger.set(STATUS_TYPES.error, {error: message})\n window.debug(error)\n }\n\n #panAndZoom = () => {\n const ZOOM_MIN = 0.5\n const ZOOM_MAX = 8\n\n let zoomLevel = 1\n const translate = {x: 0, y: 0}\n\n const reset = () => {\n zoomLevel = 1\n translate.x = 0\n translate.y = 0\n transformSvg(zoomLevel, translate.x, translate.y)\n }\n\n const doMove = (vertical: number, horizonal: number) => {\n translate.y += vertical\n translate.x += horizonal\n transformSvg(zoomLevel, translate.x, translate.y)\n }\n\n const doZoom = (value: number) => {\n zoomLevel += value\n zoomLevel = Math.min(Math.max(ZOOM_MIN, zoomLevel), ZOOM_MAX)\n transformSvg(zoomLevel, translate.x, translate.y)\n }\n\n const transformSvg = (zoom: number, x: number, y: number) => {\n const svg = this.el.getElementsByTagName('svg')[0]\n svg.style.transform = `translate(${x}px, ${y}px) scale(${zoom})`\n }\n\n const controlPanel = this.#createElement('div', 'mermaid-viewer-control-panel', '', null)\n const df = document.createDocumentFragment()\n df.appendChild(\n this.#createElement('button', 'btn zoom-in', octicons['zoom-in'].toSVG(), () => doZoom(0.1), 'Zoom in'),\n )\n df.appendChild(\n this.#createElement('button', 'btn zoom-out', octicons['zoom-out'].toSVG(), () => doZoom(-0.1), 'Zoom out'),\n )\n df.appendChild(this.#createElement('button', 'btn reset', octicons['sync'].toSVG(), reset, 'Reset view'))\n df.appendChild(\n this.#createElement('button', 'btn up', octicons['chevron-up'].toSVG(), () => doMove(100, 0), 'Pan up'),\n )\n df.appendChild(\n this.#createElement('button', 'btn down', octicons['chevron-down'].toSVG(), () => doMove(-100, 0), 'Pan down'),\n )\n df.appendChild(\n this.#createElement('button', 'btn left', octicons['chevron-left'].toSVG(), () => doMove(0, 100), 'Pan left'),\n )\n df.appendChild(\n this.#createElement('button', 'btn right', octicons['chevron-right'].toSVG(), () => doMove(0, -100), 'Pan right'),\n )\n\n controlPanel.appendChild(df)\n document.body.appendChild(controlPanel)\n }\n\n #createElement = (\n tag: string,\n className: string,\n innerHTML: string,\n onClick: ((event: MouseEvent) => void) | null,\n label?: string,\n ): HTMLElement => {\n const element = document.createElement(tag)\n element.className = className\n element.innerHTML = innerHTML\n element.onclick = onClick\n if (label) element.ariaLabel = label\n return element\n }\n}\n","import {decodeHTML} from '../../render/utils'\nimport MermaidRenderer from './mermaid-renderer'\nimport {MermaidViewer} from './mermaid-viewer'\n\nclass MermaidMarkdownViewer extends MermaidViewer {\n initialize() {\n this.iframeMessenger.set(this.loadEvent)\n }\n\n onLoad(event: MarkdownResponseEvent, renderer?: MermaidRenderer) {\n // the data gets HTML escaped when added to the content node, so we\n // have to unescape it here.\n const decoded = decodeHTML(event.detail.data)\n const width = event.detail.width\n\n if (!(renderer instanceof MermaidRenderer)) {\n renderer = new MermaidRenderer({data: decoded, el: this.el, width})\n window.addEventListener('resize', this.lazyRender(renderer))\n } else {\n renderer.width = width\n }\n\n return renderer\n }\n}\n\nexport {MermaidMarkdownViewer}\n","import '../../stylesheets/mermaid.scss'\nimport '../render'\nimport {MESSAGE_RESPONSE_TYPES, STATUS_TYPES} from '../render/constants'\nimport {onDocumentReady} from '../render/utils'\nimport {MermaidMarkdownViewer} from './lib/markdown-viewer'\n\nfunction init() {\n const viewer = new MermaidMarkdownViewer({\n loadEvent: STATUS_TYPES.markdown,\n onLoadEvent: MESSAGE_RESPONSE_TYPES.markdown,\n })\n\n viewer.initialize()\n}\n\nexport {init}\n\nonDocumentReady(init)\n"],"names":["inProgress","freeExports","exports","nodeType","freeModule","module","Buffer","undefined","allocUnsafe","buffer","isDeep","slice","length","result","constructor","copy","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","g","Object","freeSelf","self","root","Function","objectToString","prototype","toString","nativeMax","Math","max","nativeMin","min","now","Date","isObject","value","type","toNumber","isObjectLike","call","isSymbol","other","valueOf","replace","isBinary","test","func","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","apply","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","remainingWait","debounced","isInvoking","arguments","this","leadingEdge","cancel","clearTimeout","flush","_isNativeFunction","t","indexOf","n","Symbol","transform","arg","objectCreate","create","object","proto","asyncGeneratorStep","e","r","o","a","c","i","u","done","Promise","resolve","then","_asyncToGenerator","_next","_throw","dedent","templ","values","_i","strings","Array","from","indentLengths","reduce","arr","str","matches","match","concat","map","_a","_b","pattern_1","RegExp","string","forEach","endentations","endentation","indentedValue","includes","String","split","join","arrayBuffer","byteLength","set","valueof","index","x","right","bottom","left","epsilon","translateX","translateY","y","number","scale","d","center","offset","bandwidth","round","entering","__axis","axis","orient","tickArguments","tickValues","tickFormat","tickSizeInner","tickSizeOuter","tickPadding","window","devicePixelRatio","k","context","ticks","domain","format","spacing","range","range0","range1","position","selection","path","selectAll","data","tick","order","tickExit","exit","tickEnter","enter","append","attr","line","select","text","merge","insert","transition","isFinite","getAttribute","p","parentNode","remove","filter","each","_","tickSize","axisTop","axisBottom","none","selector","querySelector","empty","querySelectorAll","childMatcher","node","find","childFirst","firstElementChild","children","update","EnterNode","parent","datum","ownerDocument","namespaceURI","_parent","__data__","bindIndex","group","groupLength","dataLength","bindKey","key","keyValue","nodeByKeyValue","Map","keyValues","has","get","delete","arraylike","ascending","b","NaN","appendChild","child","insertBefore","next","xhtml","svg","xlink","xml","xmlns","name","prefix","namespaces","hasOwnProperty","space","local","attrRemove","removeAttribute","attrRemoveNS","fullname","removeAttributeNS","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","v","attrFunctionNS","defaultView","document","styleRemove","style","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","propertyRemove","propertyConstant","propertyFunction","classArray","trim","classList","ClassList","_node","_names","classedAdd","names","list","add","classedRemove","classedTrue","classedFalse","classedFunction","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","lower","previousSibling","firstChild","creatorInherit","uri","documentElement","createElement","createElementNS","creatorFixed","namespace","constantNull","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","onRemove","typename","on","__on","j","m","removeEventListener","listener","onAdd","event","contextListener","addEventListener","push","dispatchEvent","params","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","splice","contains","Selection","groups","parents","_groups","_parents","subgroups","subnode","subgroup","isArray","arrayAll","selectorAll","selectChild","childFind","selectChildren","childrenFilter","matcher","bind","enterGroup","updateGroup","previous","i0","i1","_enter","_exit","sparse","onenter","onupdate","onexit","groups0","groups1","m0","m1","merges","group0","group1","compareDocumentPosition","sort","compare","compareNode","sortgroups","sortgroup","callback","nodes","size","getAttributeNS","property","classed","html","creator","before","deep","typenames","parseTypenames","dispatch","iterator","noop","Error","Dispatch","types","T","that","taskHead","taskTail","timeout","interval","clockLast","clockNow","clockSkew","clock","performance","setFrame","requestAnimationFrame","f","clearNow","Timer","_call","_time","timer","delay","restart","wake","timerFlush","t0","t2","t1","Infinity","sleep","nap","poke","clearInterval","setInterval","elapsed","stop","emptyOn","emptyTween","id","timing","schedules","__transition","tween","start","state","duration","ease","init","schedule","svgNode","degrees","PI","rotate","skewX","scaleX","scaleY","sqrt","atan2","atan","interpolateTransform","parse","pxComma","pxParen","degParen","pop","s","q","xa","ya","xb","yb","translate","interpolateTransformCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","interpolateTransformSvg","baseVal","consolidate","matrix","tweenRemove","tween0","tween1","tweenFunction","tweenValue","_id","factory","extend","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","color","l","toLowerCase","exec","rgbn","Rgb","rgba","hsla","rgbConvert","opacity","rgb_formatHex","hex","rgb_formatRgb","clampa","clampi","isNaN","h","Hsl","hslConvert","clamph","clampt","hsl2rgb","m2","basis","v0","v1","v2","v3","t3","channels","assign","displayable","formatHex8","formatHsl","pow","clamp","linear","nogamma","rgbGamma","exponential","gamma","end","rgbSpline","spline","colors","floor","reA","reB","source","am","bm","bs","bi","lastIndex","one","zero","interpolate","value1","string00","interpolate0","string1","string0","string10","attrTweenNS","attrInterpolateNS","_value","attrTween","attrInterpolate","delayFunction","delayConstant","durationFunction","durationConstant","Transition","_name","newId","selection_prototype","inherit","id0","id1","on0","on1","sit","every","onFunction","styleTween","styleNull","listener0","styleMaybeRemove","styleInterpolate","textTween","textInterpolate","removeFunction","easeConstant","easeVarying","reject","interrupt","defaultTiming","active","abs","radians","Xn","Zn","labConvert","Lab","Hcl","hcl2lab","z","rgb2lrgb","xyz2lab","lab2xyz","lrgb2rgb","hcl","hclConvert","cos","sin","hue","initRange","InternMap","entries","keyof","super","defineProperties","_intern","_key","intern_get","intern_set","intern_delete","Set","implicit","ordinal","unknown","band","step","ordinalRange","r0","r1","paddingInner","paddingOuter","align","rescale","reverse","ceil","rangeRound","padding","e10","e5","e2","tickSpec","count","power","log10","error","factor","i2","inc","tickIncrement","descending","bisector","compare1","compare2","delta","lo","hi","mid","ascendingBisect","bisectRight","genericArray","nb","na","setTime","date","ArrayBuffer","isView","DataView","unit","normalize","bimap","d0","d1","polymap","bisect","target","continuous","untransform","piecewise","output","input","invert","transformer","prefixExponent","re","formatSpecifier","specifier","FormatSpecifier","fill","sign","symbol","width","comma","precision","formatDecimalParts","toExponential","coefficient","exponent","toFixed","toLocaleString","toPrecision","formatRounded","toUpperCase","formatPrefix","prefixes","linearish","tickStep","precisionPrefix","precisionRound","precisionFixed","nice","prestep","maxIter","locale","grouping","thousands","Number","substring","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","percent","minus","nan","newFormat","formatTypes","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","formatTrim","charCodeAt","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationYear","timeInterval","floori","offseti","field","millisecond","second","getMilliseconds","getUTCSeconds","timeMinute","getSeconds","getMinutes","utcMinute","setUTCSeconds","getUTCMinutes","timeHour","getHours","utcHour","setUTCMinutes","getUTCHours","timeDay","setHours","setDate","getDate","getTimezoneOffset","utcDay","setUTCHours","setUTCDate","getUTCDate","unixDay","timeWeekday","getDay","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","setMonth","getMonth","getFullYear","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","timeYear","setFullYear","utcYear","setUTCFullYear","ticker","year","month","week","day","hour","minute","tickIntervals","tickInterval","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","H","M","S","L","utcDate","UTC","newDate","timeFormat","pads","numberRe","percentRe","requoteRe","pad","requote","formatRe","formatLookup","parseWeekdayNumberSunday","w","parseWeekdayNumberMonday","parseWeekNumberSunday","U","parseWeekNumberISO","V","parseWeekNumberMonday","W","parseFullYear","parseYear","parseZone","Z","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","Q","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","dISO","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","x0","x1","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","utcFormats","parses","parseSpecifier","charAt","newParse","X","utcFormat","utcParse","formatLocale","pi","halfPi","tau","asin","tauEpsilon","Path","digits","_x0","_y0","_x1","_y1","_append","appendRound","moveTo","closePath","lineTo","quadraticCurveTo","y1","bezierCurveTo","x2","y2","arcTo","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","acos","t01","t21","arc","a0","a1","ccw","dx","dy","cw","da","rect","withPath","shape","RangeError","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","cornerTangents","rc","ox","oy","x11","y11","x10","y10","x00","y00","d2","D","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cx","cy","cornerRadius","padRadius","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","p0","p1","oc","x3","y3","x32","y32","intersect","ax","ay","bx","by","kc","lc","centroid","Linear","_context","defined","curve","defined0","lineStart","lineEnd","point","sortValues","pie","sum","arcs","pa","Basis","BasisClosed","BasisOpen","areaStart","_line","areaEnd","_point","_x2","_x3","_x4","_y2","_y3","_y4","Bump","_x","bumpX","bumpY","Bundle","beta","_basis","_beta","_y","custom","bundle","_k","Cardinal","tension","cardinal","CardinalClosed","_x5","_y5","CardinalOpen","_l01_a","_l01_2a","_l12_a","_l12_2a","_l23_a","_l23_2a","CatmullRom","alpha","_alpha","x23","y23","catmullRom","CatmullRomClosed","CatmullRomOpen","LinearClosed","slope3","h0","h1","s0","s1","slope2","MonotoneX","MonotoneY","ReflectContext","monotoneX","monotoneY","Natural","controlPoints","Step","_t","stepBefore","stepAfter","_t0","px","py","applyX","applyY","location","invertX","invertY","rescaleX","rescaleY","matchIconName","validateIconName","icon","allowSimpleName","provider","defaultIconDimensions","freeze","top","height","defaultIconTransformations","vFlip","hFlip","defaultIconProps","defaultExtendedIconProps","body","hidden","mergeIconData","obj1","obj2","mergeIconTransformations","internalGetIconData","tree","icons","aliases","currentProps","name2","defaultIconSizeCustomisations","defaultIconCustomisations","unitsSplit","unitsTest","calculateSize","ratio","oldParts","newParts","code","shift","isNumber","num","parseFloat","regex","randomPrefix","random","counter","unknownIcon","iconsStore","loaderStore","registerIconPacks","iconLoaders","iconLoader","debug","loader","getRegisteredIconData","async","iconName","fallbackPrefix","validate","colonSeparated","dashSeparated","stringToIcon","iconData","resolved","keys","getIconsTree","getIconData","getIconSVG","customisations","renderData","fullIcon","fullCustomisations","box","props","transformations","tempValue","rotation","unshift","content","tag","defs","endEnd","splitSVGDefs","wrapSVGContent","customisationsWidth","customisationsHeight","boxWidth","boxHeight","attributes","setAttr","prop","isUnsetKeyword","viewBox","iconToSVG","renderAttribsHTML","iconToHTML","ids","newID","escapedID","replaceIDs","funcToString","isBuffer","labelHelper","_classes","cssClasses","useHtmlLabels","htmlLabels","shapeSvg","domId","labelEl","labelStyle","label","text2","flowchart","wrappingWidth","addSvgBackground","img","bbox","getBBox","halfPadding","div","dv","images","getElementsByTagName","noImgText","all","res","setupImage","display","flexDirection","bodyFontSize","fontSize","enlargingFactor","parsedBodyFontSize","minWidth","maxWidth","complete","getBoundingClientRect","centerLabel","insertLabel","updateNodeBounds","element","getNodeClasses","extra","look","createPathFromPoints","points","pointStrings","generateFullSineWavePoints","amplitude","numCycles","deltaX","deltaY","cycleLength","frequency","midY","generateCirclePoints","centerX","centerY","radius","numPoints","startAngleRad","angleStep","angle","intersect_rect_default","sx","sy","applyStyle","dom","styleFn","addHtmlLabel","fo","lineBreakRegex","labelClass","isNode","createLabel_default","_vertexText","isTitle","vertexText","info","svgLabel","rows","row","tspan","createRoundedRectPathD","totalWidth","totalHeight","solidStateFill","handDrawnSeed","hachureAngle","hachureGap","fillWeight","roughness","stroke","seed","compileStyles","stylesMap","styles2Map","cssCompiledStyles","cssStyles","stylesArray","styles","styleMap","styles2String","labelStyles","nodeStyles","borderStyles","backgroundStyles","userNodeOverrides","themeVariables","nodeBorder","mainBkg","fillStyle","strokeWidth","fillLineDash","siteConfig","clusterBkg","clusterBorder","diff","rect2","trace","JSON","stringify","roughNode","rx","ry","subGraphTitleTopMargin","span","rectBox","offsetX","offsetY","cluster","labelBBox","noteGroup","roundedWithTitle","altBackground","compositeBackground","compositeTitleBackground","outerRectG","innerRect","innerHeight","innerY","isAlt","roughOuterNode","rectangle","roughInnerNode","outerRectClass","kanbanSection","shapes","squareRect","divider","strokeLineDash","clusterElems","insertCluster","elem","clear","intersectNode","intersect_node_default","intersectEllipse","det","intersect_ellipse_default","intersectCircle","intersect_circle_default","intersectLine","p2","q1","q2","a2","b1","b2","c1","c2","r2","r3","r4","denom","sameSign","intersect_line_default","intersectPolygon","polyPoints","intersections","minX","POSITIVE_INFINITY","minY","entry","pdx","pdy","distp","qdx","qdy","distq","intersect_default","circle","ellipse","polygon","anchor","classes","circleElem","generateArcPoints","clockwise","midX","transformedX","transformedY","distance","scaledCenterDistance","angleRange","angle2","bowTieRect","bowTieRectPath","bowTieRectShapePath","bowTieRectShape","insertPolygonShape","card","pathData","choice","choicePath","choiceShape","createLine","xAxis45","yAxis45","lineLength","crossedCircle","circleNode","linePath","lineNode","crossedCircle2","generateCirclePoints2","curlyBraceLeft","rectPoints","newCurlyBracePath","curlyBraceLeftNode","rectPath","rectShape","curlyBraceLeftShape","generateCirclePoints3","curlyBraceRight","curlyBraceRightNode","curlyBraceRightShape","generateCirclePoints4","curlyBraces","leftCurlyBracePoints","rightCurlyBracePoints","newLeftCurlyBracePath","leftCurlyBraceNode","newRightCurlyBracePath","rightCurlyBraceNode","curlyBracesShape","curvedTrapezoid","rw","tw","shapeNode","createCylinderPathD","createOuterCylinderPathD","createInnerCylinderPathD","cylinder","cylinder2","outerPathData","innerPathData","outerNode","innerLine","pos","dividedRectangle","rectOffset","pts","poly","doublecircle","circleGroup","outerOptions","innerOptions","outerRoughNode","innerRoughNode","outerCircle","innerCircle","filledCircle","config","filledCircle2","flippedTriangle","flippedTriangle2","forkJoin","dir","state2","lineColor","halfRoundedRectangle","createHexagonPathD","hexagon","hourglass","assetHeight","assetWidth","iconSize","defaultWidth","topLabel","labelPadding","iconNode","outerWidth","outerHeight","iconShape","outerShape","iconElem","iconBBox","iconWidth","iconHeight","iconX","iconY","nodeHeight","iconCircle","diameter","SQRT2","iconRounded","iconSquare","imageSquare","Image","src","decode","imageNaturalWidth","naturalWidth","imageNaturalHeight","naturalHeight","imageAspectRatio","imageRawWidth","imageWidth","constraint","imageHeight","imageNode","image","inv_trapezoid","drawRect","labelPaddingX","labelPaddingY","options2","labelRect","lean_left","lean_right","lightningBolt","gap","lightningBolt2","createCylinderPathD2","outerOffset","createOuterCylinderPathD2","createInnerCylinderPathD2","linedCylinder","linedWaveEdgedRect","waveAmplitude","finalH","waveEdgeRect","multiRect","outerPathPoints","innerPathPoints","outerPath","innerPath","innerNode","multiRect2","multiWaveEdgedRectangle","wavePoints","lastWavePoint","note","noteBkgColor","noteBorderColor","noteShapeNode","createDecisionBoxPathD","question","rect_left_inv_arrow","notch","rectWithTitle","description","title","div2","dv2","textRows","titleBox","descr","roughLine","roundedRect","shadedProcess","slopedRect","squareRect2","stadium","stateEnd","stateBorder","innerFill","circle2","stateStart","subroutine","l1","l2","el","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","textHelper","GAP","class","TEXT_PADDING","annotationGroup","labelGroup","membersGroup","methodsGroup","annotationGroupHeight","labelGroupHeight","membersGroupHeight","annotations","annotation","addText","labelGroupBBox","yOffset","member","members","parseClassifier","methodsYOffset","method","methods","annotationGroupBBox","parentGroup","textEl","startsWith","numberOfLines","textChild","replaceAll","classBox","PADDING","classNode","renderExtraBox","hideEmptyMembersBox","roughRect","rectBBox","newTranslateY","newTranslateX","_2","nodes2","textAnchor","colorRegex","colorStyle","match2","colorFromPriority","kanbanItem","kanbanNode","orgWidth","labelElTitle","link","ticketUrl","ticket","kanban","ticketBaseUrl","bbox2","labelElAssigned","bboxAssigned","assigned","heightAdj","lineX","shapesDefs","semanticName","shortName","internalAliases","handler","shapes2","undocumentedShapes","flatMap","alias","fromEntries","generateShapeMap","isValidShape","nodeElems","insertNode","renderOptions","newEl","shapeHandler","securityLevel","linkTarget","tooltip","haveCallback","setNodeElem","clear2","positionNode","clusterNode","typedArray","byteOffset","Hex","dec","hasAlpha","isFullLength","multiplier","bits","bitsOffset","mask","HSL","hueRe","_hue2deg","channel","charCode","isAlphaPercentage","lang","Keyword","cyanaqua","transparent","RGB","isRedPercentage","isGreenPercentage","isBluePercentage","keyword","hsl","changed","is","isInteger","customizer","isNew","newValue","Hash","MapCache","Stack","pairs","LARGE_ARRAY_SIZE","global","_isNativeReflectConstruct","Boolean","Reflect","construct","ymin","ymax","islope","edge","randomizer","helper","fillPolygons","_fillPolygons","ops","renderLines","doubleLineOps","dotsOnLines","dashedLine","dashOffset","dashGap","zigzagOffset","zigzagLines","imul","A","C","substr","$1","P","O","randOffset","G","randOffsetWithRange","E","opset","$","disableMultiStroke","op","curveStepCount","curveFitting","increment","F","estimatedPoints","I","maxRandomnessOffset","disableMultiStrokeFill","R","bowing","preserveVertices","curveTightness","N","B","J","K","Y","tt","et","defaultOptions","fillShapeRoughnessGain","_o","newSeed","_d","sets","linearPath","_mergedShape","simplification","opsToPath","toPaths","fillSketch","st","canvas","ctx","getContext","gen","draw","getDefaultOptions","fixedDecimalPlaceDigits","save","strokeStyle","lineWidth","setLineDash","strokeLineDashOffset","lineDashOffset","_drawToContext","restore","fillLineDashOffset","beginPath","generator","nt","ot","at","_typeof","toPrimitive","objectProto","nativeObjectToString","symToStringTag","toStringTag","isOwn","unmasked","inherited","isArr","isArg","isArguments","isBuff","isType","isTypedArray","skipIndexes","iteratee","objValue","_defineProperties","enumerable","configurable","writable","defineProperty","_createClass","_classCallCheck","getSubGraphTitleMargins","subGraphTitleMargin","subGraphTitleBottomMargin","subGraphTitleTotalMargin","DEC2HEX","dec2hex","TYPE","ALL","logMessage","_len","messageArgs","Logger","loggerFn","console","log","quiet","_defineProperty","_loggerFn","storeMessage","bufCopy","nextBuffer","bufferSize","_step","numMessages","_iterator","_createForOfIteratorHelper","message","arrayLikeToArray","unsupportedIterableToArray","err","Render","logger","_window$console","IS_QUIET_MODE","_arrayLikeToArray","InvalidProtocolError","_Error","_callSuper","_inherits","_wrapNativeSuper","FailedError","_Error2","_this","isClientUrl","url","renderableLoaderDefaults","setStatus","attempts","json","statusOptionDefaults","allowLinks","initialMessage","STATUS_TYPES","hello","_onSuccess","WeakMap","_onError","_Status_brand","WeakSet","_onBeforeSend","_prepareFetchedData","_prepareFetchedData2","_regeneratorRuntime","_callee2","maybeJson","_context2","prev","headers","abrupt","sent","unescape","fatal","reportStatusError","Status","_document$body$getAtt","_document$body$getAtt2","_this2","opts","initial","remaining","initialStatusTimeout","acked","sendInitial","_classPrivateFieldInitSpec","loaded","status","payload","alreadySentStatus","isDefined","resize","ago","when","messages","ready","onReady","requireAck","post","localTiming","submitTiming","_step2","_iterator2","msg","origin","_navigator$sendBeacon","_navigator","baseRenderUrl","navigator","sendBeacon","_navigator$sendBeacon2","_navigator2","cmd","MESSAGE_RESPONSE_TYPES","branding","renderableContent","ack","onAck","markdown","trigger","containerSize","readyAck","sandboxReady","scripts","originHostname","URL","host","isSameOrigin","githubHostname","_ref","_unused","identity","handleCmd","_objectSpread","githubEnv","LinkNavigator","hasParent","haveParent","hash","protocol","handleMessage","_load","_callee","_finalOptions$attempt","_finalOptions$before","_finalOptions$success","_finalOptions$error","_finalOptions$before2","finalOptions","requestController","abortTimeoutId","settings","response","_this3","_args","loading","clientTimeoutAttempts","_assertClassBrand","success","_classPrivateFieldGet","AbortController","abort","signal","fetch","finish","load","submitGiveup","Response","_msg$identity","parentHostname","referrer","hostname","targetOrigin","postMessage","reportErrors","ErrorEvent","filename","_slicedToArray","_setPrototypeOf","setPrototypeOf","__proto__","__esModule","assigner","sources","guard","_getPrototypeOf","getPrototypeOf","Uint8Array","UNKNOWN_FUNCTION","stackString","stack","parseResult","parts","chromeRe","isNative","isEval","submatch","chromeEvalRe","file","methodName","lineNumber","column","parseChrome","winjsRe","parseWinjs","geckoRe","geckoEvalRe","parseGecko","nodeRe","parseNode","javaScriptCoreRe","parseJSC","weekdays","utcOffset","ms","$L","utc","$u","$x","$offset","$d","$y","$M","$D","$W","$H","$m","$s","$ms","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","unix","getTime","toDate","$locale","weekStart","$set","daysInMonth","subtract","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","toJSON","toISOString","toUTCString","$i","isDayjs","en","Ls","asyncIterator","define","wrap","Generator","Context","makeInvokeMethod","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","_sent","dispatchException","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","displayName","isGeneratorFunction","mark","awrap","rval","handle","delegateYield","baseContext","originalHistoryState","history","ERROR_METADATA_KEYS","errorFallback","failbotContext","isBrowserExtension","loadTime","unloaded","reportable","locationData","pathname","search","_pathParts$slice","_pathParts$slice2","action","urlParams","paramsMetadata","lineno","safeError","exceptionDetail","stacktrace","frame","function","colno","href","readyState","historyState","timeSinceLoad","extensionScripts","navigations","getNavigations","platform","URLSearchParams","memo","pair","logging","debugMessages","viewscreenUrl","errorsReported","errorStack","_scripts","script","pushNavigation","loadType","sessionStorage","setItem","NAVIGATIONS_KEY","_unused3","setNavigations","getItem","_unused2","oldURL","newURL","eventState","pjaxDirection","direction","pjaxState","typedArrayTags","nodeIsTypedArray","isLength","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","reEscapedHtml","reHasEscapedHtml","unescapeHtmlChar","symbolProto","symbolToString","baseToString","freeProcess","process","require","binding","objectAssign","htmlAttributes","attrObj","option","heights","version","toSVG","closestNaturalHeight","naturalHeights","acc","luminance","toLinear","propertyIsEnumerable","getOwnPropertySymbols","propIsEnumerable","test1","getOwnPropertyNames","test2","fromCharCode","test3","letter","shouldUseNative","symbols","to","val","toObject","array","otherArgs","amount","reIsUint","Wrapper","onDocumentReady","initializer","decodeHTML","_doc$documentElement$","DOMParser","parseFromString","InvariantViolationError","invariant","condition","assertElement","Element","assertHTMLElement","HTMLElement","assertSVGElement","SVGElement","getGitHubDocsHostname","DEFAULT_DOCS_LINK_HOSTNAME","getDomainName","targetHostname","sourceHostname","openLinksInParent","hasAttribute","amountCurrent","amountNext","_defaults","breaks","extensions","gfm","hooks","pedantic","renderer","silent","tokenizer","walkTokens","changeDefaults","newDefaults","escapeTest","escapeReplace","escapeTestNoEncode","escapeReplaceNoEncode","escapeReplacements","getEscapeReplacement","ch","escape$1","encode","unescapeTest","caret","edit","opt","obj","valSource","getRegex","cleanUrl","encodeURI","noopTest","splitCells","tableRow","cells","escaped","curr","rtrim","suffLen","currChar","outputLink","cap","raw","lexer","inLink","token","tokens","inlineTokens","_Tokenizer","rules","block","newline","codeBlockStyle","fences","matchIndentToCode","indentToCode","matchIndentInNode","indentInNode","indentCodeCompensation","inline","anyPunctuation","heading","trimmed","depth","hr","blockquote","lines","inBlockquote","currentLines","currentRaw","currentText","blockTokens","lastToken","oldToken","newText","newToken","bull","isordered","ordered","loose","items","itemRegex","endsWithBlankLine","endEarly","itemContents","repeat","nextLine","blankLine","indent","trimStart","nextBulletRegex","hrRegex","fencesBeginRegex","headingBeginRegex","rawLine","ischecked","istask","task","checked","trimEnd","spacers","hasMultipleLineBreaks","some","pre","def","table","aligns","item","header","cell","lheading","paragraph","escape","inRawBlock","trimmedUrl","rtrimSlash","lastParenIndex","level","findClosingBracket","linkLen","reflink","links","nolink","emStrong","maskedSrc","prevChar","emStrongLDelim","punctuation","lLength","rDelim","rLength","delimTotal","midDelimTotal","endReg","emStrongRDelimAst","emStrongRDelimUnd","lastCharLength","codespan","hasNonSpaceChars","hasSpaceCharsOnBothEnds","br","del","autolink","prevCapZero","_backpedal","inlineText","bullet","_paragraph","_blockLabel","_tag","_comment","blockNormal","gfmTable","blockGfm","blockPedantic","_punctuation","_inlineComment","_inlineLabel","inlineNormal","blockSkip","reflinkSearch","inlinePedantic","inlineGfm","inlineBreaks","normal","_Lexer","inlineQueue","lex","lexInline","lastParagraphClipped","cutSrc","tabs","extTokenizer","startBlock","startIndex","tempSrc","tempStart","getStartIndex","errMsg","keepPrevChar","lastIndexOf","startInline","_Renderer","parser","langString","parseInline","listitem","itemBody","checkbox","tablecell","tablerow","strong","em","cleanHref","_TextRenderer","_Parser","textRenderer","anyToken","renderers","genericToken","ret","textToken","_Hooks","static","preprocess","postprocess","processAllTokens","markedInstance","defaults","setOptions","Parser","Renderer","TextRenderer","Lexer","Tokenizer","Hooks","use","tableToken","listToken","childTokens","flat","pack","ext","prevRenderer","extLevel","rendererProp","rendererFunc","useNewRenderer","tokenizerProp","tokenizerFunc","prevTokenizer","hooksProp","hooksFunc","prevHook","passThroughHooks","packWalktokens","origOpt","warn","throwError","catch","marked","getDefaults","preprocessMarkdown","markdownAutoWrap","withoutMultipleNewlines","withoutExtraSpaces","markdownToLines","preprocessedMarkdown","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","addHtmlSpan","addBackground","createTspan","textElement","lineIndex","lineHeight","computeWidthOfText","testElement","testSpan","updateTextContentAndStyles","textLength","getComputedTextLength","computeDimensionOfText","textDimension","createFormattedText","structuredText","bkg","checkWidth","line2","linesUnderWidth","preparedLine","wrappedLine","innerTspan","replaceIconSubstring","createText","htmlText","decodedReplacedText","inputForKatex","nodeLabelTextStyle","edgeLabelRectStyle","edgeLabelTextStyle","Channel","hue2rgb","rgb2hsl","upper","_construct","_arrayWithHoles","_nonIterableRest","memoize","resolver","memoized","cache","Cache","constants_1","decodeURI","decodeURIComponent","BLANK_URL","charsToDecode","decodedUrl","ctrlCharactersRegex","htmlEntitiesRegex","htmlCtrlEntityRegex","whitespaceEscapeCharsRegex","sanitizedUrl","relativeFirstCharacters","isRelativeUrlWithoutProtocol","urlSchemeParseResults","urlSchemeRegex","urlScheme","invalidProtocolRegex","backSanitized","canParse","isValidUrl","url_1","_possibleConstructorReturn","RENDER_FORMATS","_iterableToArrayLimit","keysFunc","iterable","eq","funcProto","objectCtorString","srcIndex","mergeFunc","srcValue","stacked","isCommon","isTyped","isArrayLikeObject","Ctor","keysIn","isFunction","baseMerge","_ensureHSL","_ensureRGB","selectSvgElement","sandboxElement","doc","contentDocument","internalHelpers","common","getConfig","insertEdge","insertEdgeLabel","insertMarkers","interpolateToCurve","positionEdgeLabel","layoutAlgorithms","registerLayoutLoaders","loaders","registerDefaultLayoutLoaders","render","data4Layout","layoutAlgorithm","layoutDefinition","algorithm","getRegisteredLayoutAlgorithm","fallback","constant","nativeNow","lastCalled","stamp","markerOffsets","aggregation","extension","composition","dependency","lollipop","arrow_point","calculateDeltaAndAngle","point1","point2","pointTransformer","getLineFunctionsWithOffset","DIRECTION","hasOwn","arrowTypeStart","arrowTypeEnd","differenceToEnd","differenceInYEnd","differenceToStart","differenceInYStart","startMarkerHeight","endMarkerHeight","adjustment","differenceInXEnd","differenceInXStart","_unsupportedIterableToArray","addEdgeMarkers","svgPath","diagramType","addEdgeMarker","arrowTypesMap","arrow_cross","arrow_barb","arrow_circle","arrowType","endMarkerType","edgeLabels","terminalLabels","getLabelStyles","styleArray","labelElement","labelType","edgeLabel","startLabelLeft","startLabelElement","startEdgeLabelLeft","inner","slBox","startLeft","setTerminalWidth","startLabelRight","startEdgeLabelRight","startRight","endLabelLeft","endLabelElement","endEdgeLabelLeft","endLeft","endLabelRight","endEdgeLabelRight","endRight","paths","updatedPath","originalPath","calcLabelPosition","calcTerminalLabelPosition","outsideNode","intersection","outsidePoint","insidePoint","cutPathAtIntersect","_points","boundaryNode","lastPointOutside","isInside","inter","pointPresent","extractCornerPoints","cornerPoints","cornerPointPositions","findAdjacentPoint","pointA","pointB","xDiff","yDiff","fixCorners","lineData","newLineData","prevPoint","nextPoint","cornerPoint","newPrevPoint","newNextPoint","newCornerPoint","clusterDb","startNode","endNode","pointsHasChanged","tail","head","toCluster","fromCluster","lineFunction","strokeClasses","thickness","pattern","edgeStyles","svgPathNode","arrowMarkerAbsolute","markerArray","markerName","markers","cross","barb","markers_default","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","type2","removeDirectives","isSubstringInArray","defaultCurve","curveName","formatUrl","linkStr","runFunc","functionName","arrPaths","len","fnName","traverseEdge","totalDistance","calculatePoint","roundNumber","distanceToTraverse","remainingDistance","vectorDistance","distanceRatio","calcCardinalityPosition","isRelationTypePresent","initialPosition","cardinalityPosition","terminalMarkerSize","structuredClone","getStylesFromArray","cnt","generateId","makeRandomHex","characters","getTextObj","textMargin","valign","drawSimpleText","textData","nText","_fontSizePx","parseFontSize","textElem","fontFamily","fontWeight","wrapLabel","joinWith","completedLines","wordLength","calculateTextWidth","nextLineLength","hyphenatedStrings","remainingWord","breakString","hyphenCharacter","margin","character","currentCharacter","isLastLine","hyphenatedNextLine","calculateTextHeight","calculateTextDimensions","decoder","fontFamilies","dims","fontFamily2","cHeight","dim","textObj","bBox","InitIDGenerator","deterministic","entityDecode","isDetailedError","insertTitle","cssClass","titleTopMargin","bounds","fontSizeNumber","cleanAndMerge","defaultData","utils_default","assignWithDepth","encodeEntities","txt","innerTxt","decodeEntities","getEdgeId","handleUndefinedAttr","attrValue","uid","maskSrcKey","IE_PROTO","reIsHostCtor","reIsNative","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","_assertThisInitialized","ReferenceError","isFrozen","getOwnPropertyDescriptor","seal","fun","thisValue","Func","arrayForEach","unapply","arrayLastIndexOf","arrayPop","arrayPush","arraySplice","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","objectHasOwnProperty","regExpTest","typeErrorCreate","_len2","_key2","addToSet","transformCaseFunc","lcElement","cleanArray","newObject","lookupGetter","desc","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","mathMl","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","EXPRESSIONS","getGlobal","purify","createDOMPurify","DOMPurify","removed","isSupported","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","NodeFilter","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","trustedTypes","ElementPrototype","getNextSibling","getChildNodes","getParentNode","template","trustedTypesPolicy","emptyHTML","implementation","createNodeIterator","createDocumentFragment","importNode","afterSanitizeAttributes","afterSanitizeElements","afterSanitizeShadowDOM","beforeSanitizeAttributes","beforeSanitizeElements","beforeSanitizeShadowDOM","uponSanitizeAttribute","uponSanitizeElement","uponSanitizeShadowNode","createHTMLDocument","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","tagNameCheck","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","tbody","TRUSTED_TYPES_POLICY","createHTML","createScriptURL","purifyHostElement","createPolicy","ATTR_NAME","policyName","scriptUrl","_createTrustedTypesPolicy","ALL_SVG_TAGS","ALL_MATHML_TAGS","_forceRemove","_removeAttribute","attribute","getAttributeNode","_initDocument","dirty","leadingWhitespace","dirtyPayload","createDocument","createTextNode","childNodes","_createNodeIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","_isClobbered","nodeName","hasChildNodes","_isNode","_executeHooks","currentNode","hook","_sanitizeElements","tagName","allowedTags","_isBasicCustomElement","childClone","__removalCount","parentTagName","_checkValidNamespace","expr","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","hookEvent","attrName","keepAttr","allowedAttributes","forceKeepAttr","getAttributeType","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","nextNode","sanitize","importedNode","returnNode","nodeIterator","shadowroot","shadowrootmode","serializedHTML","outerHTML","doctype","setConfig","clearConfig","isValidAttribute","addHook","entryPoint","hookFunction","removeHook","removeHooks","removeAllHooks","ListCache","changes","change","weight","inverse","color1","color2","g1","g2","weightScale","weightNormalized","alphaDelta","weight1","weight2","configFromInitialize","__defProp","__name","__export","LEVELS","setLogLevel","numericLevel","frontMatterRegex","directiveRegex","anyCommentRegex","UnknownDiagramError","detectors","detectType","config2","detector","registerLazyLoadedDiagrams","diagrams2","addDetector","getDiagramLoader","dst","clobber","assignWithDepth_default","oldAttributeBackgroundColorOdd","oldAttributeBackgroundColorEven","mkBorder","col","darkMode","Theme","background","primaryColor","noteTextColor","THEME_COLOR_LIMIT","updateColors","primaryTextColor","secondaryColor","tertiaryColor","primaryBorderColor","secondaryBorderColor","tertiaryBorderColor","secondaryTextColor","tertiaryTextColor","arrowheadColor","textColor","border2","nodeBkg","defaultLinkColor","titleColor","edgeLabelBackground","darken","nodeTextColor","actorBorder","actorBkg","actorTextColor","actorLineColor","labelBoxBkgColor","signalColor","signalTextColor","labelBoxBorderColor","labelTextColor","loopTextColor","activationBorderColor","activationBkgColor","sequenceNumberColor","sectionBkgColor","altSectionBkgColor","sectionBkgColor2","excludeBkgColor","taskBorderColor","taskBkgColor","activeTaskBorderColor","activeTaskBkgColor","lighten","gridColor","doneTaskBkgColor","doneTaskBorderColor","critBorderColor","critBkgColor","todayLineColor","taskTextColor","taskTextOutsideColor","taskTextLightColor","taskTextDarkColor","taskTextClickableColor","personBorder","personBkg","transitionColor","transitionLabelColor","stateLabelColor","stateBkg","labelBackgroundColor","compositeBorder","innerEndBackground","errorBkgColor","errorTextColor","specialStateColor","cScale0","cScale1","cScale2","cScale3","cScale4","cScale5","cScale6","cScale7","cScale8","cScale9","cScale10","cScale11","scaleLabelColor","classText","fillType0","fillType1","fillType2","fillType3","fillType4","fillType5","fillType6","fillType7","pie1","pie2","pie3","pie4","pie5","pie6","pie7","pie8","pie9","pie10","pie11","pie12","pieTitleTextSize","pieTitleTextColor","pieSectionTextSize","pieSectionTextColor","pieLegendTextSize","pieLegendTextColor","pieStrokeColor","pieStrokeWidth","pieOuterStrokeWidth","pieOuterStrokeColor","pieOpacity","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","critical","cScaleLabel2","pie0","themes_default","base","dark","default","forest","neutral","config_schema_default","deterministicIDSeed","elk","mergeEdges","nodePlacementStrategy","themeCSS","sequence","messageFont","messageFontFamily","messageFontSize","messageFontWeight","noteFont","noteFontFamily","noteFontSize","noteFontWeight","actorFont","actorFontFamily","actorFontSize","actorFontWeight","gantt","useWidth","c4","personFont","personFontFamily","personFontSize","personFontWeight","external_personFont","external_personFontFamily","external_personFontSize","external_personFontWeight","systemFont","systemFontFamily","systemFontSize","systemFontWeight","external_systemFont","external_systemFontFamily","external_systemFontSize","external_systemFontWeight","system_dbFont","system_dbFontFamily","system_dbFontSize","system_dbFontWeight","external_system_dbFont","external_system_dbFontFamily","external_system_dbFontSize","external_system_dbFontWeight","system_queueFont","system_queueFontFamily","system_queueFontSize","system_queueFontWeight","external_system_queueFont","external_system_queueFontFamily","external_system_queueFontSize","external_system_queueFontWeight","containerFont","containerFontFamily","containerFontSize","containerFontWeight","external_containerFont","external_containerFontFamily","external_containerFontSize","external_containerFontWeight","container_dbFont","container_dbFontFamily","container_dbFontSize","container_dbFontWeight","external_container_dbFont","external_container_dbFontFamily","external_container_dbFontSize","external_container_dbFontWeight","container_queueFont","container_queueFontFamily","container_queueFontSize","container_queueFontWeight","external_container_queueFont","external_container_queueFontFamily","external_container_queueFontSize","external_container_queueFontWeight","componentFont","componentFontFamily","componentFontSize","componentFontWeight","external_componentFont","external_componentFontFamily","external_componentFontSize","external_componentFontWeight","component_dbFont","component_dbFontFamily","component_dbFontSize","component_dbFontWeight","external_component_dbFont","external_component_dbFontFamily","external_component_dbFontSize","external_component_dbFontWeight","component_queueFont","component_queueFontFamily","component_queueFontSize","component_queueFontWeight","external_component_queueFont","external_component_queueFontFamily","external_component_queueFontSize","external_component_queueFontWeight","boundaryFont","boundaryFontFamily","boundaryFontSize","boundaryFontWeight","requirement","keyify","configKeys","defaultConfig_default","sanitizeDirective","cssMatchers","cssKey","sanitizeCss","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","getRows","breakToPlaceholder","setupDompurifyHooksIfNotSetup","setup","setupDompurifyHooks","TEMPORARY_ATTRIBUTE","removeScript","sanitizeMore","placeholderToBreak","sanitizeText","dompurifyConfig","sanitizeTextOrArray","hasBreaks","splitBreaks","getUrl","useAbsolute","evaluate","getMax","newValues","getMin","parseGenericTypes","inputSets","thisSet","previousSet","nextSet","shouldCombineSets","processSet","countOccurrence","prevCount","nextCount","tildeCount","hasStartingTilde","chars","first","last","isMathMLSupported","MathMLElement","katexRegex","hasKatex","calculateMathMLDimensions","renderKatex","divElem","visibility","insertAdjacentElement","clientWidth","clientHeight","legacyMathML","forceLegacyMathML","katex","outputMode","renderToString","throwOnError","displayMode","common_default","d3Attrs","d3Elem","attrs","calculateSvgSizeAttrs","useMaxWidth","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","_ref$hasParent","preventDefault","navigateTo","failClass","navigateDirect","navigateRelative","relHref","rootUrl","baseUrl","prefixedRelHref","protocolRelativeURL","isLinkableNode","handleLink","isNothing","subject","toArray","sourceKeys","cycle","isNegativeZero","NEGATIVE_INFINITY","formatError","exception2","compact","where","reason","snippet","YAMLException$1","captureStackTrace","exception","getLine","maxLineLength","maxHalfLength","padStart","makeSnippet","maxLength","linesBefore","linesAfter","lineStarts","lineEnds","foundLineNo","lineNoLength","TYPE_CONSTRUCTOR_OPTIONS","YAML_NODE_KINDS","compileStyleAliases","map2","Type$1","kind","instanceOf","predicate","represent","representName","defaultStyle","multi","styleAliases","compileList","schema2","currentType","newIndex","previousType","previousIndex","compileMap","scalar","mapping","collectType","Schema$1","explicit","type$1","loadKind","compiledImplicit","compiledExplicit","compiledTypeMap","failsafe","resolveYamlNull","constructYamlNull","isNull","_null","canonical","lowercase","uppercase","camelcase","resolveYamlBoolean","constructYamlBoolean","isBoolean","bool","isHexCode","isOctCode","isDecCode","resolveYamlInteger","hasDigits","constructYamlInteger","int","binary","octal","hexadecimal","YAML_FLOAT_PATTERN","resolveYamlFloat","constructYamlFloat","SCIENTIFIC_WITHOUT_DOT","representYamlFloat","isFloat","float","core","YAML_DATE_REGEXP","YAML_TIMESTAMP_REGEXP","resolveYamlTimestamp","constructYamlTimestamp","fraction","representYamlTimestamp","timestamp","resolveYamlMerge","BASE64_MAP","resolveYamlBinary","idx","bitlen","constructYamlBinary","tailbits","representYamlBinary","_hasOwnProperty$3","_toString$2","resolveYamlOmap","pairKey","pairHasKey","objectKeys","constructYamlOmap","omap","_toString$1","resolveYamlPairs","constructYamlPairs","_hasOwnProperty$2","resolveYamlSet","constructYamlSet","_default","_hasOwnProperty$1","PATTERN_NON_PRINTABLE","PATTERN_NON_ASCII_LINE_BREAKS","PATTERN_FLOW_INDICATORS","PATTERN_TAG_HANDLE","PATTERN_TAG_URI","_class","is_EOL","is_WHITE_SPACE","is_WS_OR_EOL","is_FLOW_INDICATOR","fromHexCode","escapedHexLen","fromDecimalCode","simpleEscapeSequence","charFromCodepoint","simpleEscapeCheck","simpleEscapeMap","State$1","schema","onWarning","legacy","implicitTypes","typeMap","lineIndent","firstTabInLine","documents","generateError","throwWarning","directiveHandlers","YAML","major","minor","checkLineBreaks","TAG","tagMap","captureSegment","checkJson","_position","_length","_character","_result","mergeMappings","destination","overridableKeys","quantity","storeMappingPair","keyTag","keyNode","valueNode","startLine","startLineStart","startPos","readLineBreak","skipSeparationSpace","allowComments","checkIndent","lineBreaks","testDocumentSeparator","writeFoldedLines","readPlainScalar","nodeIndent","withinFlowCollection","following","captureStart","captureEnd","hasPendingContent","_lineStart","_lineIndent","_kind","readSingleQuotedScalar","readDoubleQuotedScalar","hexLength","hexResult","tmp","readFlowCollection","_pos","terminator","isPair","isExplicitPair","isMapping","readNext","_anchor","anchorMap","composeNode","readBlockScalar","folding","chomping","didReadContent","detectedIndent","textIndent","emptyLines","atMoreIndented","readBlockSequence","detected","readBlockMapping","flowIndent","allowCompact","_keyLine","_keyLineStart","_keyPos","atExplicitKey","readTagProperty","tagHandle","isVerbatim","isNamed","readAnchorProperty","readAlias","parentIndent","nodeContext","allowToSeek","allowBlockStyles","allowBlockScalars","allowBlockCollections","typeIndex","typeQuantity","typeList","blockIndent","indentStatus","atNewLine","hasContent","readDocument","directiveName","directiveArgs","documentStart","hasDirectives","loadDocuments","nullpos","loadAll$1","load$1","_toString","_hasOwnProperty","CHAR_BOM","ESCAPE_SEQUENCES","DEPRECATED_BOOLEANS_SYNTAX","DEPRECATED_BASE60_SYNTAX","compileStyleMap","encodeHex","State","noArrayIndent","skipInvalid","flowLevel","sortKeys","noRefs","noCompatMode","condenseFlow","quotingType","forceQuotes","replacer","explicitTypes","duplicates","usedDuplicates","indentString","spaces","ind","generateNextLine","testImplicitResolving","str2","isWhitespace","isPrintable","isNsCharOrWhitespace","isPlainSafe","inblock","cIsNsCharOrWhitespace","cIsNsChar","isPlainSafeFirst","isPlainSafeLast","codePointAt","needIndentIndicator","chooseScalarStyle","singleLineOnly","indentPerLevel","testAmbiguousType","char","hasLineBreak","hasFoldableLine","shouldTrackWidth","previousLineBreak","plain","writeScalar","iskey","dump","testAmbiguity","string2","blockHeader","dropEndingNewline","foldString","escapeString","indentIndicator","clip","nextLF","moreIndented","lineRe","foldLine","prevMoreIndented","breakRe","escapeSeq","writeFlowSequence","writeNode","writeBlockSequence","writeFlowMapping","objectKey","objectValue","pairBuffer","objectKeyList","writeBlockMapping","explicitPair","isblockseq","tagStr","duplicateIndex","duplicate","objectOrArray","getDuplicateReferences","objects","duplicatesIndexes","inspectNode","renamed","JSON_SCHEMA","toPropertyKey","isProto","isArrayLike","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","chunkId","promises","miniCssF","needAttach","charset","nc","onScriptComplete","onerror","onload","doneFns","fn","importScripts","installedChunks","installedChunkData","promise","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","chunkLoadingGlobal","COMMENT","RULESET","DECLARATION","replacement","indexof","charat","begin","strlen","serialize","return","siblings","peek","delimit","delimiter","whitespace","escaping","commenter","identifier","compile","dealloc","alloc","rule","rulesets","pseudo","declarations","atrule","variable","scanning","ampersand","reference","comment","declaration","ruleset","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","id26","version2","errorRenderer_default","errorDiagram_default","db","id18","detector_default","id19","detector_default2","id20","detector_default3","id21","detector_default4","id22","sankeyDetector_default","id23","id24","blockDetector_default","id25","architectureDetector_default","hasLoadedDiagrams","addDiagrams","loadRegisteredDiagrams","failed","allSettled","detector26","loader26","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","preprocessDiagram","cleanedCode","frontMatterResult","directiveResult","toBase64","utf8Bytes","TextEncoder","utf8Str","byte","fromCodePoint","btoa","DOMPURIFY_TAGS","DOMPURIFY_ATTR","processAndSetConfigs","processed","parseOptions","getDiagramFromText","suppressErrors","cssImportantStyles","createCssStyles","classDefs","altFontFamily","cssElements","styleClassDef","isEmpty","cssElement","textStyles","createUserStyles","graphType","svgId","userCSSstyles","cleanUpSvgCode","svgCode","inSandboxMode","useArrowMarkerUrls","cleanedUpSvg","putIntoIFrame","svgElement","appendDivSvgG","parentRoot","enclosingDivId","divStyle","svgXlink","enclosingDiv","sandboxedIframe","iFrameId","removeExistingElements","divId","getElementById","svgContainingElement","maxTextSize","idSelector","iFrameID","iFrameID_selector","enclosingDivID","enclosingDivID_selector","removeTempElements","tmpElementSelector","isSandboxed","isLooseSecurityLevel","iframe","diag","parseEncounteredException","suppressErrorRendering","diagramClassDefs","getClasses","style1","a11yDescr","addA11yInfo","svgEl","foreignobject","bindFunctions","initialize","userOptions","logLevel","mermaidAPI","globalReset","handleError","errors","parseError","run","runThrowsErrors","mermaid","postRenderCallback","nodesToProcess","startOnLoad","idGenerator","deterministicIds","render2","initialize2","runOptions","registerExternalDiagrams","lazyLoad","contentLoaded","setParseErrorHandler","parseErrorHandler","executionQueue","executionQueueRunning","executeQueue","parse2","performCall","rej","container","mermaid_default","_document$querySelect","diagramPadding","diagramMarginY","MermaidRenderer","_ref$data","_render2","_sanitizedSVG$getAttr","MIN_HEIGHT","_yield$_render","sanitized","sanitizedSVG","svgViewBoxParts","_svgViewBoxParts","svgViewBoxRawWidth","svgViewBoxRawHeight","mermaidNode","elBBox","diagramHeight","svgWidth","replaceChildren","_panAndZoom","_createElement","MermaidViewer","onLoadEvent","loadEvent","debounce","newWidth","newHeight","iframeMessenger","zoomLevel","doMove","vertical","horizonal","transformSvg","doZoom","zoom","controlPanel","df","octicons","className","onClick","onclick","ariaLabel","onLoad","onAfterLoad","_onAfterLoad","firstLoad","_args2","reportError","MermaidMarkdownViewer","_MermaidViewer","decoded","lazyRender"],"sourceRoot":""}