@d3plus/core 3.1.1 → 3.1.3

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 (167) hide show
  1. package/README.md +5092 -5092
  2. package/es/index.js +2 -0
  3. package/es/index.js.map +1 -0
  4. package/es/src/charts/AreaPlot.js +2 -0
  5. package/es/src/charts/AreaPlot.js.map +1 -0
  6. package/es/src/charts/BarChart.js +2 -0
  7. package/es/src/charts/BarChart.js.map +1 -0
  8. package/es/src/charts/BoxWhisker.js +2 -0
  9. package/es/src/charts/BoxWhisker.js.map +1 -0
  10. package/es/src/charts/BumpChart.js +2 -0
  11. package/es/src/charts/BumpChart.js.map +1 -0
  12. package/es/src/charts/Donut.js +2 -0
  13. package/es/src/charts/Donut.js.map +1 -0
  14. package/es/src/charts/Geomap.js +2 -0
  15. package/es/src/charts/Geomap.js.map +1 -0
  16. package/es/src/charts/LinePlot.js +2 -0
  17. package/es/src/charts/LinePlot.js.map +1 -0
  18. package/es/src/charts/Matrix.js +2 -0
  19. package/es/src/charts/Matrix.js.map +1 -0
  20. package/es/src/charts/Network.js +2 -0
  21. package/es/src/charts/Network.js.map +1 -0
  22. package/es/src/charts/Pack.js +2 -0
  23. package/es/src/charts/Pack.js.map +1 -0
  24. package/es/src/charts/Pie.js +2 -0
  25. package/es/src/charts/Pie.js.map +1 -0
  26. package/es/src/charts/Plot.js +2 -0
  27. package/es/src/charts/Plot.js.map +1 -0
  28. package/es/src/charts/Priestley.js +2 -0
  29. package/es/src/charts/Priestley.js.map +1 -0
  30. package/es/src/charts/Radar.js +2 -0
  31. package/es/src/charts/Radar.js.map +1 -0
  32. package/es/src/charts/RadialMatrix.js +2 -0
  33. package/es/src/charts/RadialMatrix.js.map +1 -0
  34. package/es/src/charts/Rings.js +2 -0
  35. package/es/src/charts/Rings.js.map +1 -0
  36. package/es/src/charts/Sankey.js +2 -0
  37. package/es/src/charts/Sankey.js.map +1 -0
  38. package/es/src/charts/StackedArea.js +2 -0
  39. package/es/src/charts/StackedArea.js.map +1 -0
  40. package/es/src/charts/Tree.js +2 -0
  41. package/es/src/charts/Tree.js.map +1 -0
  42. package/es/src/charts/Treemap.js +2 -0
  43. package/es/src/charts/Treemap.js.map +1 -0
  44. package/es/src/charts/Viz.js +2 -0
  45. package/es/src/charts/Viz.js.map +1 -0
  46. package/es/src/charts/drawSteps/drawAttribution.js +2 -0
  47. package/es/src/charts/drawSteps/drawAttribution.js.map +1 -0
  48. package/es/src/charts/drawSteps/drawBack.js +2 -0
  49. package/es/src/charts/drawSteps/drawBack.js.map +1 -0
  50. package/es/src/charts/drawSteps/drawColorScale.js +2 -0
  51. package/es/src/charts/drawSteps/drawColorScale.js.map +1 -0
  52. package/es/src/charts/drawSteps/drawLegend.js +2 -0
  53. package/es/src/charts/drawSteps/drawLegend.js.map +1 -0
  54. package/es/src/charts/drawSteps/drawSubtitle.js +2 -0
  55. package/es/src/charts/drawSteps/drawSubtitle.js.map +1 -0
  56. package/es/src/charts/drawSteps/drawTimeline.js +2 -0
  57. package/es/src/charts/drawSteps/drawTimeline.js.map +1 -0
  58. package/es/src/charts/drawSteps/drawTitle.js +2 -0
  59. package/es/src/charts/drawSteps/drawTitle.js.map +1 -0
  60. package/es/src/charts/drawSteps/drawTotal.js +2 -0
  61. package/es/src/charts/drawSteps/drawTotal.js.map +1 -0
  62. package/es/src/charts/drawSteps/zoomControls.js +2 -0
  63. package/es/src/charts/drawSteps/zoomControls.js.map +1 -0
  64. package/es/src/charts/events/click.legend.js +2 -0
  65. package/es/src/charts/events/click.legend.js.map +1 -0
  66. package/es/src/charts/events/click.shape.js +2 -0
  67. package/es/src/charts/events/click.shape.js.map +1 -0
  68. package/es/src/charts/events/mouseenter.js +2 -0
  69. package/es/src/charts/events/mouseenter.js.map +1 -0
  70. package/es/src/charts/events/mouseleave.js +2 -0
  71. package/es/src/charts/events/mouseleave.js.map +1 -0
  72. package/es/src/charts/events/mousemove.legend.js +2 -0
  73. package/es/src/charts/events/mousemove.legend.js.map +1 -0
  74. package/es/src/charts/events/mousemove.shape.js +2 -0
  75. package/es/src/charts/events/mousemove.shape.js.map +1 -0
  76. package/es/src/charts/events/touchstart.body.js +2 -0
  77. package/es/src/charts/events/touchstart.body.js.map +1 -0
  78. package/es/src/charts/helpers/matrixData.js +2 -0
  79. package/es/src/charts/helpers/matrixData.js.map +1 -0
  80. package/es/src/charts/helpers/tileAttributions.js +2 -0
  81. package/es/src/charts/helpers/tileAttributions.js.map +1 -0
  82. package/es/src/charts/index.js +2 -0
  83. package/es/src/charts/index.js.map +1 -0
  84. package/es/src/charts/plotBuffers/Bar.js +2 -0
  85. package/es/src/charts/plotBuffers/Bar.js.map +1 -0
  86. package/es/src/charts/plotBuffers/Box.js +2 -0
  87. package/es/src/charts/plotBuffers/Box.js.map +1 -0
  88. package/es/src/charts/plotBuffers/Circle.js +2 -0
  89. package/es/src/charts/plotBuffers/Circle.js.map +1 -0
  90. package/es/src/charts/plotBuffers/Line.js +2 -0
  91. package/es/src/charts/plotBuffers/Line.js.map +1 -0
  92. package/es/src/charts/plotBuffers/Rect.js +2 -0
  93. package/es/src/charts/plotBuffers/Rect.js.map +1 -0
  94. package/es/src/charts/plotBuffers/discreteBuffer.js +2 -0
  95. package/es/src/charts/plotBuffers/discreteBuffer.js.map +1 -0
  96. package/es/src/charts/plotBuffers/numericBuffer.js +2 -0
  97. package/es/src/charts/plotBuffers/numericBuffer.js.map +1 -0
  98. package/es/src/components/Axis.js +2 -0
  99. package/es/src/components/Axis.js.map +1 -0
  100. package/es/src/components/AxisBottom.js +2 -0
  101. package/es/src/components/AxisBottom.js.map +1 -0
  102. package/es/src/components/AxisLeft.js +2 -0
  103. package/es/src/components/AxisLeft.js.map +1 -0
  104. package/es/src/components/AxisRight.js +2 -0
  105. package/es/src/components/AxisRight.js.map +1 -0
  106. package/es/src/components/AxisTop.js +2 -0
  107. package/es/src/components/AxisTop.js.map +1 -0
  108. package/es/src/components/ColorScale.js +2 -0
  109. package/es/src/components/ColorScale.js.map +1 -0
  110. package/es/src/components/Legend.js +2 -0
  111. package/es/src/components/Legend.js.map +1 -0
  112. package/es/src/components/Message.js +2 -0
  113. package/es/src/components/Message.js.map +1 -0
  114. package/es/src/components/TextBox.js +2 -0
  115. package/es/src/components/TextBox.js.map +1 -0
  116. package/es/src/components/Timeline.js +2 -0
  117. package/es/src/components/Timeline.js.map +1 -0
  118. package/es/src/components/Tooltip.js +2 -0
  119. package/es/src/components/Tooltip.js.map +1 -0
  120. package/es/src/components/index.js +2 -0
  121. package/es/src/components/index.js.map +1 -0
  122. package/es/src/shapes/Area.js +2 -0
  123. package/es/src/shapes/Area.js.map +1 -0
  124. package/es/src/shapes/Bar.js +2 -0
  125. package/es/src/shapes/Bar.js.map +1 -0
  126. package/es/src/shapes/Box.js +2 -0
  127. package/es/src/shapes/Box.js.map +1 -0
  128. package/es/src/shapes/Circle.js +2 -0
  129. package/es/src/shapes/Circle.js.map +1 -0
  130. package/es/src/shapes/Image.js +2 -0
  131. package/es/src/shapes/Image.js.map +1 -0
  132. package/es/src/shapes/Line.js +2 -0
  133. package/es/src/shapes/Line.js.map +1 -0
  134. package/es/src/shapes/Path.js +2 -0
  135. package/es/src/shapes/Path.js.map +1 -0
  136. package/es/src/shapes/Rect.js +2 -0
  137. package/es/src/shapes/Rect.js.map +1 -0
  138. package/es/src/shapes/Shape.js +2 -0
  139. package/es/src/shapes/Shape.js.map +1 -0
  140. package/es/src/shapes/Whisker.js +2 -0
  141. package/es/src/shapes/Whisker.js.map +1 -0
  142. package/es/src/shapes/index.js +2 -0
  143. package/es/src/shapes/index.js.map +1 -0
  144. package/es/src/utils/AccessorFn.js +2 -0
  145. package/es/src/utils/AccessorFn.js.map +1 -0
  146. package/es/src/utils/BaseClass.js +2 -0
  147. package/es/src/utils/BaseClass.js.map +1 -0
  148. package/es/src/utils/D3plusConfig.js +2 -0
  149. package/es/src/utils/D3plusConfig.js.map +1 -0
  150. package/es/src/utils/RESET.js +2 -0
  151. package/es/src/utils/RESET.js.map +1 -0
  152. package/es/src/utils/accessor.js +2 -0
  153. package/es/src/utils/accessor.js.map +1 -0
  154. package/es/src/utils/configPrep.js +2 -0
  155. package/es/src/utils/configPrep.js.map +1 -0
  156. package/es/src/utils/constant.js +2 -0
  157. package/es/src/utils/constant.js.map +1 -0
  158. package/es/src/utils/getProp.js +2 -0
  159. package/es/src/utils/getProp.js.map +1 -0
  160. package/es/src/utils/index.js +2 -0
  161. package/es/src/utils/index.js.map +1 -0
  162. package/package.json +8 -8
  163. package/umd/d3plus-core.full.js +4197 -507
  164. package/umd/d3plus-core.full.js.map +1 -1
  165. package/umd/d3plus-core.full.min.js +792 -765
  166. package/umd/d3plus-core.js +1 -1
  167. package/umd/d3plus-core.min.js +1 -1
@@ -61,3 +61,5 @@ import { configPrep } from "../../utils/index.js";
61
61
  ]).footer(hasDefaultClick ? invertedBehavior ? this._solo.length && !solo || hidden ? t("Click to Highlight") : this._solo.length === 1 && solo || this._hidden.length === dataLength - 1 ? t("Click to Show All") : "".concat(t("Click to Highlight"), "<br />").concat(t("Shift+Click to Hide")) : this._solo.length && !solo || hidden ? "".concat(t("Click to Show"), "<br />").concat(t("Shift+Click to Highlight")) : this._solo.length === 1 && solo || this._hidden.length === dataLength - 1 ? t("Click to Show All") : "".concat(t("Click to Hide"), "<br />").concat(t("Shift+Click to Highlight")) : false).title(this._legendConfig.label ? this._legendClass.label() : legendLabel.bind(this)).position(position).config(configPrep.bind(this)(this._tooltipConfig)).config(configPrep.bind(this)(this._legendTooltip)).render();
62
62
  }
63
63
  }
64
+
65
+ //# sourceMappingURL=mousemove.legend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/charts/events/mousemove.legend.ts"],"sourcesContent":["import {merge} from \"d3-array\";\nimport type {DataPoint} from \"@d3plus/data\";\nimport clickLegend from \"./click.legend.js\";\nimport {legendLabel} from \"../drawSteps/drawLegend.js\";\nimport {configPrep} from \"../../utils/index.js\";\nimport type {VizContext} from \"../../utils/configPrep.js\";\nimport type Viz from \"../Viz.js\";\n\n/**\n @module mouseMoveLegend\n Tooltip logic for a specified data point.\n @param config Optional configuration methods for the Tooltip class.\n @private\n*/\nexport default function (\n this: Viz,\n d: DataPoint,\n i: number,\n x: DataPoint,\n event: MouseEvent & TouchEvent,\n): void {\n const position = event.touches\n ? [event.touches[0].clientX, event.touches[0].clientY]\n : [event.clientX, event.clientY];\n const dataLength = merge(\n this._legendClass.data().map((d: DataPoint, i: number) => {\n let id = this._id(d, i);\n if (!(id instanceof Array)) id = [id];\n return id;\n }),\n ).length;\n\n if (d && this._tooltip(d, i)) {\n let id = this._id(d, i);\n if (id instanceof Array) id = id[0];\n\n const t = this._translate;\n const defaultClick = clickLegend.bind(this).toString();\n\n // does the legend have any user-defined click events?\n const hasUserClick = Object.keys(this._on).some(\n (e: string) =>\n // all valid click event keys,\n [\"click\", \"click.legend\"].includes(e) &&\n // truthy values (no nulls),\n this._on[e] &&\n // and it is not our default click.legend function\n this._on[e].toString() !== defaultClick,\n );\n\n // does the legend still have our default \"click.legend\" event?\n // (if the user only sets \"click\", both functions will fire)\n const hasDefaultClick =\n this._on[\"click.legend\"] &&\n this._on[\"click.legend\"].toString() === defaultClick;\n\n // can the viz show deeper data?\n const hasDeeperLevel = this._drawDepth < this._groupBy.length - 1;\n\n // only show the hand cursor when the shape has a click event\n this._select.style(\n \"cursor\",\n hasUserClick || (hasDefaultClick && hasDeeperLevel) ? \"pointer\" : \"auto\",\n );\n\n const invertedBehavior = this._legendFilterInvert.bind(this)();\n\n const solo = this._solo.includes(id);\n const hidden = this._hidden.includes(id);\n\n this._tooltipClass\n .data([x || d])\n .footer(\n hasDefaultClick\n ? invertedBehavior\n ? (this._solo.length && !solo) || hidden\n ? t(\"Click to Highlight\")\n : (this._solo.length === 1 && solo) ||\n this._hidden.length === dataLength - 1\n ? t(\"Click to Show All\")\n : `${t(\"Click to Highlight\")}<br />${t(\"Shift+Click to Hide\")}`\n : (this._solo.length && !solo) || hidden\n ? `${t(\"Click to Show\")}<br />${t(\"Shift+Click to Highlight\")}`\n : (this._solo.length === 1 && solo) ||\n this._hidden.length === dataLength - 1\n ? t(\"Click to Show All\")\n : `${t(\"Click to Hide\")}<br />${t(\"Shift+Click to Highlight\")}`\n : false,\n )\n .title(\n this._legendConfig.label\n ? this._legendClass.label()\n : legendLabel.bind(this),\n )\n .position(position)\n .config(configPrep.bind(this as unknown as VizContext)(this._tooltipConfig))\n .config(configPrep.bind(this as unknown as VizContext)(this._legendTooltip))\n .render();\n }\n}\n"],"names":["merge","clickLegend","legendLabel","configPrep","d","i","x","event","position","touches","clientX","clientY","dataLength","_legendClass","data","map","id","_id","Array","length","_tooltip","t","_translate","defaultClick","bind","toString","hasUserClick","Object","keys","_on","some","e","includes","hasDefaultClick","hasDeeperLevel","_drawDepth","_groupBy","_select","style","invertedBehavior","_legendFilterInvert","solo","_solo","hidden","_hidden","_tooltipClass","footer","title","_legendConfig","label","config","_tooltipConfig","_legendTooltip","render"],"mappings":";;;;;;;;AAAA,SAAQA,KAAK,QAAO,WAAW;AAE/B,OAAOC,iBAAiB,oBAAoB;AAC5C,SAAQC,WAAW,QAAO,6BAA6B;AACvD,SAAQC,UAAU,QAAO,uBAAuB;AAIhD;;;;;AAKA,GACA,eAAe,SAEbC,CAAY,EACZC,CAAS,EACTC,CAAY,EACZC,KAA8B;;IAE9B,IAAMC,WAAWD,MAAME,OAAO,GAC1B;QAACF,MAAME,OAAO,CAAC,EAAE,CAACC,OAAO;QAAEH,MAAME,OAAO,CAAC,EAAE,CAACE,OAAO;KAAC,GACpD;QAACJ,MAAMG,OAAO;QAAEH,MAAMI,OAAO;KAAC;IAClC,IAAMC,aAAaZ,MACjB,IAAI,CAACa,YAAY,CAACC,IAAI,GAAGC,GAAG,CAAC,SAACX,GAAcC;QAC1C,IAAIW,KAAK,MAAKC,GAAG,CAACb,GAAGC;QACrB,IAAI,CAAEW,AAAE,YAAFA,IAAcE,QAAQF,KAAK;YAACA;SAAG;QACrC,OAAOA;IACT,IACAG,MAAM;IAER,IAAIf,KAAK,IAAI,CAACgB,QAAQ,CAAChB,GAAGC,IAAI;QAC5B,IAAIW,KAAK,IAAI,CAACC,GAAG,CAACb,GAAGC;QACrB,IAAIW,AAAE,YAAFA,IAAcE,QAAOF,KAAKA,EAAE,CAAC,EAAE;QAEnC,IAAMK,IAAI,IAAI,CAACC,UAAU;QACzB,IAAMC,eAAetB,YAAYuB,IAAI,CAAC,IAAI,EAAEC,QAAQ;QAEpD,sDAAsD;QACtD,IAAMC,eAAeC,OAAOC,IAAI,CAAC,IAAI,CAACC,GAAG,EAAEC,IAAI,CAC7C,SAACC;mBACC,8BAA8B;YAC9B;gBAAC;gBAAS;aAAe,CAACC,QAAQ,CAACD,MACnC,4BAA4B;YAC5B,MAAKF,GAAG,CAACE,EAAE,IACX,kDAAkD;YAClD,MAAKF,GAAG,CAACE,EAAE,CAACN,QAAQ,OAAOF;;QAG/B,+DAA+D;QAC/D,4DAA4D;QAC5D,IAAMU,kBACJ,IAAI,CAACJ,GAAG,CAAC,eAAe,IACxB,IAAI,CAACA,GAAG,CAAC,eAAe,CAACJ,QAAQ,OAAOF;QAE1C,gCAAgC;QAChC,IAAMW,iBAAiB,IAAI,CAACC,UAAU,GAAG,IAAI,CAACC,QAAQ,CAACjB,MAAM,GAAG;QAEhE,6DAA6D;QAC7D,IAAI,CAACkB,OAAO,CAACC,KAAK,CAChB,UACAZ,gBAAiBO,mBAAmBC,iBAAkB,YAAY;QAGpE,IAAMK,mBAAmB,IAAI,CAACC,mBAAmB,CAAChB,IAAI,CAAC,IAAI;QAE3D,IAAMiB,OAAO,IAAI,CAACC,KAAK,CAACV,QAAQ,CAAChB;QACjC,IAAM2B,SAAS,IAAI,CAACC,OAAO,CAACZ,QAAQ,CAAChB;QAErC,IAAI,CAAC6B,aAAa,CACf/B,IAAI,CAAC;YAACR,KAAKF;SAAE,EACb0C,MAAM,CACLb,kBACIM,mBACE,AAAC,IAAI,CAACG,KAAK,CAACvB,MAAM,IAAI,CAACsB,QAASE,SAC9BtB,EAAE,wBACF,AAAC,IAAI,CAACqB,KAAK,CAACvB,MAAM,KAAK,KAAKsB,QAC1B,IAAI,CAACG,OAAO,CAACzB,MAAM,KAAKP,aAAa,IACrCS,EAAE,uBACF,AAAC,GAAkCA,OAAhCA,EAAE,uBAAsB,UAAiC,OAAzBA,EAAE,0BACzC,AAAC,IAAI,CAACqB,KAAK,CAACvB,MAAM,IAAI,CAACsB,QAASE,SAC9B,AAAC,GAA6BtB,OAA3BA,EAAE,kBAAiB,UAAsC,OAA9BA,EAAE,+BAChC,AAAC,IAAI,CAACqB,KAAK,CAACvB,MAAM,KAAK,KAAKsB,QAC1B,IAAI,CAACG,OAAO,CAACzB,MAAM,KAAKP,aAAa,IACrCS,EAAE,uBACF,AAAC,GAA6BA,OAA3BA,EAAE,kBAAiB,UAAsC,OAA9BA,EAAE,+BACtC,OAEL0B,KAAK,CACJ,IAAI,CAACC,aAAa,CAACC,KAAK,GACpB,IAAI,CAACpC,YAAY,CAACoC,KAAK,KACvB/C,YAAYsB,IAAI,CAAC,IAAI,GAE1BhB,QAAQ,CAACA,UACT0C,MAAM,CAAC/C,WAAWqB,IAAI,CAAC,IAAI,EAA2B,IAAI,CAAC2B,cAAc,GACzED,MAAM,CAAC/C,WAAWqB,IAAI,CAAC,IAAI,EAA2B,IAAI,CAAC4B,cAAc,GACzEC,MAAM;IACX;AACF"}
@@ -38,3 +38,5 @@ import clickShape from "./click.shape.js";
38
38
  ]).footer(hasDefaultClick && hasDeeperLevel ? this._translate("Click to Expand") : false).title(this._drawLabel).position(position).config(configPrep.bind(this)(this._tooltipConfig)).render();
39
39
  }
40
40
  }
41
+
42
+ //# sourceMappingURL=mousemove.shape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/charts/events/mousemove.shape.ts"],"sourcesContent":["import type {DataPoint} from \"@d3plus/data\";\nimport {configPrep} from \"../../utils/index.js\";\nimport type {VizContext} from \"../../utils/configPrep.js\";\nimport clickShape from \"./click.shape.js\";\nimport type Viz from \"../Viz.js\";\n\n/**\n @module mouseMoveShape\n Tooltip logic for a specified data point.\n @param config Optional configuration methods for the Tooltip class.\n @private\n*/\nexport default function (\n this: Viz,\n d: DataPoint,\n i: number,\n x: DataPoint,\n event: MouseEvent & TouchEvent,\n): void {\n if (d && this._tooltip(d, i)) {\n const defaultClick = clickShape.bind(this).toString();\n\n // does the shape have any user-defined click events?\n const hasUserClick = Object.keys(this._on).some(\n (e: string) =>\n // all valid click event keys,\n [\"click\", \"click.shape\"].includes(e) &&\n // truthy values (no nulls),\n this._on[e] &&\n // and it is not our default click.shape function\n this._on[e].toString() !== defaultClick,\n );\n\n // does the shape still have our default \"click.shape\" event?\n // (if the user only sets \"click\", both functions will fire)\n const hasDefaultClick =\n this._on[\"click.shape\"] &&\n this._on[\"click.shape\"].toString() === defaultClick;\n\n // can the viz show deeper data?\n const hasDeeperLevel = this._drawDepth < this._groupBy.length - 1;\n\n // only show the hand cursor when the shape has a click event\n this._select.style(\n \"cursor\",\n hasUserClick || (hasDefaultClick && hasDeeperLevel) ? \"pointer\" : \"auto\",\n );\n\n const position = event.touches\n ? [event.touches[0].clientX, event.touches[0].clientY]\n : [event.clientX, event.clientY];\n\n this._tooltipClass\n .data([x || d])\n .footer(\n hasDefaultClick && hasDeeperLevel\n ? this._translate(\"Click to Expand\")\n : false,\n )\n .title(this._drawLabel)\n .position(position)\n .config(configPrep.bind(this as unknown as VizContext)(this._tooltipConfig))\n .render();\n }\n}\n"],"names":["configPrep","clickShape","d","i","x","event","_tooltip","defaultClick","bind","toString","hasUserClick","Object","keys","_on","some","e","includes","hasDefaultClick","hasDeeperLevel","_drawDepth","_groupBy","length","_select","style","position","touches","clientX","clientY","_tooltipClass","data","footer","_translate","title","_drawLabel","config","_tooltipConfig","render"],"mappings":"AACA,SAAQA,UAAU,QAAO,uBAAuB;AAEhD,OAAOC,gBAAgB,mBAAmB;AAG1C;;;;;AAKA,GACA,eAAe,SAEbC,CAAY,EACZC,CAAS,EACTC,CAAY,EACZC,KAA8B;;IAE9B,IAAIH,KAAK,IAAI,CAACI,QAAQ,CAACJ,GAAGC,IAAI;QAC5B,IAAMI,eAAeN,WAAWO,IAAI,CAAC,IAAI,EAAEC,QAAQ;QAEnD,qDAAqD;QACrD,IAAMC,eAAeC,OAAOC,IAAI,CAAC,IAAI,CAACC,GAAG,EAAEC,IAAI,CAC7C,SAACC;mBACC,8BAA8B;YAC9B;gBAAC;gBAAS;aAAc,CAACC,QAAQ,CAACD,MAClC,4BAA4B;YAC5B,MAAKF,GAAG,CAACE,EAAE,IACX,iDAAiD;YACjD,MAAKF,GAAG,CAACE,EAAE,CAACN,QAAQ,OAAOF;;QAG/B,6DAA6D;QAC7D,4DAA4D;QAC5D,IAAMU,kBACJ,IAAI,CAACJ,GAAG,CAAC,cAAc,IACvB,IAAI,CAACA,GAAG,CAAC,cAAc,CAACJ,QAAQ,OAAOF;QAEzC,gCAAgC;QAChC,IAAMW,iBAAiB,IAAI,CAACC,UAAU,GAAG,IAAI,CAACC,QAAQ,CAACC,MAAM,GAAG;QAEhE,6DAA6D;QAC7D,IAAI,CAACC,OAAO,CAACC,KAAK,CAChB,UACAb,gBAAiBO,mBAAmBC,iBAAkB,YAAY;QAGpE,IAAMM,WAAWnB,MAAMoB,OAAO,GAC1B;YAACpB,MAAMoB,OAAO,CAAC,EAAE,CAACC,OAAO;YAAErB,MAAMoB,OAAO,CAAC,EAAE,CAACE,OAAO;SAAC,GACpD;YAACtB,MAAMqB,OAAO;YAAErB,MAAMsB,OAAO;SAAC;QAElC,IAAI,CAACC,aAAa,CACfC,IAAI,CAAC;YAACzB,KAAKF;SAAE,EACb4B,MAAM,CACLb,mBAAmBC,iBACf,IAAI,CAACa,UAAU,CAAC,qBAChB,OAELC,KAAK,CAAC,IAAI,CAACC,UAAU,EACrBT,QAAQ,CAACA,UACTU,MAAM,CAAClC,WAAWQ,IAAI,CAAC,IAAI,EAA2B,IAAI,CAAC2B,cAAc,GACzEC,MAAM;IACX;AACF"}
@@ -5,3 +5,5 @@
5
5
  */ export default function() {
6
6
  this._tooltipClass.data([]).render();
7
7
  }
8
+
9
+ //# sourceMappingURL=touchstart.body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/charts/events/touchstart.body.ts"],"sourcesContent":["import type Viz from \"../Viz.js\";\n\n/**\n @module touchStartBody\n On touchstart event for the Body element.\n @private\n */\nexport default function (this: Viz): void {\n this._tooltipClass.data([]).render();\n}\n"],"names":["_tooltipClass","data","render"],"mappings":"AAEA;;;;CAIC,GACD,eAAe;IACb,IAAI,CAACA,aAAa,CAACC,IAAI,CAAC,EAAE,EAAEC,MAAM;AACpC"}
@@ -109,3 +109,5 @@ var cartesian = function cartesian(a, b) {
109
109
  shapeData: shapeData
110
110
  };
111
111
  }
112
+
113
+ //# sourceMappingURL=matrixData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/charts/helpers/matrixData.ts"],"sourcesContent":["import {unique} from \"@d3plus/data\";\nimport type {DataPoint} from \"@d3plus/data\";\nimport type Viz from \"../Viz.js\";\n\nconst cartesian = (\n a: DataPoint[keyof DataPoint][],\n b: DataPoint[keyof DataPoint][],\n): [DataPoint[keyof DataPoint], DataPoint[keyof DataPoint]][] =>\n ([] as [DataPoint[keyof DataPoint], DataPoint[keyof DataPoint]][]).concat(\n ...a.map(d =>\n b.map(\n e => [d, e] as [DataPoint[keyof DataPoint], DataPoint[keyof DataPoint]],\n ),\n ),\n );\n\n/**\n @module matrixData\n @private\n */\nexport default function (\n this: Viz,\n _data?: DataPoint[],\n): {\n rowValues: DataPoint[keyof DataPoint][];\n columnValues: DataPoint[keyof DataPoint][];\n shapeData: Record<string, unknown>[];\n} {\n const data = this._filteredData;\n const rowValues = (this._rowList || unique(data.map(this._row))).sort(\n this._rowSort,\n );\n const columnValues = (\n this._columnList || unique(data.map(this._column))\n ).sort(this._columnSort);\n\n if (!rowValues.length || !columnValues.length)\n return {rowValues: [], columnValues: [], shapeData: []};\n\n const shapeData = cartesian(rowValues, columnValues).map(\n ([rowValue, columnValue]) => {\n const dataObj: Record<string, unknown> = {\n __d3plusTooltip__: true,\n __d3plus__: true,\n column: columnValue,\n row: rowValue,\n };\n const dataIndex = data.findIndex(\n (d: DataPoint, i: number) =>\n this._row(d, i) === rowValue && this._column(d, i) === columnValue,\n );\n if (dataIndex >= 0) {\n dataObj.i = dataIndex;\n dataObj.data = data[dataIndex];\n } else {\n dataObj.data = {row: rowValue, column: columnValue};\n }\n return dataObj;\n },\n );\n\n return {rowValues, columnValues, shapeData};\n}\n"],"names":["unique","cartesian","a","b","concat","map","d","e","_data","data","_filteredData","rowValues","_rowList","_row","sort","_rowSort","columnValues","_columnList","_column","_columnSort","length","shapeData","rowValue","columnValue","dataObj","__d3plusTooltip__","__d3plus__","column","row","dataIndex","findIndex","i"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAQG;AARH,SAAQA,MAAM,QAAO,eAAe;AAIpC,IAAMC,YAAY,mBAChBC,GACAC;WAEA,CAAC,YAAA,EAAE,EAAgEC,MAAM,OAAxE,WACC,qBAAGF,EAAEG,GAAG,CAACC,SAAAA;eACPH,EAAEE,GAAG,CACHE,SAAAA;mBAAK;gBAACD;gBAAGC;aAAE;;;;AAKnB;;;CAGC,GACD,eAAe,SAEbC,KAAmB;;IAMnB,IAAMC,OAAO,IAAI,CAACC,aAAa;IAC/B,IAAMC,YAAY,AAAC,CAAA,IAAI,CAACC,QAAQ,IAAIZ,OAAOS,KAAKJ,GAAG,CAAC,IAAI,CAACQ,IAAI,EAAC,EAAGC,IAAI,CACnE,IAAI,CAACC,QAAQ;IAEf,IAAMC,eAAe,AACnB,CAAA,IAAI,CAACC,WAAW,IAAIjB,OAAOS,KAAKJ,GAAG,CAAC,IAAI,CAACa,OAAO,EAAC,EACjDJ,IAAI,CAAC,IAAI,CAACK,WAAW;IAEvB,IAAI,CAACR,UAAUS,MAAM,IAAI,CAACJ,aAAaI,MAAM,EAC3C,OAAO;QAACT,WAAW,EAAE;QAAEK,cAAc,EAAE;QAAEK,WAAW,EAAE;IAAA;IAExD,IAAMA,YAAYpB,UAAUU,WAAWK,cAAcX,GAAG,CACtD;iDAAEiB,sBAAUC;QACV,IAAMC,UAAmC;YACvCC,mBAAmB;YACnBC,YAAY;YACZC,QAAQJ;YACRK,KAAKN;QACP;QACA,IAAMO,YAAYpB,KAAKqB,SAAS,CAC9B,SAACxB,GAAcyB;mBACb,MAAKlB,IAAI,CAACP,GAAGyB,OAAOT,YAAY,MAAKJ,OAAO,CAACZ,GAAGyB,OAAOR;;QAE3D,IAAIM,aAAa,GAAG;YAClBL,QAAQO,CAAC,GAAGF;YACZL,QAAQf,IAAI,GAAGA,IAAI,CAACoB,UAAU;QAChC,OAAO;YACLL,QAAQf,IAAI,GAAG;gBAACmB,KAAKN;gBAAUK,QAAQJ;YAAW;QACpD;QACA,OAAOC;IACT;IAGF,OAAO;QAACb,WAAAA;QAAWK,cAAAA;QAAcK,WAAAA;IAAS;AAC5C"}
@@ -33,3 +33,5 @@ var tileAttributions = [
33
33
  }
