@kong/markdown 1.3.1 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/{arc-CRNu716j.js → arc-8cjaq9av.js} +2 -2
  2. package/dist/{arc-CRNu716j.js.map → arc-8cjaq9av.js.map} +1 -1
  3. package/dist/{blockDiagram-6b2b5046-D2MkRD_j.js → blockDiagram-6b2b5046-CXMFsTaq.js} +6 -6
  4. package/dist/{blockDiagram-6b2b5046-D2MkRD_j.js.map → blockDiagram-6b2b5046-CXMFsTaq.js.map} +1 -1
  5. package/dist/{c4Diagram-b947cdbb-DCrk3XXk.js → c4Diagram-b947cdbb-vwALH1WH.js} +3 -3
  6. package/dist/{c4Diagram-b947cdbb-DCrk3XXk.js.map → c4Diagram-b947cdbb-vwALH1WH.js.map} +1 -1
  7. package/dist/channel-CiebjdPJ.js +6 -0
  8. package/dist/{channel-AStNV-TO.js.map → channel-CiebjdPJ.js.map} +1 -1
  9. package/dist/{classDiagram-35230388-xHVnplkU.js → classDiagram-35230388-CTxUL5uA.js} +6 -6
  10. package/dist/{classDiagram-35230388-xHVnplkU.js.map → classDiagram-35230388-CTxUL5uA.js.map} +1 -1
  11. package/dist/{classDiagram-v2-412acd34-Df3TOSJO.js → classDiagram-v2-412acd34-BQSUu5Vr.js} +6 -6
  12. package/dist/{classDiagram-v2-412acd34-Df3TOSJO.js.map → classDiagram-v2-412acd34-BQSUu5Vr.js.map} +1 -1
  13. package/dist/clone-AVwa-Pmf.js +9 -0
  14. package/dist/{clone-BEwR0ae8.js.map → clone-AVwa-Pmf.js.map} +1 -1
  15. package/dist/{createText-423428c9-CQXqrQGV.js → createText-423428c9-C_xMZUNE.js} +2 -2
  16. package/dist/{createText-423428c9-CQXqrQGV.js.map → createText-423428c9-C_xMZUNE.js.map} +1 -1
  17. package/dist/{edges-d417c7a0-D2l0zXjx.js → edges-d417c7a0-9M_sA3AX.js} +4 -4
  18. package/dist/{edges-d417c7a0-D2l0zXjx.js.map → edges-d417c7a0-9M_sA3AX.js.map} +1 -1
  19. package/dist/{erDiagram-0ea73325-CGortXf-.js → erDiagram-0ea73325-LCVGPMbf.js} +5 -5
  20. package/dist/{erDiagram-0ea73325-CGortXf-.js.map → erDiagram-0ea73325-LCVGPMbf.js.map} +1 -1
  21. package/dist/{flowDb-d35e309a-B37o2qfF.js → flowDb-d35e309a-EwD5UOTn.js} +2 -2
  22. package/dist/{flowDb-d35e309a-B37o2qfF.js.map → flowDb-d35e309a-EwD5UOTn.js.map} +1 -1
  23. package/dist/{flowDiagram-d949d7c1-CZWR-qRX.js → flowDiagram-d949d7c1-B8fV1Bgb.js} +7 -7
  24. package/dist/{flowDiagram-d949d7c1-CZWR-qRX.js.map → flowDiagram-d949d7c1-B8fV1Bgb.js.map} +1 -1
  25. package/dist/{flowDiagram-v2-49332944-OmkAsRSo.js → flowDiagram-v2-49332944-B1NmgnBY.js} +6 -6
  26. package/dist/{flowDiagram-v2-49332944-OmkAsRSo.js.map → flowDiagram-v2-49332944-B1NmgnBY.js.map} +1 -1
  27. package/dist/{flowchart-elk-definition-27cc417a-DvRAXt5Q.js → flowchart-elk-definition-27cc417a-uJBgGb6w.js} +5 -5
  28. package/dist/{flowchart-elk-definition-27cc417a-DvRAXt5Q.js.map → flowchart-elk-definition-27cc417a-uJBgGb6w.js.map} +1 -1
  29. package/dist/{ganttDiagram-5c869e3b-CFIXQjia.js → ganttDiagram-5c869e3b-CP3jCxVz.js} +3 -3
  30. package/dist/{ganttDiagram-5c869e3b-CFIXQjia.js.map → ganttDiagram-5c869e3b-CP3jCxVz.js.map} +1 -1
  31. package/dist/{gitGraphDiagram-b9d81de9-dYIPtz9A.js → gitGraphDiagram-b9d81de9-C0mDyUJG.js} +2 -2
  32. package/dist/{gitGraphDiagram-b9d81de9-dYIPtz9A.js.map → gitGraphDiagram-b9d81de9-C0mDyUJG.js.map} +1 -1
  33. package/dist/{graph-DnI6iIW-.js → graph-D8osM22K.js} +2 -2
  34. package/dist/{graph-DnI6iIW-.js.map → graph-D8osM22K.js.map} +1 -1
  35. package/dist/{index-8fae9850-BrJpYy1U.js → index-8fae9850-LWne7Y_5.js} +7 -7
  36. package/dist/{index-8fae9850-BrJpYy1U.js.map → index-8fae9850-LWne7Y_5.js.map} +1 -1
  37. package/dist/{index-BdQ-n4gH.js → index-H0_TiiZ2.js} +24 -24
  38. package/dist/{index-BdQ-n4gH.js.map → index-H0_TiiZ2.js.map} +1 -1
  39. package/dist/{infoDiagram-db7b18fc-D02OQKc3.js → infoDiagram-db7b18fc-BUwIw4xq.js} +2 -2
  40. package/dist/{infoDiagram-db7b18fc-D02OQKc3.js.map → infoDiagram-db7b18fc-BUwIw4xq.js.map} +1 -1
  41. package/dist/{journeyDiagram-d5636530-DthrqUFi.js → journeyDiagram-d5636530-BcAzfkwS.js} +4 -4
  42. package/dist/{journeyDiagram-d5636530-DthrqUFi.js.map → journeyDiagram-d5636530-BcAzfkwS.js.map} +1 -1
  43. package/dist/kong-markdown.es.js +1 -1
  44. package/dist/kong-markdown.umd.js +1 -1
  45. package/dist/{layout-OFztbzEY.js → layout-ZVjoo1C9.js} +3 -3
  46. package/dist/{layout-OFztbzEY.js.map → layout-ZVjoo1C9.js.map} +1 -1
  47. package/dist/{line-BSAYYjII.js → line-Cw7WGRye.js} +2 -2
  48. package/dist/{line-BSAYYjII.js.map → line-Cw7WGRye.js.map} +1 -1
  49. package/dist/{linear-D6IIV3ES.js → linear-CM8CQPYx.js} +2 -2
  50. package/dist/{linear-D6IIV3ES.js.map → linear-CM8CQPYx.js.map} +1 -1
  51. package/dist/{mindmap-definition-377f8f1f-CP5Ij5zq.js → mindmap-definition-377f8f1f-CZ-84IMz.js} +3 -3
  52. package/dist/{mindmap-definition-377f8f1f-CP5Ij5zq.js.map → mindmap-definition-377f8f1f-CZ-84IMz.js.map} +1 -1
  53. package/dist/{pieDiagram-b0208e96-CEy_a3qY.js → pieDiagram-b0208e96-DWGdunAA.js} +3 -3
  54. package/dist/{pieDiagram-b0208e96-CEy_a3qY.js.map → pieDiagram-b0208e96-DWGdunAA.js.map} +1 -1
  55. package/dist/{quadrantDiagram-0332be45-D1m3bfLE.js → quadrantDiagram-0332be45-CcjioNyx.js} +3 -3
  56. package/dist/{quadrantDiagram-0332be45-D1m3bfLE.js.map → quadrantDiagram-0332be45-CcjioNyx.js.map} +1 -1
  57. package/dist/{requirementDiagram-bf7890df-BXOuPT18.js → requirementDiagram-bf7890df-Bhse_3cX.js} +5 -5
  58. package/dist/{requirementDiagram-bf7890df-BXOuPT18.js.map → requirementDiagram-bf7890df-Bhse_3cX.js.map} +1 -1
  59. package/dist/{sankeyDiagram-0acdec17-C_WfLS-d.js → sankeyDiagram-0acdec17-mp2WREQF.js} +2 -2
  60. package/dist/{sankeyDiagram-0acdec17-C_WfLS-d.js.map → sankeyDiagram-0acdec17-mp2WREQF.js.map} +1 -1
  61. package/dist/{sequenceDiagram-c18d009d-xoFAj6ID.js → sequenceDiagram-c18d009d-C2BOoE0J.js} +3 -3
  62. package/dist/{sequenceDiagram-c18d009d-xoFAj6ID.js.map → sequenceDiagram-c18d009d-C2BOoE0J.js.map} +1 -1
  63. package/dist/{stateDiagram-43596fc0-Dm1AkWdr.js → stateDiagram-43596fc0-DcFmBqVD.js} +6 -6
  64. package/dist/{stateDiagram-43596fc0-Dm1AkWdr.js.map → stateDiagram-43596fc0-DcFmBqVD.js.map} +1 -1
  65. package/dist/{stateDiagram-v2-2ead4f9c-X0XO1e_0.js → stateDiagram-v2-2ead4f9c-B0kAUaOw.js} +6 -6
  66. package/dist/{stateDiagram-v2-2ead4f9c-X0XO1e_0.js.map → stateDiagram-v2-2ead4f9c-B0kAUaOw.js.map} +1 -1
  67. package/dist/style.css +1 -1
  68. package/dist/{styles-6860f46c-g9ltY6y9.js → styles-6860f46c-CCfIsYmF.js} +2 -2
  69. package/dist/{styles-6860f46c-g9ltY6y9.js.map → styles-6860f46c-CCfIsYmF.js.map} +1 -1
  70. package/dist/{styles-7383a064-D9pZsmll.js → styles-7383a064-Z66HBsPQ.js} +5 -5
  71. package/dist/{styles-7383a064-D9pZsmll.js.map → styles-7383a064-Z66HBsPQ.js.map} +1 -1
  72. package/dist/{styles-b2c874b6-2MSTrrjT.js → styles-b2c874b6-vUP-zip8.js} +2 -2
  73. package/dist/{styles-b2c874b6-2MSTrrjT.js.map → styles-b2c874b6-vUP-zip8.js.map} +1 -1
  74. package/dist/{svgDrawCommon-0ee1b4e9-BiqdHuRv.js → svgDrawCommon-0ee1b4e9-BN89CkAa.js} +2 -2
  75. package/dist/{svgDrawCommon-0ee1b4e9-BiqdHuRv.js.map → svgDrawCommon-0ee1b4e9-BN89CkAa.js.map} +1 -1
  76. package/dist/{timeline-definition-d977decf-J4adcb4f.js → timeline-definition-d977decf-hPFfx-Ol.js} +3 -3
  77. package/dist/{timeline-definition-d977decf-J4adcb4f.js.map → timeline-definition-d977decf-hPFfx-Ol.js.map} +1 -1
  78. package/dist/{xychartDiagram-e50adddc-COrJQ_9O.js → xychartDiagram-e50adddc-rKOcwKj9.js} +5 -5
  79. package/dist/{xychartDiagram-e50adddc-COrJQ_9O.js.map → xychartDiagram-e50adddc-rKOcwKj9.js.map} +1 -1
  80. package/package.json +1 -1
  81. package/dist/channel-AStNV-TO.js +0 -6
  82. package/dist/clone-BEwR0ae8.js +0 -9
