drizzle-cube 0.8.1 → 0.8.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 (263) hide show
  1. package/dist/adapters/ActivityGridChart.config-Bu5lf3M0.js +2 -0
  2. package/dist/adapters/ActivityGridChart.config-NSLCFzvM.cjs +1 -0
  3. package/dist/adapters/AreaChart.config-Bv7qJYd0.cjs +1 -0
  4. package/dist/adapters/AreaChart.config-DexPQDQp.js +2 -0
  5. package/dist/adapters/BarChart.config-Br0vyPO0.js +2 -0
  6. package/dist/adapters/BarChart.config-Dc1FHoux.cjs +1 -0
  7. package/dist/adapters/BoxPlotChart.config-C_j-wp0l.cjs +1 -0
  8. package/dist/adapters/BoxPlotChart.config-Dz9P8ck_.js +2 -0
  9. package/dist/adapters/BubbleChart.config-e6hABmpk.js +2 -0
  10. package/dist/adapters/BubbleChart.config-ro80CWd_.cjs +1 -0
  11. package/dist/adapters/CandlestickChart.config-Btzcen-6.cjs +1 -0
  12. package/dist/adapters/CandlestickChart.config-BzAPnbp4.js +2 -0
  13. package/dist/adapters/DataTable.config-RNGMSueS.cjs +1 -0
  14. package/dist/adapters/DataTable.config-enzxzWhP.js +2 -0
  15. package/dist/adapters/DotStripChart.config-C3FEV6Ys.js +2 -0
  16. package/dist/adapters/DotStripChart.config-DhODtwbu.cjs +1 -0
  17. package/dist/adapters/FunnelChart.config-CX1DFABr.cjs +1 -0
  18. package/dist/adapters/FunnelChart.config-DXg1N0FP.js +2 -0
  19. package/dist/adapters/GaugeChart.config-Dl2DrFSl.cjs +1 -0
  20. package/dist/adapters/GaugeChart.config-oiPzrfGx.js +2 -0
  21. package/dist/adapters/HeatMapChart.config-B9SrePWx.js +2 -0
  22. package/dist/adapters/HeatMapChart.config-CTwcA2aU.cjs +1 -0
  23. package/dist/adapters/KpiDelta.config-CgZQueiY.js +2 -0
  24. package/dist/adapters/KpiDelta.config-eybdn0eH.cjs +1 -0
  25. package/dist/adapters/KpiNumber.config-Ce2piJuC.js +2 -0
  26. package/dist/adapters/KpiNumber.config-h_KXh89X.cjs +1 -0
  27. package/dist/adapters/KpiText.config-CLk6a0TW.cjs +1 -0
  28. package/dist/adapters/KpiText.config-_g2gpg2d.js +2 -0
  29. package/dist/adapters/LineChart.config-C3MQKW5U.cjs +1 -0
  30. package/dist/adapters/LineChart.config-CA4b1Xt-.js +2 -0
  31. package/dist/adapters/MarkdownChart.config-B4lCc0_v.js +2 -0
  32. package/dist/adapters/MarkdownChart.config-waq3gxEs.cjs +1 -0
  33. package/dist/adapters/MeasureProfileChart.config-B1LrfeP-.js +2 -0
  34. package/dist/adapters/MeasureProfileChart.config-Djka_dSU.cjs +1 -0
  35. package/dist/adapters/PieChart.config-BfSLFe9d.js +2 -0
  36. package/dist/adapters/PieChart.config-D5ixLlYJ.cjs +1 -0
  37. package/dist/adapters/ProportionBarChart.config-CRWy5aME.cjs +1 -0
  38. package/dist/adapters/ProportionBarChart.config-nyP6m6i0.js +2 -0
  39. package/dist/adapters/RadarChart.config-B7C-0wYa.cjs +1 -0
  40. package/dist/adapters/RadarChart.config-COzBFXrA.js +2 -0
  41. package/dist/adapters/RadialBarChart.config-C50IqzNQ.js +2 -0
  42. package/dist/adapters/RadialBarChart.config-LTSl-xoA.cjs +1 -0
  43. package/dist/adapters/RecordsTable.config-BHWD9CBE.js +2 -0
  44. package/dist/adapters/RecordsTable.config-DnY_PByk.cjs +1 -0
  45. package/dist/adapters/RetentionCombinedChart.config-CObWpIId.cjs +1 -0
  46. package/dist/adapters/RetentionCombinedChart.config-DxPk1BaI.js +2 -0
  47. package/dist/adapters/RetentionHeatmap.config-CHZiVXVo.cjs +1 -0
  48. package/dist/adapters/RetentionHeatmap.config-Ckoiq5Jo.js +2 -0
  49. package/dist/adapters/SankeyChart.config-CVoAarnp.cjs +1 -0
  50. package/dist/adapters/SankeyChart.config-D2R8E5Ss.js +2 -0
  51. package/dist/adapters/ScatterChart.config-BE_J_t4r.js +2 -0
  52. package/dist/adapters/ScatterChart.config-DsVSbcSc.cjs +1 -0
  53. package/dist/adapters/SunburstChart.config-BLtPPPli.cjs +1 -0
  54. package/dist/adapters/SunburstChart.config-DrnmHxNQ.js +2 -0
  55. package/dist/adapters/TreeMapChart.config-4p3cVWIy.js +2 -0
  56. package/dist/adapters/TreeMapChart.config-DkRO8LYG.cjs +1 -0
  57. package/dist/adapters/WaterfallChart.config-CKi4zg3x.cjs +1 -0
  58. package/dist/adapters/WaterfallChart.config-DuUXmAyw.js +2 -0
  59. package/dist/adapters/{compiler-CBGD_4Et.js → compiler-BFLAXV7W.js} +1 -1
  60. package/dist/adapters/{compiler-BxZHh0UD.cjs → compiler-DG6dLFQU.cjs} +1 -1
  61. package/dist/adapters/core/index.cjs +1 -1
  62. package/dist/adapters/core/index.js +1 -1
  63. package/dist/adapters/{core-DAAnqPyN.js → core-BBtbwMwR.js} +2 -2
  64. package/dist/adapters/{core-CIGuwGuI.cjs → core-DnUv8WiY.cjs} +1 -1
  65. package/dist/adapters/express/index.cjs +1 -1
  66. package/dist/adapters/express/index.js +5 -5
  67. package/dist/adapters/fastify/index.cjs +1 -1
  68. package/dist/adapters/fastify/index.js +5 -5
  69. package/dist/adapters/{handler-eA0VJDHj.js → handler-_xh4X1OO.js} +215 -95
  70. package/dist/adapters/{handler-BcYTw6zB.cjs → handler-l75Hbzv3.cjs} +9 -9
  71. package/dist/adapters/hono/index.cjs +1 -1
  72. package/dist/adapters/hono/index.js +4 -4
  73. package/dist/adapters/mcp-tools.cjs +1 -1
  74. package/dist/adapters/mcp-tools.js +2 -2
  75. package/dist/adapters/mcp-transport-BOfhj01O.js +730 -0
  76. package/dist/adapters/mcp-transport-Dl5bn6h4.cjs +42 -0
  77. package/dist/adapters/nextjs/index.cjs +1 -1
  78. package/dist/adapters/nextjs/index.js +5 -5
  79. package/dist/adapters/{openai-CYYjUG_3.js → openai-BJyU4kvE.js} +1 -1
  80. package/dist/adapters/{openai-Bw1j-OiP.cjs → openai-DH9MtcLA.cjs} +1 -1
  81. package/dist/adapters/{openai-BZ48ioYp.js → openai-DK_KWiI7.js} +1 -1
  82. package/dist/adapters/{openai-CLjyL5_J.cjs → openai-GO3M7Hwi.cjs} +1 -1
  83. package/dist/adapters/{utils-BagURNRb.js → utils-BhlkVCzZ.js} +38 -0
  84. package/dist/adapters/utils-C1JpSDOX.cjs +128 -0
  85. package/dist/adapters/utils.cjs +1 -1
  86. package/dist/adapters/utils.js +1 -1
  87. package/dist/cjs/client/components/PortletGroupCard.d.ts +3 -1
  88. package/dist/cjs/client/components/RowManagedLayout.d.ts +5 -2
  89. package/dist/cjs/client/components/charts/DotStripChart.config.d.ts +15 -0
  90. package/dist/cjs/client/components/charts/DotStripChart.d.ts +4 -0
  91. package/dist/cjs/client/components/charts/DotStripChart.helpers.d.ts +91 -0
  92. package/dist/cjs/client/components/dashboardPortletCard/cardStyles.d.ts +7 -3
  93. package/dist/cjs/client/components/rowManagedLayout/sections.d.ts +46 -0
  94. package/dist/cjs/client/icons/types.d.ts +1 -0
  95. package/dist/cjs/client/types.d.ts +6 -1
  96. package/dist/cli/index.cjs +4 -0
  97. package/dist/client/charts.js +12 -12
  98. package/dist/client/chunks/{DashboardEditModal-_ZDMwaGX.js → DashboardEditModal-B-0eV6vd.js} +878 -785
  99. package/dist/client/chunks/DashboardEditModal-B-0eV6vd.js.map +1 -0
  100. package/dist/client/chunks/DotStripChart-ChwsVeRU.js +408 -0
  101. package/dist/client/chunks/DotStripChart-ChwsVeRU.js.map +1 -0
  102. package/dist/client/chunks/{ProportionBarChart-qfpAWhIg.js → ProportionBarChart-D-Qt9nkF.js} +3 -3
  103. package/dist/client/chunks/{ProportionBarChart-qfpAWhIg.js.map → ProportionBarChart-D-Qt9nkF.js.map} +1 -1
  104. package/dist/client/chunks/{RecordsTable-KmJy94xN.js → RecordsTable-aG-QYXOH.js} +4 -4
  105. package/dist/client/chunks/{RecordsTable-KmJy94xN.js.map → RecordsTable-aG-QYXOH.js.map} +1 -1
  106. package/dist/client/chunks/{RetentionCombinedChart-C7X6aj97.js → RetentionCombinedChart-BRZ9w7ah.js} +3 -3
  107. package/dist/client/chunks/{RetentionCombinedChart-C7X6aj97.js.map → RetentionCombinedChart-BRZ9w7ah.js.map} +1 -1
  108. package/dist/client/chunks/{RetentionHeatmap-PpRpiqR_.js → RetentionHeatmap-LkTt89pK.js} +2 -2
  109. package/dist/client/chunks/{RetentionHeatmap-PpRpiqR_.js.map → RetentionHeatmap-LkTt89pK.js.map} +1 -1
  110. package/dist/client/chunks/{analysis-builder-DaqyOjLX.js → analysis-builder-DnDw164v.js} +9 -9
  111. package/dist/client/chunks/{analysis-builder-DaqyOjLX.js.map → analysis-builder-DnDw164v.js.map} +1 -1
  112. package/dist/client/chunks/{analysis-builder-shared-ow9KAHDP.js → analysis-builder-shared-D7eA0iW7.js} +9 -9
  113. package/dist/client/chunks/{analysis-builder-shared-ow9KAHDP.js.map → analysis-builder-shared-D7eA0iW7.js.map} +1 -1
  114. package/dist/client/chunks/{chart-activity-grid-DO82rrbW.js → chart-activity-grid-CJzxC18G.js} +40 -2
  115. package/dist/client/chunks/chart-activity-grid-CJzxC18G.js.map +1 -0
  116. package/dist/client/chunks/{chart-area-9SBeG0GM.js → chart-area-C66dgy84.js} +2 -2
  117. package/dist/client/chunks/{chart-area-9SBeG0GM.js.map → chart-area-C66dgy84.js.map} +1 -1
  118. package/dist/client/chunks/{chart-bar-tfgmLK2D.js → chart-bar-D9kiSOCT.js} +3 -3
  119. package/dist/client/chunks/{chart-bar-tfgmLK2D.js.map → chart-bar-D9kiSOCT.js.map} +1 -1
  120. package/dist/client/chunks/{chart-box-plot-BuYW6j6g.js → chart-box-plot-FsLIMisc.js} +2 -2
  121. package/dist/client/chunks/{chart-box-plot-BuYW6j6g.js.map → chart-box-plot-FsLIMisc.js.map} +1 -1
  122. package/dist/client/chunks/{chart-bubble-BNmonWqW.js → chart-bubble-BzyvrqKs.js} +2 -2
  123. package/dist/client/chunks/{chart-bubble-BNmonWqW.js.map → chart-bubble-BzyvrqKs.js.map} +1 -1
  124. package/dist/client/chunks/{chart-candlestick-BYeWNkKl.js → chart-candlestick-6lD35bLw.js} +2 -2
  125. package/dist/client/chunks/{chart-candlestick-BYeWNkKl.js.map → chart-candlestick-6lD35bLw.js.map} +1 -1
  126. package/dist/client/chunks/{chart-data-table-C_oHiK6N.js → chart-data-table-Cou9qOab.js} +248 -120
  127. package/dist/client/chunks/chart-data-table-Cou9qOab.js.map +1 -0
  128. package/dist/client/chunks/{chart-funnel-B_CWC3cL.js → chart-funnel-B0775aaT.js} +2 -2
  129. package/dist/client/chunks/{chart-funnel-B_CWC3cL.js.map → chart-funnel-B0775aaT.js.map} +1 -1
  130. package/dist/client/chunks/{chart-gauge-D7VxwPnx.js → chart-gauge-pf-2E8w9.js} +3 -3
  131. package/dist/client/chunks/{chart-gauge-D7VxwPnx.js.map → chart-gauge-pf-2E8w9.js.map} +1 -1
  132. package/dist/client/chunks/{chart-heat-map-q7Vf_dog.js → chart-heat-map-EzVGe6fl.js} +3 -3
  133. package/dist/client/chunks/{chart-heat-map-q7Vf_dog.js.map → chart-heat-map-EzVGe6fl.js.map} +1 -1
  134. package/dist/client/chunks/{chart-kpi-delta-PEuA3iGs.js → chart-kpi-delta-lfskDdx4.js} +3 -3
  135. package/dist/client/chunks/{chart-kpi-delta-PEuA3iGs.js.map → chart-kpi-delta-lfskDdx4.js.map} +1 -1
  136. package/dist/client/chunks/{chart-kpi-number-DlxrO6Pq.js → chart-kpi-number-BnsofbTf.js} +5 -5
  137. package/dist/client/chunks/{chart-kpi-number-DlxrO6Pq.js.map → chart-kpi-number-BnsofbTf.js.map} +1 -1
  138. package/dist/client/chunks/{chart-kpi-text-Cx6cJu2s.js → chart-kpi-text-U5EdmdkV.js} +3 -3
  139. package/dist/client/chunks/{chart-kpi-text-Cx6cJu2s.js.map → chart-kpi-text-U5EdmdkV.js.map} +1 -1
  140. package/dist/client/chunks/{chart-line-pDe25JzB.js → chart-line-IwXqPY80.js} +3 -3
  141. package/dist/client/chunks/{chart-line-pDe25JzB.js.map → chart-line-IwXqPY80.js.map} +1 -1
  142. package/dist/client/chunks/{chart-markdown-CRY15yp0.js → chart-markdown-BhLRzK_W.js} +3 -3
  143. package/dist/client/chunks/chart-markdown-BhLRzK_W.js.map +1 -0
  144. package/dist/client/chunks/{chart-measure-profile-DyQ-vvuC.js → chart-measure-profile-Bs4vhBJQ.js} +3 -3
  145. package/dist/client/chunks/{chart-measure-profile-DyQ-vvuC.js.map → chart-measure-profile-Bs4vhBJQ.js.map} +1 -1
  146. package/dist/client/chunks/{chart-pie-ZrnBycy1.js → chart-pie-LDJfDXfX.js} +3 -3
  147. package/dist/client/chunks/{chart-pie-ZrnBycy1.js.map → chart-pie-LDJfDXfX.js.map} +1 -1
  148. package/dist/client/chunks/{chart-radar-BXbnYMUJ.js → chart-radar-BZY6TP9m.js} +3 -3
  149. package/dist/client/chunks/{chart-radar-BXbnYMUJ.js.map → chart-radar-BZY6TP9m.js.map} +1 -1
  150. package/dist/client/chunks/{chart-radial-bar-CYxH3ryh.js → chart-radial-bar-aga05X7h.js} +3 -3
  151. package/dist/client/chunks/{chart-radial-bar-CYxH3ryh.js.map → chart-radial-bar-aga05X7h.js.map} +1 -1
  152. package/dist/client/chunks/{chart-sankey-C9R_TDDh.js → chart-sankey-MRCoWFd4.js} +2 -2
  153. package/dist/client/chunks/{chart-sankey-C9R_TDDh.js.map → chart-sankey-MRCoWFd4.js.map} +1 -1
  154. package/dist/client/chunks/{chart-scatter-DrwRkzzl.js → chart-scatter-DP-nn9hH.js} +3 -3
  155. package/dist/client/chunks/{chart-scatter-DrwRkzzl.js.map → chart-scatter-DP-nn9hH.js.map} +1 -1
  156. package/dist/client/chunks/{chart-sunburst-Bs1yqIPp.js → chart-sunburst-DE4EX7zi.js} +3 -3
  157. package/dist/client/chunks/{chart-sunburst-Bs1yqIPp.js.map → chart-sunburst-DE4EX7zi.js.map} +1 -1
  158. package/dist/client/chunks/{chart-tree-map-BNjHhhVq.js → chart-tree-map-C3O6uQcP.js} +3 -3
  159. package/dist/client/chunks/{chart-tree-map-BNjHhhVq.js.map → chart-tree-map-C3O6uQcP.js.map} +1 -1
  160. package/dist/client/chunks/{chart-waterfall-CyoC0uLT.js → chart-waterfall-DU2Fg_7P.js} +3 -3
  161. package/dist/client/chunks/{chart-waterfall-CyoC0uLT.js.map → chart-waterfall-DU2Fg_7P.js.map} +1 -1
  162. package/dist/client/chunks/{charts-core-DCQ7od_L.js → charts-core-DnirPG1F.js} +2 -2
  163. package/dist/client/chunks/{charts-core-DCQ7od_L.js.map → charts-core-DnirPG1F.js.map} +1 -1
  164. package/dist/client/chunks/charts-loader-D_yEsIpH.js +87 -0
  165. package/dist/client/chunks/charts-loader-D_yEsIpH.js.map +1 -0
  166. package/dist/client/chunks/{nl-NL-CEdoCz6Q.js → nl-NL-B9VnaVAm.js} +39 -1
  167. package/dist/client/chunks/nl-NL-B9VnaVAm.js.map +1 -0
  168. package/dist/client/chunks/{schema-visualization-DfXxFBIY.js → schema-visualization-o1zzuMQy.js} +3 -3
  169. package/dist/client/chunks/{schema-visualization-DfXxFBIY.js.map → schema-visualization-o1zzuMQy.js.map} +1 -1
  170. package/dist/client/chunks/{useDirtyStateTracking-BFJHiiVK.js → useDirtyStateTracking-DTYbmRBn.js} +4 -4
  171. package/dist/client/chunks/{useDirtyStateTracking-BFJHiiVK.js.map → useDirtyStateTracking-DTYbmRBn.js.map} +1 -1
  172. package/dist/client/chunks/{useExplainAI-_C4WQE5I.js → useExplainAI-MuC9jBn-.js} +4 -4
  173. package/dist/client/chunks/{useExplainAI-_C4WQE5I.js.map → useExplainAI-MuC9jBn-.js.map} +1 -1
  174. package/dist/client/chunks/{vendor-Gb3lH0cc.js → vendor-XQT9APIq.js} +2 -2
  175. package/dist/client/chunks/{vendor-Gb3lH0cc.js.map → vendor-XQT9APIq.js.map} +1 -1
  176. package/dist/client/components/PortletGroupCard.d.ts +3 -1
  177. package/dist/client/components/RowManagedLayout.d.ts +5 -2
  178. package/dist/client/components/charts/DotStripChart.config.d.ts +15 -0
  179. package/dist/client/components/charts/DotStripChart.d.ts +4 -0
  180. package/dist/client/components/charts/DotStripChart.helpers.d.ts +91 -0
  181. package/dist/client/components/dashboardPortletCard/cardStyles.d.ts +7 -3
  182. package/dist/client/components/rowManagedLayout/sections.d.ts +46 -0
  183. package/dist/client/components.js +1 -1
  184. package/dist/client/hooks.js +3 -3
  185. package/dist/client/icons/types.d.ts +1 -0
  186. package/dist/client/icons.js +1 -1
  187. package/dist/client/index.js +13 -13
  188. package/dist/client/providers.js +1 -1
  189. package/dist/client/schema.js +1 -1
  190. package/dist/client/styles.css +1 -1
  191. package/dist/client/types.d.ts +6 -1
  192. package/dist/client/utils.js +4 -4
  193. package/dist/client-bundle-stats.html +1 -1
  194. package/dist/mcp-app/mcp-app.html +99 -99
  195. package/dist/server/index.cjs +29 -29
  196. package/dist/server/index.js +312 -154
  197. package/package.json +1 -1
  198. package/dist/adapters/ActivityGridChart.config-DXUUgx0N.cjs +0 -1
  199. package/dist/adapters/ActivityGridChart.config-Dyozu3VW.js +0 -2
  200. package/dist/adapters/AreaChart.config-Di5odBXp.cjs +0 -1
  201. package/dist/adapters/AreaChart.config-KEaXP_4K.js +0 -2
  202. package/dist/adapters/BarChart.config-B-hBHykR.cjs +0 -1
  203. package/dist/adapters/BarChart.config-C5sqbn0A.js +0 -2
  204. package/dist/adapters/BoxPlotChart.config-B1R4Br7L.js +0 -2
  205. package/dist/adapters/BoxPlotChart.config-C82Fhd3c.cjs +0 -1
  206. package/dist/adapters/BubbleChart.config-CoBxmmfp.js +0 -2
  207. package/dist/adapters/BubbleChart.config-DfOnNjL-.cjs +0 -1
  208. package/dist/adapters/CandlestickChart.config-C5ggV_3j.cjs +0 -1
  209. package/dist/adapters/CandlestickChart.config-ZaJpWVuL.js +0 -2
  210. package/dist/adapters/DataTable.config-Cx2_ACdY.cjs +0 -1
  211. package/dist/adapters/DataTable.config-DkAgD-iz.js +0 -2
  212. package/dist/adapters/FunnelChart.config-CvzcECUB.js +0 -2
  213. package/dist/adapters/FunnelChart.config-DVH7IFnb.cjs +0 -1
  214. package/dist/adapters/GaugeChart.config-Csx8rt8o.cjs +0 -1
  215. package/dist/adapters/GaugeChart.config-DEmrNgMa.js +0 -2
  216. package/dist/adapters/HeatMapChart.config-BfD_dpP7.js +0 -2
  217. package/dist/adapters/HeatMapChart.config-D_jlyPJL.cjs +0 -1
  218. package/dist/adapters/KpiDelta.config-CVBdUL_n.cjs +0 -1
  219. package/dist/adapters/KpiDelta.config-D4dCXOxl.js +0 -2
  220. package/dist/adapters/KpiNumber.config-BK5pgIKz.cjs +0 -1
  221. package/dist/adapters/KpiNumber.config-D6XqjZrm.js +0 -2
  222. package/dist/adapters/KpiText.config-ChphMwG5.js +0 -2
  223. package/dist/adapters/KpiText.config-fO1wc6FH.cjs +0 -1
  224. package/dist/adapters/LineChart.config-CXJrgz1s.js +0 -2
  225. package/dist/adapters/LineChart.config-Cg_h-SiJ.cjs +0 -1
  226. package/dist/adapters/MarkdownChart.config-ByPjX-4O.cjs +0 -1
  227. package/dist/adapters/MarkdownChart.config-Df2yY9AT.js +0 -2
  228. package/dist/adapters/MeasureProfileChart.config-BBWGIteF.cjs +0 -1
  229. package/dist/adapters/MeasureProfileChart.config-C9OFbN9Z.js +0 -2
  230. package/dist/adapters/PieChart.config-C6jJj6xm.js +0 -2
  231. package/dist/adapters/PieChart.config-CmCw_8eN.cjs +0 -1
  232. package/dist/adapters/ProportionBarChart.config-B9NEyFEe.js +0 -2
  233. package/dist/adapters/ProportionBarChart.config-C3GAVPWn.cjs +0 -1
  234. package/dist/adapters/RadarChart.config-5AMwEqUJ.cjs +0 -1
  235. package/dist/adapters/RadarChart.config-Ct_b7IM5.js +0 -2
  236. package/dist/adapters/RadialBarChart.config-Bp-Sl0cm.js +0 -2
  237. package/dist/adapters/RadialBarChart.config-D14yoexI.cjs +0 -1
  238. package/dist/adapters/RecordsTable.config-D2-qmG06.cjs +0 -1
  239. package/dist/adapters/RecordsTable.config-DIwoqZCU.js +0 -2
  240. package/dist/adapters/RetentionCombinedChart.config-BWHipi5M.cjs +0 -1
  241. package/dist/adapters/RetentionCombinedChart.config-D40UgTcl.js +0 -2
  242. package/dist/adapters/RetentionHeatmap.config-GlnSLrjn.js +0 -2
  243. package/dist/adapters/RetentionHeatmap.config-MlhZf26c.cjs +0 -1
  244. package/dist/adapters/SankeyChart.config-Bf1_NHiv.js +0 -2
  245. package/dist/adapters/SankeyChart.config-BoYf6BFE.cjs +0 -1
  246. package/dist/adapters/ScatterChart.config-CV2rdGJp.js +0 -2
  247. package/dist/adapters/ScatterChart.config-DywduGF3.cjs +0 -1
  248. package/dist/adapters/SunburstChart.config-CrqiE1UZ.js +0 -2
  249. package/dist/adapters/SunburstChart.config-D5tbF_GJ.cjs +0 -1
  250. package/dist/adapters/TreeMapChart.config-BJ8HnZU0.cjs +0 -1
  251. package/dist/adapters/TreeMapChart.config-DxgIqIIj.js +0 -2
  252. package/dist/adapters/WaterfallChart.config-Cns8fLFu.js +0 -2
  253. package/dist/adapters/WaterfallChart.config-D_kdL9SN.cjs +0 -1
  254. package/dist/adapters/mcp-transport-BpG44Fvn.js +0 -730
  255. package/dist/adapters/mcp-transport-CDxZXpc-.cjs +0 -42
  256. package/dist/adapters/utils-BiKIg2tk.cjs +0 -128
  257. package/dist/client/chunks/DashboardEditModal-_ZDMwaGX.js.map +0 -1
  258. package/dist/client/chunks/chart-activity-grid-DO82rrbW.js.map +0 -1
  259. package/dist/client/chunks/chart-data-table-C_oHiK6N.js.map +0 -1
  260. package/dist/client/chunks/chart-markdown-CRY15yp0.js.map +0 -1
  261. package/dist/client/chunks/charts-loader-Bya_zDIA.js +0 -86
  262. package/dist/client/chunks/charts-loader-Bya_zDIA.js.map +0 -1
  263. package/dist/client/chunks/nl-NL-CEdoCz6Q.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"vendor-Gb3lH0cc.js","names":["React2","React","React"],"sources":["../../../node_modules/react-intersection-observer/dist/index.mjs","../../../node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../../../node_modules/@tanstack/query-core/build/modern/queriesObserver.js","../../../node_modules/@tanstack/react-query/build/modern/useQueries.js","../../../node_modules/@tanstack/react-query/build/modern/useMutation.js","../../../node_modules/zustand/esm/vanilla.mjs","../../../node_modules/zustand/esm/react.mjs","../../../node_modules/zustand/esm/middleware.mjs","../../../node_modules/zustand/esm/vanilla/shallow.mjs","../../../node_modules/zustand/esm/react/shallow.mjs","../../../node_modules/lz-string/libs/lz-string.js"],"sourcesContent":["\"use client\";\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n\n// src/InView.tsx\nimport * as React from \"react\";\n\n// src/observe.ts\nvar observerMap = /* @__PURE__ */ new Map();\nvar RootIds = /* @__PURE__ */ new WeakMap();\nvar rootId = 0;\nvar unsupportedValue;\nfunction defaultFallbackInView(inView) {\n unsupportedValue = inView;\n}\nfunction getRootId(root) {\n if (!root) return \"0\";\n if (RootIds.has(root)) return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\nfunction optionsToId(options) {\n return Object.keys(options).sort().filter(\n (key) => options[key] !== void 0\n ).map((key) => {\n return `${key}_${key === \"root\" ? getRootId(options.root) : options[key]}`;\n }).toString();\n}\nfunction createObserver(options) {\n const id = optionsToId(options);\n let instance = observerMap.get(id);\n if (!instance) {\n const elements = /* @__PURE__ */ new Map();\n let thresholds;\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n var _a;\n const inView = entry.isIntersecting && thresholds.some((threshold) => entry.intersectionRatio >= threshold);\n if (options.trackVisibility && typeof entry.isVisible === \"undefined\") {\n entry.isVisible = inView;\n }\n [...(_a = elements.get(entry.target)) != null ? _a : []].forEach((callback) => {\n callback(inView, entry);\n });\n });\n }, options);\n thresholds = observer.thresholds || (Array.isArray(options.threshold) ? options.threshold : [options.threshold || 0]);\n instance = {\n id,\n observer,\n elements\n };\n observerMap.set(id, instance);\n }\n return instance;\n}\nfunction observe(element, callback, options = {}, fallbackInView = unsupportedValue) {\n if (typeof window.IntersectionObserver === \"undefined\" && fallbackInView !== void 0) {\n const bounds = element.getBoundingClientRect();\n callback(fallbackInView, {\n isIntersecting: fallbackInView,\n target: element,\n intersectionRatio: typeof options.threshold === \"number\" ? options.threshold : 0,\n time: 0,\n boundingClientRect: bounds,\n intersectionRect: bounds,\n rootBounds: bounds\n });\n return () => {\n };\n }\n const { id, observer, elements } = createObserver(options);\n const callbacks = elements.get(element) || [];\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n callbacks.push(callback);\n observer.observe(element);\n let unobserved = false;\n return function unobserve() {\n if (unobserved) return;\n unobserved = true;\n callbacks.splice(callbacks.indexOf(callback), 1);\n if (callbacks.length === 0) {\n elements.delete(element);\n observer.unobserve(element);\n }\n if (elements.size === 0) {\n observer.disconnect();\n observerMap.delete(id);\n }\n };\n}\n\n// src/InView.tsx\nfunction isPlainChildren(props) {\n return typeof props.children !== \"function\";\n}\nvar InView = class extends React.Component {\n constructor(props) {\n super(props);\n __publicField(this, \"node\", null);\n __publicField(this, \"_unobserveCb\", null);\n __publicField(this, \"lastInView\");\n __publicField(this, \"handleNode\", (node) => {\n if (this.node) {\n this.unobserve();\n if (!node && !this.props.triggerOnce && !this.props.skip) {\n this.setState({ inView: !!this.props.initialInView, entry: void 0 });\n this.lastInView = this.props.initialInView;\n }\n }\n this.node = node ? node : null;\n this.observeNode();\n });\n __publicField(this, \"handleChange\", (inView, entry) => {\n const previousInView = this.lastInView;\n this.lastInView = inView;\n if (previousInView === void 0 && !inView) {\n return;\n }\n if (inView && this.props.triggerOnce) {\n this.unobserve();\n }\n if (!isPlainChildren(this.props)) {\n this.setState({ inView, entry });\n }\n if (this.props.onChange) {\n this.props.onChange(inView, entry);\n }\n });\n this.state = {\n inView: !!props.initialInView,\n entry: void 0\n };\n this.lastInView = props.initialInView;\n }\n componentDidMount() {\n this.unobserve();\n this.observeNode();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.rootMargin !== this.props.rootMargin || prevProps.scrollMargin !== this.props.scrollMargin || prevProps.root !== this.props.root || prevProps.threshold !== this.props.threshold || prevProps.triggerOnce !== this.props.triggerOnce || prevProps.skip !== this.props.skip || prevProps.trackVisibility !== this.props.trackVisibility || prevProps.delay !== this.props.delay) {\n this.unobserve();\n this.observeNode();\n }\n }\n componentWillUnmount() {\n this.unobserve();\n }\n observeNode() {\n if (!this.node || this.props.skip) return;\n const {\n threshold,\n root,\n rootMargin,\n scrollMargin,\n trackVisibility,\n delay,\n fallbackInView\n } = this.props;\n if (this.lastInView === void 0) {\n this.lastInView = this.props.initialInView;\n }\n this._unobserveCb = observe(\n this.node,\n this.handleChange,\n {\n threshold,\n root,\n rootMargin,\n scrollMargin,\n trackVisibility,\n delay\n },\n fallbackInView\n );\n }\n unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n this._unobserveCb = null;\n }\n }\n render() {\n const { children } = this.props;\n if (typeof children === \"function\") {\n const { inView, entry } = this.state;\n return children({ inView, entry, ref: this.handleNode });\n }\n const {\n as,\n triggerOnce,\n threshold,\n root,\n rootMargin,\n scrollMargin,\n onChange,\n skip,\n trackVisibility,\n delay,\n initialInView,\n fallbackInView,\n ...props\n } = this.props;\n return React.createElement(\n as || \"div\",\n { ref: this.handleNode, ...props },\n children\n );\n }\n};\n\n// src/useInView.tsx\nimport * as React3 from \"react\";\n\n// src/useIntersectionObserverRef.ts\nimport * as React2 from \"react\";\nvar useInsertionEffect = Reflect.get(React2, \"useInsertionEffect\");\nvar useSyncEffect = useInsertionEffect != null ? useInsertionEffect : React2.useEffect;\nfunction supportsRefCleanup(version2) {\n return (version2 == null ? void 0 : version2.startsWith(\"19.\")) || false;\n}\nvar canUseRefCleanup = supportsRefCleanup(React2.version);\nfunction useIntersectionObserverRef(onIntersectionChange, {\n threshold,\n root,\n rootMargin,\n scrollMargin,\n trackVisibility,\n delay,\n fallbackInView,\n skip,\n triggerOnce\n}) {\n const onIntersectionChangeRef = React2.useRef(onIntersectionChange);\n const observerStateRef = React2.useRef({\n node: null,\n stop: void 0,\n owner: null\n });\n if (!useInsertionEffect) {\n onIntersectionChangeRef.current = onIntersectionChange;\n }\n useSyncEffect(() => {\n onIntersectionChangeRef.current = onIntersectionChange;\n }, [onIntersectionChange]);\n return React2.useCallback(\n function setRef(element) {\n const observerState = observerStateRef.current;\n if (!element && observerState.owner !== setRef) {\n return;\n }\n if (element === observerState.node) {\n observerState.owner = setRef;\n return canUseRefCleanup ? observerState.stop : void 0;\n }\n const cleanup = observerState.stop;\n observerState.stop = void 0;\n cleanup == null ? void 0 : cleanup();\n if (!element || skip) {\n observerState.node = null;\n observerState.owner = element ? setRef : null;\n return;\n }\n observerState.node = element;\n observerState.owner = setRef;\n let destroyObserver;\n let previousInView;\n function stopObserving() {\n destroyObserver == null ? void 0 : destroyObserver();\n if (observerState.stop === stopObserving) {\n observerState.node = null;\n observerState.stop = void 0;\n }\n }\n observerState.stop = stopObserving;\n destroyObserver = observe(\n element,\n (inView, entry) => {\n onIntersectionChangeRef.current(\n inView,\n entry,\n previousInView\n );\n previousInView = inView;\n if (triggerOnce && inView) stopObserving();\n },\n {\n threshold,\n root,\n rootMargin,\n scrollMargin,\n trackVisibility,\n delay\n },\n fallbackInView\n );\n if (observerState.stop !== stopObserving) destroyObserver();\n return canUseRefCleanup ? observerState.stop : void 0;\n },\n [\n Array.isArray(threshold) ? threshold.toString() : threshold,\n root,\n rootMargin,\n scrollMargin,\n trackVisibility,\n delay,\n fallbackInView,\n skip,\n triggerOnce\n ]\n );\n}\n\n// src/useInView.tsx\nvar useIsomorphicLayoutEffect = typeof window === \"undefined\" ? React3.useEffect : React3.useLayoutEffect;\nfunction useInView({\n threshold,\n delay,\n trackVisibility,\n rootMargin,\n scrollMargin,\n root,\n triggerOnce,\n skip,\n initialInView,\n fallbackInView,\n onChange\n} = {}) {\n const lastInViewRef = React3.useRef(initialInView);\n const [state, setState] = React3.useState({\n inView: !!initialInView,\n entry: void 0\n });\n const observerRef = useIntersectionObserverRef(\n (inView, entry) => {\n const previousInView = lastInViewRef.current;\n lastInViewRef.current = inView;\n if (previousInView === void 0 && !inView) {\n return;\n }\n setState({ inView, entry });\n onChange == null ? void 0 : onChange(inView, entry);\n },\n {\n threshold,\n root,\n rootMargin,\n scrollMargin,\n trackVisibility,\n delay,\n fallbackInView,\n skip,\n triggerOnce\n }\n );\n const refState = React3.useRef({\n node: null,\n reset: false\n });\n const setRef = React3.useCallback(\n function setRef2(node) {\n if (node) {\n refState.current.node = node;\n refState.current.reset = false;\n } else if (refState.current.node) {\n refState.current.node = null;\n refState.current.reset = true;\n }\n const cleanup = observerRef(node);\n if (!cleanup) return;\n return () => {\n cleanup();\n if (refState.current.node === node) {\n refState.current.node = null;\n refState.current.reset = true;\n }\n };\n },\n [observerRef]\n );\n useIsomorphicLayoutEffect(() => {\n if (!refState.current.reset) return;\n refState.current.reset = false;\n if (triggerOnce || skip) return;\n setState({ inView: !!initialInView, entry: void 0 });\n lastInViewRef.current = initialInView;\n });\n const result = [setRef, state.inView, state.entry];\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n return result;\n}\n\n// src/useOnInView.tsx\nvar useOnInView = (onIntersectionChange, {\n threshold,\n root,\n rootMargin,\n scrollMargin,\n trackVisibility,\n delay,\n triggerOnce,\n skip\n} = {}) => {\n return useIntersectionObserverRef(\n (inView, entry, previousInView) => {\n if (previousInView === void 0 && !inView) {\n return;\n }\n onIntersectionChange(inView, entry);\n },\n {\n threshold,\n root,\n rootMargin,\n scrollMargin,\n trackVisibility,\n delay,\n triggerOnce,\n skip\n }\n );\n};\nexport {\n InView,\n defaultFallbackInView,\n observe,\n useInView,\n useOnInView\n};\n//# sourceMappingURL=index.mjs.map","import { hashKey, shallowEqualObjects } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { getDefaultState } from \"./mutation.js\";\n//#region src/mutationObserver.ts\nvar MutationObserver = class extends Subscribable {\n\t#client;\n\t#currentResult = void 0;\n\t#currentMutation;\n\t#mutateOptions;\n\tconstructor(client, options) {\n\t\tsuper();\n\t\tthis.#client = client;\n\t\tthis.setOptions(options);\n\t\tthis.bindMethods();\n\t\tthis.#updateResult();\n\t}\n\tbindMethods() {\n\t\tthis.mutate = this.mutate.bind(this);\n\t\tthis.reset = this.reset.bind(this);\n\t}\n\tsetOptions(options) {\n\t\tconst prevOptions = this.options;\n\t\tthis.options = this.#client.defaultMutationOptions(options);\n\t\tif (!shallowEqualObjects(this.options, prevOptions)) this.#client.getMutationCache().notify({\n\t\t\ttype: \"observerOptionsUpdated\",\n\t\t\tmutation: this.#currentMutation,\n\t\t\tobserver: this\n\t\t});\n\t\tif (prevOptions?.mutationKey && this.options.mutationKey && hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)) this.reset();\n\t\telse if (this.#currentMutation?.state.status === \"pending\") this.#currentMutation.setOptions(this.options);\n\t}\n\tonSubscribe() {\n\t\tif (this.listeners.size === 1 && this.#currentMutation) {\n\t\t\tthis.#currentMutation.addObserver(this);\n\t\t\tthis.#updateResult();\n\t\t}\n\t}\n\tonUnsubscribe() {\n\t\tif (!this.hasListeners()) this.#currentMutation?.removeObserver(this);\n\t}\n\tonMutationUpdate(action) {\n\t\tthis.#updateResult();\n\t\tthis.#notify(action);\n\t}\n\tgetCurrentResult() {\n\t\treturn this.#currentResult;\n\t}\n\treset() {\n\t\tthis.#currentMutation?.removeObserver(this);\n\t\tthis.#currentMutation = void 0;\n\t\tthis.#updateResult();\n\t\tthis.#notify();\n\t}\n\tmutate(variables, options) {\n\t\tthis.#mutateOptions = options;\n\t\tthis.#currentMutation?.removeObserver(this);\n\t\tthis.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);\n\t\tthis.#currentMutation.addObserver(this);\n\t\treturn this.#currentMutation.execute(variables);\n\t}\n\t#updateResult() {\n\t\tconst state = this.#currentMutation?.state ?? getDefaultState();\n\t\tthis.#currentResult = {\n\t\t\t...state,\n\t\t\tisPending: state.status === \"pending\",\n\t\t\tisSuccess: state.status === \"success\",\n\t\t\tisError: state.status === \"error\",\n\t\t\tisIdle: state.status === \"idle\",\n\t\t\tmutate: this.mutate,\n\t\t\treset: this.reset\n\t\t};\n\t}\n\t#notify(action) {\n\t\tnotifyManager.batch(() => {\n\t\t\tif (this.#mutateOptions && this.hasListeners()) {\n\t\t\t\tconst variables = this.#currentResult.variables;\n\t\t\t\tconst onMutateResult = this.#currentResult.context;\n\t\t\t\tconst context = {\n\t\t\t\t\tclient: this.#client,\n\t\t\t\t\tmeta: this.options.meta,\n\t\t\t\t\tmutationKey: this.options.mutationKey\n\t\t\t\t};\n\t\t\t\tif (action?.type === \"success\") {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.#mutateOptions.onSuccess?.(action.data, variables, onMutateResult, context);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tPromise.reject(e);\n\t\t\t\t\t}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.#mutateOptions.onSettled?.(action.data, null, variables, onMutateResult, context);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tPromise.reject(e);\n\t\t\t\t\t}\n\t\t\t\t} else if (action?.type === \"error\") {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.#mutateOptions.onError?.(action.error, variables, onMutateResult, context);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tPromise.reject(e);\n\t\t\t\t\t}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.#mutateOptions.onSettled?.(void 0, action.error, variables, onMutateResult, context);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tPromise.reject(e);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.listeners.forEach((listener) => {\n\t\t\t\tlistener(this.#currentResult);\n\t\t\t});\n\t\t});\n\t}\n};\n//#endregion\nexport { MutationObserver };\n\n//# sourceMappingURL=mutationObserver.js.map","import { replaceEqualDeep, shallowEqualObjects } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { QueryObserver } from \"./queryObserver.js\";\n//#region src/queriesObserver.ts\nfunction difference(array1, array2) {\n\tconst excludeSet = new Set(array2);\n\treturn array1.filter((x) => !excludeSet.has(x));\n}\nvar QueriesObserver = class extends Subscribable {\n\t#client;\n\t#result;\n\t#queries;\n\t#options;\n\t#observers;\n\t#combinedResult;\n\t#lastCombine;\n\t#lastResult;\n\t#lastQueryHashes;\n\t#observerMatches = [];\n\tconstructor(client, queries, options) {\n\t\tsuper();\n\t\tthis.#client = client;\n\t\tthis.#options = options;\n\t\tthis.#queries = [];\n\t\tthis.#observers = [];\n\t\tthis.#result = [];\n\t\tthis.setQueries(queries);\n\t}\n\tonSubscribe() {\n\t\tif (this.listeners.size === 1) this.#observers.forEach((observer) => {\n\t\t\tobserver.subscribe((result) => {\n\t\t\t\tthis.#onUpdate(observer, result);\n\t\t\t});\n\t\t});\n\t}\n\tonUnsubscribe() {\n\t\tif (!this.listeners.size) this.destroy();\n\t}\n\tdestroy() {\n\t\tthis.listeners = /* @__PURE__ */ new Set();\n\t\tthis.#observers.forEach((observer) => {\n\t\t\tobserver.destroy();\n\t\t});\n\t}\n\tsetQueries(queries, options) {\n\t\tthis.#queries = queries;\n\t\tthis.#options = options;\n\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\tconst queryHashes = queries.map((query) => this.#client.defaultQueryOptions(query).queryHash);\n\t\t\tif (new Set(queryHashes).size !== queryHashes.length) console.warn(\"[QueriesObserver]: Duplicate Queries found. This might result in unexpected behavior.\");\n\t\t}\n\t\tnotifyManager.batch(() => {\n\t\t\tconst prevObservers = this.#observers;\n\t\t\tconst newObserverMatches = this.#findMatchingObservers(this.#queries);\n\t\t\tnewObserverMatches.forEach((match) => match.observer.setOptions(match.defaultedQueryOptions));\n\t\t\tconst newObservers = newObserverMatches.map((match) => match.observer);\n\t\t\tconst newResult = newObservers.map((observer) => observer.getCurrentResult());\n\t\t\tconst hasLengthChange = prevObservers.length !== newObservers.length;\n\t\t\tconst hasIndexChange = newObservers.some((observer, index) => observer !== prevObservers[index]);\n\t\t\tconst hasStructuralChange = hasLengthChange || hasIndexChange;\n\t\t\tconst hasResultChange = hasStructuralChange ? true : newResult.some((result, index) => {\n\t\t\t\tconst prev = this.#result[index];\n\t\t\t\treturn !prev || !shallowEqualObjects(result, prev);\n\t\t\t});\n\t\t\tif (!hasStructuralChange && !hasResultChange) return;\n\t\t\tif (hasStructuralChange) {\n\t\t\t\tthis.#observerMatches = newObserverMatches;\n\t\t\t\tthis.#observers = newObservers;\n\t\t\t}\n\t\t\tthis.#result = newResult;\n\t\t\tif (!this.hasListeners()) return;\n\t\t\tif (hasStructuralChange) {\n\t\t\t\tdifference(prevObservers, newObservers).forEach((observer) => {\n\t\t\t\t\tobserver.destroy();\n\t\t\t\t});\n\t\t\t\tdifference(newObservers, prevObservers).forEach((observer) => {\n\t\t\t\t\tobserver.subscribe((result) => {\n\t\t\t\t\t\tthis.#onUpdate(observer, result);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t\tthis.#notify();\n\t\t});\n\t}\n\tgetCurrentResult() {\n\t\treturn this.#result;\n\t}\n\tgetQueries() {\n\t\treturn this.#observers.map((observer) => observer.getCurrentQuery());\n\t}\n\tgetObservers() {\n\t\treturn this.#observers;\n\t}\n\tgetOptimisticResult(queries, combine) {\n\t\tconst matches = this.#findMatchingObservers(queries);\n\t\tconst result = matches.map((match) => match.observer.getOptimisticResult(match.defaultedQueryOptions));\n\t\tconst queryHashes = matches.map((match) => match.defaultedQueryOptions.queryHash);\n\t\treturn [\n\t\t\tresult,\n\t\t\t(r) => {\n\t\t\t\treturn this.#combineResult(r ?? result, combine, queryHashes);\n\t\t\t},\n\t\t\t() => {\n\t\t\t\treturn this.#trackResult(result, matches);\n\t\t\t}\n\t\t];\n\t}\n\t#trackResult(result, matches) {\n\t\tconst trackedProps = /* @__PURE__ */ new Set();\n\t\treturn matches.map((match, index) => {\n\t\t\tconst observerResult = result[index];\n\t\t\treturn !match.defaultedQueryOptions.notifyOnChangeProps ? match.observer.trackResult(observerResult, (accessedProp) => {\n\t\t\t\tif (!trackedProps.has(accessedProp)) {\n\t\t\t\t\ttrackedProps.add(accessedProp);\n\t\t\t\t\tmatches.forEach((m) => {\n\t\t\t\t\t\tm.observer.trackProp(accessedProp);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}) : observerResult;\n\t\t});\n\t}\n\t#combineResult(input, combine, queryHashes) {\n\t\tif (combine) {\n\t\t\tconst lastHashes = this.#lastQueryHashes;\n\t\t\tconst queryHashesChanged = queryHashes !== void 0 && lastHashes !== void 0 && (lastHashes.length !== queryHashes.length || queryHashes.some((hash, i) => hash !== lastHashes[i]));\n\t\t\tif (this.#result !== this.#lastResult || queryHashesChanged || combine !== this.#lastCombine) {\n\t\t\t\tthis.#lastCombine = combine;\n\t\t\t\tthis.#lastResult = this.#result;\n\t\t\t\tif (queryHashes !== void 0) this.#lastQueryHashes = queryHashes;\n\t\t\t\tthis.#combinedResult = replaceEqualDeep(this.#combinedResult, combine(input));\n\t\t\t}\n\t\t\treturn this.#combinedResult;\n\t\t}\n\t\treturn input;\n\t}\n\t#shouldSkipCombine() {\n\t\treturn !this.#options?.combine || this.#observers.some((observer, index) => {\n\t\t\treturn observer.options.suspense && this.#result[index]?.data === void 0;\n\t\t});\n\t}\n\t#findMatchingObservers(queries) {\n\t\tconst prevObserversMap = /* @__PURE__ */ new Map();\n\t\tthis.#observers.forEach((observer) => {\n\t\t\tconst key = observer.options.queryHash;\n\t\t\tif (!key) return;\n\t\t\tconst previousObservers = prevObserversMap.get(key);\n\t\t\tif (previousObservers) previousObservers.push(observer);\n\t\t\telse prevObserversMap.set(key, [observer]);\n\t\t});\n\t\tconst observers = [];\n\t\tqueries.forEach((options) => {\n\t\t\tconst defaultedOptions = this.#client.defaultQueryOptions(options);\n\t\t\tconst observer = prevObserversMap.get(defaultedOptions.queryHash)?.shift() ?? new QueryObserver(this.#client, defaultedOptions);\n\t\t\tobservers.push({\n\t\t\t\tdefaultedQueryOptions: defaultedOptions,\n\t\t\t\tobserver\n\t\t\t});\n\t\t});\n\t\treturn observers;\n\t}\n\t#onUpdate(observer, result) {\n\t\tconst index = this.#observers.indexOf(observer);\n\t\tif (index !== -1) {\n\t\t\tthis.#result = this.#result.slice();\n\t\t\tthis.#result[index] = result;\n\t\t\tthis.#notify();\n\t\t}\n\t}\n\t#notify() {\n\t\tif (this.hasListeners()) {\n\t\t\tconst shouldSkipCombine = this.#shouldSkipCombine();\n\t\t\tconst previousResult = this.#combinedResult;\n\t\t\tconst newResult = shouldSkipCombine ? previousResult : this.#combineResult(this.#trackResult(this.#result, this.#observerMatches), this.#options?.combine);\n\t\t\tif (shouldSkipCombine || previousResult !== newResult) notifyManager.batch(() => {\n\t\t\t\tthis.listeners.forEach((listener) => {\n\t\t\t\t\tlistener(this.#result);\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}\n};\n//#endregion\nexport { QueriesObserver };\n\n//# sourceMappingURL=queriesObserver.js.map","\"use client\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useIsRestoring } from \"./IsRestoringProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport { ensurePreventErrorBoundaryRetry, getHasError, useClearResetErrorBoundary } from \"./errorBoundaryUtils.js\";\nimport { ensureSuspenseTimers, fetchOptimistic, shouldSuspend } from \"./suspense.js\";\nimport * as React from \"react\";\nimport { QueriesObserver, QueryObserver, noop, notifyManager } from \"@tanstack/query-core\";\n//#region src/useQueries.ts\nfunction useQueries({ queries, ...options }, queryClient) {\n\tconst client = useQueryClient(queryClient);\n\tconst isRestoring = useIsRestoring();\n\tconst errorResetBoundary = useQueryErrorResetBoundary();\n\tconst subscribed = options.subscribed !== false;\n\tconst defaultedQueries = React.useMemo(() => queries.map((opts) => {\n\t\tconst defaultedOptions = client.defaultQueryOptions(opts);\n\t\tdefaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : subscribed ? \"optimistic\" : void 0;\n\t\treturn defaultedOptions;\n\t}), [\n\t\tqueries,\n\t\tclient,\n\t\tisRestoring,\n\t\tsubscribed\n\t]);\n\tdefaultedQueries.forEach((queryOptions) => {\n\t\tensureSuspenseTimers(queryOptions);\n\t\tconst query = client.getQueryCache().get(queryOptions.queryHash);\n\t\tensurePreventErrorBoundaryRetry(queryOptions, errorResetBoundary, query);\n\t});\n\tuseClearResetErrorBoundary(errorResetBoundary);\n\tconst [observer] = React.useState(() => new QueriesObserver(client, defaultedQueries, options));\n\tconst [optimisticResult, getCombinedResult, trackResult] = observer.getOptimisticResult(defaultedQueries, options.combine);\n\tconst shouldSubscribe = !isRestoring && subscribed;\n\tReact.useSyncExternalStore(React.useCallback((onStoreChange) => shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop, [observer, shouldSubscribe]), () => observer.getCurrentResult(), () => observer.getCurrentResult());\n\tReact.useEffect(() => {\n\t\tobserver.setQueries(defaultedQueries, options);\n\t}, [\n\t\tdefaultedQueries,\n\t\toptions,\n\t\tobserver\n\t]);\n\tconst suspensePromises = optimisticResult.some((result, index) => shouldSuspend(defaultedQueries[index], result)) ? optimisticResult.flatMap((result, index) => {\n\t\tconst opts = defaultedQueries[index];\n\t\tif (opts && shouldSuspend(opts, result)) {\n\t\t\tconst queryObserver = new QueryObserver(client, opts);\n\t\t\treturn fetchOptimistic(opts, queryObserver, errorResetBoundary);\n\t\t}\n\t\treturn [];\n\t}) : [];\n\tif (suspensePromises.length > 0) throw Promise.all(suspensePromises);\n\tconst firstSingleResultWhichShouldThrow = optimisticResult.find((result, index) => {\n\t\tconst query = defaultedQueries[index];\n\t\treturn query && getHasError({\n\t\t\tresult,\n\t\t\terrorResetBoundary,\n\t\t\tthrowOnError: query.throwOnError,\n\t\t\tquery: client.getQueryCache().get(query.queryHash),\n\t\t\tsuspense: query.suspense\n\t\t});\n\t});\n\tif (firstSingleResultWhichShouldThrow) throw firstSingleResultWhichShouldThrow.error;\n\treturn getCombinedResult(trackResult());\n}\n//#endregion\nexport { useQueries };\n\n//# sourceMappingURL=useQueries.js.map","\"use client\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport * as React from \"react\";\nimport { MutationObserver, noop, notifyManager, shouldThrowError } from \"@tanstack/query-core\";\n//#region src/useMutation.ts\nfunction useMutation(options, queryClient) {\n\tconst client = useQueryClient(queryClient);\n\tconst [observer] = React.useState(() => new MutationObserver(client, options));\n\tReact.useEffect(() => {\n\t\tobserver.setOptions(options);\n\t}, [observer, options]);\n\tconst result = React.useSyncExternalStore(React.useCallback((onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)), [observer]), () => observer.getCurrentResult(), () => observer.getCurrentResult());\n\tconst mutate = React.useCallback((...args) => {\n\t\tobserver.mutate(args[0], args[1]).catch(noop);\n\t}, [observer]);\n\tif (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) throw result.error;\n\treturn {\n\t\t...result,\n\t\tmutate,\n\t\tmutateAsync: result.mutate\n\t};\n}\n//#endregion\nexport { useMutation };\n\n//# sourceMappingURL=useMutation.js.map","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);\n\nexport { createStore };\n","import React from 'react';\nimport { createStore } from 'zustand/vanilla';\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n React.useCallback(() => selector(api.getState()), [api, selector]),\n React.useCallback(() => selector(api.getInitialState()), [api, selector])\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = ((createState) => createState ? createImpl(createState) : createImpl);\n\nexport { create, useStore };\n","const reduxImpl = (reducer, initial) => (set, _get, api) => {\n api.dispatch = (action) => {\n set((state) => reducer(state, action), false, action);\n return action;\n };\n api.dispatchFromDevtools = true;\n return { dispatch: (...args) => api.dispatch(...args), ...initial };\n};\nconst redux = reduxImpl;\n\nconst shouldDispatchFromDevtools = (api) => !!api.dispatchFromDevtools && typeof api.dispatch === \"function\";\nconst trackedConnections = /* @__PURE__ */ new Map();\nconst getTrackedConnectionState = (name) => {\n const api = trackedConnections.get(name);\n if (!api) return {};\n return Object.fromEntries(\n Object.entries(api.stores).map(([key, api2]) => [key, api2.getState()])\n );\n};\nconst extractConnectionInformation = (store, extensionConnector, options) => {\n if (store === void 0) {\n return {\n type: \"untracked\",\n connection: extensionConnector.connect(options)\n };\n }\n const existingConnection = trackedConnections.get(options.name);\n if (existingConnection) {\n return { type: \"tracked\", store, ...existingConnection };\n }\n const newConnection = {\n connection: extensionConnector.connect(options),\n stores: {}\n };\n trackedConnections.set(options.name, newConnection);\n return { type: \"tracked\", store, ...newConnection };\n};\nconst removeStoreFromTrackedConnections = (name, store) => {\n if (store === void 0) return;\n const connectionInfo = trackedConnections.get(name);\n if (!connectionInfo) return;\n delete connectionInfo.stores[store];\n if (Object.keys(connectionInfo.stores).length === 0) {\n trackedConnections.delete(name);\n }\n};\nconst v8StackLineRe = /^at (?:new |async )?(.+?) \\(/;\nconst geckoStackLineRe = /^([^@]+)@/;\nfunction findCallerName(stack) {\n var _a, _b, _c;\n if (!stack) return void 0;\n const traceLines = stack.split(\"\\n\");\n const apiSetStateLineIndex = traceLines.findIndex(\n (traceLine) => traceLine.includes(\"api.setState\")\n );\n if (apiSetStateLineIndex < 0) return void 0;\n const callerLine = ((_a = traceLines[apiSetStateLineIndex + 1]) == null ? void 0 : _a.trim()) || \"\";\n return ((_b = v8StackLineRe.exec(callerLine)) == null ? void 0 : _b[1]) || ((_c = geckoStackLineRe.exec(callerLine)) == null ? void 0 : _c[1]);\n}\nconst devtoolsImpl = (fn, devtoolsOptions = {}) => (set, get, api) => {\n const { enabled, anonymousActionType, store, ...options } = devtoolsOptions;\n let extensionConnector;\n try {\n extensionConnector = (enabled != null ? enabled : (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") && window.__REDUX_DEVTOOLS_EXTENSION__;\n } catch (e) {\n }\n if (!extensionConnector) {\n return fn(set, get, api);\n }\n const { connection, ...connectionInformation } = extractConnectionInformation(store, extensionConnector, options);\n let isRecording = true;\n api.setState = ((state, replace, nameOrAction) => {\n const r = set(state, replace);\n if (!isRecording) return r;\n const action = nameOrAction === void 0 ? {\n type: anonymousActionType || findCallerName(new Error().stack) || \"anonymous\"\n } : typeof nameOrAction === \"string\" ? { type: nameOrAction } : nameOrAction;\n if (store === void 0) {\n connection == null ? void 0 : connection.send(action, get());\n return r;\n }\n connection == null ? void 0 : connection.send(\n {\n ...action,\n type: `${store}/${action.type}`\n },\n {\n ...getTrackedConnectionState(options.name),\n [store]: api.getState()\n }\n );\n return r;\n });\n api.devtools = {\n cleanup: () => {\n if (connection && typeof connection.unsubscribe === \"function\") {\n connection.unsubscribe();\n }\n removeStoreFromTrackedConnections(options.name, store);\n }\n };\n const setStateFromDevtools = (...a) => {\n const originalIsRecording = isRecording;\n isRecording = false;\n set(...a);\n isRecording = originalIsRecording;\n };\n const initialState = fn(api.setState, get, api);\n if (connectionInformation.type === \"untracked\") {\n connection == null ? void 0 : connection.init(initialState);\n } else {\n connectionInformation.stores[connectionInformation.store] = api;\n connection == null ? void 0 : connection.init(\n Object.fromEntries(\n Object.entries(connectionInformation.stores).map(([key, store2]) => [\n key,\n key === connectionInformation.store ? initialState : store2.getState()\n ])\n )\n );\n }\n if (shouldDispatchFromDevtools(api)) {\n let didWarnAboutReservedActionType = false;\n const originalDispatch = api.dispatch;\n api.dispatch = (...args) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && args[0].type === \"__setState\" && !didWarnAboutReservedActionType) {\n console.warn(\n '[zustand devtools middleware] \"__setState\" action type is reserved to set state from the devtools. Avoid using it.'\n );\n didWarnAboutReservedActionType = true;\n }\n originalDispatch(...args);\n };\n }\n connection.subscribe((message) => {\n var _a;\n switch (message.type) {\n case \"ACTION\":\n if (typeof message.payload !== \"string\") {\n console.error(\n \"[zustand devtools middleware] Unsupported action format\"\n );\n return;\n }\n return parseJsonThen(\n message.payload,\n (action) => {\n if (action.type === \"__setState\") {\n if (store === void 0) {\n setStateFromDevtools(action.state);\n return;\n }\n if (Object.keys(action.state).length !== 1) {\n console.error(\n `\n [zustand devtools middleware] Unsupported __setState action format.\n When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),\n and value of this only key should be a state object. Example: { \"type\": \"__setState\", \"state\": { \"abc123Store\": { \"foo\": \"bar\" } } }\n `\n );\n }\n const stateFromDevtools = action.state[store];\n if (stateFromDevtools === void 0 || stateFromDevtools === null) {\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(stateFromDevtools)) {\n setStateFromDevtools(stateFromDevtools);\n }\n return;\n }\n if (shouldDispatchFromDevtools(api)) {\n api.dispatch(action);\n }\n }\n );\n case \"DISPATCH\":\n switch (message.payload.type) {\n case \"RESET\":\n setStateFromDevtools(initialState);\n if (store === void 0) {\n return connection == null ? void 0 : connection.init(api.getState());\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"COMMIT\":\n if (store === void 0) {\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"ROLLBACK\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n setStateFromDevtools(state[store]);\n connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n });\n case \"JUMP_TO_STATE\":\n case \"JUMP_TO_ACTION\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(state[store])) {\n setStateFromDevtools(state[store]);\n }\n });\n case \"IMPORT_STATE\": {\n const { nextLiftedState } = message.payload;\n const lastComputedState = (_a = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a.state;\n if (!lastComputedState) return;\n if (store === void 0) {\n setStateFromDevtools(lastComputedState);\n } else {\n setStateFromDevtools(lastComputedState[store]);\n }\n connection == null ? void 0 : connection.send(\n null,\n // FIXME no-any\n nextLiftedState\n );\n return;\n }\n case \"PAUSE_RECORDING\":\n return isRecording = !isRecording;\n }\n return;\n }\n });\n return initialState;\n};\nconst devtools = devtoolsImpl;\nconst parseJsonThen = (stringified, fn) => {\n let parsed;\n try {\n parsed = JSON.parse(stringified);\n } catch (e) {\n console.error(\n \"[zustand devtools middleware] Could not parse the received json\",\n e\n );\n }\n if (parsed !== void 0) fn(parsed);\n};\n\nconst subscribeWithSelectorImpl = (fn) => (set, get, api) => {\n const origSubscribe = api.subscribe;\n api.subscribe = ((selector, optListener, options) => {\n let listener = selector;\n if (optListener) {\n const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is;\n let currentSlice = selector(api.getState());\n listener = (state) => {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n optListener(currentSlice = nextSlice, previousSlice);\n }\n };\n if (options == null ? void 0 : options.fireImmediately) {\n optListener(currentSlice, currentSlice);\n }\n }\n return origSubscribe(listener);\n });\n const initialState = fn(set, get, api);\n return initialState;\n};\nconst subscribeWithSelector = subscribeWithSelectorImpl;\n\nfunction combine(initialState, create) {\n return (...args) => Object.assign({}, initialState, create(...args));\n}\n\nfunction createJSONStorage(getStorage, options) {\n let storage;\n try {\n storage = getStorage();\n } catch (e) {\n return;\n }\n const persistStorage = {\n getItem: (name) => {\n var _a;\n const parse = (str2) => {\n if (str2 === null) {\n return null;\n }\n return JSON.parse(str2, options == null ? void 0 : options.reviver);\n };\n const str = (_a = storage.getItem(name)) != null ? _a : null;\n if (str instanceof Promise) {\n return str.then(parse);\n }\n return parse(str);\n },\n setItem: (name, newValue) => storage.setItem(name, JSON.stringify(newValue, options == null ? void 0 : options.replacer)),\n removeItem: (name) => storage.removeItem(name)\n };\n return persistStorage;\n}\nconst toThenable = (fn) => (input) => {\n try {\n const result = fn(input);\n if (result instanceof Promise) {\n return result;\n }\n return {\n then(onFulfilled) {\n return toThenable(onFulfilled)(result);\n },\n catch(_onRejected) {\n return this;\n }\n };\n } catch (e) {\n return {\n then(_onFulfilled) {\n return this;\n },\n catch(onRejected) {\n return toThenable(onRejected)(e);\n }\n };\n }\n};\nconst persistImpl = (config, baseOptions) => (set, get, api) => {\n let options = {\n storage: createJSONStorage(() => window.localStorage),\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => ({\n ...currentState,\n ...persistedState\n }),\n ...baseOptions\n };\n let hasHydrated = false;\n let hydrationVersion = 0;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage = options.storage;\n if (!storage) {\n return config(\n (...args) => {\n console.warn(\n `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n );\n set(...args);\n },\n get,\n api\n );\n }\n const setItem = () => {\n const state = options.partialize({ ...get() });\n return storage.setItem(options.name, {\n state,\n version: options.version\n });\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n return setItem();\n };\n const configResult = config(\n (...args) => {\n set(...args);\n return setItem();\n },\n get,\n api\n );\n api.getInitialState = () => configResult;\n let stateFromStorage;\n const hydrate = () => {\n var _a, _b;\n if (!storage) return;\n const currentVersion = ++hydrationVersion;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => {\n var _a2;\n return cb((_a2 = get()) != null ? _a2 : configResult);\n });\n const postRehydrationCallback = ((_b = options.onRehydrateStorage) == null ? void 0 : _b.call(options, (_a = get()) != null ? _a : configResult)) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n const migration = options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n );\n if (migration instanceof Promise) {\n return migration.then((result) => [true, result]);\n }\n return [true, migration];\n }\n console.error(\n `State loaded from storage couldn't be migrated since no migrate function was provided`\n );\n } else {\n return [false, deserializedStorageValue.state];\n }\n }\n return [false, void 0];\n }).then((migrationResult) => {\n var _a2;\n if (currentVersion !== hydrationVersion) {\n return;\n }\n const [migrated, migratedState] = migrationResult;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n if (migrated) {\n return setItem();\n }\n }).then(() => {\n if (currentVersion !== hydrationVersion) {\n return;\n }\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(get(), void 0);\n stateFromStorage = get();\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n if (currentVersion !== hydrationVersion) {\n return;\n }\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = {\n ...options,\n ...newOptions\n };\n if (newOptions.storage) {\n storage = newOptions.storage;\n }\n },\n clearStorage: () => {\n ++hydrationVersion;\n storage == null ? void 0 : storage.removeItem(options.name);\n },\n getOptions: () => options,\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n if (!options.skipHydration) {\n hydrate();\n }\n return stateFromStorage || configResult;\n};\nconst persist = persistImpl;\n\nfunction ssrSafe(config, isSSR = typeof window === \"undefined\") {\n return (set, get, api) => {\n if (!isSSR) {\n return config(set, get, api);\n }\n const ssrSet = () => {\n throw new Error(\"Cannot set state of Zustand store in SSR\");\n };\n api.setState = ssrSet;\n return config(ssrSet, get, api);\n };\n}\n\nexport { combine, createJSONStorage, devtools, persist, redux, subscribeWithSelector, ssrSafe as unstable_ssrSafe };\n","const isIterable = (obj) => Symbol.iterator in obj;\nconst hasIterableEntries = (value) => (\n // HACK: avoid checking entries type\n \"entries\" in value\n);\nconst compareEntries = (valueA, valueB) => {\n const mapA = valueA instanceof Map ? valueA : new Map(valueA.entries());\n const mapB = valueB instanceof Map ? valueB : new Map(valueB.entries());\n if (mapA.size !== mapB.size) {\n return false;\n }\n for (const [key, value] of mapA) {\n if (!mapB.has(key) || !Object.is(value, mapB.get(key))) {\n return false;\n }\n }\n return true;\n};\nconst compareIterables = (valueA, valueB) => {\n const iteratorA = valueA[Symbol.iterator]();\n const iteratorB = valueB[Symbol.iterator]();\n let nextA = iteratorA.next();\n let nextB = iteratorB.next();\n while (!nextA.done && !nextB.done) {\n if (!Object.is(nextA.value, nextB.value)) {\n return false;\n }\n nextA = iteratorA.next();\n nextB = iteratorB.next();\n }\n return !!nextA.done && !!nextB.done;\n};\nfunction shallow(valueA, valueB) {\n if (Object.is(valueA, valueB)) {\n return true;\n }\n if (typeof valueA !== \"object\" || valueA === null || typeof valueB !== \"object\" || valueB === null) {\n return false;\n }\n if (Object.getPrototypeOf(valueA) !== Object.getPrototypeOf(valueB)) {\n return false;\n }\n if (isIterable(valueA) && isIterable(valueB)) {\n if (hasIterableEntries(valueA) && hasIterableEntries(valueB)) {\n return compareEntries(valueA, valueB);\n }\n return compareIterables(valueA, valueB);\n }\n return compareEntries(\n { entries: () => Object.entries(valueA) },\n { entries: () => Object.entries(valueB) }\n );\n}\n\nexport { shallow };\n","import React from 'react';\nimport { shallow } from 'zustand/vanilla/shallow';\n\nfunction useShallow(selector) {\n const prev = React.useRef(void 0);\n return (state) => {\n const next = selector(state);\n return shallow(prev.current, next) ? prev.current : prev.current = next;\n };\n}\n\nexport { useShallow };\n","// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>\n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.5\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i<alphabet.length ; i++) {\n baseReverseDic[alphabet][alphabet.charAt(i)] = i;\n }\n }\n return baseReverseDic[alphabet][character];\n}\n\nvar LZString = {\n compressToBase64 : function (input) {\n if (input == null) return \"\";\n var res = LZString._compress(input, 6, function(a){return keyStrBase64.charAt(a);});\n switch (res.length % 4) { // To produce valid Base64\n default: // When could this happen ?\n case 0 : return res;\n case 1 : return res+\"===\";\n case 2 : return res+\"==\";\n case 3 : return res+\"=\";\n }\n },\n\n decompressFromBase64 : function (input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrBase64, input.charAt(index)); });\n },\n\n compressToUTF16 : function (input) {\n if (input == null) return \"\";\n return LZString._compress(input, 15, function(a){return f(a+32);}) + \" \";\n },\n\n decompressFromUTF16: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 16384, function(index) { return compressed.charCodeAt(index) - 32; });\n },\n\n //compress into uint8array (UCS-2 big endian format)\n compressToUint8Array: function (uncompressed) {\n var compressed = LZString.compress(uncompressed);\n var buf=new Uint8Array(compressed.length*2); // 2 bytes per character\n\n for (var i=0, TotalLen=compressed.length; i<TotalLen; i++) {\n var current_value = compressed.charCodeAt(i);\n buf[i*2] = current_value >>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i<TotalLen; i++) {\n buf[i]=compressed[i*2]*256+compressed[i*2+1];\n }\n\n var result = [];\n buf.forEach(function (c) {\n result.push(f(c));\n });\n return LZString.decompress(result.join(''));\n\n }\n\n },\n\n\n //compress into a string that is already URI encoded\n compressToEncodedURIComponent: function (input) {\n if (input == null) return \"\";\n return LZString._compress(input, 6, function(a){return keyStrUriSafe.charAt(a);});\n },\n\n //decompress from an output of compressToEncodedURIComponent\n decompressFromEncodedURIComponent:function (input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n input = input.replace(/ /g, \"+\");\n return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrUriSafe, input.charAt(index)); });\n },\n\n compress: function (uncompressed) {\n return LZString._compress(uncompressed, 16, function(a){return f(a);});\n },\n _compress: function (uncompressed, bitsPerChar, getCharFromInt) {\n if (uncompressed == null) return \"\";\n var i, value,\n context_dictionary= {},\n context_dictionaryToCreate= {},\n context_c=\"\",\n context_wc=\"\",\n context_w=\"\",\n context_enlargeIn= 2, // Compensate for the first entry which should not count\n context_dictSize= 3,\n context_numBits= 2,\n context_data=[],\n context_data_val=0,\n context_data_position=0,\n ii;\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii);\n if (!Object.prototype.hasOwnProperty.call(context_dictionary,context_c)) {\n context_dictionary[context_c] = context_dictSize++;\n context_dictionaryToCreate[context_c] = true;\n }\n\n context_wc = context_w + context_c;\n if (Object.prototype.hasOwnProperty.call(context_dictionary,context_wc)) {\n context_w = context_wc;\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<8 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position ==bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<16 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<8 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<16 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n} else if( typeof angular !== 'undefined' && angular != null ) {\n angular.module('LZString', [])\n .factory('LZString', function () {\n return LZString;\n });\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10],"mappings":"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"}
1
+ {"version":3,"file":"vendor-XQT9APIq.js","names":["React2","React","React"],"sources":["../../../node_modules/react-intersection-observer/dist/index.mjs","../../../node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../../../node_modules/@tanstack/query-core/build/modern/queriesObserver.js","../../../node_modules/@tanstack/react-query/build/modern/useQueries.js","../../../node_modules/@tanstack/react-query/build/modern/useMutation.js","../../../node_modules/zustand/esm/vanilla.mjs","../../../node_modules/zustand/esm/react.mjs","../../../node_modules/zustand/esm/middleware.mjs","../../../node_modules/zustand/esm/vanilla/shallow.mjs","../../../node_modules/zustand/esm/react/shallow.mjs","../../../node_modules/lz-string/libs/lz-string.js"],"sourcesContent":["\"use client\";\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n\n// src/InView.tsx\nimport * as React from \"react\";\n\n// src/observe.ts\nvar observerMap = /* @__PURE__ */ new Map();\nvar RootIds = /* @__PURE__ */ new WeakMap();\nvar rootId = 0;\nvar unsupportedValue;\nfunction defaultFallbackInView(inView) {\n unsupportedValue = inView;\n}\nfunction getRootId(root) {\n if (!root) return \"0\";\n if (RootIds.has(root)) return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\nfunction optionsToId(options) {\n return Object.keys(options).sort().filter(\n (key) => options[key] !== void 0\n ).map((key) => {\n return `${key}_${key === \"root\" ? getRootId(options.root) : options[key]}`;\n }).toString();\n}\nfunction createObserver(options) {\n const id = optionsToId(options);\n let instance = observerMap.get(id);\n if (!instance) {\n const elements = /* @__PURE__ */ new Map();\n let thresholds;\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n var _a;\n const inView = entry.isIntersecting && thresholds.some((threshold) => entry.intersectionRatio >= threshold);\n if (options.trackVisibility && typeof entry.isVisible === \"undefined\") {\n entry.isVisible = inView;\n }\n [...(_a = elements.get(entry.target)) != null ? _a : []].forEach((callback) => {\n callback(inView, entry);\n });\n });\n }, options);\n thresholds = observer.thresholds || (Array.isArray(options.threshold) ? options.threshold : [options.threshold || 0]);\n instance = {\n id,\n observer,\n elements\n };\n observerMap.set(id, instance);\n }\n return instance;\n}\nfunction observe(element, callback, options = {}, fallbackInView = unsupportedValue) {\n if (typeof window.IntersectionObserver === \"undefined\" && fallbackInView !== void 0) {\n const bounds = element.getBoundingClientRect();\n callback(fallbackInView, {\n isIntersecting: fallbackInView,\n target: element,\n intersectionRatio: typeof options.threshold === \"number\" ? options.threshold : 0,\n time: 0,\n boundingClientRect: bounds,\n intersectionRect: bounds,\n rootBounds: bounds\n });\n return () => {\n };\n }\n const { id, observer, elements } = createObserver(options);\n const callbacks = elements.get(element) || [];\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n callbacks.push(callback);\n observer.observe(element);\n let unobserved = false;\n return function unobserve() {\n if (unobserved) return;\n unobserved = true;\n callbacks.splice(callbacks.indexOf(callback), 1);\n if (callbacks.length === 0) {\n elements.delete(element);\n observer.unobserve(element);\n }\n if (elements.size === 0) {\n observer.disconnect();\n observerMap.delete(id);\n }\n };\n}\n\n// src/InView.tsx\nfunction isPlainChildren(props) {\n return typeof props.children !== \"function\";\n}\nvar InView = class extends React.Component {\n constructor(props) {\n super(props);\n __publicField(this, \"node\", null);\n __publicField(this, \"_unobserveCb\", null);\n __publicField(this, \"lastInView\");\n __publicField(this, \"handleNode\", (node) => {\n if (this.node) {\n this.unobserve();\n if (!node && !this.props.triggerOnce && !this.props.skip) {\n this.setState({ inView: !!this.props.initialInView, entry: void 0 });\n this.lastInView = this.props.initialInView;\n }\n }\n this.node = node ? node : null;\n this.observeNode();\n });\n __publicField(this, \"handleChange\", (inView, entry) => {\n const previousInView = this.lastInView;\n this.lastInView = inView;\n if (previousInView === void 0 && !inView) {\n return;\n }\n if (inView && this.props.triggerOnce) {\n this.unobserve();\n }\n if (!isPlainChildren(this.props)) {\n this.setState({ inView, entry });\n }\n if (this.props.onChange) {\n this.props.onChange(inView, entry);\n }\n });\n this.state = {\n inView: !!props.initialInView,\n entry: void 0\n };\n this.lastInView = props.initialInView;\n }\n componentDidMount() {\n this.unobserve();\n this.observeNode();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.rootMargin !== this.props.rootMargin || prevProps.scrollMargin !== this.props.scrollMargin || prevProps.root !== this.props.root || prevProps.threshold !== this.props.threshold || prevProps.triggerOnce !== this.props.triggerOnce || prevProps.skip !== this.props.skip || prevProps.trackVisibility !== this.props.trackVisibility || prevProps.delay !== this.props.delay) {\n this.unobserve();\n this.observeNode();\n }\n }\n componentWillUnmount() {\n this.unobserve();\n }\n observeNode() {\n if (!this.node || this.props.skip) return;\n const {\n threshold,\n root,\n rootMargin,\n scrollMargin,\n trackVisibility,\n delay,\n fallbackInView\n } = this.props;\n if (this.lastInView === void 0) {\n this.lastInView = this.props.initialInView;\n }\n this._unobserveCb = observe(\n this.node,\n this.handleChange,\n {\n threshold,\n root,\n rootMargin,\n scrollMargin,\n trackVisibility,\n delay\n },\n fallbackInView\n );\n }\n unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n this._unobserveCb = null;\n }\n }\n render() {\n const { children } = this.props;\n if (typeof children === \"function\") {\n const { inView, entry } = this.state;\n return children({ inView, entry, ref: this.handleNode });\n }\n const {\n as,\n triggerOnce,\n threshold,\n root,\n rootMargin,\n scrollMargin,\n onChange,\n skip,\n trackVisibility,\n delay,\n initialInView,\n fallbackInView,\n ...props\n } = this.props;\n return React.createElement(\n as || \"div\",\n { ref: this.handleNode, ...props },\n children\n );\n }\n};\n\n// src/useInView.tsx\nimport * as React3 from \"react\";\n\n// src/useIntersectionObserverRef.ts\nimport * as React2 from \"react\";\nvar useInsertionEffect = Reflect.get(React2, \"useInsertionEffect\");\nvar useSyncEffect = useInsertionEffect != null ? useInsertionEffect : React2.useEffect;\nfunction supportsRefCleanup(version2) {\n return (version2 == null ? void 0 : version2.startsWith(\"19.\")) || false;\n}\nvar canUseRefCleanup = supportsRefCleanup(React2.version);\nfunction useIntersectionObserverRef(onIntersectionChange, {\n threshold,\n root,\n rootMargin,\n scrollMargin,\n trackVisibility,\n delay,\n fallbackInView,\n skip,\n triggerOnce\n}) {\n const onIntersectionChangeRef = React2.useRef(onIntersectionChange);\n const observerStateRef = React2.useRef({\n node: null,\n stop: void 0,\n owner: null\n });\n if (!useInsertionEffect) {\n onIntersectionChangeRef.current = onIntersectionChange;\n }\n useSyncEffect(() => {\n onIntersectionChangeRef.current = onIntersectionChange;\n }, [onIntersectionChange]);\n return React2.useCallback(\n function setRef(element) {\n const observerState = observerStateRef.current;\n if (!element && observerState.owner !== setRef) {\n return;\n }\n if (element === observerState.node) {\n observerState.owner = setRef;\n return canUseRefCleanup ? observerState.stop : void 0;\n }\n const cleanup = observerState.stop;\n observerState.stop = void 0;\n cleanup == null ? void 0 : cleanup();\n if (!element || skip) {\n observerState.node = null;\n observerState.owner = element ? setRef : null;\n return;\n }\n observerState.node = element;\n observerState.owner = setRef;\n let destroyObserver;\n let previousInView;\n function stopObserving() {\n destroyObserver == null ? void 0 : destroyObserver();\n if (observerState.stop === stopObserving) {\n observerState.node = null;\n observerState.stop = void 0;\n }\n }\n observerState.stop = stopObserving;\n destroyObserver = observe(\n element,\n (inView, entry) => {\n onIntersectionChangeRef.current(\n inView,\n entry,\n previousInView\n );\n previousInView = inView;\n if (triggerOnce && inView) stopObserving();\n },\n {\n threshold,\n root,\n rootMargin,\n scrollMargin,\n trackVisibility,\n delay\n },\n fallbackInView\n );\n if (observerState.stop !== stopObserving) destroyObserver();\n return canUseRefCleanup ? observerState.stop : void 0;\n },\n [\n Array.isArray(threshold) ? threshold.toString() : threshold,\n root,\n rootMargin,\n scrollMargin,\n trackVisibility,\n delay,\n fallbackInView,\n skip,\n triggerOnce\n ]\n );\n}\n\n// src/useInView.tsx\nvar useIsomorphicLayoutEffect = typeof window === \"undefined\" ? React3.useEffect : React3.useLayoutEffect;\nfunction useInView({\n threshold,\n delay,\n trackVisibility,\n rootMargin,\n scrollMargin,\n root,\n triggerOnce,\n skip,\n initialInView,\n fallbackInView,\n onChange\n} = {}) {\n const lastInViewRef = React3.useRef(initialInView);\n const [state, setState] = React3.useState({\n inView: !!initialInView,\n entry: void 0\n });\n const observerRef = useIntersectionObserverRef(\n (inView, entry) => {\n const previousInView = lastInViewRef.current;\n lastInViewRef.current = inView;\n if (previousInView === void 0 && !inView) {\n return;\n }\n setState({ inView, entry });\n onChange == null ? void 0 : onChange(inView, entry);\n },\n {\n threshold,\n root,\n rootMargin,\n scrollMargin,\n trackVisibility,\n delay,\n fallbackInView,\n skip,\n triggerOnce\n }\n );\n const refState = React3.useRef({\n node: null,\n reset: false\n });\n const setRef = React3.useCallback(\n function setRef2(node) {\n if (node) {\n refState.current.node = node;\n refState.current.reset = false;\n } else if (refState.current.node) {\n refState.current.node = null;\n refState.current.reset = true;\n }\n const cleanup = observerRef(node);\n if (!cleanup) return;\n return () => {\n cleanup();\n if (refState.current.node === node) {\n refState.current.node = null;\n refState.current.reset = true;\n }\n };\n },\n [observerRef]\n );\n useIsomorphicLayoutEffect(() => {\n if (!refState.current.reset) return;\n refState.current.reset = false;\n if (triggerOnce || skip) return;\n setState({ inView: !!initialInView, entry: void 0 });\n lastInViewRef.current = initialInView;\n });\n const result = [setRef, state.inView, state.entry];\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n return result;\n}\n\n// src/useOnInView.tsx\nvar useOnInView = (onIntersectionChange, {\n threshold,\n root,\n rootMargin,\n scrollMargin,\n trackVisibility,\n delay,\n triggerOnce,\n skip\n} = {}) => {\n return useIntersectionObserverRef(\n (inView, entry, previousInView) => {\n if (previousInView === void 0 && !inView) {\n return;\n }\n onIntersectionChange(inView, entry);\n },\n {\n threshold,\n root,\n rootMargin,\n scrollMargin,\n trackVisibility,\n delay,\n triggerOnce,\n skip\n }\n );\n};\nexport {\n InView,\n defaultFallbackInView,\n observe,\n useInView,\n useOnInView\n};\n//# sourceMappingURL=index.mjs.map","import { hashKey, shallowEqualObjects } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { getDefaultState } from \"./mutation.js\";\n//#region src/mutationObserver.ts\nvar MutationObserver = class extends Subscribable {\n\t#client;\n\t#currentResult = void 0;\n\t#currentMutation;\n\t#mutateOptions;\n\tconstructor(client, options) {\n\t\tsuper();\n\t\tthis.#client = client;\n\t\tthis.setOptions(options);\n\t\tthis.bindMethods();\n\t\tthis.#updateResult();\n\t}\n\tbindMethods() {\n\t\tthis.mutate = this.mutate.bind(this);\n\t\tthis.reset = this.reset.bind(this);\n\t}\n\tsetOptions(options) {\n\t\tconst prevOptions = this.options;\n\t\tthis.options = this.#client.defaultMutationOptions(options);\n\t\tif (!shallowEqualObjects(this.options, prevOptions)) this.#client.getMutationCache().notify({\n\t\t\ttype: \"observerOptionsUpdated\",\n\t\t\tmutation: this.#currentMutation,\n\t\t\tobserver: this\n\t\t});\n\t\tif (prevOptions?.mutationKey && this.options.mutationKey && hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)) this.reset();\n\t\telse if (this.#currentMutation?.state.status === \"pending\") this.#currentMutation.setOptions(this.options);\n\t}\n\tonSubscribe() {\n\t\tif (this.listeners.size === 1 && this.#currentMutation) {\n\t\t\tthis.#currentMutation.addObserver(this);\n\t\t\tthis.#updateResult();\n\t\t}\n\t}\n\tonUnsubscribe() {\n\t\tif (!this.hasListeners()) this.#currentMutation?.removeObserver(this);\n\t}\n\tonMutationUpdate(action) {\n\t\tthis.#updateResult();\n\t\tthis.#notify(action);\n\t}\n\tgetCurrentResult() {\n\t\treturn this.#currentResult;\n\t}\n\treset() {\n\t\tthis.#currentMutation?.removeObserver(this);\n\t\tthis.#currentMutation = void 0;\n\t\tthis.#updateResult();\n\t\tthis.#notify();\n\t}\n\tmutate(variables, options) {\n\t\tthis.#mutateOptions = options;\n\t\tthis.#currentMutation?.removeObserver(this);\n\t\tthis.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);\n\t\tthis.#currentMutation.addObserver(this);\n\t\treturn this.#currentMutation.execute(variables);\n\t}\n\t#updateResult() {\n\t\tconst state = this.#currentMutation?.state ?? getDefaultState();\n\t\tthis.#currentResult = {\n\t\t\t...state,\n\t\t\tisPending: state.status === \"pending\",\n\t\t\tisSuccess: state.status === \"success\",\n\t\t\tisError: state.status === \"error\",\n\t\t\tisIdle: state.status === \"idle\",\n\t\t\tmutate: this.mutate,\n\t\t\treset: this.reset\n\t\t};\n\t}\n\t#notify(action) {\n\t\tnotifyManager.batch(() => {\n\t\t\tif (this.#mutateOptions && this.hasListeners()) {\n\t\t\t\tconst variables = this.#currentResult.variables;\n\t\t\t\tconst onMutateResult = this.#currentResult.context;\n\t\t\t\tconst context = {\n\t\t\t\t\tclient: this.#client,\n\t\t\t\t\tmeta: this.options.meta,\n\t\t\t\t\tmutationKey: this.options.mutationKey\n\t\t\t\t};\n\t\t\t\tif (action?.type === \"success\") {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.#mutateOptions.onSuccess?.(action.data, variables, onMutateResult, context);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tPromise.reject(e);\n\t\t\t\t\t}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.#mutateOptions.onSettled?.(action.data, null, variables, onMutateResult, context);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tPromise.reject(e);\n\t\t\t\t\t}\n\t\t\t\t} else if (action?.type === \"error\") {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.#mutateOptions.onError?.(action.error, variables, onMutateResult, context);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tPromise.reject(e);\n\t\t\t\t\t}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.#mutateOptions.onSettled?.(void 0, action.error, variables, onMutateResult, context);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tPromise.reject(e);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.listeners.forEach((listener) => {\n\t\t\t\tlistener(this.#currentResult);\n\t\t\t});\n\t\t});\n\t}\n};\n//#endregion\nexport { MutationObserver };\n\n//# sourceMappingURL=mutationObserver.js.map","import { replaceEqualDeep, shallowEqualObjects } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { QueryObserver } from \"./queryObserver.js\";\n//#region src/queriesObserver.ts\nfunction difference(array1, array2) {\n\tconst excludeSet = new Set(array2);\n\treturn array1.filter((x) => !excludeSet.has(x));\n}\nvar QueriesObserver = class extends Subscribable {\n\t#client;\n\t#result;\n\t#queries;\n\t#options;\n\t#observers;\n\t#combinedResult;\n\t#lastCombine;\n\t#lastResult;\n\t#lastQueryHashes;\n\t#observerMatches = [];\n\tconstructor(client, queries, options) {\n\t\tsuper();\n\t\tthis.#client = client;\n\t\tthis.#options = options;\n\t\tthis.#queries = [];\n\t\tthis.#observers = [];\n\t\tthis.#result = [];\n\t\tthis.setQueries(queries);\n\t}\n\tonSubscribe() {\n\t\tif (this.listeners.size === 1) this.#observers.forEach((observer) => {\n\t\t\tobserver.subscribe((result) => {\n\t\t\t\tthis.#onUpdate(observer, result);\n\t\t\t});\n\t\t});\n\t}\n\tonUnsubscribe() {\n\t\tif (!this.listeners.size) this.destroy();\n\t}\n\tdestroy() {\n\t\tthis.listeners = /* @__PURE__ */ new Set();\n\t\tthis.#observers.forEach((observer) => {\n\t\t\tobserver.destroy();\n\t\t});\n\t}\n\tsetQueries(queries, options) {\n\t\tthis.#queries = queries;\n\t\tthis.#options = options;\n\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\tconst queryHashes = queries.map((query) => this.#client.defaultQueryOptions(query).queryHash);\n\t\t\tif (new Set(queryHashes).size !== queryHashes.length) console.warn(\"[QueriesObserver]: Duplicate Queries found. This might result in unexpected behavior.\");\n\t\t}\n\t\tnotifyManager.batch(() => {\n\t\t\tconst prevObservers = this.#observers;\n\t\t\tconst newObserverMatches = this.#findMatchingObservers(this.#queries);\n\t\t\tnewObserverMatches.forEach((match) => match.observer.setOptions(match.defaultedQueryOptions));\n\t\t\tconst newObservers = newObserverMatches.map((match) => match.observer);\n\t\t\tconst newResult = newObservers.map((observer) => observer.getCurrentResult());\n\t\t\tconst hasLengthChange = prevObservers.length !== newObservers.length;\n\t\t\tconst hasIndexChange = newObservers.some((observer, index) => observer !== prevObservers[index]);\n\t\t\tconst hasStructuralChange = hasLengthChange || hasIndexChange;\n\t\t\tconst hasResultChange = hasStructuralChange ? true : newResult.some((result, index) => {\n\t\t\t\tconst prev = this.#result[index];\n\t\t\t\treturn !prev || !shallowEqualObjects(result, prev);\n\t\t\t});\n\t\t\tif (!hasStructuralChange && !hasResultChange) return;\n\t\t\tif (hasStructuralChange) {\n\t\t\t\tthis.#observerMatches = newObserverMatches;\n\t\t\t\tthis.#observers = newObservers;\n\t\t\t}\n\t\t\tthis.#result = newResult;\n\t\t\tif (!this.hasListeners()) return;\n\t\t\tif (hasStructuralChange) {\n\t\t\t\tdifference(prevObservers, newObservers).forEach((observer) => {\n\t\t\t\t\tobserver.destroy();\n\t\t\t\t});\n\t\t\t\tdifference(newObservers, prevObservers).forEach((observer) => {\n\t\t\t\t\tobserver.subscribe((result) => {\n\t\t\t\t\t\tthis.#onUpdate(observer, result);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t\tthis.#notify();\n\t\t});\n\t}\n\tgetCurrentResult() {\n\t\treturn this.#result;\n\t}\n\tgetQueries() {\n\t\treturn this.#observers.map((observer) => observer.getCurrentQuery());\n\t}\n\tgetObservers() {\n\t\treturn this.#observers;\n\t}\n\tgetOptimisticResult(queries, combine) {\n\t\tconst matches = this.#findMatchingObservers(queries);\n\t\tconst result = matches.map((match) => match.observer.getOptimisticResult(match.defaultedQueryOptions));\n\t\tconst queryHashes = matches.map((match) => match.defaultedQueryOptions.queryHash);\n\t\treturn [\n\t\t\tresult,\n\t\t\t(r) => {\n\t\t\t\treturn this.#combineResult(r ?? result, combine, queryHashes);\n\t\t\t},\n\t\t\t() => {\n\t\t\t\treturn this.#trackResult(result, matches);\n\t\t\t}\n\t\t];\n\t}\n\t#trackResult(result, matches) {\n\t\tconst trackedProps = /* @__PURE__ */ new Set();\n\t\treturn matches.map((match, index) => {\n\t\t\tconst observerResult = result[index];\n\t\t\treturn !match.defaultedQueryOptions.notifyOnChangeProps ? match.observer.trackResult(observerResult, (accessedProp) => {\n\t\t\t\tif (!trackedProps.has(accessedProp)) {\n\t\t\t\t\ttrackedProps.add(accessedProp);\n\t\t\t\t\tmatches.forEach((m) => {\n\t\t\t\t\t\tm.observer.trackProp(accessedProp);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}) : observerResult;\n\t\t});\n\t}\n\t#combineResult(input, combine, queryHashes) {\n\t\tif (combine) {\n\t\t\tconst lastHashes = this.#lastQueryHashes;\n\t\t\tconst queryHashesChanged = queryHashes !== void 0 && lastHashes !== void 0 && (lastHashes.length !== queryHashes.length || queryHashes.some((hash, i) => hash !== lastHashes[i]));\n\t\t\tif (this.#result !== this.#lastResult || queryHashesChanged || combine !== this.#lastCombine) {\n\t\t\t\tthis.#lastCombine = combine;\n\t\t\t\tthis.#lastResult = this.#result;\n\t\t\t\tif (queryHashes !== void 0) this.#lastQueryHashes = queryHashes;\n\t\t\t\tthis.#combinedResult = replaceEqualDeep(this.#combinedResult, combine(input));\n\t\t\t}\n\t\t\treturn this.#combinedResult;\n\t\t}\n\t\treturn input;\n\t}\n\t#shouldSkipCombine() {\n\t\treturn !this.#options?.combine || this.#observers.some((observer, index) => {\n\t\t\treturn observer.options.suspense && this.#result[index]?.data === void 0;\n\t\t});\n\t}\n\t#findMatchingObservers(queries) {\n\t\tconst prevObserversMap = /* @__PURE__ */ new Map();\n\t\tthis.#observers.forEach((observer) => {\n\t\t\tconst key = observer.options.queryHash;\n\t\t\tif (!key) return;\n\t\t\tconst previousObservers = prevObserversMap.get(key);\n\t\t\tif (previousObservers) previousObservers.push(observer);\n\t\t\telse prevObserversMap.set(key, [observer]);\n\t\t});\n\t\tconst observers = [];\n\t\tqueries.forEach((options) => {\n\t\t\tconst defaultedOptions = this.#client.defaultQueryOptions(options);\n\t\t\tconst observer = prevObserversMap.get(defaultedOptions.queryHash)?.shift() ?? new QueryObserver(this.#client, defaultedOptions);\n\t\t\tobservers.push({\n\t\t\t\tdefaultedQueryOptions: defaultedOptions,\n\t\t\t\tobserver\n\t\t\t});\n\t\t});\n\t\treturn observers;\n\t}\n\t#onUpdate(observer, result) {\n\t\tconst index = this.#observers.indexOf(observer);\n\t\tif (index !== -1) {\n\t\t\tthis.#result = this.#result.slice();\n\t\t\tthis.#result[index] = result;\n\t\t\tthis.#notify();\n\t\t}\n\t}\n\t#notify() {\n\t\tif (this.hasListeners()) {\n\t\t\tconst shouldSkipCombine = this.#shouldSkipCombine();\n\t\t\tconst previousResult = this.#combinedResult;\n\t\t\tconst newResult = shouldSkipCombine ? previousResult : this.#combineResult(this.#trackResult(this.#result, this.#observerMatches), this.#options?.combine);\n\t\t\tif (shouldSkipCombine || previousResult !== newResult) notifyManager.batch(() => {\n\t\t\t\tthis.listeners.forEach((listener) => {\n\t\t\t\t\tlistener(this.#result);\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}\n};\n//#endregion\nexport { QueriesObserver };\n\n//# sourceMappingURL=queriesObserver.js.map","\"use client\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useIsRestoring } from \"./IsRestoringProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport { ensurePreventErrorBoundaryRetry, getHasError, useClearResetErrorBoundary } from \"./errorBoundaryUtils.js\";\nimport { ensureSuspenseTimers, fetchOptimistic, shouldSuspend } from \"./suspense.js\";\nimport * as React from \"react\";\nimport { QueriesObserver, QueryObserver, noop, notifyManager } from \"@tanstack/query-core\";\n//#region src/useQueries.ts\nfunction useQueries({ queries, ...options }, queryClient) {\n\tconst client = useQueryClient(queryClient);\n\tconst isRestoring = useIsRestoring();\n\tconst errorResetBoundary = useQueryErrorResetBoundary();\n\tconst subscribed = options.subscribed !== false;\n\tconst defaultedQueries = React.useMemo(() => queries.map((opts) => {\n\t\tconst defaultedOptions = client.defaultQueryOptions(opts);\n\t\tdefaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : subscribed ? \"optimistic\" : void 0;\n\t\treturn defaultedOptions;\n\t}), [\n\t\tqueries,\n\t\tclient,\n\t\tisRestoring,\n\t\tsubscribed\n\t]);\n\tdefaultedQueries.forEach((queryOptions) => {\n\t\tensureSuspenseTimers(queryOptions);\n\t\tconst query = client.getQueryCache().get(queryOptions.queryHash);\n\t\tensurePreventErrorBoundaryRetry(queryOptions, errorResetBoundary, query);\n\t});\n\tuseClearResetErrorBoundary(errorResetBoundary);\n\tconst [observer] = React.useState(() => new QueriesObserver(client, defaultedQueries, options));\n\tconst [optimisticResult, getCombinedResult, trackResult] = observer.getOptimisticResult(defaultedQueries, options.combine);\n\tconst shouldSubscribe = !isRestoring && subscribed;\n\tReact.useSyncExternalStore(React.useCallback((onStoreChange) => shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop, [observer, shouldSubscribe]), () => observer.getCurrentResult(), () => observer.getCurrentResult());\n\tReact.useEffect(() => {\n\t\tobserver.setQueries(defaultedQueries, options);\n\t}, [\n\t\tdefaultedQueries,\n\t\toptions,\n\t\tobserver\n\t]);\n\tconst suspensePromises = optimisticResult.some((result, index) => shouldSuspend(defaultedQueries[index], result)) ? optimisticResult.flatMap((result, index) => {\n\t\tconst opts = defaultedQueries[index];\n\t\tif (opts && shouldSuspend(opts, result)) {\n\t\t\tconst queryObserver = new QueryObserver(client, opts);\n\t\t\treturn fetchOptimistic(opts, queryObserver, errorResetBoundary);\n\t\t}\n\t\treturn [];\n\t}) : [];\n\tif (suspensePromises.length > 0) throw Promise.all(suspensePromises);\n\tconst firstSingleResultWhichShouldThrow = optimisticResult.find((result, index) => {\n\t\tconst query = defaultedQueries[index];\n\t\treturn query && getHasError({\n\t\t\tresult,\n\t\t\terrorResetBoundary,\n\t\t\tthrowOnError: query.throwOnError,\n\t\t\tquery: client.getQueryCache().get(query.queryHash),\n\t\t\tsuspense: query.suspense\n\t\t});\n\t});\n\tif (firstSingleResultWhichShouldThrow) throw firstSingleResultWhichShouldThrow.error;\n\treturn getCombinedResult(trackResult());\n}\n//#endregion\nexport { useQueries };\n\n//# sourceMappingURL=useQueries.js.map","\"use client\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport * as React from \"react\";\nimport { MutationObserver, noop, notifyManager, shouldThrowError } from \"@tanstack/query-core\";\n//#region src/useMutation.ts\nfunction useMutation(options, queryClient) {\n\tconst client = useQueryClient(queryClient);\n\tconst [observer] = React.useState(() => new MutationObserver(client, options));\n\tReact.useEffect(() => {\n\t\tobserver.setOptions(options);\n\t}, [observer, options]);\n\tconst result = React.useSyncExternalStore(React.useCallback((onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)), [observer]), () => observer.getCurrentResult(), () => observer.getCurrentResult());\n\tconst mutate = React.useCallback((...args) => {\n\t\tobserver.mutate(args[0], args[1]).catch(noop);\n\t}, [observer]);\n\tif (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) throw result.error;\n\treturn {\n\t\t...result,\n\t\tmutate,\n\t\tmutateAsync: result.mutate\n\t};\n}\n//#endregion\nexport { useMutation };\n\n//# sourceMappingURL=useMutation.js.map","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);\n\nexport { createStore };\n","import React from 'react';\nimport { createStore } from 'zustand/vanilla';\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n React.useCallback(() => selector(api.getState()), [api, selector]),\n React.useCallback(() => selector(api.getInitialState()), [api, selector])\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = ((createState) => createState ? createImpl(createState) : createImpl);\n\nexport { create, useStore };\n","const reduxImpl = (reducer, initial) => (set, _get, api) => {\n api.dispatch = (action) => {\n set((state) => reducer(state, action), false, action);\n return action;\n };\n api.dispatchFromDevtools = true;\n return { dispatch: (...args) => api.dispatch(...args), ...initial };\n};\nconst redux = reduxImpl;\n\nconst shouldDispatchFromDevtools = (api) => !!api.dispatchFromDevtools && typeof api.dispatch === \"function\";\nconst trackedConnections = /* @__PURE__ */ new Map();\nconst getTrackedConnectionState = (name) => {\n const api = trackedConnections.get(name);\n if (!api) return {};\n return Object.fromEntries(\n Object.entries(api.stores).map(([key, api2]) => [key, api2.getState()])\n );\n};\nconst extractConnectionInformation = (store, extensionConnector, options) => {\n if (store === void 0) {\n return {\n type: \"untracked\",\n connection: extensionConnector.connect(options)\n };\n }\n const existingConnection = trackedConnections.get(options.name);\n if (existingConnection) {\n return { type: \"tracked\", store, ...existingConnection };\n }\n const newConnection = {\n connection: extensionConnector.connect(options),\n stores: {}\n };\n trackedConnections.set(options.name, newConnection);\n return { type: \"tracked\", store, ...newConnection };\n};\nconst removeStoreFromTrackedConnections = (name, store) => {\n if (store === void 0) return;\n const connectionInfo = trackedConnections.get(name);\n if (!connectionInfo) return;\n delete connectionInfo.stores[store];\n if (Object.keys(connectionInfo.stores).length === 0) {\n trackedConnections.delete(name);\n }\n};\nconst v8StackLineRe = /^at (?:new |async )?(.+?) \\(/;\nconst geckoStackLineRe = /^([^@]+)@/;\nfunction findCallerName(stack) {\n var _a, _b, _c;\n if (!stack) return void 0;\n const traceLines = stack.split(\"\\n\");\n const apiSetStateLineIndex = traceLines.findIndex(\n (traceLine) => traceLine.includes(\"api.setState\")\n );\n if (apiSetStateLineIndex < 0) return void 0;\n const callerLine = ((_a = traceLines[apiSetStateLineIndex + 1]) == null ? void 0 : _a.trim()) || \"\";\n return ((_b = v8StackLineRe.exec(callerLine)) == null ? void 0 : _b[1]) || ((_c = geckoStackLineRe.exec(callerLine)) == null ? void 0 : _c[1]);\n}\nconst devtoolsImpl = (fn, devtoolsOptions = {}) => (set, get, api) => {\n const { enabled, anonymousActionType, store, ...options } = devtoolsOptions;\n let extensionConnector;\n try {\n extensionConnector = (enabled != null ? enabled : (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") && window.__REDUX_DEVTOOLS_EXTENSION__;\n } catch (e) {\n }\n if (!extensionConnector) {\n return fn(set, get, api);\n }\n const { connection, ...connectionInformation } = extractConnectionInformation(store, extensionConnector, options);\n let isRecording = true;\n api.setState = ((state, replace, nameOrAction) => {\n const r = set(state, replace);\n if (!isRecording) return r;\n const action = nameOrAction === void 0 ? {\n type: anonymousActionType || findCallerName(new Error().stack) || \"anonymous\"\n } : typeof nameOrAction === \"string\" ? { type: nameOrAction } : nameOrAction;\n if (store === void 0) {\n connection == null ? void 0 : connection.send(action, get());\n return r;\n }\n connection == null ? void 0 : connection.send(\n {\n ...action,\n type: `${store}/${action.type}`\n },\n {\n ...getTrackedConnectionState(options.name),\n [store]: api.getState()\n }\n );\n return r;\n });\n api.devtools = {\n cleanup: () => {\n if (connection && typeof connection.unsubscribe === \"function\") {\n connection.unsubscribe();\n }\n removeStoreFromTrackedConnections(options.name, store);\n }\n };\n const setStateFromDevtools = (...a) => {\n const originalIsRecording = isRecording;\n isRecording = false;\n set(...a);\n isRecording = originalIsRecording;\n };\n const initialState = fn(api.setState, get, api);\n if (connectionInformation.type === \"untracked\") {\n connection == null ? void 0 : connection.init(initialState);\n } else {\n connectionInformation.stores[connectionInformation.store] = api;\n connection == null ? void 0 : connection.init(\n Object.fromEntries(\n Object.entries(connectionInformation.stores).map(([key, store2]) => [\n key,\n key === connectionInformation.store ? initialState : store2.getState()\n ])\n )\n );\n }\n if (shouldDispatchFromDevtools(api)) {\n let didWarnAboutReservedActionType = false;\n const originalDispatch = api.dispatch;\n api.dispatch = (...args) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && args[0].type === \"__setState\" && !didWarnAboutReservedActionType) {\n console.warn(\n '[zustand devtools middleware] \"__setState\" action type is reserved to set state from the devtools. Avoid using it.'\n );\n didWarnAboutReservedActionType = true;\n }\n originalDispatch(...args);\n };\n }\n connection.subscribe((message) => {\n var _a;\n switch (message.type) {\n case \"ACTION\":\n if (typeof message.payload !== \"string\") {\n console.error(\n \"[zustand devtools middleware] Unsupported action format\"\n );\n return;\n }\n return parseJsonThen(\n message.payload,\n (action) => {\n if (action.type === \"__setState\") {\n if (store === void 0) {\n setStateFromDevtools(action.state);\n return;\n }\n if (Object.keys(action.state).length !== 1) {\n console.error(\n `\n [zustand devtools middleware] Unsupported __setState action format.\n When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),\n and value of this only key should be a state object. Example: { \"type\": \"__setState\", \"state\": { \"abc123Store\": { \"foo\": \"bar\" } } }\n `\n );\n }\n const stateFromDevtools = action.state[store];\n if (stateFromDevtools === void 0 || stateFromDevtools === null) {\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(stateFromDevtools)) {\n setStateFromDevtools(stateFromDevtools);\n }\n return;\n }\n if (shouldDispatchFromDevtools(api)) {\n api.dispatch(action);\n }\n }\n );\n case \"DISPATCH\":\n switch (message.payload.type) {\n case \"RESET\":\n setStateFromDevtools(initialState);\n if (store === void 0) {\n return connection == null ? void 0 : connection.init(api.getState());\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"COMMIT\":\n if (store === void 0) {\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"ROLLBACK\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n setStateFromDevtools(state[store]);\n connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n });\n case \"JUMP_TO_STATE\":\n case \"JUMP_TO_ACTION\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(state[store])) {\n setStateFromDevtools(state[store]);\n }\n });\n case \"IMPORT_STATE\": {\n const { nextLiftedState } = message.payload;\n const lastComputedState = (_a = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a.state;\n if (!lastComputedState) return;\n if (store === void 0) {\n setStateFromDevtools(lastComputedState);\n } else {\n setStateFromDevtools(lastComputedState[store]);\n }\n connection == null ? void 0 : connection.send(\n null,\n // FIXME no-any\n nextLiftedState\n );\n return;\n }\n case \"PAUSE_RECORDING\":\n return isRecording = !isRecording;\n }\n return;\n }\n });\n return initialState;\n};\nconst devtools = devtoolsImpl;\nconst parseJsonThen = (stringified, fn) => {\n let parsed;\n try {\n parsed = JSON.parse(stringified);\n } catch (e) {\n console.error(\n \"[zustand devtools middleware] Could not parse the received json\",\n e\n );\n }\n if (parsed !== void 0) fn(parsed);\n};\n\nconst subscribeWithSelectorImpl = (fn) => (set, get, api) => {\n const origSubscribe = api.subscribe;\n api.subscribe = ((selector, optListener, options) => {\n let listener = selector;\n if (optListener) {\n const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is;\n let currentSlice = selector(api.getState());\n listener = (state) => {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n optListener(currentSlice = nextSlice, previousSlice);\n }\n };\n if (options == null ? void 0 : options.fireImmediately) {\n optListener(currentSlice, currentSlice);\n }\n }\n return origSubscribe(listener);\n });\n const initialState = fn(set, get, api);\n return initialState;\n};\nconst subscribeWithSelector = subscribeWithSelectorImpl;\n\nfunction combine(initialState, create) {\n return (...args) => Object.assign({}, initialState, create(...args));\n}\n\nfunction createJSONStorage(getStorage, options) {\n let storage;\n try {\n storage = getStorage();\n } catch (e) {\n return;\n }\n const persistStorage = {\n getItem: (name) => {\n var _a;\n const parse = (str2) => {\n if (str2 === null) {\n return null;\n }\n return JSON.parse(str2, options == null ? void 0 : options.reviver);\n };\n const str = (_a = storage.getItem(name)) != null ? _a : null;\n if (str instanceof Promise) {\n return str.then(parse);\n }\n return parse(str);\n },\n setItem: (name, newValue) => storage.setItem(name, JSON.stringify(newValue, options == null ? void 0 : options.replacer)),\n removeItem: (name) => storage.removeItem(name)\n };\n return persistStorage;\n}\nconst toThenable = (fn) => (input) => {\n try {\n const result = fn(input);\n if (result instanceof Promise) {\n return result;\n }\n return {\n then(onFulfilled) {\n return toThenable(onFulfilled)(result);\n },\n catch(_onRejected) {\n return this;\n }\n };\n } catch (e) {\n return {\n then(_onFulfilled) {\n return this;\n },\n catch(onRejected) {\n return toThenable(onRejected)(e);\n }\n };\n }\n};\nconst persistImpl = (config, baseOptions) => (set, get, api) => {\n let options = {\n storage: createJSONStorage(() => window.localStorage),\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => ({\n ...currentState,\n ...persistedState\n }),\n ...baseOptions\n };\n let hasHydrated = false;\n let hydrationVersion = 0;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage = options.storage;\n if (!storage) {\n return config(\n (...args) => {\n console.warn(\n `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n );\n set(...args);\n },\n get,\n api\n );\n }\n const setItem = () => {\n const state = options.partialize({ ...get() });\n return storage.setItem(options.name, {\n state,\n version: options.version\n });\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n return setItem();\n };\n const configResult = config(\n (...args) => {\n set(...args);\n return setItem();\n },\n get,\n api\n );\n api.getInitialState = () => configResult;\n let stateFromStorage;\n const hydrate = () => {\n var _a, _b;\n if (!storage) return;\n const currentVersion = ++hydrationVersion;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => {\n var _a2;\n return cb((_a2 = get()) != null ? _a2 : configResult);\n });\n const postRehydrationCallback = ((_b = options.onRehydrateStorage) == null ? void 0 : _b.call(options, (_a = get()) != null ? _a : configResult)) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n const migration = options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n );\n if (migration instanceof Promise) {\n return migration.then((result) => [true, result]);\n }\n return [true, migration];\n }\n console.error(\n `State loaded from storage couldn't be migrated since no migrate function was provided`\n );\n } else {\n return [false, deserializedStorageValue.state];\n }\n }\n return [false, void 0];\n }).then((migrationResult) => {\n var _a2;\n if (currentVersion !== hydrationVersion) {\n return;\n }\n const [migrated, migratedState] = migrationResult;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n if (migrated) {\n return setItem();\n }\n }).then(() => {\n if (currentVersion !== hydrationVersion) {\n return;\n }\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(get(), void 0);\n stateFromStorage = get();\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n if (currentVersion !== hydrationVersion) {\n return;\n }\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = {\n ...options,\n ...newOptions\n };\n if (newOptions.storage) {\n storage = newOptions.storage;\n }\n },\n clearStorage: () => {\n ++hydrationVersion;\n storage == null ? void 0 : storage.removeItem(options.name);\n },\n getOptions: () => options,\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n if (!options.skipHydration) {\n hydrate();\n }\n return stateFromStorage || configResult;\n};\nconst persist = persistImpl;\n\nfunction ssrSafe(config, isSSR = typeof window === \"undefined\") {\n return (set, get, api) => {\n if (!isSSR) {\n return config(set, get, api);\n }\n const ssrSet = () => {\n throw new Error(\"Cannot set state of Zustand store in SSR\");\n };\n api.setState = ssrSet;\n return config(ssrSet, get, api);\n };\n}\n\nexport { combine, createJSONStorage, devtools, persist, redux, subscribeWithSelector, ssrSafe as unstable_ssrSafe };\n","const isIterable = (obj) => Symbol.iterator in obj;\nconst hasIterableEntries = (value) => (\n // HACK: avoid checking entries type\n \"entries\" in value\n);\nconst compareEntries = (valueA, valueB) => {\n const mapA = valueA instanceof Map ? valueA : new Map(valueA.entries());\n const mapB = valueB instanceof Map ? valueB : new Map(valueB.entries());\n if (mapA.size !== mapB.size) {\n return false;\n }\n for (const [key, value] of mapA) {\n if (!mapB.has(key) || !Object.is(value, mapB.get(key))) {\n return false;\n }\n }\n return true;\n};\nconst compareIterables = (valueA, valueB) => {\n const iteratorA = valueA[Symbol.iterator]();\n const iteratorB = valueB[Symbol.iterator]();\n let nextA = iteratorA.next();\n let nextB = iteratorB.next();\n while (!nextA.done && !nextB.done) {\n if (!Object.is(nextA.value, nextB.value)) {\n return false;\n }\n nextA = iteratorA.next();\n nextB = iteratorB.next();\n }\n return !!nextA.done && !!nextB.done;\n};\nfunction shallow(valueA, valueB) {\n if (Object.is(valueA, valueB)) {\n return true;\n }\n if (typeof valueA !== \"object\" || valueA === null || typeof valueB !== \"object\" || valueB === null) {\n return false;\n }\n if (Object.getPrototypeOf(valueA) !== Object.getPrototypeOf(valueB)) {\n return false;\n }\n if (isIterable(valueA) && isIterable(valueB)) {\n if (hasIterableEntries(valueA) && hasIterableEntries(valueB)) {\n return compareEntries(valueA, valueB);\n }\n return compareIterables(valueA, valueB);\n }\n return compareEntries(\n { entries: () => Object.entries(valueA) },\n { entries: () => Object.entries(valueB) }\n );\n}\n\nexport { shallow };\n","import React from 'react';\nimport { shallow } from 'zustand/vanilla/shallow';\n\nfunction useShallow(selector) {\n const prev = React.useRef(void 0);\n return (state) => {\n const next = selector(state);\n return shallow(prev.current, next) ? prev.current : prev.current = next;\n };\n}\n\nexport { useShallow };\n","// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>\n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.5\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i<alphabet.length ; i++) {\n baseReverseDic[alphabet][alphabet.charAt(i)] = i;\n }\n }\n return baseReverseDic[alphabet][character];\n}\n\nvar LZString = {\n compressToBase64 : function (input) {\n if (input == null) return \"\";\n var res = LZString._compress(input, 6, function(a){return keyStrBase64.charAt(a);});\n switch (res.length % 4) { // To produce valid Base64\n default: // When could this happen ?\n case 0 : return res;\n case 1 : return res+\"===\";\n case 2 : return res+\"==\";\n case 3 : return res+\"=\";\n }\n },\n\n decompressFromBase64 : function (input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrBase64, input.charAt(index)); });\n },\n\n compressToUTF16 : function (input) {\n if (input == null) return \"\";\n return LZString._compress(input, 15, function(a){return f(a+32);}) + \" \";\n },\n\n decompressFromUTF16: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 16384, function(index) { return compressed.charCodeAt(index) - 32; });\n },\n\n //compress into uint8array (UCS-2 big endian format)\n compressToUint8Array: function (uncompressed) {\n var compressed = LZString.compress(uncompressed);\n var buf=new Uint8Array(compressed.length*2); // 2 bytes per character\n\n for (var i=0, TotalLen=compressed.length; i<TotalLen; i++) {\n var current_value = compressed.charCodeAt(i);\n buf[i*2] = current_value >>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i<TotalLen; i++) {\n buf[i]=compressed[i*2]*256+compressed[i*2+1];\n }\n\n var result = [];\n buf.forEach(function (c) {\n result.push(f(c));\n });\n return LZString.decompress(result.join(''));\n\n }\n\n },\n\n\n //compress into a string that is already URI encoded\n compressToEncodedURIComponent: function (input) {\n if (input == null) return \"\";\n return LZString._compress(input, 6, function(a){return keyStrUriSafe.charAt(a);});\n },\n\n //decompress from an output of compressToEncodedURIComponent\n decompressFromEncodedURIComponent:function (input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n input = input.replace(/ /g, \"+\");\n return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrUriSafe, input.charAt(index)); });\n },\n\n compress: function (uncompressed) {\n return LZString._compress(uncompressed, 16, function(a){return f(a);});\n },\n _compress: function (uncompressed, bitsPerChar, getCharFromInt) {\n if (uncompressed == null) return \"\";\n var i, value,\n context_dictionary= {},\n context_dictionaryToCreate= {},\n context_c=\"\",\n context_wc=\"\",\n context_w=\"\",\n context_enlargeIn= 2, // Compensate for the first entry which should not count\n context_dictSize= 3,\n context_numBits= 2,\n context_data=[],\n context_data_val=0,\n context_data_position=0,\n ii;\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii);\n if (!Object.prototype.hasOwnProperty.call(context_dictionary,context_c)) {\n context_dictionary[context_c] = context_dictSize++;\n context_dictionaryToCreate[context_c] = true;\n }\n\n context_wc = context_w + context_c;\n if (Object.prototype.hasOwnProperty.call(context_dictionary,context_wc)) {\n context_w = context_wc;\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<8 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position ==bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<16 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<8 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<16 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n} else if( typeof angular !== 'undefined' && angular != null ) {\n angular.module('LZString', [])\n .factory('LZString', function () {\n return LZString;\n });\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10],"mappings":";;;;;AASA,IAAI,oBAA8B,IAAI,IAAI,GACtC,oBAA0B,IAAI,QAAQ,GACtC,IAAS,GACT;AAIJ,SAAS,EAAU,GAAM;CAKvB,OAJK,IACD,EAAQ,IAAI,CAAI,IAAU,EAAQ,IAAI,CAAI,KAC9C,KAAU,GACV,EAAQ,IAAI,GAAM,EAAO,SAAS,CAAC,GAC5B,EAAQ,IAAI,CAAI,KAJL;AAKpB;AACA,SAAS,EAAY,GAAS;CAC5B,OAAO,OAAO,KAAK,CAAO,CAAC,CAAC,KAAK,CAAC,CAAC,QAChC,MAAQ,EAAQ,OAAS,KAAK,CACjC,CAAC,CAAC,KAAK,MACE,GAAG,EAAI,GAAG,MAAQ,SAAS,EAAU,EAAQ,IAAI,IAAI,EAAQ,IACrE,CAAC,CAAC,SAAS;AACd;AACA,SAAS,EAAe,GAAS;CAC/B,IAAM,IAAK,EAAY,CAAO,GAC1B,IAAW,EAAY,IAAI,CAAE;CACjC,IAAI,CAAC,GAAU;EACb,IAAM,oBAA2B,IAAI,IAAI,GACrC,GACE,IAAW,IAAI,sBAAsB,MAAY;GACrD,EAAQ,SAAS,MAAU;IAEzB,IAAM,IAAS,EAAM,kBAAkB,EAAW,MAAM,MAAc,EAAM,qBAAqB,CAAS;IAI1G,AAHI,EAAQ,mBAA0B,EAAM,cAAc,WACxD,EAAM,YAAY,IAEpB,CAAC,GAAS,EAAS,IAAI,EAAM,MAAM,KAAkB,CAAC,CAAC,CAAC,CAAC,SAAS,MAAa;KAC7E,EAAS,GAAQ,CAAK;IACxB,CAAC;GACH,CAAC;EACH,GAAG,CAAO;EAOV,AANA,IAAa,EAAS,eAAe,MAAM,QAAQ,EAAQ,SAAS,IAAI,EAAQ,YAAY,CAAC,EAAQ,aAAa,CAAC,IACnH,IAAW;GACT;GACA;GACA;EACF,GACA,EAAY,IAAI,GAAI,CAAQ;CAC9B;CACA,OAAO;AACT;AACA,SAAS,EAAQ,GAAS,GAAU,IAAU,CAAC,GAAG,IAAiB,GAAkB;CACnF,IAAW,OAAO,yBAAyB,UAAe,MAAmB,KAAK,GAAG;EACnF,IAAM,IAAS,EAAQ,sBAAsB;EAU7C,OATA,EAAS,GAAgB;GACvB,gBAAgB;GAChB,QAAQ;GACR,mBAAmB,OAAO,EAAQ,aAAc,WAAW,EAAQ,YAAY;GAC/E,MAAM;GACN,oBAAoB;GACpB,kBAAkB;GAClB,YAAY;EACd,CAAC,SACY,CACb;CACF;CACA,IAAM,EAAE,OAAI,aAAU,gBAAa,EAAe,CAAO,GACnD,IAAY,EAAS,IAAI,CAAO,KAAK,CAAC;CAK5C,AAJK,EAAS,IAAI,CAAO,KACvB,EAAS,IAAI,GAAS,CAAS,GAEjC,EAAU,KAAK,CAAQ,GACvB,EAAS,QAAQ,CAAO;CACxB,IAAI,IAAa;CACjB,OAAO,WAAqB;EACtB,MACJ,IAAa,IACb,EAAU,OAAO,EAAU,QAAQ,CAAQ,GAAG,CAAC,GAC3C,EAAU,WAAW,MACvB,EAAS,OAAO,CAAO,GACvB,EAAS,UAAU,CAAO,IAExB,EAAS,SAAS,MACpB,EAAS,WAAW,GACpB,EAAY,OAAO,CAAE;CAEzB;AACF;AA8HA,IAAI,IAAqB,QAAQ,IAAIA,GAAQ,oBAAoB,GAC7D,KAAgB,KAAkDA,EAAO;AAC7E,SAAS,EAAmB,GAAU;CACpC,OAAQ,GAAqC,WAAW,KAAK,KAAM;AACrE;AACA,IAAI,IAAmB,EAAmBA,EAAO,OAAO;AACxD,SAAS,EAA2B,GAAsB,EACxD,cACA,SACA,eACA,iBACA,oBACA,UACA,mBACA,SACA,kBACC;CACD,IAAM,IAA0BA,EAAO,OAAO,CAAoB,GAC5D,IAAmBA,EAAO,OAAO;EACrC,MAAM;EACN,MAAM,KAAK;EACX,OAAO;CACT,CAAC;CAOD,OANK,MACH,EAAwB,UAAU,IAEpC,SAAoB;EAClB,EAAwB,UAAU;CACpC,GAAG,CAAC,CAAoB,CAAC,GAClBA,EAAO,YACZ,SAAS,EAAO,GAAS;EACvB,IAAM,IAAgB,EAAiB;EACvC,IAAI,CAAC,KAAW,EAAc,UAAU,GACtC;EAEF,IAAI,MAAY,EAAc,MAE5B,OADA,EAAc,QAAQ,GACf,IAAmB,EAAc,OAAO,KAAK;EAEtD,IAAM,IAAU,EAAc;EAG9B,IAFA,EAAc,OAAO,KAAK,GAC1B,IAAmC,GAC/B,CAAC,KAAW,GAAM;GAEpB,AADA,EAAc,OAAO,MACrB,EAAc,QAAQ,IAAU,IAAS;GACzC;EACF;EAEA,AADA,EAAc,OAAO,GACrB,EAAc,QAAQ;EACtB,IAAI,GACA;EACJ,SAAS,IAAgB;GAEvB,AADA,IAAmD,GAC/C,EAAc,SAAS,MACzB,EAAc,OAAO,MACrB,EAAc,OAAO,KAAK;EAE9B;EAwBA,OAvBA,EAAc,OAAO,GACrB,IAAkB,EAChB,IACC,GAAQ,MAAU;GAOjB,AANA,EAAwB,QACtB,GACA,GACA,CACF,GACA,IAAiB,GACb,KAAe,KAAQ,EAAc;EAC3C,GACA;GACE;GACA;GACA;GACA;GACA;GACA;EACF,GACA,CACF,GACI,EAAc,SAAS,KAAe,EAAgB,GACnD,IAAmB,EAAc,OAAO,KAAK;CACtD,GACA;EACE,MAAM,QAAQ,CAAS,IAAI,EAAU,SAAS,IAAI;EAClD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CACF;AACF;AAGA,IAAI,IAA4B,OAAO,SAAW,MAAc,EAAO,YAAY,EAAO;AAC1F,SAAS,GAAU,EACjB,cACA,UACA,oBACA,eACA,iBACA,SACA,gBACA,SACA,kBACA,mBACA,gBACE,CAAC,GAAG;CACN,IAAM,IAAgB,EAAO,OAAO,CAAa,GAC3C,CAAC,GAAO,KAAY,EAAO,SAAS;EACxC,QAAQ,CAAC,CAAC;EACV,OAAO,KAAK;CACd,CAAC,GACK,IAAc,GACjB,GAAQ,MAAU;EACjB,IAAM,IAAiB,EAAc;EACrC,EAAc,UAAU,GACpB,QAAmB,KAAK,KAAK,CAAC,OAGlC,EAAS;GAAE;GAAQ;EAAM,CAAC,GAC1B,IAAqC,GAAQ,CAAK;CACpD,GACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CACF,GACM,IAAW,EAAO,OAAO;EAC7B,MAAM;EACN,OAAO;CACT,CAAC,GACK,IAAS,EAAO,YACpB,SAAiB,GAAM;EACrB,AAAI,KACF,EAAS,QAAQ,OAAO,GACxB,EAAS,QAAQ,QAAQ,MAChB,EAAS,QAAQ,SAC1B,EAAS,QAAQ,OAAO,MACxB,EAAS,QAAQ,QAAQ;EAE3B,IAAM,IAAU,EAAY,CAAI;EAC3B,OACL,aAAa;GAEX,AADA,EAAQ,GACJ,EAAS,QAAQ,SAAS,MAC5B,EAAS,QAAQ,OAAO,MACxB,EAAS,QAAQ,QAAQ;EAE7B;CACF,GACA,CAAC,CAAW,CACd;CACA,QAAgC;EACzB,EAAS,QAAQ,UACtB,EAAS,QAAQ,QAAQ,IACrB,OAAe,OACnB,EAAS;GAAE,QAAQ,CAAC,CAAC;GAAe,OAAO,KAAK;EAAE,CAAC,GACnD,EAAc,UAAU;CAC1B,CAAC;CACD,IAAM,IAAS;EAAC;EAAQ,EAAM;EAAQ,EAAM;CAAK;CAIjD,OAHA,EAAO,MAAM,EAAO,IACpB,EAAO,SAAS,EAAO,IACvB,EAAO,QAAQ,EAAO,IACf;AACT;;;ACvYA,IAAI,KAAmB,cAAc,EAAa;CACjD;CACA,KAAiB,KAAK;CACtB;CACA;CACA,YAAY,GAAQ,GAAS;EAK5B,AAJA,MAAM,GACN,KAAK,KAAU,GACf,KAAK,WAAW,CAAO,GACvB,KAAK,YAAY,GACjB,KAAK,GAAc;CACpB;CACA,cAAc;EAEb,AADA,KAAK,SAAS,KAAK,OAAO,KAAK,IAAI,GACnC,KAAK,QAAQ,KAAK,MAAM,KAAK,IAAI;CAClC;CACA,WAAW,GAAS;EACnB,IAAM,IAAc,KAAK;EAOzB,AANA,KAAK,UAAU,KAAK,GAAQ,uBAAuB,CAAO,GACrD,EAAoB,KAAK,SAAS,CAAW,KAAG,KAAK,GAAQ,iBAAiB,CAAC,CAAC,OAAO;GAC3F,MAAM;GACN,UAAU,KAAK;GACf,UAAU;EACX,CAAC,GACG,GAAa,eAAe,KAAK,QAAQ,eAAe,EAAQ,EAAY,WAAW,MAAM,EAAQ,KAAK,QAAQ,WAAW,IAAG,KAAK,MAAM,IACtI,KAAK,IAAkB,MAAM,WAAW,aAAW,KAAK,GAAiB,WAAW,KAAK,OAAO;CAC1G;CACA,cAAc;EACb,AAAI,KAAK,UAAU,SAAS,KAAK,KAAK,OACrC,KAAK,GAAiB,YAAY,IAAI,GACtC,KAAK,GAAc;CAErB;CACA,gBAAgB;EACf,AAAK,KAAK,aAAa,KAAG,KAAK,IAAkB,eAAe,IAAI;CACrE;CACA,iBAAiB,GAAQ;EAExB,AADA,KAAK,GAAc,GACnB,KAAK,GAAQ,CAAM;CACpB;CACA,mBAAmB;EAClB,OAAO,KAAK;CACb;CACA,QAAQ;EAIP,AAHA,KAAK,IAAkB,eAAe,IAAI,GAC1C,KAAK,KAAmB,KAAK,GAC7B,KAAK,GAAc,GACnB,KAAK,GAAQ;CACd;CACA,OAAO,GAAW,GAAS;EAK1B,OAJA,KAAK,KAAiB,GACtB,KAAK,IAAkB,eAAe,IAAI,GAC1C,KAAK,KAAmB,KAAK,GAAQ,iBAAiB,CAAC,CAAC,MAAM,KAAK,IAAS,KAAK,OAAO,GACxF,KAAK,GAAiB,YAAY,IAAI,GAC/B,KAAK,GAAiB,QAAQ,CAAS;CAC/C;CACA,KAAgB;EACf,IAAM,IAAQ,KAAK,IAAkB,SAAS,EAAgB;EAC9D,KAAK,KAAiB;GACrB,GAAG;GACH,WAAW,EAAM,WAAW;GAC5B,WAAW,EAAM,WAAW;GAC5B,SAAS,EAAM,WAAW;GAC1B,QAAQ,EAAM,WAAW;GACzB,QAAQ,KAAK;GACb,OAAO,KAAK;EACb;CACD;CACA,GAAQ,GAAQ;EACf,EAAc,YAAY;GACzB,IAAI,KAAK,MAAkB,KAAK,aAAa,GAAG;IAC/C,IAAM,IAAY,KAAK,GAAe,WAChC,IAAiB,KAAK,GAAe,SACrC,IAAU;KACf,QAAQ,KAAK;KACb,MAAM,KAAK,QAAQ;KACnB,aAAa,KAAK,QAAQ;IAC3B;IACA,IAAI,GAAQ,SAAS,WAAW;KAC/B,IAAI;MACH,KAAK,GAAe,YAAY,EAAO,MAAM,GAAW,GAAgB,CAAO;KAChF,SAAS,GAAG;MACX,QAAQ,OAAO,CAAC;KACjB;KACA,IAAI;MACH,KAAK,GAAe,YAAY,EAAO,MAAM,MAAM,GAAW,GAAgB,CAAO;KACtF,SAAS,GAAG;MACX,QAAQ,OAAO,CAAC;KACjB;IACD,OAAO,IAAI,GAAQ,SAAS,SAAS;KACpC,IAAI;MACH,KAAK,GAAe,UAAU,EAAO,OAAO,GAAW,GAAgB,CAAO;KAC/E,SAAS,GAAG;MACX,QAAQ,OAAO,CAAC;KACjB;KACA,IAAI;MACH,KAAK,GAAe,YAAY,KAAK,GAAG,EAAO,OAAO,GAAW,GAAgB,CAAO;KACzF,SAAS,GAAG;MACX,QAAQ,OAAO,CAAC;KACjB;IACD;GACD;GACA,KAAK,UAAU,SAAS,MAAa;IACpC,EAAS,KAAK,EAAc;GAC7B,CAAC;EACF,CAAC;CACF;AACD;;;AC3GA,SAAS,EAAW,GAAQ,GAAQ;CACnC,IAAM,IAAa,IAAI,IAAI,CAAM;CACjC,OAAO,EAAO,QAAQ,MAAM,CAAC,EAAW,IAAI,CAAC,CAAC;AAC/C;AACA,IAAI,KAAkB,cAAc,EAAa;CAChD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,KAAmB,CAAC;CACpB,YAAY,GAAQ,GAAS,GAAS;EAOrC,AANA,MAAM,GACN,KAAK,KAAU,GACf,KAAK,KAAW,GAChB,KAAK,KAAW,CAAC,GACjB,KAAK,KAAa,CAAC,GACnB,KAAK,KAAU,CAAC,GAChB,KAAK,WAAW,CAAO;CACxB;CACA,cAAc;EACb,AAAI,KAAK,UAAU,SAAS,KAAG,KAAK,GAAW,SAAS,MAAa;GACpE,EAAS,WAAW,MAAW;IAC9B,KAAK,GAAU,GAAU,CAAM;GAChC,CAAC;EACF,CAAC;CACF;CACA,gBAAgB;EACf,AAAK,KAAK,UAAU,QAAM,KAAK,QAAQ;CACxC;CACA,UAAU;EAET,AADA,KAAK,4BAA4B,IAAI,IAAI,GACzC,KAAK,GAAW,SAAS,MAAa;GACrC,EAAS,QAAQ;EAClB,CAAC;CACF;CACA,WAAW,GAAS,GAAS;EAG5B,IAFA,KAAK,KAAW,GAChB,KAAK,KAAW,GAChB,QAAA,IAAA,aAA6B,cAAc;GAC1C,IAAM,IAAc,EAAQ,KAAK,MAAU,KAAK,GAAQ,oBAAoB,CAAK,CAAC,CAAC,SAAS;GAC5F,AAAI,IAAI,IAAI,CAAW,CAAC,CAAC,SAAS,EAAY,UAAQ,QAAQ,KAAK,uFAAuF;EAC3J;EACA,EAAc,YAAY;GACzB,IAAM,IAAgB,KAAK,IACrB,IAAqB,KAAK,GAAuB,KAAK,EAAQ;GACpE,EAAmB,SAAS,MAAU,EAAM,SAAS,WAAW,EAAM,qBAAqB,CAAC;GAC5F,IAAM,IAAe,EAAmB,KAAK,MAAU,EAAM,QAAQ,GAC/D,IAAY,EAAa,KAAK,MAAa,EAAS,iBAAiB,CAAC,GACtE,IAAkB,EAAc,WAAW,EAAa,QACxD,IAAiB,EAAa,MAAM,GAAU,MAAU,MAAa,EAAc,EAAM,GACzF,IAAsB,KAAmB,GACzC,IAAkB,IAAsB,KAAO,EAAU,MAAM,GAAQ,MAAU;IACtF,IAAM,IAAO,KAAK,GAAQ;IAC1B,OAAO,CAAC,KAAQ,CAAC,EAAoB,GAAQ,CAAI;GAClD,CAAC;GACG,CAAC,KAAuB,CAAC,MACzB,MACH,KAAK,KAAmB,GACxB,KAAK,KAAa,IAEnB,KAAK,KAAU,GACV,KAAK,aAAa,MACnB,MACH,EAAW,GAAe,CAAY,CAAC,CAAC,SAAS,MAAa;IAC7D,EAAS,QAAQ;GAClB,CAAC,GACD,EAAW,GAAc,CAAa,CAAC,CAAC,SAAS,MAAa;IAC7D,EAAS,WAAW,MAAW;KAC9B,KAAK,GAAU,GAAU,CAAM;IAChC,CAAC;GACF,CAAC,IAEF,KAAK,GAAQ;EACd,CAAC;CACF;CACA,mBAAmB;EAClB,OAAO,KAAK;CACb;CACA,aAAa;EACZ,OAAO,KAAK,GAAW,KAAK,MAAa,EAAS,gBAAgB,CAAC;CACpE;CACA,eAAe;EACd,OAAO,KAAK;CACb;CACA,oBAAoB,GAAS,GAAS;EACrC,IAAM,IAAU,KAAK,GAAuB,CAAO,GAC7C,IAAS,EAAQ,KAAK,MAAU,EAAM,SAAS,oBAAoB,EAAM,qBAAqB,CAAC,GAC/F,IAAc,EAAQ,KAAK,MAAU,EAAM,sBAAsB,SAAS;EAChF,OAAO;GACN;IACC,MACO,KAAK,GAAe,KAAK,GAAQ,GAAS,CAAW;SAGrD,KAAK,GAAa,GAAQ,CAAO;EAE1C;CACD;CACA,GAAa,GAAQ,GAAS;EAC7B,IAAM,oBAA+B,IAAI,IAAI;EAC7C,OAAO,EAAQ,KAAK,GAAO,MAAU;GACpC,IAAM,IAAiB,EAAO;GAC9B,OAAQ,EAAM,sBAAsB,sBAO/B,IAPqD,EAAM,SAAS,YAAY,IAAiB,MAAiB;IACtH,AAAK,EAAa,IAAI,CAAY,MACjC,EAAa,IAAI,CAAY,GAC7B,EAAQ,SAAS,MAAM;KACtB,EAAE,SAAS,UAAU,CAAY;IAClC,CAAC;GAEH,CAAC;EACF,CAAC;CACF;CACA,GAAe,GAAO,GAAS,GAAa;EAC3C,IAAI,GAAS;GACZ,IAAM,IAAa,KAAK,IAClB,IAAqB,MAAgB,KAAK,KAAK,MAAe,KAAK,MAAM,EAAW,WAAW,EAAY,UAAU,EAAY,MAAM,GAAM,MAAM,MAAS,EAAW,EAAE;GAO/K,QANI,KAAK,OAAY,KAAK,MAAe,KAAsB,MAAY,KAAK,QAC/E,KAAK,KAAe,GACpB,KAAK,KAAc,KAAK,IACpB,MAAgB,KAAK,MAAG,KAAK,KAAmB,IACpD,KAAK,KAAkB,EAAiB,KAAK,IAAiB,EAAQ,CAAK,CAAC,IAEtE,KAAK;EACb;EACA,OAAO;CACR;CACA,KAAqB;EACpB,OAAO,CAAC,KAAK,IAAU,WAAW,KAAK,GAAW,MAAM,GAAU,MAC1D,EAAS,QAAQ,YAAY,KAAK,GAAQ,EAAM,EAAE,SAAS,KAAK,CACvE;CACF;CACA,GAAuB,GAAS;EAC/B,IAAM,oBAAmC,IAAI,IAAI;EACjD,KAAK,GAAW,SAAS,MAAa;GACrC,IAAM,IAAM,EAAS,QAAQ;GAC7B,IAAI,CAAC,GAAK;GACV,IAAM,IAAoB,EAAiB,IAAI,CAAG;GAClD,AAAI,IAAmB,EAAkB,KAAK,CAAQ,IACjD,EAAiB,IAAI,GAAK,CAAC,CAAQ,CAAC;EAC1C,CAAC;EACD,IAAM,IAAY,CAAC;EASnB,OARA,EAAQ,SAAS,MAAY;GAC5B,IAAM,IAAmB,KAAK,GAAQ,oBAAoB,CAAO,GAC3D,IAAW,EAAiB,IAAI,EAAiB,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,EAAc,KAAK,IAAS,CAAgB;GAC9H,EAAU,KAAK;IACd,uBAAuB;IACvB;GACD,CAAC;EACF,CAAC,GACM;CACR;CACA,GAAU,GAAU,GAAQ;EAC3B,IAAM,IAAQ,KAAK,GAAW,QAAQ,CAAQ;EAC9C,AAAI,MAAU,OACb,KAAK,KAAU,KAAK,GAAQ,MAAM,GAClC,KAAK,GAAQ,KAAS,GACtB,KAAK,GAAQ;CAEf;CACA,KAAU;EACT,IAAI,KAAK,aAAa,GAAG;GACxB,IAAM,IAAoB,KAAK,GAAmB,GAC5C,IAAiB,KAAK,IACtB,IAAY,IAAoB,IAAiB,KAAK,GAAe,KAAK,GAAa,KAAK,IAAS,KAAK,EAAgB,GAAG,KAAK,IAAU,OAAO;GACzJ,CAAI,KAAqB,MAAmB,MAAW,EAAc,YAAY;IAChF,KAAK,UAAU,SAAS,MAAa;KACpC,EAAS,KAAK,EAAO;IACtB,CAAC;GACF,CAAC;EACF;CACD;AACD;;;AC5KA,SAAS,GAAW,EAAE,YAAS,GAAG,KAAW,GAAa;CACzD,IAAM,IAAS,EAAe,CAAW,GACnC,IAAc,EAAe,GAC7B,IAAqB,EAA2B,GAChD,IAAa,EAAQ,eAAe,IACpC,IAAmBC,EAAM,cAAc,EAAQ,KAAK,MAAS;EAClE,IAAM,IAAmB,EAAO,oBAAoB,CAAI;EAExD,OADA,EAAiB,qBAAqB,IAAc,gBAAgB,IAAa,eAAe,KAAK,GAC9F;CACR,CAAC,GAAG;EACH;EACA;EACA;EACA;CACD,CAAC;CAMD,AALA,EAAiB,SAAS,MAAiB;EAC1C,EAAqB,CAAY;EACjC,IAAM,IAAQ,EAAO,cAAc,CAAC,CAAC,IAAI,EAAa,SAAS;EAC/D,EAAgC,GAAc,GAAoB,CAAK;CACxE,CAAC,GACD,EAA2B,CAAkB;CAC7C,IAAM,CAAC,KAAYA,EAAM,eAAe,IAAI,GAAgB,GAAQ,GAAkB,CAAO,CAAC,GACxF,CAAC,GAAkB,GAAmB,KAAe,EAAS,oBAAoB,GAAkB,EAAQ,OAAO,GACnH,IAAkB,CAAC,KAAe;CAExC,AADA,EAAM,qBAAqBA,EAAM,aAAa,MAAkB,IAAkB,EAAS,UAAU,EAAc,WAAW,CAAa,CAAC,IAAI,GAAM,CAAC,GAAU,CAAe,CAAC,SAAS,EAAS,iBAAiB,SAAS,EAAS,iBAAiB,CAAC,GACxP,EAAM,gBAAgB;EACrB,EAAS,WAAW,GAAkB,CAAO;CAC9C,GAAG;EACF;EACA;EACA;CACD,CAAC;CACD,IAAM,IAAmB,EAAiB,MAAM,GAAQ,MAAU,EAAc,EAAiB,IAAQ,CAAM,CAAC,IAAI,EAAiB,SAAS,GAAQ,MAAU;EAC/J,IAAM,IAAO,EAAiB;EAC9B,IAAI,KAAQ,EAAc,GAAM,CAAM,GAAG;GACxC,IAAM,IAAgB,IAAI,EAAc,GAAQ,CAAI;GACpD,OAAO,EAAgB,GAAM,GAAe,CAAkB;EAC/D;EACA,OAAO,CAAC;CACT,CAAC,IAAI,CAAC;CACN,IAAI,EAAiB,SAAS,GAAG,MAAM,QAAQ,IAAI,CAAgB;CACnE,IAAM,IAAoC,EAAiB,MAAM,GAAQ,MAAU;EAClF,IAAM,IAAQ,EAAiB;EAC/B,OAAO,KAAS,EAAY;GAC3B;GACA;GACA,cAAc,EAAM;GACpB,OAAO,EAAO,cAAc,CAAC,CAAC,IAAI,EAAM,SAAS;GACjD,UAAU,EAAM;EACjB,CAAC;CACF,CAAC;CACD,IAAI,GAAmC,MAAM,EAAkC;CAC/E,OAAO,EAAkB,EAAY,CAAC;AACvC;;;ACzDA,SAAS,GAAY,GAAS,GAAa;CAC1C,IAAM,IAAS,EAAe,CAAW,GACnC,CAAC,KAAYC,EAAM,eAAe,IAAI,GAAiB,GAAQ,CAAO,CAAC;CAC7E,EAAM,gBAAgB;EACrB,EAAS,WAAW,CAAO;CAC5B,GAAG,CAAC,GAAU,CAAO,CAAC;CACtB,IAAM,IAASA,EAAM,qBAAqBA,EAAM,aAAa,MAAkB,EAAS,UAAU,EAAc,WAAW,CAAa,CAAC,GAAG,CAAC,CAAQ,CAAC,SAAS,EAAS,iBAAiB,SAAS,EAAS,iBAAiB,CAAC,GACvN,IAASA,EAAM,aAAa,GAAG,MAAS;EAC7C,EAAS,OAAO,EAAK,IAAI,EAAK,EAAE,CAAC,CAAC,MAAM,CAAI;CAC7C,GAAG,CAAC,CAAQ,CAAC;CACb,IAAI,EAAO,SAAS,EAAiB,EAAS,QAAQ,cAAc,CAAC,EAAO,KAAK,CAAC,GAAG,MAAM,EAAO;CAClG,OAAO;EACN,GAAG;EACH;EACA,aAAa,EAAO;CACrB;AACD;;;ACrBA,IAAM,KAAmB,MAAgB;CACvC,IAAI,GACE,oBAA4B,IAAI,IAAI,GACpC,KAAY,GAAS,MAAY;EACrC,IAAM,IAAY,OAAO,KAAY,aAAa,EAAQ,CAAK,IAAI;EACnE,IAAI,CAAC,OAAO,GAAG,GAAW,CAAK,GAAG;GAChC,IAAM,IAAgB;GAEtB,AADA,IAAS,MAA4B,OAAO,KAAc,aAAY,KAAsB,IAAY,OAAO,OAAO,CAAC,GAAG,GAAO,CAAS,GAC1I,EAAU,SAAS,MAAa,EAAS,GAAO,CAAa,CAAC;EAChE;CACF,GACM,UAAiB,GAMjB,IAAM;EAAE;EAAU;EAAU,uBALJ;EAKqB,YAJhC,OACjB,EAAU,IAAI,CAAQ,SACT,EAAU,OAAO,CAAQ;CAEqB,GACvD,IAAe,IAAQ,EAAY,GAAU,GAAU,CAAG;CAChE,OAAO;AACT,GACM,MAAgB,MAAgB,IAAc,EAAgB,CAAW,IAAI,IClB7E,KAAY,MAAQ;AAC1B,SAAS,EAAS,GAAK,IAAW,GAAU;CAC1C,IAAM,IAAQ,EAAM,qBAClB,EAAI,WACJ,EAAM,kBAAkB,EAAS,EAAI,SAAS,CAAC,GAAG,CAAC,GAAK,CAAQ,CAAC,GACjE,EAAM,kBAAkB,EAAS,EAAI,gBAAgB,CAAC,GAAG,CAAC,GAAK,CAAQ,CAAC,CAC1E;CAEA,OADA,EAAM,cAAc,CAAK,GAClB;AACT;;;ACFA,IAAM,KAA8B,MAAQ,CAAC,CAAC,EAAI,wBAAwB,OAAO,EAAI,YAAa,YAC5F,oBAAqC,IAAI,IAAI,GAC7C,KAA6B,MAAS;CAC1C,IAAM,IAAM,EAAmB,IAAI,CAAI;CAEvC,OADK,IACE,OAAO,YACZ,OAAO,QAAQ,EAAI,MAAM,CAAC,CAAC,KAAK,CAAC,GAAK,OAAU,CAAC,GAAK,EAAK,SAAS,CAAC,CAAC,CACxE,IAHiB,CAAC;AAIpB,GACM,KAAgC,GAAO,GAAoB,MAAY;CAC3E,IAAI,MAAU,KAAK,GACjB,OAAO;EACL,MAAM;EACN,YAAY,EAAmB,QAAQ,CAAO;CAChD;CAEF,IAAM,IAAqB,EAAmB,IAAI,EAAQ,IAAI;CAC9D,IAAI,GACF,OAAO;EAAE,MAAM;EAAW;EAAO,GAAG;CAAmB;CAEzD,IAAM,IAAgB;EACpB,YAAY,EAAmB,QAAQ,CAAO;EAC9C,QAAQ,CAAC;CACX;CAEA,OADA,EAAmB,IAAI,EAAQ,MAAM,CAAa,GAC3C;EAAE,MAAM;EAAW;EAAO,GAAG;CAAc;AACpD,GACM,KAAqC,GAAM,MAAU;CACzD,IAAI,MAAU,KAAK,GAAG;CACtB,IAAM,IAAiB,EAAmB,IAAI,CAAI;CAC7C,MACL,OAAO,EAAe,OAAO,IACzB,OAAO,KAAK,EAAe,MAAM,CAAC,CAAC,WAAW,KAChD,EAAmB,OAAO,CAAI;AAElC,GACM,IAAgB,gCAChB,IAAmB;AACzB,SAAS,EAAe,GAAO;CAE7B,IAAI,CAAC,GAAO;CACZ,IAAM,IAAa,EAAM,MAAM,IAAI,GAC7B,IAAuB,EAAW,WACrC,MAAc,EAAU,SAAS,cAAc,CAClD;CACA,IAAI,IAAuB,GAAG;CAC9B,IAAM,IAAoB,EAAW,IAAuB,EAAA,EAA0B,KAAK,KAAM;CACjG,OAAc,EAAc,KAAK,CAAU,CAAA,GAAyB,MAAc,EAAiB,KAAK,CAAU,CAAA,GAAyB;AAC7I;AAgLA,IAAM,KA/KgB,GAAI,IAAkB,CAAC,OAAO,GAAK,GAAK,MAAQ;CACpE,IAAM,EAAE,YAAS,wBAAqB,UAAO,GAAG,MAAY,GACxD;CACJ,IAAI;EACF,KAAsB,KAA4B,OAAuE,OAAO;CAClI,QAAY,CACZ;CACA,IAAI,CAAC,GACH,OAAO,EAAG,GAAK,GAAK,CAAG;CAEzB,IAAM,EAAE,eAAY,GAAG,MAA0B,EAA6B,GAAO,GAAoB,CAAO,GAC5G,IAAc;CAuBlB,AAtBA,EAAI,aAAa,GAAO,GAAS,MAAiB;EAChD,IAAM,IAAI,EAAI,GAAO,CAAO;EAC5B,IAAI,CAAC,GAAa,OAAO;EACzB,IAAM,IAAS,MAAiB,KAAK,IAAI,EACvC,MAAM,KAAuB,GAAe,gBAAI,MAAM,EAAA,CAAE,KAAK,KAAK,YACpE,IAAI,OAAO,KAAiB,WAAW,EAAE,MAAM,EAAa,IAAI;EAehE,OAdI,MAAU,KAAK,KACjB,GAAyC,KAAK,GAAQ,EAAI,CAAC,GACpD,MAET,GAAyC,KACvC;GACE,GAAG;GACH,MAAM,GAAG,EAAM,GAAG,EAAO;EAC3B,GACA;GACE,GAAG,EAA0B,EAAQ,IAAI;IACxC,IAAQ,EAAI,SAAS;EACxB,CACF,GACO;CACT,IACA,EAAI,WAAW,EACb,eAAe;EAIb,AAHI,KAAc,OAAO,EAAW,eAAgB,cAClD,EAAW,YAAY,GAEzB,EAAkC,EAAQ,MAAM,CAAK;CACvD,EACF;CACA,IAAM,KAAwB,GAAG,MAAM;EACrC,IAAM,IAAsB;EAG5B,AAFA,IAAc,IACd,EAAI,GAAG,CAAC,GACR,IAAc;CAChB,GACM,IAAe,EAAG,EAAI,UAAU,GAAK,CAAG;CAc9C,IAbI,EAAsB,SAAS,cACjC,GAAyC,KAAK,CAAY,KAE1D,EAAsB,OAAO,EAAsB,SAAS,GAC5D,GAAyC,KACvC,OAAO,YACL,OAAO,QAAQ,EAAsB,MAAM,CAAC,CAAC,KAAK,CAAC,GAAK,OAAY,CAClE,GACA,MAAQ,EAAsB,QAAQ,IAAe,EAAO,SAAS,CACvE,CAAC,CACH,CACF,IAEE,EAA2B,CAAG,GAAG;EAEnC,IAAM,IAAmB,EAAI;EAC7B,EAAI,YAAY,GAAG,MAAS;GAO1B,EAAiB,GAAG,CAAI;EAC1B;CACF;CAmGA,OAlGA,EAAW,WAAW,MAAY;EAEhC,QAAQ,EAAQ,MAAhB;GACE,KAAK;IACH,IAAI,OAAO,EAAQ,WAAY,UAAU;KACvC,QAAQ,MACN,yDACF;KACA;IACF;IACA,OAAO,EACL,EAAQ,UACP,MAAW;KACV,IAAI,EAAO,SAAS,cAAc;MAChC,IAAI,MAAU,KAAK,GAAG;OACpB,EAAqB,EAAO,KAAK;OACjC;MACF;MACA,AAAI,OAAO,KAAK,EAAO,KAAK,CAAC,CAAC,WAAW,KACvC,QAAQ,MACN,sbAKF;MAEF,IAAM,IAAoB,EAAO,MAAM;MACvC,IAAI,KAAsD,MACxD;MAEF,AAAI,KAAK,UAAU,EAAI,SAAS,CAAC,MAAM,KAAK,UAAU,CAAiB,KACrE,EAAqB,CAAiB;MAExC;KACF;KACA,AAAI,EAA2B,CAAG,KAChC,EAAI,SAAS,CAAM;IAEvB,CACF;GACF,KAAK;IACH,QAAQ,EAAQ,QAAQ,MAAxB;KACE,KAAK,SAKH,OAJA,EAAqB,CAAY,GAC7B,MAAU,KAAK,IACV,GAAyC,KAAK,EAAI,SAAS,CAAC,IAE9D,GAAyC,KAAK,EAA0B,EAAQ,IAAI,CAAC;KAC9F,KAAK;MACH,IAAI,MAAU,KAAK,GAAG;OACpB,GAAyC,KAAK,EAAI,SAAS,CAAC;OAC5D;MACF;MACA,OAAO,GAAyC,KAAK,EAA0B,EAAQ,IAAI,CAAC;KAC9F,KAAK,YACH,OAAO,EAAc,EAAQ,QAAQ,MAAU;MAC7C,IAAI,MAAU,KAAK,GAAG;OAEpB,AADA,EAAqB,CAAK,GAC1B,GAAyC,KAAK,EAAI,SAAS,CAAC;OAC5D;MACF;MAEA,AADA,EAAqB,EAAM,EAAM,GACjC,GAAyC,KAAK,EAA0B,EAAQ,IAAI,CAAC;KACvF,CAAC;KACH,KAAK;KACL,KAAK,kBACH,OAAO,EAAc,EAAQ,QAAQ,MAAU;MAC7C,IAAI,MAAU,KAAK,GAAG;OACpB,EAAqB,CAAK;OAC1B;MACF;MACA,AAAI,KAAK,UAAU,EAAI,SAAS,CAAC,MAAM,KAAK,UAAU,EAAM,EAAM,KAChE,EAAqB,EAAM,EAAM;KAErC,CAAC;KACH,KAAK,gBAAgB;MACnB,IAAM,EAAE,uBAAoB,EAAQ,SAC9B,IAA0B,EAAgB,eAAe,MAAM,EAAE,CAAC,CAAC,EAAA,EAA0B;MACnG,IAAI,CAAC,GAAmB;MAMxB,AAJE,EADE,MAAU,KAAK,IACI,IAEA,EAAkB,EAAM,GAE/C,GAAyC,KACvC,MAEA,CACF;MACA;KACF;KACA,KAAK,mBACH,OAAO,IAAc,CAAC;IAC1B;IACA;EACJ;CACF,CAAC,GACM;AACT,GAEM,KAAiB,GAAa,MAAO;CACzC,IAAI;CACJ,IAAI;EACF,IAAS,KAAK,MAAM,CAAW;CACjC,SAAS,GAAG;EACV,QAAQ,MACN,mEACA,CACF;CACF;CACA,AAAI,MAAW,KAAK,KAAG,EAAG,CAAM;AAClC,GAyBM,MAvB6B,OAAQ,GAAK,GAAK,MAAQ;CAC3D,IAAM,IAAgB,EAAI;CAoB1B,OAnBA,EAAI,cAAc,GAAU,GAAa,MAAY;EACnD,IAAI,IAAW;EACf,IAAI,GAAa;GACf,IAAM,IAAc,GAAmC,cAAe,OAAO,IACzE,IAAe,EAAS,EAAI,SAAS,CAAC;GAQ1C,AAPA,KAAY,MAAU;IACpB,IAAM,IAAY,EAAS,CAAK;IAChC,IAAI,CAAC,EAAW,GAAc,CAAS,GAAG;KACxC,IAAM,IAAgB;KACtB,EAAY,IAAe,GAAW,CAAa;IACrD;GACF,GACI,GAAmC,mBACrC,EAAY,GAAc,CAAY;EAE1C;EACA,OAAO,EAAc,CAAQ;CAC/B,IACqB,EAAG,GAAK,GAAK,CAChB;AACpB;AAOA,SAAS,GAAkB,GAAY,GAAS;CAC9C,IAAI;CACJ,IAAI;EACF,IAAU,EAAW;CACvB,QAAY;EACV;CACF;CAmBA,OAAO;EAjBL,UAAU,MAAS;GAEjB,IAAM,KAAS,MACT,MAAS,OACJ,OAEF,KAAK,MAAM,GAAM,GAAmC,OAAO,GAE9D,IAAY,EAAQ,QAAQ,CAAI,KAAkB;GAIxD,OAHI,aAAe,UACV,EAAI,KAAK,CAAK,IAEhB,EAAM,CAAG;EAClB;EACA,UAAU,GAAM,MAAa,EAAQ,QAAQ,GAAM,KAAK,UAAU,GAAU,GAAmC,QAAQ,CAAC;EACxH,aAAa,MAAS,EAAQ,WAAW,CAAI;CAE3B;AACtB;AACA,IAAM,KAAc,OAAQ,MAAU;CACpC,IAAI;EACF,IAAM,IAAS,EAAG,CAAK;EAIvB,OAHI,aAAkB,UACb,IAEF;GACL,KAAK,GAAa;IAChB,OAAO,EAAW,CAAW,CAAC,CAAC,CAAM;GACvC;GACA,MAAM,GAAa;IACjB,OAAO;GACT;EACF;CACF,SAAS,GAAG;EACV,OAAO;GACL,KAAK,GAAc;IACjB,OAAO;GACT;GACA,MAAM,GAAY;IAChB,OAAO,EAAW,CAAU,CAAC,CAAC,CAAC;GACjC;EACF;CACF;AACF,GAkJM,MAjJe,GAAQ,OAAiB,GAAK,GAAK,MAAQ;CAC9D,IAAI,IAAU;EACZ,SAAS,SAAwB,OAAO,YAAY;EACpD,aAAa,MAAU;EACvB,SAAS;EACT,QAAQ,GAAgB,OAAkB;GACxC,GAAG;GACH,GAAG;EACL;EACA,GAAG;CACL,GACI,IAAc,IACd,IAAmB,GACjB,oBAAqC,IAAI,IAAI,GAC7C,oBAA2C,IAAI,IAAI,GACrD,IAAU,EAAQ;CACtB,IAAI,CAAC,GACH,OAAO,GACJ,GAAG,MAAS;EAIX,AAHA,QAAQ,KACN,uDAAuD,EAAQ,KAAK,+CACtE,GACA,EAAI,GAAG,CAAI;CACb,GACA,GACA,CACF;CAEF,IAAM,UAAgB;EACpB,IAAM,IAAQ,EAAQ,WAAW,EAAE,GAAG,EAAI,EAAE,CAAC;EAC7C,OAAO,EAAQ,QAAQ,EAAQ,MAAM;GACnC;GACA,SAAS,EAAQ;EACnB,CAAC;CACH,GACM,IAAgB,EAAI;CAC1B,EAAI,YAAY,GAAO,OACrB,EAAc,GAAO,CAAO,GACrB,EAAQ;CAEjB,IAAM,IAAe,GAClB,GAAG,OACF,EAAI,GAAG,CAAI,GACJ,EAAQ,IAEjB,GACA,CACF;CACA,EAAI,wBAAwB;CAC5B,IAAI,GACE,UAAgB;EAEpB,IAAI,CAAC,GAAS;EACd,IAAM,IAAiB,EAAE;EAEzB,AADA,IAAc,IACd,EAAmB,SAAS,MAEnB,EAAU,EAAI,KAAmB,CAAY,CACrD;EACD,IAAM,IAAiC,EAAQ,oBAA0C,KAAK,GAAe,EAAI,KAAkB,CAAY,KAAM,KAAK;EAC1J,OAAO,EAAW,EAAQ,QAAQ,KAAK,CAAO,CAAC,CAAC,CAAC,EAAQ,IAAI,CAAC,CAAC,MAAM,MAA6B;GAChG,IAAI,GAA0B;IAC5B,IAAI,OAAO,EAAyB,WAAY,YAAY,EAAyB,YAAY,EAAQ,SAAS;KAChH,IAAI,EAAQ,SAAS;MACnB,IAAM,IAAY,EAAQ,QACxB,EAAyB,OACzB,EAAyB,OAC3B;MAIA,OAHI,aAAqB,UAChB,EAAU,MAAM,MAAW,CAAC,IAAM,CAAM,CAAC,IAE3C,CAAC,IAAM,CAAS;KACzB;KACA,QAAQ,MACN,uFACF;IACF,OACE,OAAO,CAAC,IAAO,EAAyB,KAAK;GAEjD;GACA,OAAO,CAAC,IAAO,KAAK,CAAC;EACvB,CAAC,CAAC,CAAC,MAAM,MAAoB;GAE3B,IAAI,MAAmB,GACrB;GAEF,IAAM,CAAC,GAAU,KAAiB;GAMlC,IALA,IAAmB,EAAQ,MACzB,GACO,EAAI,KAAmB,CAChC,GACA,EAAI,GAAkB,EAAI,GACtB,GACF,OAAO,EAAQ;EAEnB,CAAC,CAAC,CAAC,WAAW;GACR,MAAmB,MAGvB,IAAmE,EAAI,GAAG,KAAK,CAAC,GAChF,IAAmB,EAAI,GACvB,IAAc,IACd,EAAyB,SAAS,MAAO,EAAG,CAAgB,CAAC;EAC/D,CAAC,CAAC,CAAC,OAAO,MAAM;GACV,MAAmB,KAGvB,IAAmE,KAAK,GAAG,CAAC;EAC9E,CAAC;CACH;CAkCA,OAjCA,EAAI,UAAU;EACZ,aAAa,MAAe;GAK1B,AAJA,IAAU;IACR,GAAG;IACH,GAAG;GACL,GACI,EAAW,YACb,IAAU,EAAW;EAEzB;EACA,oBAAoB;GAElB,AADA,EAAE,GACF,GAAmC,WAAW,EAAQ,IAAI;EAC5D;EACA,kBAAkB;EAClB,iBAAiB,EAAQ;EACzB,mBAAmB;EACnB,YAAY,OACV,EAAmB,IAAI,CAAE,SACZ;GACX,EAAmB,OAAO,CAAE;EAC9B;EAEF,oBAAoB,OAClB,EAAyB,IAAI,CAAE,SAClB;GACX,EAAyB,OAAO,CAAE;EACpC;CAEJ,GACK,EAAQ,iBACX,EAAQ,GAEH,KAAoB;AAC7B,GCzdM,KAAc,MAAQ,OAAO,YAAY,GACzC,KAAsB,MAE1B,aAAa,GAET,KAAkB,GAAQ,MAAW;CACzC,IAAM,IAAO,aAAkB,MAAM,IAAS,IAAI,IAAI,EAAO,QAAQ,CAAC,GAChE,IAAO,aAAkB,MAAM,IAAS,IAAI,IAAI,EAAO,QAAQ,CAAC;CACtE,IAAI,EAAK,SAAS,EAAK,MACrB,OAAO;CAET,KAAK,IAAM,CAAC,GAAK,MAAU,GACzB,IAAI,CAAC,EAAK,IAAI,CAAG,KAAK,CAAC,OAAO,GAAG,GAAO,EAAK,IAAI,CAAG,CAAC,GACnD,OAAO;CAGX,OAAO;AACT,GACM,MAAoB,GAAQ,MAAW;CAC3C,IAAM,IAAY,EAAO,OAAO,SAAS,CAAC,GACpC,IAAY,EAAO,OAAO,SAAS,CAAC,GACtC,IAAQ,EAAU,KAAK,GACvB,IAAQ,EAAU,KAAK;CAC3B,OAAO,CAAC,EAAM,QAAQ,CAAC,EAAM,OAAM;EACjC,IAAI,CAAC,OAAO,GAAG,EAAM,OAAO,EAAM,KAAK,GACrC,OAAO;EAGT,AADA,IAAQ,EAAU,KAAK,GACvB,IAAQ,EAAU,KAAK;CACzB;CACA,OAAO,CAAC,CAAC,EAAM,QAAQ,CAAC,CAAC,EAAM;AACjC;AACA,SAAS,EAAQ,GAAQ,GAAQ;CAgB/B,OAfI,OAAO,GAAG,GAAQ,CAAM,IACnB,KAEL,OAAO,KAAW,aAAY,KAAmB,OAAO,KAAW,aAAY,KAG/E,OAAO,eAAe,CAAM,MAAM,OAAO,eAAe,CAAM,IACzD,KAEL,EAAW,CAAM,KAAK,EAAW,CAAM,IACrC,EAAmB,CAAM,KAAK,EAAmB,CAAM,IAClD,EAAe,GAAQ,CAAM,IAE/B,GAAiB,GAAQ,CAAM,IAEjC,EACL,EAAE,eAAe,OAAO,QAAQ,CAAM,EAAE,GACxC,EAAE,eAAe,OAAO,QAAQ,CAAM,EAAE,CAC1C;AACF;;;ACjDA,SAAS,GAAW,GAAU;CAC5B,IAAM,IAAO,EAAM,OAAO,KAAK,CAAC;CAChC,QAAQ,MAAU;EAChB,IAAM,IAAO,EAAS,CAAK;EAC3B,OAAO,EAAQ,EAAK,SAAS,CAAI,IAAI,EAAK,UAAU,EAAK,UAAU;CACrE;AACF;;;;CCAA,IAAI,KAAY,WAAW;EAG3B,IAAI,IAAI,OAAO,cACX,IAAe,qEACf,IAAgB,qEAChB,IAAiB,CAAC;EAEtB,SAAS,EAAa,GAAU,GAAW;GACzC,IAAI,CAAC,EAAe,IAAW;IAC7B,EAAe,KAAY,CAAC;IAC5B,KAAK,IAAI,IAAE,GAAI,IAAE,EAAS,QAAS,KACjC,EAAe,EAAS,CAAC,EAAS,OAAO,CAAC,KAAK;GAEnD;GACA,OAAO,EAAe,EAAS,CAAC;EAClC;EAEA,IAAI,IAAW;GACb,kBAAmB,SAAU,GAAO;IAClC,IAAI,KAAS,MAAM,OAAO;IAC1B,IAAI,IAAM,EAAS,UAAU,GAAO,GAAG,SAAS,GAAE;KAAC,OAAO,EAAa,OAAO,CAAC;IAAE,CAAC;IAClF,QAAQ,EAAI,SAAS,GAArB;KACA;KACA,KAAK,GAAI,OAAO;KAChB,KAAK,GAAI,OAAO,IAAI;KACpB,KAAK,GAAI,OAAO,IAAI;KACpB,KAAK,GAAI,OAAO,IAAI;IACpB;GACF;GAEA,sBAAuB,SAAU,GAAO;IAGtC,OAFI,KAAS,OAAa,KACtB,KAAS,KAAW,OACjB,EAAS,YAAY,EAAM,QAAQ,IAAI,SAAS,GAAO;KAAE,OAAO,EAAa,GAAc,EAAM,OAAO,CAAK,CAAC;IAAG,CAAC;GAC3H;GAEA,iBAAkB,SAAU,GAAO;IAEjC,OADI,KAAS,OAAa,KACnB,EAAS,UAAU,GAAO,IAAI,SAAS,GAAE;KAAC,OAAO,EAAE,IAAE,EAAE;IAAE,CAAC,IAAI;GACvE;GAEA,qBAAqB,SAAU,GAAY;IAGzC,OAFI,KAAc,OAAa,KAC3B,KAAc,KAAW,OACtB,EAAS,YAAY,EAAW,QAAQ,OAAO,SAAS,GAAO;KAAE,OAAO,EAAW,WAAW,CAAK,IAAI;IAAI,CAAC;GACrH;GAGA,sBAAsB,SAAU,GAAc;IAI5C,KAAK,IAHD,IAAa,EAAS,SAAS,CAAY,GAC3C,IAAI,IAAI,WAAW,EAAW,SAAO,CAAC,GAEjC,IAAE,GAAG,IAAS,EAAW,QAAQ,IAAE,GAAU,KAAK;KACzD,IAAI,IAAgB,EAAW,WAAW,CAAC;KAE3C,AADA,EAAI,IAAE,KAAK,MAAkB,GAC7B,EAAI,IAAE,IAAE,KAAK,IAAgB;IAC/B;IACA,OAAO;GACT;GAGA,0BAAyB,SAAU,GAAY;IAC7C,IAAI,KAAa,MACb,OAAO,EAAS,WAAW,CAAU;IAGrC,KAAK,IADD,IAAQ,MAAM,EAAW,SAAO,CAAC,GAC5B,IAAE,GAAG,IAAS,EAAI,QAAQ,IAAE,GAAU,KAC7C,EAAI,KAAG,EAAW,IAAE,KAAG,MAAI,EAAW,IAAE,IAAE;IAG5C,IAAI,IAAS,CAAC;IAId,OAHA,EAAI,QAAQ,SAAU,GAAG;KACvB,EAAO,KAAK,EAAE,CAAC,CAAC;IAClB,CAAC,GACM,EAAS,WAAW,EAAO,KAAK,EAAE,CAAC;GAIhD;GAIA,+BAA+B,SAAU,GAAO;IAE9C,OADI,KAAS,OAAa,KACnB,EAAS,UAAU,GAAO,GAAG,SAAS,GAAE;KAAC,OAAO,EAAc,OAAO,CAAC;IAAE,CAAC;GAClF;GAGA,mCAAkC,SAAU,GAAO;IAIjD,OAHI,KAAS,OAAa,KACtB,KAAS,KAAW,QACxB,IAAQ,EAAM,QAAQ,MAAM,GAAG,GACxB,EAAS,YAAY,EAAM,QAAQ,IAAI,SAAS,GAAO;KAAE,OAAO,EAAa,GAAe,EAAM,OAAO,CAAK,CAAC;IAAG,CAAC;GAC5H;GAEA,UAAU,SAAU,GAAc;IAChC,OAAO,EAAS,UAAU,GAAc,IAAI,SAAS,GAAE;KAAC,OAAO,EAAE,CAAC;IAAE,CAAC;GACvE;GACA,WAAW,SAAU,GAAc,GAAa,GAAgB;IAC9D,IAAI,KAAgB,MAAM,OAAO;IACjC,IAAI,GAAG,GACH,IAAoB,CAAC,GACrB,IAA4B,CAAC,GAC7B,IAAU,IACV,IAAW,IACX,IAAU,IACV,IAAmB,GACnB,IAAkB,GAClB,IAAiB,GACjB,IAAa,CAAC,GACd,IAAiB,GACjB,IAAsB,GACtB;IAEJ,KAAK,IAAK,GAAG,IAAK,EAAa,QAAQ,KAAM,GAQ3C,IAPA,IAAY,EAAa,OAAO,CAAE,GAC7B,OAAO,UAAU,eAAe,KAAK,GAAmB,CAAS,MACpE,EAAmB,KAAa,KAChC,EAA2B,KAAa,KAG1C,IAAa,IAAY,GACrB,OAAO,UAAU,eAAe,KAAK,GAAmB,CAAU,GACpE,IAAY;SACP;KACL,IAAI,OAAO,UAAU,eAAe,KAAK,GAA2B,CAAS,GAAG;MAC9E,IAAI,EAAU,WAAW,CAAC,IAAE,KAAK;OAC/B,KAAK,IAAE,GAAI,IAAE,GAAkB,KAE7B,AADA,MAAwC,GACpC,KAAyB,IAAY,KACvC,IAAwB,GACxB,EAAa,KAAK,EAAe,CAAgB,CAAC,GAClD,IAAmB,KAEnB;OAIJ,KADA,IAAQ,EAAU,WAAW,CAAC,GACzB,IAAE,GAAI,IAAE,GAAI,KASf,AARA,IAAoB,KAAoB,IAAM,IAAM,GAChD,KAAyB,IAAY,KACvC,IAAwB,GACxB,EAAa,KAAK,EAAe,CAAgB,CAAC,GAClD,IAAmB,KAEnB,KAEF,MAAiB;MAErB,OAAO;OAEL,KADA,IAAQ,GACH,IAAE,GAAI,IAAE,GAAkB,KAS7B,AARA,IAAoB,KAAoB,IAAK,GACzC,KAAwB,IAAY,KACtC,IAAwB,GACxB,EAAa,KAAK,EAAe,CAAgB,CAAC,GAClD,IAAmB,KAEnB,KAEF,IAAQ;OAGV,KADA,IAAQ,EAAU,WAAW,CAAC,GACzB,IAAE,GAAI,IAAE,IAAK,KAShB,AARA,IAAoB,KAAoB,IAAM,IAAM,GAChD,KAAyB,IAAY,KACvC,IAAwB,GACxB,EAAa,KAAK,EAAe,CAAgB,CAAC,GAClD,IAAmB,KAEnB,KAEF,MAAiB;MAErB;MAMA,AALA,KACI,KAAqB,MACvB,IAA6B,KAAG,GAChC,MAEF,OAAO,EAA2B;KACpC,OAEE,KADA,IAAQ,EAAmB,IACtB,IAAE,GAAI,IAAE,GAAkB,KAS7B,AARA,IAAoB,KAAoB,IAAM,IAAM,GAChD,KAAyB,IAAY,KACvC,IAAwB,GACxB,EAAa,KAAK,EAAe,CAAgB,CAAC,GAClD,IAAmB,KAEnB,KAEF,MAAiB;KAYrB,AAPA,KACI,KAAqB,MACvB,IAA6B,KAAG,GAChC,MAGF,EAAmB,KAAc,KACjC,IAAY,OAAO,CAAS;IAC9B;IAIF,IAAI,MAAc,IAAI;KACpB,IAAI,OAAO,UAAU,eAAe,KAAK,GAA2B,CAAS,GAAG;MAC9E,IAAI,EAAU,WAAW,CAAC,IAAE,KAAK;OAC/B,KAAK,IAAE,GAAI,IAAE,GAAkB,KAE7B,AADA,MAAwC,GACpC,KAAyB,IAAY,KACvC,IAAwB,GACxB,EAAa,KAAK,EAAe,CAAgB,CAAC,GAClD,IAAmB,KAEnB;OAIJ,KADA,IAAQ,EAAU,WAAW,CAAC,GACzB,IAAE,GAAI,IAAE,GAAI,KASf,AARA,IAAoB,KAAoB,IAAM,IAAM,GAChD,KAAyB,IAAY,KACvC,IAAwB,GACxB,EAAa,KAAK,EAAe,CAAgB,CAAC,GAClD,IAAmB,KAEnB,KAEF,MAAiB;MAErB,OAAO;OAEL,KADA,IAAQ,GACH,IAAE,GAAI,IAAE,GAAkB,KAS7B,AARA,IAAoB,KAAoB,IAAK,GACzC,KAAyB,IAAY,KACvC,IAAwB,GACxB,EAAa,KAAK,EAAe,CAAgB,CAAC,GAClD,IAAmB,KAEnB,KAEF,IAAQ;OAGV,KADA,IAAQ,EAAU,WAAW,CAAC,GACzB,IAAE,GAAI,IAAE,IAAK,KAShB,AARA,IAAoB,KAAoB,IAAM,IAAM,GAChD,KAAyB,IAAY,KACvC,IAAwB,GACxB,EAAa,KAAK,EAAe,CAAgB,CAAC,GAClD,IAAmB,KAEnB,KAEF,MAAiB;MAErB;MAMA,AALA,KACI,KAAqB,MACvB,IAA6B,KAAG,GAChC,MAEF,OAAO,EAA2B;KACpC,OAEE,KADA,IAAQ,EAAmB,IACtB,IAAE,GAAI,IAAE,GAAkB,KAS7B,AARA,IAAoB,KAAoB,IAAM,IAAM,GAChD,KAAyB,IAAY,KACvC,IAAwB,GACxB,EAAa,KAAK,EAAe,CAAgB,CAAC,GAClD,IAAmB,KAEnB,KAEF,MAAiB;KAMrB,AADA,KACI,KAAqB,MACvB,IAA6B,KAAG,GAChC;IAEJ;IAIA,KADA,IAAQ,GACH,IAAE,GAAI,IAAE,GAAkB,KAS7B,AARA,IAAoB,KAAoB,IAAM,IAAM,GAChD,KAAyB,IAAY,KACvC,IAAwB,GACxB,EAAa,KAAK,EAAe,CAAgB,CAAC,GAClD,IAAmB,KAEnB,KAEF,MAAiB;IAInB,SAAa;KAEX,IADA,MAAwC,GACpC,KAAyB,IAAY,GAAG;MAC1C,EAAa,KAAK,EAAe,CAAgB,CAAC;MAClD;KACF;KACK;IACP;IACA,OAAO,EAAa,KAAK,EAAE;GAC7B;GAEA,YAAY,SAAU,GAAY;IAGhC,OAFI,KAAc,OAAa,KAC3B,KAAc,KAAW,OACtB,EAAS,YAAY,EAAW,QAAQ,OAAO,SAAS,GAAO;KAAE,OAAO,EAAW,WAAW,CAAK;IAAG,CAAC;GAChH;GAEA,aAAa,SAAU,GAAQ,GAAY,GAAc;IACvD,IAAI,IAAa,CAAC,GAEd,IAAY,GACZ,IAAW,GACX,IAAU,GACV,IAAQ,IACR,IAAS,CAAC,GACV,GACA,GACA,GAAM,GAAM,GAAU,GACtB,GACA,IAAO;KAAC,KAAI,EAAa,CAAC;KAAG,UAAS;KAAY,OAAM;IAAC;IAE7D,KAAK,IAAI,GAAG,IAAI,GAAG,KAAK,GACtB,EAAW,KAAK;IAMlB,KAHA,IAAO,GACP,IAAW,GACX,IAAM,GACC,KAAO,IAQZ,AAPA,IAAO,EAAK,MAAM,EAAK,UACvB,EAAK,aAAa,GACd,EAAK,YAAY,MACnB,EAAK,WAAW,GAChB,EAAK,MAAM,EAAa,EAAK,OAAO,IAEtC,KAAS,MAAK,KAAa,GAC3B,MAAU;IAGZ,QAAe,GAAf;KACE,KAAK;MAID,KAHA,IAAO,GACP,IAAW,KACX,IAAM,GACC,KAAO,IAQZ,AAPA,IAAO,EAAK,MAAM,EAAK,UACvB,EAAK,aAAa,GACd,EAAK,YAAY,MACnB,EAAK,WAAW,GAChB,EAAK,MAAM,EAAa,EAAK,OAAO,IAEtC,KAAS,MAAK,KAAa,GAC3B,MAAU;MAEd,IAAI,EAAE,CAAI;MACV;KACF,KAAK;MAID,KAHA,IAAO,GACP,IAAoB,KAAE,IACtB,IAAM,GACC,KAAO,IAQZ,AAPA,IAAO,EAAK,MAAM,EAAK,UACvB,EAAK,aAAa,GACd,EAAK,YAAY,MACnB,EAAK,WAAW,GAChB,EAAK,MAAM,EAAa,EAAK,OAAO,IAEtC,KAAS,MAAK,KAAa,GAC3B,MAAU;MAEd,IAAI,EAAE,CAAI;MACV;KACF,KAAK,GACH,OAAO;IACX;IAIA,KAHA,EAAW,KAAK,GAChB,IAAI,GACJ,EAAO,KAAK,CAAC,KACA;KACX,IAAI,EAAK,QAAQ,GACf,OAAO;KAMT,KAHA,IAAO,GACP,IAAoB,KAAE,GACtB,IAAM,GACC,KAAO,IAQZ,AAPA,IAAO,EAAK,MAAM,EAAK,UACvB,EAAK,aAAa,GACd,EAAK,YAAY,MACnB,EAAK,WAAW,GAChB,EAAK,MAAM,EAAa,EAAK,OAAO,IAEtC,KAAS,MAAK,KAAa,GAC3B,MAAU;KAGZ,QAAQ,IAAI,GAAZ;MACE,KAAK;OAIH,KAHA,IAAO,GACP,IAAW,KACX,IAAM,GACC,KAAO,IAQZ,AAPA,IAAO,EAAK,MAAM,EAAK,UACvB,EAAK,aAAa,GACd,EAAK,YAAY,MACnB,EAAK,WAAW,GAChB,EAAK,MAAM,EAAa,EAAK,OAAO,IAEtC,KAAS,MAAK,KAAa,GAC3B,MAAU;OAKZ,AAFA,EAAW,OAAc,EAAE,CAAI,GAC/B,IAAI,IAAS,GACb;OACA;MACF,KAAK;OAIH,KAHA,IAAO,GACP,IAAoB,KAAE,IACtB,IAAM,GACC,KAAO,IAQZ,AAPA,IAAO,EAAK,MAAM,EAAK,UACvB,EAAK,aAAa,GACd,EAAK,YAAY,MACnB,EAAK,WAAW,GAChB,EAAK,MAAM,EAAa,EAAK,OAAO,IAEtC,KAAS,MAAK,KAAa,GAC3B,MAAU;OAIZ,AAFA,EAAW,OAAc,EAAE,CAAI,GAC/B,IAAI,IAAS,GACb;OACA;MACF,KAAK,GACH,OAAO,EAAO,KAAK,EAAE;KACzB;KAOA,IALI,KAAa,MACf,IAAqB,KAAG,GACxB,MAGE,EAAW,IACb,IAAQ,EAAW;UAEnB,IAAI,MAAM,GACR,IAAQ,IAAI,EAAE,OAAO,CAAC;UAEtB,OAAO;KAWX,AARA,EAAO,KAAK,CAAK,GAGjB,EAAW,OAAc,IAAI,EAAM,OAAO,CAAC,GAC3C,KAEA,IAAI,GAEA,KAAa,MACf,IAAqB,KAAG,GACxB;IAGJ;GACF;EACF;EACE,OAAO;CACT,EAAA,CAAG;CAEH,AAAI,OAAO,UAAW,cAAc,OAAO,MACzC,OAAO,WAAY;EAAE,OAAO;CAAU,CAAC,IACvB,MAAW,UAAe,KAAU,OACpD,EAAO,UAAU,IACR,OAAO,UAAY,OAAe,WAAW,QACtD,QAAQ,OAAO,YAAY,CAAC,CAAC,CAAC,CAC7B,QAAQ,YAAY,WAAY;EAC/B,OAAO;CACT,CAAC"}
@@ -14,5 +14,7 @@ export interface PortletGroupCardProps {
14
14
  onChildDragEnd: () => void;
15
15
  /** Snap bands rendered inside each child; supplied by the row layout. */
16
16
  renderSnapBands?: (portletId: string) => ReactNode;
17
+ /** Set inside a section card, which draws the only frame for the whole band. */
18
+ frameless?: boolean;
17
19
  }
18
- export default function PortletGroupCard({ group, portlets, canEdit, renderChild, onRename, onUngroup, onDelete, onChildDragStart, onChildDragEnd, renderSnapBands }: PortletGroupCardProps): import("react").JSX.Element;
20
+ export default function PortletGroupCard({ group, portlets, canEdit, renderChild, onRename, onUngroup, onDelete, onChildDragStart, onChildDragEnd, renderSnapBands, frameless }: PortletGroupCardProps): import("react").JSX.Element;
@@ -1,6 +1,7 @@
1
1
  import { HTMLAttributes, ReactNode, MouseEvent, DragEvent } from 'react';
2
2
  import { DashboardGridSettings, PortletConfig, PortletGroup, RowLayout } from '../types.js';
3
3
  import { SnapEdge } from '../hooks/dashboard/groupUtils.js';
4
+ import { PortletCardVariant } from './dashboardPortletCard/cardStyles.js';
4
5
  interface RowManagedLayoutProps {
5
6
  rows: RowLayout[];
6
7
  portlets: PortletConfig[];
@@ -23,9 +24,11 @@ interface RowManagedLayoutProps {
23
24
  draggingPortletId?: string | null;
24
25
  /** Id of the group currently being dragged, so its members ignore their bands. */
25
26
  draggingGroupId?: string | null;
26
- renderPortlet: (portlet: PortletConfig, containerProps?: HTMLAttributes<HTMLDivElement>, headerProps?: HTMLAttributes<HTMLDivElement>) => ReactNode;
27
+ renderPortlet: (portlet: PortletConfig, containerProps?: HTMLAttributes<HTMLDivElement>, headerProps?: HTMLAttributes<HTMLDivElement>, variant?: PortletCardVariant) => ReactNode;
27
28
  /** Renders a group column. Omitted in contexts that have no groups. */
28
- renderGroup?: (group: PortletGroup, renderSnapBands: (portletId: string) => ReactNode) => ReactNode;
29
+ renderGroup?: (group: PortletGroup, renderSnapBands: (portletId: string) => ReactNode,
30
+ /** Set inside a section, where the section card draws the only frame. */
31
+ frameless?: boolean) => ReactNode;
29
32
  }
30
33
  export default function RowManagedLayout({ rows, portlets, groups, gridSettings, gridWidth, canEdit, isDragging, onRowResize, onColumnResize, onPortletDragStart, onPortletDragEnd, onRowDrop, onNewRowDrop, onSnapDrop, draggingPortletId, draggingGroupId, renderPortlet, renderGroup }: RowManagedLayoutProps): import("react").JSX.Element;
31
34
  export {};
@@ -0,0 +1,15 @@
1
+ import { ChartTypeConfig } from '../../charts/chartConfigs.js';
2
+ /**
3
+ * Configuration for the dot strip (beeswarm) chart type.
4
+ *
5
+ * Eager metadata (`label`, `description`, `useCase`, `isAvailable`) lives in the
6
+ * unified `chartRegistry` entry (the single source of truth) — see
7
+ * `src/client/charts/chartRegistry.ts`. This file owns the lazy-loaded shape:
8
+ * drop zones, display options, clickable elements, validation.
9
+ *
10
+ * The zone *keys* are the standard `xAxis` / `yAxis` / `series` (so no
11
+ * `ChartAxisConfig` change is needed), but the visual axes are transposed —
12
+ * bands are rows and the measure runs horizontally — so the labels name the
13
+ * roles rather than the axes.
14
+ */
15
+ export declare const dotStripChartConfig: ChartTypeConfig;
@@ -0,0 +1,4 @@
1
+ import { default as React } from 'react';
2
+ import { ChartProps } from '../../types.js';
3
+ declare const DotStripChart: React.MemoExoticComponent<({ data, chartConfig, displayConfig, height, colorPalette, onDataPointClick, drillEnabled, }: ChartProps) => React.JSX.Element>;
4
+ export default DotStripChart;
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Layout maths for the dot strip (beeswarm) chart.
3
+ *
4
+ * Kept out of the component — like `ScatterChart.helpers.ts` and
5
+ * `BubbleChart.render.ts` — so the swarm packing can be unit-tested without a
6
+ * DOM. Everything here is pure: same input, same output, every time.
7
+ */
8
+ /** Hard caps so one pathological band cannot blow up the layout. */
9
+ export declare const MAX_BANDS = 50;
10
+ export declare const MAX_DOTS_PER_BAND = 500;
11
+ export declare const MAX_LANES = 8;
12
+ export declare const MIN_ROW_HEIGHT = 44;
13
+ export declare const MAX_ROW_HEIGHT = 220;
14
+ /** Vertical breathing room added above and below the outermost lanes. */
15
+ export declare const ROW_VERTICAL_PADDING = 12;
16
+ export declare const DOT_RADIUS: Record<'small' | 'medium' | 'large', number>;
17
+ /** Gap between the edges of two adjacent dots in the same lane. */
18
+ export declare const DOT_GAP = 1.5;
19
+ export interface DotDatum {
20
+ /** Raw numeric value of the measure. */
21
+ value: number;
22
+ /** Identity label for the dot (from the optional series dimension). */
23
+ label: string;
24
+ /** The source row, handed back on click. */
25
+ row: Record<string, unknown>;
26
+ }
27
+ export interface PlacedDot extends DotDatum {
28
+ /** Pixel x within the plot area. */
29
+ x: number;
30
+ /** Lane index: 0 is the centre line, then +1, -1, +2, -2, … */
31
+ lane: number;
32
+ /** Pixel y offset from the band's centre line. */
33
+ y: number;
34
+ }
35
+ export interface BandStats {
36
+ /** The band's own label (the value of the band dimension). */
37
+ label: string;
38
+ dots: PlacedDot[];
39
+ count: number;
40
+ median: number | null;
41
+ min: number | null;
42
+ max: number | null;
43
+ /**
44
+ * max / min. `null` when it cannot be stated meaningfully — fewer than two
45
+ * dots, or a non-positive minimum (the ratio is infinite or sign-flipped).
46
+ */
47
+ spread: number | null;
48
+ /** True when the band has rows but not one usable numeric value. */
49
+ noData: boolean;
50
+ /** Rendered height of this band's row, in px. */
51
+ height: number;
52
+ /** True when the band's dots were truncated at MAX_DOTS_PER_BAND. */
53
+ truncated: boolean;
54
+ }
55
+ export declare function parseNumeric(v: unknown): number | null;
56
+ export declare function median(sortedValues: number[]): number | null;
57
+ /**
58
+ * Greedy deterministic beeswarm packing.
59
+ *
60
+ * Dots are sorted by x (ties broken by label, so the output is stable for a
61
+ * given input rather than dependent on row order) and each is dropped into the
62
+ * first lane — searched outward from the centre — where it clears every dot
63
+ * already in that lane by at least `2r + gap`. Beyond `MAX_LANES` the dot is
64
+ * forced onto the outermost lane and simply overlaps; the surface-coloured
65
+ * stroke keeps that readable.
66
+ *
67
+ * A force simulation would do this too, but it settles asynchronously and
68
+ * non-deterministically, which makes it untestable and jittery on re-render.
69
+ */
70
+ export declare function packSwarm(dots: DotDatum[], scale: (v: number) => number, radius: number): PlacedDot[];
71
+ /** Row height needed to show every lane the swarm used. */
72
+ export declare function swarmHeight(placed: PlacedDot[], radius: number): number;
73
+ /** max / min, or null when the ratio would be meaningless. */
74
+ export declare function computeSpread(min: number | null, max: number | null, count: number): number | null;
75
+ export type BandSort = 'none' | 'valueDesc' | 'valueAsc' | 'count';
76
+ /**
77
+ * Group rows into bands, in the order requested. Sorting happens before the
78
+ * swarm is packed so row heights follow the rows the user actually sees.
79
+ */
80
+ export declare function groupIntoBands(rows: Record<string, unknown>[], bandField: string, valueField: string, labelField: string | undefined, sort: BandSort): Array<{
81
+ label: string;
82
+ values: DotDatum[];
83
+ truncated: boolean;
84
+ }>;
85
+ /** Nicely padded numeric domain across every dot in every band. */
86
+ export declare function computeDomain(values: number[]): {
87
+ min: number;
88
+ max: number;
89
+ };
90
+ /** Evenly spaced axis ticks across the domain. */
91
+ export declare function computeTicks(min: number, max: number, count?: number): number[];