34
34
  ];
35
35
  export default tileAttributions;
36
+
37
+ //# sourceMappingURL=tileAttributions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/charts/helpers/tileAttributions.ts"],"sourcesContent":["interface TileAttribution {\n matches: string[];\n text: string;\n}\n\nconst tileAttributions: TileAttribution[] = [\n {\n matches: [\"cartodb\", \"cartocdn\"],\n text: \"© <a href='http://www.openstreetmap.org/copyright' target='_blank'>OpenStreetMap</a> contributors, © <a href='https://carto.com/attribution' target='_blank'>CARTO</a>\",\n },\n {\n matches: [\"opentopomap.org\"],\n text: \"© <a href='http://www.openstreetmap.org/copyright' target='_blank'>OpenStreetMap</a> contributors\",\n },\n {\n matches: [\"arcgisonline.com\"],\n text: \"Powered by <a href='https://developers.arcgis.com/terms/attribution/' target='_blank'>Esri</a>\",\n },\n {\n matches: [\"/watercolor/\"],\n text: \"Map tiles by <a href='http://stamen.com' target='_blank'>Stamen Design</a>, under <a href='http://creativecommons.org/licenses/by/3.0' target='_blank'>CC BY 3.0</a>. Data by <a href='http://openstreetmap.org' target='_blank'>OpenStreetMap</a>, under <a href='http://www.openstreetmap.org/copyright' target='_blank'>ODbL</a>.\",\n },\n {\n matches: [\"stamen-tiles\", \"stamen.com\"],\n text: \"Map tiles by <a href='http://stamen.com' target='_blank'>Stamen Design</a>, under <a href='http://creativecommons.org/licenses/by/3.0' target='_blank'>CC BY 3.0</a>. Data by <a href='http://openstreetmap.org' target='_blank'>OpenStreetMap</a>, under <a href='http://creativecommons.org/licenses/by-sa/3.0' target='_blank'>CC BY SA</a>.\",\n },\n];\n\nexport default tileAttributions;\n"],"names":["tileAttributions","matches","text"],"mappings":"AAKA,IAAMA,mBAAsC;IAC1C;QACEC,SAAS;YAAC;YAAW;SAAW;QAChCC,MAAM;IACR;IACA;QACED,SAAS;YAAC;SAAkB;QAC5BC,MAAM;IACR;IACA;QACED,SAAS;YAAC;SAAmB;QAC7BC,MAAM;IACR;IACA;QACED,SAAS;YAAC;SAAe;QACzBC,MAAM;IACR;IACA;QACED,SAAS;YAAC;YAAgB;SAAa;QACvCC,MAAM;IACR;CACD;AAED,eAAeF,iBAAiB"}
@@ -19,3 +19,5 @@ export { default as StackedArea } from "./StackedArea.js";
19
19
  export { default as Tree } from "./Tree.js";
20
20
  export { default as Treemap } from "./Treemap.js";
21
21
  export { default as Viz } from "./Viz.js";
22
+
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/charts/index.ts"],"sourcesContent":["export {default as AreaPlot} from \"./AreaPlot.js\";\nexport {default as BarChart} from \"./BarChart.js\";\nexport {default as BoxWhisker} from \"./BoxWhisker.js\";\nexport {default as BumpChart} from \"./BumpChart.js\";\nexport {default as Donut} from \"./Donut.js\";\nexport {default as Geomap} from \"./Geomap.js\";\nexport {default as LinePlot} from \"./LinePlot.js\";\nexport {default as Matrix} from \"./Matrix.js\";\nexport {default as Network} from \"./Network.js\";\nexport {default as Pack} from \"./Pack.js\";\nexport {default as Pie} from \"./Pie.js\";\nexport {default as Plot} from \"./Plot.js\";\nexport {default as Priestley} from \"./Priestley.js\";\nexport {default as Radar} from \"./Radar.js\";\nexport {default as RadialMatrix} from \"./RadialMatrix.js\";\nexport {default as Rings} from \"./Rings.js\";\nexport {default as Sankey} from \"./Sankey.js\";\nexport {default as StackedArea} from \"./StackedArea.js\";\nexport {default as Tree} from \"./Tree.js\";\nexport {default as Treemap} from \"./Treemap.js\";\nexport {default as Viz} from \"./Viz.js\";\n"],"names":["default","AreaPlot","BarChart","BoxWhisker","BumpChart","Donut","Geomap","LinePlot","Matrix","Network","Pack","Pie","Plot","Priestley","Radar","RadialMatrix","Rings","Sankey","StackedArea","Tree","Treemap","Viz"],"mappings":"AAAA,SAAQA,WAAWC,QAAQ,QAAO,gBAAgB;AAClD,SAAQD,WAAWE,QAAQ,QAAO,gBAAgB;AAClD,SAAQF,WAAWG,UAAU,QAAO,kBAAkB;AACtD,SAAQH,WAAWI,SAAS,QAAO,iBAAiB;AACpD,SAAQJ,WAAWK,KAAK,QAAO,aAAa;AAC5C,SAAQL,WAAWM,MAAM,QAAO,cAAc;AAC9C,SAAQN,WAAWO,QAAQ,QAAO,gBAAgB;AAClD,SAAQP,WAAWQ,MAAM,QAAO,cAAc;AAC9C,SAAQR,WAAWS,OAAO,QAAO,eAAe;AAChD,SAAQT,WAAWU,IAAI,QAAO,YAAY;AAC1C,SAAQV,WAAWW,GAAG,QAAO,WAAW;AACxC,SAAQX,WAAWY,IAAI,QAAO,YAAY;AAC1C,SAAQZ,WAAWa,SAAS,QAAO,iBAAiB;AACpD,SAAQb,WAAWc,KAAK,QAAO,aAAa;AAC5C,SAAQd,WAAWe,YAAY,QAAO,oBAAoB;AAC1D,SAAQf,WAAWgB,KAAK,QAAO,aAAa;AAC5C,SAAQhB,WAAWiB,MAAM,QAAO,cAAc;AAC9C,SAAQjB,WAAWkB,WAAW,QAAO,mBAAmB;AACxD,SAAQlB,WAAWmB,IAAI,QAAO,YAAY;AAC1C,SAAQnB,WAAWoB,OAAO,QAAO,eAAe;AAChD,SAAQpB,WAAWqB,GAAG,QAAO,WAAW"}
@@ -106,3 +106,5 @@ import { groups, max, min, sum } from "d3-array";
106
106
  y
107
107
  ];
108
108
  }
109
+
110
+ //# sourceMappingURL=Bar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/charts/plotBuffers/Bar.ts"],"sourcesContent":["import {groups, max, min, sum} from \"d3-array\";\nimport type Plot from \"../Plot.js\";\n\n/**\n @module barBuffer\n Adds a buffer to either side of the non-discrete axis.\n\n\n @param buffer @private\n*/\nexport default function (\n this: Plot,\n {\n data,\n x,\n y,\n x2,\n y2,\n buffer = 10,\n }: {\n data: Record<string, unknown>[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n x: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n y: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n x2?: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n y2?: any;\n buffer?: number;\n },\n): [unknown, unknown] {\n const xKey = x2 ? \"x2\" : \"x\";\n const yKey = y2 ? \"y2\" : \"y\";\n\n const oppScale = this._discrete === \"x\" ? y : x;\n\n const oppDomain = oppScale.domain().slice();\n\n const isDiscreteX = this._discrete === \"x\";\n\n if (isDiscreteX) oppDomain.reverse();\n\n let negVals: number[], posVals: number[];\n if (this._stacked) {\n const groupedData = groups(\n data,\n (d: Record<string, unknown>) => `${d[this._discrete]}_${d.group}`,\n ).map(([, values]: [unknown, Record<string, unknown>[]]) =>\n values.map(\n (x: Record<string, unknown>) => x[isDiscreteX ? yKey : xKey] as number,\n ),\n );\n posVals = groupedData.map((arr: number[]) =>\n sum(arr.filter((d: number) => d > 0)),\n );\n negVals = groupedData.map((arr: number[]) =>\n sum(arr.filter((d: number) => d < 0)),\n );\n } else {\n const allValues = data.map(\n (d: Record<string, unknown>) => d[isDiscreteX ? yKey : xKey] as number,\n );\n posVals = allValues.filter((d: number) => d > 0);\n negVals = allValues.filter((d: number) => d < 0);\n }\n\n let bMax = oppScale(max(posVals));\n if (isDiscreteX ? bMax < oppScale(0) : bMax > oppScale(0))\n bMax += isDiscreteX ? -buffer : buffer;\n bMax = oppScale.invert(bMax);\n\n let bMin = oppScale(min(negVals));\n if (isDiscreteX ? bMin > oppScale(0) : bMin < oppScale(0))\n bMin += isDiscreteX ? buffer : -buffer;\n bMin = oppScale.invert(bMin);\n\n if (bMax > oppDomain[1]) oppDomain[1] = bMax;\n if (bMin < oppDomain[0]) oppDomain[0] = bMin;\n\n if (isDiscreteX) oppDomain.reverse();\n\n oppScale.domain(oppDomain);\n\n return [x, y];\n}\n"],"names":["groups","max","min","sum","data","x","y","x2","y2","buffer","xKey","yKey","oppScale","_discrete","oppDomain","domain","slice","isDiscreteX","reverse","negVals","posVals","_stacked","groupedData","d","group","map","values","arr","filter","allValues","bMax","invert","bMin"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAQA,MAAM,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAAO,WAAW;AAG/C;;;;;;AAMA,GACA,eAAe,SAEb,KAkBC;;QAjBCC,OADF,MACEA,MACAC,IAFF,MAEEA,GACAC,IAHF,MAGEA,GACAC,KAJF,MAIEA,IACAC,KALF,MAKEA,oBALF,MAMEC,QAAAA,oCAAS;IAcX,IAAMC,OAAOH,KAAK,OAAO;IACzB,IAAMI,OAAOH,KAAK,OAAO;IAEzB,IAAMI,WAAW,IAAI,CAACC,SAAS,KAAK,MAAMP,IAAID;IAE9C,IAAMS,YAAYF,SAASG,MAAM,GAAGC,KAAK;IAEzC,IAAMC,cAAc,IAAI,CAACJ,SAAS,KAAK;IAEvC,IAAII,aAAaH,UAAUI,OAAO;IAElC,IAAIC,SAAmBC;IACvB,IAAI,IAAI,CAACC,QAAQ,EAAE;QACjB,IAAMC,cAActB,OAClBI,MACA,SAACmB;mBAA+B,AAAC,GAAuBA,OAArBA,CAAC,CAAC,MAAKV,SAAS,CAAC,EAAC,KAAW,OAARU,EAAEC,KAAK;WAC/DC,GAAG,CAAC;qDAAIC;mBACRA,OAAOD,GAAG,CACR,SAACpB;uBAA+BA,CAAC,CAACY,cAAcN,OAAOD,KAAK;;;QAGhEU,UAAUE,YAAYG,GAAG,CAAC,SAACE;mBACzBxB,IAAIwB,IAAIC,MAAM,CAAC,SAACL;uBAAcA,IAAI;;;QAEpCJ,UAAUG,YAAYG,GAAG,CAAC,SAACE;mBACzBxB,IAAIwB,IAAIC,MAAM,CAAC,SAACL;uBAAcA,IAAI;;;IAEtC,OAAO;QACL,IAAMM,YAAYzB,KAAKqB,GAAG,CACxB,SAACF;mBAA+BA,CAAC,CAACN,cAAcN,OAAOD,KAAK;;QAE9DU,UAAUS,UAAUD,MAAM,CAAC,SAACL;mBAAcA,IAAI;;QAC9CJ,UAAUU,UAAUD,MAAM,CAAC,SAACL;mBAAcA,IAAI;;IAChD;IAEA,IAAIO,OAAOlB,SAASX,IAAImB;IACxB,IAAIH,cAAca,OAAOlB,SAAS,KAAKkB,OAAOlB,SAAS,IACrDkB,QAAQb,cAAc,CAACR,SAASA;IAClCqB,OAAOlB,SAASmB,MAAM,CAACD;IAEvB,IAAIE,OAAOpB,SAASV,IAAIiB;IACxB,IAAIF,cAAce,OAAOpB,SAAS,KAAKoB,OAAOpB,SAAS,IACrDoB,QAAQf,cAAcR,SAAS,CAACA;IAClCuB,OAAOpB,SAASmB,MAAM,CAACC;IAEvB,IAAIF,OAAOhB,SAAS,CAAC,EAAE,EAAEA,SAAS,CAAC,EAAE,GAAGgB;IACxC,IAAIE,OAAOlB,SAAS,CAAC,EAAE,EAAEA,SAAS,CAAC,EAAE,GAAGkB;IAExC,IAAIf,aAAaH,UAAUI,OAAO;IAElCN,SAASG,MAAM,CAACD;IAEhB,OAAO;QAACT;QAAGC;KAAE;AACf"}
@@ -101,3 +101,5 @@ import { groups, max, min, sum } from "d3-array";
101
101
  y
102
102
  ];
103
103
  }
104
+
105
+ //# sourceMappingURL=Box.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/charts/plotBuffers/Box.ts"],"sourcesContent":["import {groups, max, min, sum} from \"d3-array\";\nimport type Plot from \"../Plot.js\";\n\n/**\n @module boxBuffer\n Adds a buffer to either side of the non-discrete axis.\n\n\n @param buffer @private\n*/\nexport default function (\n this: Plot,\n {\n data,\n x,\n y,\n x2,\n y2,\n buffer = 10,\n }: {\n data: Record<string, unknown>[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n x: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n y: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n x2?: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n y2?: any;\n buffer?: number;\n },\n): [unknown, unknown] {\n const xKey = x2 ? \"x2\" : \"x\";\n const yKey = y2 ? \"y2\" : \"y\";\n\n const oppScale = this._discrete === \"x\" ? y : x;\n\n const oppDomain = oppScale.domain().slice();\n\n const isDiscreteX = this._discrete === \"x\";\n\n if (isDiscreteX) oppDomain.reverse();\n\n let negVals: number[], posVals: number[];\n if (this._stacked) {\n const groupedData = groups(\n data,\n (d: Record<string, unknown>) => d[this._discrete],\n ).map(([, values]: [unknown, Record<string, unknown>[]]) =>\n values.map(\n (x: Record<string, unknown>) => x[isDiscreteX ? yKey : xKey] as number,\n ),\n );\n posVals = groupedData.map((arr: number[]) =>\n sum(arr.filter((d: number) => d > 0)),\n );\n negVals = groupedData.map((arr: number[]) =>\n sum(arr.filter((d: number) => d < 0)),\n );\n } else {\n posVals = data.map(\n (d: Record<string, unknown>) => d[isDiscreteX ? yKey : xKey] as number,\n );\n negVals = posVals;\n }\n\n let bMax = oppScale(max(posVals));\n bMax += isDiscreteX ? -buffer : buffer;\n bMax = oppScale.invert(bMax);\n\n let bMin = oppScale(min(negVals));\n bMin += isDiscreteX ? buffer : -buffer;\n bMin = oppScale.invert(bMin);\n\n if (bMax > oppDomain[1]) oppDomain[1] = bMax;\n if (bMin < oppDomain[0]) oppDomain[0] = bMin;\n\n if (isDiscreteX) oppDomain.reverse();\n\n oppScale.domain(oppDomain);\n\n return [x, y];\n}\n"],"names":["groups","max","min","sum","data","x","y","x2","y2","buffer","xKey","yKey","oppScale","_discrete","oppDomain","domain","slice","isDiscreteX","reverse","negVals","posVals","_stacked","groupedData","d","map","values","arr","filter","bMax","invert","bMin"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAQA,MAAM,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAAO,WAAW;AAG/C;;;;;;AAMA,GACA,eAAe,SAEb,KAkBC;;QAjBCC,OADF,MACEA,MACAC,IAFF,MAEEA,GACAC,IAHF,MAGEA,GACAC,KAJF,MAIEA,IACAC,KALF,MAKEA,oBALF,MAMEC,QAAAA,oCAAS;IAcX,IAAMC,OAAOH,KAAK,OAAO;IACzB,IAAMI,OAAOH,KAAK,OAAO;IAEzB,IAAMI,WAAW,IAAI,CAACC,SAAS,KAAK,MAAMP,IAAID;IAE9C,IAAMS,YAAYF,SAASG,MAAM,GAAGC,KAAK;IAEzC,IAAMC,cAAc,IAAI,CAACJ,SAAS,KAAK;IAEvC,IAAII,aAAaH,UAAUI,OAAO;IAElC,IAAIC,SAAmBC;IACvB,IAAI,IAAI,CAACC,QAAQ,EAAE;QACjB,IAAMC,cAActB,OAClBI,MACA,SAACmB;mBAA+BA,CAAC,CAAC,MAAKV,SAAS,CAAC;WACjDW,GAAG,CAAC;qDAAIC;mBACRA,OAAOD,GAAG,CACR,SAACnB;uBAA+BA,CAAC,CAACY,cAAcN,OAAOD,KAAK;;;QAGhEU,UAAUE,YAAYE,GAAG,CAAC,SAACE;mBACzBvB,IAAIuB,IAAIC,MAAM,CAAC,SAACJ;uBAAcA,IAAI;;;QAEpCJ,UAAUG,YAAYE,GAAG,CAAC,SAACE;mBACzBvB,IAAIuB,IAAIC,MAAM,CAAC,SAACJ;uBAAcA,IAAI;;;IAEtC,OAAO;QACLH,UAAUhB,KAAKoB,GAAG,CAChB,SAACD;mBAA+BA,CAAC,CAACN,cAAcN,OAAOD,KAAK;;QAE9DS,UAAUC;IACZ;IAEA,IAAIQ,OAAOhB,SAASX,IAAImB;IACxBQ,QAAQX,cAAc,CAACR,SAASA;IAChCmB,OAAOhB,SAASiB,MAAM,CAACD;IAEvB,IAAIE,OAAOlB,SAASV,IAAIiB;IACxBW,QAAQb,cAAcR,SAAS,CAACA;IAChCqB,OAAOlB,SAASiB,MAAM,CAACC;IAEvB,IAAIF,OAAOd,SAAS,CAAC,EAAE,EAAEA,SAAS,CAAC,EAAE,GAAGc;IACxC,IAAIE,OAAOhB,SAAS,CAAC,EAAE,EAAEA,SAAS,CAAC,EAAE,GAAGgB;IAExC,IAAIb,aAAaH,UAAUI,OAAO;IAElCN,SAASG,MAAM,CAACD;IAEhB,OAAO;QAACT;QAAGC;KAAE;AACf"}
@@ -35,3 +35,5 @@ import numericBuffer from "./numericBuffer.js";
35
35
  y
36
36
  ];
37
37
  }
38
+
39
+ //# sourceMappingURL=Circle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/charts/plotBuffers/Circle.ts"],"sourcesContent":["import type Plot from \"../Plot.js\";\nimport discreteBuffer from \"./discreteBuffer.js\";\nimport numericBuffer from \"./numericBuffer.js\";\n\n/**\n @module circleBuffer\n Adds a buffer to either side of the non-discrete axis.\n\n\n @param buffer Defaults to the radius of the largest Circle.\n @private\n*/\nexport default function (\n this: Plot,\n {\n data,\n x,\n y,\n x2,\n y2,\n yScale,\n xScale,\n config,\n buffer,\n }: {\n data: Record<string, unknown>[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n x: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n y: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n x2?: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n y2?: any;\n yScale?: string;\n xScale?: string;\n config?: Record<string, (...args: unknown[]) => unknown>;\n buffer?: number;\n },\n): [unknown, unknown] {\n x = x.copy();\n y = y.copy();\n\n const xKey = x2 ? \"x2\" : \"x\";\n const yKey = y2 ? \"y2\" : \"y\";\n\n let xD = x.domain().slice(),\n yD = y.domain().slice();\n\n const xR = x.range(),\n yR = y.range();\n\n if (!x.invert && x.padding) discreteBuffer(x, data, this._discrete);\n if (!y.invert && y.padding) discreteBuffer(y, data, this._discrete);\n\n if (x.invert || y.invert) {\n data.forEach((d: Record<string, unknown>) => {\n const s = buffer ? buffer : (config?.r as (...args: unknown[]) => number)(d.data, d.i) * 2;\n\n if (x.invert) {\n xD = numericBuffer(x, xScale ?? \"linear\", d[xKey] as number, s, xR, xD, 0, false);\n xD = numericBuffer(x, xScale ?? \"linear\", d[xKey] as number, s, xR, xD, 1, false);\n }\n\n if (y.invert) {\n yD = numericBuffer(y, yScale ?? \"linear\", d[yKey] as number, s, yR, yD, 0, true);\n yD = numericBuffer(y, yScale ?? \"linear\", d[yKey] as number, s, yR, yD, 1, true);\n }\n });\n }\n\n return [x, y];\n}\n"],"names":["discreteBuffer","numericBuffer","data","x","y","x2","y2","yScale","xScale","config","buffer","copy","xKey","yKey","xD","domain","slice","yD","xR","range","yR","invert","padding","_discrete","forEach","d","s","r","i"],"mappings":"AACA,OAAOA,oBAAoB,sBAAsB;AACjD,OAAOC,mBAAmB,qBAAqB;AAE/C;;;;;;;AAOA,GACA,eAAe,SAEb,KAwBC;QAvBCC,OADF,MACEA,MACAC,IAFF,MAEEA,GACAC,IAHF,MAGEA,GACAC,KAJF,MAIEA,IACAC,KALF,MAKEA,IACAC,SANF,MAMEA,QACAC,SAPF,MAOEA,QACAC,SARF,MAQEA,QACAC,SATF,MASEA;IAiBFP,IAAIA,EAAEQ,IAAI;IACVP,IAAIA,EAAEO,IAAI;IAEV,IAAMC,OAAOP,KAAK,OAAO;IACzB,IAAMQ,OAAOP,KAAK,OAAO;IAEzB,IAAIQ,KAAKX,EAAEY,MAAM,GAAGC,KAAK,IACvBC,KAAKb,EAAEW,MAAM,GAAGC,KAAK;IAEvB,IAAME,KAAKf,EAAEgB,KAAK,IAChBC,KAAKhB,EAAEe,KAAK;IAEd,IAAI,CAAChB,EAAEkB,MAAM,IAAIlB,EAAEmB,OAAO,EAAEtB,eAAeG,GAAGD,MAAM,IAAI,CAACqB,SAAS;IAClE,IAAI,CAACnB,EAAEiB,MAAM,IAAIjB,EAAEkB,OAAO,EAAEtB,eAAeI,GAAGF,MAAM,IAAI,CAACqB,SAAS;IAElE,IAAIpB,EAAEkB,MAAM,IAAIjB,EAAEiB,MAAM,EAAE;QACxBnB,KAAKsB,OAAO,CAAC,SAACC;YACZ,IAAMC,IAAIhB,SAASA,SAAS,CAACD,mBAAAA,6BAAAA,OAAQkB,CAAC,EAAoCF,EAAEvB,IAAI,EAAEuB,EAAEG,CAAC,IAAI;YAEzF,IAAIzB,EAAEkB,MAAM,EAAE;gBACZP,KAAKb,cAAcE,GAAGK,mBAAAA,oBAAAA,SAAU,UAAUiB,CAAC,CAACb,KAAK,EAAYc,GAAGR,IAAIJ,IAAI,GAAG;gBAC3EA,KAAKb,cAAcE,GAAGK,mBAAAA,oBAAAA,SAAU,UAAUiB,CAAC,CAACb,KAAK,EAAYc,GAAGR,IAAIJ,IAAI,GAAG;YAC7E;YAEA,IAAIV,EAAEiB,MAAM,EAAE;gBACZJ,KAAKhB,cAAcG,GAAGG,mBAAAA,oBAAAA,SAAU,UAAUkB,CAAC,CAACZ,KAAK,EAAYa,GAAGN,IAAIH,IAAI,GAAG;gBAC3EA,KAAKhB,cAAcG,GAAGG,mBAAAA,oBAAAA,SAAU,UAAUkB,CAAC,CAACZ,KAAK,EAAYa,GAAGN,IAAIH,IAAI,GAAG;YAC7E;QACF;IACF;IAEA,OAAO;QAACd;QAAGC;KAAE;AACf"}
@@ -26,3 +26,5 @@ import { max } from "d3-array";
26
26
  y
27
27
  ];
28
28
  }
29
+
30
+ //# sourceMappingURL=Line.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/charts/plotBuffers/Line.ts"],"sourcesContent":["import {max} from \"d3-array\";\nimport type Plot from \"../Plot.js\";\n\n/**\n @module lineBuffer\n Adds a buffer to either side of the non-discrete axis.\n\n\n @param buffer Defaults to the radius of the largest Circle.\n @private\n*/\nexport default function (\n this: Plot,\n {\n data,\n x,\n y,\n x2,\n y2,\n }: {\n data: Record<string, unknown>[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n x: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n y: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n x2?: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n y2?: any;\n },\n): [unknown, unknown] {\n const xKey = x2 ? \"x2\" : \"x\";\n const yKey = y2 ? \"y2\" : \"y\";\n\n const s = this._discrete === \"x\" ? y : x;\n\n const d = s.domain().slice();\n\n if (this._discrete === \"x\") d.reverse();\n\n const vals = data.map(\n (d: Record<string, unknown>) => d[this._discrete === \"x\" ? yKey : xKey],\n ) as number[];\n const b = s.invert(\n s(max(vals) as number) + (this._discrete === \"x\" ? -10 : 10),\n );\n\n if (b > d[1]) d[1] = b;\n\n if (this._discrete === \"x\") d.reverse();\n\n s.domain(d);\n\n return [x, y];\n}\n"],"names":["max","data","x","y","x2","y2","xKey","yKey","s","_discrete","d","domain","slice","reverse","vals","map","b","invert"],"mappings":"AAAA,SAAQA,GAAG,QAAO,WAAW;AAG7B;;;;;;;AAOA,GACA,eAAe,SAEb,KAgBC;;QAfCC,OADF,MACEA,MACAC,IAFF,MAEEA,GACAC,IAHF,MAGEA,GACAC,KAJF,MAIEA,IACAC,KALF,MAKEA;IAaF,IAAMC,OAAOF,KAAK,OAAO;IACzB,IAAMG,OAAOF,KAAK,OAAO;IAEzB,IAAMG,IAAI,IAAI,CAACC,SAAS,KAAK,MAAMN,IAAID;IAEvC,IAAMQ,IAAIF,EAAEG,MAAM,GAAGC,KAAK;IAE1B,IAAI,IAAI,CAACH,SAAS,KAAK,KAAKC,EAAEG,OAAO;IAErC,IAAMC,OAAOb,KAAKc,GAAG,CACnB,SAACL;eAA+BA,CAAC,CAAC,MAAKD,SAAS,KAAK,MAAMF,OAAOD,KAAK;;IAEzE,IAAMU,IAAIR,EAAES,MAAM,CAChBT,EAAER,IAAIc,SAAoB,CAAA,IAAI,CAACL,SAAS,KAAK,MAAM,CAAC,KAAK,EAAC;IAG5D,IAAIO,IAAIN,CAAC,CAAC,EAAE,EAAEA,CAAC,CAAC,EAAE,GAAGM;IAErB,IAAI,IAAI,CAACP,SAAS,KAAK,KAAKC,EAAEG,OAAO;IAErCL,EAAEG,MAAM,CAACD;IAET,OAAO;QAACR;QAAGC;KAAE;AACf"}
@@ -36,3 +36,5 @@ import numericBuffer from "./numericBuffer.js";
36
36
  y
37
37
  ];
38
38
  }