@@ -1 +1 @@
1
- {"version":3,"file":"ganttDiagram-5c869e3b-CFIXQjia.js","sources":["../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/max.js","../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/min.js","../node_modules/.pnpm/d3-axis@3.0.0/node_modules/d3-axis/src/identity.js","../node_modules/.pnpm/d3-axis@3.0.0/node_modules/d3-axis/src/axis.js","../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/math.js","../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/lab.js","../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/hcl.js","../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/nice.js","../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/interval.js","../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/millisecond.js","../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/duration.js","../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/second.js","../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/minute.js","../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/hour.js","../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/day.js","../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/week.js","../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/month.js","../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/year.js","../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/ticks.js","../node_modules/.pnpm/d3-time-format@4.1.0/node_modules/d3-time-format/src/locale.js","../node_modules/.pnpm/d3-time-format@4.1.0/node_modules/d3-time-format/src/defaultLocale.js","../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/time.js","../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/isoWeek.js","../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/customParseFormat.js","../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/advancedFormat.js","../node_modules/.pnpm/mermaid@10.8.0/node_modules/mermaid/dist/ganttDiagram-5c869e3b.js"],"sourcesContent":["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","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 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","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","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","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","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeek=t()}(this,(function(){\"use strict\";var e=\"day\";return function(t,i,s){var a=function(t){return t.add(4-t.isoWeekday(),e)},d=i.prototype;d.isoWeekYear=function(){return a(this).year()},d.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),e);var i,d,n,o,r=a(this),u=(i=this.isoWeekYear(),d=this.$u,n=(d?s.utc:s)().year(i).startOf(\"year\"),o=4-n.isoWeekday(),n.isoWeekday()>4&&(o+=7),n.add(o,e));return r.diff(u,\"week\")+1},d.isoWeekday=function(e){return this.$utils().u(e)?this.day()||7:this.day(this.day()%7?e:e-7)};var n=d.startOf;d.startOf=function(e,t){var i=this.$utils(),s=!!i.u(t)||t;return\"isoweek\"===i.p(e)?s?this.date(this.date()-(this.isoWeekday()-1)).startOf(\"day\"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf(\"day\"):n.bind(this)(e,t)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^-_:/,()\\s\\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(e){var t=h(\"months\"),n=(h(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f<a;f+=1){var h=s[f],u=d[h],c=u&&u[0],l=u&&u[1];s[f]=l?{regex:c,parser:l}:h.replace(/^\\[|\\]$/g,\"\")}return function(e){for(var t={},n=0,r=0;n<a;n+=1){var i=s[n];if(\"string\"==typeof i)r+=i.length;else{var o=i.regex,f=i.parser,h=e.slice(r),u=o.exec(h)[0];f.call(t,u),e=e.replace(u,\"\")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(s=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,s=e.args;this.$u=r;var a=s[1];if(\"string\"==typeof a){var f=!0===s[2],h=!0===s[3],u=f||h,d=s[2];h&&(d=s[2]),o=this.$locale(),!f&&d&&(o=n.Ls[d]),this.$d=function(e,t,n){try{if([\"x\",\"X\"].indexOf(t)>-1)return new Date((\"X\"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date(\"\")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_advancedFormat=t()}(this,(function(){\"use strict\";return function(e,t){var r=t.prototype,n=r.format;r.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return n.bind(this)(e);var s=this.$utils(),a=(e||\"YYYY-MM-DDTHH:mm:ssZ\").replace(/\\[([^\\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case\"Q\":return Math.ceil((t.$M+1)/3);case\"Do\":return r.ordinal(t.$D);case\"gggg\":return t.weekYear();case\"GGGG\":return t.isoWeekYear();case\"wo\":return r.ordinal(t.week(),\"W\");case\"w\":case\"ww\":return s.s(t.week(),\"w\"===e?1:2,\"0\");case\"W\":case\"WW\":return s.s(t.isoWeek(),\"W\"===e?1:2,\"0\");case\"k\":case\"kk\":return s.s(String(0===t.$H?24:t.$H),\"k\"===e?1:2,\"0\");case\"X\":return Math.floor(t.$d.getTime()/1e3);case\"x\":return t.$d.getTime();case\"z\":return\"[\"+t.offsetName()+\"]\";case\"zzz\":return\"[\"+t.offsetName(\"long\")+\"]\";default:return e}}));return n.bind(this)(a)}}}));","import { sanitizeUrl } from \"@braintree/sanitize-url\";\nimport dayjs from \"dayjs\";\nimport dayjsIsoWeek from \"dayjs/plugin/isoWeek.js\";\nimport dayjsCustomParseFormat from \"dayjs/plugin/customParseFormat.js\";\nimport dayjsAdvancedFormat from \"dayjs/plugin/advancedFormat.js\";\nimport { c as getConfig, s as setAccTitle, g as getAccTitle, q as setDiagramTitle, r as getDiagramTitle, b as setAccDescription, a as getAccDescription, t as clear$1, u as utils, l as log, i as configureSvgSize, e as common } from \"./mermaid-0603ccf8.js\";\nimport { select, scaleTime, min, max, scaleLinear, interpolateHcl, axisBottom, timeFormat, timeMonth, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, axisTop, timeMonday, timeTuesday, timeWednesday, timeThursday, timeFriday, timeSaturday, timeSunday } from \"d3\";\nimport \"ts-dedent\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [6, 8, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 33, 35, 37], $V1 = [1, 25], $V2 = [1, 26], $V3 = [1, 27], $V4 = [1, 28], $V5 = [1, 29], $V6 = [1, 30], $V7 = [1, 31], $V8 = [1, 9], $V9 = [1, 10], $Va = [1, 11], $Vb = [1, 12], $Vc = [1, 13], $Vd = [1, 14], $Ve = [1, 15], $Vf = [1, 16], $Vg = [1, 18], $Vh = [1, 19], $Vi = [1, 20], $Vj = [1, 21], $Vk = [1, 22], $Vl = [1, 24], $Vm = [1, 32];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"gantt\": 4, \"document\": 5, \"EOF\": 6, \"line\": 7, \"SPACE\": 8, \"statement\": 9, \"NL\": 10, \"weekday\": 11, \"weekday_monday\": 12, \"weekday_tuesday\": 13, \"weekday_wednesday\": 14, \"weekday_thursday\": 15, \"weekday_friday\": 16, \"weekday_saturday\": 17, \"weekday_sunday\": 18, \"dateFormat\": 19, \"inclusiveEndDates\": 20, \"topAxis\": 21, \"axisFormat\": 22, \"tickInterval\": 23, \"excludes\": 24, \"includes\": 25, \"todayMarker\": 26, \"title\": 27, \"acc_title\": 28, \"acc_title_value\": 29, \"acc_descr\": 30, \"acc_descr_value\": 31, \"acc_descr_multiline_value\": 32, \"section\": 33, \"clickStatement\": 34, \"taskTxt\": 35, \"taskData\": 36, \"click\": 37, \"callbackname\": 38, \"callbackargs\": 39, \"href\": 40, \"clickStatementDebug\": 41, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"gantt\", 6: \"EOF\", 8: \"SPACE\", 10: \"NL\", 12: \"weekday_monday\", 13: \"weekday_tuesday\", 14: \"weekday_wednesday\", 15: \"weekday_thursday\", 16: \"weekday_friday\", 17: \"weekday_saturday\", 18: \"weekday_sunday\", 19: \"dateFormat\", 20: \"inclusiveEndDates\", 21: \"topAxis\", 22: \"axisFormat\", 23: \"tickInterval\", 24: \"excludes\", 25: \"includes\", 26: \"todayMarker\", 27: \"title\", 28: \"acc_title\", 29: \"acc_title_value\", 30: \"acc_descr\", 31: \"acc_descr_value\", 32: \"acc_descr_multiline_value\", 33: \"section\", 35: \"taskTxt\", 36: \"taskData\", 37: \"click\", 38: \"callbackname\", 39: \"callbackargs\", 40: \"href\" },\n productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 1], [9, 2], [34, 2], [34, 3], [34, 3], [34, 4], [34, 3], [34, 4], [34, 2], [41, 2], [41, 3], [41, 3], [41, 4], [41, 3], [41, 4], [41, 2]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 1:\n return $$[$0 - 1];\n case 2:\n this.$ = [];\n break;\n case 3:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 4:\n case 5:\n this.$ = $$[$0];\n break;\n case 6:\n case 7:\n this.$ = [];\n break;\n case 8:\n yy.setWeekday(\"monday\");\n break;\n case 9:\n yy.setWeekday(\"tuesday\");\n break;\n case 10:\n yy.setWeekday(\"wednesday\");\n break;\n case 11:\n yy.setWeekday(\"thursday\");\n break;\n case 12:\n yy.setWeekday(\"friday\");\n break;\n case 13:\n yy.setWeekday(\"saturday\");\n break;\n case 14:\n yy.setWeekday(\"sunday\");\n break;\n case 15:\n yy.setDateFormat($$[$0].substr(11));\n this.$ = $$[$0].substr(11);\n break;\n case 16:\n yy.enableInclusiveEndDates();\n this.$ = $$[$0].substr(18);\n break;\n case 17:\n yy.TopAxis();\n this.$ = $$[$0].substr(8);\n break;\n case 18:\n yy.setAxisFormat($$[$0].substr(11));\n this.$ = $$[$0].substr(11);\n break;\n case 19:\n yy.setTickInterval($$[$0].substr(13));\n this.$ = $$[$0].substr(13);\n break;\n case 20:\n yy.setExcludes($$[$0].substr(9));\n this.$ = $$[$0].substr(9);\n break;\n case 21:\n yy.setIncludes($$[$0].substr(9));\n this.$ = $$[$0].substr(9);\n break;\n case 22:\n yy.setTodayMarker($$[$0].substr(12));\n this.$ = $$[$0].substr(12);\n break;\n case 24:\n yy.setDiagramTitle($$[$0].substr(6));\n this.$ = $$[$0].substr(6);\n break;\n case 25:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 26:\n case 27:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 28:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n case 30:\n yy.addTask($$[$0 - 1], $$[$0]);\n this.$ = \"task\";\n break;\n case 31:\n this.$ = $$[$0 - 1];\n yy.setClickEvent($$[$0 - 1], $$[$0], null);\n break;\n case 32:\n this.$ = $$[$0 - 2];\n yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);\n break;\n case 33:\n this.$ = $$[$0 - 2];\n yy.setClickEvent($$[$0 - 2], $$[$0 - 1], null);\n yy.setLink($$[$0 - 2], $$[$0]);\n break;\n case 34:\n this.$ = $$[$0 - 3];\n yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]);\n yy.setLink($$[$0 - 3], $$[$0]);\n break;\n case 35:\n this.$ = $$[$0 - 2];\n yy.setClickEvent($$[$0 - 2], $$[$0], null);\n yy.setLink($$[$0 - 2], $$[$0 - 1]);\n break;\n case 36:\n this.$ = $$[$0 - 3];\n yy.setClickEvent($$[$0 - 3], $$[$0 - 1], $$[$0]);\n yy.setLink($$[$0 - 3], $$[$0 - 2]);\n break;\n case 37:\n this.$ = $$[$0 - 1];\n yy.setLink($$[$0 - 1], $$[$0]);\n break;\n case 38:\n case 44:\n this.$ = $$[$0 - 1] + \" \" + $$[$0];\n break;\n case 39:\n case 40:\n case 42:\n this.$ = $$[$0 - 2] + \" \" + $$[$0 - 1] + \" \" + $$[$0];\n break;\n case 41:\n case 43:\n this.$ = $$[$0 - 3] + \" \" + $$[$0 - 2] + \" \" + $$[$0 - 1] + \" \" + $$[$0];\n break;\n }\n },\n table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: 17, 12: $V1, 13: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd, 25: $Ve, 26: $Vf, 27: $Vg, 28: $Vh, 30: $Vi, 32: $Vj, 33: $Vk, 34: 23, 35: $Vl, 37: $Vm }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 33, 11: 17, 12: $V1, 13: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd, 25: $Ve, 26: $Vf, 27: $Vg, 28: $Vh, 30: $Vi, 32: $Vj, 33: $Vk, 34: 23, 35: $Vl, 37: $Vm }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 15]), o($V0, [2, 16]), o($V0, [2, 17]), o($V0, [2, 18]), o($V0, [2, 19]), o($V0, [2, 20]), o($V0, [2, 21]), o($V0, [2, 22]), o($V0, [2, 23]), o($V0, [2, 24]), { 29: [1, 34] }, { 31: [1, 35] }, o($V0, [2, 27]), o($V0, [2, 28]), o($V0, [2, 29]), { 36: [1, 36] }, o($V0, [2, 8]), o($V0, [2, 9]), o($V0, [2, 10]), o($V0, [2, 11]), o($V0, [2, 12]), o($V0, [2, 13]), o($V0, [2, 14]), { 38: [1, 37], 40: [1, 38] }, o($V0, [2, 4]), o($V0, [2, 25]), o($V0, [2, 26]), o($V0, [2, 30]), o($V0, [2, 31], { 39: [1, 39], 40: [1, 40] }), o($V0, [2, 37], { 38: [1, 41] }), o($V0, [2, 32], { 40: [1, 42] }), o($V0, [2, 33]), o($V0, [2, 35], { 39: [1, 43] }), o($V0, [2, 34]), o($V0, [2, 36])],\n defaultActions: {},\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"open_directive\");\n return \"open_directive\";\n case 1:\n this.begin(\"acc_title\");\n return 28;\n case 2:\n this.popState();\n return \"acc_title_value\";\n case 3:\n this.begin(\"acc_descr\");\n return 30;\n case 4:\n this.popState();\n return \"acc_descr_value\";\n case 5:\n this.begin(\"acc_descr_multiline\");\n break;\n case 6:\n this.popState();\n break;\n case 7:\n return \"acc_descr_multiline_value\";\n case 8:\n break;\n case 9:\n break;\n case 10:\n break;\n case 11:\n return 10;\n case 12:\n break;\n case 13:\n break;\n case 14:\n this.begin(\"href\");\n break;\n case 15:\n this.popState();\n break;\n case 16:\n return 40;\n case 17:\n this.begin(\"callbackname\");\n break;\n case 18:\n this.popState();\n break;\n case 19:\n this.popState();\n this.begin(\"callbackargs\");\n break;\n case 20:\n return 38;\n case 21:\n this.popState();\n break;\n case 22:\n return 39;\n case 23:\n this.begin(\"click\");\n break;\n case 24:\n this.popState();\n break;\n case 25:\n return 37;\n case 26:\n return 4;\n case 27:\n return 19;\n case 28:\n return 20;\n case 29:\n return 21;\n case 30:\n return 22;\n case 31:\n return 23;\n case 32:\n return 25;\n case 33:\n return 24;\n case 34:\n return 26;\n case 35:\n return 12;\n case 36:\n return 13;\n case 37:\n return 14;\n case 38:\n return 15;\n case 39:\n return 16;\n case 40:\n return 17;\n case 41:\n return 18;\n case 42:\n return \"date\";\n case 43:\n return 27;\n case 44:\n return \"accDescription\";\n case 45:\n return 33;\n case 46:\n return 35;\n case 47:\n return 36;\n case 48:\n return \":\";\n case 49:\n return 6;\n case 50:\n return \"INVALID\";\n }\n },\n rules: [/^(?:%%\\{)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:%%(?!\\{)*[^\\n]*)/i, /^(?:[^\\}]%%*[^\\n]*)/i, /^(?:%%*[^\\n]*[\\n]*)/i, /^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?:%[^\\n]*)/i, /^(?:href[\\s]+[\"])/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:call[\\s]+)/i, /^(?:\\([\\s]*\\))/i, /^(?:\\()/i, /^(?:[^(]*)/i, /^(?:\\))/i, /^(?:[^)]*)/i, /^(?:click[\\s]+)/i, /^(?:[\\s\\n])/i, /^(?:[^\\s\\n]*)/i, /^(?:gantt\\b)/i, /^(?:dateFormat\\s[^#\\n;]+)/i, /^(?:inclusiveEndDates\\b)/i, /^(?:topAxis\\b)/i, /^(?:axisFormat\\s[^#\\n;]+)/i, /^(?:tickInterval\\s[^#\\n;]+)/i, /^(?:includes\\s[^#\\n;]+)/i, /^(?:excludes\\s[^#\\n;]+)/i, /^(?:todayMarker\\s[^\\n;]+)/i, /^(?:weekday\\s+monday\\b)/i, /^(?:weekday\\s+tuesday\\b)/i, /^(?:weekday\\s+wednesday\\b)/i, /^(?:weekday\\s+thursday\\b)/i, /^(?:weekday\\s+friday\\b)/i, /^(?:weekday\\s+saturday\\b)/i, /^(?:weekday\\s+sunday\\b)/i, /^(?:\\d\\d\\d\\d-\\d\\d-\\d\\d\\b)/i, /^(?:title\\s[^\\n]+)/i, /^(?:accDescription\\s[^#\\n;]+)/i, /^(?:section\\s[^\\n]+)/i, /^(?:[^:\\n]+)/i, /^(?::[^#\\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [6, 7], \"inclusive\": false }, \"acc_descr\": { \"rules\": [4], \"inclusive\": false }, \"acc_title\": { \"rules\": [2], \"inclusive\": false }, \"callbackargs\": { \"rules\": [21, 22], \"inclusive\": false }, \"callbackname\": { \"rules\": [18, 19, 20], \"inclusive\": false }, \"href\": { \"rules\": [15, 16], \"inclusive\": false }, \"click\": { \"rules\": [24, 25], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 3, 5, 8, 9, 10, 11, 12, 13, 14, 17, 23, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst ganttParser = parser;\ndayjs.extend(dayjsIsoWeek);\ndayjs.extend(dayjsCustomParseFormat);\ndayjs.extend(dayjsAdvancedFormat);\nlet dateFormat = \"\";\nlet axisFormat = \"\";\nlet tickInterval = void 0;\nlet todayMarker = \"\";\nlet includes = [];\nlet excludes = [];\nlet links = {};\nlet sections = [];\nlet tasks = [];\nlet currentSection = \"\";\nlet displayMode = \"\";\nconst tags = [\"active\", \"done\", \"crit\", \"milestone\"];\nlet funs = [];\nlet inclusiveEndDates = false;\nlet topAxis = false;\nlet weekday = \"sunday\";\nlet lastOrder = 0;\nconst clear = function() {\n sections = [];\n tasks = [];\n currentSection = \"\";\n funs = [];\n taskCnt = 0;\n lastTask = void 0;\n lastTaskID = void 0;\n rawTasks = [];\n dateFormat = \"\";\n axisFormat = \"\";\n displayMode = \"\";\n tickInterval = void 0;\n todayMarker = \"\";\n includes = [];\n excludes = [];\n inclusiveEndDates = false;\n topAxis = false;\n lastOrder = 0;\n links = {};\n clear$1();\n weekday = \"sunday\";\n};\nconst setAxisFormat = function(txt) {\n axisFormat = txt;\n};\nconst getAxisFormat = function() {\n return axisFormat;\n};\nconst setTickInterval = function(txt) {\n tickInterval = txt;\n};\nconst getTickInterval = function() {\n return tickInterval;\n};\nconst setTodayMarker = function(txt) {\n todayMarker = txt;\n};\nconst getTodayMarker = function() {\n return todayMarker;\n};\nconst setDateFormat = function(txt) {\n dateFormat = txt;\n};\nconst enableInclusiveEndDates = function() {\n inclusiveEndDates = true;\n};\nconst endDatesAreInclusive = function() {\n return inclusiveEndDates;\n};\nconst enableTopAxis = function() {\n topAxis = true;\n};\nconst topAxisEnabled = function() {\n return topAxis;\n};\nconst setDisplayMode = function(txt) {\n displayMode = txt;\n};\nconst getDisplayMode = function() {\n return displayMode;\n};\nconst getDateFormat = function() {\n return dateFormat;\n};\nconst setIncludes = function(txt) {\n includes = txt.toLowerCase().split(/[\\s,]+/);\n};\nconst getIncludes = function() {\n return includes;\n};\nconst setExcludes = function(txt) {\n excludes = txt.toLowerCase().split(/[\\s,]+/);\n};\nconst getExcludes = function() {\n return excludes;\n};\nconst getLinks = function() {\n return links;\n};\nconst addSection = function(txt) {\n currentSection = txt;\n sections.push(txt);\n};\nconst getSections = function() {\n return sections;\n};\nconst getTasks = function() {\n let allItemsProcessed = compileTasks();\n const maxDepth = 10;\n let iterationCount = 0;\n while (!allItemsProcessed && iterationCount < maxDepth) {\n allItemsProcessed = compileTasks();\n iterationCount++;\n }\n tasks = rawTasks;\n return tasks;\n};\nconst isInvalidDate = function(date, dateFormat2, excludes2, includes2) {\n if (includes2.includes(date.format(dateFormat2.trim()))) {\n return false;\n }\n if (date.isoWeekday() >= 6 && excludes2.includes(\"weekends\")) {\n return true;\n }\n if (excludes2.includes(date.format(\"dddd\").toLowerCase())) {\n return true;\n }\n return excludes2.includes(date.format(dateFormat2.trim()));\n};\nconst setWeekday = function(txt) {\n weekday = txt;\n};\nconst getWeekday = function() {\n return weekday;\n};\nconst checkTaskDates = function(task, dateFormat2, excludes2, includes2) {\n if (!excludes2.length || task.manualEndTime) {\n return;\n }\n let startTime;\n if (task.startTime instanceof Date) {\n startTime = dayjs(task.startTime);\n } else {\n startTime = dayjs(task.startTime, dateFormat2, true);\n }\n startTime = startTime.add(1, \"d\");\n let originalEndTime;\n if (task.endTime instanceof Date) {\n originalEndTime = dayjs(task.endTime);\n } else {\n originalEndTime = dayjs(task.endTime, dateFormat2, true);\n }\n const [fixedEndTime, renderEndTime] = fixTaskDates(\n startTime,\n originalEndTime,\n dateFormat2,\n excludes2,\n includes2\n );\n task.endTime = fixedEndTime.toDate();\n task.renderEndTime = renderEndTime;\n};\nconst fixTaskDates = function(startTime, endTime, dateFormat2, excludes2, includes2) {\n let invalid = false;\n let renderEndTime = null;\n while (startTime <= endTime) {\n if (!invalid) {\n renderEndTime = endTime.toDate();\n }\n invalid = isInvalidDate(startTime, dateFormat2, excludes2, includes2);\n if (invalid) {\n endTime = endTime.add(1, \"d\");\n }\n startTime = startTime.add(1, \"d\");\n }\n return [endTime, renderEndTime];\n};\nconst getStartDate = function(prevTime, dateFormat2, str) {\n str = str.trim();\n const re = /^after\\s+([\\d\\w- ]+)/;\n const afterStatement = re.exec(str.trim());\n if (afterStatement !== null) {\n let latestEndingTask = null;\n afterStatement[1].split(\" \").forEach(function(id) {\n let task = findTaskById(id);\n if (task !== void 0) {\n if (!latestEndingTask) {\n latestEndingTask = task;\n } else {\n if (task.endTime > latestEndingTask.endTime) {\n latestEndingTask = task;\n }\n }\n }\n });\n if (!latestEndingTask) {\n const dt = /* @__PURE__ */ new Date();\n dt.setHours(0, 0, 0, 0);\n return dt;\n } else {\n return latestEndingTask.endTime;\n }\n }\n let mDate = dayjs(str, dateFormat2.trim(), true);\n if (mDate.isValid()) {\n return mDate.toDate();\n } else {\n log.debug(\"Invalid date:\" + str);\n log.debug(\"With date format:\" + dateFormat2.trim());\n const d = new Date(str);\n if (d === void 0 || isNaN(d.getTime()) || // WebKit browsers can mis-parse invalid dates to be ridiculously\n // huge numbers, e.g. new Date('202304') gets parsed as January 1, 202304.\n // This can cause virtually infinite loops while rendering, so for the\n // purposes of Gantt charts we'll just treat any date beyond 10,000 AD/BC as\n // invalid.\n d.getFullYear() < -1e4 || d.getFullYear() > 1e4) {\n throw new Error(\"Invalid date:\" + str);\n }\n return d;\n }\n};\nconst parseDuration = function(str) {\n const statement = /^(\\d+(?:\\.\\d+)?)([Mdhmswy]|ms)$/.exec(str.trim());\n if (statement !== null) {\n return [Number.parseFloat(statement[1]), statement[2]];\n }\n return [NaN, \"ms\"];\n};\nconst getEndDate = function(prevTime, dateFormat2, str, inclusive = false) {\n str = str.trim();\n let mDate = dayjs(str, dateFormat2.trim(), true);\n if (mDate.isValid()) {\n if (inclusive) {\n mDate = mDate.add(1, \"d\");\n }\n return mDate.toDate();\n }\n let endTime = dayjs(prevTime);\n const [durationValue, durationUnit] = parseDuration(str);\n if (!Number.isNaN(durationValue)) {\n const newEndTime = endTime.add(durationValue, durationUnit);\n if (newEndTime.isValid()) {\n endTime = newEndTime;\n }\n }\n return endTime.toDate();\n};\nlet taskCnt = 0;\nconst parseId = function(idStr) {\n if (idStr === void 0) {\n taskCnt = taskCnt + 1;\n return \"task\" + taskCnt;\n }\n return idStr;\n};\nconst compileData = function(prevTask, dataStr) {\n let ds;\n if (dataStr.substr(0, 1) === \":\") {\n ds = dataStr.substr(1, dataStr.length);\n } else {\n ds = dataStr;\n }\n const data = ds.split(\",\");\n const task = {};\n getTaskTags(data, task, tags);\n for (let i = 0; i < data.length; i++) {\n data[i] = data[i].trim();\n }\n let endTimeData = \"\";\n switch (data.length) {\n case 1:\n task.id = parseId();\n task.startTime = prevTask.endTime;\n endTimeData = data[0];\n break;\n case 2:\n task.id = parseId();\n task.startTime = getStartDate(void 0, dateFormat, data[0]);\n endTimeData = data[1];\n break;\n case 3:\n task.id = parseId(data[0]);\n task.startTime = getStartDate(void 0, dateFormat, data[1]);\n endTimeData = data[2];\n break;\n }\n if (endTimeData) {\n task.endTime = getEndDate(task.startTime, dateFormat, endTimeData, inclusiveEndDates);\n task.manualEndTime = dayjs(endTimeData, \"YYYY-MM-DD\", true).isValid();\n checkTaskDates(task, dateFormat, excludes, includes);\n }\n return task;\n};\nconst parseData = function(prevTaskId, dataStr) {\n let ds;\n if (dataStr.substr(0, 1) === \":\") {\n ds = dataStr.substr(1, dataStr.length);\n } else {\n ds = dataStr;\n }\n const data = ds.split(\",\");\n const task = {};\n getTaskTags(data, task, tags);\n for (let i = 0; i < data.length; i++) {\n data[i] = data[i].trim();\n }\n switch (data.length) {\n case 1:\n task.id = parseId();\n task.startTime = {\n type: \"prevTaskEnd\",\n id: prevTaskId\n };\n task.endTime = {\n data: data[0]\n };\n break;\n case 2:\n task.id = parseId();\n task.startTime = {\n type: \"getStartDate\",\n startData: data[0]\n };\n task.endTime = {\n data: data[1]\n };\n break;\n case 3:\n task.id = parseId(data[0]);\n task.startTime = {\n type: \"getStartDate\",\n startData: data[1]\n };\n task.endTime = {\n data: data[2]\n };\n break;\n }\n return task;\n};\nlet lastTask;\nlet lastTaskID;\nlet rawTasks = [];\nconst taskDb = {};\nconst addTask = function(descr, data) {\n const rawTask = {\n section: currentSection,\n type: currentSection,\n processed: false,\n manualEndTime: false,\n renderEndTime: null,\n raw: { data },\n task: descr,\n classes: []\n };\n const taskInfo = parseData(lastTaskID, data);\n rawTask.raw.startTime = taskInfo.startTime;\n rawTask.raw.endTime = taskInfo.endTime;\n rawTask.id = taskInfo.id;\n rawTask.prevTaskId = lastTaskID;\n rawTask.active = taskInfo.active;\n rawTask.done = taskInfo.done;\n rawTask.crit = taskInfo.crit;\n rawTask.milestone = taskInfo.milestone;\n rawTask.order = lastOrder;\n lastOrder++;\n const pos = rawTasks.push(rawTask);\n lastTaskID = rawTask.id;\n taskDb[rawTask.id] = pos - 1;\n};\nconst findTaskById = function(id) {\n const pos = taskDb[id];\n return rawTasks[pos];\n};\nconst addTaskOrg = function(descr, data) {\n const newTask = {\n section: currentSection,\n type: currentSection,\n description: descr,\n task: descr,\n classes: []\n };\n const taskInfo = compileData(lastTask, data);\n newTask.startTime = taskInfo.startTime;\n newTask.endTime = taskInfo.endTime;\n newTask.id = taskInfo.id;\n newTask.active = taskInfo.active;\n newTask.done = taskInfo.done;\n newTask.crit = taskInfo.crit;\n newTask.milestone = taskInfo.milestone;\n lastTask = newTask;\n tasks.push(newTask);\n};\nconst compileTasks = function() {\n const compileTask = function(pos) {\n const task = rawTasks[pos];\n let startTime = \"\";\n switch (rawTasks[pos].raw.startTime.type) {\n case \"prevTaskEnd\": {\n const prevTask = findTaskById(task.prevTaskId);\n task.startTime = prevTask.endTime;\n break;\n }\n case \"getStartDate\":\n startTime = getStartDate(void 0, dateFormat, rawTasks[pos].raw.startTime.startData);\n if (startTime) {\n rawTasks[pos].startTime = startTime;\n }\n break;\n }\n if (rawTasks[pos].startTime) {\n rawTasks[pos].endTime = getEndDate(\n rawTasks[pos].startTime,\n dateFormat,\n rawTasks[pos].raw.endTime.data,\n inclusiveEndDates\n );\n if (rawTasks[pos].endTime) {\n rawTasks[pos].processed = true;\n rawTasks[pos].manualEndTime = dayjs(\n rawTasks[pos].raw.endTime.data,\n \"YYYY-MM-DD\",\n true\n ).isValid();\n checkTaskDates(rawTasks[pos], dateFormat, excludes, includes);\n }\n }\n return rawTasks[pos].processed;\n };\n let allProcessed = true;\n for (const [i, rawTask] of rawTasks.entries()) {\n compileTask(i);\n allProcessed = allProcessed && rawTask.processed;\n }\n return allProcessed;\n};\nconst setLink = function(ids, _linkStr) {\n let linkStr = _linkStr;\n if (getConfig().securityLevel !== \"loose\") {\n linkStr = sanitizeUrl(_linkStr);\n }\n ids.split(\",\").forEach(function(id) {\n let rawTask = findTaskById(id);\n if (rawTask !== void 0) {\n pushFun(id, () => {\n window.open(linkStr, \"_self\");\n });\n links[id] = linkStr;\n }\n });\n setClass(ids, \"clickable\");\n};\nconst setClass = function(ids, className) {\n ids.split(\",\").forEach(function(id) {\n let rawTask = findTaskById(id);\n if (rawTask !== void 0) {\n rawTask.classes.push(className);\n }\n });\n};\nconst setClickFun = function(id, functionName, functionArgs) {\n if (getConfig().securityLevel !== \"loose\") {\n return;\n }\n if (functionName === void 0) {\n return;\n }\n let argList = [];\n if (typeof functionArgs === \"string\") {\n argList = functionArgs.split(/,(?=(?:(?:[^\"]*\"){2})*[^\"]*$)/);\n for (let i = 0; i < argList.length; i++) {\n let item = argList[i].trim();\n if (item.charAt(0) === '\"' && item.charAt(item.length - 1) === '\"') {\n item = item.substr(1, item.length - 2);\n }\n argList[i] = item;\n }\n }\n if (argList.length === 0) {\n argList.push(id);\n }\n let rawTask = findTaskById(id);\n if (rawTask !== void 0) {\n pushFun(id, () => {\n utils.runFunc(functionName, ...argList);\n });\n }\n};\nconst pushFun = function(id, callbackFunction) {\n funs.push(\n function() {\n const elem = document.querySelector(`[id=\"${id}\"]`);\n if (elem !== null) {\n elem.addEventListener(\"click\", function() {\n callbackFunction();\n });\n }\n },\n function() {\n const elem = document.querySelector(`[id=\"${id}-text\"]`);\n if (elem !== null) {\n elem.addEventListener(\"click\", function() {\n callbackFunction();\n });\n }\n }\n );\n};\nconst setClickEvent = function(ids, functionName, functionArgs) {\n ids.split(\",\").forEach(function(id) {\n setClickFun(id, functionName, functionArgs);\n });\n setClass(ids, \"clickable\");\n};\nconst bindFunctions = function(element) {\n funs.forEach(function(fun) {\n fun(element);\n });\n};\nconst ganttDb = {\n getConfig: () => getConfig().gantt,\n clear,\n setDateFormat,\n getDateFormat,\n enableInclusiveEndDates,\n endDatesAreInclusive,\n enableTopAxis,\n topAxisEnabled,\n setAxisFormat,\n getAxisFormat,\n setTickInterval,\n getTickInterval,\n setTodayMarker,\n getTodayMarker,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n setDisplayMode,\n getDisplayMode,\n setAccDescription,\n getAccDescription,\n addSection,\n getSections,\n getTasks,\n addTask,\n findTaskById,\n addTaskOrg,\n setIncludes,\n getIncludes,\n setExcludes,\n getExcludes,\n setClickEvent,\n setLink,\n getLinks,\n bindFunctions,\n parseDuration,\n isInvalidDate,\n setWeekday,\n getWeekday\n};\nfunction getTaskTags(data, task, tags2) {\n let matchFound = true;\n while (matchFound) {\n matchFound = false;\n tags2.forEach(function(t) {\n const pattern = \"^\\\\s*\" + t + \"\\\\s*$\";\n const regex = new RegExp(pattern);\n if (data[0].match(regex)) {\n task[t] = true;\n data.shift(1);\n matchFound = true;\n }\n });\n }\n}\nconst setConf = function() {\n log.debug(\"Something is calling, setConf, remove the call\");\n};\nconst mapWeekdayToTimeFunction = {\n monday: timeMonday,\n tuesday: timeTuesday,\n wednesday: timeWednesday,\n thursday: timeThursday,\n friday: timeFriday,\n saturday: timeSaturday,\n sunday: timeSunday\n};\nconst getMaxIntersections = (tasks2, orderOffset) => {\n let timeline = [...tasks2].map(() => -Infinity);\n let sorted = [...tasks2].sort((a, b) => a.startTime - b.startTime || a.order - b.order);\n let maxIntersections = 0;\n for (const element of sorted) {\n for (let j = 0; j < timeline.length; j++) {\n if (element.startTime >= timeline[j]) {\n timeline[j] = element.endTime;\n element.order = j + orderOffset;\n if (j > maxIntersections) {\n maxIntersections = j;\n }\n break;\n }\n }\n }\n return maxIntersections;\n};\nlet w;\nconst draw = function(text, id, version, diagObj) {\n const conf = getConfig().gantt;\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n const elem = doc.getElementById(id);\n w = elem.parentElement.offsetWidth;\n if (w === void 0) {\n w = 1200;\n }\n if (conf.useWidth !== void 0) {\n w = conf.useWidth;\n }\n const taskArray = diagObj.db.getTasks();\n let categories = [];\n for (const element of taskArray) {\n categories.push(element.type);\n }\n categories = checkUnique(categories);\n const categoryHeights = {};\n let h = 2 * conf.topPadding;\n if (diagObj.db.getDisplayMode() === \"compact\" || conf.displayMode === \"compact\") {\n const categoryElements = {};\n for (const element of taskArray) {\n if (categoryElements[element.section] === void 0) {\n categoryElements[element.section] = [element];\n } else {\n categoryElements[element.section].push(element);\n }\n }\n let intersections = 0;\n for (const category of Object.keys(categoryElements)) {\n const categoryHeight = getMaxIntersections(categoryElements[category], intersections) + 1;\n intersections += categoryHeight;\n h += categoryHeight * (conf.barHeight + conf.barGap);\n categoryHeights[category] = categoryHeight;\n }\n } else {\n h += taskArray.length * (conf.barHeight + conf.barGap);\n for (const category of categories) {\n categoryHeights[category] = taskArray.filter((task) => task.type === category).length;\n }\n }\n elem.setAttribute(\"viewBox\", \"0 0 \" + w + \" \" + h);\n const svg = root.select(`[id=\"${id}\"]`);\n const timeScale = scaleTime().domain([\n min(taskArray, function(d) {\n return d.startTime;\n }),\n max(taskArray, function(d) {\n return d.endTime;\n })\n ]).rangeRound([0, w - conf.leftPadding - conf.rightPadding]);\n function taskCompare(a, b) {\n const taskA = a.startTime;\n const taskB = b.startTime;\n let result = 0;\n if (taskA > taskB) {\n result = 1;\n } else if (taskA < taskB) {\n result = -1;\n }\n return result;\n }\n taskArray.sort(taskCompare);\n makeGant(taskArray, w, h);\n configureSvgSize(svg, h, w, conf.useMaxWidth);\n svg.append(\"text\").text(diagObj.db.getDiagramTitle()).attr(\"x\", w / 2).attr(\"y\", conf.titleTopMargin).attr(\"class\", \"titleText\");\n function makeGant(tasks2, pageWidth, pageHeight) {\n const barHeight = conf.barHeight;\n const gap = barHeight + conf.barGap;\n const topPadding = conf.topPadding;\n const leftPadding = conf.leftPadding;\n const colorScale = scaleLinear().domain([0, categories.length]).range([\"#00B9FA\", \"#F95002\"]).interpolate(interpolateHcl);\n drawExcludeDays(\n gap,\n topPadding,\n leftPadding,\n pageWidth,\n pageHeight,\n tasks2,\n diagObj.db.getExcludes(),\n diagObj.db.getIncludes()\n );\n makeGrid(leftPadding, topPadding, pageWidth, pageHeight);\n drawRects(tasks2, gap, topPadding, leftPadding, barHeight, colorScale, pageWidth);\n vertLabels(gap, topPadding);\n drawToday(leftPadding, topPadding, pageWidth, pageHeight);\n }\n function drawRects(theArray, theGap, theTopPad, theSidePad, theBarHeight, theColorScale, w2) {\n const uniqueTaskOrderIds = [...new Set(theArray.map((item) => item.order))];\n const uniqueTasks = uniqueTaskOrderIds.map((id2) => theArray.find((item) => item.order === id2));\n svg.append(\"g\").selectAll(\"rect\").data(uniqueTasks).enter().append(\"rect\").attr(\"x\", 0).attr(\"y\", function(d, i) {\n i = d.order;\n return i * theGap + theTopPad - 2;\n }).attr(\"width\", function() {\n return w2 - conf.rightPadding / 2;\n }).attr(\"height\", theGap).attr(\"class\", function(d) {\n for (const [i, category] of categories.entries()) {\n if (d.type === category) {\n return \"section section\" + i % conf.numberSectionStyles;\n }\n }\n return \"section section0\";\n });\n const rectangles = svg.append(\"g\").selectAll(\"rect\").data(theArray).enter();\n const links2 = diagObj.db.getLinks();\n rectangles.append(\"rect\").attr(\"id\", function(d) {\n return d.id;\n }).attr(\"rx\", 3).attr(\"ry\", 3).attr(\"x\", function(d) {\n if (d.milestone) {\n return timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;\n }\n return timeScale(d.startTime) + theSidePad;\n }).attr(\"y\", function(d, i) {\n i = d.order;\n return i * theGap + theTopPad;\n }).attr(\"width\", function(d) {\n if (d.milestone) {\n return theBarHeight;\n }\n return timeScale(d.renderEndTime || d.endTime) - timeScale(d.startTime);\n }).attr(\"height\", theBarHeight).attr(\"transform-origin\", function(d, i) {\n i = d.order;\n return (timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime))).toString() + \"px \" + (i * theGap + theTopPad + 0.5 * theBarHeight).toString() + \"px\";\n }).attr(\"class\", function(d) {\n const res = \"task\";\n let classStr = \"\";\n if (d.classes.length > 0) {\n classStr = d.classes.join(\" \");\n }\n let secNum = 0;\n for (const [i, category] of categories.entries()) {\n if (d.type === category) {\n secNum = i % conf.numberSectionStyles;\n }\n }\n let taskClass = \"\";\n if (d.active) {\n if (d.crit) {\n taskClass += \" activeCrit\";\n } else {\n taskClass = \" active\";\n }\n } else if (d.done) {\n if (d.crit) {\n taskClass = \" doneCrit\";\n } else {\n taskClass = \" done\";\n }\n } else {\n if (d.crit) {\n taskClass += \" crit\";\n }\n }\n if (taskClass.length === 0) {\n taskClass = \" task\";\n }\n if (d.milestone) {\n taskClass = \" milestone \" + taskClass;\n }\n taskClass += secNum;\n taskClass += \" \" + classStr;\n return res + taskClass;\n });\n rectangles.append(\"text\").attr(\"id\", function(d) {\n return d.id + \"-text\";\n }).text(function(d) {\n return d.task;\n }).attr(\"font-size\", conf.fontSize).attr(\"x\", function(d) {\n let startX = timeScale(d.startTime);\n let endX = timeScale(d.renderEndTime || d.endTime);\n if (d.milestone) {\n startX += 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;\n }\n if (d.milestone) {\n endX = startX + theBarHeight;\n }\n const textWidth = this.getBBox().width;\n if (textWidth > endX - startX) {\n if (endX + textWidth + 1.5 * conf.leftPadding > w2) {\n return startX + theSidePad - 5;\n } else {\n return endX + theSidePad + 5;\n }\n } else {\n return (endX - startX) / 2 + startX + theSidePad;\n }\n }).attr(\"y\", function(d, i) {\n i = d.order;\n return i * theGap + conf.barHeight / 2 + (conf.fontSize / 2 - 2) + theTopPad;\n }).attr(\"text-height\", theBarHeight).attr(\"class\", function(d) {\n const startX = timeScale(d.startTime);\n let endX = timeScale(d.endTime);\n if (d.milestone) {\n endX = startX + theBarHeight;\n }\n const textWidth = this.getBBox().width;\n let classStr = \"\";\n if (d.classes.length > 0) {\n classStr = d.classes.join(\" \");\n }\n let secNum = 0;\n for (const [i, category] of categories.entries()) {\n if (d.type === category) {\n secNum = i % conf.numberSectionStyles;\n }\n }\n let taskType = \"\";\n if (d.active) {\n if (d.crit) {\n taskType = \"activeCritText\" + secNum;\n } else {\n taskType = \"activeText\" + secNum;\n }\n }\n if (d.done) {\n if (d.crit) {\n taskType = taskType + \" doneCritText\" + secNum;\n } else {\n taskType = taskType + \" doneText\" + secNum;\n }\n } else {\n if (d.crit) {\n taskType = taskType + \" critText\" + secNum;\n }\n }\n if (d.milestone) {\n taskType += \" milestoneText\";\n }\n if (textWidth > endX - startX) {\n if (endX + textWidth + 1.5 * conf.leftPadding > w2) {\n return classStr + \" taskTextOutsideLeft taskTextOutside\" + secNum + \" \" + taskType;\n } else {\n return classStr + \" taskTextOutsideRight taskTextOutside\" + secNum + \" \" + taskType + \" width-\" + textWidth;\n }\n } else {\n return classStr + \" taskText taskText\" + secNum + \" \" + taskType + \" width-\" + textWidth;\n }\n });\n const securityLevel2 = getConfig().securityLevel;\n if (securityLevel2 === \"sandbox\") {\n let sandboxElement2;\n sandboxElement2 = select(\"#i\" + id);\n const doc2 = sandboxElement2.nodes()[0].contentDocument;\n rectangles.filter(function(d) {\n return links2[d.id] !== void 0;\n }).each(function(o) {\n var taskRect = doc2.querySelector(\"#\" + o.id);\n var taskText = doc2.querySelector(\"#\" + o.id + \"-text\");\n const oldParent = taskRect.parentNode;\n var Link = doc2.createElement(\"a\");\n Link.setAttribute(\"xlink:href\", links2[o.id]);\n Link.setAttribute(\"target\", \"_top\");\n oldParent.appendChild(Link);\n Link.appendChild(taskRect);\n Link.appendChild(taskText);\n });\n }\n }\n function drawExcludeDays(theGap, theTopPad, theSidePad, w2, h2, tasks2, excludes2, includes2) {\n if (excludes2.length === 0 && includes2.length === 0) {\n return;\n }\n let minTime;\n let maxTime;\n for (const { startTime, endTime } of tasks2) {\n if (minTime === void 0 || startTime < minTime) {\n minTime = startTime;\n }\n if (maxTime === void 0 || endTime > maxTime) {\n maxTime = endTime;\n }\n }\n if (!minTime || !maxTime) {\n return;\n }\n if (dayjs(maxTime).diff(dayjs(minTime), \"year\") > 5) {\n log.warn(\n \"The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.\"\n );\n return;\n }\n const dateFormat2 = diagObj.db.getDateFormat();\n const excludeRanges = [];\n let range = null;\n let d = dayjs(minTime);\n while (d.valueOf() <= maxTime) {\n if (diagObj.db.isInvalidDate(d, dateFormat2, excludes2, includes2)) {\n if (!range) {\n range = {\n start: d,\n end: d\n };\n } else {\n range.end = d;\n }\n } else {\n if (range) {\n excludeRanges.push(range);\n range = null;\n }\n }\n d = d.add(1, \"d\");\n }\n const rectangles = svg.append(\"g\").selectAll(\"rect\").data(excludeRanges).enter();\n rectangles.append(\"rect\").attr(\"id\", function(d2) {\n return \"exclude-\" + d2.start.format(\"YYYY-MM-DD\");\n }).attr(\"x\", function(d2) {\n return timeScale(d2.start) + theSidePad;\n }).attr(\"y\", conf.gridLineStartPadding).attr(\"width\", function(d2) {\n const renderEnd = d2.end.add(1, \"day\");\n return timeScale(renderEnd) - timeScale(d2.start);\n }).attr(\"height\", h2 - theTopPad - conf.gridLineStartPadding).attr(\"transform-origin\", function(d2, i) {\n return (timeScale(d2.start) + theSidePad + 0.5 * (timeScale(d2.end) - timeScale(d2.start))).toString() + \"px \" + (i * theGap + 0.5 * h2).toString() + \"px\";\n }).attr(\"class\", \"exclude-range\");\n }\n function makeGrid(theSidePad, theTopPad, w2, h2) {\n let bottomXAxis = axisBottom(timeScale).tickSize(-h2 + theTopPad + conf.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf.axisFormat || \"%Y-%m-%d\"));\n const reTickInterval = /^([1-9]\\d*)(millisecond|second|minute|hour|day|week|month)$/;\n const resultTickInterval = reTickInterval.exec(\n diagObj.db.getTickInterval() || conf.tickInterval\n );\n if (resultTickInterval !== null) {\n const every = resultTickInterval[1];\n const interval = resultTickInterval[2];\n const weekday2 = diagObj.db.getWeekday() || conf.weekday;\n switch (interval) {\n case \"millisecond\":\n bottomXAxis.ticks(timeMillisecond.every(every));\n break;\n case \"second\":\n bottomXAxis.ticks(timeSecond.every(every));\n break;\n case \"minute\":\n bottomXAxis.ticks(timeMinute.every(every));\n break;\n case \"hour\":\n bottomXAxis.ticks(timeHour.every(every));\n break;\n case \"day\":\n bottomXAxis.ticks(timeDay.every(every));\n break;\n case \"week\":\n bottomXAxis.ticks(mapWeekdayToTimeFunction[weekday2].every(every));\n break;\n case \"month\":\n bottomXAxis.ticks(timeMonth.every(every));\n break;\n }\n }\n svg.append(\"g\").attr(\"class\", \"grid\").attr(\"transform\", \"translate(\" + theSidePad + \", \" + (h2 - 50) + \")\").call(bottomXAxis).selectAll(\"text\").style(\"text-anchor\", \"middle\").attr(\"fill\", \"#000\").attr(\"stroke\", \"none\").attr(\"font-size\", 10).attr(\"dy\", \"1em\");\n if (diagObj.db.topAxisEnabled() || conf.topAxis) {\n let topXAxis = axisTop(timeScale).tickSize(-h2 + theTopPad + conf.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf.axisFormat || \"%Y-%m-%d\"));\n if (resultTickInterval !== null) {\n const every = resultTickInterval[1];\n const interval = resultTickInterval[2];\n const weekday2 = diagObj.db.getWeekday() || conf.weekday;\n switch (interval) {\n case \"millisecond\":\n topXAxis.ticks(timeMillisecond.every(every));\n break;\n case \"second\":\n topXAxis.ticks(timeSecond.every(every));\n break;\n case \"minute\":\n topXAxis.ticks(timeMinute.every(every));\n break;\n case \"hour\":\n topXAxis.ticks(timeHour.every(every));\n break;\n case \"day\":\n topXAxis.ticks(timeDay.every(every));\n break;\n case \"week\":\n topXAxis.ticks(mapWeekdayToTimeFunction[weekday2].every(every));\n break;\n case \"month\":\n topXAxis.ticks(timeMonth.every(every));\n break;\n }\n }\n svg.append(\"g\").attr(\"class\", \"grid\").attr(\"transform\", \"translate(\" + theSidePad + \", \" + theTopPad + \")\").call(topXAxis).selectAll(\"text\").style(\"text-anchor\", \"middle\").attr(\"fill\", \"#000\").attr(\"stroke\", \"none\").attr(\"font-size\", 10);\n }\n }\n function vertLabels(theGap, theTopPad) {\n let prevGap = 0;\n const numOccurances = Object.keys(categoryHeights).map((d) => [d, categoryHeights[d]]);\n svg.append(\"g\").selectAll(\"text\").data(numOccurances).enter().append(function(d) {\n const rows = d[0].split(common.lineBreakRegex);\n const dy = -(rows.length - 1) / 2;\n const svgLabel = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n svgLabel.setAttribute(\"dy\", dy + \"em\");\n for (const [j, row] of rows.entries()) {\n const tspan = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttribute(\"alignment-baseline\", \"central\");\n tspan.setAttribute(\"x\", \"10\");\n if (j > 0) {\n tspan.setAttribute(\"dy\", \"1em\");\n }\n tspan.textContent = row;\n svgLabel.appendChild(tspan);\n }\n return svgLabel;\n }).attr(\"x\", 10).attr(\"y\", function(d, i) {\n if (i > 0) {\n for (let j = 0; j < i; j++) {\n prevGap += numOccurances[i - 1][1];\n return d[1] * theGap / 2 + prevGap * theGap + theTopPad;\n }\n } else {\n return d[1] * theGap / 2 + theTopPad;\n }\n }).attr(\"font-size\", conf.sectionFontSize).attr(\"class\", function(d) {\n for (const [i, category] of categories.entries()) {\n if (d[0] === category) {\n return \"sectionTitle sectionTitle\" + i % conf.numberSectionStyles;\n }\n }\n return \"sectionTitle\";\n });\n }\n function drawToday(theSidePad, theTopPad, w2, h2) {\n const todayMarker2 = diagObj.db.getTodayMarker();\n if (todayMarker2 === \"off\") {\n return;\n }\n const todayG = svg.append(\"g\").attr(\"class\", \"today\");\n const today = /* @__PURE__ */ new Date();\n const todayLine = todayG.append(\"line\");\n todayLine.attr(\"x1\", timeScale(today) + theSidePad).attr(\"x2\", timeScale(today) + theSidePad).attr(\"y1\", conf.titleTopMargin).attr(\"y2\", h2 - conf.titleTopMargin).attr(\"class\", \"today\");\n if (todayMarker2 !== \"\") {\n todayLine.attr(\"style\", todayMarker2.replace(/,/g, \";\"));\n }\n }\n function checkUnique(arr) {\n const hash = {};\n const result = [];\n for (let i = 0, l = arr.length; i < l; ++i) {\n if (!Object.prototype.hasOwnProperty.call(hash, arr[i])) {\n hash[arr[i]] = true;\n result.push(arr[i]);\n }\n }\n return result;\n }\n};\nconst ganttRenderer = {\n setConf,\n draw\n};\nconst getStyles = (options) => `\n .mermaid-main-font {\n font-family: var(--mermaid-font-family, \"trebuchet ms\", verdana, arial, sans-serif);\n }\n\n .exclude-range {\n fill: ${options.excludeBkgColor};\n }\n\n .section {\n stroke: none;\n opacity: 0.2;\n }\n\n .section0 {\n fill: ${options.sectionBkgColor};\n }\n\n .section2 {\n fill: ${options.sectionBkgColor2};\n }\n\n .section1,\n .section3 {\n fill: ${options.altSectionBkgColor};\n opacity: 0.2;\n }\n\n .sectionTitle0 {\n fill: ${options.titleColor};\n }\n\n .sectionTitle1 {\n fill: ${options.titleColor};\n }\n\n .sectionTitle2 {\n fill: ${options.titleColor};\n }\n\n .sectionTitle3 {\n fill: ${options.titleColor};\n }\n\n .sectionTitle {\n text-anchor: start;\n font-family: var(--mermaid-font-family, \"trebuchet ms\", verdana, arial, sans-serif);\n }\n\n\n /* Grid and axis */\n\n .grid .tick {\n stroke: ${options.gridColor};\n opacity: 0.8;\n shape-rendering: crispEdges;\n }\n\n .grid .tick text {\n font-family: ${options.fontFamily};\n fill: ${options.textColor};\n }\n\n .grid path {\n stroke-width: 0;\n }\n\n\n /* Today line */\n\n .today {\n fill: none;\n stroke: ${options.todayLineColor};\n stroke-width: 2px;\n }\n\n\n /* Task styling */\n\n /* Default task */\n\n .task {\n stroke-width: 2;\n }\n\n .taskText {\n text-anchor: middle;\n font-family: var(--mermaid-font-family, \"trebuchet ms\", verdana, arial, sans-serif);\n }\n\n .taskTextOutsideRight {\n fill: ${options.taskTextDarkColor};\n text-anchor: start;\n font-family: var(--mermaid-font-family, \"trebuchet ms\", verdana, arial, sans-serif);\n }\n\n .taskTextOutsideLeft {\n fill: ${options.taskTextDarkColor};\n text-anchor: end;\n }\n\n\n /* Special case clickable */\n\n .task.clickable {\n cursor: pointer;\n }\n\n .taskText.clickable {\n cursor: pointer;\n fill: ${options.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n .taskTextOutsideLeft.clickable {\n cursor: pointer;\n fill: ${options.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n .taskTextOutsideRight.clickable {\n cursor: pointer;\n fill: ${options.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n\n /* Specific task settings for the sections*/\n\n .taskText0,\n .taskText1,\n .taskText2,\n .taskText3 {\n fill: ${options.taskTextColor};\n }\n\n .task0,\n .task1,\n .task2,\n .task3 {\n fill: ${options.taskBkgColor};\n stroke: ${options.taskBorderColor};\n }\n\n .taskTextOutside0,\n .taskTextOutside2\n {\n fill: ${options.taskTextOutsideColor};\n }\n\n .taskTextOutside1,\n .taskTextOutside3 {\n fill: ${options.taskTextOutsideColor};\n }\n\n\n /* Active task */\n\n .active0,\n .active1,\n .active2,\n .active3 {\n fill: ${options.activeTaskBkgColor};\n stroke: ${options.activeTaskBorderColor};\n }\n\n .activeText0,\n .activeText1,\n .activeText2,\n .activeText3 {\n fill: ${options.taskTextDarkColor} !important;\n }\n\n\n /* Completed task */\n\n .done0,\n .done1,\n .done2,\n .done3 {\n stroke: ${options.doneTaskBorderColor};\n fill: ${options.doneTaskBkgColor};\n stroke-width: 2;\n }\n\n .doneText0,\n .doneText1,\n .doneText2,\n .doneText3 {\n fill: ${options.taskTextDarkColor} !important;\n }\n\n\n /* Tasks on the critical line */\n\n .crit0,\n .crit1,\n .crit2,\n .crit3 {\n stroke: ${options.critBorderColor};\n fill: ${options.critBkgColor};\n stroke-width: 2;\n }\n\n .activeCrit0,\n .activeCrit1,\n .activeCrit2,\n .activeCrit3 {\n stroke: ${options.critBorderColor};\n fill: ${options.activeTaskBkgColor};\n stroke-width: 2;\n }\n\n .doneCrit0,\n .doneCrit1,\n .doneCrit2,\n .doneCrit3 {\n stroke: ${options.critBorderColor};\n fill: ${options.doneTaskBkgColor};\n stroke-width: 2;\n cursor: pointer;\n shape-rendering: crispEdges;\n }\n\n .milestone {\n transform: rotate(45deg) scale(0.8,0.8);\n }\n\n .milestoneText {\n font-style: italic;\n }\n .doneCritText0,\n .doneCritText1,\n .doneCritText2,\n .doneCritText3 {\n fill: ${options.taskTextDarkColor} !important;\n }\n\n .activeCritText0,\n .activeCritText1,\n .activeCritText2,\n .activeCritText3 {\n fill: ${options.taskTextDarkColor} !important;\n }\n\n .titleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.titleColor || options.textColor};\n font-family: var(--mermaid-font-family, \"trebuchet ms\", verdana, arial, sans-serif);\n }\n`;\nconst ganttStyles = getStyles;\nconst diagram = {\n parser: ganttParser,\n db: ganttDb,\n renderer: ganttRenderer,\n styles: ganttStyles\n};\nexport {\n diagram\n};\n"],"names":["max","values","valueof","value","index","min","identity","x","top","right","bottom","left","epsilon","translateX","translateY","y","number","scale","d","center","offset","entering","axis","orient","tickArguments","tickValues","tickFormat","tickSizeInner","tickSizeOuter","tickPadding","transform","context","format","spacing","range","range0","range1","position","selection","path","tick","tickExit","tickEnter","line","text","p","_","axisTop","axisBottom","radians","degrees","K","Xn","Yn","Zn","t0","t1","t2","t3","labConvert","o","Lab","Hcl","hcl2lab","Rgb","rgbConvert","r","rgb2lrgb","g","b","xyz2lab","z","lab","l","a","opacity","define","extend","Color","k","lab2xyz","lrgb2rgb","hclConvert","h","hcl","c","hue","start","end","colorHcl","color","t","interpolateHcl","nice","domain","interval","i0","i1","x0","x1","timeInterval","floori","offseti","count","field","date","d0","d1","step","stop","previous","test","millisecond","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","second","timeMinute","utcMinute","timeHour","utcHour","timeDay","utcDay","unixDay","timeWeekday","i","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","utcMonth","timeYear","utcYear","ticker","year","month","week","day","hour","minute","tickIntervals","ticks","reverse","tickInterval","target","bisector","tickStep","timeTicks","timeTickInterval","localDate","utcDate","newDate","m","formatLocale","locale","locale_dateTime","locale_date","locale_time","locale_periods","locale_weekdays","locale_shortWeekdays","locale_months","locale_shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","formatShortWeekday","formatWeekday","formatShortMonth","formatMonth","formatDayOfMonth","formatMicroseconds","formatYearISO","formatFullYearISO","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatPeriod","formatQuarter","formatUnixTimestamp","formatUnixTimestampSeconds","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatFullYear","formatZone","formatLiteralPercent","utcFormats","formatUTCShortWeekday","formatUTCWeekday","formatUTCShortMonth","formatUTCMonth","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCYearISO","formatUTCFullYearISO","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCPeriod","formatUTCQuarter","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","parseShortWeekday","parseWeekday","parseShortMonth","parseMonth","parseLocaleDateTime","parseDayOfMonth","parseMicroseconds","parseYear","parseFullYear","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parsePeriod","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseLocaleDate","parseLocaleTime","parseZone","parseLiteralPercent","newFormat","specifier","string","j","n","pad","pads","newParse","Z","parseSpecifier","parse","f","numberRe","percentRe","requoteRe","fill","width","sign","length","requote","s","names","name","dISO","dow","UTCdISO","timeFormat","defaultLocale","definition","calendar","continuous","invert","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","copy","time","initRange","timeWeek","timeSecond","e","module","this","u","M","Y","v","D","parser","o2","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","lex","token","symbol","state","action","yyval","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","match","indexed_rule","backup","tempMatch","rules","condition","yy_","$avoiding_name_collisions","YY_START","Parser","ganttParser","dayjs","dayjsIsoWeek","dayjsCustomParseFormat","dayjsAdvancedFormat","dateFormat","axisFormat","todayMarker","includes","excludes","links","sections","tasks","currentSection","displayMode","tags","funs","inclusiveEndDates","topAxis","weekday","lastOrder","clear","taskCnt","lastTask","lastTaskID","rawTasks","clear$1","setAxisFormat","txt","getAxisFormat","setTickInterval","getTickInterval","setTodayMarker","getTodayMarker","setDateFormat","enableInclusiveEndDates","endDatesAreInclusive","enableTopAxis","topAxisEnabled","setDisplayMode","getDisplayMode","getDateFormat","setIncludes","getIncludes","setExcludes","getExcludes","getLinks","addSection","getSections","getTasks","allItemsProcessed","compileTasks","maxDepth","iterationCount","isInvalidDate","dateFormat2","excludes2","includes2","setWeekday","getWeekday","checkTaskDates","task","startTime","originalEndTime","fixedEndTime","renderEndTime","fixTaskDates","endTime","invalid","getStartDate","prevTime","afterStatement","latestEndingTask","id","findTaskById","dt","mDate","log","parseDuration","statement","getEndDate","inclusive","durationValue","durationUnit","newEndTime","parseId","idStr","compileData","prevTask","dataStr","ds","data","getTaskTags","endTimeData","parseData","prevTaskId","taskDb","addTask","descr","rawTask","taskInfo","pos","addTaskOrg","newTask","compileTask","allProcessed","setLink","ids","_linkStr","linkStr","getConfig","sanitizeUrl","pushFun","setClass","className","setClickFun","functionName","functionArgs","argList","item","utils","callbackFunction","elem","setClickEvent","bindFunctions","element","fun","ganttDb","setAccTitle","getAccTitle","setDiagramTitle","getDiagramTitle","setAccDescription","getAccDescription","tags2","matchFound","pattern","regex","setConf","mapWeekdayToTimeFunction","getMaxIntersections","tasks2","orderOffset","timeline","sorted","maxIntersections","w","draw","version","diagObj","conf","securityLevel","sandboxElement","select","root","doc","taskArray","categories","checkUnique","categoryHeights","categoryElements","intersections","category","categoryHeight","svg","timeScale","scaleTime","taskCompare","taskA","taskB","result","makeGant","configureSvgSize","pageWidth","pageHeight","barHeight","gap","topPadding","leftPadding","colorScale","scaleLinear","drawExcludeDays","makeGrid","drawRects","vertLabels","drawToday","theArray","theGap","theTopPad","theSidePad","theBarHeight","theColorScale","w2","uniqueTasks","id2","rectangles","links2","res","classStr","secNum","taskClass","startX","endX","textWidth","taskType","sandboxElement2","doc2","taskRect","taskText","oldParent","Link","h2","minTime","maxTime","excludeRanges","d2","renderEnd","bottomXAxis","resultTickInterval","every","weekday2","timeMillisecond","topXAxis","prevGap","numOccurances","rows","common","dy","svgLabel","row","tspan","todayMarker2","todayG","today","todayLine","arr","ganttRenderer","getStyles","options","ganttStyles","diagram"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]}
1
+ {"version":3,"file":"ganttDiagram-5c869e3b-CP3jCxVz.js","sources":["../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/max.js","../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/min.js","../node_modules/.pnpm/d3-axis@3.0.0/node_modules/d3-axis/src/identity.js","../node_modules/.pnpm/d3-axis@3.0.0/node_modules/d3-axis/src/axis.js","../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/math.js","../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/lab.js","../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/hcl.js","../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/nice.js","../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/interval.js","../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/millisecond.js","../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/duration.js","../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/second.js","../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/minute.js","../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/hour.js","../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/day.js","../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/week.js","../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/month.js","../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/year.js","../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/ticks.js","../node_modules/.pnpm/d3-time-format@4.1.0/node_modules/d3-time-format/src/locale.js","../node_modules/.pnpm/d3-time-format@4.1.0/node_modules/d3-time-format/src/defaultLocale.js","../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/time.js","../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/isoWeek.js","../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/customParseFormat.js","../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/advancedFormat.js","../node_modules/.pnpm/mermaid@10.8.0/node_modules/mermaid/dist/ganttDiagram-5c869e3b.js"],"sourcesContent":["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","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 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","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","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","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","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeek=t()}(this,(function(){\"use strict\";var e=\"day\";return function(t,i,s){var a=function(t){return t.add(4-t.isoWeekday(),e)},d=i.prototype;d.isoWeekYear=function(){return a(this).year()},d.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),e);var i,d,n,o,r=a(this),u=(i=this.isoWeekYear(),d=this.$u,n=(d?s.utc:s)().year(i).startOf(\"year\"),o=4-n.isoWeekday(),n.isoWeekday()>4&&(o+=7),n.add(o,e));return r.diff(u,\"week\")+1},d.isoWeekday=function(e){return this.$utils().u(e)?this.day()||7:this.day(this.day()%7?e:e-7)};var n=d.startOf;d.startOf=function(e,t){var i=this.$utils(),s=!!i.u(t)||t;return\"isoweek\"===i.p(e)?s?this.date(this.date()-(this.isoWeekday()-1)).startOf(\"day\"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf(\"day\"):n.bind(this)(e,t)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^-_:/,()\\s\\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(e){var t=h(\"months\"),n=(h(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f<a;f+=1){var h=s[f],u=d[h],c=u&&u[0],l=u&&u[1];s[f]=l?{regex:c,parser:l}:h.replace(/^\\[|\\]$/g,\"\")}return function(e){for(var t={},n=0,r=0;n<a;n+=1){var i=s[n];if(\"string\"==typeof i)r+=i.length;else{var o=i.regex,f=i.parser,h=e.slice(r),u=o.exec(h)[0];f.call(t,u),e=e.replace(u,\"\")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(s=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,s=e.args;this.$u=r;var a=s[1];if(\"string\"==typeof a){var f=!0===s[2],h=!0===s[3],u=f||h,d=s[2];h&&(d=s[2]),o=this.$locale(),!f&&d&&(o=n.Ls[d]),this.$d=function(e,t,n){try{if([\"x\",\"X\"].indexOf(t)>-1)return new Date((\"X\"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date(\"\")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_advancedFormat=t()}(this,(function(){\"use strict\";return function(e,t){var r=t.prototype,n=r.format;r.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return n.bind(this)(e);var s=this.$utils(),a=(e||\"YYYY-MM-DDTHH:mm:ssZ\").replace(/\\[([^\\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case\"Q\":return Math.ceil((t.$M+1)/3);case\"Do\":return r.ordinal(t.$D);case\"gggg\":return t.weekYear();case\"GGGG\":return t.isoWeekYear();case\"wo\":return r.ordinal(t.week(),\"W\");case\"w\":case\"ww\":return s.s(t.week(),\"w\"===e?1:2,\"0\");case\"W\":case\"WW\":return s.s(t.isoWeek(),\"W\"===e?1:2,\"0\");case\"k\":case\"kk\":return s.s(String(0===t.$H?24:t.$H),\"k\"===e?1:2,\"0\");case\"X\":return Math.floor(t.$d.getTime()/1e3);case\"x\":return t.$d.getTime();case\"z\":return\"[\"+t.offsetName()+\"]\";case\"zzz\":return\"[\"+t.offsetName(\"long\")+\"]\";default:return e}}));return n.bind(this)(a)}}}));","import { sanitizeUrl } from \"@braintree/sanitize-url\";\nimport dayjs from \"dayjs\";\nimport dayjsIsoWeek from \"dayjs/plugin/isoWeek.js\";\nimport dayjsCustomParseFormat from \"dayjs/plugin/customParseFormat.js\";\nimport dayjsAdvancedFormat from \"dayjs/plugin/advancedFormat.js\";\nimport { c as getConfig, s as setAccTitle, g as getAccTitle, q as setDiagramTitle, r as getDiagramTitle, b as setAccDescription, a as getAccDescription, t as clear$1, u as utils, l as log, i as configureSvgSize, e as common } from \"./mermaid-0603ccf8.js\";\nimport { select, scaleTime, min, max, scaleLinear, interpolateHcl, axisBottom, timeFormat, timeMonth, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, axisTop, timeMonday, timeTuesday, timeWednesday, timeThursday, timeFriday, timeSaturday, timeSunday } from \"d3\";\nimport \"ts-dedent\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [6, 8, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 33, 35, 37], $V1 = [1, 25], $V2 = [1, 26], $V3 = [1, 27], $V4 = [1, 28], $V5 = [1, 29], $V6 = [1, 30], $V7 = [1, 31], $V8 = [1, 9], $V9 = [1, 10], $Va = [1, 11], $Vb = [1, 12], $Vc = [1, 13], $Vd = [1, 14], $Ve = [1, 15], $Vf = [1, 16], $Vg = [1, 18], $Vh = [1, 19], $Vi = [1, 20], $Vj = [1, 21], $Vk = [1, 22], $Vl = [1, 24], $Vm = [1, 32];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"gantt\": 4, \"document\": 5, \"EOF\": 6, \"line\": 7, \"SPACE\": 8, \"statement\": 9, \"NL\": 10, \"weekday\": 11, \"weekday_monday\": 12, \"weekday_tuesday\": 13, \"weekday_wednesday\": 14, \"weekday_thursday\": 15, \"weekday_friday\": 16, \"weekday_saturday\": 17, \"weekday_sunday\": 18, \"dateFormat\": 19, \"inclusiveEndDates\": 20, \"topAxis\": 21, \"axisFormat\": 22, \"tickInterval\": 23, \"excludes\": 24, \"includes\": 25, \"todayMarker\": 26, \"title\": 27, \"acc_title\": 28, \"acc_title_value\": 29, \"acc_descr\": 30, \"acc_descr_value\": 31, \"acc_descr_multiline_value\": 32, \"section\": 33, \"clickStatement\": 34, \"taskTxt\": 35, \"taskData\": 36, \"click\": 37, \"callbackname\": 38, \"callbackargs\": 39, \"href\": 40, \"clickStatementDebug\": 41, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"gantt\", 6: \"EOF\", 8: \"SPACE\", 10: \"NL\", 12: \"weekday_monday\", 13: \"weekday_tuesday\", 14: \"weekday_wednesday\", 15: \"weekday_thursday\", 16: \"weekday_friday\", 17: \"weekday_saturday\", 18: \"weekday_sunday\", 19: \"dateFormat\", 20: \"inclusiveEndDates\", 21: \"topAxis\", 22: \"axisFormat\", 23: \"tickInterval\", 24: \"excludes\", 25: \"includes\", 26: \"todayMarker\", 27: \"title\", 28: \"acc_title\", 29: \"acc_title_value\", 30: \"acc_descr\", 31: \"acc_descr_value\", 32: \"acc_descr_multiline_value\", 33: \"section\", 35: \"taskTxt\", 36: \"taskData\", 37: \"click\", 38: \"callbackname\", 39: \"callbackargs\", 40: \"href\" },\n productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 1], [9, 2], [34, 2], [34, 3], [34, 3], [34, 4], [34, 3], [34, 4], [34, 2], [41, 2], [41, 3], [41, 3], [41, 4], [41, 3], [41, 4], [41, 2]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 1:\n return $$[$0 - 1];\n case 2:\n this.$ = [];\n break;\n case 3:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 4:\n case 5:\n this.$ = $$[$0];\n break;\n case 6:\n case 7:\n this.$ = [];\n break;\n case 8:\n yy.setWeekday(\"monday\");\n break;\n case 9:\n yy.setWeekday(\"tuesday\");\n break;\n case 10:\n yy.setWeekday(\"wednesday\");\n break;\n case 11:\n yy.setWeekday(\"thursday\");\n break;\n case 12:\n yy.setWeekday(\"friday\");\n break;\n case 13:\n yy.setWeekday(\"saturday\");\n break;\n case 14:\n yy.setWeekday(\"sunday\");\n break;\n case 15:\n yy.setDateFormat($$[$0].substr(11));\n this.$ = $$[$0].substr(11);\n break;\n case 16:\n yy.enableInclusiveEndDates();\n this.$ = $$[$0].substr(18);\n break;\n case 17:\n yy.TopAxis();\n this.$ = $$[$0].substr(8);\n break;\n case 18:\n yy.setAxisFormat($$[$0].substr(11));\n this.$ = $$[$0].substr(11);\n break;\n case 19:\n yy.setTickInterval($$[$0].substr(13));\n this.$ = $$[$0].substr(13);\n break;\n case 20:\n yy.setExcludes($$[$0].substr(9));\n this.$ = $$[$0].substr(9);\n break;\n case 21:\n yy.setIncludes($$[$0].substr(9));\n this.$ = $$[$0].substr(9);\n break;\n case 22:\n yy.setTodayMarker($$[$0].substr(12));\n this.$ = $$[$0].substr(12);\n break;\n case 24:\n yy.setDiagramTitle($$[$0].substr(6));\n this.$ = $$[$0].substr(6);\n break;\n case 25:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 26:\n case 27:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 28:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n case 30:\n yy.addTask($$[$0 - 1], $$[$0]);\n this.$ = \"task\";\n break;\n case 31:\n this.$ = $$[$0 - 1];\n yy.setClickEvent($$[$0 - 1], $$[$0], null);\n break;\n case 32:\n this.$ = $$[$0 - 2];\n yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);\n break;\n case 33:\n this.$ = $$[$0 - 2];\n yy.setClickEvent($$[$0 - 2], $$[$0 - 1], null);\n yy.setLink($$[$0 - 2], $$[$0]);\n break;\n case 34:\n this.$ = $$[$0 - 3];\n yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]);\n yy.setLink($$[$0 - 3], $$[$0]);\n break;\n case 35:\n this.$ = $$[$0 - 2];\n yy.setClickEvent($$[$0 - 2], $$[$0], null);\n yy.setLink($$[$0 - 2], $$[$0 - 1]);\n break;\n case 36:\n this.$ = $$[$0 - 3];\n yy.setClickEvent($$[$0 - 3], $$[$0 - 1], $$[$0]);\n yy.setLink($$[$0 - 3], $$[$0 - 2]);\n break;\n case 37:\n this.$ = $$[$0 - 1];\n yy.setLink($$[$0 - 1], $$[$0]);\n break;\n case 38:\n case 44:\n this.$ = $$[$0 - 1] + \" \" + $$[$0];\n break;\n case 39:\n case 40:\n case 42:\n this.$ = $$[$0 - 2] + \" \" + $$[$0 - 1] + \" \" + $$[$0];\n break;\n case 41:\n case 43:\n this.$ = $$[$0 - 3] + \" \" + $$[$0 - 2] + \" \" + $$[$0 - 1] + \" \" + $$[$0];\n break;\n }\n },\n table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: 17, 12: $V1, 13: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd, 25: $Ve, 26: $Vf, 27: $Vg, 28: $Vh, 30: $Vi, 32: $Vj, 33: $Vk, 34: 23, 35: $Vl, 37: $Vm }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 33, 11: 17, 12: $V1, 13: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd, 25: $Ve, 26: $Vf, 27: $Vg, 28: $Vh, 30: $Vi, 32: $Vj, 33: $Vk, 34: 23, 35: $Vl, 37: $Vm }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 15]), o($V0, [2, 16]), o($V0, [2, 17]), o($V0, [2, 18]), o($V0, [2, 19]), o($V0, [2, 20]), o($V0, [2, 21]), o($V0, [2, 22]), o($V0, [2, 23]), o($V0, [2, 24]), { 29: [1, 34] }, { 31: [1, 35] }, o($V0, [2, 27]), o($V0, [2, 28]), o($V0, [2, 29]), { 36: [1, 36] }, o($V0, [2, 8]), o($V0, [2, 9]), o($V0, [2, 10]), o($V0, [2, 11]), o($V0, [2, 12]), o($V0, [2, 13]), o($V0, [2, 14]), { 38: [1, 37], 40: [1, 38] }, o($V0, [2, 4]), o($V0, [2, 25]), o($V0, [2, 26]), o($V0, [2, 30]), o($V0, [2, 31], { 39: [1, 39], 40: [1, 40] }), o($V0, [2, 37], { 38: [1, 41] }), o($V0, [2, 32], { 40: [1, 42] }), o($V0, [2, 33]), o($V0, [2, 35], { 39: [1, 43] }), o($V0, [2, 34]), o($V0, [2, 36])],\n defaultActions: {},\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"open_directive\");\n return \"open_directive\";\n case 1:\n this.begin(\"acc_title\");\n return 28;\n case 2:\n this.popState();\n return \"acc_title_value\";\n case 3:\n this.begin(\"acc_descr\");\n return 30;\n case 4:\n this.popState();\n return \"acc_descr_value\";\n case 5:\n this.begin(\"acc_descr_multiline\");\n break;\n case 6:\n this.popState();\n break;\n case 7:\n return \"acc_descr_multiline_value\";\n case 8:\n break;\n case 9:\n break;\n case 10:\n break;\n case 11:\n return 10;\n case 12:\n break;\n case 13:\n break;\n case 14:\n this.begin(\"href\");\n break;\n case 15:\n this.popState();\n break;\n case 16:\n return 40;\n case 17:\n this.begin(\"callbackname\");\n break;\n case 18:\n this.popState();\n break;\n case 19:\n this.popState();\n this.begin(\"callbackargs\");\n break;\n case 20:\n return 38;\n case 21:\n this.popState();\n break;\n case 22:\n return 39;\n case 23:\n this.begin(\"click\");\n break;\n case 24:\n this.popState();\n break;\n case 25:\n return 37;\n case 26:\n return 4;\n case 27:\n return 19;\n case 28:\n return 20;\n case 29:\n return 21;\n case 30:\n return 22;\n case 31:\n return 23;\n case 32:\n return 25;\n case 33:\n return 24;\n case 34:\n return 26;\n case 35:\n return 12;\n case 36:\n return 13;\n case 37:\n return 14;\n case 38:\n return 15;\n case 39:\n return 16;\n case 40:\n return 17;\n case 41:\n return 18;\n case 42:\n return \"date\";\n case 43:\n return 27;\n case 44:\n return \"accDescription\";\n case 45:\n return 33;\n case 46:\n return 35;\n case 47:\n return 36;\n case 48:\n return \":\";\n case 49:\n return 6;\n case 50:\n return \"INVALID\";\n }\n },\n rules: [/^(?:%%\\{)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:%%(?!\\{)*[^\\n]*)/i, /^(?:[^\\}]%%*[^\\n]*)/i, /^(?:%%*[^\\n]*[\\n]*)/i, /^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?:%[^\\n]*)/i, /^(?:href[\\s]+[\"])/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:call[\\s]+)/i, /^(?:\\([\\s]*\\))/i, /^(?:\\()/i, /^(?:[^(]*)/i, /^(?:\\))/i, /^(?:[^)]*)/i, /^(?:click[\\s]+)/i, /^(?:[\\s\\n])/i, /^(?:[^\\s\\n]*)/i, /^(?:gantt\\b)/i, /^(?:dateFormat\\s[^#\\n;]+)/i, /^(?:inclusiveEndDates\\b)/i, /^(?:topAxis\\b)/i, /^(?:axisFormat\\s[^#\\n;]+)/i, /^(?:tickInterval\\s[^#\\n;]+)/i, /^(?:includes\\s[^#\\n;]+)/i, /^(?:excludes\\s[^#\\n;]+)/i, /^(?:todayMarker\\s[^\\n;]+)/i, /^(?:weekday\\s+monday\\b)/i, /^(?:weekday\\s+tuesday\\b)/i, /^(?:weekday\\s+wednesday\\b)/i, /^(?:weekday\\s+thursday\\b)/i, /^(?:weekday\\s+friday\\b)/i, /^(?:weekday\\s+saturday\\b)/i, /^(?:weekday\\s+sunday\\b)/i, /^(?:\\d\\d\\d\\d-\\d\\d-\\d\\d\\b)/i, /^(?:title\\s[^\\n]+)/i, /^(?:accDescription\\s[^#\\n;]+)/i, /^(?:section\\s[^\\n]+)/i, /^(?:[^:\\n]+)/i, /^(?::[^#\\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [6, 7], \"inclusive\": false }, \"acc_descr\": { \"rules\": [4], \"inclusive\": false }, \"acc_title\": { \"rules\": [2], \"inclusive\": false }, \"callbackargs\": { \"rules\": [21, 22], \"inclusive\": false }, \"callbackname\": { \"rules\": [18, 19, 20], \"inclusive\": false }, \"href\": { \"rules\": [15, 16], \"inclusive\": false }, \"click\": { \"rules\": [24, 25], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 3, 5, 8, 9, 10, 11, 12, 13, 14, 17, 23, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst ganttParser = parser;\ndayjs.extend(dayjsIsoWeek);\ndayjs.extend(dayjsCustomParseFormat);\ndayjs.extend(dayjsAdvancedFormat);\nlet dateFormat = \"\";\nlet axisFormat = \"\";\nlet tickInterval = void 0;\nlet todayMarker = \"\";\nlet includes = [];\nlet excludes = [];\nlet links = {};\nlet sections = [];\nlet tasks = [];\nlet currentSection = \"\";\nlet displayMode = \"\";\nconst tags = [\"active\", \"done\", \"crit\", \"milestone\"];\nlet funs = [];\nlet inclusiveEndDates = false;\nlet topAxis = false;\nlet weekday = \"sunday\";\nlet lastOrder = 0;\nconst clear = function() {\n sections = [];\n tasks = [];\n currentSection = \"\";\n funs = [];\n taskCnt = 0;\n lastTask = void 0;\n lastTaskID = void 0;\n rawTasks = [];\n dateFormat = \"\";\n axisFormat = \"\";\n displayMode = \"\";\n tickInterval = void 0;\n todayMarker = \"\";\n includes = [];\n excludes = [];\n inclusiveEndDates = false;\n topAxis = false;\n lastOrder = 0;\n links = {};\n clear$1();\n weekday = \"sunday\";\n};\nconst setAxisFormat = function(txt) {\n axisFormat = txt;\n};\nconst getAxisFormat = function() {\n return axisFormat;\n};\nconst setTickInterval = function(txt) {\n tickInterval = txt;\n};\nconst getTickInterval = function() {\n return tickInterval;\n};\nconst setTodayMarker = function(txt) {\n todayMarker = txt;\n};\nconst getTodayMarker = function() {\n return todayMarker;\n};\nconst setDateFormat = function(txt) {\n dateFormat = txt;\n};\nconst enableInclusiveEndDates = function() {\n inclusiveEndDates = true;\n};\nconst endDatesAreInclusive = function() {\n return inclusiveEndDates;\n};\nconst enableTopAxis = function() {\n topAxis = true;\n};\nconst topAxisEnabled = function() {\n return topAxis;\n};\nconst setDisplayMode = function(txt) {\n displayMode = txt;\n};\nconst getDisplayMode = function() {\n return displayMode;\n};\nconst getDateFormat = function() {\n return dateFormat;\n};\nconst setIncludes = function(txt) {\n includes = txt.toLowerCase().split(/[\\s,]+/);\n};\nconst getIncludes = function() {\n return includes;\n};\nconst setExcludes = function(txt) {\n excludes = txt.toLowerCase().split(/[\\s,]+/);\n};\nconst getExcludes = function() {\n return excludes;\n};\nconst getLinks = function() {\n return links;\n};\nconst addSection = function(txt) {\n currentSection = txt;\n sections.push(txt);\n};\nconst getSections = function() {\n return sections;\n};\nconst getTasks = function() {\n let allItemsProcessed = compileTasks();\n const maxDepth = 10;\n let iterationCount = 0;\n while (!allItemsProcessed && iterationCount < maxDepth) {\n allItemsProcessed = compileTasks();\n iterationCount++;\n }\n tasks = rawTasks;\n return tasks;\n};\nconst isInvalidDate = function(date, dateFormat2, excludes2, includes2) {\n if (includes2.includes(date.format(dateFormat2.trim()))) {\n return false;\n }\n if (date.isoWeekday() >= 6 && excludes2.includes(\"weekends\")) {\n return true;\n }\n if (excludes2.includes(date.format(\"dddd\").toLowerCase())) {\n return true;\n }\n return excludes2.includes(date.format(dateFormat2.trim()));\n};\nconst setWeekday = function(txt) {\n weekday = txt;\n};\nconst getWeekday = function() {\n return weekday;\n};\nconst checkTaskDates = function(task, dateFormat2, excludes2, includes2) {\n if (!excludes2.length || task.manualEndTime) {\n return;\n }\n let startTime;\n if (task.startTime instanceof Date) {\n startTime = dayjs(task.startTime);\n } else {\n startTime = dayjs(task.startTime, dateFormat2, true);\n }\n startTime = startTime.add(1, \"d\");\n let originalEndTime;\n if (task.endTime instanceof Date) {\n originalEndTime = dayjs(task.endTime);\n } else {\n originalEndTime = dayjs(task.endTime, dateFormat2, true);\n }\n const [fixedEndTime, renderEndTime] = fixTaskDates(\n startTime,\n originalEndTime,\n dateFormat2,\n excludes2,\n includes2\n );\n task.endTime = fixedEndTime.toDate();\n task.renderEndTime = renderEndTime;\n};\nconst fixTaskDates = function(startTime, endTime, dateFormat2, excludes2, includes2) {\n let invalid = false;\n let renderEndTime = null;\n while (startTime <= endTime) {\n if (!invalid) {\n renderEndTime = endTime.toDate();\n }\n invalid = isInvalidDate(startTime, dateFormat2, excludes2, includes2);\n if (invalid) {\n endTime = endTime.add(1, \"d\");\n }\n startTime = startTime.add(1, \"d\");\n }\n return [endTime, renderEndTime];\n};\nconst getStartDate = function(prevTime, dateFormat2, str) {\n str = str.trim();\n const re = /^after\\s+([\\d\\w- ]+)/;\n const afterStatement = re.exec(str.trim());\n if (afterStatement !== null) {\n let latestEndingTask = null;\n afterStatement[1].split(\" \").forEach(function(id) {\n let task = findTaskById(id);\n if (task !== void 0) {\n if (!latestEndingTask) {\n latestEndingTask = task;\n } else {\n if (task.endTime > latestEndingTask.endTime) {\n latestEndingTask = task;\n }\n }\n }\n });\n if (!latestEndingTask) {\n const dt = /* @__PURE__ */ new Date();\n dt.setHours(0, 0, 0, 0);\n return dt;\n } else {\n return latestEndingTask.endTime;\n }\n }\n let mDate = dayjs(str, dateFormat2.trim(), true);\n if (mDate.isValid()) {\n return mDate.toDate();\n } else {\n log.debug(\"Invalid date:\" + str);\n log.debug(\"With date format:\" + dateFormat2.trim());\n const d = new Date(str);\n if (d === void 0 || isNaN(d.getTime()) || // WebKit browsers can mis-parse invalid dates to be ridiculously\n // huge numbers, e.g. new Date('202304') gets parsed as January 1, 202304.\n // This can cause virtually infinite loops while rendering, so for the\n // purposes of Gantt charts we'll just treat any date beyond 10,000 AD/BC as\n // invalid.\n d.getFullYear() < -1e4 || d.getFullYear() > 1e4) {\n throw new Error(\"Invalid date:\" + str);\n }\n return d;\n }\n};\nconst parseDuration = function(str) {\n const statement = /^(\\d+(?:\\.\\d+)?)([Mdhmswy]|ms)$/.exec(str.trim());\n if (statement !== null) {\n return [Number.parseFloat(statement[1]), statement[2]];\n }\n return [NaN, \"ms\"];\n};\nconst getEndDate = function(prevTime, dateFormat2, str, inclusive = false) {\n str = str.trim();\n let mDate = dayjs(str, dateFormat2.trim(), true);\n if (mDate.isValid()) {\n if (inclusive) {\n mDate = mDate.add(1, \"d\");\n }\n return mDate.toDate();\n }\n let endTime = dayjs(prevTime);\n const [durationValue, durationUnit] = parseDuration(str);\n if (!Number.isNaN(durationValue)) {\n const newEndTime = endTime.add(durationValue, durationUnit);\n if (newEndTime.isValid()) {\n endTime = newEndTime;\n }\n }\n return endTime.toDate();\n};\nlet taskCnt = 0;\nconst parseId = function(idStr) {\n if (idStr === void 0) {\n taskCnt = taskCnt + 1;\n return \"task\" + taskCnt;\n }\n return idStr;\n};\nconst compileData = function(prevTask, dataStr) {\n let ds;\n if (dataStr.substr(0, 1) === \":\") {\n ds = dataStr.substr(1, dataStr.length);\n } else {\n ds = dataStr;\n }\n const data = ds.split(\",\");\n const task = {};\n getTaskTags(data, task, tags);\n for (let i = 0; i < data.length; i++) {\n data[i] = data[i].trim();\n }\n let endTimeData = \"\";\n switch (data.length) {\n case 1:\n task.id = parseId();\n task.startTime = prevTask.endTime;\n endTimeData = data[0];\n break;\n case 2:\n task.id = parseId();\n task.startTime = getStartDate(void 0, dateFormat, data[0]);\n endTimeData = data[1];\n break;\n case 3:\n task.id = parseId(data[0]);\n task.startTime = getStartDate(void 0, dateFormat, data[1]);\n endTimeData = data[2];\n break;\n }\n if (endTimeData) {\n task.endTime = getEndDate(task.startTime, dateFormat, endTimeData, inclusiveEndDates);\n task.manualEndTime = dayjs(endTimeData, \"YYYY-MM-DD\", true).isValid();\n checkTaskDates(task, dateFormat, excludes, includes);\n }\n return task;\n};\nconst parseData = function(prevTaskId, dataStr) {\n let ds;\n if (dataStr.substr(0, 1) === \":\") {\n ds = dataStr.substr(1, dataStr.length);\n } else {\n ds = dataStr;\n }\n const data = ds.split(\",\");\n const task = {};\n getTaskTags(data, task, tags);\n for (let i = 0; i < data.length; i++) {\n data[i] = data[i].trim();\n }\n switch (data.length) {\n case 1:\n task.id = parseId();\n task.startTime = {\n type: \"prevTaskEnd\",\n id: prevTaskId\n };\n task.endTime = {\n data: data[0]\n };\n break;\n case 2:\n task.id = parseId();\n task.startTime = {\n type: \"getStartDate\",\n startData: data[0]\n };\n task.endTime = {\n data: data[1]\n };\n break;\n case 3:\n task.id = parseId(data[0]);\n task.startTime = {\n type: \"getStartDate\",\n startData: data[1]\n };\n task.endTime = {\n data: data[2]\n };\n break;\n }\n return task;\n};\nlet lastTask;\nlet lastTaskID;\nlet rawTasks = [];\nconst taskDb = {};\nconst addTask = function(descr, data) {\n const rawTask = {\n section: currentSection,\n type: currentSection,\n processed: false,\n manualEndTime: false,\n renderEndTime: null,\n raw: { data },\n task: descr,\n classes: []\n };\n const taskInfo = parseData(lastTaskID, data);\n rawTask.raw.startTime = taskInfo.startTime;\n rawTask.raw.endTime = taskInfo.endTime;\n rawTask.id = taskInfo.id;\n rawTask.prevTaskId = lastTaskID;\n rawTask.active = taskInfo.active;\n rawTask.done = taskInfo.done;\n rawTask.crit = taskInfo.crit;\n rawTask.milestone = taskInfo.milestone;\n rawTask.order = lastOrder;\n lastOrder++;\n const pos = rawTasks.push(rawTask);\n lastTaskID = rawTask.id;\n taskDb[rawTask.id] = pos - 1;\n};\nconst findTaskById = function(id) {\n const pos = taskDb[id];\n return rawTasks[pos];\n};\nconst addTaskOrg = function(descr, data) {\n const newTask = {\n section: currentSection,\n type: currentSection,\n description: descr,\n task: descr,\n classes: []\n };\n const taskInfo = compileData(lastTask, data);\n newTask.startTime = taskInfo.startTime;\n newTask.endTime = taskInfo.endTime;\n newTask.id = taskInfo.id;\n newTask.active = taskInfo.active;\n newTask.done = taskInfo.done;\n newTask.crit = taskInfo.crit;\n newTask.milestone = taskInfo.milestone;\n lastTask = newTask;\n tasks.push(newTask);\n};\nconst compileTasks = function() {\n const compileTask = function(pos) {\n const task = rawTasks[pos];\n let startTime = \"\";\n switch (rawTasks[pos].raw.startTime.type) {\n case \"prevTaskEnd\": {\n const prevTask = findTaskById(task.prevTaskId);\n task.startTime = prevTask.endTime;\n break;\n }\n case \"getStartDate\":\n startTime = getStartDate(void 0, dateFormat, rawTasks[pos].raw.startTime.startData);\n if (startTime) {\n rawTasks[pos].startTime = startTime;\n }\n break;\n }\n if (rawTasks[pos].startTime) {\n rawTasks[pos].endTime = getEndDate(\n rawTasks[pos].startTime,\n dateFormat,\n rawTasks[pos].raw.endTime.data,\n inclusiveEndDates\n );\n if (rawTasks[pos].endTime) {\n rawTasks[pos].processed = true;\n rawTasks[pos].manualEndTime = dayjs(\n rawTasks[pos].raw.endTime.data,\n \"YYYY-MM-DD\",\n true\n ).isValid();\n checkTaskDates(rawTasks[pos], dateFormat, excludes, includes);\n }\n }\n return rawTasks[pos].processed;\n };\n let allProcessed = true;\n for (const [i, rawTask] of rawTasks.entries()) {\n compileTask(i);\n allProcessed = allProcessed && rawTask.processed;\n }\n return allProcessed;\n};\nconst setLink = function(ids, _linkStr) {\n let linkStr = _linkStr;\n if (getConfig().securityLevel !== \"loose\") {\n linkStr = sanitizeUrl(_linkStr);\n }\n ids.split(\",\").forEach(function(id) {\n let rawTask = findTaskById(id);\n if (rawTask !== void 0) {\n pushFun(id, () => {\n window.open(linkStr, \"_self\");\n });\n links[id] = linkStr;\n }\n });\n setClass(ids, \"clickable\");\n};\nconst setClass = function(ids, className) {\n ids.split(\",\").forEach(function(id) {\n let rawTask = findTaskById(id);\n if (rawTask !== void 0) {\n rawTask.classes.push(className);\n }\n });\n};\nconst setClickFun = function(id, functionName, functionArgs) {\n if (getConfig().securityLevel !== \"loose\") {\n return;\n }\n if (functionName === void 0) {\n return;\n }\n let argList = [];\n if (typeof functionArgs === \"string\") {\n argList = functionArgs.split(/,(?=(?:(?:[^\"]*\"){2})*[^\"]*$)/);\n for (let i = 0; i < argList.length; i++) {\n let item = argList[i].trim();\n if (item.charAt(0) === '\"' && item.charAt(item.length - 1) === '\"') {\n item = item.substr(1, item.length - 2);\n }\n argList[i] = item;\n }\n }\n if (argList.length === 0) {\n argList.push(id);\n }\n let rawTask = findTaskById(id);\n if (rawTask !== void 0) {\n pushFun(id, () => {\n utils.runFunc(functionName, ...argList);\n });\n }\n};\nconst pushFun = function(id, callbackFunction) {\n funs.push(\n function() {\n const elem = document.querySelector(`[id=\"${id}\"]`);\n if (elem !== null) {\n elem.addEventListener(\"click\", function() {\n callbackFunction();\n });\n }\n },\n function() {\n const elem = document.querySelector(`[id=\"${id}-text\"]`);\n if (elem !== null) {\n elem.addEventListener(\"click\", function() {\n callbackFunction();\n });\n }\n }\n );\n};\nconst setClickEvent = function(ids, functionName, functionArgs) {\n ids.split(\",\").forEach(function(id) {\n setClickFun(id, functionName, functionArgs);\n });\n setClass(ids, \"clickable\");\n};\nconst bindFunctions = function(element) {\n funs.forEach(function(fun) {\n fun(element);\n });\n};\nconst ganttDb = {\n getConfig: () => getConfig().gantt,\n clear,\n setDateFormat,\n getDateFormat,\n enableInclusiveEndDates,\n endDatesAreInclusive,\n enableTopAxis,\n topAxisEnabled,\n setAxisFormat,\n getAxisFormat,\n setTickInterval,\n getTickInterval,\n setTodayMarker,\n getTodayMarker,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n setDisplayMode,\n getDisplayMode,\n setAccDescription,\n getAccDescription,\n addSection,\n getSections,\n getTasks,\n addTask,\n findTaskById,\n addTaskOrg,\n setIncludes,\n getIncludes,\n setExcludes,\n getExcludes,\n setClickEvent,\n setLink,\n getLinks,\n bindFunctions,\n parseDuration,\n isInvalidDate,\n setWeekday,\n getWeekday\n};\nfunction getTaskTags(data, task, tags2) {\n let matchFound = true;\n while (matchFound) {\n matchFound = false;\n tags2.forEach(function(t) {\n const pattern = \"^\\\\s*\" + t + \"\\\\s*$\";\n const regex = new RegExp(pattern);\n if (data[0].match(regex)) {\n task[t] = true;\n data.shift(1);\n matchFound = true;\n }\n });\n }\n}\nconst setConf = function() {\n log.debug(\"Something is calling, setConf, remove the call\");\n};\nconst mapWeekdayToTimeFunction = {\n monday: timeMonday,\n tuesday: timeTuesday,\n wednesday: timeWednesday,\n thursday: timeThursday,\n friday: timeFriday,\n saturday: timeSaturday,\n sunday: timeSunday\n};\nconst getMaxIntersections = (tasks2, orderOffset) => {\n let timeline = [...tasks2].map(() => -Infinity);\n let sorted = [...tasks2].sort((a, b) => a.startTime - b.startTime || a.order - b.order);\n let maxIntersections = 0;\n for (const element of sorted) {\n for (let j = 0; j < timeline.length; j++) {\n if (element.startTime >= timeline[j]) {\n timeline[j] = element.endTime;\n element.order = j + orderOffset;\n if (j > maxIntersections) {\n maxIntersections = j;\n }\n break;\n }\n }\n }\n return maxIntersections;\n};\nlet w;\nconst draw = function(text, id, version, diagObj) {\n const conf = getConfig().gantt;\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n const elem = doc.getElementById(id);\n w = elem.parentElement.offsetWidth;\n if (w === void 0) {\n w = 1200;\n }\n if (conf.useWidth !== void 0) {\n w = conf.useWidth;\n }\n const taskArray = diagObj.db.getTasks();\n let categories = [];\n for (const element of taskArray) {\n categories.push(element.type);\n }\n categories = checkUnique(categories);\n const categoryHeights = {};\n let h = 2 * conf.topPadding;\n if (diagObj.db.getDisplayMode() === \"compact\" || conf.displayMode === \"compact\") {\n const categoryElements = {};\n for (const element of taskArray) {\n if (categoryElements[element.section] === void 0) {\n categoryElements[element.section] = [element];\n } else {\n categoryElements[element.section].push(element);\n }\n }\n let intersections = 0;\n for (const category of Object.keys(categoryElements)) {\n const categoryHeight = getMaxIntersections(categoryElements[category], intersections) + 1;\n intersections += categoryHeight;\n h += categoryHeight * (conf.barHeight + conf.barGap);\n categoryHeights[category] = categoryHeight;\n }\n } else {\n h += taskArray.length * (conf.barHeight + conf.barGap);\n for (const category of categories) {\n categoryHeights[category] = taskArray.filter((task) => task.type === category).length;\n }\n }\n elem.setAttribute(\"viewBox\", \"0 0 \" + w + \" \" + h);\n const svg = root.select(`[id=\"${id}\"]`);\n const timeScale = scaleTime().domain([\n min(taskArray, function(d) {\n return d.startTime;\n }),\n max(taskArray, function(d) {\n return d.endTime;\n })\n ]).rangeRound([0, w - conf.leftPadding - conf.rightPadding]);\n function taskCompare(a, b) {\n const taskA = a.startTime;\n const taskB = b.startTime;\n let result = 0;\n if (taskA > taskB) {\n result = 1;\n } else if (taskA < taskB) {\n result = -1;\n }\n return result;\n }\n taskArray.sort(taskCompare);\n makeGant(taskArray, w, h);\n configureSvgSize(svg, h, w, conf.useMaxWidth);\n svg.append(\"text\").text(diagObj.db.getDiagramTitle()).attr(\"x\", w / 2).attr(\"y\", conf.titleTopMargin).attr(\"class\", \"titleText\");\n function makeGant(tasks2, pageWidth, pageHeight) {\n const barHeight = conf.barHeight;\n const gap = barHeight + conf.barGap;\n const topPadding = conf.topPadding;\n const leftPadding = conf.leftPadding;\n const colorScale = scaleLinear().domain([0, categories.length]).range([\"#00B9FA\", \"#F95002\"]).interpolate(interpolateHcl);\n drawExcludeDays(\n gap,\n topPadding,\n leftPadding,\n pageWidth,\n pageHeight,\n tasks2,\n diagObj.db.getExcludes(),\n diagObj.db.getIncludes()\n );\n makeGrid(leftPadding, topPadding, pageWidth, pageHeight);\n drawRects(tasks2, gap, topPadding, leftPadding, barHeight, colorScale, pageWidth);\n vertLabels(gap, topPadding);\n drawToday(leftPadding, topPadding, pageWidth, pageHeight);\n }\n function drawRects(theArray, theGap, theTopPad, theSidePad, theBarHeight, theColorScale, w2) {\n const uniqueTaskOrderIds = [...new Set(theArray.map((item) => item.order))];\n const uniqueTasks = uniqueTaskOrderIds.map((id2) => theArray.find((item) => item.order === id2));\n svg.append(\"g\").selectAll(\"rect\").data(uniqueTasks).enter().append(\"rect\").attr(\"x\", 0).attr(\"y\", function(d, i) {\n i = d.order;\n return i * theGap + theTopPad - 2;\n }).attr(\"width\", function() {\n return w2 - conf.rightPadding / 2;\n }).attr(\"height\", theGap).attr(\"class\", function(d) {\n for (const [i, category] of categories.entries()) {\n if (d.type === category) {\n return \"section section\" + i % conf.numberSectionStyles;\n }\n }\n return \"section section0\";\n });\n const rectangles = svg.append(\"g\").selectAll(\"rect\").data(theArray).enter();\n const links2 = diagObj.db.getLinks();\n rectangles.append(\"rect\").attr(\"id\", function(d) {\n return d.id;\n }).attr(\"rx\", 3).attr(\"ry\", 3).attr(\"x\", function(d) {\n if (d.milestone) {\n return timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;\n }\n return timeScale(d.startTime) + theSidePad;\n }).attr(\"y\", function(d, i) {\n i = d.order;\n return i * theGap + theTopPad;\n }).attr(\"width\", function(d) {\n if (d.milestone) {\n return theBarHeight;\n }\n return timeScale(d.renderEndTime || d.endTime) - timeScale(d.startTime);\n }).attr(\"height\", theBarHeight).attr(\"transform-origin\", function(d, i) {\n i = d.order;\n return (timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime))).toString() + \"px \" + (i * theGap + theTopPad + 0.5 * theBarHeight).toString() + \"px\";\n }).attr(\"class\", function(d) {\n const res = \"task\";\n let classStr = \"\";\n if (d.classes.length > 0) {\n classStr = d.classes.join(\" \");\n }\n let secNum = 0;\n for (const [i, category] of categories.entries()) {\n if (d.type === category) {\n secNum = i % conf.numberSectionStyles;\n }\n }\n let taskClass = \"\";\n if (d.active) {\n if (d.crit) {\n taskClass += \" activeCrit\";\n } else {\n taskClass = \" active\";\n }\n } else if (d.done) {\n if (d.crit) {\n taskClass = \" doneCrit\";\n } else {\n taskClass = \" done\";\n }\n } else {\n if (d.crit) {\n taskClass += \" crit\";\n }\n }\n if (taskClass.length === 0) {\n taskClass = \" task\";\n }\n if (d.milestone) {\n taskClass = \" milestone \" + taskClass;\n }\n taskClass += secNum;\n taskClass += \" \" + classStr;\n return res + taskClass;\n });\n rectangles.append(\"text\").attr(\"id\", function(d) {\n return d.id + \"-text\";\n }).text(function(d) {\n return d.task;\n }).attr(\"font-size\", conf.fontSize).attr(\"x\", function(d) {\n let startX = timeScale(d.startTime);\n let endX = timeScale(d.renderEndTime || d.endTime);\n if (d.milestone) {\n startX += 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;\n }\n if (d.milestone) {\n endX = startX + theBarHeight;\n }\n const textWidth = this.getBBox().width;\n if (textWidth > endX - startX) {\n if (endX + textWidth + 1.5 * conf.leftPadding > w2) {\n return startX + theSidePad - 5;\n } else {\n return endX + theSidePad + 5;\n }\n } else {\n return (endX - startX) / 2 + startX + theSidePad;\n }\n }).attr(\"y\", function(d, i) {\n i = d.order;\n return i * theGap + conf.barHeight / 2 + (conf.fontSize / 2 - 2) + theTopPad;\n }).attr(\"text-height\", theBarHeight).attr(\"class\", function(d) {\n const startX = timeScale(d.startTime);\n let endX = timeScale(d.endTime);\n if (d.milestone) {\n endX = startX + theBarHeight;\n }\n const textWidth = this.getBBox().width;\n let classStr = \"\";\n if (d.classes.length > 0) {\n classStr = d.classes.join(\" \");\n }\n let secNum = 0;\n for (const [i, category] of categories.entries()) {\n if (d.type === category) {\n secNum = i % conf.numberSectionStyles;\n }\n }\n let taskType = \"\";\n if (d.active) {\n if (d.crit) {\n taskType = \"activeCritText\" + secNum;\n } else {\n taskType = \"activeText\" + secNum;\n }\n }\n if (d.done) {\n if (d.crit) {\n taskType = taskType + \" doneCritText\" + secNum;\n } else {\n taskType = taskType + \" doneText\" + secNum;\n }\n } else {\n if (d.crit) {\n taskType = taskType + \" critText\" + secNum;\n }\n }\n if (d.milestone) {\n taskType += \" milestoneText\";\n }\n if (textWidth > endX - startX) {\n if (endX + textWidth + 1.5 * conf.leftPadding > w2) {\n return classStr + \" taskTextOutsideLeft taskTextOutside\" + secNum + \" \" + taskType;\n } else {\n return classStr + \" taskTextOutsideRight taskTextOutside\" + secNum + \" \" + taskType + \" width-\" + textWidth;\n }\n } else {\n return classStr + \" taskText taskText\" + secNum + \" \" + taskType + \" width-\" + textWidth;\n }\n });\n const securityLevel2 = getConfig().securityLevel;\n if (securityLevel2 === \"sandbox\") {\n let sandboxElement2;\n sandboxElement2 = select(\"#i\" + id);\n const doc2 = sandboxElement2.nodes()[0].contentDocument;\n rectangles.filter(function(d) {\n return links2[d.id] !== void 0;\n }).each(function(o) {\n var taskRect = doc2.querySelector(\"#\" + o.id);\n var taskText = doc2.querySelector(\"#\" + o.id + \"-text\");\n const oldParent = taskRect.parentNode;\n var Link = doc2.createElement(\"a\");\n Link.setAttribute(\"xlink:href\", links2[o.id]);\n Link.setAttribute(\"target\", \"_top\");\n oldParent.appendChild(Link);\n Link.appendChild(taskRect);\n Link.appendChild(taskText);\n });\n }\n }\n function drawExcludeDays(theGap, theTopPad, theSidePad, w2, h2, tasks2, excludes2, includes2) {\n if (excludes2.length === 0 && includes2.length === 0) {\n return;\n }\n let minTime;\n let maxTime;\n for (const { startTime, endTime } of tasks2) {\n if (minTime === void 0 || startTime < minTime) {\n minTime = startTime;\n }\n if (maxTime === void 0 || endTime > maxTime) {\n maxTime = endTime;\n }\n }\n if (!minTime || !maxTime) {\n return;\n }\n if (dayjs(maxTime).diff(dayjs(minTime), \"year\") > 5) {\n log.warn(\n \"The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.\"\n );\n return;\n }\n const dateFormat2 = diagObj.db.getDateFormat();\n const excludeRanges = [];\n let range = null;\n let d = dayjs(minTime);\n while (d.valueOf() <= maxTime) {\n if (diagObj.db.isInvalidDate(d, dateFormat2, excludes2, includes2)) {\n if (!range) {\n range = {\n start: d,\n end: d\n };\n } else {\n range.end = d;\n }\n } else {\n if (range) {\n excludeRanges.push(range);\n range = null;\n }\n }\n d = d.add(1, \"d\");\n }\n const rectangles = svg.append(\"g\").selectAll(\"rect\").data(excludeRanges).enter();\n rectangles.append(\"rect\").attr(\"id\", function(d2) {\n return \"exclude-\" + d2.start.format(\"YYYY-MM-DD\");\n }).attr(\"x\", function(d2) {\n return timeScale(d2.start) + theSidePad;\n }).attr(\"y\", conf.gridLineStartPadding).attr(\"width\", function(d2) {\n const renderEnd = d2.end.add(1, \"day\");\n return timeScale(renderEnd) - timeScale(d2.start);\n }).attr(\"height\", h2 - theTopPad - conf.gridLineStartPadding).attr(\"transform-origin\", function(d2, i) {\n return (timeScale(d2.start) + theSidePad + 0.5 * (timeScale(d2.end) - timeScale(d2.start))).toString() + \"px \" + (i * theGap + 0.5 * h2).toString() + \"px\";\n }).attr(\"class\", \"exclude-range\");\n }\n function makeGrid(theSidePad, theTopPad, w2, h2) {\n let bottomXAxis = axisBottom(timeScale).tickSize(-h2 + theTopPad + conf.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf.axisFormat || \"%Y-%m-%d\"));\n const reTickInterval = /^([1-9]\\d*)(millisecond|second|minute|hour|day|week|month)$/;\n const resultTickInterval = reTickInterval.exec(\n diagObj.db.getTickInterval() || conf.tickInterval\n );\n if (resultTickInterval !== null) {\n const every = resultTickInterval[1];\n const interval = resultTickInterval[2];\n const weekday2 = diagObj.db.getWeekday() || conf.weekday;\n switch (interval) {\n case \"millisecond\":\n bottomXAxis.ticks(timeMillisecond.every(every));\n break;\n case \"second\":\n bottomXAxis.ticks(timeSecond.every(every));\n break;\n case \"minute\":\n bottomXAxis.ticks(timeMinute.every(every));\n break;\n case \"hour\":\n bottomXAxis.ticks(timeHour.every(every));\n break;\n case \"day\":\n bottomXAxis.ticks(timeDay.every(every));\n break;\n case \"week\":\n bottomXAxis.ticks(mapWeekdayToTimeFunction[weekday2].every(every));\n break;\n case \"month\":\n bottomXAxis.ticks(timeMonth.every(every));\n break;\n }\n }\n svg.append(\"g\").attr(\"class\", \"grid\").attr(\"transform\", \"translate(\" + theSidePad + \", \" + (h2 - 50) + \")\").call(bottomXAxis).selectAll(\"text\").style(\"text-anchor\", \"middle\").attr(\"fill\", \"#000\").attr(\"stroke\", \"none\").attr(\"font-size\", 10).attr(\"dy\", \"1em\");\n if (diagObj.db.topAxisEnabled() || conf.topAxis) {\n let topXAxis = axisTop(timeScale).tickSize(-h2 + theTopPad + conf.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf.axisFormat || \"%Y-%m-%d\"));\n if (resultTickInterval !== null) {\n const every = resultTickInterval[1];\n const interval = resultTickInterval[2];\n const weekday2 = diagObj.db.getWeekday() || conf.weekday;\n switch (interval) {\n case \"millisecond\":\n topXAxis.ticks(timeMillisecond.every(every));\n break;\n case \"second\":\n topXAxis.ticks(timeSecond.every(every));\n break;\n case \"minute\":\n topXAxis.ticks(timeMinute.every(every));\n break;\n case \"hour\":\n topXAxis.ticks(timeHour.every(every));\n break;\n case \"day\":\n topXAxis.ticks(timeDay.every(every));\n break;\n case \"week\":\n topXAxis.ticks(mapWeekdayToTimeFunction[weekday2].every(every));\n break;\n case \"month\":\n topXAxis.ticks(timeMonth.every(every));\n break;\n }\n }\n svg.append(\"g\").attr(\"class\", \"grid\").attr(\"transform\", \"translate(\" + theSidePad + \", \" + theTopPad + \")\").call(topXAxis).selectAll(\"text\").style(\"text-anchor\", \"middle\").attr(\"fill\", \"#000\").attr(\"stroke\", \"none\").attr(\"font-size\", 10);\n }\n }\n function vertLabels(theGap, theTopPad) {\n let prevGap = 0;\n const numOccurances = Object.keys(categoryHeights).map((d) => [d, categoryHeights[d]]);\n svg.append(\"g\").selectAll(\"text\").data(numOccurances).enter().append(function(d) {\n const rows = d[0].split(common.lineBreakRegex);\n const dy = -(rows.length - 1) / 2;\n const svgLabel = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n svgLabel.setAttribute(\"dy\", dy + \"em\");\n for (const [j, row] of rows.entries()) {\n const tspan = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttribute(\"alignment-baseline\", \"central\");\n tspan.setAttribute(\"x\", \"10\");\n if (j > 0) {\n tspan.setAttribute(\"dy\", \"1em\");\n }\n tspan.textContent = row;\n svgLabel.appendChild(tspan);\n }\n return svgLabel;\n }).attr(\"x\", 10).attr(\"y\", function(d, i) {\n if (i > 0) {\n for (let j = 0; j < i; j++) {\n prevGap += numOccurances[i - 1][1];\n return d[1] * theGap / 2 + prevGap * theGap + theTopPad;\n }\n } else {\n return d[1] * theGap / 2 + theTopPad;\n }\n }).attr(\"font-size\", conf.sectionFontSize).attr(\"class\", function(d) {\n for (const [i, category] of categories.entries()) {\n if (d[0] === category) {\n return \"sectionTitle sectionTitle\" + i % conf.numberSectionStyles;\n }\n }\n return \"sectionTitle\";\n });\n }\n function drawToday(theSidePad, theTopPad, w2, h2) {\n const todayMarker2 = diagObj.db.getTodayMarker();\n if (todayMarker2 === \"off\") {\n return;\n }\n const todayG = svg.append(\"g\").attr(\"class\", \"today\");\n const today = /* @__PURE__ */ new Date();\n const todayLine = todayG.append(\"line\");\n todayLine.attr(\"x1\", timeScale(today) + theSidePad).attr(\"x2\", timeScale(today) + theSidePad).attr(\"y1\", conf.titleTopMargin).attr(\"y2\", h2 - conf.titleTopMargin).attr(\"class\", \"today\");\n if (todayMarker2 !== \"\") {\n todayLine.attr(\"style\", todayMarker2.replace(/,/g, \";\"));\n }\n }\n function checkUnique(arr) {\n const hash = {};\n const result = [];\n for (let i = 0, l = arr.length; i < l; ++i) {\n if (!Object.prototype.hasOwnProperty.call(hash, arr[i])) {\n hash[arr[i]] = true;\n result.push(arr[i]);\n }\n }\n return result;\n }\n};\nconst ganttRenderer = {\n setConf,\n draw\n};\nconst getStyles = (options) => `\n .mermaid-main-font {\n font-family: var(--mermaid-font-family, \"trebuchet ms\", verdana, arial, sans-serif);\n }\n\n .exclude-range {\n fill: ${options.excludeBkgColor};\n }\n\n .section {\n stroke: none;\n opacity: 0.2;\n }\n\n .section0 {\n fill: ${options.sectionBkgColor};\n }\n\n .section2 {\n fill: ${options.sectionBkgColor2};\n }\n\n .section1,\n .section3 {\n fill: ${options.altSectionBkgColor};\n opacity: 0.2;\n }\n\n .sectionTitle0 {\n fill: ${options.titleColor};\n }\n\n .sectionTitle1 {\n fill: ${options.titleColor};\n }\n\n .sectionTitle2 {\n fill: ${options.titleColor};\n }\n\n .sectionTitle3 {\n fill: ${options.titleColor};\n }\n\n .sectionTitle {\n text-anchor: start;\n font-family: var(--mermaid-font-family, \"trebuchet ms\", verdana, arial, sans-serif);\n }\n\n\n /* Grid and axis */\n\n .grid .tick {\n stroke: ${options.gridColor};\n opacity: 0.8;\n shape-rendering: crispEdges;\n }\n\n .grid .tick text {\n font-family: ${options.fontFamily};\n fill: ${options.textColor};\n }\n\n .grid path {\n stroke-width: 0;\n }\n\n\n /* Today line */\n\n .today {\n fill: none;\n stroke: ${options.todayLineColor};\n stroke-width: 2px;\n }\n\n\n /* Task styling */\n\n /* Default task */\n\n .task {\n stroke-width: 2;\n }\n\n .taskText {\n text-anchor: middle;\n font-family: var(--mermaid-font-family, \"trebuchet ms\", verdana, arial, sans-serif);\n }\n\n .taskTextOutsideRight {\n fill: ${options.taskTextDarkColor};\n text-anchor: start;\n font-family: var(--mermaid-font-family, \"trebuchet ms\", verdana, arial, sans-serif);\n }\n\n .taskTextOutsideLeft {\n fill: ${options.taskTextDarkColor};\n text-anchor: end;\n }\n\n\n /* Special case clickable */\n\n .task.clickable {\n cursor: pointer;\n }\n\n .taskText.clickable {\n cursor: pointer;\n fill: ${options.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n .taskTextOutsideLeft.clickable {\n cursor: pointer;\n fill: ${options.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n .taskTextOutsideRight.clickable {\n cursor: pointer;\n fill: ${options.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n\n /* Specific task settings for the sections*/\n\n .taskText0,\n .taskText1,\n .taskText2,\n .taskText3 {\n fill: ${options.taskTextColor};\n }\n\n .task0,\n .task1,\n .task2,\n .task3 {\n fill: ${options.taskBkgColor};\n stroke: ${options.taskBorderColor};\n }\n\n .taskTextOutside0,\n .taskTextOutside2\n {\n fill: ${options.taskTextOutsideColor};\n }\n\n .taskTextOutside1,\n .taskTextOutside3 {\n fill: ${options.taskTextOutsideColor};\n }\n\n\n /* Active task */\n\n .active0,\n .active1,\n .active2,\n .active3 {\n fill: ${options.activeTaskBkgColor};\n stroke: ${options.activeTaskBorderColor};\n }\n\n .activeText0,\n .activeText1,\n .activeText2,\n .activeText3 {\n fill: ${options.taskTextDarkColor} !important;\n }\n\n\n /* Completed task */\n\n .done0,\n .done1,\n .done2,\n .done3 {\n stroke: ${options.doneTaskBorderColor};\n fill: ${options.doneTaskBkgColor};\n stroke-width: 2;\n }\n\n .doneText0,\n .doneText1,\n .doneText2,\n .doneText3 {\n fill: ${options.taskTextDarkColor} !important;\n }\n\n\n /* Tasks on the critical line */\n\n .crit0,\n .crit1,\n .crit2,\n .crit3 {\n stroke: ${options.critBorderColor};\n fill: ${options.critBkgColor};\n stroke-width: 2;\n }\n\n .activeCrit0,\n .activeCrit1,\n .activeCrit2,\n .activeCrit3 {\n stroke: ${options.critBorderColor};\n fill: ${options.activeTaskBkgColor};\n stroke-width: 2;\n }\n\n .doneCrit0,\n .doneCrit1,\n .doneCrit2,\n .doneCrit3 {\n stroke: ${options.critBorderColor};\n fill: ${options.doneTaskBkgColor};\n stroke-width: 2;\n cursor: pointer;\n shape-rendering: crispEdges;\n }\n\n .milestone {\n transform: rotate(45deg) scale(0.8,0.8);\n }\n\n .milestoneText {\n font-style: italic;\n }\n .doneCritText0,\n .doneCritText1,\n .doneCritText2,\n .doneCritText3 {\n fill: ${options.taskTextDarkColor} !important;\n }\n\n .activeCritText0,\n .activeCritText1,\n .activeCritText2,\n .activeCritText3 {\n fill: ${options.taskTextDarkColor} !important;\n }\n\n .titleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.titleColor || options.textColor};\n font-family: var(--mermaid-font-family, \"trebuchet ms\", verdana, arial, sans-serif);\n }\n`;\nconst ganttStyles = getStyles;\nconst diagram = {\n parser: ganttParser,\n db: ganttDb,\n renderer: ganttRenderer,\n styles: ganttStyles\n};\nexport {\n diagram\n};\n"],"names":["max","values","valueof","value","index","min","identity","x","top","right","bottom","left","epsilon","translateX","translateY","y","number","scale","d","center","offset","entering","axis","orient","tickArguments","tickValues","tickFormat","tickSizeInner","tickSizeOuter","tickPadding","transform","context","format","spacing","range","range0","range1","position","selection","path","tick","tickExit","tickEnter","line","text","p","_","axisTop","axisBottom","radians","degrees","K","Xn","Yn","Zn","t0","t1","t2","t3","labConvert","o","Lab","Hcl","hcl2lab","Rgb","rgbConvert","r","rgb2lrgb","g","b","xyz2lab","z","lab","l","a","opacity","define","extend","Color","k","lab2xyz","lrgb2rgb","hclConvert","h","hcl","c","hue","start","end","colorHcl","color","t","interpolateHcl","nice","domain","interval","i0","i1","x0","x1","timeInterval","floori","offseti","count","field","date","d0","d1","step","stop","previous","test","millisecond","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","second","timeMinute","utcMinute","timeHour","utcHour","timeDay","utcDay","unixDay","timeWeekday","i","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","utcMonth","timeYear","utcYear","ticker","year","month","week","day","hour","minute","tickIntervals","ticks","reverse","tickInterval","target","bisector","tickStep","timeTicks","timeTickInterval","localDate","utcDate","newDate","m","formatLocale","locale","locale_dateTime","locale_date","locale_time","locale_periods","locale_weekdays","locale_shortWeekdays","locale_months","locale_shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","formatShortWeekday","formatWeekday","formatShortMonth","formatMonth","formatDayOfMonth","formatMicroseconds","formatYearISO","formatFullYearISO","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatPeriod","formatQuarter","formatUnixTimestamp","formatUnixTimestampSeconds","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatFullYear","formatZone","formatLiteralPercent","utcFormats","formatUTCShortWeekday","formatUTCWeekday","formatUTCShortMonth","formatUTCMonth","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCYearISO","formatUTCFullYearISO","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCPeriod","formatUTCQuarter","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","parseShortWeekday","parseWeekday","parseShortMonth","parseMonth","parseLocaleDateTime","parseDayOfMonth","parseMicroseconds","parseYear","parseFullYear","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parsePeriod","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseLocaleDate","parseLocaleTime","parseZone","parseLiteralPercent","newFormat","specifier","string","j","n","pad","pads","newParse","Z","parseSpecifier","parse","f","numberRe","percentRe","requoteRe","fill","width","sign","length","requote","s","names","name","dISO","dow","UTCdISO","timeFormat","defaultLocale","definition","calendar","continuous","invert","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","copy","time","initRange","timeWeek","timeSecond","e","module","this","u","M","Y","v","D","parser","o2","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","lex","token","symbol","state","action","yyval","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","match","indexed_rule","backup","tempMatch","rules","condition","yy_","$avoiding_name_collisions","YY_START","Parser","ganttParser","dayjs","dayjsIsoWeek","dayjsCustomParseFormat","dayjsAdvancedFormat","dateFormat","axisFormat","todayMarker","includes","excludes","links","sections","tasks","currentSection","displayMode","tags","funs","inclusiveEndDates","topAxis","weekday","lastOrder","clear","taskCnt","lastTask","lastTaskID","rawTasks","clear$1","setAxisFormat","txt","getAxisFormat","setTickInterval","getTickInterval","setTodayMarker","getTodayMarker","setDateFormat","enableInclusiveEndDates","endDatesAreInclusive","enableTopAxis","topAxisEnabled","setDisplayMode","getDisplayMode","getDateFormat","setIncludes","getIncludes","setExcludes","getExcludes","getLinks","addSection","getSections","getTasks","allItemsProcessed","compileTasks","maxDepth","iterationCount","isInvalidDate","dateFormat2","excludes2","includes2","setWeekday","getWeekday","checkTaskDates","task","startTime","originalEndTime","fixedEndTime","renderEndTime","fixTaskDates","endTime","invalid","getStartDate","prevTime","afterStatement","latestEndingTask","id","findTaskById","dt","mDate","log","parseDuration","statement","getEndDate","inclusive","durationValue","durationUnit","newEndTime","parseId","idStr","compileData","prevTask","dataStr","ds","data","getTaskTags","endTimeData","parseData","prevTaskId","taskDb","addTask","descr","rawTask","taskInfo","pos","addTaskOrg","newTask","compileTask","allProcessed","setLink","ids","_linkStr","linkStr","getConfig","sanitizeUrl","pushFun","setClass","className","setClickFun","functionName","functionArgs","argList","item","utils","callbackFunction","elem","setClickEvent","bindFunctions","element","fun","ganttDb","setAccTitle","getAccTitle","setDiagramTitle","getDiagramTitle","setAccDescription","getAccDescription","tags2","matchFound","pattern","regex","setConf","mapWeekdayToTimeFunction","getMaxIntersections","tasks2","orderOffset","timeline","sorted","maxIntersections","w","draw","version","diagObj","conf","securityLevel","sandboxElement","select","root","doc","taskArray","categories","checkUnique","categoryHeights","categoryElements","intersections","category","categoryHeight","svg","timeScale","scaleTime","taskCompare","taskA","taskB","result","makeGant","configureSvgSize","pageWidth","pageHeight","barHeight","gap","topPadding","leftPadding","colorScale","scaleLinear","drawExcludeDays","makeGrid","drawRects","vertLabels","drawToday","theArray","theGap","theTopPad","theSidePad","theBarHeight","theColorScale","w2","uniqueTasks","id2","rectangles","links2","res","classStr","secNum","taskClass","startX","endX","textWidth","taskType","sandboxElement2","doc2","taskRect","taskText","oldParent","Link","h2","minTime","maxTime","excludeRanges","d2","renderEnd","bottomXAxis","resultTickInterval","every","weekday2","timeMillisecond","topXAxis","prevGap","numOccurances","rows","common","dy","svgLabel","row","tspan","todayMarker2","todayG","today","todayLine","arr","ganttRenderer","getStyles","options","ganttStyles","diagram"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]}