39
+
40
+ //# sourceMappingURL=Rect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/charts/plotBuffers/Rect.ts"],"sourcesContent":["import type Plot from \"../Plot.js\";\nimport discreteBuffer from \"./discreteBuffer.js\";\nimport numericBuffer from \"./numericBuffer.js\";\n\n/**\n @module rectBuffer\n Adds a buffer to either side of the non-discrete axis.\n\n\n @param buffer Defaults to the width/height of the largest Rect.\n @private\n*/\nexport default function (\n this: Plot,\n {\n data,\n x,\n y,\n x2,\n y2,\n yScale,\n xScale,\n config,\n }: {\n data: Record<string, unknown>[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n x: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n y: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n x2?: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n y2?: any;\n yScale?: string;\n xScale?: string;\n config?: Record<string, (...args: unknown[]) => unknown>;\n },\n): [unknown, unknown] {\n x = x.copy();\n y = y.copy();\n\n const xKey = x2 ? \"x2\" : \"x\";\n const yKey = y2 ? \"y2\" : \"y\";\n\n let xD = x.domain().slice(),\n yD = y.domain().slice();\n\n const xR = x.range(),\n yR = y.range();\n\n if (!x.invert && x.padding) discreteBuffer(x, data, this._discrete);\n if (!y.invert && y.padding) discreteBuffer(y, data, this._discrete);\n\n if (x.invert || y.invert) {\n data.forEach((d: Record<string, unknown>) => {\n if (x.invert) {\n const w = (config?.width as (...args: unknown[]) => number)(d.data, d.i);\n xD = numericBuffer(x, xScale ?? \"linear\", d[xKey] as number, w, xR, xD, 0, false);\n xD = numericBuffer(x, xScale ?? \"linear\", d[xKey] as number, w, xR, xD, 1, false);\n }\n\n if (y.invert) {\n const h = (config?.height as (...args: unknown[]) => number)(d.data, d.i);\n yD = numericBuffer(y, yScale ?? \"linear\", d[yKey] as number, h, yR, yD, 0, true);\n yD = numericBuffer(y, yScale ?? \"linear\", d[yKey] as number, h, yR, yD, 1, true);\n }\n });\n }\n\n return [x, y];\n}\n"],"names":["discreteBuffer","numericBuffer","data","x","y","x2","y2","yScale","xScale","config","copy","xKey","yKey","xD","domain","slice","yD","xR","range","yR","invert","padding","_discrete","forEach","d","w","width","i","h","height"],"mappings":"AACA,OAAOA,oBAAoB,sBAAsB;AACjD,OAAOC,mBAAmB,qBAAqB;AAE/C;;;;;;;AAOA,GACA,eAAe,SAEb,KAsBC;QArBCC,OADF,MACEA,MACAC,IAFF,MAEEA,GACAC,IAHF,MAGEA,GACAC,KAJF,MAIEA,IACAC,KALF,MAKEA,IACAC,SANF,MAMEA,QACAC,SAPF,MAOEA,QACAC,SARF,MAQEA;IAgBFN,IAAIA,EAAEO,IAAI;IACVN,IAAIA,EAAEM,IAAI;IAEV,IAAMC,OAAON,KAAK,OAAO;IACzB,IAAMO,OAAON,KAAK,OAAO;IAEzB,IAAIO,KAAKV,EAAEW,MAAM,GAAGC,KAAK,IACvBC,KAAKZ,EAAEU,MAAM,GAAGC,KAAK;IAEvB,IAAME,KAAKd,EAAEe,KAAK,IAChBC,KAAKf,EAAEc,KAAK;IAEd,IAAI,CAACf,EAAEiB,MAAM,IAAIjB,EAAEkB,OAAO,EAAErB,eAAeG,GAAGD,MAAM,IAAI,CAACoB,SAAS;IAClE,IAAI,CAAClB,EAAEgB,MAAM,IAAIhB,EAAEiB,OAAO,EAAErB,eAAeI,GAAGF,MAAM,IAAI,CAACoB,SAAS;IAElE,IAAInB,EAAEiB,MAAM,IAAIhB,EAAEgB,MAAM,EAAE;QACxBlB,KAAKqB,OAAO,CAAC,SAACC;YACZ,IAAIrB,EAAEiB,MAAM,EAAE;gBACZ,IAAMK,IAAI,CAAChB,mBAAAA,6BAAAA,OAAQiB,KAAK,EAAoCF,EAAEtB,IAAI,EAAEsB,EAAEG,CAAC;gBACvEd,KAAKZ,cAAcE,GAAGK,mBAAAA,oBAAAA,SAAU,UAAUgB,CAAC,CAACb,KAAK,EAAYc,GAAGR,IAAIJ,IAAI,GAAG;gBAC3EA,KAAKZ,cAAcE,GAAGK,mBAAAA,oBAAAA,SAAU,UAAUgB,CAAC,CAACb,KAAK,EAAYc,GAAGR,IAAIJ,IAAI,GAAG;YAC7E;YAEA,IAAIT,EAAEgB,MAAM,EAAE;gBACZ,IAAMQ,IAAI,CAACnB,mBAAAA,6BAAAA,OAAQoB,MAAM,EAAoCL,EAAEtB,IAAI,EAAEsB,EAAEG,CAAC;gBACxEX,KAAKf,cAAcG,GAAGG,mBAAAA,oBAAAA,SAAU,UAAUiB,CAAC,CAACZ,KAAK,EAAYgB,GAAGT,IAAIH,IAAI,GAAG;gBAC3EA,KAAKf,cAAcG,GAAGG,mBAAAA,oBAAAA,SAAU,UAAUiB,CAAC,CAACZ,KAAK,EAAYgB,GAAGT,IAAIH,IAAI,GAAG;YAC7E;QACF;IACF;IAEA,OAAO;QAACb;QAAGC;KAAE;AACf"}
@@ -24,3 +24,5 @@ scale, data, discrete) {
24
24
  }
25
25
  };
26
26
  export default discreteBuffer;
27
+
28
+ //# sourceMappingURL=discreteBuffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/charts/plotBuffers/discreteBuffer.ts"],"sourcesContent":["/**\n @module discreteBuffer\n Adds left/right padding to a point or time scale.\n @private\n*/\nconst discreteBuffer = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n scale: any,\n data: Record<string, unknown>[],\n discrete: string,\n): void => {\n if (scale.padding) scale.padding(0.5);\n else {\n const uniqueValues = Array.from(\n new Set(\n data.map((d: Record<string, unknown>) => +(d[discrete] as number)),\n ),\n );\n const closest = uniqueValues.reduce(\n (acc: number, curr: number, i: number, arr: number[]) => {\n if (!i) return acc;\n const prev = arr[i - 1];\n if (!acc || curr - prev < acc) return curr - prev;\n else return acc;\n },\n 0,\n );\n const domain = scale.domain().slice();\n if (discrete === \"y\") domain.reverse();\n domain[0] = new Date(+domain[0] - closest / 2);\n domain[1] = new Date(+domain[1] + closest / 2);\n if (discrete === \"y\") domain.reverse();\n scale.domain(domain);\n }\n};\n\nexport default discreteBuffer;\n"],"names":["discreteBuffer","scale","data","discrete","padding","uniqueValues","Array","from","Set","map","d","closest","reduce","acc","curr","i","arr","prev","domain","slice","reverse","Date"],"mappings":"AAAA;;;;AAIA,GACA,IAAMA,iBAAiB,wBACrB,8DAA8D;AAC9DC,OACAC,MACAC;IAEA,IAAIF,MAAMG,OAAO,EAAEH,MAAMG,OAAO,CAAC;SAC5B;QACH,IAAMC,eAAeC,MAAMC,IAAI,CAC7B,IAAIC,IACFN,KAAKO,GAAG,CAAC,SAACC;mBAA+B,CAAEA,CAAC,CAACP,SAAS;;QAG1D,IAAMQ,UAAUN,aAAaO,MAAM,CACjC,SAACC,KAAaC,MAAcC,GAAWC;YACrC,IAAI,CAACD,GAAG,OAAOF;YACf,IAAMI,OAAOD,GAAG,CAACD,IAAI,EAAE;YACvB,IAAI,CAACF,OAAOC,OAAOG,OAAOJ,KAAK,OAAOC,OAAOG;iBACxC,OAAOJ;QACd,GACA;QAEF,IAAMK,SAASjB,MAAMiB,MAAM,GAAGC,KAAK;QACnC,IAAIhB,aAAa,KAAKe,OAAOE,OAAO;QACpCF,MAAM,CAAC,EAAE,GAAG,IAAIG,KAAK,CAACH,MAAM,CAAC,EAAE,GAAGP,UAAU;QAC5CO,MAAM,CAAC,EAAE,GAAG,IAAIG,KAAK,CAACH,MAAM,CAAC,EAAE,GAAGP,UAAU;QAC5C,IAAIR,aAAa,KAAKe,OAAOE,OAAO;QACpCnB,MAAMiB,MAAM,CAACA;IACf;AACF;AAEA,eAAelB,eAAe"}
@@ -110,3 +110,5 @@ axis, scale, value, size, range, domain, index, invert) {
110
110
  }
111
111
  return invert ? domain.reverse() : domain;
112
112
  }
113
+
114
+ //# sourceMappingURL=numericBuffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/charts/plotBuffers/numericBuffer.ts"],"sourcesContent":["import {scaleLog} from \"d3-scale\";\n\nconst floor10 = (v: number): number =>\n Math.pow(10, Math.floor(Math.log10(Math.abs(v)))) *\n Math.pow(-1, v < 0 ? 1 : 0);\nconst ceil10 = (v: number): number =>\n Math.pow(10, Math.ceil(Math.log10(Math.abs(v)))) *\n Math.pow(-1, v < 0 ? 1 : 0);\n\n/**\n @module numericBuffer\n @private\n*/\nexport default function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n axis: any,\n scale: string,\n value: number,\n size: number,\n range: number[],\n domain: number[],\n index: number,\n invert: boolean,\n): number[] {\n if (value === undefined || isNaN(domain[0]) || isNaN(domain[1]))\n return domain;\n\n if (invert) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n if (domain[0] === domain[1]) {\n domain = domain.slice();\n if (scale === \"log\") {\n domain = [floor10(domain[0]), ceil10(domain[0])];\n if (domain[1] < domain[0]) domain.reverse();\n } else {\n const mod = Math.abs(\n parseFloat(domain[0].toPrecision(1).replace(/[0-9]{1}$/, \"1\")),\n );\n domain[0] -= mod;\n domain[1] += mod;\n }\n axis.domain(invert ? domain.slice().reverse() : domain);\n return invert ? domain.reverse() : domain;\n }\n\n const logMod =\n domain[0] === domain[1]\n ? 10\n : Math.abs(Math.log(domain[1] - domain[0]) / 100);\n\n const needsBuffer = (): boolean => {\n let tempAxis = axis.copy();\n let diverging = false;\n if (scale === \"log\") {\n let d = axis.domain().slice(),\n r = axis.range().slice();\n if (invert) {\n d = d.reverse();\n r = r.reverse();\n }\n diverging = d[0] * d[1] < 0;\n if (diverging) {\n const percentScale = scaleLog()\n .domain([1e-6, Math.abs(d[index])])\n .range([0, 1]);\n const leftPercentage = percentScale(Math.abs(d[index ? 0 : 1]));\n const zero = (leftPercentage / (leftPercentage + 1)) * (r[1] - r[0]);\n d = (index === 0 ? [d[0], 1e-6] : [1e-6, d[1]]).map(Math.abs);\n r = index === 0 ? [r[0], r[0] + zero] : [r[0] + zero, r[1]];\n }\n tempAxis = scaleLog().domain(d).range(r);\n }\n\n let outside = false;\n const tempRange = tempAxis.range();\n let pixelValue: number;\n if (scale === \"log\") {\n pixelValue = diverging ? tempAxis(Math.abs(value)) : tempAxis(value);\n } else pixelValue = tempAxis(value);\n\n if (invert) {\n if (index === 0) outside = pixelValue + size > tempRange[index];\n else if (index === 1) outside = pixelValue - size < tempRange[index];\n } else {\n if (index === 0) outside = pixelValue - size < tempRange[index];\n else if (index === 1) outside = pixelValue + size > tempRange[index];\n }\n return outside;\n };\n\n if (axis.invert && needsBuffer()) {\n const mod = 10;\n if (scale === \"log\") {\n let i = 0;\n while (i < 10 && needsBuffer()) {\n const mod = (index === 0 ? -1 : 1) * (domain[index] < 0 ? -1 : 1);\n domain[index] += domain[index] * logMod * mod;\n axis.domain(invert ? domain.slice().reverse() : domain);\n i++;\n }\n } else if (index === 0) {\n const v = axis.invert(axis(value) + (size + mod) * (invert ? 1 : -1));\n if (v < domain[index]) {\n domain[index] = v;\n axis.domain(invert ? domain.slice().reverse() : domain);\n }\n } else if (index === 1) {\n const v = axis.invert(axis(value) + (size + mod) * (invert ? -1 : 1));\n if (v > domain[index]) {\n domain[index] = v;\n axis.domain(invert ? domain.slice().reverse() : domain);\n }\n }\n }\n\n return invert ? domain.reverse() : domain;\n}\n"],"names":["scaleLog","floor10","v","Math","pow","floor","log10","abs","ceil10","ceil","axis","scale","value","size","range","domain","index","invert","undefined","isNaN","slice","reverse","mod","parseFloat","toPrecision","replace","logMod","log","needsBuffer","tempAxis","copy","diverging","d","r","percentScale","leftPercentage","zero","map","outside","tempRange","pixelValue","i"],"mappings":"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"}
@@ -1450,3 +1450,5 @@ var Axis = /*#__PURE__*/ function(BaseClass) {
1450
1450
  /**
1451
1451
  Creates an SVG scale based on an array of data.
1452
1452
  */ export { Axis as default };
1453
+
1454
+ //# sourceMappingURL=Axis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/Axis.ts"],"sourcesContent":["import {extent, max, min, range as d3Range, sum} from \"d3-array\";\nimport {timeFormat, timeFormatDefaultLocale} from \"d3-time-format\";\nimport * as scales from \"d3-scale\";\nimport {select} from \"d3-selection\";\nimport {transition} from \"d3-transition\";\n// @ts-ignore\nimport pkg from \"open-color/open-color.js\";\nconst {theme: openColor} = pkg;\n\nimport {colorContrast, colorDefaults} from \"@d3plus/color\";\nimport {assign, attrize, backgroundColor, date, elem, rtl as detectRTL} from \"@d3plus/dom\";\nimport type {D3Selection} from \"@d3plus/dom\";\nimport {formatAbbreviate, formatDate} from \"@d3plus/format\";\nimport {formatLocale, locale} from \"@d3plus/locales\";\nimport {closest} from \"@d3plus/math\";\nimport {fontFamily as d3plusFontFamily, textWrap} from \"@d3plus/text\";\n\nimport type {DataPoint} from \"@d3plus/data\";\n\nimport {TextBox} from \"../components/index.js\";\nimport * as shapes from \"../shapes/index.js\";\nimport {configPrep, BaseClass, constant} from \"../utils/index.js\";\n\n/* catches for -0 and less*/\nconst isNegative = (d: number): boolean => d < 0 || Object.is(d, -0);\n\nconst floorPow = (d: number): number =>\n Math.pow(10, Math.floor(Math.log10(Math.abs(d)))) *\n Math.pow(-1, isNegative(d) ? 1 : 0);\nconst ceilPow = (d: number): number =>\n Math.pow(10, Math.ceil(Math.log10(Math.abs(d)))) *\n Math.pow(-1, isNegative(d) ? 1 : 0);\nconst fixFloat = (d: number): number => {\n const str = `${d}`;\n if (str.includes(\"e-\") || str === \"0\") return 0;\n const nineMatch = str.match(/(-*[0-9]+\\.[0]*)([0-8]+)9{3,}[0-9]+$/);\n if (nineMatch) return +`${nineMatch[1]}${+nineMatch[2] + 1}`;\n const zeroMatch = str.match(/(-*[0-9]+\\.[0]*)([1-9]+)0*[0-9]*0{3,}[0-9]+$/);\n if (zeroMatch) return +`${zeroMatch[1]}${+zeroMatch[2]}`;\n return d;\n};\n\nconst maxTimezoneOffset = 1000 * 60 * 60 * 26;\n\n/**\n * Calculates ticks from a given scale (negative and/or positive)\n * @param {scale} scale A d3-scale object\n * @private\n*/\nfunction calculateStep(\n this: Axis,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n scale: any,\n minorTicks: boolean = false,\n): number {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const stepScale = (scales as any)\n .scaleLinear()\n .domain([200, 1200])\n .range([8, 28]);\n const scaleRange = scale.range();\n const size = Math.abs(scaleRange[1] - scaleRange[0]);\n let step = Math.floor(stepScale(size));\n\n if (this._scale === \"time\") {\n if (this._data && this._data.length) {\n const dataExtent = extent(this._data);\n const distance = this._data.reduce(\n (n: number, d: unknown, i: number, arr: unknown[]) => {\n if (i) {\n const dist = Math.abs((d as number) - (arr[i - 1] as number));\n if (dist < n) n = dist;\n }\n return n;\n },\n Infinity,\n );\n const newStep = Math.round(\n ((dataExtent[1] as number) - (dataExtent[0] as number)) / distance,\n );\n step = min([step * (minorTicks ? 2 : 0.5), newStep])!;\n } else {\n step = minorTicks ? step * 2 : step / 2;\n }\n }\n\n return Math.floor(step);\n}\n\n/**\n * Calculates ticks from a given scale (negative and/or positive)\n * @param {scale} scale A d3-scale object\n * @private\n*/\nfunction calculateTicks(\n this: Axis,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n scale: any,\n minorTicks: boolean = false,\n): unknown[] {\n let ticks: unknown[] = [];\n\n const scaleClone = scale.copy();\n if (this._scale === \"time\" && this._data.length) {\n const newDomain = extent(this._data);\n const range = (newDomain as unknown[]).map(scale);\n scaleClone.domain(newDomain).range(range);\n }\n\n const domain = scaleClone.domain();\n const inverted = domain[1] < domain[0];\n const step = calculateStep.bind(this)(scaleClone, minorTicks);\n\n if (!minorTicks && this._scale === \"log\") {\n const roundDomain = domain.map((d: number) =>\n Math.log10(d) % 1 === 0 ? d : (inverted ? ceilPow : floorPow)(d),\n );\n const invertedRound = roundDomain[1] < roundDomain[0];\n const powers = roundDomain.map(\n (d: number) =>\n (isNegative(d) ? -1 : 1) *\n ([-1, 1].includes(d) || Math.abs(d) < 1 ? 1 : Math.log10(Math.abs(d))),\n );\n const powMod = Math.ceil(\n (Math.abs(powers[1] - powers[0]) + 1) / (step * 0.65),\n );\n\n ticks =\n (powMod <= 1 && powers[0] === powers[1]) || invertedRound !== inverted\n ? scaleClone\n .ticks(step)\n .filter((d: number) => +`${d}`.replace(\"0.\", \"\") % 2 === 0)\n : d3Range(powers[0], powers[1], powers[1] < powers[0] ? -1 : 1)\n .concat([powers[1]])\n .filter((d: number) => Math.abs(d) % powMod === 0)\n .map(\n (d: number) =>\n +`${\n (isNegative(d) ? -1 : 1) *\n (d\n ? Math.pow(10, Math.abs(d))\n : Math.sign(1 / d) > 0\n ? 1\n : -1)\n }`.replace(/9+/g, \"1\"),\n );\n } else {\n ticks = scaleClone.ticks(step);\n if (\n !minorTicks &&\n ![\"log\", \"time\"].includes(this._scale) &&\n ticks.length > 1\n ) {\n const majorDiff = Math.abs(fixFloat((ticks[1] as number) - (ticks[0] as number)) * 2);\n ticks = ticks.filter((d: unknown) => {\n const mod = Math.abs(d as number) % majorDiff;\n const modFloat = fixFloat(mod);\n if (modFloat !== mod) {\n return !modFloat || modFloat === majorDiff;\n }\n return mod === 0;\n });\n }\n }\n\n // for time scale, if data array has been provided, filter out ticks that are not in the array\n if (this._scale === \"time\" && this._data.length) {\n const dataNumbers = this._data.map(Number);\n ticks = ticks.filter((t: unknown) => {\n const tn = +(t as number);\n return dataNumbers.find(\n (n: number) =>\n n >= tn - maxTimezoneOffset && n <= tn + maxTimezoneOffset,\n );\n });\n }\n\n // forces min/max into ticks, if not present\n if (\n !this._d3ScaleNegative ||\n isNegative(domain[inverted ? 1 : 0]) ===\n ticks.some((d: unknown) => isNegative(d as number))\n ) {\n if (!ticks.map(Number).includes(+domain[0])) {\n ticks.unshift(domain[0]);\n }\n }\n if (\n !this._d3ScaleNegative ||\n isNegative(domain[inverted ? 0 : 1]) ===\n ticks.some((d: unknown) => isNegative(d as number))\n ) {\n if (!ticks.map(Number).includes(+domain[1])) {\n ticks.push(domain[1]);\n }\n }\n\n return ticks;\n}\n\n/**\n Creates an SVG scale based on an array of data.\n*/\nexport default class Axis extends BaseClass {\n _select!: D3Selection;\n _align: string;\n _barConfig: Record<string, unknown>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _data: any[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _domain: any[];\n _duration: number;\n _gridConfig: Record<string, unknown>;\n _gridLog: boolean;\n _gridSize: number | undefined;\n _grid: unknown[] | undefined;\n _height: number;\n _labelOffset: boolean;\n _labelRotation: boolean | undefined;\n _labels: unknown[] | undefined;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n declare _locale: any;\n _margin: Record<string, number>;\n _maxSize!: number;\n _minSize!: number;\n _orient!: string;\n _outerBounds: Record<string, number>;\n _padding: number;\n _paddingInner: number;\n _paddingOuter: number;\n _position!: {\n horizontal: boolean;\n width: string;\n height: string;\n x: string;\n y: string;\n opposite: string;\n };\n _range: (number | undefined)[] | undefined;\n _rounding: string;\n _roundingInsideMinPrefix: string;\n _roundingInsideMinSuffix: string;\n _roundingInsideMaxPrefix: string;\n _roundingInsideMaxSuffix: string;\n _scale: string;\n _scalePadding: number;\n _shape: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _shapeConfig: Record<string, any>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _tickFormat: any;\n _ticks: unknown[] | undefined;\n _tickSize: number;\n _tickSuffix: string;\n _tickUnit: number;\n _timeLocale: Record<string, unknown> | undefined;\n _title: string | undefined;\n _titleClass: TextBox;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _titleConfig: Record<string, any>;\n _width: number;\n // D3 scales have complex polymorphic types that vary at runtime\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _d3Scale: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _d3ScaleNegative: any;\n _group!: D3Selection;\n _lastScale: ((d: unknown) => number) | undefined;\n _availableTicks: unknown[];\n _visibleTicks: unknown[];\n _transition!: ReturnType<typeof transition>;\n _userFormat: ((d: unknown) => string) | false | undefined;\n\n /**\n Invoked when creating a new class instance, and sets any default parameters.\n @private\n*/\n constructor() {\n super();\n\n this._align = \"middle\";\n this._barConfig = {\n stroke: () => {\n const bg = this._select ? backgroundColor(this._select.node()) : \"rgb(255, 255, 255)\";\n return colorContrast(bg);\n },\n \"stroke-width\": 1,\n };\n this._data = [];\n this._domain = [0, 10];\n this._duration = 600;\n this._gridConfig = {\n stroke: () => {\n const bg = this._select ? backgroundColor(this._select.node()) : \"rgb(255, 255, 255)\";\n const contrast = colorContrast(bg);\n return contrast === colorDefaults.dark ? openColor.colors.gray[200] : openColor.colors.gray[600];\n },\n \"stroke-width\": 1,\n };\n this._gridLog = false;\n this._height = 400;\n this._labelOffset = false;\n this._labelRotation = false;\n this.orient(\"bottom\");\n this._outerBounds = {width: 0, height: 0, x: 0, y: 0};\n this._padding = 5;\n this._paddingInner = 0.1;\n this._paddingOuter = 0.1;\n this._rounding = \"none\";\n this._roundingInsideMinPrefix = \"< \";\n this._roundingInsideMinSuffix = \"\";\n this._roundingInsideMaxPrefix = \"\";\n this._roundingInsideMaxSuffix = \"+\";\n this._scale = \"linear\";\n this._scalePadding = 0.5;\n this._shape = \"Line\";\n this._shapeConfig = {\n fill: () => {\n const bg = this._select ? backgroundColor(this._select.node()) : \"rgb(255, 255, 255)\";\n return colorContrast(bg);\n },\n height: (d: Record<string, unknown>) => (d.tick ? 8 : 0),\n label: (d: Record<string, unknown>) => d.text,\n labelBounds: (d: Record<string, unknown>) => d.labelBounds,\n labelConfig: {\n fontColor: () => {\n const bg = this._select ? backgroundColor(this._select.node()) : \"rgb(255, 255, 255)\";\n return colorContrast(bg);\n },\n fontResize: false,\n fontSize: constant(12),\n padding: 5,\n textAnchor: () => {\n const rtl = detectRTL();\n return this._orient === \"left\"\n ? rtl\n ? \"start\"\n : \"end\"\n : this._orient === \"right\"\n ? rtl\n ? \"end\"\n : \"start\"\n : this._labelRotation\n ? this._orient === \"bottom\"\n ? \"end\"\n : \"start\"\n : \"middle\";\n },\n verticalAlign: () =>\n this._orient === \"bottom\"\n ? \"top\"\n : this._orient === \"top\"\n ? \"bottom\"\n : \"middle\",\n },\n r: (d: Record<string, unknown>) => (d.tick ? 4 : 0),\n stroke: () => {\n const bg = this._select ? backgroundColor(this._select.node()) : \"rgb(255, 255, 255)\";\n return colorContrast(bg);\n },\n strokeWidth: 1,\n width: (d: Record<string, unknown>) => (d.tick ? 8 : 0),\n };\n this._tickSize = 8;\n this._tickSuffix = \"normal\";\n this._tickUnit = 0;\n this._timeLocale = undefined;\n this._titleClass = new TextBox();\n this._titleConfig = {\n fontColor: () => {\n const bg = this._select ? backgroundColor(this._select.node()) : \"rgb(255, 255, 255)\";\n return colorContrast(bg);\n },\n fontSize: 12,\n textAnchor: \"middle\",\n };\n this._width = 400;\n this._margin = {top: 0, right: 0, bottom: 0, left: 0};\n this._availableTicks = [];\n this._visibleTicks = [];\n }\n\n /**\n Sets positioning for the axis bar.\n @param bar @private\n*/\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _barPosition(bar: any): void {\n const {height, x, y, opposite} = this._position,\n offset = this._margin[opposite],\n position = [\"top\", \"left\"].includes(this._orient)\n ? this._outerBounds[y] + this._outerBounds[height] - offset\n : this._outerBounds[y] + offset;\n\n const x1mod =\n this._scale === \"band\"\n ? this._d3Scale.step() - this._d3Scale.bandwidth()\n : this._scale === \"point\"\n ? this._d3Scale.step() * this._d3Scale.padding()\n : 0;\n\n const x2mod =\n this._scale === \"band\"\n ? this._d3Scale.step()\n : this._scale === \"point\"\n ? this._d3Scale.step() * this._d3Scale.padding()\n : 0;\n\n const sortedDomain = (\n this._d3ScaleNegative ? this._d3ScaleNegative.domain() : []\n )\n .concat(this._d3Scale ? this._d3Scale.domain() : [])\n .sort((a: number, b: number) => a - b);\n\n bar\n .call(attrize, this._barConfig)\n .attr(`${x}1`, this._getPosition(sortedDomain[0]) - x1mod)\n .attr(\n `${x}2`,\n this._getPosition(sortedDomain[sortedDomain.length - 1]) + x2mod,\n )\n .attr(`${y}1`, position)\n .attr(`${y}2`, position);\n }\n\n /**\n Returns the scale's domain, taking into account negative and positive log scales.\n @private\n*/\n _getDomain(): unknown[] {\n let ticks: unknown[] = [];\n if (this._d3ScaleNegative) ticks = this._d3ScaleNegative.domain();\n if (this._d3Scale) ticks = ticks.concat(this._d3Scale.domain());\n\n const domain = [\"band\", \"ordinal\", \"point\"].includes(this._scale)\n ? ticks\n : extent(ticks as number[]);\n return (ticks[0] as number) > (ticks[1] as number)\n ? (domain as unknown[]).reverse()\n : (domain as unknown[]);\n }\n\n /**\n Returns a value's scale position, taking into account negative and positive log scales.\n @param d @private\n*/\n _getPosition(d: unknown): number {\n if (this._scale === \"log\") {\n if (d === 0)\n return (this._d3Scale || this._d3ScaleNegative).range()[\n this._d3Scale ? 0 : 1\n ];\n return (\n isNegative(d as number) ? this._d3ScaleNegative || (() => 0) : this._d3Scale\n )(d);\n }\n return this._d3Scale(d);\n }\n\n /**\n Returns the scale's range, taking into account negative and positive log scales.\n @private\n*/\n _getRange(): unknown[] {\n let ticks: unknown[] = [];\n if (this._d3ScaleNegative) ticks = this._d3ScaleNegative.range();\n if (this._d3Scale) ticks = ticks.concat(this._d3Scale.range());\n return (ticks[0] as number) > (ticks[1] as number)\n ? (extent(ticks as number[]) as unknown[]).reverse()\n : (extent(ticks as number[]) as unknown[]);\n }\n\n /**\n Returns the scale's labels, taking into account negative and positive log scales.\n @private\n*/\n _getLabels(): unknown[] {\n let labels: unknown[] = [];\n if (this._d3ScaleNegative)\n labels = labels.concat(\n calculateTicks.bind(this)(this._d3ScaleNegative, false),\n );\n if (this._d3Scale)\n labels = labels.concat(calculateTicks.bind(this)(this._d3Scale, false));\n if (this._scale === \"log\") {\n const diverging =\n labels.some((d: unknown) => isNegative(d as number)) &&\n labels.some((d: unknown) => (d as number) > 0);\n if (diverging) {\n const minValue = min([\n ...this._d3ScaleNegative.domain().map(Math.abs),\n ...this._d3Scale.domain(),\n ]);\n // add minValue if it does not exist, and should\n if (!labels.includes(minValue)) {\n labels.splice(\n labels.findIndex((d: unknown) => (d as number) > minValue!),\n 0,\n minValue,\n );\n }\n // remove -minValue if minValue also exists\n if (labels.includes(-minValue!) && labels.includes(minValue)) {\n labels.splice(labels.indexOf(-minValue!), 1);\n }\n }\n }\n return labels;\n }\n\n /**\n Returns the scale's ticks, taking into account negative and positive log scales.\n @private\n*/\n _getTicks(): unknown[] {\n if (\n [\"band\", \"ordinal\", \"point\", \"time\"].includes(this._scale) &&\n this._data.length &&\n this._data.length < this._width / 4\n ) {\n return this._scale === \"time\" ? this._data.map(date) : this._data;\n }\n let ticks: unknown[] = [];\n if (this._d3ScaleNegative)\n ticks = ticks.concat(\n calculateTicks.bind(this)(this._d3ScaleNegative, true),\n );\n if (this._d3Scale)\n ticks = ticks.concat(calculateTicks.bind(this)(this._d3Scale, true));\n if (this._scale === \"log\" && ticks.includes(-1) && ticks.includes(1))\n ticks.splice(ticks.indexOf(-1), 1);\n return ticks;\n }\n\n /**\n Sets positioning for the grid lines.\n @param lines @private\n*/\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _gridPosition(lines: any, last: boolean = false): void {\n const {height, x, y, opposite} = this._position,\n offset = this._margin[opposite],\n position = [\"top\", \"left\"].includes(this._orient)\n ? this._outerBounds[y] + this._outerBounds[height] - offset\n : this._outerBounds[y] + offset,\n scale = last\n ? this._lastScale || this._getPosition.bind(this)\n : this._getPosition.bind(this),\n size = [\"top\", \"left\"].includes(this._orient) ? offset : -offset,\n xDiff = this._scale === \"band\" ? this._d3Scale.bandwidth() / 2 : 0,\n xPos = (d: Record<string, unknown>) => scale(d.id) + xDiff;\n lines\n .call(attrize, this._gridConfig)\n .attr(`${x}1`, xPos)\n .attr(`${x}2`, xPos)\n .attr(`${y}1`, position)\n .attr(`${y}2`, last ? position : position + size);\n }\n\n /**\n Renders the current Axis to the page.\n @param callback Optional callback invoked after rendering completes.\n*/\n render(callback?: (...args: unknown[]) => unknown): this {\n /**\n * Creates an SVG element to contain the axis if none\n * has been specified using the \"select\" method.\n*/\n if (this._select === void 0) {\n this.select(\n select(\"body\")\n .append(\"svg\")\n .attr(\"width\", `${this._width}px`)\n .attr(\"height\", `${this._height}px`)\n .node() as unknown as HTMLElement,\n );\n }\n\n const timeLocale =\n this._timeLocale || locale[this._locale] || locale[\"en-US\"];\n timeFormatDefaultLocale(\n timeLocale as Parameters<typeof timeFormatDefaultLocale>[0],\n );\n\n /**\n * Declares some commonly used variables.\n*/\n const {width, height, x, y, horizontal, opposite} = this._position,\n clipId = `d3plus-Axis-clip-${this._uuid}`,\n flip = [\"top\", \"left\"].includes(this._orient),\n p = this._padding,\n parent = this._select,\n rangeOuter = [p, (this[`_${width}` as keyof this] as number) - p],\n t = transition().duration(this._duration);\n\n const tickValue =\n this._shape === \"Circle\"\n ? this._shapeConfig.r\n : this._shape === \"Rect\"\n ? this._shapeConfig[width]\n : this._shapeConfig.strokeWidth;\n const tickGet =\n typeof tickValue !== \"function\" ? () => tickValue : tickValue;\n\n /**\n * Zeros out the margins for re-calculation.\n*/\n const margin: Record<string, number> = (this._margin = {top: 0, right: 0, bottom: 0, left: 0});\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let labels: any[] = [], range: any[] = [], ticks: any[] = [];\n\n /**\n * Constructs the tick formatter function.\n*/\n const tickFormat = this._tickFormat\n ? this._tickFormat\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (d: any) => {\n if (isNaN(d) || [\"band\", \"ordinal\", \"point\"].includes(this._scale)) {\n return d;\n } else if (this._scale === \"time\") {\n const refData = (this._data.length ? this._data : this._domain)\n .map((v: unknown) => date(v as string | number | false))\n .filter((d): d is Date => d instanceof Date)\n .sort((a: Date, b: Date) => +a - +b);\n return formatDate(d, refData, timeFormat).replace(\n /^Q/g,\n timeLocale.quarter as string,\n );\n } else if (\n this._scale === \"linear\" &&\n this._tickSuffix === \"smallest\"\n ) {\n const loc =\n typeof this._locale === \"object\"\n ? this._locale\n : formatLocale[this._locale];\n const {separator, suffixes} = loc;\n const suff = d >= 1000 ? suffixes[this._tickUnit + 8] : \"\";\n const tick = d / Math.pow(10, 3 * this._tickUnit);\n const number = formatAbbreviate(\n tick,\n loc,\n `,.${tick.toString().length}r`,\n );\n return `${number}${separator}${suff}`;\n } else {\n const inverted = ticks[1] < ticks[0];\n const minTick = inverted ? ticks.length - 1 : 0;\n const maxTick = inverted ? 0 : ticks.length - 1;\n const prefix =\n this._rounding === \"inside\"\n ? ticks.indexOf(d) === minTick\n ? this._roundingInsideMinPrefix\n : ticks.indexOf(d) === maxTick\n ? this._roundingInsideMaxPrefix\n : \"\"\n : \"\";\n const suffix =\n this._rounding === \"inside\"\n ? ticks.indexOf(d) === minTick\n ? this._roundingInsideMinSuffix\n : ticks.indexOf(d) === maxTick\n ? this._roundingInsideMaxSuffix\n : \"\"\n : \"\";\n return `${prefix}${formatAbbreviate(d, this._locale)}${suffix}`;\n }\n };\n\n /**\n * (Re)calculates the internal d3 scale\n * @param {} newRange\n*/\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const setScale = (newRange: any[] = this._range!) => {\n /**\n * Calculates the internal \"range\" array to use, including\n * fallbacks if not specified with the \"range\" method.\n*/\n range = newRange ? newRange.slice() : [undefined, undefined];\n let [minRange, maxRange] = rangeOuter;\n if (this._range) {\n if (this._range[0] !== undefined) minRange = this._range[0];\n if (this._range[this._range.length - 1] !== undefined)\n maxRange = this._range[this._range.length - 1]!;\n }\n if (range[0] === undefined || range[0] < minRange) range[0] = minRange;\n if (range[1] === undefined || range[1] > maxRange) range[1] = maxRange;\n\n const sizeInner = maxRange - minRange;\n if (this._scale === \"ordinal\" && this._domain.length > range.length) {\n if (newRange === this._range) {\n const buckets = this._domain.length + 1;\n range = d3Range(buckets)\n .map((d: number) => range[0] + sizeInner * (d / (buckets - 1)))\n .slice(1, buckets);\n range = range.map((d: number) => d - range[0] / 2);\n } else {\n const buckets = this._domain.length;\n const size = range[1] - range[0];\n range = d3Range(buckets).map(\n (d: number) => range[0] + size * (d / (buckets - 1)),\n );\n }\n }\n\n /**\n * Sets up the initial d3 scale, using this._domain and the\n * previously defined range variable.\n*/\n const scale = `scale${this._scale\n .charAt(0)\n .toUpperCase()}${this._scale.slice(1)}`;\n\n const initialDomain = this._domain.slice();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._d3Scale = (scales as any)[scale]()\n .domain(\n this._scale === \"time\" ? initialDomain.map(date) : initialDomain,\n )\n .range(range);\n\n if (this._rounding !== \"none\") {\n const roundDomain = () => {\n const zeroLength = (d: number) => {\n if (smallScale) {\n if (!d) return 0;\n const m = `${d}`.match(/0\\.(0*)/);\n if (m)\n return +`0.${Array(m[1].length + 1)\n .fill(0)\n .join(\"\")}1`;\n }\n return `${Math.round(Math.abs(d))}`.length;\n };\n const smallScale = initialDomain.every(\n (d: number) => Math.abs(d) < 1,\n );\n const zeroArray = [\n zeroLength(initialDomain[0]),\n zeroLength(initialDomain[1]),\n ]\n .filter(Boolean)\n .sort();\n const diverging =\n initialDomain.some((d: number) => isNegative(d)) &&\n initialDomain.some((d: number) => d > 0);\n const zeros =\n zeroArray.length === 1\n ? zeroArray[0]\n : zeroArray[0] > 1 && zeroArray[0] === zeroArray[1]\n ? zeroArray[0] - 1\n : this._rounding === \"outside\" || !diverging\n ? zeroArray[0] + (zeroArray[1] - zeroArray[0]) / 2\n : max(zeroArray)!;\n let factor: number =\n zeros < 1\n ? fixFloat(zeros)\n : +`1${Array(Math.floor(fixFloat(zeros)) - 1)\n .fill(0)\n .join(\"\")}`;\n if (factor >= Math.abs(initialDomain[1] - initialDomain[0]))\n factor /= 2;\n const inverted = initialDomain[1] < initialDomain[0];\n const newDomain = [\n Math[\n this._rounding === \"outside\"\n ? inverted\n ? \"ceil\"\n : \"floor\"\n : inverted\n ? \"floor\"\n : \"ceil\"\n ](initialDomain[0] / factor) * factor,\n Math[\n this._rounding === \"outside\"\n ? inverted\n ? \"floor\"\n : \"ceil\"\n : inverted\n ? \"ceil\"\n : \"floor\"\n ](initialDomain[1] / factor) * factor,\n ];\n if (this._scale === \"log\") {\n if (newDomain[0] === 0) newDomain[0] = initialDomain[0];\n if (newDomain[1] === 0) newDomain[1] = initialDomain[1];\n }\n this._d3Scale.domain(newDomain.map(fixFloat));\n };\n\n if (this._scale === \"linear\") {\n roundDomain.bind(this)();\n } else if (this._scale === \"log\") {\n const powDomain: number[] = [];\n const inverted = initialDomain[1] < initialDomain[0];\n powDomain[0] = (\n this._rounding === \"outside\"\n ? isNegative(initialDomain[0])\n ? inverted\n ? floorPow\n : ceilPow\n : inverted\n ? ceilPow\n : floorPow\n : isNegative(initialDomain[0])\n ? inverted\n ? ceilPow\n : floorPow\n : inverted\n ? floorPow\n : ceilPow\n )(initialDomain[0]);\n powDomain[1] = (\n this._rounding === \"inside\"\n ? isNegative(initialDomain[1])\n ? inverted\n ? floorPow\n : ceilPow\n : inverted\n ? ceilPow\n : floorPow\n : isNegative(initialDomain[1])\n ? inverted\n ? ceilPow\n : floorPow\n : inverted\n ? floorPow\n : ceilPow\n )(initialDomain[1]);\n const powInverted = powDomain[1] < powDomain[0];\n if (\n powDomain[0] !== powDomain[1] &&\n powDomain.some((d: number) => Math.abs(d) > 10) &&\n powInverted === inverted\n ) {\n this._d3Scale.domain(powDomain);\n } else {\n roundDomain.bind(this)();\n }\n }\n }\n\n if (this._d3Scale.padding) this._d3Scale.padding(this._scalePadding);\n if (this._d3Scale.paddingInner)\n this._d3Scale.paddingInner(this._paddingInner);\n if (this._d3Scale.paddingOuter)\n this._d3Scale.paddingOuter(this._paddingOuter);\n\n /**\n * Constructs a separate \"negative only\" scale for logarithmic\n * domains, as they cannot pass zero.\n*/\n this._d3ScaleNegative = null;\n if (this._scale === \"log\") {\n const domain = this._d3Scale.domain();\n if (domain[0] === 0) {\n const smallestNumber = min([min(this._data), Math.abs(domain[1])]);\n domain[0] =\n smallestNumber === 0 || smallestNumber === 1\n ? 1e-6\n : smallestNumber! <= 1\n ? floorPow(smallestNumber!)\n : 1;\n if (isNegative(domain[1])) domain[0] *= -1;\n } else if (domain[domain.length - 1] === 0) {\n const smallestNumber = min([min(this._data), Math.abs(domain[0])]);\n domain[domain.length - 1] =\n smallestNumber === 0 || smallestNumber === 1\n ? 1e-6\n : smallestNumber! <= 1\n ? floorPow(smallestNumber!)\n : 1;\n if (isNegative(domain[0])) domain[domain.length - 1] *= -1;\n }\n const range = this._d3Scale.range();\n\n // all negatives\n if (isNegative(domain[0]) && isNegative(domain[domain.length - 1])) {\n this._d3ScaleNegative = this._d3Scale\n .copy()\n .domain(domain)\n .range(range);\n this._d3Scale = null;\n }\n // all positives\n else if (domain[0] > 0 && domain[domain.length - 1] > 0) {\n this._d3Scale.domain(domain).range(range);\n }\n // crosses zero\n else {\n const powers = domain\n .map((d: number) => Math.log10(Math.abs(d)))\n .map((d: number) => d || -1e-6);\n const leftPercentage = powers[0] / sum(powers);\n const zero = leftPercentage * (range[1] - range[0]);\n\n let minPositive = min([\n min(this._data.filter((d: unknown) => (d as number) >= 0)),\n Math.abs(domain[1]),\n ]);\n if (minPositive === 1) minPositive = 1e-6;\n let minNegative = min([\n min(this._data.filter(isNegative)),\n Math.abs(domain[0]),\n ]);\n if (minNegative === 1) minNegative = 1e-6;\n const minPosPow =\n minPositive === 0\n ? 1e-6\n : minPositive! <= 1\n ? floorPow(minPositive!)\n : 1;\n const minNegPow =\n minNegative === 0\n ? -1e-6\n : minNegative! <= 1\n ? floorPow(minNegative!)\n : 1;\n const minValue = min([Math.abs(minPosPow), Math.abs(minNegPow)]);\n this._d3ScaleNegative = this._d3Scale.copy();\n (isNegative(domain[0]) ? this._d3Scale : this._d3ScaleNegative)\n .domain([isNegative(domain[0]) ? minValue : -minValue!, domain[1]])\n .range([range[0] + zero, range[1]]);\n (isNegative(domain[0]) ? this._d3ScaleNegative : this._d3Scale)\n .domain([domain[0], isNegative(domain[0]) ? -minValue! : minValue])\n .range([range[0], range[0] + zero]);\n }\n }\n\n /**\n * Determines the of values array to use\n * for the \"ticks\" and the \"labels\"\n*/\n ticks = (\n this._ticks\n ? this._scale === \"time\"\n ? (this._ticks as (string | number | false | undefined)[]).map(date)\n : this._ticks\n : (this._d3Scale ? this._d3Scale.ticks : this._d3ScaleNegative.ticks)\n ? this._getTicks()\n : this._domain\n ).slice();\n labels = (\n this._labels\n ? this._scale === \"time\"\n ? (this._labels as (string | number | false | undefined)[]).map(date)\n : this._labels\n : (this._d3Scale ? this._d3Scale.ticks : this._d3ScaleNegative.ticks)\n ? this._getLabels()\n : ticks\n ).slice();\n\n if (this._scale === \"time\") {\n ticks = ticks.map(Number);\n labels = labels.map(Number);\n }\n ticks = ticks.sort(\n (a: unknown, b: unknown) => this._getPosition(a) - this._getPosition(b),\n );\n labels = labels.sort(\n (a: unknown, b: unknown) => this._getPosition(a) - this._getPosition(b),\n );\n\n /**\n * Get the smallest suffix.\n*/\n if (this._scale === \"linear\" && this._tickSuffix === \"smallest\") {\n const suffixes = labels.filter((d: unknown) => (d as number) >= 1000);\n if (suffixes.length > 0) {\n const minVal = Math.min(...suffixes);\n let i = 1;\n while (i && i < 7) {\n const n = Math.pow(10, 3 * i);\n if (minVal / n >= 1) {\n this._tickUnit = i;\n i += 1;\n } else {\n break;\n }\n }\n }\n }\n\n /**\n * Removes ticks when they overlap other ticks.\n*/\n const pixels: (number | false)[] = [];\n this._availableTicks = ticks;\n ticks.forEach((d: unknown, i: number) => {\n let s = tickGet({id: d, tick: true}, i);\n if (this._shape === \"Circle\") s *= 2;\n const t = this._getPosition(d);\n if (!pixels.length || Math.abs(closest(t, pixels.filter((p): p is number => p !== false))! - t) > s * 2)\n pixels.push(t);\n else pixels.push(false);\n });\n ticks = ticks.filter((_d: unknown, i: number) => pixels[i] !== false);\n this._visibleTicks = ticks;\n };\n setScale();\n\n /**\n * Pre-calculates the size of the title, if defined, in order\n * to adjust the internal margins.\n*/\n if (this._title) {\n const {fontFamily, fontSize, lineHeight} = this._titleConfig;\n const titleWrap = textWrap()\n .fontFamily(\n typeof fontFamily === \"function\" ? fontFamily() : fontFamily,\n )\n .fontSize(typeof fontSize === \"function\" ? fontSize() : fontSize)\n .lineHeight(\n typeof lineHeight === \"function\" ? lineHeight() : lineHeight,\n )\n .width(range[range.length - 1] - range[0] - p * 2)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .height((this as any)[`_${height}`] - this._tickSize - p * 2);\n const lines = titleWrap(this._title).lines.length;\n margin[this._orient] = lines * titleWrap.lineHeight()! + p;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let hBuff: any =\n this._shape === \"Circle\"\n ? typeof this._shapeConfig.r === \"function\"\n ? this._shapeConfig.r({tick: true})\n : this._shapeConfig.r\n : this._shape === \"Rect\"\n ? typeof this._shapeConfig[height] === \"function\"\n ? this._shapeConfig[height]({tick: true})\n : this._shapeConfig[height]\n : this._tickSize,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wBuff: any = tickGet({tick: true});\n\n if (typeof hBuff === \"function\") hBuff = max(ticks.map(hBuff));\n if (this._shape === \"Rect\") hBuff /= 2;\n if (typeof wBuff === \"function\") wBuff = max(ticks.map(wBuff));\n if (this._shape !== \"Circle\") wBuff /= 2;\n\n /**\n * Calculates the text wrapping and size of a given textData object.\n * @param {Object} datum\n*/\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const calculateLabelSize = (datum: any): any => {\n const {d, i, fF, fP, fS, rotate, space} = datum;\n\n const h = rotate ? \"width\" : \"height\",\n w = rotate ? \"height\" : \"width\";\n\n const wSize = min([this._maxSize, this._width]);\n const hSize = min([this._maxSize, this._height]);\n\n const wrap = textWrap()\n .fontFamily(fF)\n .fontSize(fS)\n .lineHeight(\n this._shapeConfig.lineHeight\n ? this._shapeConfig.lineHeight(d, i)\n : undefined,\n );\n\n wrap[w](\n horizontal\n ? space\n : wSize! - hBuff - p - this._margin.left - this._margin.right,\n );\n wrap[h](\n horizontal\n ? hSize! - hBuff - p - this._margin.top - this._margin.bottom\n : space,\n );\n\n const res = wrap(tickFormat(d)) as ReturnType<typeof wrap> & {\n width: number;\n height: number;\n };\n res.lines = res.lines.filter((d: string) => d !== \"\");\n\n res.width = res.lines.length ? Math.ceil(max(res.widths)!) : 0;\n\n res.height = res.lines.length\n ? Math.ceil(res.lines.length * (wrap.lineHeight() as number)) + fP\n : 0;\n\n return res;\n };\n\n /** Calculates label offsets*/\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const calculateOffset = (arr: any[] = []): void => {\n let offset = 0;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n arr.forEach((datum: any) => {\n const prev = arr[datum.i - 1];\n\n const h =\n (datum.rotate && horizontal) || (!datum.rotate && !horizontal)\n ? \"width\"\n : \"height\",\n w =\n (datum.rotate && horizontal) || (!datum.rotate && !horizontal)\n ? \"height\"\n : \"width\";\n\n if (!prev) {\n offset = 1;\n } else if (\n prev.position + prev[w] / 2 >\n datum.position - datum[w] / 2\n ) {\n if (offset) {\n datum.offset = prev[h];\n offset = 0;\n } else offset = 1;\n }\n });\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let textData: any[] = [];\n const createTextData = (offset: number = 1): void => {\n const {fontSize} = this._shapeConfig.labelConfig;\n const fontFamily =\n this._shapeConfig.labelConfig.fontFamily || d3plusFontFamily;\n const fontPadding = this._shapeConfig.labelConfig.padding;\n\n /**\n * Calculates the space each label would take up, given\n * the provided this._space size.\n*/\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n textData = labels.map((d: any, i: number) => {\n const fF =\n typeof fontFamily === \"function\" ? fontFamily(d, i) : fontFamily,\n fP =\n typeof fontPadding === \"function\" ? fontPadding(d, i) : fontPadding,\n fS = typeof fontSize === \"function\" ? fontSize(d, i) : fontSize,\n position = this._getPosition(d);\n\n const lineHeight = this._shapeConfig.lineHeight\n ? this._shapeConfig.lineHeight(d, i)\n : fS * 1.4;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const datum: any = {\n d,\n i,\n fF,\n fP,\n fS,\n lineHeight,\n position,\n rotate: this._labelRotation,\n };\n return datum;\n });\n\n const maxSpace =\n this._scale === \"band\"\n ? this._d3Scale.bandwidth()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n : textData.reduce((s: number, d: any, i: number) => {\n const {position} = d;\n const prevPosition = !i\n ? textData.length === 1\n ? rangeOuter[0]\n : position - (textData[i + 1].position - position)\n : position - (position - textData[i - 1].position);\n const prevSpace = Math.abs(position - prevPosition);\n\n const nextPosition =\n i == textData.length - 1\n ? textData.length === 1\n ? rangeOuter[1]\n : position + (position - textData[i - 1].position)\n : position - (position - textData[i + 1].position);\n const nextSpace = Math.abs(position - nextPosition);\n const mod = this._scale === \"point\" ? 1 : 2;\n return max([max([prevSpace, nextSpace])! * mod, s])!;\n }, 0);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n textData = textData.map((datum: any) => {\n datum.space = maxSpace - datum.fP * 2;\n const res = calculateLabelSize(datum);\n return Object.assign(res, datum);\n });\n\n const reverseTextData = textData.slice().reverse();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n textData.forEach((datum: any) => {\n const {fP, i, position} = datum;\n const sizeName = horizontal ? \"width\" : \"height\";\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let prev: any = i\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ? reverseTextData.find((t: any) => t.i < i && !t.truncated)\n : false;\n if (i === textData.length - 1) {\n while (\n prev &&\n position - datum[sizeName] / 2 - fP <\n prev.position + prev[sizeName] / 2\n ) {\n prev.truncated = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n prev = reverseTextData.find((t: any) => t.i < i && !t.truncated);\n }\n }\n datum.truncated = prev\n ? position - datum[sizeName] / 2 - fP <\n prev.position + prev[sizeName] / 2\n : false;\n });\n\n if (offset > 1) calculateOffset(textData);\n };\n\n createTextData();\n const offsetEnabled =\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._labelOffset && textData.some((d: any) => d.truncated);\n if (offsetEnabled) createTextData(2);\n\n /**\n * \"spillover\" will contain the pixel spillover of the first and last label,\n * and then adjust the scale range accordingly.\n*/\n const spillovers = [0, 1].map((index: number) => {\n const datum = textData[index ? textData.length - 1 : 0];\n if (!datum) return 0;\n const {height: dHeight, position, rotate, width: dWidth} = datum;\n const compPosition = index ? rangeOuter[1] : rangeOuter[0];\n const halfSpace = (rotate || !horizontal ? dHeight : dWidth) / 2;\n if (Math.abs(position - compPosition) >= halfSpace) return 0;\n const spill = halfSpace - (position - compPosition);\n return Math.abs(spill);\n });\n\n const [first, last] = range;\n const newRange = [first + spillovers[0], last - spillovers[1]];\n if (this._range) {\n if (this._range[0] !== undefined) newRange[0] = this._range[0];\n if (this._range[this._range.length - 1] !== undefined)\n newRange[1] = this._range[this._range.length - 1];\n }\n\n if (newRange[0] !== first || newRange[1] !== last) {\n setScale(newRange);\n createTextData(offsetEnabled ? 2 : 1);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const labelHeight = max(textData, (t: any) => t.height) || 0;\n this._labelRotation =\n horizontal && this._labelRotation === undefined\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ? textData.some((datum: any) => {\n const {i, height: dH, position, truncated} = datum;\n const prev = textData[i - 1];\n return (\n truncated ||\n (i && prev.position + prev.height / 2 > position - dH / 2)\n );\n })\n : this._labelRotation;\n\n const globalOffset = this._labelOffset\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ? max(textData, (d: any) => d.offset || 0)\n : 0;\n textData.forEach(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (datum: any) => (datum.offset = datum.offset ? globalOffset : 0),\n );\n\n const tBuff = this._shape === \"Line\" ? 0 : hBuff;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const bounds: any = (this._outerBounds = {\n [height]:\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (max(textData, (t: any) =>\n Math.ceil(t[t.rotate || !horizontal ? \"width\" : \"height\"] + t.offset),\n ) || 0) + (textData.length ? p : 0),\n [width]: rangeOuter[rangeOuter.length - 1] - rangeOuter[0],\n [x]: rangeOuter[0],\n });\n\n bounds[height] = max([this._minSize, bounds[height]]);\n\n margin[this._orient] += hBuff;\n margin[opposite] =\n this._gridSize !== undefined\n ? max([this._gridSize, tBuff])!\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (this as any)[`_${height}`] -\n margin[this._orient] -\n bounds[height] -\n p;\n bounds[height] += margin[opposite] + margin[this._orient];\n bounds[y] =\n this._align === \"start\"\n ? this._padding\n : this._align === \"end\"\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (this as any)[`_${height}`] - bounds[height] - this._padding\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (this as any)[`_${height}`] / 2 - bounds[height] / 2;\n\n const group = elem(`g#d3plus-Axis-${this._uuid}`, {parent});\n this._group = group;\n\n const grid = elem(\"g.grid\", {parent: group})\n .selectAll(\"line\")\n .data(\n (this._gridSize !== 0\n ? this._grid || (this._scale === \"log\" && !this._gridLog)\n ? labels\n : ticks\n : []\n ).map((d: unknown) => ({id: d})),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (d: any) => d.id,\n );\n\n grid\n .exit()\n .transition(t)\n .attr(\"opacity\", 0)\n .call(this._gridPosition.bind(this))\n .remove();\n\n grid\n .enter()\n .append(\"line\")\n .attr(\"opacity\", 0)\n .attr(\"clip-path\", `url(#${clipId})`)\n .call(this._gridPosition.bind(this), true)\n .merge(grid as never)\n .transition(t)\n .attr(\"opacity\", 1)\n .call(this._gridPosition.bind(this));\n\n const labelOnly = labels.filter(\n (d: unknown, i: number) => textData[i].lines.length && !ticks.includes(d),\n );\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const rotated = textData.some((d: any) => d.rotate);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let tickData: any[] = ticks.concat(labelOnly).map((d: any) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const data = textData.find((td: any) => td.d === d);\n\n const xPos = this._getPosition(d);\n const space = data ? data.space : 0;\n const lines = data ? data.lines.length : 1;\n const lineHeight = data ? data.lineHeight : 1;\n const fP = data ? data.fP : 0;\n\n const labelOffset = data && this._labelOffset ? data.offset : 0;\n\n const labelWidth = horizontal\n ? space\n : bounds.width -\n margin[this._position.opposite] -\n hBuff -\n margin[this._orient] +\n p;\n\n const offset = margin[opposite],\n size = (hBuff + labelOffset) * (flip ? -1 : 1),\n yPos = flip ? bounds[y] + bounds[height] - offset : bounds[y] + offset;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const tickConfig: any = {\n id: d,\n labelBounds:\n rotated && data\n ? {\n x: -data.width / 2 + data.fS / 4,\n y:\n this._orient === \"bottom\"\n ? size + (data.width - lineHeight * lines) / 2 + fP\n : size * 2 - (data.width + lineHeight * lines) / 2 + fP,\n width: data.width,\n height: data.height,\n }\n : {\n x: horizontal\n ? -space / 2\n : this._orient === \"left\"\n ? -labelWidth - p + size\n : size + p,\n y: horizontal\n ? this._orient === \"bottom\"\n ? size + fP\n : size - labelHeight - fP\n : -space / 2,\n width: horizontal ? space : labelWidth,\n height: horizontal ? labelHeight : space,\n },\n rotate: data ? data.rotate : false,\n size:\n labels.includes(d) ||\n (this._scale === \"log\" && Math.log10(Math.abs(d)) % 1 === 0)\n ? size\n : ticks.includes(d)\n ? Math.ceil(size / 2)\n : this._data.find((t: unknown) => +(t as number) === d)\n ? Math.ceil(size / 4)\n : 0,\n text:\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n !(data || ({} as any)).truncated && labels.includes(d)\n ? tickFormat(d)\n : false,\n tick: ticks.includes(d),\n [x]:\n xPos + (this._scale === \"band\" ? this._d3Scale.bandwidth() / 2 : 0),\n [y]: yPos,\n };\n\n return tickConfig;\n });\n\n if (this._shape === \"Line\") {\n tickData = tickData.concat(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n tickData.map((d: any) => {\n const dupe = Object.assign({}, d);\n dupe[y] += d.size;\n return dupe;\n }),\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n new (shapes as any)[this._shape]()\n .data(tickData)\n .duration(this._duration)\n .labelConfig({\n ellipsis: (d: unknown) => (d && (d as string).length ? `${d}...` : \"\"),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rotate: (d: any) => (d.rotate ? -90 : 0),\n })\n .select(elem(\"g.ticks\", {parent: group}).node())\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .config(configPrep.bind(this as any)(this._shapeConfig))\n .labelConfig({padding: 0})\n .render();\n\n const bar = group.selectAll(\"line.bar\").data([null]);\n\n bar\n .enter()\n .append(\"line\")\n .attr(\"class\", \"bar\")\n .attr(\"opacity\", 0)\n .call(this._barPosition.bind(this))\n .merge(bar as never)\n .transition(t)\n .attr(\"opacity\", 1)\n .call(this._barPosition.bind(this));\n\n this._titleClass\n .data(this._title ? [{text: this._title}] : [])\n .duration(this._duration)\n .height(margin[this._orient])\n .rotate(this._orient === \"left\" ? -90 : this._orient === \"right\" ? 90 : 0)\n .select(elem(\"g.d3plus-Axis-title\", {parent: group}).node())\n .text(((d: DataPoint) => d.text) as unknown as string)\n .verticalAlign(\"middle\")\n .width(range[range.length - 1] - range[0])\n .x(\n horizontal\n ? range[0]\n : this._orient === \"left\"\n ? bounds.x +\n margin.left / 2 -\n (range[range.length - 1] - range[0]) / 2\n : bounds.x +\n bounds.width -\n margin.right / 2 -\n (range[range.length - 1] - range[0]) / 2,\n )\n .y(\n horizontal\n ? this._orient === \"bottom\"\n ? bounds.y + bounds.height - margin.bottom\n : bounds.y\n : range[0] +\n (range[range.length - 1] - range[0]) / 2 -\n margin[this._orient] / 2,\n )\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .config(configPrep.bind(this as any)(this._titleConfig))\n .render();\n\n this._lastScale = this._getPosition.bind(this);\n\n if (callback) setTimeout(callback, this._duration + 100);\n\n return this;\n }\n\n /**\n The horizontal alignment.\n*/\n align(): string;\n align(_: string): this;\n align(_?: string): string | this {\n return arguments.length ? ((this._align = _!), this) : this._align;\n }\n\n /**\n Axis line style.\n*/\n barConfig(): Record<string, unknown>;\n barConfig(_: Record<string, unknown>): this;\n barConfig(_?: Record<string, unknown>): unknown {\n return arguments.length\n ? ((this._barConfig = Object.assign(this._barConfig, _)), this)\n : this._barConfig;\n }\n\n /**\n An array of data points, which helps determine which ticks should be shown and which time resolution should be displayed.\n*/\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data(): any[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data(_: any[]): this;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data(_?: any[]): unknown {\n return arguments.length ? ((this._data = _!), this) : this._data;\n }\n\n /**\n Scale domain of the axis.\n*/\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n domain(): any[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n domain(_: any[]): this;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n domain(_?: any[]): unknown {\n return arguments.length ? ((this._domain = _!), this) : this._domain;\n }\n\n /**\n Transition duration of the axis.\n*/\n duration(): number;\n duration(_: number): this;\n duration(_?: number): number | this {\n return arguments.length ? ((this._duration = _!), this) : this._duration;\n }\n\n /**\n Grid values of the axis.\n*/\n grid(): unknown[] | undefined;\n grid(_: unknown[]): this;\n grid(_?: unknown[]): unknown {\n return arguments.length ? ((this._grid = _), this) : this._grid;\n }\n\n /**\n Grid config of the axis.\n*/\n gridConfig(): Record<string, unknown>;\n gridConfig(_: Record<string, unknown>): this;\n gridConfig(_?: Record<string, unknown>): unknown {\n return arguments.length\n ? ((this._gridConfig = Object.assign(this._gridConfig, _)), this)\n : this._gridConfig;\n }\n\n /**\n Grid behavior of the axis when scale is logarithmic.\n*/\n gridLog(): boolean;\n gridLog(_: boolean): this;\n gridLog(_?: boolean): boolean | this {\n return arguments.length ? ((this._gridLog = _!), this) : this._gridLog;\n }\n\n /**\n Grid size of the axis.\n*/\n gridSize(): number | undefined;\n gridSize(_: number): this;\n gridSize(_?: number): number | undefined | this {\n return arguments.length ? ((this._gridSize = _), this) : this._gridSize;\n }\n\n /**\n Overall height of the axis.\n*/\n height(): number;\n height(_: number): this;\n height(_?: number): number | this {\n return arguments.length ? ((this._height = _!), this) : this._height;\n }\n\n /**\n Visible tick labels of the axis.\n*/\n labels(): unknown[] | undefined;\n labels(_: unknown[]): this;\n labels(_?: unknown[]): unknown {\n return arguments.length ? ((this._labels = _), this) : this._labels;\n }\n\n /**\n Whether to offset overlapping labels further from the axis to prevent collisions.\n*/\n labelOffset(): boolean;\n labelOffset(_: boolean): this;\n labelOffset(_?: boolean): boolean | this {\n return arguments.length\n ? ((this._labelOffset = _!), this)\n : this._labelOffset;\n }\n\n /**\n Whether to rotate horizontal axis labels -90 degrees.\n*/\n labelRotation(): boolean | undefined;\n labelRotation(_: boolean): this;\n labelRotation(_?: boolean): boolean | undefined | this {\n return arguments.length\n ? ((this._labelRotation = _), this)\n : this._labelRotation;\n }\n\n /**\n Maximum size allowed for the space that contains the axis tick labels and title.\n*/\n maxSize(): number;\n maxSize(_: number): this;\n maxSize(_?: number): number | this {\n return arguments.length ? ((this._maxSize = _!), this) : this._maxSize;\n }\n\n /**\n Minimum size alloted for the space that contains the axis tick labels and title.\n*/\n minSize(): number;\n minSize(_: number): this;\n minSize(_?: number): number | this {\n return arguments.length ? ((this._minSize = _!), this) : this._minSize;\n }\n\n /**\n The orientation of the shape.\n*/\n orient(): string;\n orient(_: string): this;\n orient(_?: string): string | this {\n if (arguments.length) {\n const horizontal = [\"top\", \"bottom\"].includes(_!),\n opps: Record<string, string> = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\",\n };\n\n this._position = {\n horizontal,\n width: horizontal ? \"width\" : \"height\",\n height: horizontal ? \"height\" : \"width\",\n x: horizontal ? \"x\" : \"y\",\n y: horizontal ? \"y\" : \"x\",\n opposite: opps[_!],\n };\n\n return ((this._orient = _!), this);\n }\n return this._orient;\n }\n\n /**\n Returns the outer bounds of the axis content. Must be called after rendering.\n @example\n{\"width\": 180, \"height\": 24, \"x\": 10, \"y\": 20}\n*/\n outerBounds(): Record<string, number> {\n return this._outerBounds;\n }\n\n /**\n The padding between each tick label.\n*/\n padding(): number;\n padding(_: number): this;\n padding(_?: number): number | this {\n return arguments.length ? ((this._padding = _!), this) : this._padding;\n }\n\n /**\n The inner padding of band scale.\n*/\n paddingInner(): number;\n paddingInner(_: number): this;\n paddingInner(_?: number): number | this {\n return arguments.length\n ? ((this._paddingInner = _!), this)\n : this._paddingInner;\n }\n\n /**\n The outer padding of band scales.\n*/\n paddingOuter(): number;\n paddingOuter(_: number): this;\n paddingOuter(_?: number): number | this {\n return arguments.length\n ? ((this._paddingOuter = _!), this)\n : this._paddingOuter;\n }\n\n /**\n Scale range (in pixels) of the axis. The given array must have 2 values, but one may be `undefined` to allow the default behavior for that value.\n*/\n range(): (number | undefined)[] | undefined;\n range(_: (number | undefined)[]): this;\n range(_?: (number | undefined)[]): unknown {\n return arguments.length ? ((this._range = _), this) : this._range;\n }\n\n /**\n The rounding method for more evenly spaced ticks at the extents of the scale. Can be \"none\" (default), \"outside\", or \"inside\".\n*/\n rounding(): string;\n rounding(_: string): this;\n rounding(_?: string): string | this {\n return arguments.length ? ((this._rounding = _!), this) : this._rounding;\n }\n\n /**\n The prefix for the minimum value of \"inside\" rounding scales.\n*/\n roundingInsideMinPrefix(): string;\n roundingInsideMinPrefix(_: string): this;\n roundingInsideMinPrefix(_?: string): string | this {\n return arguments.length\n ? ((this._roundingInsideMinPrefix = _!), this)\n : this._roundingInsideMinPrefix;\n }\n\n /**\n The suffix for the minimum value of \"inside\" rounding scales.\n*/\n roundingInsideMinSuffix(): string;\n roundingInsideMinSuffix(_: string): this;\n roundingInsideMinSuffix(_?: string): string | this {\n return arguments.length\n ? ((this._roundingInsideMinSuffix = _!), this)\n : this._roundingInsideMinSuffix;\n }\n\n /**\n The prefix for the maximum value of \"inside\" rounding scales.\n*/\n roundingInsideMaxPrefix(): string;\n roundingInsideMaxPrefix(_: string): this;\n roundingInsideMaxPrefix(_?: string): string | this {\n return arguments.length\n ? ((this._roundingInsideMaxPrefix = _!), this)\n : this._roundingInsideMaxPrefix;\n }\n\n /**\n The suffix for the maximum value of \"inside\" rounding scales.\n*/\n roundingInsideMaxSuffix(): string;\n roundingInsideMaxSuffix(_: string): this;\n roundingInsideMaxSuffix(_?: string): string | this {\n return arguments.length\n ? ((this._roundingInsideMaxSuffix = _!), this)\n : this._roundingInsideMaxSuffix;\n }\n\n /**\n Scale of the axis.\n*/\n scale(): string;\n scale(_: string): this;\n scale(_?: string): string | this {\n return arguments.length ? ((this._scale = _!), this) : this._scale;\n }\n\n /**\n The \"padding\" property of the scale, often used in point scales.\n*/\n scalePadding(): number;\n scalePadding(_: number): this;\n scalePadding(_?: number): number | this {\n return arguments.length\n ? ((this._scalePadding = _!), this)\n : this._scalePadding;\n }\n\n /**\n The SVG container element as a d3 selector or DOM element.\n*/\n select(): D3Selection;\n select(_: string | HTMLElement): this;\n select(_?: string | HTMLElement): unknown {\n return arguments.length\n ? ((this._select = select(_ as never) as unknown as D3Selection), this)\n : this._select;\n }\n\n /**\n Tick shape constructor.\n*/\n shape(): string;\n shape(_: string): this;\n shape(_?: string): string | this {\n return arguments.length ? ((this._shape = _!), this) : this._shape;\n }\n\n /**\n Tick style of the axis.\n*/\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n shapeConfig(): Record<string, any>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n shapeConfig(_: Record<string, any>): this;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n shapeConfig(_?: Record<string, any>): unknown {\n return arguments.length\n ? ((this._shapeConfig = assign(this._shapeConfig, _ as Record<string, unknown>)), this)\n : this._shapeConfig;\n }\n\n /**\n Tick formatter.\n*/\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n tickFormat(): any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n tickFormat(_: any): this;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n tickFormat(_?: any): unknown {\n return arguments.length ? ((this._tickFormat = _), this) : this._tickFormat;\n }\n\n /**\n Tick values of the axis.\n*/\n ticks(): unknown[] | undefined;\n ticks(_: unknown[]): this;\n ticks(_?: unknown[]): unknown {\n return arguments.length ? ((this._ticks = _), this) : this._ticks;\n }\n\n /**\n Tick size of the axis.\n*/\n tickSize(): number;\n tickSize(_: number): this;\n tickSize(_?: number): number | this {\n return arguments.length ? ((this._tickSize = _!), this) : this._tickSize;\n }\n\n /**\n The tick abbreviation behavior for linear scales. Accepts \"normal\" (uses formatAbbreviate) or \"smallest\" (uses the suffix from the smallest tick as reference for every tick).\n*/\n tickSuffix(): string;\n tickSuffix(_: string): this;\n tickSuffix(_?: string): string | this {\n return arguments.length\n ? ((this._tickSuffix = _!), this)\n : this._tickSuffix;\n }\n\n /**\n Defines a custom locale object to be used in time scale. This object must include the following properties: dateTime, date, time, periods, days, shortDays, months, shortMonths. For more information, you can revise [d3p.d3-time-format](https://github.com/d3/d3-time-format/blob/master/README.md#timeFormatLocale).\n*/\n timeLocale(): Record<string, unknown> | undefined;\n timeLocale(_: Record<string, unknown>): this;\n timeLocale(_?: Record<string, unknown>): unknown {\n return arguments.length ? ((this._timeLocale = _), this) : this._timeLocale;\n }\n\n /**\n Title of the axis.\n*/\n title(): string | undefined;\n title(_: string): this;\n title(_?: string): string | undefined | this {\n return arguments.length ? ((this._title = _), this) : this._title;\n }\n\n /**\n Title configuration of the axis.\n*/\n titleConfig(): Record<string, unknown>;\n titleConfig(_: Record<string, unknown>): this;\n titleConfig(_?: Record<string, unknown>): unknown {\n return arguments.length\n ? ((this._titleConfig = Object.assign(this._titleConfig, _)), this)\n : this._titleConfig;\n }\n\n /**\n Overall width of the axis.\n*/\n width(): number;\n width(_: number): this;\n width(_?: number): number | this {\n return arguments.length ? ((this._width = _!), this) : this._width;\n }\n}\n"],"names":["extent","max","min","range","d3Range","sum","timeFormat","timeFormatDefaultLocale","scales","select","transition","pkg","theme","openColor","colorContrast","colorDefaults","assign","attrize","backgroundColor","date","elem","rtl","detectRTL","formatAbbreviate","formatDate","formatLocale","locale","closest","fontFamily","d3plusFontFamily","textWrap","TextBox","shapes","configPrep","BaseClass","constant","isNegative","d","Object","is","floorPow","Math","pow","floor","log10","abs","ceilPow","ceil","fixFloat","str","includes","nineMatch","match","zeroMatch","maxTimezoneOffset","calculateStep","scale","minorTicks","stepScale","scaleLinear","domain","scaleRange","size","step","_scale","_data","length","dataExtent","distance","reduce","n","i","arr","dist","Infinity","newStep","round","calculateTicks","ticks","scaleClone","copy","newDomain","map","inverted","bind","roundDomain","invertedRound","powers","powMod","filter","replace","concat","sign","majorDiff","mod","modFloat","dataNumbers","Number","t","tn","find","_d3ScaleNegative","some","unshift","push","Axis","_select","_align","_barConfig","_domain","_duration","_gridConfig","_gridLog","_gridSize","_grid","_height","_labelOffset","_labelRotation","_labels","_margin","_maxSize","_minSize","_orient","_outerBounds","_padding","_paddingInner","_paddingOuter","_position","_range","_rounding","_roundingInsideMinPrefix","_roundingInsideMinSuffix","_roundingInsideMaxPrefix","_roundingInsideMaxSuffix","_scalePadding","_shape","_shapeConfig","_tickFormat","_ticks","_tickSize","_tickSuffix","_tickUnit","_timeLocale","_title","_titleClass","_titleConfig","_width","_d3Scale","_group","_lastScale","_availableTicks","_visibleTicks","_transition","_userFormat","stroke","bg","node","contrast","dark","colors","gray","orient","width","height","x","y","fill","tick","label","text","labelBounds","labelConfig","fontColor","fontResize","fontSize","padding","textAnchor","verticalAlign","r","strokeWidth","undefined","top","right","bottom","left","_barPosition","bar","opposite","offset","position","x1mod","bandwidth","x2mod","sortedDomain","sort","a","b","call","attr","_getPosition","_getDomain","reverse","_getRange","_getLabels","labels","diverging","minValue","splice","findIndex","indexOf","_getTicks","_gridPosition","lines","last","xDiff","xPos","id","render","callback","append","timeLocale","_locale","horizontal","clipId","_uuid","flip","p","parent","rangeOuter","duration","tickValue","tickGet","margin","tickFormat","isNaN","refData","v","Date","quarter","loc","separator","suffixes","suff","number","toString","minTick","maxTick","prefix","suffix","setScale","newRange","slice","minRange","maxRange","sizeInner","buckets","charAt","toUpperCase","initialDomain","zeroLength","smallScale","m","Array","join","every","zeroArray","Boolean","zeros","factor","powDomain","powInverted","paddingInner","paddingOuter","smallestNumber","leftPercentage","zero","minPositive","minNegative","minPosPow","minNegPow","minVal","pixels","forEach","s","_d","lineHeight","titleWrap","hBuff","wBuff","calculateLabelSize","datum","fF","fP","fS","rotate","space","h","w","wSize","hSize","wrap","res","widths","calculateOffset","prev","textData","createTextData","fontPadding","maxSpace","prevPosition","prevSpace","nextPosition","nextSpace","reverseTextData","sizeName","truncated","offsetEnabled","spillovers","index","dHeight","dWidth","compPosition","halfSpace","spill","first","labelHeight","dH","globalOffset","tBuff","bounds","group","grid","selectAll","data","exit","remove","enter","merge","labelOnly","rotated","tickData","td","labelOffset","labelWidth","yPos","tickConfig","dupe","ellipsis","config","setTimeout","align","_","arguments","barConfig","gridConfig","gridLog","gridSize","labelRotation","maxSize","minSize","opps","outerBounds","rounding","roundingInsideMinPrefix","roundingInsideMinSuffix","roundingInsideMaxPrefix","roundingInsideMaxSuffix","scalePadding","shape","shapeConfig","tickSize","tickSuffix","title","titleConfig"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAQA,MAAM,EAAEC,GAAG,EAAEC,GAAG,EAAEC,SAASC,OAAO,EAAEC,GAAG,QAAO,WAAW;AACjE,SAAQC,UAAU,EAAEC,uBAAuB,QAAO,iBAAiB;AACnE,YAAYC,YAAY,WAAW;AACnC,SAAQC,MAAM,QAAO,eAAe;AACpC,SAAQC,UAAU,QAAO,gBAAgB;AACzC,aAAa;AACb,OAAOC,SAAS,2BAA2B;AAC3C,IAAOC,AAAOC,YAAaF,IAApBC;AAEP,SAAQE,aAAa,EAAEC,aAAa,QAAO,gBAAgB;AAC3D,SAAQC,MAAM,EAAEC,OAAO,EAAEC,eAAe,EAAEC,IAAI,EAAEC,IAAI,EAAEC,OAAOC,SAAS,QAAO,cAAc;AAE3F,SAAQC,gBAAgB,EAAEC,UAAU,QAAO,iBAAiB;AAC5D,SAAQC,YAAY,EAAEC,MAAM,QAAO,kBAAkB;AACrD,SAAQC,OAAO,QAAO,eAAe;AACrC,SAAQC,cAAcC,gBAAgB,EAAEC,QAAQ,QAAO,eAAe;AAItE,SAAQC,OAAO,QAAO,yBAAyB;AAC/C,YAAYC,YAAY,qBAAqB;AAC7C,SAAQC,UAAU,EAAEC,SAAS,EAAEC,QAAQ,QAAO,oBAAoB;AAElE,0BAA0B,GAC1B,IAAMC,aAAa,oBAACC;WAAuBA,IAAI,KAAKC,OAAOC,EAAE,CAACF,GAAG,CAAC;;AAElE,IAAMG,WAAW,kBAACH;WAChBI,KAAKC,GAAG,CAAC,IAAID,KAAKE,KAAK,CAACF,KAAKG,KAAK,CAACH,KAAKI,GAAG,CAACR,QAC5CI,KAAKC,GAAG,CAAC,CAAC,GAAGN,WAAWC,KAAK,IAAI;;AACnC,IAAMS,UAAU,iBAACT;WACfI,KAAKC,GAAG,CAAC,IAAID,KAAKM,IAAI,CAACN,KAAKG,KAAK,CAACH,KAAKI,GAAG,CAACR,QAC3CI,KAAKC,GAAG,CAAC,CAAC,GAAGN,WAAWC,KAAK,IAAI;;AACnC,IAAMW,WAAW,kBAACX;IAChB,IAAMY,MAAM,AAAC,GAAI,OAAFZ;IACf,IAAIY,IAAIC,QAAQ,CAAC,SAASD,QAAQ,KAAK,OAAO;IAC9C,IAAME,YAAYF,IAAIG,KAAK,CAAC;IAC5B,IAAID,WAAW,OAAO,CAAC,AAAC,GAAiB,OAAfA,SAAS,CAAC,EAAE,EAAqB,OAAlB,CAACA,SAAS,CAAC,EAAE,GAAG;IACzD,IAAME,YAAYJ,IAAIG,KAAK,CAAC;IAC5B,IAAIC,WAAW,OAAO,CAAC,AAAC,GAAiB,OAAfA,SAAS,CAAC,EAAE,EAAiB,OAAd,CAACA,SAAS,CAAC,EAAE;IACtD,OAAOhB;AACT;AAEA,IAAMiB,oBAAoB,OAAO,KAAK,KAAK;AAE3C;;;;AAIA,GACA,SAASC,cAEP,8DAA8D;AAC9DC,KAAU;QACVC,aAAAA,iEAAsB;IAEtB,8DAA8D;IAC9D,IAAMC,YAAY,AAAClD,OAChBmD,WAAW,GACXC,MAAM,CAAC;QAAC;QAAK;KAAK,EAClBzD,KAAK,CAAC;QAAC;QAAG;KAAG;IAChB,IAAM0D,aAAaL,MAAMrD,KAAK;IAC9B,IAAM2D,OAAOrB,KAAKI,GAAG,CAACgB,UAAU,CAAC,EAAE,GAAGA,UAAU,CAAC,EAAE;IACnD,IAAIE,OAAOtB,KAAKE,KAAK,CAACe,UAAUI;IAEhC,IAAI,IAAI,CAACE,MAAM,KAAK,QAAQ;QAC1B,IAAI,IAAI,CAACC,KAAK,IAAI,IAAI,CAACA,KAAK,CAACC,MAAM,EAAE;YACnC,IAAMC,aAAanE,OAAO,IAAI,CAACiE,KAAK;YACpC,IAAMG,WAAW,IAAI,CAACH,KAAK,CAACI,MAAM,CAChC,SAACC,GAAWjC,GAAYkC,GAAWC;gBACjC,IAAID,GAAG;oBACL,IAAME,OAAOhC,KAAKI,GAAG,CAAC,AAACR,IAAgBmC,GAAG,CAACD,IAAI,EAAE;oBACjD,IAAIE,OAAOH,GAAGA,IAAIG;gBACpB;gBACA,OAAOH;YACT,GACAI;YAEF,IAAMC,UAAUlC,KAAKmC,KAAK,CACxB,AAAC,CAAA,AAACT,UAAU,CAAC,EAAE,GAAeA,UAAU,CAAC,EAAE,AAAU,IAAKC;YAE5DL,OAAO7D,IAAI;gBAAC6D,OAAQN,CAAAA,aAAa,IAAI,GAAE;gBAAIkB;aAAQ;QACrD,OAAO;YACLZ,OAAON,aAAaM,OAAO,IAAIA,OAAO;QACxC;IACF;IAEA,OAAOtB,KAAKE,KAAK,CAACoB;AACpB;AAEA;;;;AAIA,GACA,SAASc,eAEP,8DAA8D;AAC9DrB,KAAU;QACVC,aAAAA,iEAAsB;IAEtB,IAAIqB,QAAmB,EAAE;IAEzB,IAAMC,aAAavB,MAAMwB,IAAI;IAC7B,IAAI,IAAI,CAAChB,MAAM,KAAK,UAAU,IAAI,CAACC,KAAK,CAACC,MAAM,EAAE;QAC/C,IAAMe,YAAYjF,OAAO,IAAI,CAACiE,KAAK;QACnC,IAAM9D,QAAQ,AAAC8E,UAAwBC,GAAG,CAAC1B;QAC3CuB,WAAWnB,MAAM,CAACqB,WAAW9E,KAAK,CAACA;IACrC;IAEA,IAAMyD,SAASmB,WAAWnB,MAAM;IAChC,IAAMuB,WAAWvB,MAAM,CAAC,EAAE,GAAGA,MAAM,CAAC,EAAE;IACtC,IAAMG,OAAOR,cAAc6B,IAAI,CAAC,IAAI,EAAEL,YAAYtB;IAElD,IAAI,CAACA,cAAc,IAAI,CAACO,MAAM,KAAK,OAAO;QACxC,IAAMqB,cAAczB,OAAOsB,GAAG,CAAC,SAAC7C;mBAC9BI,KAAKG,KAAK,CAACP,KAAK,MAAM,IAAIA,IAAI,AAAC8C,CAAAA,WAAWrC,UAAUN,QAAO,EAAGH;;QAEhE,IAAMiD,gBAAgBD,WAAW,CAAC,EAAE,GAAGA,WAAW,CAAC,EAAE;QACrD,IAAME,SAASF,YAAYH,GAAG,CAC5B,SAAC7C;mBACC,AAACD,CAAAA,WAAWC,KAAK,CAAC,IAAI,CAAA,IACrB,CAAA;gBAAC,CAAC;gBAAG;aAAE,CAACa,QAAQ,CAACb,MAAMI,KAAKI,GAAG,CAACR,KAAK,IAAI,IAAII,KAAKG,KAAK,CAACH,KAAKI,GAAG,CAACR,GAAE;;QAExE,IAAMmD,SAAS/C,KAAKM,IAAI,CACtB,AAACN,CAAAA,KAAKI,GAAG,CAAC0C,MAAM,CAAC,EAAE,GAAGA,MAAM,CAAC,EAAE,IAAI,CAAA,IAAMxB,CAAAA,OAAO,IAAG;QAGrDe,QACE,AAACU,UAAU,KAAKD,MAAM,CAAC,EAAE,KAAKA,MAAM,CAAC,EAAE,IAAKD,kBAAkBH,WAC1DJ,WACGD,KAAK,CAACf,MACN0B,MAAM,CAAC,SAACpD;mBAAc,CAAC,AAAC,GAAI,OAAFA,GAAIqD,OAAO,CAAC,MAAM,MAAM,MAAM;aAC3DtF,QAAQmF,MAAM,CAAC,EAAE,EAAEA,MAAM,CAAC,EAAE,EAAEA,MAAM,CAAC,EAAE,GAAGA,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,GACxDI,MAAM,CAAC;YAACJ,MAAM,CAAC,EAAE;SAAC,EAClBE,MAAM,CAAC,SAACpD;mBAAcI,KAAKI,GAAG,CAACR,KAAKmD,WAAW;WAC/CN,GAAG,CACF,SAAC7C;mBACC,CAAC,AAAC,GAOD,OANC,AAACD,CAAAA,WAAWC,KAAK,CAAC,IAAI,CAAA,IACrBA,CAAAA,IACGI,KAAKC,GAAG,CAAC,IAAID,KAAKI,GAAG,CAACR,MACtBI,KAAKmD,IAAI,CAAC,IAAIvD,KAAK,IACjB,IACA,CAAC,CAAA,GACNqD,OAAO,CAAC,OAAO;;IAEhC,OAAO;QACLZ,QAAQC,WAAWD,KAAK,CAACf;QACzB,IACE,CAACN,cACD,CAAC;YAAC;YAAO;SAAO,CAACP,QAAQ,CAAC,IAAI,CAACc,MAAM,KACrCc,MAAMZ,MAAM,GAAG,GACf;YACA,IAAM2B,YAAYpD,KAAKI,GAAG,CAACG,SAAS,AAAC8B,KAAK,CAAC,EAAE,GAAeA,KAAK,CAAC,EAAE,IAAe;YACnFA,QAAQA,MAAMW,MAAM,CAAC,SAACpD;gBACpB,IAAMyD,MAAMrD,KAAKI,GAAG,CAACR,KAAewD;gBACpC,IAAME,WAAW/C,SAAS8C;gBAC1B,IAAIC,aAAaD,KAAK;oBACpB,OAAO,CAACC,YAAYA,aAAaF;gBACnC;gBACA,OAAOC,QAAQ;YACjB;QACF;IACF;IAEA,8FAA8F;IAC9F,IAAI,IAAI,CAAC9B,MAAM,KAAK,UAAU,IAAI,CAACC,KAAK,CAACC,MAAM,EAAE;QAC/C,IAAM8B,cAAc,IAAI,CAAC/B,KAAK,CAACiB,GAAG,CAACe;QACnCnB,QAAQA,MAAMW,MAAM,CAAC,SAACS;YACpB,IAAMC,KAAK,CAAED;YACb,OAAOF,YAAYI,IAAI,CACrB,SAAC9B;uBACCA,KAAK6B,KAAK7C,qBAAqBgB,KAAK6B,KAAK7C;;QAE/C;IACF;IAEA,4CAA4C;IAC5C,IACE,CAAC,IAAI,CAAC+C,gBAAgB,IACtBjE,WAAWwB,MAAM,CAACuB,WAAW,IAAI,EAAE,MACjCL,MAAMwB,IAAI,CAAC,SAACjE;eAAeD,WAAWC;QACxC;QACA,IAAI,CAACyC,MAAMI,GAAG,CAACe,QAAQ/C,QAAQ,CAAC,CAACU,MAAM,CAAC,EAAE,GAAG;YAC3CkB,MAAMyB,OAAO,CAAC3C,MAAM,CAAC,EAAE;QACzB;IACF;IACA,IACE,CAAC,IAAI,CAACyC,gBAAgB,IACtBjE,WAAWwB,MAAM,CAACuB,WAAW,IAAI,EAAE,MACjCL,MAAMwB,IAAI,CAAC,SAACjE;eAAeD,WAAWC;QACxC;QACA,IAAI,CAACyC,MAAMI,GAAG,CAACe,QAAQ/C,QAAQ,CAAC,CAACU,MAAM,CAAC,EAAE,GAAG;YAC3CkB,MAAM0B,IAAI,CAAC5C,MAAM,CAAC,EAAE;QACtB;IACF;IAEA,OAAOkB;AACT;AAKe,IAAA,AAAM2B,qBAAN;;cAAMA;aAAAA;gCAAAA;;gBA6EjB,kBA7EiBA,OACnBC,wBAAAA,WAAAA,KAAAA,IACAC,wBAAAA,UAAAA,KAAAA,IACAC,wBAAAA,cAAAA,KAAAA,IACA,8DAA8D;QAC9D3C,wBAAAA,SAAAA,KAAAA,IACA,8DAA8D;QAC9D4C,wBAAAA,WAAAA,KAAAA,IACAC,wBAAAA,aAAAA,KAAAA,IACAC,wBAAAA,eAAAA,KAAAA,IACAC,wBAAAA,YAAAA,KAAAA,IACAC,wBAAAA,aAAAA,KAAAA,IACAC,wBAAAA,SAAAA,KAAAA,IACAC,wBAAAA,WAAAA,KAAAA,IACAC,wBAAAA,gBAAAA,KAAAA,IACAC,wBAAAA,kBAAAA,KAAAA,IACAC,wBAAAA,WAAAA,KAAAA,IAIAC,wBAAAA,WAAAA,KAAAA,IACAC,wBAAAA,YAAAA,KAAAA,IACAC,wBAAAA,YAAAA,KAAAA,IACAC,wBAAAA,WAAAA,KAAAA,IACAC,wBAAAA,gBAAAA,KAAAA,IACAC,wBAAAA,YAAAA,KAAAA,IACAC,wBAAAA,iBAAAA,KAAAA,IACAC,wBAAAA,iBAAAA,KAAAA,IACAC,wBAAAA,aAAAA,KAAAA,IAQAC,wBAAAA,UAAAA,KAAAA,IACAC,wBAAAA,aAAAA,KAAAA,IACAC,wBAAAA,4BAAAA,KAAAA,IACAC,wBAAAA,4BAAAA,KAAAA,IACAC,wBAAAA,4BAAAA,KAAAA,IACAC,wBAAAA,4BAAAA,KAAAA,IACArE,wBAAAA,UAAAA,KAAAA,IACAsE,wBAAAA,iBAAAA,KAAAA,IACAC,wBAAAA,UAAAA,KAAAA,IAEA,8DAA8D;QAC9DC,wBAAAA,gBAAAA,KAAAA,IACA,8DAA8D;QAC9DC,wBAAAA,eAAAA,KAAAA,IACAC,wBAAAA,UAAAA,KAAAA,IACAC,wBAAAA,aAAAA,KAAAA,IACAC,wBAAAA,eAAAA,KAAAA,IACAC,wBAAAA,aAAAA,KAAAA,IACAC,wBAAAA,eAAAA,KAAAA,IACAC,wBAAAA,UAAAA,KAAAA,IACAC,wBAAAA,eAAAA,KAAAA,IACA,8DAA8D;QAC9DC,wBAAAA,gBAAAA,KAAAA,IACAC,wBAAAA,UAAAA,KAAAA,IACA,gEAAgE;QAChE,8DAA8D;QAC9DC,wBAAAA,YAAAA,KAAAA,IACA,8DAA8D;QAC9D9C,wBAAAA,oBAAAA,KAAAA,IACA+C,wBAAAA,UAAAA,KAAAA,IACAC,wBAAAA,cAAAA,KAAAA,IACAC,wBAAAA,mBAAAA,KAAAA,IACAC,wBAAAA,iBAAAA,KAAAA,IACAC,wBAAAA,eAAAA,KAAAA,IACAC,wBAAAA,eAAAA,KAAAA;QASE,MAAK9C,MAAM,GAAG;QACd,MAAKC,UAAU,GAAG;YAChB8C,QAAQ,SAARA;gBACE,IAAMC,KAAK,MAAKjD,OAAO,GAAGxF,gBAAgB,MAAKwF,OAAO,CAACkD,IAAI,MAAM;gBACjE,OAAO9I,cAAc6I;YACvB;YACA,gBAAgB;QAClB;QACA,MAAK1F,KAAK,GAAG,EAAE;QACf,MAAK4C,OAAO,GAAG;YAAC;YAAG;SAAG;QACtB,MAAKC,SAAS,GAAG;QACjB,MAAKC,WAAW,GAAG;YACjB2C,QAAQ,SAARA;gBACE,IAAMC,KAAK,MAAKjD,OAAO,GAAGxF,gBAAgB,MAAKwF,OAAO,CAACkD,IAAI,MAAM;gBACjE,IAAMC,WAAW/I,cAAc6I;gBAC/B,OAAOE,aAAa9I,cAAc+I,IAAI,GAAGjJ,UAAUkJ,MAAM,CAACC,IAAI,CAAC,IAAI,GAAGnJ,UAAUkJ,MAAM,CAACC,IAAI,CAAC,IAAI;YAClG;YACA,gBAAgB;QAClB;QACA,MAAKhD,QAAQ,GAAG;QAChB,MAAKG,OAAO,GAAG;QACf,MAAKC,YAAY,GAAG;QACpB,MAAKC,cAAc,GAAG;QACtB,MAAK4C,MAAM,CAAC;QACZ,MAAKtC,YAAY,GAAG;YAACuC,OAAO;YAAGC,QAAQ;YAAGC,GAAG;YAAGC,GAAG;QAAC;QACpD,MAAKzC,QAAQ,GAAG;QAChB,MAAKC,aAAa,GAAG;QACrB,MAAKC,aAAa,GAAG;QACrB,MAAKG,SAAS,GAAG;QACjB,MAAKC,wBAAwB,GAAG;QAChC,MAAKC,wBAAwB,GAAG;QAChC,MAAKC,wBAAwB,GAAG;QAChC,MAAKC,wBAAwB,GAAG;QAChC,MAAKrE,MAAM,GAAG;QACd,MAAKsE,aAAa,GAAG;QACrB,MAAKC,MAAM,GAAG;QACd,MAAKC,YAAY,GAAG;YAClB8B,MAAM,SAANA;gBACE,IAAMX,KAAK,MAAKjD,OAAO,GAAGxF,gBAAgB,MAAKwF,OAAO,CAACkD,IAAI,MAAM;gBACjE,OAAO9I,cAAc6I;YACvB;YACAQ,QAAQ,SAARA,OAAS9H;uBAAgCA,EAAEkI,IAAI,GAAG,IAAI;;YACtDC,OAAO,SAAPA,MAAQnI;uBAA+BA,EAAEoI,IAAI;;YAC7CC,aAAa,SAAbA,YAAcrI;uBAA+BA,EAAEqI,WAAW;;YAC1DC,aAAa;gBACXC,WAAW,SAAXA;oBACE,IAAMjB,KAAK,MAAKjD,OAAO,GAAGxF,gBAAgB,MAAKwF,OAAO,CAACkD,IAAI,MAAM;oBACjE,OAAO9I,cAAc6I;gBACvB;gBACAkB,YAAY;gBACZC,UAAU3I,SAAS;gBACnB4I,SAAS;gBACTC,YAAY,SAAZA;oBACE,IAAM3J,MAAMC;oBACZ,OAAO,MAAKoG,OAAO,KAAK,SACpBrG,MACE,UACA,QACF,MAAKqG,OAAO,KAAK,UACfrG,MACE,QACA,UACF,MAAKgG,cAAc,GACjB,MAAKK,OAAO,KAAK,WACf,QACA,UACF;gBACV;gBACAuD,eAAe,SAAfA;2BACE,MAAKvD,OAAO,KAAK,WACb,QACA,MAAKA,OAAO,KAAK,QACf,WACA;;YACV;YACAwD,GAAG,SAAHA,EAAI7I;uBAAgCA,EAAEkI,IAAI,GAAG,IAAI;;YACjDb,QAAQ,SAARA;gBACE,IAAMC,KAAK,MAAKjD,OAAO,GAAGxF,gBAAgB,MAAKwF,OAAO,CAACkD,IAAI,MAAM;gBACjE,OAAO9I,cAAc6I;YACvB;YACAwB,aAAa;YACbjB,OAAO,SAAPA,MAAQ7H;uBAAgCA,EAAEkI,IAAI,GAAG,IAAI;;QACvD;QACA,MAAK5B,SAAS,GAAG;QACjB,MAAKC,WAAW,GAAG;QACnB,MAAKC,SAAS,GAAG;QACjB,MAAKC,WAAW,GAAGsC;QACnB,MAAKpC,WAAW,GAAG,IAAIjH;QACvB,MAAKkH,YAAY,GAAG;YAClB2B,WAAW,SAAXA;gBACE,IAAMjB,KAAK,MAAKjD,OAAO,GAAGxF,gBAAgB,MAAKwF,OAAO,CAACkD,IAAI,MAAM;gBACjE,OAAO9I,cAAc6I;YACvB;YACAmB,UAAU;YACVE,YAAY;QACd;QACA,MAAK9B,MAAM,GAAG;QACd,MAAK3B,OAAO,GAAG;YAAC8D,KAAK;YAAGC,OAAO;YAAGC,QAAQ;YAAGC,MAAM;QAAC;QACpD,MAAKlC,eAAe,GAAG,EAAE;QACzB,MAAKC,aAAa,GAAG,EAAE;;;kBAlLN9C;;YAqLnB;;;AAGF,GACE,8DAA8D;YAC9DgF,KAAAA;mBAAAA,SAAAA,aAAaC,GAAQ;gBACnB,IAAiC,kBAAA,IAAI,CAAC3D,SAAS,EAAxCoC,SAA0B,gBAA1BA,QAAQC,IAAkB,gBAAlBA,GAAGC,IAAe,gBAAfA,GAAGsB,WAAY,gBAAZA,UACnBC,SAAS,IAAI,CAACrE,OAAO,CAACoE,SAAS,EAC/BE,WAAW;oBAAC;oBAAO;iBAAO,CAAC3I,QAAQ,CAAC,IAAI,CAACwE,OAAO,IAC5C,IAAI,CAACC,YAAY,CAAC0C,EAAE,GAAG,IAAI,CAAC1C,YAAY,CAACwC,OAAO,GAAGyB,SACnD,IAAI,CAACjE,YAAY,CAAC0C,EAAE,GAAGuB;gBAE7B,IAAME,QACJ,IAAI,CAAC9H,MAAM,KAAK,SACZ,IAAI,CAACmF,QAAQ,CAACpF,IAAI,KAAK,IAAI,CAACoF,QAAQ,CAAC4C,SAAS,KAC9C,IAAI,CAAC/H,MAAM,KAAK,UACd,IAAI,CAACmF,QAAQ,CAACpF,IAAI,KAAK,IAAI,CAACoF,QAAQ,CAAC4B,OAAO,KAC5C;gBAER,IAAMiB,QACJ,IAAI,CAAChI,MAAM,KAAK,SACZ,IAAI,CAACmF,QAAQ,CAACpF,IAAI,KAClB,IAAI,CAACC,MAAM,KAAK,UACd,IAAI,CAACmF,QAAQ,CAACpF,IAAI,KAAK,IAAI,CAACoF,QAAQ,CAAC4B,OAAO,KAC5C;gBAER,IAAMkB,eAAe,AACnB,CAAA,IAAI,CAAC5F,gBAAgB,GAAG,IAAI,CAACA,gBAAgB,CAACzC,MAAM,KAAK,EAAE,AAAD,EAEzD+B,MAAM,CAAC,IAAI,CAACwD,QAAQ,GAAG,IAAI,CAACA,QAAQ,CAACvF,MAAM,KAAK,EAAE,EAClDsI,IAAI,CAAC,SAACC,GAAWC;2BAAcD,IAAIC;;gBAEtCV,IACGW,IAAI,CAACpL,SAAS,IAAI,CAAC2F,UAAU,EAC7B0F,IAAI,CAAC,AAAC,GAAI,OAAFlC,GAAE,MAAI,IAAI,CAACmC,YAAY,CAACN,YAAY,CAAC,EAAE,IAAIH,OACnDQ,IAAI,CACH,AAAC,GAAI,OAAFlC,GAAE,MACL,IAAI,CAACmC,YAAY,CAACN,YAAY,CAACA,aAAa/H,MAAM,GAAG,EAAE,IAAI8H,OAE5DM,IAAI,CAAC,AAAC,GAAI,OAAFjC,GAAE,MAAIwB,UACdS,IAAI,CAAC,AAAC,GAAI,OAAFjC,GAAE,MAAIwB;YACnB;;;YAEA;;;AAGF,GACEW,KAAAA;mBAAAA,SAAAA;gBACE,IAAI1H,QAAmB,EAAE;gBACzB,IAAI,IAAI,CAACuB,gBAAgB,EAAEvB,QAAQ,IAAI,CAACuB,gBAAgB,CAACzC,MAAM;gBAC/D,IAAI,IAAI,CAACuF,QAAQ,EAAErE,QAAQA,MAAMa,MAAM,CAAC,IAAI,CAACwD,QAAQ,CAACvF,MAAM;gBAE5D,IAAMA,SAAS;oBAAC;oBAAQ;oBAAW;iBAAQ,CAACV,QAAQ,CAAC,IAAI,CAACc,MAAM,IAC5Dc,QACA9E,OAAO8E;gBACX,OAAO,AAACA,KAAK,CAAC,EAAE,GAAeA,KAAK,CAAC,EAAE,GACnC,AAAClB,OAAqB6I,OAAO,KAC5B7I;YACP;;;YAEA;;;AAGF,GACE2I,KAAAA;mBAAAA,SAAAA,aAAalK,CAAU;gBACrB,IAAI,IAAI,CAAC2B,MAAM,KAAK,OAAO;oBACzB,IAAI3B,MAAM,GACR,OAAO,AAAC,CAAA,IAAI,CAAC8G,QAAQ,IAAI,IAAI,CAAC9C,gBAAgB,AAAD,EAAGlG,KAAK,EAAE,CACrD,IAAI,CAACgJ,QAAQ,GAAG,IAAI,EACrB;oBACH,OAAO,AACL/G,CAAAA,WAAWC,KAAe,IAAI,CAACgE,gBAAgB,IAAK;+BAAM;wBAAK,IAAI,CAAC8C,QAAQ,AAAD,EAC3E9G;gBACJ;gBACA,OAAO,IAAI,CAAC8G,QAAQ,CAAC9G;YACvB;;;YAEA;;;AAGF,GACEqK,KAAAA;mBAAAA,SAAAA;gBACE,IAAI5H,QAAmB,EAAE;gBACzB,IAAI,IAAI,CAACuB,gBAAgB,EAAEvB,QAAQ,IAAI,CAACuB,gBAAgB,CAAClG,KAAK;gBAC9D,IAAI,IAAI,CAACgJ,QAAQ,EAAErE,QAAQA,MAAMa,MAAM,CAAC,IAAI,CAACwD,QAAQ,CAAChJ,KAAK;gBAC3D,OAAO,AAAC2E,KAAK,CAAC,EAAE,GAAeA,KAAK,CAAC,EAAE,GACnC,AAAC9E,OAAO8E,OAAiC2H,OAAO,KAC/CzM,OAAO8E;YACd;;;YAEA;;;AAGF,GACE6H,KAAAA;mBAAAA,SAAAA;gBACE,IAAIC,SAAoB,EAAE;gBAC1B,IAAI,IAAI,CAACvG,gBAAgB,EACvBuG,SAASA,OAAOjH,MAAM,CACpBd,eAAeO,IAAI,CAAC,IAAI,EAAE,IAAI,CAACiB,gBAAgB,EAAE;gBAErD,IAAI,IAAI,CAAC8C,QAAQ,EACfyD,SAASA,OAAOjH,MAAM,CAACd,eAAeO,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC+D,QAAQ,EAAE;gBAClE,IAAI,IAAI,CAACnF,MAAM,KAAK,OAAO;oBACzB,IAAM6I,YACJD,OAAOtG,IAAI,CAAC,SAACjE;+BAAeD,WAAWC;0BACvCuK,OAAOtG,IAAI,CAAC,SAACjE;+BAAe,AAACA,IAAe;;oBAC9C,IAAIwK,WAAW;wBACb,IAAMC,WAAW5M,IAAI,AACnB,qBAAG,IAAI,CAACmG,gBAAgB,CAACzC,MAAM,GAAGsB,GAAG,CAACzC,KAAKI,GAAG,UAC9C,qBAAG,IAAI,CAACsG,QAAQ,CAACvF,MAAM;wBAEzB,gDAAgD;wBAChD,IAAI,CAACgJ,OAAO1J,QAAQ,CAAC4J,WAAW;4BAC9BF,OAAOG,MAAM,CACXH,OAAOI,SAAS,CAAC,SAAC3K;uCAAe,AAACA,IAAeyK;gCACjD,GACAA;wBAEJ;wBACA,2CAA2C;wBAC3C,IAAIF,OAAO1J,QAAQ,CAAC,CAAC4J,aAAcF,OAAO1J,QAAQ,CAAC4J,WAAW;4BAC5DF,OAAOG,MAAM,CAACH,OAAOK,OAAO,CAAC,CAACH,WAAY;wBAC5C;oBACF;gBACF;gBACA,OAAOF;YACT;;;YAEA;;;AAGF,GACEM,KAAAA;mBAAAA,SAAAA;gBACE,IACE;oBAAC;oBAAQ;oBAAW;oBAAS;iBAAO,CAAChK,QAAQ,CAAC,IAAI,CAACc,MAAM,KACzD,IAAI,CAACC,KAAK,CAACC,MAAM,IACjB,IAAI,CAACD,KAAK,CAACC,MAAM,GAAG,IAAI,CAACgF,MAAM,GAAG,GAClC;oBACA,OAAO,IAAI,CAAClF,MAAM,KAAK,SAAS,IAAI,CAACC,KAAK,CAACiB,GAAG,CAAC/D,QAAQ,IAAI,CAAC8C,KAAK;gBACnE;gBACA,IAAIa,QAAmB,EAAE;gBACzB,IAAI,IAAI,CAACuB,gBAAgB,EACvBvB,QAAQA,MAAMa,MAAM,CAClBd,eAAeO,IAAI,CAAC,IAAI,EAAE,IAAI,CAACiB,gBAAgB,EAAE;gBAErD,IAAI,IAAI,CAAC8C,QAAQ,EACfrE,QAAQA,MAAMa,MAAM,CAACd,eAAeO,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC+D,QAAQ,EAAE;gBAChE,IAAI,IAAI,CAACnF,MAAM,KAAK,SAASc,MAAM5B,QAAQ,CAAC,CAAC,MAAM4B,MAAM5B,QAAQ,CAAC,IAChE4B,MAAMiI,MAAM,CAACjI,MAAMmI,OAAO,CAAC,CAAC,IAAI;gBAClC,OAAOnI;YACT;;;YAEA;;;AAGF,GACE,8DAA8D;YAC9DqI,KAAAA;mBAAAA,SAAAA,cAAcC,KAAU;oBAAEC,OAAAA,iEAAgB;gBACxC,IAAiC,kBAAA,IAAI,CAACtF,SAAS,EAAxCoC,SAA0B,gBAA1BA,QAAQC,IAAkB,gBAAlBA,GAAGC,IAAe,gBAAfA,GAAGsB,WAAY,gBAAZA,UACnBC,SAAS,IAAI,CAACrE,OAAO,CAACoE,SAAS,EAC/BE,WAAW;oBAAC;oBAAO;iBAAO,CAAC3I,QAAQ,CAAC,IAAI,CAACwE,OAAO,IAC5C,IAAI,CAACC,YAAY,CAAC0C,EAAE,GAAG,IAAI,CAAC1C,YAAY,CAACwC,OAAO,GAAGyB,SACnD,IAAI,CAACjE,YAAY,CAAC0C,EAAE,GAAGuB,QAC3BpI,QAAQ6J,OACJ,IAAI,CAAChE,UAAU,IAAI,IAAI,CAACkD,YAAY,CAACnH,IAAI,CAAC,IAAI,IAC9C,IAAI,CAACmH,YAAY,CAACnH,IAAI,CAAC,IAAI,GAC/BtB,OAAO;oBAAC;oBAAO;iBAAO,CAACZ,QAAQ,CAAC,IAAI,CAACwE,OAAO,IAAIkE,SAAS,CAACA,QAC1D0B,QAAQ,IAAI,CAACtJ,MAAM,KAAK,SAAS,IAAI,CAACmF,QAAQ,CAAC4C,SAAS,KAAK,IAAI,GACjEwB,OAAO,cAAClL;2BAA+BmB,MAAMnB,EAAEmL,EAAE,IAAIF;;gBACvDF,MACGf,IAAI,CAACpL,SAAS,IAAI,CAAC8F,WAAW,EAC9BuF,IAAI,CAAC,AAAC,GAAI,OAAFlC,GAAE,MAAImD,MACdjB,IAAI,CAAC,AAAC,GAAI,OAAFlC,GAAE,MAAImD,MACdjB,IAAI,CAAC,AAAC,GAAI,OAAFjC,GAAE,MAAIwB,UACdS,IAAI,CAAC,AAAC,GAAI,OAAFjC,GAAE,MAAIgD,OAAOxB,WAAWA,WAAW/H;YAChD;;;YAEA;;;AAGF,GACE2J,KAAAA;mBAAAA,SAAAA,OAAOC,QAA0C;;;gBAC/C;;;AAGJ,GACI,IAAI,IAAI,CAAChH,OAAO,KAAK,KAAK,GAAG;oBAC3B,IAAI,CAACjG,MAAM,CACTA,OAAO,QACJkN,MAAM,CAAC,OACPrB,IAAI,CAAC,SAAS,AAAC,GAAc,OAAZ,IAAI,CAACpD,MAAM,EAAC,OAC7BoD,IAAI,CAAC,UAAU,AAAC,GAAe,OAAb,IAAI,CAACnF,OAAO,EAAC,OAC/ByC,IAAI;gBAEX;gBAEA,IAAMgE,aACJ,IAAI,CAAC9E,WAAW,IAAIpH,MAAM,CAAC,IAAI,CAACmM,OAAO,CAAC,IAAInM,MAAM,CAAC,QAAQ;gBAC7DnB,wBACEqN;gBAGF;;AAEJ,GACI,IAAoD,kBAAA,IAAI,CAAC7F,SAAS,EAA3DmC,QAA6C,gBAA7CA,OAAOC,SAAsC,gBAAtCA,QAAQC,IAA8B,gBAA9BA,GAAGC,IAA2B,gBAA3BA,GAAGyD,aAAwB,gBAAxBA,YAAYnC,WAAY,gBAAZA,UACtCoC,SAAS,AAAC,oBAA8B,OAAX,IAAI,CAACC,KAAK,GACvCC,OAAO;oBAAC;oBAAO;iBAAO,CAAC/K,QAAQ,CAAC,IAAI,CAACwE,OAAO,GAC5CwG,IAAI,IAAI,CAACtG,QAAQ,EACjBuG,SAAS,IAAI,CAACzH,OAAO,EACrB0H,aAAa;oBAACF;oBAAI,IAAI,CAAC,AAAC,IAAS,OAANhE,OAAsB,GAAcgE;iBAAE,EACjEhI,IAAIxF,aAAa2N,QAAQ,CAAC,IAAI,CAACvH,SAAS;gBAE1C,IAAMwH,YACJ,IAAI,CAAC/F,MAAM,KAAK,WACZ,IAAI,CAACC,YAAY,CAAC0C,CAAC,GACnB,IAAI,CAAC3C,MAAM,KAAK,SACd,IAAI,CAACC,YAAY,CAAC0B,MAAM,GACxB,IAAI,CAAC1B,YAAY,CAAC2C,WAAW;gBACrC,IAAMoD,UACJ,OAAOD,cAAc,aAAa;2BAAMA;oBAAYA;gBAEtD;;AAEJ,GACI,IAAME,SAAkC,IAAI,CAACjH,OAAO,GAAG;oBAAC8D,KAAK;oBAAGC,OAAO;oBAAGC,QAAQ;oBAAGC,MAAM;gBAAC;gBAE5F,8DAA8D;gBAC9D,IAAIoB,SAAgB,EAAE,EAAEzM,QAAe,EAAE,EAAE2E,QAAe,EAAE;gBAE5D;;AAEJ,GACI,IAAM2J,aAAa,IAAI,CAAChG,WAAW,GAC/B,IAAI,CAACA,WAAW,GAEhB,SAACpG;oBACC,IAAIqM,MAAMrM,MAAM;wBAAC;wBAAQ;wBAAW;qBAAQ,CAACa,QAAQ,CAAC,MAAKc,MAAM,GAAG;wBAClE,OAAO3B;oBACT,OAAO,IAAI,MAAK2B,MAAM,KAAK,QAAQ;wBACjC,IAAM2K,UAAU,AAAC,CAAA,MAAK1K,KAAK,CAACC,MAAM,GAAG,MAAKD,KAAK,GAAG,MAAK4C,OAAO,AAAD,EAC1D3B,GAAG,CAAC,SAAC0J;mCAAezN,KAAKyN;2BACzBnJ,MAAM,CAAC,SAACpD;mCAAiBA,AAAC,YAADA,GAAawM;2BACtC3C,IAAI,CAAC,SAACC,GAASC;mCAAY,CAACD,IAAI,CAACC;;wBACpC,OAAO5K,WAAWa,GAAGsM,SAASrO,YAAYoF,OAAO,CAC/C,OACAkI,WAAWkB,OAAO;oBAEtB,OAAO,IACL,MAAK9K,MAAM,KAAK,YAChB,MAAK4E,WAAW,KAAK,YACrB;wBACA,IAAMmG,MACJ,SAAO,MAAKlB,OAAO,MAAK,WACpB,MAAKA,OAAO,GACZpM,YAAY,CAAC,MAAKoM,OAAO,CAAC;wBAChC,IAAOmB,YAAuBD,IAAvBC,WAAWC,WAAYF,IAAZE;wBAClB,IAAMC,OAAO7M,KAAK,OAAO4M,QAAQ,CAAC,MAAKpG,SAAS,GAAG,EAAE,GAAG;wBACxD,IAAM0B,OAAOlI,IAAII,KAAKC,GAAG,CAAC,IAAI,IAAI,MAAKmG,SAAS;wBAChD,IAAMsG,SAAS5N,iBACbgJ,MACAwE,KACA,AAAC,KAA2B,OAAvBxE,KAAK6E,QAAQ,GAAGlL,MAAM,EAAC;wBAE9B,OAAO,AAAC,GAAW8K,OAATG,QAAqBD,OAAZF,WAAiB,OAALE;oBACjC,OAAO;wBACL,IAAM/J,WAAWL,KAAK,CAAC,EAAE,GAAGA,KAAK,CAAC,EAAE;wBACpC,IAAMuK,UAAUlK,WAAWL,MAAMZ,MAAM,GAAG,IAAI;wBAC9C,IAAMoL,UAAUnK,WAAW,IAAIL,MAAMZ,MAAM,GAAG;wBAC9C,IAAMqL,SACJ,MAAKtH,SAAS,KAAK,WACfnD,MAAMmI,OAAO,CAAC5K,OAAOgN,UACnB,MAAKnH,wBAAwB,GAC7BpD,MAAMmI,OAAO,CAAC5K,OAAOiN,UACnB,MAAKlH,wBAAwB,GAC7B,KACJ;wBACN,IAAMoH,SACJ,MAAKvH,SAAS,KAAK,WACfnD,MAAMmI,OAAO,CAAC5K,OAAOgN,UACnB,MAAKlH,wBAAwB,GAC7BrD,MAAMmI,OAAO,CAAC5K,OAAOiN,UACnB,MAAKjH,wBAAwB,GAC7B,KACJ;wBACN,OAAO,AAAC,GAAW9G,OAATgO,QAA6CC,OAApCjO,iBAAiBc,GAAG,MAAKwL,OAAO,GAAW,OAAP2B;oBACzD;gBACF;gBAEJ;;;AAGJ,GACI,8DAA8D;gBAC9D,IAAMC,WAAW;wBAACC,4EAAkB,OAAK1H,MAAM;oBAC7C;;;AAGN,GACM7H,QAAQuP,WAAWA,SAASC,KAAK,KAAK;wBAACvE;wBAAWA;qBAAU;oBAC5D,IAA2BgD,+BAAAA,gBAAtBwB,WAAsBxB,gBAAZyB,WAAYzB;oBAC3B,IAAI,OAAKpG,MAAM,EAAE;wBACf,IAAI,OAAKA,MAAM,CAAC,EAAE,KAAKoD,WAAWwE,WAAW,OAAK5H,MAAM,CAAC,EAAE;wBAC3D,IAAI,OAAKA,MAAM,CAAC,OAAKA,MAAM,CAAC9D,MAAM,GAAG,EAAE,KAAKkH,WAC1CyE,WAAW,OAAK7H,MAAM,CAAC,OAAKA,MAAM,CAAC9D,MAAM,GAAG,EAAE;oBAClD;oBACA,IAAI/D,KAAK,CAAC,EAAE,KAAKiL,aAAajL,KAAK,CAAC,EAAE,GAAGyP,UAAUzP,KAAK,CAAC,EAAE,GAAGyP;oBAC9D,IAAIzP,KAAK,CAAC,EAAE,KAAKiL,aAAajL,KAAK,CAAC,EAAE,GAAG0P,UAAU1P,KAAK,CAAC,EAAE,GAAG0P;oBAE9D,IAAMC,YAAYD,WAAWD;oBAC7B,IAAI,OAAK5L,MAAM,KAAK,aAAa,OAAK6C,OAAO,CAAC3C,MAAM,GAAG/D,MAAM+D,MAAM,EAAE;wBACnE,IAAIwL,aAAa,OAAK1H,MAAM,EAAE;4BAC5B,IAAM+H,UAAU,OAAKlJ,OAAO,CAAC3C,MAAM,GAAG;4BACtC/D,QAAQC,QAAQ2P,SACb7K,GAAG,CAAC,SAAC7C;uCAAclC,KAAK,CAAC,EAAE,GAAG2P,YAAazN,CAAAA,IAAK0N,CAAAA,UAAU,CAAA,CAAC;+BAC3DJ,KAAK,CAAC,GAAGI;4BACZ5P,QAAQA,MAAM+E,GAAG,CAAC,SAAC7C;uCAAcA,IAAIlC,KAAK,CAAC,EAAE,GAAG;;wBAClD,OAAO;4BACL,IAAM4P,WAAU,OAAKlJ,OAAO,CAAC3C,MAAM;4BACnC,IAAMJ,OAAO3D,KAAK,CAAC,EAAE,GAAGA,KAAK,CAAC,EAAE;4BAChCA,QAAQC,QAAQ2P,UAAS7K,GAAG,CAC1B,SAAC7C;uCAAclC,KAAK,CAAC,EAAE,GAAG2D,OAAQzB,CAAAA,IAAK0N,CAAAA,WAAU,CAAA,CAAC;;wBAEtD;oBACF;oBAEA;;;AAGN,GACM,IAAMvM,QAAQ,AAAC,QAEI,OAFG,OAAKQ,MAAM,CAC9BgM,MAAM,CAAC,GACPC,WAAW,IAA0B,OAArB,OAAKjM,MAAM,CAAC2L,KAAK,CAAC;oBAErC,IAAMO,gBAAgB,OAAKrJ,OAAO,CAAC8I,KAAK;oBAExC,8DAA8D;oBAC9D,OAAKxG,QAAQ,GAAG,AAAC3I,MAAc,CAACgD,MAAM,GACnCI,MAAM,CACL,OAAKI,MAAM,KAAK,SAASkM,cAAchL,GAAG,CAAC/D,QAAQ+O,eAEpD/P,KAAK,CAACA;oBAET,IAAI,OAAK8H,SAAS,KAAK,QAAQ;wBAC7B,IAAM5C,cAAc;4BAClB,IAAM8K,aAAa,oBAAC9N;gCAClB,IAAI+N,YAAY;oCACd,IAAI,CAAC/N,GAAG,OAAO;oCACf,IAAMgO,IAAI,AAAC,GAAI,OAAFhO,GAAIe,KAAK,CAAC;oCACvB,IAAIiN,GACF,OAAO,CAAC,AAAC,KAEG,OAFCC,MAAMD,CAAC,CAAC,EAAE,CAACnM,MAAM,GAAG,GAC9BoG,IAAI,CAAC,GACLiG,IAAI,CAAC,KAAI;gCAChB;gCACA,OAAO,AAAC,GAA0B,OAAxB9N,KAAKmC,KAAK,CAACnC,KAAKI,GAAG,CAACR,KAAM6B,MAAM;4BAC5C;4BACA,IAAMkM,aAAaF,cAAcM,KAAK,CACpC,SAACnO;uCAAcI,KAAKI,GAAG,CAACR,KAAK;;4BAE/B,IAAMoO,YAAY;gCAChBN,WAAWD,aAAa,CAAC,EAAE;gCAC3BC,WAAWD,aAAa,CAAC,EAAE;6BAC5B,CACEzK,MAAM,CAACiL,SACPxE,IAAI;4BACP,IAAMW,YACJqD,cAAc5J,IAAI,CAAC,SAACjE;uCAAcD,WAAWC;kCAC7C6N,cAAc5J,IAAI,CAAC,SAACjE;uCAAcA,IAAI;;4BACxC,IAAMsO,QACJF,UAAUvM,MAAM,KAAK,IACjBuM,SAAS,CAAC,EAAE,GACZA,SAAS,CAAC,EAAE,GAAG,KAAKA,SAAS,CAAC,EAAE,KAAKA,SAAS,CAAC,EAAE,GAC/CA,SAAS,CAAC,EAAE,GAAG,IACf,OAAKxI,SAAS,KAAK,aAAa,CAAC4E,YAC/B4D,SAAS,CAAC,EAAE,GAAG,AAACA,CAAAA,SAAS,CAAC,EAAE,GAAGA,SAAS,CAAC,EAAE,AAAD,IAAK,IAC/CxQ,IAAIwQ;4BACd,IAAIG,SACFD,QAAQ,IACJ3N,SAAS2N,SACT,CAAC,AAAC,IAEU,OAFPL,MAAM7N,KAAKE,KAAK,CAACK,SAAS2N,UAAU,GACtCrG,IAAI,CAAC,GACLiG,IAAI,CAAC;4BACd,IAAIK,UAAUnO,KAAKI,GAAG,CAACqN,aAAa,CAAC,EAAE,GAAGA,aAAa,CAAC,EAAE,GACxDU,UAAU;4BACZ,IAAMzL,WAAW+K,aAAa,CAAC,EAAE,GAAGA,aAAa,CAAC,EAAE;4BACpD,IAAMjL,YAAY;gCAChBxC,IAAI,CACF,OAAKwF,SAAS,KAAK,YACf9C,WACE,SACA,UACFA,WACE,UACA,OACP,CAAC+K,aAAa,CAAC,EAAE,GAAGU,UAAUA;gCAC/BnO,IAAI,CACF,OAAKwF,SAAS,KAAK,YACf9C,WACE,UACA,SACFA,WACE,SACA,QACP,CAAC+K,aAAa,CAAC,EAAE,GAAGU,UAAUA;6BAChC;4BACD,IAAI,OAAK5M,MAAM,KAAK,OAAO;gCACzB,IAAIiB,SAAS,CAAC,EAAE,KAAK,GAAGA,SAAS,CAAC,EAAE,GAAGiL,aAAa,CAAC,EAAE;gCACvD,IAAIjL,SAAS,CAAC,EAAE,KAAK,GAAGA,SAAS,CAAC,EAAE,GAAGiL,aAAa,CAAC,EAAE;4BACzD;4BACA,OAAK/G,QAAQ,CAACvF,MAAM,CAACqB,UAAUC,GAAG,CAAClC;wBACrC;wBAEA,IAAI,OAAKgB,MAAM,KAAK,UAAU;4BAC5BqB,YAAYD,IAAI;wBAClB,OAAO,IAAI,OAAKpB,MAAM,KAAK,OAAO;4BAChC,IAAM6M,YAAsB,EAAE;4BAC9B,IAAM1L,WAAW+K,aAAa,CAAC,EAAE,GAAGA,aAAa,CAAC,EAAE;4BACpDW,SAAS,CAAC,EAAE,GAAG,AACb,CAAA,OAAK5I,SAAS,KAAK,YACf7F,WAAW8N,aAAa,CAAC,EAAE,IACzB/K,WACE3C,WACAM,UACFqC,WACErC,UACAN,WACJJ,WAAW8N,aAAa,CAAC,EAAE,IACzB/K,WACErC,UACAN,WACF2C,WACE3C,WACAM,OAAM,EACdoN,aAAa,CAAC,EAAE;4BAClBW,SAAS,CAAC,EAAE,GAAG,AACb,CAAA,OAAK5I,SAAS,KAAK,WACf7F,WAAW8N,aAAa,CAAC,EAAE,IACzB/K,WACE3C,WACAM,UACFqC,WACErC,UACAN,WACJJ,WAAW8N,aAAa,CAAC,EAAE,IACzB/K,WACErC,UACAN,WACF2C,WACE3C,WACAM,OAAM,EACdoN,aAAa,CAAC,EAAE;4BAClB,IAAMY,cAAcD,SAAS,CAAC,EAAE,GAAGA,SAAS,CAAC,EAAE;4BAC/C,IACEA,SAAS,CAAC,EAAE,KAAKA,SAAS,CAAC,EAAE,IAC7BA,UAAUvK,IAAI,CAAC,SAACjE;uCAAcI,KAAKI,GAAG,CAACR,KAAK;kCAC5CyO,gBAAgB3L,UAChB;gCACA,OAAKgE,QAAQ,CAACvF,MAAM,CAACiN;4BACvB,OAAO;gCACLxL,YAAYD,IAAI;4BAClB;wBACF;oBACF;oBAEA,IAAI,OAAK+D,QAAQ,CAAC4B,OAAO,EAAE,OAAK5B,QAAQ,CAAC4B,OAAO,CAAC,OAAKzC,aAAa;oBACnE,IAAI,OAAKa,QAAQ,CAAC4H,YAAY,EAC5B,OAAK5H,QAAQ,CAAC4H,YAAY,CAAC,OAAKlJ,aAAa;oBAC/C,IAAI,OAAKsB,QAAQ,CAAC6H,YAAY,EAC5B,OAAK7H,QAAQ,CAAC6H,YAAY,CAAC,OAAKlJ,aAAa;oBAE/C;;;AAGN,GACM,OAAKzB,gBAAgB,GAAG;oBACxB,IAAI,OAAKrC,MAAM,KAAK,OAAO;wBACzB,IAAMJ,SAAS,OAAKuF,QAAQ,CAACvF,MAAM;wBACnC,IAAIA,MAAM,CAAC,EAAE,KAAK,GAAG;4BACnB,IAAMqN,iBAAiB/Q,IAAI;gCAACA,IAAI,OAAK+D,KAAK;gCAAGxB,KAAKI,GAAG,CAACe,MAAM,CAAC,EAAE;6BAAE;4BACjEA,MAAM,CAAC,EAAE,GACPqN,mBAAmB,KAAKA,mBAAmB,IACvC,OACAA,kBAAmB,IACjBzO,SAASyO,kBACT;4BACR,IAAI7O,WAAWwB,MAAM,CAAC,EAAE,GAAGA,MAAM,CAAC,EAAE,IAAI,CAAC;wBAC3C,OAAO,IAAIA,MAAM,CAACA,OAAOM,MAAM,GAAG,EAAE,KAAK,GAAG;4BAC1C,IAAM+M,kBAAiB/Q,IAAI;gCAACA,IAAI,OAAK+D,KAAK;gCAAGxB,KAAKI,GAAG,CAACe,MAAM,CAAC,EAAE;6BAAE;4BACjEA,MAAM,CAACA,OAAOM,MAAM,GAAG,EAAE,GACvB+M,oBAAmB,KAAKA,oBAAmB,IACvC,OACAA,mBAAmB,IACjBzO,SAASyO,mBACT;4BACR,IAAI7O,WAAWwB,MAAM,CAAC,EAAE,GAAGA,MAAM,CAACA,OAAOM,MAAM,GAAG,EAAE,IAAI,CAAC;wBAC3D;wBACA,IAAM/D,SAAQ,OAAKgJ,QAAQ,CAAChJ,KAAK;wBAEjC,gBAAgB;wBAChB,IAAIiC,WAAWwB,MAAM,CAAC,EAAE,KAAKxB,WAAWwB,MAAM,CAACA,OAAOM,MAAM,GAAG,EAAE,GAAG;4BAClE,OAAKmC,gBAAgB,GAAG,OAAK8C,QAAQ,CAClCnE,IAAI,GACJpB,MAAM,CAACA,QACPzD,KAAK,CAACA;4BACT,OAAKgJ,QAAQ,GAAG;wBAClB,OAEK,IAAIvF,MAAM,CAAC,EAAE,GAAG,KAAKA,MAAM,CAACA,OAAOM,MAAM,GAAG,EAAE,GAAG,GAAG;4BACvD,OAAKiF,QAAQ,CAACvF,MAAM,CAACA,QAAQzD,KAAK,CAACA;wBACrC,OAEK;4BACH,IAAMoF,SAAS3B,OACZsB,GAAG,CAAC,SAAC7C;uCAAcI,KAAKG,KAAK,CAACH,KAAKI,GAAG,CAACR;+BACvC6C,GAAG,CAAC,SAAC7C;uCAAcA,KAAK,CAAC;;4BAC5B,IAAM6O,iBAAiB3L,MAAM,CAAC,EAAE,GAAGlF,IAAIkF;4BACvC,IAAM4L,OAAOD,iBAAkB/Q,CAAAA,MAAK,CAAC,EAAE,GAAGA,MAAK,CAAC,EAAE,AAAD;4BAEjD,IAAIiR,cAAclR,IAAI;gCACpBA,IAAI,OAAK+D,KAAK,CAACwB,MAAM,CAAC,SAACpD;2CAAe,AAACA,KAAgB;;gCACvDI,KAAKI,GAAG,CAACe,MAAM,CAAC,EAAE;6BACnB;4BACD,IAAIwN,gBAAgB,GAAGA,cAAc;4BACrC,IAAIC,cAAcnR,IAAI;gCACpBA,IAAI,OAAK+D,KAAK,CAACwB,MAAM,CAACrD;gCACtBK,KAAKI,GAAG,CAACe,MAAM,CAAC,EAAE;6BACnB;4BACD,IAAIyN,gBAAgB,GAAGA,cAAc;4BACrC,IAAMC,YACJF,gBAAgB,IACZ,OACAA,eAAgB,IACd5O,SAAS4O,eACT;4BACR,IAAMG,YACJF,gBAAgB,IACZ,CAAC,OACDA,eAAgB,IACd7O,SAAS6O,eACT;4BACR,IAAMvE,WAAW5M,IAAI;gCAACuC,KAAKI,GAAG,CAACyO;gCAAY7O,KAAKI,GAAG,CAAC0O;6BAAW;4BAC/D,OAAKlL,gBAAgB,GAAG,OAAK8C,QAAQ,CAACnE,IAAI;4BACzC5C,CAAAA,WAAWwB,MAAM,CAAC,EAAE,IAAI,OAAKuF,QAAQ,GAAG,OAAK9C,gBAAgB,AAAD,EAC1DzC,MAAM,CAAC;gCAACxB,WAAWwB,MAAM,CAAC,EAAE,IAAIkJ,WAAW,CAACA;gCAAWlJ,MAAM,CAAC,EAAE;6BAAC,EACjEzD,KAAK,CAAC;gCAACA,MAAK,CAAC,EAAE,GAAGgR;gCAAMhR,MAAK,CAAC,EAAE;6BAAC;4BACnCiC,CAAAA,WAAWwB,MAAM,CAAC,EAAE,IAAI,OAAKyC,gBAAgB,GAAG,OAAK8C,QAAQ,AAAD,EAC1DvF,MAAM,CAAC;gCAACA,MAAM,CAAC,EAAE;gCAAExB,WAAWwB,MAAM,CAAC,EAAE,IAAI,CAACkJ,WAAYA;6BAAS,EACjE3M,KAAK,CAAC;gCAACA,MAAK,CAAC,EAAE;gCAAEA,MAAK,CAAC,EAAE,GAAGgR;6BAAK;wBACtC;oBACF;oBAEA;;;AAGN,GACMrM,QAAQ,AACN,CAAA,OAAK4D,MAAM,GACP,OAAK1E,MAAM,KAAK,SACd,AAAC,OAAK0E,MAAM,CAA6CxD,GAAG,CAAC/D,QAC7D,OAAKuH,MAAM,GACb,AAAC,CAAA,OAAKS,QAAQ,GAAG,OAAKA,QAAQ,CAACrE,KAAK,GAAG,OAAKuB,gBAAgB,CAACvB,KAAK,AAAD,IAC/D,OAAKoI,SAAS,KACd,OAAKrG,OAAO,AAAD,EACjB8I,KAAK;oBACP/C,SAAS,AACP,CAAA,OAAKtF,OAAO,GACR,OAAKtD,MAAM,KAAK,SACd,AAAC,OAAKsD,OAAO,CAA6CpC,GAAG,CAAC/D,QAC9D,OAAKmG,OAAO,GACd,AAAC,CAAA,OAAK6B,QAAQ,GAAG,OAAKA,QAAQ,CAACrE,KAAK,GAAG,OAAKuB,gBAAgB,CAACvB,KAAK,AAAD,IAC/D,OAAK6H,UAAU,KACf7H,KAAI,EACV6K,KAAK;oBAEP,IAAI,OAAK3L,MAAM,KAAK,QAAQ;wBAC1Bc,QAAQA,MAAMI,GAAG,CAACe;wBAClB2G,SAASA,OAAO1H,GAAG,CAACe;oBACtB;oBACAnB,QAAQA,MAAMoH,IAAI,CAChB,SAACC,GAAYC;+BAAe,OAAKG,YAAY,CAACJ,KAAK,OAAKI,YAAY,CAACH;;oBAEvEQ,SAASA,OAAOV,IAAI,CAClB,SAACC,GAAYC;+BAAe,OAAKG,YAAY,CAACJ,KAAK,OAAKI,YAAY,CAACH;;oBAGvE;;AAEN,GACM,IAAI,OAAKpI,MAAM,KAAK,YAAY,OAAK4E,WAAW,KAAK,YAAY;wBAC/D,IAAMqG,WAAWrC,OAAOnH,MAAM,CAAC,SAACpD;mCAAe,AAACA,KAAgB;;wBAChE,IAAI4M,SAAS/K,MAAM,GAAG,GAAG;gCACRzB;4BAAf,IAAM+O,SAAS/O,CAAAA,QAAAA,MAAKvC,GAAG,OAARuC,OAAS,qBAAGwM;4BAC3B,IAAI1K,IAAI;4BACR,MAAOA,KAAKA,IAAI,EAAG;gCACjB,IAAMD,IAAI7B,KAAKC,GAAG,CAAC,IAAI,IAAI6B;gCAC3B,IAAIiN,SAASlN,KAAK,GAAG;oCACnB,OAAKuE,SAAS,GAAGtE;oCACjBA,KAAK;gCACP,OAAO;oCACL;gCACF;4BACF;wBACF;oBACF;oBAEA;;AAEN,GACM,IAAMkN,SAA6B,EAAE;oBACrC,OAAKnI,eAAe,GAAGxE;oBACvBA,MAAM4M,OAAO,CAAC,SAACrP,GAAYkC;wBACzB,IAAIoN,IAAIpD,QAAQ;4BAACf,IAAInL;4BAAGkI,MAAM;wBAAI,GAAGhG;wBACrC,IAAI,OAAKgE,MAAM,KAAK,UAAUoJ,KAAK;wBACnC,IAAMzL,IAAI,OAAKqG,YAAY,CAAClK;wBAC5B,IAAI,CAACoP,OAAOvN,MAAM,IAAIzB,KAAKI,GAAG,CAAClB,QAAQuE,GAAGuL,OAAOhM,MAAM,CAAC,SAACyI;mCAAmBA,MAAM;8BAAWhI,KAAKyL,IAAI,GACpGF,OAAOjL,IAAI,CAACN;6BACTuL,OAAOjL,IAAI,CAAC;oBACnB;oBACA1B,QAAQA,MAAMW,MAAM,CAAC,SAACmM,IAAarN;+BAAckN,MAAM,CAAClN,EAAE,KAAK;;oBAC/D,OAAKgF,aAAa,GAAGzE;gBACvB;gBACA2K;gBAEA;;;AAGJ,GACI,IAAI,IAAI,CAAC1G,MAAM,EAAE;oBACf,IAA2C,qBAAA,IAAI,CAACE,YAAY,EAArDrH,aAAoC,mBAApCA,YAAYkJ,WAAwB,mBAAxBA,UAAU+G,aAAc,mBAAdA;oBAC7B,IAAMC,YAAYhQ,WACfF,UAAU,CACT,OAAOA,eAAe,aAAaA,eAAeA,YAEnDkJ,QAAQ,CAAC,OAAOA,aAAa,aAAaA,aAAaA,UACvD+G,UAAU,CACT,OAAOA,eAAe,aAAaA,eAAeA,YAEnD3H,KAAK,CAAC/J,KAAK,CAACA,MAAM+D,MAAM,GAAG,EAAE,GAAG/D,KAAK,CAAC,EAAE,GAAG+N,IAAI,EAChD,8DAA8D;qBAC7D/D,MAAM,CAAC,AAAC,IAAI,AAAQ,CAAC,AAAC,IAAU,OAAPA,QAAS,GAAG,IAAI,CAACxB,SAAS,GAAGuF,IAAI;oBAC7D,IAAMd,QAAQ0E,UAAU,IAAI,CAAC/I,MAAM,EAAEqE,KAAK,CAAClJ,MAAM;oBACjDsK,MAAM,CAAC,IAAI,CAAC9G,OAAO,CAAC,GAAG0F,QAAQ0E,UAAUD,UAAU,KAAM3D;gBAC3D;gBAEA,8DAA8D;gBAC9D,IAAI6D,QACA,IAAI,CAACxJ,MAAM,KAAK,WACZ,OAAO,IAAI,CAACC,YAAY,CAAC0C,CAAC,KAAK,aAC7B,IAAI,CAAC1C,YAAY,CAAC0C,CAAC,CAAC;oBAACX,MAAM;gBAAI,KAC/B,IAAI,CAAC/B,YAAY,CAAC0C,CAAC,GACrB,IAAI,CAAC3C,MAAM,KAAK,SACd,OAAO,IAAI,CAACC,YAAY,CAAC2B,OAAO,KAAK,aACnC,IAAI,CAAC3B,YAAY,CAAC2B,OAAO,CAAC;oBAACI,MAAM;gBAAI,KACrC,IAAI,CAAC/B,YAAY,CAAC2B,OAAO,GAC3B,IAAI,CAACxB,SAAS,EACtB,8DAA8D;gBAC9DqJ,QAAazD,QAAQ;oBAAChE,MAAM;gBAAI;gBAElC,IAAI,OAAOwH,UAAU,YAAYA,QAAQ9R,IAAI6E,MAAMI,GAAG,CAAC6M;gBACvD,IAAI,IAAI,CAACxJ,MAAM,KAAK,QAAQwJ,SAAS;gBACrC,IAAI,OAAOC,UAAU,YAAYA,QAAQ/R,IAAI6E,MAAMI,GAAG,CAAC8M;gBACvD,IAAI,IAAI,CAACzJ,MAAM,KAAK,UAAUyJ,SAAS;gBAEvC;;;AAGJ,GACI,8DAA8D;gBAC9D,IAAMC,qBAAqB,4BAACC;oBAC1B,IAAO7P,IAAmC6P,MAAnC7P,GAAGkC,IAAgC2N,MAAhC3N,GAAG4N,KAA6BD,MAA7BC,IAAIC,KAAyBF,MAAzBE,IAAIC,KAAqBH,MAArBG,IAAIC,SAAiBJ,MAAjBI,QAAQC,QAASL,MAATK;oBAEjC,IAAMC,IAAIF,SAAS,UAAU,UAC3BG,IAAIH,SAAS,WAAW;oBAE1B,IAAMI,QAAQxS,IAAI;wBAAC,MAAKsH,QAAQ;wBAAE,MAAK0B,MAAM;qBAAC;oBAC9C,IAAMyJ,QAAQzS,IAAI;wBAAC,MAAKsH,QAAQ;wBAAE,MAAKL,OAAO;qBAAC;oBAE/C,IAAMyL,OAAO9Q,WACVF,UAAU,CAACuQ,IACXrH,QAAQ,CAACuH,IACTR,UAAU,CACT,MAAKrJ,YAAY,CAACqJ,UAAU,GACxB,MAAKrJ,YAAY,CAACqJ,UAAU,CAACxP,GAAGkC,KAChC6G;oBAGRwH,IAAI,CAACH,EAAE,CACL3E,aACIyE,QACAG,QAASX,QAAQ7D,IAAI,MAAK3G,OAAO,CAACiE,IAAI,GAAG,MAAKjE,OAAO,CAAC+D,KAAK;oBAEjEsH,IAAI,CAACJ,EAAE,CACL1E,aACI6E,QAASZ,QAAQ7D,IAAI,MAAK3G,OAAO,CAAC8D,GAAG,GAAG,MAAK9D,OAAO,CAACgE,MAAM,GAC3DgH;oBAGN,IAAMM,MAAMD,KAAKnE,WAAWpM;oBAI5BwQ,IAAIzF,KAAK,GAAGyF,IAAIzF,KAAK,CAAC3H,MAAM,CAAC,SAACpD;+BAAcA,MAAM;;oBAElDwQ,IAAI3I,KAAK,GAAG2I,IAAIzF,KAAK,CAAClJ,MAAM,GAAGzB,KAAKM,IAAI,CAAC9C,IAAI4S,IAAIC,MAAM,KAAM;oBAE7DD,IAAI1I,MAAM,GAAG0I,IAAIzF,KAAK,CAAClJ,MAAM,GACzBzB,KAAKM,IAAI,CAAC8P,IAAIzF,KAAK,CAAClJ,MAAM,GAAI0O,KAAKf,UAAU,MAAiBO,KAC9D;oBAEJ,OAAOS;gBACT;gBAEA,4BAA4B,GAC5B,8DAA8D;gBAC9D,IAAME,kBAAkB;wBAACvO,uEAAa,EAAE;oBACtC,IAAIoH,SAAS;oBAEb,8DAA8D;oBAC9DpH,IAAIkN,OAAO,CAAC,SAACQ;wBACX,IAAMc,OAAOxO,GAAG,CAAC0N,MAAM3N,CAAC,GAAG,EAAE;wBAE7B,IAAMiO,IACF,AAACN,MAAMI,MAAM,IAAIxE,cAAgB,CAACoE,MAAMI,MAAM,IAAI,CAACxE,aAC/C,UACA,UACN2E,IACE,AAACP,MAAMI,MAAM,IAAIxE,cAAgB,CAACoE,MAAMI,MAAM,IAAI,CAACxE,aAC/C,WACA;wBAER,IAAI,CAACkF,MAAM;4BACTpH,SAAS;wBACX,OAAO,IACLoH,KAAKnH,QAAQ,GAAGmH,IAAI,CAACP,EAAE,GAAG,IAC1BP,MAAMrG,QAAQ,GAAGqG,KAAK,CAACO,EAAE,GAAG,GAC5B;4BACA,IAAI7G,QAAQ;gCACVsG,MAAMtG,MAAM,GAAGoH,IAAI,CAACR,EAAE;gCACtB5G,SAAS;4BACX,OAAOA,SAAS;wBAClB;oBACF;gBACF;gBAEA,8DAA8D;gBAC9D,IAAIqH,WAAkB,EAAE;gBACxB,IAAMC,iBAAiB;wBAACtH,0EAAiB;oBACvC,IAAM,AAACd,WAAY,OAAKtC,YAAY,CAACmC,WAAW,CAAzCG;oBACP,IAAMlJ,aACJ,OAAK4G,YAAY,CAACmC,WAAW,CAAC/I,UAAU,IAAIC;oBAC9C,IAAMsR,cAAc,OAAK3K,YAAY,CAACmC,WAAW,CAACI,OAAO;oBAEzD;;;AAGN,GACM,8DAA8D;oBAC9DkI,WAAWrG,OAAO1H,GAAG,CAAC,SAAC7C,GAAQkC;wBAC7B,IAAM4N,KACF,OAAOvQ,eAAe,aAAaA,WAAWS,GAAGkC,KAAK3C,YACxDwQ,KACE,OAAOe,gBAAgB,aAAaA,YAAY9Q,GAAGkC,KAAK4O,aAC1Dd,KAAK,OAAOvH,aAAa,aAAaA,SAASzI,GAAGkC,KAAKuG,UACvDe,WAAW,OAAKU,YAAY,CAAClK;wBAE/B,IAAMwP,aAAa,OAAKrJ,YAAY,CAACqJ,UAAU,GAC3C,OAAKrJ,YAAY,CAACqJ,UAAU,CAACxP,GAAGkC,KAChC8N,KAAK;wBACT,8DAA8D;wBAC9D,IAAMH,QAAa;4BACjB7P,GAAAA;4BACAkC,GAAAA;4BACA4N,IAAAA;4BACAC,IAAAA;4BACAC,IAAAA;4BACAR,YAAAA;4BACAhG,UAAAA;4BACAyG,QAAQ,OAAKjL,cAAc;wBAC7B;wBACA,OAAO6K;oBACT;oBAEA,IAAMkB,WACJ,OAAKpP,MAAM,KAAK,SACZ,OAAKmF,QAAQ,CAAC4C,SAAS,KAEvBkH,SAAS5O,MAAM,CAAC,SAACsN,GAAWtP,GAAQkC;wBAClC,IAAM,AAACsH,WAAYxJ,EAAZwJ;wBACP,IAAMwH,eAAe,CAAC9O,IAClB0O,SAAS/O,MAAM,KAAK,IAClBkK,UAAU,CAAC,EAAE,GACbvC,WAAYoH,CAAAA,QAAQ,CAAC1O,IAAI,EAAE,CAACsH,QAAQ,GAAGA,QAAO,IAChDA,WAAYA,CAAAA,WAAWoH,QAAQ,CAAC1O,IAAI,EAAE,CAACsH,QAAQ,AAAD;wBAClD,IAAMyH,YAAY7Q,KAAKI,GAAG,CAACgJ,WAAWwH;wBAEtC,IAAME,eACJhP,KAAK0O,SAAS/O,MAAM,GAAG,IACnB+O,SAAS/O,MAAM,KAAK,IAClBkK,UAAU,CAAC,EAAE,GACbvC,WAAYA,CAAAA,WAAWoH,QAAQ,CAAC1O,IAAI,EAAE,CAACsH,QAAQ,AAAD,IAChDA,WAAYA,CAAAA,WAAWoH,QAAQ,CAAC1O,IAAI,EAAE,CAACsH,QAAQ,AAAD;wBACpD,IAAM2H,YAAY/Q,KAAKI,GAAG,CAACgJ,WAAW0H;wBACtC,IAAMzN,MAAM,OAAK9B,MAAM,KAAK,UAAU,IAAI;wBAC1C,OAAO/D,IAAI;4BAACA,IAAI;gCAACqT;gCAAWE;6BAAU,IAAK1N;4BAAK6L;yBAAE;oBACpD,GAAG;oBAET,8DAA8D;oBAC9DsB,WAAWA,SAAS/N,GAAG,CAAC,SAACgN;wBACvBA,MAAMK,KAAK,GAAGa,WAAWlB,MAAME,EAAE,GAAG;wBACpC,IAAMS,MAAMZ,mBAAmBC;wBAC/B,OAAO5P,OAAOtB,MAAM,CAAC6R,KAAKX;oBAC5B;oBAEA,IAAMuB,kBAAkBR,SAAStD,KAAK,GAAGlD,OAAO;oBAChD,8DAA8D;oBAC9DwG,SAASvB,OAAO,CAAC,SAACQ;wBAChB,IAAOE,KAAmBF,MAAnBE,IAAI7N,IAAe2N,MAAf3N,GAAGsH,WAAYqG,MAAZrG;wBACd,IAAM6H,WAAW5F,aAAa,UAAU;wBACxC,8DAA8D;wBAC9D,IAAIkF,OAAYzO,IAEZkP,gBAAgBrN,IAAI,CAAC,SAACF;mCAAWA,EAAE3B,CAAC,GAAGA,KAAK,CAAC2B,EAAEyN,SAAS;6BACxD;wBACJ,IAAIpP,MAAM0O,SAAS/O,MAAM,GAAG,GAAG;4BAC7B,MACE8O,QACAnH,WAAWqG,KAAK,CAACwB,SAAS,GAAG,IAAItB,KAC/BY,KAAKnH,QAAQ,GAAGmH,IAAI,CAACU,SAAS,GAAG,EACnC;gCACAV,KAAKW,SAAS,GAAG;gCACjB,8DAA8D;gCAC9DX,OAAOS,gBAAgBrN,IAAI,CAAC,SAACF;2CAAWA,EAAE3B,CAAC,GAAGA,KAAK,CAAC2B,EAAEyN,SAAS;;4BACjE;wBACF;wBACAzB,MAAMyB,SAAS,GAAGX,OACdnH,WAAWqG,KAAK,CAACwB,SAAS,GAAG,IAAItB,KACjCY,KAAKnH,QAAQ,GAAGmH,IAAI,CAACU,SAAS,GAAG,IACjC;oBACN;oBAEA,IAAI9H,SAAS,GAAGmH,gBAAgBE;gBAClC;gBAEAC;gBACA,IAAMU,gBACJ,8DAA8D;gBAC9D,IAAI,CAACxM,YAAY,IAAI6L,SAAS3M,IAAI,CAAC,SAACjE;2BAAWA,EAAEsR,SAAS;;gBAC5D,IAAIC,eAAeV,eAAe;gBAElC;;;AAGJ,GACI,IAAMW,aAAa;oBAAC;oBAAG;iBAAE,CAAC3O,GAAG,CAAC,SAAC4O;oBAC7B,IAAM5B,QAAQe,QAAQ,CAACa,QAAQb,SAAS/O,MAAM,GAAG,IAAI,EAAE;oBACvD,IAAI,CAACgO,OAAO,OAAO;oBACnB,IAAO/H,AAAQ4J,UAA4C7B,MAApD/H,QAAiB0B,WAAmCqG,MAAnCrG,UAAUyG,SAAyBJ,MAAzBI,QAAQpI,AAAO8J,SAAU9B,MAAjBhI;oBAC1C,IAAM+J,eAAeH,QAAQ1F,UAAU,CAAC,EAAE,GAAGA,UAAU,CAAC,EAAE;oBAC1D,IAAM8F,YAAY,AAAC5B,CAAAA,UAAU,CAACxE,aAAaiG,UAAUC,MAAK,IAAK;oBAC/D,IAAIvR,KAAKI,GAAG,CAACgJ,WAAWoI,iBAAiBC,WAAW,OAAO;oBAC3D,IAAMC,QAAQD,YAAarI,CAAAA,WAAWoI,YAAW;oBACjD,OAAOxR,KAAKI,GAAG,CAACsR;gBAClB;gBAEA,IAAsBhU,0BAAAA,WAAfiU,QAAejU,WAARkN,OAAQlN;gBACtB,IAAMuP,WAAW;oBAAC0E,QAAQP,UAAU,CAAC,EAAE;oBAAExG,OAAOwG,UAAU,CAAC,EAAE;iBAAC;gBAC9D,IAAI,IAAI,CAAC7L,MAAM,EAAE;oBACf,IAAI,IAAI,CAACA,MAAM,CAAC,EAAE,KAAKoD,WAAWsE,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC1H,MAAM,CAAC,EAAE;oBAC9D,IAAI,IAAI,CAACA,MAAM,CAAC,IAAI,CAACA,MAAM,CAAC9D,MAAM,GAAG,EAAE,KAAKkH,WAC1CsE,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC1H,MAAM,CAAC,IAAI,CAACA,MAAM,CAAC9D,MAAM,GAAG,EAAE;gBACrD;gBAEA,IAAIwL,QAAQ,CAAC,EAAE,KAAK0E,SAAS1E,QAAQ,CAAC,EAAE,KAAKrC,MAAM;oBACjDoC,SAASC;oBACTwD,eAAeU,gBAAgB,IAAI;gBACrC;gBAEA,8DAA8D;gBAC9D,IAAMS,cAAcpU,IAAIgT,UAAU,SAAC/M;2BAAWA,EAAEiE,MAAM;sBAAK;gBAC3D,IAAI,CAAC9C,cAAc,GACjByG,cAAc,IAAI,CAACzG,cAAc,KAAK+D,YAElC6H,SAAS3M,IAAI,CAAC,SAAC4L;oBACb,IAAO3N,IAAsC2N,MAAtC3N,GAAG4F,AAAQmK,KAA2BpC,MAAnC/H,QAAY0B,WAAuBqG,MAAvBrG,UAAU8H,YAAazB,MAAbyB;oBAChC,IAAMX,OAAOC,QAAQ,CAAC1O,IAAI,EAAE;oBAC5B,OACEoP,aACCpP,KAAKyO,KAAKnH,QAAQ,GAAGmH,KAAK7I,MAAM,GAAG,IAAI0B,WAAWyI,KAAK;gBAE5D,KACA,IAAI,CAACjN,cAAc;gBAEzB,IAAMkN,eAAe,IAAI,CAACnN,YAAY,GAElCnH,IAAIgT,UAAU,SAAC5Q;2BAAWA,EAAEuJ,MAAM,IAAI;qBACtC;gBACJqH,SAASvB,OAAO,CACd,8DAA8D;gBAC9D,SAACQ;2BAAgBA,MAAMtG,MAAM,GAAGsG,MAAMtG,MAAM,GAAG2I,eAAe;;gBAGhE,IAAMC,QAAQ,IAAI,CAACjM,MAAM,KAAK,SAAS,IAAIwJ;oBAEF;gBADzC,8DAA8D;gBAC9D,IAAM0C,SAAe,IAAI,CAAC9M,YAAY,IAAG,WACvC,iBADuC,MACtCwC,QAEC,AADA,8DAA8D;gBAC7DlK,CAAAA,IAAIgT,UAAU,SAAC/M;2BACdzD,KAAKM,IAAI,CAACmD,CAAC,CAACA,EAAEoM,MAAM,IAAI,CAACxE,aAAa,UAAU,SAAS,GAAG5H,EAAE0F,MAAM;sBACjE,CAAA,IAAMqH,CAAAA,SAAS/O,MAAM,GAAGgK,IAAI,CAAA,IACnC,iBANuC,MAMtChE,OAAQkE,UAAU,CAACA,WAAWlK,MAAM,GAAG,EAAE,GAAGkK,UAAU,CAAC,EAAE,GAC1D,iBAPuC,MAOtChE,GAAIgE,UAAU,CAAC,EAAE,GAPqB;gBAUzCqG,MAAM,CAACtK,OAAO,GAAGlK,IAAI;oBAAC,IAAI,CAACwH,QAAQ;oBAAEgN,MAAM,CAACtK,OAAO;iBAAC;gBAEpDqE,MAAM,CAAC,IAAI,CAAC9G,OAAO,CAAC,IAAIqK;gBACxBvD,MAAM,CAAC7C,SAAS,GACd,IAAI,CAAC1E,SAAS,KAAKmE,YACfnL,IAAI;oBAAC,IAAI,CAACgH,SAAS;oBAAEuN;iBAAM,IAE3B,AAAC,IAAI,AAAQ,CAAC,AAAC,IAAU,OAAPrK,QAAS,GAC3BqE,MAAM,CAAC,IAAI,CAAC9G,OAAO,CAAC,GACpB+M,MAAM,CAACtK,OAAO,GACd+D;gBACNuG,MAAM,CAACtK,OAAO,IAAIqE,MAAM,CAAC7C,SAAS,GAAG6C,MAAM,CAAC,IAAI,CAAC9G,OAAO,CAAC;gBACzD+M,MAAM,CAACpK,EAAE,GACP,IAAI,CAAC1D,MAAM,KAAK,UACZ,IAAI,CAACiB,QAAQ,GACb,IAAI,CAACjB,MAAM,KAAK,QAEd,AAAC,IAAI,AAAQ,CAAC,AAAC,IAAU,OAAPwD,QAAS,GAAGsK,MAAM,CAACtK,OAAO,GAAG,IAAI,CAACvC,QAAQ,GAE5D,AAAC,IAAI,AAAQ,CAAC,AAAC,IAAU,OAAPuC,QAAS,GAAG,IAAIsK,MAAM,CAACtK,OAAO,GAAG;gBAE3D,IAAMuK,QAAQtT,KAAK,AAAC,iBAA2B,OAAX,IAAI,CAAC4M,KAAK,GAAI;oBAACG,QAAAA;gBAAM;gBACzD,IAAI,CAAC/E,MAAM,GAAGsL;gBAEd,IAAMC,OAAOvT,KAAK,UAAU;oBAAC+M,QAAQuG;gBAAK,GACvCE,SAAS,CAAC,QACVC,IAAI,CACH,AAAC,CAAA,IAAI,CAAC5N,SAAS,KAAK,IAChB,IAAI,CAACC,KAAK,IAAK,IAAI,CAAClD,MAAM,KAAK,SAAS,CAAC,IAAI,CAACgD,QAAQ,GACpD4F,SACA9H,QACF,EAAE,AAAD,EACHI,GAAG,CAAC,SAAC7C;2BAAgB;wBAACmL,IAAInL;oBAAC;oBAC7B,8DAA8D;gBAC9D,SAACA;2BAAWA,EAAEmL,EAAE;;gBAGpBmH,KACGG,IAAI,GACJpU,UAAU,CAACwF,GACXoG,IAAI,CAAC,WAAW,GAChBD,IAAI,CAAC,IAAI,CAACc,aAAa,CAAC/H,IAAI,CAAC,IAAI,GACjC2P,MAAM;gBAETJ,KACGK,KAAK,GACLrH,MAAM,CAAC,QACPrB,IAAI,CAAC,WAAW,GAChBA,IAAI,CAAC,aAAa,AAAC,QAAc,OAAPyB,QAAO,MACjC1B,IAAI,CAAC,IAAI,CAACc,aAAa,CAAC/H,IAAI,CAAC,IAAI,GAAG,MACpC6P,KAAK,CAACN,MACNjU,UAAU,CAACwF,GACXoG,IAAI,CAAC,WAAW,GAChBD,IAAI,CAAC,IAAI,CAACc,aAAa,CAAC/H,IAAI,CAAC,IAAI;gBAEpC,IAAM8P,YAAYtI,OAAOnH,MAAM,CAC7B,SAACpD,GAAYkC;2BAAc0O,QAAQ,CAAC1O,EAAE,CAAC6I,KAAK,CAAClJ,MAAM,IAAI,CAACY,MAAM5B,QAAQ,CAACb;;gBAGzE,8DAA8D;gBAC9D,IAAM8S,UAAUlC,SAAS3M,IAAI,CAAC,SAACjE;2BAAWA,EAAEiQ,MAAM;;gBAElD,8DAA8D;gBAC9D,IAAI8C,WAAkBtQ,MAAMa,MAAM,CAACuP,WAAWhQ,GAAG,CAAC,SAAC7C;oBACjD,8DAA8D;oBAC9D,IAAMwS,OAAO5B,SAAS7M,IAAI,CAAC,SAACiP;+BAAYA,GAAGhT,CAAC,KAAKA;;oBAEjD,IAAMkL,OAAO,MAAKhB,YAAY,CAAClK;oBAC/B,IAAMkQ,QAAQsC,OAAOA,KAAKtC,KAAK,GAAG;oBAClC,IAAMnF,QAAQyH,OAAOA,KAAKzH,KAAK,CAAClJ,MAAM,GAAG;oBACzC,IAAM2N,aAAagD,OAAOA,KAAKhD,UAAU,GAAG;oBAC5C,IAAMO,KAAKyC,OAAOA,KAAKzC,EAAE,GAAG;oBAE5B,IAAMkD,cAAcT,QAAQ,MAAKzN,YAAY,GAAGyN,KAAKjJ,MAAM,GAAG;oBAE9D,IAAM2J,aAAazH,aACfyE,QACAkC,OAAOvK,KAAK,GACZsE,MAAM,CAAC,MAAKzG,SAAS,CAAC4D,QAAQ,CAAC,GAC/BoG,QACAvD,MAAM,CAAC,MAAK9G,OAAO,CAAC,GACpBwG;oBAEJ,IAAMtC,SAAS4C,MAAM,CAAC7C,SAAS,EAC7B7H,OAAO,AAACiO,CAAAA,QAAQuD,WAAU,IAAMrH,CAAAA,OAAO,CAAC,IAAI,CAAA,GAC5CuH,OAAOvH,OAAOwG,MAAM,CAACpK,EAAE,GAAGoK,MAAM,CAACtK,OAAO,GAAGyB,SAAS6I,MAAM,CAACpK,EAAE,GAAGuB;wBAG1C;oBADxB,8DAA8D;oBAC9D,IAAM6J,cAAkB;wBACtBjI,IAAInL;wBACJqI,aACEyK,WAAWN,OACP;4BACEzK,GAAG,CAACyK,KAAK3K,KAAK,GAAG,IAAI2K,KAAKxC,EAAE,GAAG;4BAC/BhI,GACE,MAAK3C,OAAO,KAAK,WACb5D,OAAO,AAAC+Q,CAAAA,KAAK3K,KAAK,GAAG2H,aAAazE,KAAI,IAAK,IAAIgF,KAC/CtO,OAAO,IAAI,AAAC+Q,CAAAA,KAAK3K,KAAK,GAAG2H,aAAazE,KAAI,IAAK,IAAIgF;4BACzDlI,OAAO2K,KAAK3K,KAAK;4BACjBC,QAAQ0K,KAAK1K,MAAM;wBACrB,IACA;4BACEC,GAAG0D,aACC,CAACyE,QAAQ,IACT,MAAK7K,OAAO,KAAK,SACf,CAAC6N,aAAarH,IAAIpK,OAClBA,OAAOoK;4BACb7D,GAAGyD,aACC,MAAKpG,OAAO,KAAK,WACf5D,OAAOsO,KACPtO,OAAOuQ,cAAcjC,KACvB,CAACG,QAAQ;4BACbrI,OAAO4D,aAAayE,QAAQgD;4BAC5BpL,QAAQ2D,aAAauG,cAAc9B;wBACrC;wBACND,QAAQuC,OAAOA,KAAKvC,MAAM,GAAG;wBAC7BxO,MACE8I,OAAO1J,QAAQ,CAACb,MACf,MAAK2B,MAAM,KAAK,SAASvB,KAAKG,KAAK,CAACH,KAAKI,GAAG,CAACR,MAAM,MAAM,IACtDyB,OACAgB,MAAM5B,QAAQ,CAACb,KACbI,KAAKM,IAAI,CAACe,OAAO,KACjB,MAAKG,KAAK,CAACmC,IAAI,CAAC,SAACF;mCAAe,CAAEA,MAAiB7D;6BACjDI,KAAKM,IAAI,CAACe,OAAO,KACjB;wBACV2G,MACE,8DAA8D;wBAC9D,CAAC,AAACoK,CAAAA,QAAS,CAAC,CAAQ,EAAGlB,SAAS,IAAI/G,OAAO1J,QAAQ,CAACb,KAChDoM,WAAWpM,KACX;wBACNkI,MAAMzF,MAAM5B,QAAQ,CAACb;uBACrB,iBA3CsB,MA2CrB+H,GACCmD,OAAQ,CAAA,MAAKvJ,MAAM,KAAK,SAAS,MAAKmF,QAAQ,CAAC4C,SAAS,KAAK,IAAI,CAAA,IACnE,iBA7CsB,MA6CrB1B,GAAImL,OA7CiB;oBAgDxB,OAAOC;gBACT;gBAEA,IAAI,IAAI,CAAClN,MAAM,KAAK,QAAQ;oBAC1B6M,WAAWA,SAASzP,MAAM,CACxB,8DAA8D;oBAC9DyP,SAASlQ,GAAG,CAAC,SAAC7C;wBACZ,IAAMqT,OAAOpT,OAAOtB,MAAM,CAAC,CAAC,GAAGqB;wBAC/BqT,IAAI,CAACrL,EAAE,IAAIhI,EAAEyB,IAAI;wBACjB,OAAO4R;oBACT;gBAEJ;gBAEA,8DAA8D;gBAC9D,IAAI,AAAC1T,MAAc,CAAC,IAAI,CAACuG,MAAM,CAAC,GAC7BsM,IAAI,CAACO,UACL/G,QAAQ,CAAC,IAAI,CAACvH,SAAS,EACvB6D,WAAW,CAAC;oBACXgL,UAAU,SAAVA,SAAWtT;+BAAgBA,KAAK,AAACA,EAAa6B,MAAM,GAAG,AAAC,GAAI,OAAF7B,GAAE,SAAO;;oBACnE,8DAA8D;oBAC9DiQ,QAAQ,SAARA,OAASjQ;+BAAYA,EAAEiQ,MAAM,GAAG,CAAC,KAAK;;gBACxC,GACC7R,MAAM,CAACW,KAAK,WAAW;oBAAC+M,QAAQuG;gBAAK,GAAG9K,IAAI,GAC7C,8DAA8D;iBAC7DgM,MAAM,CAAC3T,WAAWmD,IAAI,CAAC,IAAI,EAAS,IAAI,CAACoD,YAAY,GACrDmC,WAAW,CAAC;oBAACI,SAAS;gBAAC,GACvB0C,MAAM;gBAET,IAAM/B,MAAMgJ,MAAME,SAAS,CAAC,YAAYC,IAAI,CAAC;oBAAC;iBAAK;gBAEnDnJ,IACGsJ,KAAK,GACLrH,MAAM,CAAC,QACPrB,IAAI,CAAC,SAAS,OACdA,IAAI,CAAC,WAAW,GAChBD,IAAI,CAAC,IAAI,CAACZ,YAAY,CAACrG,IAAI,CAAC,IAAI,GAChC6P,KAAK,CAACvJ,KACNhL,UAAU,CAACwF,GACXoG,IAAI,CAAC,WAAW,GAChBD,IAAI,CAAC,IAAI,CAACZ,YAAY,CAACrG,IAAI,CAAC,IAAI;gBAEnC,IAAI,CAAC4D,WAAW,CACb6L,IAAI,CAAC,IAAI,CAAC9L,MAAM,GAAG;oBAAC;wBAAC0B,MAAM,IAAI,CAAC1B,MAAM;oBAAA;iBAAE,GAAG,EAAE,EAC7CsF,QAAQ,CAAC,IAAI,CAACvH,SAAS,EACvBqD,MAAM,CAACqE,MAAM,CAAC,IAAI,CAAC9G,OAAO,CAAC,EAC3B4K,MAAM,CAAC,IAAI,CAAC5K,OAAO,KAAK,SAAS,CAAC,KAAK,IAAI,CAACA,OAAO,KAAK,UAAU,KAAK,GACvEjH,MAAM,CAACW,KAAK,uBAAuB;oBAAC+M,QAAQuG;gBAAK,GAAG9K,IAAI,IACxDa,IAAI,CAAE,SAACpI;2BAAiBA,EAAEoI,IAAI;mBAC9BQ,aAAa,CAAC,UACdf,KAAK,CAAC/J,KAAK,CAACA,MAAM+D,MAAM,GAAG,EAAE,GAAG/D,KAAK,CAAC,EAAE,EACxCiK,CAAC,CACA0D,aACI3N,KAAK,CAAC,EAAE,GACR,IAAI,CAACuH,OAAO,KAAK,SACf+M,OAAOrK,CAAC,GACRoE,OAAOhD,IAAI,GAAG,IACd,AAACrL,CAAAA,KAAK,CAACA,MAAM+D,MAAM,GAAG,EAAE,GAAG/D,KAAK,CAAC,EAAE,AAAD,IAAK,IACvCsU,OAAOrK,CAAC,GACRqK,OAAOvK,KAAK,GACZsE,OAAOlD,KAAK,GAAG,IACf,AAACnL,CAAAA,KAAK,CAACA,MAAM+D,MAAM,GAAG,EAAE,GAAG/D,KAAK,CAAC,EAAE,AAAD,IAAK,GAE9CkK,CAAC,CACAyD,aACI,IAAI,CAACpG,OAAO,KAAK,WACf+M,OAAOpK,CAAC,GAAGoK,OAAOtK,MAAM,GAAGqE,OAAOjD,MAAM,GACxCkJ,OAAOpK,CAAC,GACVlK,KAAK,CAAC,EAAE,GACN,AAACA,CAAAA,KAAK,CAACA,MAAM+D,MAAM,GAAG,EAAE,GAAG/D,KAAK,CAAC,EAAE,AAAD,IAAK,IACvCqO,MAAM,CAAC,IAAI,CAAC9G,OAAO,CAAC,GAAG,EAE/B,8DAA8D;iBAC7DkO,MAAM,CAAC3T,WAAWmD,IAAI,CAAC,IAAI,EAAS,IAAI,CAAC6D,YAAY,GACrDwE,MAAM;gBAET,IAAI,CAACpE,UAAU,GAAG,IAAI,CAACkD,YAAY,CAACnH,IAAI,CAAC,IAAI;gBAE7C,IAAIsI,UAAUmI,WAAWnI,UAAU,IAAI,CAAC5G,SAAS,GAAG;gBAEpD,OAAO,IAAI;YACb;;;YAOAgP,KAAAA;mBAAAA,SAAAA,MAAMC,CAAU;gBACd,OAAOC,UAAU9R,MAAM,GAAI,CAAA,AAAC,IAAI,CAACyC,MAAM,GAAGoP,GAAK,IAAI,AAAD,IAAK,IAAI,CAACpP,MAAM;YACpE;;;YAOAsP,KAAAA;mBAAAA,SAAAA,UAAUF,CAA2B;gBACnC,OAAOC,UAAU9R,MAAM,GAClB,CAAA,AAAC,IAAI,CAAC0C,UAAU,GAAGtE,OAAOtB,MAAM,CAAC,IAAI,CAAC4F,UAAU,EAAEmP,IAAK,IAAI,AAAD,IAC3D,IAAI,CAACnP,UAAU;YACrB;;;YASA,8DAA8D;YAC9DiO,KAAAA;mBAAAA,SAAAA,KAAKkB,CAAS;gBACZ,OAAOC,UAAU9R,MAAM,GAAI,CAAA,AAAC,IAAI,CAACD,KAAK,GAAG8R,GAAK,IAAI,AAAD,IAAK,IAAI,CAAC9R,KAAK;YAClE;;;YASA,8DAA8D;YAC9DL,KAAAA;mBAAAA,SAAAA,OAAOmS,CAAS;gBACd,OAAOC,UAAU9R,MAAM,GAAI,CAAA,AAAC,IAAI,CAAC2C,OAAO,GAAGkP,GAAK,IAAI,AAAD,IAAK,IAAI,CAAClP,OAAO;YACtE;;;YAOAwH,KAAAA;mBAAAA,SAAAA,SAAS0H,CAAU;gBACjB,OAAOC,UAAU9R,MAAM,GAAI,CAAA,AAAC,IAAI,CAAC4C,SAAS,GAAGiP,GAAK,IAAI,AAAD,IAAK,IAAI,CAACjP,SAAS;YAC1E;;;YAOA6N,KAAAA;mBAAAA,SAAAA,KAAKoB,CAAa;gBAChB,OAAOC,UAAU9R,MAAM,GAAI,CAAA,AAAC,IAAI,CAACgD,KAAK,GAAG6O,GAAI,IAAI,AAAD,IAAK,IAAI,CAAC7O,KAAK;YACjE;;;YAOAgP,KAAAA;mBAAAA,SAAAA,WAAWH,CAA2B;gBACpC,OAAOC,UAAU9R,MAAM,GAClB,CAAA,AAAC,IAAI,CAAC6C,WAAW,GAAGzE,OAAOtB,MAAM,CAAC,IAAI,CAAC+F,WAAW,EAAEgP,IAAK,IAAI,AAAD,IAC7D,IAAI,CAAChP,WAAW;YACtB;;;YAOAoP,KAAAA;mBAAAA,SAAAA,QAAQJ,CAAW;gBACjB,OAAOC,UAAU9R,MAAM,GAAI,CAAA,AAAC,IAAI,CAAC8C,QAAQ,GAAG+O,GAAK,IAAI,AAAD,IAAK,IAAI,CAAC/O,QAAQ;YACxE;;;YAOAoP,KAAAA;mBAAAA,SAAAA,SAASL,CAAU;gBACjB,OAAOC,UAAU9R,MAAM,GAAI,CAAA,AAAC,IAAI,CAAC+C,SAAS,GAAG8O,GAAI,IAAI,AAAD,IAAK,IAAI,CAAC9O,SAAS;YACzE;;;YAOAkD,KAAAA;mBAAAA,SAAAA,OAAO4L,CAAU;gBACf,OAAOC,UAAU9R,MAAM,GAAI,CAAA,AAAC,IAAI,CAACiD,OAAO,GAAG4O,GAAK,IAAI,AAAD,IAAK,IAAI,CAAC5O,OAAO;YACtE;;;YAOAyF,KAAAA;mBAAAA,SAAAA,OAAOmJ,CAAa;gBAClB,OAAOC,UAAU9R,MAAM,GAAI,CAAA,AAAC,IAAI,CAACoD,OAAO,GAAGyO,GAAI,IAAI,AAAD,IAAK,IAAI,CAACzO,OAAO;YACrE;;;YAOAgO,KAAAA;mBAAAA,SAAAA,YAAYS,CAAW;gBACrB,OAAOC,UAAU9R,MAAM,GAClB,CAAA,AAAC,IAAI,CAACkD,YAAY,GAAG2O,GAAK,IAAI,AAAD,IAC9B,IAAI,CAAC3O,YAAY;YACvB;;;YAOAiP,KAAAA;mBAAAA,SAAAA,cAAcN,CAAW;gBACvB,OAAOC,UAAU9R,MAAM,GAClB,CAAA,AAAC,IAAI,CAACmD,cAAc,GAAG0O,GAAI,IAAI,AAAD,IAC/B,IAAI,CAAC1O,cAAc;YACzB;;;YAOAiP,KAAAA;mBAAAA,SAAAA,QAAQP,CAAU;gBAChB,OAAOC,UAAU9R,MAAM,GAAI,CAAA,AAAC,IAAI,CAACsD,QAAQ,GAAGuO,GAAK,IAAI,AAAD,IAAK,IAAI,CAACvO,QAAQ;YACxE;;;YAOA+O,KAAAA;mBAAAA,SAAAA,QAAQR,CAAU;gBAChB,OAAOC,UAAU9R,MAAM,GAAI,CAAA,AAAC,IAAI,CAACuD,QAAQ,GAAGsO,GAAK,IAAI,AAAD,IAAK,IAAI,CAACtO,QAAQ;YACxE;;;YAOAwC,KAAAA;mBAAAA,SAAAA,OAAO8L,CAAU;gBACf,IAAIC,UAAU9R,MAAM,EAAE;oBACpB,IAAM4J,aAAa;wBAAC;wBAAO;qBAAS,CAAC5K,QAAQ,CAAC6S,IAC5CS,OAA+B;wBAC7BnL,KAAK;wBACLC,OAAO;wBACPC,QAAQ;wBACRC,MAAM;oBACR;oBAEF,IAAI,CAACzD,SAAS,GAAG;wBACf+F,YAAAA;wBACA5D,OAAO4D,aAAa,UAAU;wBAC9B3D,QAAQ2D,aAAa,WAAW;wBAChC1D,GAAG0D,aAAa,MAAM;wBACtBzD,GAAGyD,aAAa,MAAM;wBACtBnC,UAAU6K,IAAI,CAACT,EAAG;oBACpB;oBAEA,OAAQ,AAAC,IAAI,CAACrO,OAAO,GAAGqO,GAAK,IAAI;gBACnC;gBACA,OAAO,IAAI,CAACrO,OAAO;YACrB;;;YAEA;;;;AAIF,GACE+O,KAAAA;mBAAAA,SAAAA;gBACE,OAAO,IAAI,CAAC9O,YAAY;YAC1B;;;YAOAoD,KAAAA;mBAAAA,SAAAA,QAAQgL,CAAU;gBAChB,OAAOC,UAAU9R,MAAM,GAAI,CAAA,AAAC,IAAI,CAAC0D,QAAQ,GAAGmO,GAAK,IAAI,AAAD,IAAK,IAAI,CAACnO,QAAQ;YACxE;;;YAOAmJ,KAAAA;mBAAAA,SAAAA,aAAagF,CAAU;gBACrB,OAAOC,UAAU9R,MAAM,GAClB,CAAA,AAAC,IAAI,CAAC2D,aAAa,GAAGkO,GAAK,IAAI,AAAD,IAC/B,IAAI,CAAClO,aAAa;YACxB;;;YAOAmJ,KAAAA;mBAAAA,SAAAA,aAAa+E,CAAU;gBACrB,OAAOC,UAAU9R,MAAM,GAClB,CAAA,AAAC,IAAI,CAAC4D,aAAa,GAAGiO,GAAK,IAAI,AAAD,IAC/B,IAAI,CAACjO,aAAa;YACxB;;;YAOA3H,KAAAA;mBAAAA,SAAAA,MAAM4V,CAA0B;gBAC9B,OAAOC,UAAU9R,MAAM,GAAI,CAAA,AAAC,IAAI,CAAC8D,MAAM,GAAG+N,GAAI,IAAI,AAAD,IAAK,IAAI,CAAC/N,MAAM;YACnE;;;YAOA0O,KAAAA;mBAAAA,SAAAA,SAASX,CAAU;gBACjB,OAAOC,UAAU9R,MAAM,GAAI,CAAA,AAAC,IAAI,CAAC+D,SAAS,GAAG8N,GAAK,IAAI,AAAD,IAAK,IAAI,CAAC9N,SAAS;YAC1E;;;YAOA0O,KAAAA;mBAAAA,SAAAA,wBAAwBZ,CAAU;gBAChC,OAAOC,UAAU9R,MAAM,GAClB,CAAA,AAAC,IAAI,CAACgE,wBAAwB,GAAG6N,GAAK,IAAI,AAAD,IAC1C,IAAI,CAAC7N,wBAAwB;YACnC;;;YAOA0O,KAAAA;mBAAAA,SAAAA,wBAAwBb,CAAU;gBAChC,OAAOC,UAAU9R,MAAM,GAClB,CAAA,AAAC,IAAI,CAACiE,wBAAwB,GAAG4N,GAAK,IAAI,AAAD,IAC1C,IAAI,CAAC5N,wBAAwB;YACnC;;;YAOA0O,KAAAA;mBAAAA,SAAAA,wBAAwBd,CAAU;gBAChC,OAAOC,UAAU9R,MAAM,GAClB,CAAA,AAAC,IAAI,CAACkE,wBAAwB,GAAG2N,GAAK,IAAI,AAAD,IAC1C,IAAI,CAAC3N,wBAAwB;YACnC;;;YAOA0O,KAAAA;mBAAAA,SAAAA,wBAAwBf,CAAU;gBAChC,OAAOC,UAAU9R,MAAM,GAClB,CAAA,AAAC,IAAI,CAACmE,wBAAwB,GAAG0N,GAAK,IAAI,AAAD,IAC1C,IAAI,CAAC1N,wBAAwB;YACnC;;;YAOA7E,KAAAA;mBAAAA,SAAAA,MAAMuS,CAAU;gBACd,OAAOC,UAAU9R,MAAM,GAAI,CAAA,AAAC,IAAI,CAACF,MAAM,GAAG+R,GAAK,IAAI,AAAD,IAAK,IAAI,CAAC/R,MAAM;YACpE;;;YAOA+S,KAAAA;mBAAAA,SAAAA,aAAahB,CAAU;gBACrB,OAAOC,UAAU9R,MAAM,GAClB,CAAA,AAAC,IAAI,CAACoE,aAAa,GAAGyN,GAAK,IAAI,AAAD,IAC/B,IAAI,CAACzN,aAAa;YACxB;;;YAOA7H,KAAAA;mBAAAA,SAAAA,QAAOsV,CAAwB;gBAC7B,OAAOC,UAAU9R,MAAM,GAClB,CAAA,AAAC,IAAI,CAACwC,OAAO,GAAGjG,OAAOsV,IAAwC,IAAI,AAAD,IACnE,IAAI,CAACrP,OAAO;YAClB;;;YAOAsQ,KAAAA;mBAAAA,SAAAA,MAAMjB,CAAU;gBACd,OAAOC,UAAU9R,MAAM,GAAI,CAAA,AAAC,IAAI,CAACqE,MAAM,GAAGwN,GAAK,IAAI,AAAD,IAAK,IAAI,CAACxN,MAAM;YACpE;;;YASA,8DAA8D;YAC9D0O,KAAAA;mBAAAA,SAAAA,YAAYlB,CAAuB;gBACjC,OAAOC,UAAU9R,MAAM,GAClB,CAAA,AAAC,IAAI,CAACsE,YAAY,GAAGxH,OAAO,IAAI,CAACwH,YAAY,EAAEuN,IAAgC,IAAI,AAAD,IACnF,IAAI,CAACvN,YAAY;YACvB;;;YASA,8DAA8D;YAC9DiG,KAAAA;mBAAAA,SAAAA,WAAWsH,CAAO;gBAChB,OAAOC,UAAU9R,MAAM,GAAI,CAAA,AAAC,IAAI,CAACuE,WAAW,GAAGsN,GAAI,IAAI,AAAD,IAAK,IAAI,CAACtN,WAAW;YAC7E;;;YAOA3D,KAAAA;mBAAAA,SAAAA,MAAMiR,CAAa;gBACjB,OAAOC,UAAU9R,MAAM,GAAI,CAAA,AAAC,IAAI,CAACwE,MAAM,GAAGqN,GAAI,IAAI,AAAD,IAAK,IAAI,CAACrN,MAAM;YACnE;;;YAOAwO,KAAAA;mBAAAA,SAAAA,SAASnB,CAAU;gBACjB,OAAOC,UAAU9R,MAAM,GAAI,CAAA,AAAC,IAAI,CAACyE,SAAS,GAAGoN,GAAK,IAAI,AAAD,IAAK,IAAI,CAACpN,SAAS;YAC1E;;;YAOAwO,KAAAA;mBAAAA,SAAAA,WAAWpB,CAAU;gBACnB,OAAOC,UAAU9R,MAAM,GAClB,CAAA,AAAC,IAAI,CAAC0E,WAAW,GAAGmN,GAAK,IAAI,AAAD,IAC7B,IAAI,CAACnN,WAAW;YACtB;;;YAOAgF,KAAAA;mBAAAA,SAAAA,WAAWmI,CAA2B;gBACpC,OAAOC,UAAU9R,MAAM,GAAI,CAAA,AAAC,IAAI,CAAC4E,WAAW,GAAGiN,GAAI,IAAI,AAAD,IAAK,IAAI,CAACjN,WAAW;YAC7E;;;YAOAsO,KAAAA;mBAAAA,SAAAA,MAAMrB,CAAU;gBACd,OAAOC,UAAU9R,MAAM,GAAI,CAAA,AAAC,IAAI,CAAC6E,MAAM,GAAGgN,GAAI,IAAI,AAAD,IAAK,IAAI,CAAChN,MAAM;YACnE;;;YAOAsO,KAAAA;mBAAAA,SAAAA,YAAYtB,CAA2B;gBACrC,OAAOC,UAAU9R,MAAM,GAClB,CAAA,AAAC,IAAI,CAAC+E,YAAY,GAAG3G,OAAOtB,MAAM,CAAC,IAAI,CAACiI,YAAY,EAAE8M,IAAK,IAAI,AAAD,IAC/D,IAAI,CAAC9M,YAAY;YACvB;;;YAOAiB,KAAAA;mBAAAA,SAAAA,MAAM6L,CAAU;gBACd,OAAOC,UAAU9R,MAAM,GAAI,CAAA,AAAC,IAAI,CAACgF,MAAM,GAAG6M,GAAK,IAAI,AAAD,IAAK,IAAI,CAAC7M,MAAM;YACpE;;;WA5rDmBzC;EAAavE;AAHlC;;AAEA,GACA,SAAqBuE,kBA6rDpB"}
@@ -73,3 +73,5 @@ var AxisBottom = /*#__PURE__*/ function(Axis) {
73
73
  /**
74
74
  Shorthand method for creating an axis where the ticks are drawn below the horizontal domain path. Extends all functionality of the base [Axis](#Axis) class.
75
75
  */ export { AxisBottom as default };
76
+
77
+ //# sourceMappingURL=AxisBottom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/AxisBottom.ts"],"sourcesContent":["import {default as Axis} from \"./Axis.js\";\n\n/**\n Shorthand method for creating an axis where the ticks are drawn below the horizontal domain path. Extends all functionality of the base [Axis](#Axis) class.\n*/\nexport default class AxisBottom extends Axis {\n /**\n Invoked when creating a new class instance, and overrides any default parameters inherited from Axis.\n @private\n */\n constructor() {\n super();\n this.orient(\"bottom\");\n }\n}\n"],"names":["default","Axis","AxisBottom","orient"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAQA,WAAWC,IAAI,QAAO,YAAY;AAK3B,IAAA,AAAMC,2BAAN;;cAAMA;aAAAA;gCAAAA;;gBAMjB,kBANiBA;QAOjB,MAAKC,MAAM,CAAC;;;WAPKD;EAAmBD;AAHxC;;AAEA,GACA,SAAqBC,wBASpB"}
@@ -73,3 +73,5 @@ var AxisLeft = /*#__PURE__*/ function(Axis) {
73
73
  /**
74
74
  Shorthand method for creating an axis where the ticks are drawn to the left of the vertical domain path. Extends all functionality of the base [Axis](#Axis) class.
75
75
  */ export { AxisLeft as default };
76
+
77
+ //# sourceMappingURL=AxisLeft.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/AxisLeft.ts"],"sourcesContent":["import {default as Axis} from \"./Axis.js\";\n\n/**\n Shorthand method for creating an axis where the ticks are drawn to the left of the vertical domain path. Extends all functionality of the base [Axis](#Axis) class.\n*/\nexport default class AxisLeft extends Axis {\n /**\n Invoked when creating a new class instance, and overrides any default parameters inherited from Axis.\n @private\n */\n constructor() {\n super();\n this.orient(\"left\");\n }\n}\n"],"names":["default","Axis","AxisLeft","orient"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAQA,WAAWC,IAAI,QAAO,YAAY;AAK3B,IAAA,AAAMC,yBAAN;;cAAMA;aAAAA;gCAAAA;;gBAMjB,kBANiBA;QAOjB,MAAKC,MAAM,CAAC;;;WAPKD;EAAiBD;AAHtC;;AAEA,GACA,SAAqBC,sBASpB"}
@@ -73,3 +73,5 @@ var AxisRight = /*#__PURE__*/ function(Axis) {
73
73
  /**
74
74
  Shorthand method for creating an axis where the ticks are drawn to the right of the vertical domain path. Extends all functionality of the base [Axis](#Axis) class.
75
75
  */ export { AxisRight as default };
76
+
77
+ //# sourceMappingURL=AxisRight.js.map