@marimo-team/frontend 0.16.4 → 0.16.5

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 (408) hide show
  1. package/dist/assets/{CellStatus-CEVFBnyt.js → CellStatus-BJRDATxe.js} +1 -1
  2. package/dist/assets/{ConnectedDataExplorerComponent-5izWKQVQ.js → ConnectedDataExplorerComponent-Cs4pQOKx.js} +1 -1
  3. package/dist/assets/{ImperativeModal-DujtmdOO.js → ImperativeModal-BG5LTpV0.js} +1 -1
  4. package/dist/assets/{JsonOutput-E2xVojk5.js → JsonOutput-BID8Oos7.js} +1 -1
  5. package/dist/assets/{LazyAnyLanguageCodeMirror-DHH4zj72.js → LazyAnyLanguageCodeMirror-RkzkO2YV.js} +2 -2
  6. package/dist/assets/MarimoErrorOutput-Lft73Wnl.js +6 -0
  7. package/dist/assets/{RenderHTML-BCi_V67U.js → RenderHTML-BoDLdBq-.js} +1 -1
  8. package/dist/assets/{VisuallyHidden-DvpnK2wO.js → VisuallyHidden-BiHw-PIc.js} +1 -1
  9. package/dist/assets/{accordion-C3CAEPwC.js → accordion-A41ffd5P.js} +1 -1
  10. package/dist/assets/{activity-BCW0BU81.js → activity-BhLNCNHF.js} +1 -1
  11. package/dist/assets/add-cell-with-ai-CxM_YKzf.js +36 -0
  12. package/dist/assets/{add-database-form-DSnHGqMe.js → add-database-form-Br1fMkMI.js} +1 -1
  13. package/dist/assets/{add-missing-import-Cwedhjm5.js → add-missing-import-CfRgNApn.js} +1 -1
  14. package/dist/assets/agent-panel-7ocujO8C.js +287 -0
  15. package/dist/assets/ai-model-dropdown-DSUVFIso.js +2 -0
  16. package/dist/assets/{alert-dialog-M1dUQe7C.js → alert-dialog-BO8sf-73.js} +1 -1
  17. package/dist/assets/{ansi_up-ZmFuCItK.js → ansi_up-D_b0GS7N.js} +1 -1
  18. package/dist/assets/{any-language-editor-BqGBgxZE.js → any-language-editor-edee1A1P.js} +1 -1
  19. package/dist/assets/app-config-button-Bg_CEfls.js +1 -0
  20. package/dist/assets/{architecture-O4VJ6CD3-CbkBEQri.js → architecture-O4VJ6CD3-CIYFBxkI.js} +1 -1
  21. package/dist/assets/{architectureDiagram-W76B3OCA-di95lJcF.js → architectureDiagram-W76B3OCA-CXqAkVTy.js} +1 -1
  22. package/dist/assets/{arrow-left-DQ-94PlS.js → arrow-left-D97p491f.js} +1 -1
  23. package/dist/assets/{between-horizontal-start-CotWLlFt.js → between-horizontal-start-DWTOsiF_.js} +1 -1
  24. package/dist/assets/{blockDiagram-QIGZ2CNN-ClcJSQFf.js → blockDiagram-QIGZ2CNN-DhYrUig_.js} +1 -1
  25. package/dist/assets/{c4Diagram-FPNF74CW-Cq2vxSdy.js → c4Diagram-FPNF74CW-Bj1S_Fyy.js} +1 -1
  26. package/dist/assets/{cell-actions-C5S4W3g_.js → cell-actions-hNx4EMmZ.js} +1 -1
  27. package/dist/assets/{cell-editor-X6EY7GQl.js → cell-editor-JimG_bBz.js} +13 -13
  28. package/dist/assets/cell-link-_kF38gGF.js +1 -0
  29. package/dist/assets/{cells-B4cnsYe_.js → cells-Dd1FatlG.js} +54 -54
  30. package/dist/assets/channel-Bil_pUlM.js +1 -0
  31. package/dist/assets/{chart-no-axes-column-DrG7h8mS.js → chart-no-axes-column-DmR44Tbq.js} +1 -1
  32. package/dist/assets/{chat-components-DXkntpg4.js → chat-components-OoNU4tLf.js} +3 -3
  33. package/dist/assets/chat-panel-DatwRFif.js +3 -0
  34. package/dist/assets/check-C5PVLNkJ.js +1 -0
  35. package/dist/assets/{chevron-right-Caf5yL5B.js → chevron-right-BDEhimQq.js} +1 -1
  36. package/dist/assets/{chunk-3AY6CYHV-BFFUJATX.js → chunk-3AY6CYHV-CBq2x1Nc.js} +1 -1
  37. package/dist/assets/{chunk-4KMFLZZN-D8J8fzqf.js → chunk-4KMFLZZN-DEMg9QYp.js} +1 -1
  38. package/dist/assets/{chunk-6OXUPJBA-Clo7-gS4.js → chunk-6OXUPJBA-CjFdZBrY.js} +2 -2
  39. package/dist/assets/{chunk-ABZYJK2D-DjRcbxmx.js → chunk-ABZYJK2D-eZsthrBr.js} +1 -1
  40. package/dist/assets/{chunk-BN7GFLIU-DvomLhVN.js → chunk-BN7GFLIU-ez-vZ7uD.js} +1 -1
  41. package/dist/assets/{chunk-CXMOBAN2-GhUPxuLT.js → chunk-CXMOBAN2-DxbPW6zT.js} +1 -1
  42. package/dist/assets/{chunk-EXTU4WIE-97Zvkznr.js → chunk-EXTU4WIE-C8Y_P6y8.js} +1 -1
  43. package/dist/assets/{chunk-JA3XYJ7Z-Mvfz9vG6.js → chunk-JA3XYJ7Z-pR89xWsn.js} +1 -1
  44. package/dist/assets/{chunk-JEIROHC2-Cp1tR_z8.js → chunk-JEIROHC2-2-ucCTVJ.js} +1 -1
  45. package/dist/assets/{chunk-K7UQS3LO-BbFs0Y5e.js → chunk-K7UQS3LO-Bz3bjON2.js} +1 -1
  46. package/dist/assets/{chunk-KMC2YHZD-Buiqyl2g.js → chunk-KMC2YHZD-BvMr39QE.js} +1 -1
  47. package/dist/assets/{chunk-QN33PNHL-dhs223oU.js → chunk-QN33PNHL-DgF0LOHR.js} +1 -1
  48. package/dist/assets/{chunk-QYVHNE3D-DA_jYaIp.js → chunk-QYVHNE3D-BxN3DJBX.js} +1 -1
  49. package/dist/assets/{chunk-S3R3BYOJ-DO68jEIo.js → chunk-S3R3BYOJ-Dy72CLbv.js} +1 -1
  50. package/dist/assets/{chunk-T44TD3VJ-Ww2OhwR5.js → chunk-T44TD3VJ-BfMjD4hS.js} +1 -1
  51. package/dist/assets/{chunk-TVAH2DTR-j2EljfwG.js → chunk-TVAH2DTR-CKnRAcjo.js} +1 -1
  52. package/dist/assets/{chunk-TZMSLE5B-DYFKU4Pb.js → chunk-TZMSLE5B-DdgcuCwZ.js} +1 -1
  53. package/dist/assets/{chunk-WFRQ32O7-k2LaZwie.js → chunk-WFRQ32O7-CHVQx4E8.js} +1 -1
  54. package/dist/assets/{chunk-WFWHJNB7-h5yM_3qQ.js → chunk-WFWHJNB7-B095GDsj.js} +1 -1
  55. package/dist/assets/{chunk-XRWGC2XP-C9Mh6qts.js → chunk-XRWGC2XP-C9u0mhR4.js} +1 -1
  56. package/dist/assets/{circle-play-Cktn64O2.js → circle-play-BnvyuDgL.js} +1 -1
  57. package/dist/assets/{circle-plus-CR5IX63e.js → circle-plus-CfdbDkkn.js} +1 -1
  58. package/dist/assets/{circle-x-t3DIkXqJ.js → circle-x-BsVcxKkV.js} +1 -1
  59. package/dist/assets/classDiagram-KNZD7YFC-CjqRV-TB.js +1 -0
  60. package/dist/assets/classDiagram-v2-RKCZMP56-CGekJfCg.js +1 -0
  61. package/dist/assets/client-RNr6mM1Y.js +2 -0
  62. package/dist/assets/{clipboard-paste-CCXUHJEo.js → clipboard-paste-CYFMW3x7.js} +1 -1
  63. package/dist/assets/column-preview-2H8pwalb.js +2 -0
  64. package/dist/assets/{columns-BBxos2iF.js → columns-qXe5bccO.js} +7 -7
  65. package/dist/assets/{command-CMralWVx.js → command-BZVf1cJP.js} +1 -1
  66. package/dist/assets/command-palette-CYMxp9xF.js +1 -0
  67. package/dist/assets/{common-CGhyb0HV.js → common-DW3bNKWY.js} +1 -1
  68. package/dist/assets/{config-DiCy6eC0.js → config-DXGmIv9f.js} +1 -1
  69. package/dist/assets/{copy-DAVB02c8.js → copy-6mpL4BeI.js} +1 -1
  70. package/dist/assets/{copy-icon-GGPHJWJ0.js → copy-icon-6ICckC-p.js} +1 -1
  71. package/dist/assets/{dagre-5GWH7T2D-B1wEBSrx.js → dagre-5GWH7T2D-hVCok2au.js} +1 -1
  72. package/dist/assets/{data-grid-overlay-editor-Drp4I0tg.js → data-grid-overlay-editor-BwcAr1JM.js} +1 -1
  73. package/dist/assets/datasources-panel-BvrtAadm.js +1 -0
  74. package/dist/assets/{dates-grtSI02N.js → dates-Au76svwW.js} +1 -1
  75. package/dist/assets/dependency-graph-panel-F9AD_whb.js +4 -0
  76. package/dist/assets/{diagram-N5W7TBWH-D0MGIq61.js → diagram-N5W7TBWH-C26XpepA.js} +1 -1
  77. package/dist/assets/{diagram-QEK2KX5R-DU6geLeA.js → diagram-QEK2KX5R-yrTR8I_L.js} +1 -1
  78. package/dist/assets/{diagram-S2PKOQOG-BNhY4Z1-.js → diagram-S2PKOQOG-BnrvSrEb.js} +1 -1
  79. package/dist/assets/{dialog-B7icy1Vb.js → dialog-CR68_CUl.js} +1 -1
  80. package/dist/assets/{dist-BNjtn4W8.js → dist--01dzFeG.js} +1 -1
  81. package/dist/assets/{dist-BagyUivg.js → dist--UHY1FN-.js} +1 -1
  82. package/dist/assets/{dist-5Gm6w_15.js → dist-6vTAXnMq.js} +1 -1
  83. package/dist/assets/{dist-DTazGMur.js → dist-B6CCfKkp.js} +1 -1
  84. package/dist/assets/dist-BAqgWgpM.js +1 -0
  85. package/dist/assets/{dist-BaApG_tl.js → dist-BUe_o-3o.js} +1 -1
  86. package/dist/assets/{dist-BpAb8rGb.js → dist-BnTbfmCK.js} +1 -1
  87. package/dist/assets/dist-C-4GTx-T.js +1 -0
  88. package/dist/assets/{dist-C0ek66tJ.js → dist-C1lnVyyK.js} +1 -1
  89. package/dist/assets/{dist-DGiVfc7V.js → dist-CbsJnssA.js} +1 -1
  90. package/dist/assets/{dist-DV-8bxFo.js → dist-CjoeBoZ9.js} +1 -1
  91. package/dist/assets/{dist-D5QvSsL_.js → dist-CsC8ZokE.js} +1 -1
  92. package/dist/assets/{dist-C69eWtaQ.js → dist-CyqTsfyg.js} +1 -1
  93. package/dist/assets/dist-D-ZYdf69.js +1 -0
  94. package/dist/assets/dist-D3B_GqVR.js +1 -0
  95. package/dist/assets/{dist-BME02X12.js → dist-DFJwMM7Z.js} +1 -1
  96. package/dist/assets/dist-Db9UVaw9.js +1 -0
  97. package/dist/assets/{dist-BPr57Wxb.js → dist-DhXqYYeD.js} +1 -1
  98. package/dist/assets/{dist-CL0hPMY6.js → dist-Dm8m1boP.js} +1 -1
  99. package/dist/assets/{dist-B0vg88Aq.js → dist-DvDyxv8b.js} +1 -1
  100. package/dist/assets/{dist-Bzn1Zd0x.js → dist-DzUKODTF.js} +1 -1
  101. package/dist/assets/dist-LmEq3o4w.js +1 -0
  102. package/dist/assets/dist-Z_cK0cSh.js +1 -0
  103. package/dist/assets/dist-biP83Yvc.js +1 -0
  104. package/dist/assets/dist-dJ4FqqTe.js +1 -0
  105. package/dist/assets/{documentation-panel-D4iq1tSm.js → documentation-panel-DYKAf6Sg.js} +1 -1
  106. package/dist/assets/{dom-4KyFHEbl.js → dom-CT3dAMQW.js} +1 -1
  107. package/dist/assets/{download-C4Fyu6kU.js → download-B4_BX7gi.js} +1 -1
  108. package/dist/assets/{download-qt61TbgC.js → download-BB5Iexmn.js} +1 -1
  109. package/dist/assets/{dropdown-menu-Bp1vhqcS.js → dropdown-menu-CJDB1PNI.js} +1 -1
  110. package/dist/assets/edit-page-BK3Irdme.js +12 -0
  111. package/dist/assets/{ellipsis-DVXWk8Lc.js → ellipsis-CJtiw1k3.js} +1 -1
  112. package/dist/assets/{ellipsis-vertical-DfpheMuY.js → ellipsis-vertical-DK--y082.js} +1 -1
  113. package/dist/assets/{en-US-B2g9dciI.js → en-US-CjWuOpsV.js} +1 -1
  114. package/dist/assets/{erDiagram-AWTI2OKA-DxxWZrYD.js → erDiagram-AWTI2OKA-9EqwLrlG.js} +1 -1
  115. package/dist/assets/{error-banner-ARu6PiHL.js → error-banner-BGjnZePp.js} +1 -1
  116. package/dist/assets/error-panel-CrkbkIF_.js +1 -0
  117. package/dist/assets/{es-C0Ih1AxE.js → es-C-CWIA-E.js} +1 -1
  118. package/dist/assets/{esm-BR7TuyMc.js → esm-7XxuulnL.js} +1 -1
  119. package/dist/assets/{esm-Cb-iIF_w.js → esm-B39og2OG.js} +1 -1
  120. package/dist/assets/{esm-BIF8NHm8.js → esm-BBn_y9Ew.js} +1 -1
  121. package/dist/assets/esm-DjUQOOJ2.js +1 -0
  122. package/dist/assets/{eye-off-BEVibdMQ.js → eye-off-9UMe_Y7D.js} +1 -1
  123. package/dist/assets/field-D6g5A_wf.js +1 -0
  124. package/dist/assets/{file-DqkkCGhs.js → file-BENStGHx.js} +1 -1
  125. package/dist/assets/file-explorer-panel-Cgv3WjVh.js +1 -0
  126. package/dist/assets/{file-plus-2-BCmZgbYs.js → file-plus-2-CloHhbsF.js} +1 -1
  127. package/dist/assets/{file-text-DNmaotaP.js → file-text-Lr1kJd4E.js} +1 -1
  128. package/dist/assets/{file-video-camera-C5lALvNf.js → file-video-camera-CfnyBQQe.js} +1 -1
  129. package/dist/assets/filename-B5Yo1bOu.js +1 -0
  130. package/dist/assets/{floating-outline-Cjas_exC.js → floating-outline-DZnSnZfg.js} +1 -1
  131. package/dist/assets/{flowDiagram-PVAE7QVJ-DlTZtqcN.js → flowDiagram-PVAE7QVJ-iOj6Qgu-.js} +1 -1
  132. package/dist/assets/{focus-OWoLlKnm.js → focus-Bnk25hTp.js} +1 -1
  133. package/dist/assets/{form-xOqp67zT.js → form-BGZvwlog.js} +1 -1
  134. package/dist/assets/{form--nX5W3gQ.js → form-DyKYT1WR.js} +1 -1
  135. package/dist/assets/{formats-C8bbggqj.js → formats-CWdWXhfT.js} +1 -1
  136. package/dist/assets/{fullscreen-BFmvQx5m.js → fullscreen-DTPr3iBY.js} +1 -1
  137. package/dist/assets/{ganttDiagram-OWAHRB6G-BEPmawB5.js → ganttDiagram-OWAHRB6G-BWbXeAXa.js} +1 -1
  138. package/dist/assets/{gitGraph-ZV4HHKMB-DsmmnKI3.js → gitGraph-ZV4HHKMB-BpeeuO4L.js} +1 -1
  139. package/dist/assets/{gitGraphDiagram-NY62KEGX-DfTKmX9v.js → gitGraphDiagram-NY62KEGX-BX3O-mzY.js} +1 -1
  140. package/dist/assets/{glide-data-editor-CzDe-oK3.js → glide-data-editor-C45ArX7n.js} +4 -4
  141. package/dist/assets/globals-BFoVgbHf.js +1 -0
  142. package/dist/assets/{globe-CgG1jfYF.js → globe-CPrVx8HM.js} +1 -1
  143. package/dist/assets/home-page-DhT6cm6c.js +4 -0
  144. package/dist/assets/{image-DXGqie4b.js → image-DTv0Ic6H.js} +1 -1
  145. package/dist/assets/{index-DtggTI4O.js → index-29P5xX8u.js} +11 -11
  146. package/dist/assets/index-Optxbl37.css +2 -0
  147. package/dist/assets/{info-63CPKGFF-BVRAJzgS.js → info-63CPKGFF-Czr08O9A.js} +1 -1
  148. package/dist/assets/{infoDiagram-STP46IZ2-CcEqfhrj.js → infoDiagram-STP46IZ2-C1JX9JfB.js} +1 -1
  149. package/dist/assets/input-C1RzjWSK.js +7 -0
  150. package/dist/assets/{isValid-gOtpcPxn.js → isValid-o3nZVu8e.js} +1 -1
  151. package/dist/assets/{journeyDiagram-BIP6EPQ6-CfxDuLls.js → journeyDiagram-BIP6EPQ6-CC2JvTQD.js} +1 -1
  152. package/dist/assets/{kanban-definition-6OIFK2YF-BwopERfW.js → kanban-definition-6OIFK2YF-3qAhCi66.js} +1 -1
  153. package/dist/assets/{key-BuxNhFKW.js → key-D4QiH_7H.js} +1 -1
  154. package/dist/assets/{kiosk-mode--OX2RHZj.js → kiosk-mode-Dy2WnuWt.js} +1 -1
  155. package/dist/assets/{label-COeaBwl_.js → label-BEUjZsdo.js} +1 -1
  156. package/dist/assets/{layout-CKoMTVJt.js → layout-C6K0XXFK.js} +3 -3
  157. package/dist/assets/{linear-BI0LBATm.js → linear-nWRf49aw.js} +1 -1
  158. package/dist/assets/{link-DSY8ADga.js → link-CDOxp9sn.js} +1 -1
  159. package/dist/assets/links-D-L0rzz9.js +1 -0
  160. package/dist/assets/{list-filter-D2Wx3thV.js → list-filter-CRC72QPW.js} +1 -1
  161. package/dist/assets/{loader-CPDA0quD.js → loader-CgbiPC_T.js} +1 -1
  162. package/dist/assets/logs-panel-BB-6orqg.js +1 -0
  163. package/dist/assets/{maps-CxCIYhRT.js → maps-DaQbs_UR.js} +1 -1
  164. package/dist/assets/{menu-items-COILZQ4q.js → menu-items-Bo6Dyd_Q.js} +1 -1
  165. package/dist/assets/{mermaid-oqJ6vLFm.js → mermaid-Bqzxmx0C.js} +1 -1
  166. package/dist/assets/{mermaid-parser.core-8414a7OP.js → mermaid-parser.core-CwRCqiGJ.js} +2 -2
  167. package/dist/assets/{mermaid.core-CKfX2q8j.js → mermaid.core-C4o4vdkw.js} +3 -3
  168. package/dist/assets/mermaid.core-DjncFP_O.js +1 -0
  169. package/dist/assets/{mindmap-definition-Q6HEUPPD-nadsjaMC.js → mindmap-definition-Q6HEUPPD-pLcSm-bI.js} +1 -1
  170. package/dist/assets/{mode-CBh2Ag_Y.js → mode-DQPKc-Hp.js} +1 -1
  171. package/dist/assets/{name-cell-input-CAG50xh2.js → name-cell-input-DQd65hJw.js} +1 -1
  172. package/dist/assets/{number-overlay-editor-CbWBjwI1.js → number-overlay-editor-Ce_FEpnn.js} +1 -1
  173. package/dist/assets/once-8ZDiGGtA.js +1 -0
  174. package/dist/assets/outline-panel-BJDiYH61.js +1 -0
  175. package/dist/assets/packages-panel-D_VswrEd.js +1 -0
  176. package/dist/assets/{packet-HUATNLJX-BJ_b_gYi.js → packet-HUATNLJX-C5NsAS_7.js} +1 -1
  177. package/dist/assets/{pie-WTHONI2E-CS2JfH5S.js → pie-WTHONI2E-BCNGQ0_9.js} +1 -1
  178. package/dist/assets/{pieDiagram-ADFJNKIX-DP_lAtPz.js → pieDiagram-ADFJNKIX-CUCBn1VN.js} +1 -1
  179. package/dist/assets/plug-DrNpofTj.js +1 -0
  180. package/dist/assets/{plus-C1zexBxS.js → plus-d2HNOuZI.js} +1 -1
  181. package/dist/assets/{popover-CLp_lH16.js → popover-DW0D4l0O.js} +1 -1
  182. package/dist/assets/{precisionRound-CR2cxaaR.js → precisionRound-TxjBk8nN.js} +1 -1
  183. package/dist/assets/{quadrantDiagram-LMRXKWRM-gzT_-w3S.js → quadrantDiagram-LMRXKWRM-C6DXTSnZ.js} +1 -1
  184. package/dist/assets/{radar-NJJJXTRR-ChMDxgqR.js → radar-NJJJXTRR-Cck-wBOB.js} +1 -1
  185. package/dist/assets/{react-plotly-DUuIpNDT.js → react-plotly-x7-8ig7L.js} +1 -1
  186. package/dist/assets/{readonly-python-code-DMLMHG1v.js → readonly-python-code-Cb7Ak_Dy.js} +1 -1
  187. package/dist/assets/{refresh-ccw-lUiAEOAx.js → refresh-ccw-CCJeTTJO.js} +1 -1
  188. package/dist/assets/{refresh-cw-CSv3xyYY.js → refresh-cw-B_tmnHav.js} +1 -1
  189. package/dist/assets/{renderShortcut-DMYtt-ju.js → renderShortcut-C9_NT6sD.js} +1 -1
  190. package/dist/assets/{request-registry-4Bq310sk.js → request-registry-D4PD0fDJ.js} +1 -1
  191. package/dist/assets/{requirementDiagram-4UW4RH46-aavD0qQF.js → requirementDiagram-4UW4RH46-Bj7w3axz.js} +1 -1
  192. package/dist/assets/run-page-D9jntYU0.js +1 -0
  193. package/dist/assets/{runs-CItfCHkl.js → runs-BWcKkv9g.js} +1 -1
  194. package/dist/assets/{sankeyDiagram-GR3RE2ED-r95m_h3N.js → sankeyDiagram-GR3RE2ED-DCmlCkUu.js} +1 -1
  195. package/dist/assets/{save-Bg0tsaXV.js → save-CVcbYdvl.js} +1 -1
  196. package/dist/assets/scratchpad-panel-BUGlPLwQ.js +1 -0
  197. package/dist/assets/{scroll-text-SAt1GCBr.js → scroll-text-CN-2fr92.js} +1 -1
  198. package/dist/assets/secrets-panel-DGPyMcTb.js +1 -0
  199. package/dist/assets/{select-CMG6DC3j.js → select-DKRTzlUU.js} +1 -1
  200. package/dist/assets/{send-ePQN2mpH.js → send-DRRBOpzT.js} +1 -1
  201. package/dist/assets/{sequenceDiagram-C3RYC4MD-C4GqHIgf.js → sequenceDiagram-C3RYC4MD-CtIOF8jj.js} +1 -1
  202. package/dist/assets/{settings-TIv8aSog.js → settings-6ySBJQ7Y.js} +1 -1
  203. package/dist/assets/{share-CUbi0XlA.js → share-Dcl7D_tA.js} +1 -1
  204. package/dist/assets/snippets-panel-CKi40HiX.js +1 -0
  205. package/dist/assets/{spinner-CxlO4-GJ.js → spinner-BhnfQOEl.js} +1 -1
  206. package/dist/assets/{square-uM1ci7iL.js → square-DKPXnMmD.js} +1 -1
  207. package/dist/assets/{square-function-OflPQrBg.js → square-function-DBJINsmk.js} +1 -1
  208. package/dist/assets/{square-terminal-DZAwMMdQ.js → square-terminal-DoFRZ-M6.js} +1 -1
  209. package/dist/assets/{src-BOK-SWX4.js → src-KuQao6GK.js} +1 -1
  210. package/dist/assets/state-B37sZn4X.js +1 -0
  211. package/dist/assets/{state-COfuW2QS.js → state-CEmS5WFQ.js} +1 -1
  212. package/dist/assets/state-jvUYiWCG.js +1 -0
  213. package/dist/assets/{stateDiagram-KXAO66HF-CdN43FzO.js → stateDiagram-KXAO66HF-DwZscOce.js} +1 -1
  214. package/dist/assets/stateDiagram-v2-UMBNRL4Z-D5XUGcJP.js +1 -0
  215. package/dist/assets/stex-C7nwqmPk.js +1 -0
  216. package/dist/assets/storage-CaQ7kwuv.js +1 -0
  217. package/dist/assets/{switch-BKaPFRvh.js → switch-B5bMMWJn.js} +1 -1
  218. package/dist/assets/{tabs-C8HicIPZ.js → tabs-8ThyQfYh.js} +1 -1
  219. package/dist/assets/{terminal-Cnm8ANjQ.js → terminal-CPdYItDn.js} +1 -1
  220. package/dist/assets/{text-search-DpMeajoz.js → text-search-iEvFn29l.js} +1 -1
  221. package/dist/assets/{textarea-DhU2DWSB.js → textarea-B-_OthMe.js} +1 -1
  222. package/dist/assets/{time-Dzg4b75Q.js → time-BkIHCvH2.js} +1 -1
  223. package/dist/assets/{timeline-definition-XQNQX7LJ-D48ppGT8.js → timeline-definition-XQNQX7LJ-BGsZ09p6.js} +1 -1
  224. package/dist/assets/{toDate-BartytS4.js → toDate-Daj1hQSF.js} +1 -1
  225. package/dist/assets/{toggle-BLLoLiay.js → toggle-BpFqu8FB.js} +1 -1
  226. package/dist/assets/{tooltip-BjoMzmCN.js → tooltip-ULHbIsj9.js} +1 -1
  227. package/dist/assets/tracing-UKZUjbDB.js +2 -0
  228. package/dist/assets/tracing-panel-CuDItRLt.js +2 -0
  229. package/dist/assets/{trash-2-GOPu47oc.js → trash-2-3UJSaMKF.js} +1 -1
  230. package/dist/assets/{trash-BpVsWH8l.js → trash-CYX7fe5Y.js} +1 -1
  231. package/dist/assets/{tree-qyAlDlFy.js → tree-3z9r1N_5.js} +1 -1
  232. package/dist/assets/{treemap-75Q7IDZK-B4o24kyC.js → treemap-75Q7IDZK-MX1Hmq0m.js} +1 -1
  233. package/dist/assets/{type-C9leWRlU.js → type-kF6pOJbH.js} +1 -1
  234. package/dist/assets/{types-BBD3GQ0S.js → types-DQDL7dro.js} +1 -1
  235. package/dist/assets/{types-DEwRoAG0.js → types-DyTIgBnH.js} +1 -1
  236. package/dist/assets/{useAddCell-DJhNA_O5.js → useAddCell-Dq3HqYz1.js} +1 -1
  237. package/dist/assets/{useAsyncData-BEqqunls.js → useAsyncData-D9GA9BWg.js} +1 -1
  238. package/dist/assets/{useBoolean-DnggoYme.js → useBoolean-CSR3XjhE.js} +1 -1
  239. package/dist/assets/{useCellActionButton-B_a4Sv2X.js → useCellActionButton-BAG0Vvnt.js} +1 -1
  240. package/dist/assets/{useDateFormatter-DjmrLzxH.js → useDateFormatter-DrFLqO1D.js} +1 -1
  241. package/dist/assets/{useDebounce-9_rqRiHk.js → useDebounce-_ztZiL0I.js} +1 -1
  242. package/dist/assets/{useDeepCompareMemoize-DIhr42Iz.js → useDeepCompareMemoize-BsZY8i2r.js} +1 -1
  243. package/dist/assets/{useDeleteCell-DVNOLjwN.js → useDeleteCell-CJaipocw.js} +1 -1
  244. package/dist/assets/useHotkey-DkiyGPLs.js +1 -0
  245. package/dist/assets/{useInstallPackage-CTHO3tj3.js → useInstallPackage-DoKAq17E.js} +1 -1
  246. package/dist/assets/useNotebookActions-CQd8IgyR.js +1 -0
  247. package/dist/assets/useSplitCell-Dodncnp8.js +1 -0
  248. package/dist/assets/{useTheme-C5JyqXTm.js → useTheme-oPMxEKRc.js} +1 -1
  249. package/dist/assets/{utilities.esm-DbqS7Pjb.js → utilities.esm-DcV_e-D3.js} +1 -1
  250. package/dist/assets/utils-DBmmAf_K.js +1 -0
  251. package/dist/assets/variable-panel-BCihDsBL.js +1 -0
  252. package/dist/assets/{vega-component-D1ZJxK-L.js → vega-component-CWMEFM7y.js} +1 -1
  253. package/dist/assets/{vega-loader.browser.module-Jwd7L8Ye.js → vega-loader.browser.module-BkWiTok0.js} +1 -1
  254. package/dist/assets/{with-selector-CXhuorCH.js → with-selector-BmLsipPw.js} +1 -1
  255. package/dist/assets/{workflow-Covue_dW.js → workflow-DA01FBLw.js} +1 -1
  256. package/dist/assets/{wrench-DNJq8NCj.js → wrench-B2m2X1sb.js} +1 -1
  257. package/dist/assets/{write-secret-modal-qe46KOIw.js → write-secret-modal-Dx9oubag.js} +1 -1
  258. package/dist/assets/{xychartDiagram-6GGTOJPD-DK41sZTI.js → xychartDiagram-6GGTOJPD-D-i5LTeX.js} +1 -1
  259. package/dist/assets/{youtube-0-RiaVkr.js → youtube-Bl4NeyvA.js} +1 -1
  260. package/dist/index.html +155 -155
  261. package/package.json +1 -1
  262. package/src/__tests__/chat-history.test.ts +123 -0
  263. package/src/components/app-config/ai-config.tsx +23 -0
  264. package/src/components/app-config/mcp-config.tsx +42 -2
  265. package/src/components/app-config/user-config-form.tsx +0 -24
  266. package/src/components/chat/acp/__tests__/context-utils.test.ts +1 -1
  267. package/src/components/chat/acp/agent-panel.tsx +1 -1
  268. package/src/components/chat/acp/blocks.tsx +46 -53
  269. package/src/components/chat/acp/common.tsx +1 -1
  270. package/src/components/chat/acp/context-utils.ts +1 -1
  271. package/src/components/chat/acp/session-tabs.tsx +1 -1
  272. package/src/components/chat/chat-history-popover.tsx +125 -0
  273. package/src/components/chat/chat-history-utils.ts +69 -0
  274. package/src/components/chat/chat-panel.tsx +9 -57
  275. package/src/components/editor/__tests__/data-attributes.test.tsx +1 -1
  276. package/src/components/editor/actions/useNotebookActions.tsx +2 -4
  277. package/src/components/editor/ai/__tests__/completion-utils.test.ts +23 -31
  278. package/src/components/editor/cell/CreateCellButton.tsx +14 -2
  279. package/src/components/editor/cell/code/cell-editor.tsx +1 -0
  280. package/src/components/editor/database/schemas.ts +2 -10
  281. package/src/components/editor/{Cell.tsx → notebook-cell.tsx} +5 -1
  282. package/src/components/editor/output/MarimoErrorOutput.tsx +4 -34
  283. package/src/components/editor/renderers/{CellArray.tsx → cell-array.tsx} +1 -1
  284. package/src/components/forms/__tests__/form-utils.test.ts +2 -2
  285. package/src/components/mcp/hooks.ts +48 -0
  286. package/src/components/mcp/mcp-status-indicator.tsx +144 -0
  287. package/src/components/ui/number-field.tsx +4 -1
  288. package/src/core/ai/context/providers/__tests__/__snapshots__/tables.test.ts.snap +13 -19
  289. package/src/core/ai/context/providers/__tests__/cell-output.test.ts +0 -1
  290. package/src/core/ai/context/providers/__tests__/datasource.test.ts +5 -6
  291. package/src/core/ai/context/providers/__tests__/error.test.ts +24 -15
  292. package/src/core/ai/context/providers/cell-output.ts +5 -5
  293. package/src/core/ai/context/providers/common.ts +13 -4
  294. package/src/core/ai/context/providers/datasource.ts +31 -20
  295. package/src/core/ai/context/providers/error.ts +3 -4
  296. package/src/core/ai/context/providers/file.ts +2 -2
  297. package/src/core/ai/context/providers/tables.ts +36 -8
  298. package/src/core/ai/context/providers/variable.ts +2 -3
  299. package/src/core/cells/__tests__/cells.test.ts +6 -6
  300. package/src/core/cells/cells.ts +12 -13
  301. package/src/core/cells/scrollCellIntoView.ts +1 -1
  302. package/src/core/codemirror/__tests__/setup.test.ts +1 -0
  303. package/src/core/codemirror/cm.ts +3 -2
  304. package/src/core/config/__tests__/config-schema.test.ts +2 -0
  305. package/src/core/config/config-schema.ts +2 -0
  306. package/src/core/config/feature-flag.tsx +0 -2
  307. package/src/core/edit-app.tsx +1 -1
  308. package/src/core/network/CachingRequestRegistry.ts +2 -2
  309. package/src/stories/cell.stories.tsx +1 -1
  310. package/src/stories/layout/vertical/one-column.stories.tsx +1 -1
  311. package/src/utils/numbers.ts +24 -1
  312. package/dist/assets/MarimoErrorOutput-CUb4AQdT.js +0 -6
  313. package/dist/assets/add-cell-with-ai-DCyfgnLI.js +0 -36
  314. package/dist/assets/agent-panel-B_MMb9mo.js +0 -287
  315. package/dist/assets/ai-model-dropdown-Dk9Kz_pz.js +0 -2
  316. package/dist/assets/api-DBBaApVO.js +0 -1
  317. package/dist/assets/app-config-button-Cbw9b5rl.js +0 -1
  318. package/dist/assets/cell-link-woRE950-.js +0 -1
  319. package/dist/assets/channel-D-YgrD6I.js +0 -1
  320. package/dist/assets/chat-panel-DLphumiN.js +0 -3
  321. package/dist/assets/check-hL6-9SZK.js +0 -1
  322. package/dist/assets/circle-check-big-C7DGeh12.js +0 -1
  323. package/dist/assets/classDiagram-KNZD7YFC-yzXw7kFX.js +0 -1
  324. package/dist/assets/classDiagram-v2-RKCZMP56-Co2zbBi0.js +0 -1
  325. package/dist/assets/client-CA946N69.js +0 -2
  326. package/dist/assets/column-preview-BT14RHNM.js +0 -2
  327. package/dist/assets/command-palette-qYrNUNjA.js +0 -1
  328. package/dist/assets/datasources-panel-2YJ76Lq8.js +0 -1
  329. package/dist/assets/dependency-graph-panel-CnzvmPdT.js +0 -4
  330. package/dist/assets/dist-BtRvVXgu.js +0 -1
  331. package/dist/assets/dist-CAZ5kHnb.js +0 -1
  332. package/dist/assets/dist-CN8IvtVY.js +0 -1
  333. package/dist/assets/dist-Cw007UHk.js +0 -1
  334. package/dist/assets/dist-DEfSR7VW.js +0 -1
  335. package/dist/assets/dist-DSbiMNpu.js +0 -1
  336. package/dist/assets/dist-DeIZvG9x.js +0 -1
  337. package/dist/assets/dist-DyZWkD0n.js +0 -1
  338. package/dist/assets/dist-hfODPqg9.js +0 -1
  339. package/dist/assets/edit-page-Bt_YqRld.js +0 -12
  340. package/dist/assets/error-panel-dvBEznKE.js +0 -1
  341. package/dist/assets/esm-hOS9Yf3s.js +0 -1
  342. package/dist/assets/field-Ota1KKvP.js +0 -1
  343. package/dist/assets/file-explorer-panel-Pa89UfV1.js +0 -1
  344. package/dist/assets/filename-BYm5Do9U.js +0 -1
  345. package/dist/assets/home-page-B3bIZC6F.js +0 -4
  346. package/dist/assets/index-BQd14tU4.css +0 -2
  347. package/dist/assets/input-Dm-m3XYB.js +0 -7
  348. package/dist/assets/links-CQoApRoA.js +0 -1
  349. package/dist/assets/logs-panel-R50NxjC7.js +0 -1
  350. package/dist/assets/mermaid.core-BjBlUxCx.js +0 -1
  351. package/dist/assets/numbers-DtHKLeOn.js +0 -1
  352. package/dist/assets/outline-panel-CB2kV_p5.js +0 -1
  353. package/dist/assets/packages-panel-BpFuUbAr.js +0 -1
  354. package/dist/assets/run-page-ClDuCh42.js +0 -1
  355. package/dist/assets/scratchpad-panel-BRljth0m.js +0 -1
  356. package/dist/assets/secrets-panel-CQON2dfx.js +0 -1
  357. package/dist/assets/snippets-panel-C0OdhmTA.js +0 -1
  358. package/dist/assets/state-DaDgAzck.js +0 -1
  359. package/dist/assets/state-Do6Fn2Io.js +0 -1
  360. package/dist/assets/stateDiagram-v2-UMBNRL4Z-Bi0DZGHg.js +0 -1
  361. package/dist/assets/stex-CbLDtSMU.js +0 -1
  362. package/dist/assets/storage-DFOl3UlZ.js +0 -1
  363. package/dist/assets/tracing-k1M6Upka.js +0 -2
  364. package/dist/assets/tracing-panel-CyG4yTCu.js +0 -2
  365. package/dist/assets/useHotkey-CJ5v8JMM.js +0 -1
  366. package/dist/assets/useNotebookActions-BB-5-4dL.js +0 -1
  367. package/dist/assets/useSplitCell-Cy53n7mS.js +0 -1
  368. package/dist/assets/utils-CfnN8i3Y.js +0 -1
  369. package/dist/assets/variable-panel-Dd_6lOoR.js +0 -1
  370. /package/dist/assets/{Deferred-BIEvCvJC.js → Deferred-Mppm0cvJ.js} +0 -0
  371. /package/dist/assets/{alert-B2-Y1fzf.js → alert-hjKHAeOD.js} +0 -0
  372. /package/dist/assets/{badge-D5b5ze0K.js → badge-DJuT6BaT.js} +0 -0
  373. /package/dist/assets/{blob-DFrnsWYL.js → blob-CTPcPiam.js} +0 -0
  374. /package/dist/assets/{connection-Cb7zku0y.js → connection-D2GvycR9.js} +0 -0
  375. /package/dist/assets/{copy-BiKQh0sU.js → copy-CkZsxeON.js} +0 -0
  376. /package/dist/assets/{createLucideIcon-Be9UM2Pe.js → createLucideIcon-QLW8E4z5.js} +0 -0
  377. /package/dist/assets/{createReducer-BaSP2BKE.js → createReducer-CFr1RdS2.js} +0 -0
  378. /package/dist/assets/{defaultLocale-DU4zdxes.js → defaultLocale-C6TNIE_k.js} +0 -0
  379. /package/dist/assets/{defaultLocale-BCtmQtCj.js → defaultLocale-DPsgYaXf.js} +0 -0
  380. /package/dist/assets/{dist-DIuPmJ5w.js → dist-Bz53xjA5.js} +0 -0
  381. /package/dist/assets/{dist-BhR4qmIv.js → dist-DcASoeRZ.js} +0 -0
  382. /package/dist/assets/{dist-BMAXVGJe.js → dist-Dlusp3mb.js} +0 -0
  383. /package/dist/assets/{documentation-BZROoSma.js → documentation-B7z6bB-t.js} +0 -0
  384. /package/dist/assets/{emotion-is-prop-valid.esm-plUNooLR.js → emotion-is-prop-valid.esm-BbphD4LX.js} +0 -0
  385. /package/dist/assets/{errors-qtuExmE-.js → errors-_3XAtRr3.js} +0 -0
  386. /package/dist/assets/{es-Hxx5X1vH.js → es-BVCqnQhJ.js} +0 -0
  387. /package/dist/assets/{extends--r5KbeWh.js → extends-Bwhapo2B.js} +0 -0
  388. /package/dist/assets/{fast-deep-equal-DT2Tke28.js → fast-deep-equal-BdzBWnNx.js} +0 -0
  389. /package/dist/assets/{icons-BUUt9FMo.js → icons-CLD-J5J3.js} +0 -0
  390. /package/dist/assets/{kbd-DItNvBdP.js → kbd-BQFiWIjd.js} +0 -0
  391. /package/dist/assets/{main-Co0CqoDt.js → main-CfqcqCNp.js} +0 -0
  392. /package/dist/assets/{marked.esm-BVjBUuHx.js → marked.esm-C_54K2ke.js} +0 -0
  393. /package/dist/assets/{namespace-BstGchRe.js → namespace-CnoeT75h.js} +0 -0
  394. /package/dist/assets/{objectWithoutPropertiesLoose-CGYpiDu4.js → objectWithoutPropertiesLoose-CDpgRi8_.js} +0 -0
  395. /package/dist/assets/{ordinal-DO1z0TEs.js → ordinal-CHS6rGcb.js} +0 -0
  396. /package/dist/assets/{preload-helper-CxnU7XTI.js → preload-helper-DImqtvgl.js} +0 -0
  397. /package/dist/assets/{prop-types-Bv8iPqhZ.js → prop-types-CHKlDUlJ.js} +0 -0
  398. /package/dist/assets/{range-CJAH1fu_.js → range-BPiwmiGf.js} +0 -0
  399. /package/dist/assets/{shim-Bk8nzKPV.js → shim-CWt9rDBn.js} +0 -0
  400. /package/dist/assets/{stex-CETff8Y9.js → stex-BrOrfhKB.js} +0 -0
  401. /package/dist/assets/{strings-1yw0WVap.js → strings-DYBy5ejj.js} +0 -0
  402. /package/dist/assets/{tslib.es6-DItc8Tbq.js → tslib.es6-dlz5WbC8.js} +0 -0
  403. /package/dist/assets/{use-toast-C07-frN_.js → use-toast-D6NNsC80.js} +0 -0
  404. /package/dist/assets/{useEvent-BIiDVnhT.js → useEvent-BOb1a9d1.js} +0 -0
  405. /package/dist/assets/{useLifecycle-Bnvt0QrQ.js → useLifecycle-BfeAlD80.js} +0 -0
  406. /package/dist/assets/{useNonce-Cw4ZAbgi.js → useNonce-BbWkd3B4.js} +0 -0
  407. /package/dist/assets/{useNumberFormatter-DYIEUCTe.js → useNumberFormatter-D21brJ0f.js} +0 -0
  408. /package/dist/assets/{uuid-BWz20PcF.js → uuid-4lb_EYpq.js} +0 -0
@@ -1 +1 @@
1
- import{a as Na,n as q,r as sr,s as H,t as ce}from"./chunk-DZLz74EQ.js";import{o as Ca,r as Lt,s as wa,t as Aa}from"./react-7g8sREeT.js";import{t as Oa}from"./react-BcIddLXZ.js";import"./react-dom-D6bRRS5R.js";import"./zod-BEi78Y5d.js";import{n as Wt,t as ka}from"./jsx-runtime-DvsdsEjx.js";import"./_Uint8Array-CPNtPV0k.js";import"./isSymbol-D1Vf4s0g.js";import"./_arrayMap-DQI2GUNb.js";import"./toString-pPvo2488.js";import"./isArrayLikeObject-CQy5-FN4.js";import"./_getTag-C4fv2peH.js";import"./_baseIsEqual-Cdnsi4t8.js";import"./merge-DrdmtLTL.js";import"./_baseSlice-B27Cqkm6.js";import"./upperFirst-CVedXayx.js";import"./_hasUnicode-CPHpt5EV.js";import"./_arrayReduce-DDpPg0Qh.js";import{t as Ma}from"./startCase-D58-CT5H.js";import{t as Ia}from"./invariant-91cSKJcr.js";import{n as Ua}from"./loader-CPDA0quD.js";import{t as Fa}from"./Logger-BkkOJyg0.js";import{a as Da}from"./hotkeys-CBY41Jr2.js";import"./utils-CfnN8i3Y.js";import"./dist-CLazWf1X.js";import{t as _a}from"./cn-Dr9kMPPj.js";import"./dist-D-dnh2ed.js";import"./useEventListener-g9rPKvBX.js";import"./events-BGfCi1Xy.js";import{t as lr}from"./button-Bxk0BtBn.js";import{t as ja}from"./createReducer-BaSP2BKE.js";import{r as Pa}from"./useTheme-C5JyqXTm.js";import{t as cr}from"./createLucideIcon-Be9UM2Pe.js";import{i as Ra,n as $a,r as Ba,t as La}from"./type-C9leWRlU.js";import"./check-hL6-9SZK.js";import{a as ur,c as dr,i as Se,n as Ze,o as fr,r as We,s as et,t as tt}from"./select-CMG6DC3j.js";import{t as Wa}from"./list-filter-D2Wx3thV.js";import{t as qa}from"./square-function-OflPQrBg.js";import{t as Ha}from"./badge-D5b5ze0K.js";import"./namespace-BstGchRe.js";import{t as Ga}from"./tooltip-BjoMzmCN.js";import{t as za}from"./useLifecycle-Bnvt0QrQ.js";import"./menu-items-COILZQ4q.js";import"./fullscreen-BFmvQx5m.js";import"./tslib.es6-DItc8Tbq.js";import"./alert-dialog-M1dUQe7C.js";import{t as Ya}from"./useNumberFormatter-DYIEUCTe.js";import{t as Qa}from"./useDateFormatter-DjmrLzxH.js";import"./useEvent-BIiDVnhT.js";import"./errors-qtuExmE-.js";import"./vega-loader.browser.module-Jwd7L8Ye.js";import"./precisionRound-CR2cxaaR.js";import"./linear-BI0LBATm.js";import{a as Va,o as Ka,s as Ja}from"./src-BOK-SWX4.js";import"./ordinal-DO1z0TEs.js";import"./time-Dzg4b75Q.js";import"./range-CJAH1fu_.js";import"./defaultLocale-BCtmQtCj.js";import"./defaultLocale-DU4zdxes.js";import"./prop-types-Bv8iPqhZ.js";import{n as Xa}from"./useAsyncData-BEqqunls.js";import{n as Za}from"./error-banner-ARu6PiHL.js";import{t as eo}from"./label-COeaBwl_.js";import"./fast-deep-equal-DT2Tke28.js";import"./timer-m_pEB4Lb.js";import"./path-Gc-fQZTe.js";import"./math-BsaXoFIn.js";import"./arc-De5rudRM.js";import"./array-DZFD9yN1.js";import"./step-aJ-oEw6-.js";import"./line-1VYCafWO.js";import"./init-BEfLCoUT.js";import"./colors-BlRVeShK.js";import"./treemap-CMOdyZ8L.js";import{n as pr}from"./esm-BIF8NHm8.js";var to=cr("chart-column-big",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["rect",{x:"15",y:"5",width:"4",height:"12",rx:"1",key:"q8uenq"}],["rect",{x:"7",y:"8",width:"4",height:"9",rx:"1",key:"sr5ea"}]]),no=cr("list-ordered",[["path",{d:"M10 12h11",key:"6m4ad9"}],["path",{d:"M10 18h11",key:"11hvi2"}],["path",{d:"M10 6h11",key:"c7qv1k"}],["path",{d:"M4 10h2",key:"16xx2s"}],["path",{d:"M4 6h1v4",key:"cnovpq"}],["path",{d:"M6 18H4c0-1 2-2 2-3s-1-1.5-2-1",key:"m9a95d"}]]),hr=H(Wt());function Ue(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,i=Object.getOwnPropertySymbols(e);a<i.length;a++)t.indexOf(i[a])<0&&Object.prototype.propertyIsEnumerable.call(e,i[a])&&(n[i[a]]=e[i[a]]);return n}var ro=ce(((e,t)=>{var n=(function(){function i(f,d){return d!=null&&f instanceof d}var a;try{a=Map}catch{a=function(){}}var r;try{r=Set}catch{r=function(){}}var s;try{s=Promise}catch{s=function(){}}function u(f,d,g,y,v){typeof d=="object"&&(g=d.depth,y=d.prototype,v=d.includeNonEnumerable,d=d.circular);var b=[],x=[],S=typeof Buffer<"u";d===void 0&&(d=!0),g===void 0&&(g=1/0);function C(T,w){if(T===null)return null;if(w===0)return T;var N,D;if(typeof T!="object")return T;if(i(T,a))N=new a;else if(i(T,r))N=new r;else if(i(T,s))N=new s(function(he,I){T.then(function(Z){he(C(Z,w-1))},function(Z){I(C(Z,w-1))})});else if(u.__isArray(T))N=[];else if(u.__isRegExp(T))N=new RegExp(T.source,p(T)),T.lastIndex&&(N.lastIndex=T.lastIndex);else if(u.__isDate(T))N=new Date(T.getTime());else{if(S&&Buffer.isBuffer(T))return N=Buffer.allocUnsafe?Buffer.allocUnsafe(T.length):new Buffer(T.length),T.copy(N),N;i(T,Error)?N=Object.create(T):y===void 0?(D=Object.getPrototypeOf(T),N=Object.create(D)):(N=Object.create(y),D=y)}if(d){var k=b.indexOf(T);if(k!=-1)return x[k];b.push(T),x.push(N)}for(var M in i(T,a)&&T.forEach(function(he,I){var Z=C(I,w-1),Xe=C(he,w-1);N.set(Z,Xe)}),i(T,r)&&T.forEach(function(he){var I=C(he,w-1);N.add(I)}),T){var _;D&&(_=Object.getOwnPropertyDescriptor(D,M)),!(_&&_.set==null)&&(N[M]=C(T[M],w-1))}if(Object.getOwnPropertySymbols)for(var Ee=Object.getOwnPropertySymbols(T),M=0;M<Ee.length;M++){var X=Ee[M],W=Object.getOwnPropertyDescriptor(T,X);W&&!W.enumerable&&!v||(N[X]=C(T[X],w-1),W.enumerable||Object.defineProperty(N,X,{enumerable:!1}))}if(v)for(var pe=Object.getOwnPropertyNames(T),M=0;M<pe.length;M++){var Te=pe[M],W=Object.getOwnPropertyDescriptor(T,Te);W&&W.enumerable||(N[Te]=C(T[Te],w-1),Object.defineProperty(N,Te,{enumerable:!1}))}return N}return C(f,g)}u.clonePrototype=function(f){if(f===null)return null;var d=function(){};return d.prototype=f,new d};function h(f){return Object.prototype.toString.call(f)}u.__objToStr=h;function o(f){return typeof f=="object"&&h(f)==="[object Date]"}u.__isDate=o;function l(f){return typeof f=="object"&&h(f)==="[object Array]"}u.__isArray=l;function c(f){return typeof f=="object"&&h(f)==="[object RegExp]"}u.__isRegExp=c;function p(f){var d="";return f.global&&(d+="g"),f.ignoreCase&&(d+="i"),f.multiline&&(d+="m"),d}return u.__getRegExpFlags=p,u})();typeof t=="object"&&t.exports&&(t.exports=n)})),io=ce(((e,t)=>{var n=Array.isArray,i=Object.keys,a=Object.prototype.hasOwnProperty;t.exports=function r(s,u){if(s===u)return!0;if(s&&u&&typeof s=="object"&&typeof u=="object"){var h=n(s),o=n(u),l,c,p;if(h&&o){if(c=s.length,c!=u.length)return!1;for(l=c;l--!==0;)if(!r(s[l],u[l]))return!1;return!0}if(h!=o)return!1;var f=s instanceof Date,d=u instanceof Date;if(f!=d)return!1;if(f&&d)return s.getTime()==u.getTime();var g=s instanceof RegExp,y=u instanceof RegExp;if(g!=y)return!1;if(g&&y)return s.toString()==u.toString();var v=i(s);if(c=v.length,c!==i(u).length)return!1;for(l=c;l--!==0;)if(!a.call(u,v[l]))return!1;for(l=c;l--!==0;)if(p=v[l],!r(s[p],u[p]))return!1;return!0}return s!==s&&u!==u}})),mr=H(ce(((e,t)=>{t.exports=function(n,i){i||(i={}),typeof i=="function"&&(i={cmp:i});var a=typeof i.cycles=="boolean"?i.cycles:!1,r=i.cmp&&(function(u){return function(h){return function(o,l){var c={key:o,value:h[o]},p={key:l,value:h[l]};return u(c,p)}}})(i.cmp),s=[];return(function u(h){if(h&&h.toJSON&&typeof h.toJSON=="function"&&(h=h.toJSON()),h!==void 0){if(typeof h=="number")return isFinite(h)?""+h:"null";if(typeof h!="object")return JSON.stringify(h);var o,l;if(Array.isArray(h)){for(l="[",o=0;o<h.length;o++)o&&(l+=","),l+=u(h[o])||"null";return l+"]"}if(h===null)return"null";if(s.indexOf(h)!==-1){if(a)return JSON.stringify("__cycle__");throw TypeError("Converting circular structure to JSON")}var c=s.push(h)-1,p=Object.keys(h).sort(r&&r(h));for(l="",o=0;o<p.length;o++){var f=p[o],d=u(h[f]);d&&(l&&(l+=","),l+=JSON.stringify(f)+":"+d)}return s.splice(c,1),"{"+l+"}"}})(n)}}))());io(),ro();function Fe(e,t,n){return e.fields=t||[],e.fname=n,e}function qt(e){throw Error(e)}function Ht(e){var t=[],n=null,i=0,a=e.length,r="",s,u,h;e+="";function o(){t.push(r+e.substring(s,u)),r="",s=u+1}for(s=u=0;u<a;++u)if(h=e[u],h==="\\")r+=e.substring(s,u),s=++u;else if(h===n)o(),n=null,i=-1;else{if(n)continue;s===i&&h==='"'||s===i&&h==="'"?(s=u+1,n=h):h==="."&&!i?u>s?o():s=u+1:h==="["?(u>s&&o(),i=s=u+1):h==="]"&&(i||qt("Access path missing open bracket: "+e),i>0&&o(),i=0,s=u+1)}return i&&qt("Access path missing closing bracket: "+e),n&&qt("Access path missing closing quote: "+e),u>s&&(u++,o()),t}var nt=Array.isArray;function gr(e){return e===Object(e)}function Gt(e){return typeof e=="string"}function zt(e){return nt(e)?"["+e.map(zt)+"]":gr(e)||Gt(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function ao(e,t){var n=Ht(e),i="return _["+n.map(zt).join("][")+"];";return Fe(Function("_",i),[e=n.length===1?n[0]:e],t||e)}var qe=[];ao("id"),Fe(function(e){return e},qe,"identity"),Fe(function(){return 0},qe,"zero"),Fe(function(){return 1},qe,"one"),Fe(function(){return!0},qe,"true"),Fe(function(){return!1},qe,"false");function rt(e,t,n){var i=[t].concat([].slice.call(n));console[e](...i)}function oo(e,t){var n=e||0;return{level:function(i){return arguments.length?(n=+i,this):n},error:function(){return n>=1&&rt(t||"error","ERROR",arguments),this},warn:function(){return n>=2&&rt(t||"warn","WARN",arguments),this},info:function(){return n>=3&&rt(t||"log","INFO",arguments),this},debug:function(){return n>=4&&rt(t||"log","DEBUG",arguments),this}}}function Yt(e){return typeof e=="boolean"}function De(e){for(var t={},n=0,i=e.length;n<i;++n)t[e[n]]=!0;return t}Set.prototype.toJSON=function(){return`Set(${[...this].map(e=>(0,mr.default)(e)).join(",")})`};const Q=mr.default;function G(e,t){return e.indexOf(t)>-1}function so(e,t){let n=0;for(let[i,a]of e.entries())if(t(a,i,n++))return!0;return!1}const j=Object.keys;function lo(e){let t=e.replace(/\W/g,"_");return(e.match(/^\d+/)?"_":"")+t}function co(e,t="datum"){return`${t}[${zt(Ht(e).join("."))}]`}function uo(e){return`${Ht(e).map(t=>t.replace(".","\\.")).join("\\.")}`}function fo(...e){for(let t of e)if(t!==void 0)return t}function po(e){return ho(e)?e:`__${e}`}function ho(e){return e.indexOf("__")===0}const Ne="column",yr="facet",vr="latitude",br="longitude",xr="latitude2",Er="longitude2",ue="color",it="fill",at="stroke",ot="shape",He="size",st="opacity",lt="fillOpacity",ct="strokeOpacity",ut="strokeWidth",Qt="text",Tr="order",Sr="detail",Nr="tooltip",Cr="href";var mo={x:1,y:1,x2:1,y2:1},wr={longitude:1,longitude2:1,latitude:1,latitude2:1};j(wr);var dt=Object.assign({},mo,wr,{color:1,fill:1,stroke:1,opacity:1,fillOpacity:1,strokeOpacity:1,strokeWidth:1,size:1,shape:1,order:1,text:1,detail:1,key:1,tooltip:1,href:1});function ft(e){return e==="color"||e==="fill"||e==="stroke"}var Ar={row:1,column:1,facet:1};j(Ar);var Ge=Object.assign({},dt,Ar);const go=j(Ge);var{order:Af,detail:Of}=Ge,yo=Ue(Ge,["order","detail"]),{order:kf,detail:Mf,row:If,column:Uf,facet:Ff}=Ge,vo=Ue(Ge,["order","detail","row","column","facet"]);j(yo),j(vo),j(dt);var{x:Df,y:_f,x2:jf,y2:Pf,latitude:Rf,longitude:$f,latitude2:Bf,longitude2:Lf}=dt,Vt=Ue(dt,["x","y","x2","y2","latitude","longitude","latitude2","longitude2"]);const Or=j(Vt);var kr={x:1,y:1};j(kr);var{text:Wf,tooltip:qf,href:Hf,detail:Gf,key:zf,order:Yf}=Vt,Mr=Ue(Vt,["text","tooltip","href","detail","key","order"]);j(Mr);var Ir=Object.assign({},kr,Mr);j(Ir);function bo(e){return!!Ir[e]}function xo(e,t){return To(e)[t]}var Kt={area:"always",bar:"always",circle:"always",geoshape:"always",line:"always",rule:"always",point:"always",rect:"always",square:"always",trail:"always",text:"always",tick:"always"},{geoshape:Qf}=Kt,Eo=Ue(Kt,["geoshape"]);function To(e){switch(e){case ue:case it:case at:case Sr:case"key":case Nr:case Cr:case Tr:case st:case lt:case ct:case ut:case yr:case"row":case Ne:return Kt;case"x":case"y":case vr:case br:return Eo;case"x2":case"y2":case xr:case Er:return{rule:"always",bar:"always",rect:"always",area:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case He:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case ot:return{point:"always",geoshape:"always"};case Qt:return{text:"always"}}}function Jt(e){switch(e){case"x":case"y":case He:case ut:case st:case lt:case ct:case"x2":case"y2":return;case yr:case"row":case Ne:case ot:case Qt:case Nr:case Cr:return"discrete";case ue:case it:case at:return"flexible";case vr:case br:case xr:case Er:case Sr:case"key":case Tr:return}throw Error("rangeType not implemented for "+e)}var Ur={orient:1,bandPosition:1,domain:1,domainColor:1,domainDash:1,domainDashOffset:1,domainOpacity:1,domainWidth:1,format:1,formatType:1,grid:1,gridColor:1,gridDash:1,gridDashOffset:1,gridOpacity:1,gridWidth:1,labelAlign:1,labelAngle:1,labelBaseline:1,labelBound:1,labelColor:1,labelFlush:1,labelFlushOffset:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labels:1,labelSeparation:1,maxExtent:1,minExtent:1,offset:1,position:1,tickColor:1,tickCount:1,tickDash:1,tickDashOffset:1,tickExtra:1,tickMinStep:1,tickOffset:1,tickOpacity:1,tickRound:1,ticks:1,tickSize:1,tickWidth:1,title:1,titleAlign:1,titleAnchor:1,titleAngle:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleOpacity:1,titlePadding:1,titleX:1,titleY:1,values:1,zindex:1},So=Object.assign({},Ur,{encoding:1}),No=Object.assign({gridScale:1,scale:1},Ur,{encode:1});j(No);const Fr=j(So);var Dr={clipHeight:1,columnPadding:1,columns:1,cornerRadius:1,direction:1,fillColor:1,format:1,formatType:1,gradientLength:1,gradientOpacity:1,gradientStrokeColor:1,gradientStrokeWidth:1,gradientThickness:1,gridAlign:1,labelAlign:1,labelBaseline:1,labelColor:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labelSeparation:1,legendX:1,legendY:1,offset:1,orient:1,padding:1,rowPadding:1,strokeColor:1,symbolDash:1,symbolDashOffset:1,symbolFillColor:1,symbolOffset:1,symbolOpacity:1,symbolSize:1,symbolStrokeColor:1,symbolStrokeWidth:1,symbolType:1,tickCount:1,tickMinStep:1,title:1,titleAlign:1,titleAnchor:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleOpacity:1,titleOrient:1,titlePadding:1,type:1,values:1,zindex:1},Co=Object.assign({},Dr,{opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,encode:1});const _r=j(Dr);j(Co);var wo=sr({BAR_WITH_POINT_SCALE_AND_RANGESTEP_NULL:()=>ss,CANNOT_FIX_RANGE_STEP_WITH_FIT:()=>ko,CANNOT_UNION_CUSTOM_DOMAIN_WITH_FIELD_DOMAIN:()=>us,CONCAT_CANNOT_SHARE_AXIS:()=>Ro,FIT_NON_SINGLE:()=>Oo,INVALID_CHANNEL_FOR_AXIS:()=>As,INVALID_SPEC:()=>Ao,LINE_WITH_VARYING_SIZE:()=>ts,MORE_THAN_ONE_SORT:()=>ws,NO_FIELDS_NEEDS_AS:()=>qo,NO_INIT_SCALE_BINDINGS:()=>_o,REPEAT_CANNOT_SHARE_AXIS:()=>$o,SCALE_BINDINGS_CONTINUOUS:()=>Do,UNABLE_TO_MERGE_DOMAINS:()=>Cs,cannotApplySizeToNonOrientedMark:()=>ms,cannotProjectOnChannelWithoutField:()=>Mo,cannotStackNonLinearScale:()=>ks,cannotStackRangedMark:()=>Os,cannotUseScalePropertyWithNonColor:()=>ds,channelRequiredForBinned:()=>$s,columnsNotSupportByRowCol:()=>Po,dayReplacedWithDate:()=>Us,differentParse:()=>Lo,discreteChannelCannotEncode:()=>os,domainRequiredForThresholdScale:()=>Bs,domainSortDropped:()=>Ns,droppedDay:()=>Fs,droppingColor:()=>Xo,emptyFieldDef:()=>Zo,encodingOverridden:()=>Ho,errorBand1DNotSupport:()=>Rs,errorBarCenterAndExtentAreNotNeeded:()=>Ds,errorBarCenterIsNotNeeded:()=>Ps,errorBarCenterIsUsedWithWrongExtent:()=>_s,errorBarContinuousAxisHasCustomizedAggregate:()=>js,facetChannelDropped:()=>as,facetChannelShouldBeDiscrete:()=>is,incompatibleChannel:()=>ns,independentScaleMeansIndependentGuide:()=>Ss,invalidAggregate:()=>Ko,invalidEncodingChannel:()=>rs,invalidFieldType:()=>Yo,invalidFieldTypeForCountAggregate:()=>Vo,invalidTimeUnit:()=>Is,invalidTransformIgnored:()=>Wo,latLongDeprecated:()=>es,lineWithRange:()=>ls,mergeConflictingDomainProperty:()=>Ts,mergeConflictingProperty:()=>Es,missingFieldType:()=>Jo,nearestNotSupportForContinuous:()=>Io,noSuchRepeatedValue:()=>jo,nonZeroScaleUsedWithLengthMark:()=>Qo,orientOverridden:()=>cs,primitiveChannelDef:()=>zo,projectionOverridden:()=>Go,rangeStepDropped:()=>gs,scalePropertyNotWorkWithScaleType:()=>bs,scaleTypeNotWorkWithChannel:()=>ys,scaleTypeNotWorkWithFieldDef:()=>vs,scaleTypeNotWorkWithMark:()=>xs,selectionNotFound:()=>Fo,selectionNotSupported:()=>Uo,stackNonSummativeAggregate:()=>Ms,unaggregateDomainHasNoEffectForRawField:()=>fs,unaggregateDomainWithNonSharedDomainOp:()=>ps,unaggregatedDomainWithLogScale:()=>hs,unrecognizedParse:()=>Bo});const Ao="Invalid spec",Oo='Autosize "fit" only works for single views and layered views.',ko='Cannot use a fixed value of "rangeStep" when "autosize" is "fit".';function Mo(e){return`Cannot project a selection on encoding channel "${e}", which has no field.`}function Io(e){return`The "nearest" transform is not supported for ${e} marks.`}function Uo(e){return`Selection not supported for ${e} yet`}function Fo(e){return`Cannot find a selection named "${e}"`}const Do="Scale bindings are currently only supported for scales with unbinned, continuous domains.",_o="Selections bound to scales cannot be separately initialized.";function jo(e){return`Unknown repeated value "${e}".`}function Po(e){return`The "columns" property cannot be used when "${e}" has nested row/column.`}const Ro="Axes cannot be shared in concatenated views yet (https://github.com/vega/vega-lite/issues/2415).",$o="Axes cannot be shared in repeated views yet (https://github.com/vega/vega-lite/issues/2415).";function Bo(e){return`Unrecognized parse "${e}".`}function Lo(e,t,n){return`An ancestor parsed field "${e}" as ${n} but a child wants to parse the field as ${t}.`}function Wo(e){return`Ignoring an invalid transform: ${Q(e)}.`}const qo='If "from.fields" is not specified, "as" has to be a string that specifies the key to be used for the data from the secondary source.';function Ho(e){return`Layer's shared ${e.join(",")} channel ${e.length===1?"is":"are"} overriden`}function Go(e){let{parentProjection:t,projection:n}=e;return`Layer's shared projection ${Q(t)} is overridden by a child projection ${Q(n)}.`}function zo(e,t,n){return`Channel ${e} is a ${t}. Converted to {value: ${Q(n)}}.`}function Yo(e){return`Invalid field type "${e}"`}function Qo(e,t,n){return`A ${n.scaleType?`${n.scaleType} scale`:n.zeroFalse?"scale with zero=false":"scale with custom domain that excludes zero"} is used to encode ${e}'s ${t}. This can be misleading as the ${t==="x"?"width":"height"} of the ${e} can be arbitrary based on the scale domain. You may want to use point mark instead.`}function Vo(e,t){return`Invalid field type "${e}" for aggregate: "${t}", using "quantitative" instead.`}function Ko(e){return`Invalid aggregation operator "${e}"`}function Jo(e,t){return`Missing type for channel "${e}", using "${t}" instead.`}function Xo(e,t){let{fill:n,stroke:i}=t;return`Dropping color ${e} as the plot also has `+(n&&i?"fill and stroke":n?"fill":"stroke")}function Zo(e,t){return`Dropping ${Q(e)} from channel "${t}" since it does not contain data field or value.`}function es(e,t,n){return`${e}-encoding with type ${t} is deprecated. Replacing with ${n}-encoding.`}const ts="Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.";function ns(e,t,n){return`${e} dropped as it is incompatible with "${t}"${n?` when ${n}`:""}.`}function rs(e){return`${e}-encoding is dropped as ${e} is not a valid encoding channel.`}function is(e){return`${e} encoding should be discrete (ordinal / nominal / binned).`}function as(e){return`Facet encoding dropped as ${e.join(" and ")} ${e.length>1?"are":"is"} also specified.`}function os(e,t){return`Using discrete channel "${e}" to encode "${t}" field can be misleading as it does not encode ${t==="ordinal"?"order":"magnitude"}.`}const ss="Bar mark should not be used with point scale when rangeStep is null. Please use band scale instead.";function ls(e,t){return`Line mark is for continuous lines and thus cannot be used with ${e&&t?"x2 and y2":e?"x2":"y2"}. We will use the rule mark (line segments) instead.`}function cs(e,t){return`Specified orient "${e}" overridden with "${t}"`}const us="custom domain scale cannot be unioned with default field-based domain";function ds(e){return`Cannot use the scale property "${e}" with non-color channel.`}function fs(e){return`Using unaggregated domain with raw field has no effect (${Q(e)}).`}function ps(e){return`Unaggregated domain not applicable for "${e}" since it produces values outside the origin domain of the source data.`}function hs(e){return`Unaggregated domain is currently unsupported for log scale (${Q(e)}).`}function ms(e){return`Cannot apply size to non-oriented mark "${e}".`}function gs(e){return`rangeStep for "${e}" is dropped as top-level ${e==="x"?"width":"height"} is provided.`}function ys(e,t,n){return`Channel "${e}" does not work with "${t}" scale. We are using "${n}" scale instead.`}function vs(e,t){return`FieldDef does not work with "${e}" scale. We are using "${t}" scale instead.`}function bs(e,t,n){return`${n}-scale's "${t}" is dropped as it does not work with ${e} scale.`}function xs(e,t){return`Scale type "${t}" does not work with mark "${e}".`}function Es(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${Q(n)} and ${Q(i)}). Using ${Q(n)}.`}function Ts(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${Q(n)} and ${Q(i)}). Using the union of the two domains.`}function Ss(e){return`Setting the scale to be independent for "${e}" means we also have to set the guide (axis or legend) to be independent.`}function Ns(e){return`Dropping sort property ${Q(e)} as unioned domains only support boolean or op 'count'.`}const Cs="Unable to merge domains",ws="Domains that should be unioned has conflicting sort properties. Sort will be set to true.",As="Invalid channel for axis.";function Os(e){return`Cannot stack "${e}" if there is already "${e}2"`}function ks(e){return`Cannot stack non-linear scale (${e})`}function Ms(e){return`Stacking is applied even though the aggregate function is non-summative ("${e}")`}function Is(e,t){return`Invalid ${e}: ${Q(t)}`}function Us(e){return`Time unit "${e}" is not supported. We are replacing it with ${e.replace("day","date")}.`}function Fs(e){return`Dropping day from datetime ${Q(e)} as day cannot be combined with other units.`}function Ds(e,t){return`${t?"extent ":""}${t&&e?"and ":""}${e?"center ":""}${t&&e?"are ":"is "}not needed when data are aggregated.`}function _s(e,t,n){return`${e} is not usually used with ${t} for ${n}.`}function js(e,t){return`Continuous axis should not have customized aggregation function ${e}; ${t} already agregates the axis.`}function Ps(e,t){return`Center is not needed to be specified in ${t} when extent is ${e}.`}function Rs(e){return`1D error band does not support ${e}`}function $s(e){return`Channel ${e} is required for "binned" bin`}function Bs(e){return`Domain for ${e} is required for threshold scale`}const ee=wo;var jr=oo(2);function ge(...e){jr.warn.apply(jr,arguments)}const Ls={quantitative:1,ordinal:1,temporal:1,nominal:1,geojson:1},te="quantitative",Ce="ordinal",ye="temporal",we="nominal";function Ws(e){if(e)switch(e=e.toLowerCase(),e){case"q":case te:return"quantitative";case"t":case ye:return"temporal";case"o":case Ce:return"ordinal";case"n":case we:return"nominal";case"geojson":return"geojson"}}var F;(function(e){e.LINEAR="linear",e.LOG="log",e.POW="pow",e.SQRT="sqrt",e.SYMLOG="symlog",e.TIME="time",e.UTC="utc",e.QUANTILE="quantile",e.QUANTIZE="quantize",e.THRESHOLD="threshold",e.BIN_ORDINAL="bin-ordinal",e.ORDINAL="ordinal",e.POINT="point",e.BAND="band"})(F||(F={}));const qs=j({linear:"numeric",log:"numeric",pow:"numeric",sqrt:"numeric",symlog:"numeric",time:"time",utc:"time",ordinal:"ordinal","bin-ordinal":"bin-ordinal",point:"ordinal-position",band:"ordinal-position",quantile:"discretizing",quantize:"discretizing",threshold:"discretizing"}),Pr=["linear","log","pow","sqrt","symlog","time","utc"];var Hs=De(Pr),Gs=De(["quantile","quantize","threshold"]);const zs=Pr.concat(["quantile","quantize","threshold"]);var Ys=De(zs),Qs=De(["ordinal","bin-ordinal","point","band"]);function Ae(e){return e in Qs}function Vs(e){return e in Ys}function _e(e){return e in Hs}function Ks(e){return e in Gs}var Xt={type:1,domain:1,align:1,range:1,rangeStep:1,scheme:1,bins:1,reverse:1,round:1,clamp:1,nice:1,base:1,exponent:1,constant:1,interpolate:1,zero:1,padding:1,paddingInner:1,paddingOuter:1};const Rr=j(Xt);var{type:Vf,domain:Kf,range:Jf,rangeStep:Xf,scheme:Zf}=Xt,Js=Ue(Xt,["type","domain","range","rangeStep","scheme"]);j(Js),Zs();function Zt(e,t){switch(t){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!G(["point","band","identity"],e);case"bins":return!G(["point","band","identity","ordinal"],e);case"round":return _e(e)||e==="band"||e==="point";case"padding":return _e(e)||G(["point","band"],e);case"paddingOuter":case"rangeStep":case"align":return G(["point","band"],e);case"paddingInner":return e==="band";case"clamp":return _e(e);case"nice":return _e(e)||e==="quantize"||e==="threshold";case"exponent":return e==="pow";case"base":return e==="log";case"constant":return e==="symlog";case"zero":return Vs(e)&&!G(["log","time","utc","threshold","quantile"],e)}}function Xs(e,t){switch(t){case"interpolate":case"scheme":return ft(e)?void 0:ee.cannotUseScalePropertyWithNonColor(e);case"align":case"type":case"bins":case"domain":case"range":case"base":case"exponent":case"constant":case"nice":case"padding":case"paddingInner":case"paddingOuter":case"rangeStep":case"reverse":case"round":case"clamp":case"zero":return}}function $r(e,t){return G(["ordinal","nominal"],t)?e===void 0||Ae(e):t==="temporal"?G([F.TIME,F.UTC,void 0],e):t==="quantitative"?G([F.LOG,F.POW,F.SQRT,F.SYMLOG,F.QUANTILE,F.QUANTIZE,F.THRESHOLD,F.LINEAR,void 0],e):!0}function Br(e,t){switch(e){case"x":case"y":return _e(t)||G(["band","point"],t);case He:case ut:case st:case lt:case ct:return _e(t)||Ks(t)||G(["band","point"],t);case ue:case it:case at:return t!=="band";case ot:return t==="ordinal"}return!1}function Zs(){let e={};for(let t of go)for(let n of j(Ls))for(let i of qs){let a=el(t,n);Br(t,i)&&$r(i,n)&&(e[a]=e[a]||[],e[a].push(i))}return e}function el(e,t){return e+"_"+t}var ne=ce(((e,t)=>{var n=t.exports,i="__name__";n.namedfunc=function(o,l){return l[i]=o,l},n.name=function(o){return o==null?null:o[i]},n.identity=function(o){return o},n.true=n.namedfunc("true",function(){return!0}),n.false=n.namedfunc("false",function(){return!1}),n.duplicate=function(o){return JSON.parse(JSON.stringify(o))},n.equal=function(o,l){return JSON.stringify(o)===JSON.stringify(l)},n.extend=function(o){for(var l,c,p=1,f=arguments.length;p<f;++p)for(c in l=arguments[p],l)o[c]=l[c];return o},n.length=function(o){return o!=null&&o.length!=null?o.length:null},n.keys=function(o){var l=[],c;for(c in o)l.push(c);return l},n.vals=function(o){var l=[],c;for(c in o)l.push(o[c]);return l},n.toMap=function(o,l){return(l=n.$(l))?o.reduce(function(c,p){return c[l(p)]=1,c},{}):o.reduce(function(c,p){return c[p]=1,c},{})},n.keystr=function(o){var l=o.length;if(!l)return"";for(var c=String(o[0]),p=1;p<l;++p)c+="|"+String(o[p]);return c};var a=Object.prototype.toString;n.isObject=function(o){return o===Object(o)},n.isFunction=function(o){return a.call(o)==="[object Function]"},n.isString=function(o){return typeof value=="string"||a.call(o)==="[object String]"},n.isArray=Array.isArray||function(o){return a.call(o)==="[object Array]"},n.isNumber=function(o){return typeof o=="number"||a.call(o)==="[object Number]"},n.isBoolean=function(o){return o===!0||o===!1||a.call(o)=="[object Boolean]"},n.isDate=function(o){return a.call(o)==="[object Date]"},n.isValid=function(o){return o!=null&&o===o},n.isBuffer=typeof Buffer=="function"&&Buffer.isBuffer||n.false,n.number=function(o){return o==null||o===""?null:+o},n.boolean=function(o){return o==null||o===""?null:o==="false"?!1:!!o},n.date=function(o,l){var c=l||Date;return o==null||o===""?null:c.parse(o)},n.array=function(o){return o==null?[]:n.isArray(o)?o:[o]},n.str=function(o){return n.isArray(o)?"["+o.map(n.str)+"]":n.isObject(o)||n.isString(o)?JSON.stringify(o).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):o};var r=/\[(.*?)\]|[^.\[]+/g;n.field=function(o){return String(o).match(r).map(function(l){return l[0]==="["?l[1]!=="'"&&l[1]!=='"'?l.slice(1,-1):l.slice(2,-2).replace(/\\(["'])/g,"$1"):l})},n.accessor=function(o){return o==null||n.isFunction(o)?o:n.namedfunc(o,Function("x","return x["+n.field(o).map(n.str).join("][")+"];"))},n.$=n.accessor,n.mutator=function(o){var l;return n.isString(o)&&(l=n.field(o)).length>1?function(c,p){for(var f=0;f<l.length-1;++f)c=c[l[f]];c[l[f]]=p}:function(c,p){c[o]=p}},n.$func=function(o,l){return function(c){c=n.$(c)||n.identity;var p=o+(n.name(c)?"_"+n.name(c):"");return n.namedfunc(p,function(f){return l(c(f))})}},n.$valid=n.$func("valid",n.isValid),n.$length=n.$func("length",n.length),n.$in=function(o,l){o=n.$(o);var c=n.isArray(l)?n.toMap(l):l;return function(p){return!!c[o(p)]}},n.comparator=function(o){var l=[];return o===void 0&&(o=[]),o=n.array(o).map(function(c){var p=1;return c[0]==="-"?(p=-1,c=c.slice(1)):c[0]==="+"&&(p=1,c=c.slice(1)),l.push(p),n.accessor(c)}),function(c,p){var f,d,g,y;for(f=0,d=o.length;f<d;++f)if(g=o[f],y=n.cmp(g(c),g(p)),y)return y*l[f];return 0}},n.cmp=function(o,l){return(o<l||o==null)&&l!=null?-1:(o>l||l==null)&&o!=null?1:(l=l instanceof Date?+l:l,(o=o instanceof Date?+o:o)!==o&&l===l?-1:l!==l&&o===o?1:0)},n.numcmp=function(o,l){return o-l},n.stablesort=function(o,l,c){var p=o.reduce(function(f,d,g){return f[c(d)]=g,f},{});return o.sort(function(f,d){var g=l(f),y=l(d);return g<y?-1:g>y?1:p[c(f)]-p[c(d)]}),o},n.permute=function(o){for(var l=o.length,c,p;l;)p=Math.floor(Math.random()*l--),c=o[l],o[l]=o[p],o[p]=c},n.pad=function(o,l,c,p){p||(p=" ");var f=l-o.length;if(f<=0)return o;switch(c){case"left":return s(f,p)+o;case"middle":case"center":return s(Math.floor(f/2),p)+o+s(Math.ceil(f/2),p);default:return o+s(f,p)}};function s(o,l){var c="",p;for(p=0;p<o;++p)c+=l;return c}n.truncate=function(o,l,c,p,f){var d=o.length;if(d<=l)return o;f=f===void 0?"\u2026":String(f);var g=Math.max(0,l-f.length);switch(c){case"left":return f+(p?u(o,g,1):o.slice(d-g));case"middle":case"center":var y=Math.ceil(g/2),v=Math.floor(g/2);return(p?u(o,y):o.slice(0,y))+f+(p?u(o,v,1):o.slice(d-v));default:return(p?u(o,g):o.slice(0,g))+f}};function u(o,l,c){var p=0,f=o.split(h);return o=c?(f=f.reverse()).filter(function(d){return p+=d.length,p<=l}).reverse():f.filter(function(d){return p+=d.length,p<=l}),o.length?o.join("").trim():f[0].slice(0,l)}var h=/([\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u2028\u2029\u3000\uFEFF])/})),Lr=H(ne()),U=H(ne());function K(e,t){return e.indexOf(t)!==-1}function oe(e,t){for(let n=0;n<e.length;n++)if(!t(e[n],n))return!1;return!0}function z(e,t,n){if(e.forEach)e.forEach.call(n,t);else for(let i in e)t.call(n,e[i],i,e)}function de(e,t){let n=0,i;for(i in e)if(t(e[i],i,n++))return!0;return!1}function tl(e,t){return e.filter(function(n){return!K(t,n)})}function nl(e){return Object.keys(e)}function se(e){return!!e.parent}var Wr={channel:1,aggregate:1,autoCount:1,bin:1,timeUnit:1,hasFn:1,sort:1,stack:1,field:1,type:1,format:1,scale:1,axis:1,legend:1,value:1};const en=nl(Wr);function rl(e){return e in Wr}var il={bin:1,scale:1,sort:1,axis:1,legend:1};function tn(e){return il[e]}const al=["maxbins","divide","extent","base","step","steps","minstep"],ol=["field","op","order"];var qr=al.map(e=>({parent:"bin",child:e}));const nn=ol.map(e=>({parent:"sort",child:e})),pt=Rr.map(e=>({parent:"scale",child:e}));var Hr=Fr.map(e=>({parent:"axis",child:e})),Gr=_r.map(e=>({parent:"legend",child:e}));const ht=[].concat(qr,nn,pt,Hr,Gr),zr=["width","height","background","padding","title"];var Yr=".";function mt(e){return se(e)?e.parent+Yr+e.child:e}function sl(e){let t=e.split(Yr);if(t.length===1)return e;if(t.length===2)return{parent:t[0],child:t[1]};throw"Invalid property key with "+t.length+" dots: "+e}var ll=ht.reduce((e,t)=>(e[t.parent]=e[t.parent]||[],e[t.parent][t.child]=t,e),{});function fe(e,t){return(ll[e]||{})[t]}function Qr(e){return rl(e)||se(e)}const cl=[].concat(en,ht),Vr=["type","field","bin","timeUnit","aggregate","autoCount","channel","mark","stack","scale","sort","axis","legend"].concat(qr,pt,Hr,Gr,nn);var m;(function(e){e.MARK="mark",e.TRANSFORM="transform",e.STACK="stack",e.FORMAT="format",e.CHANNEL="channel",e.AGGREGATE="aggregate",e.AUTOCOUNT="autoCount",e.BIN="bin",e.HAS_FN="hasFn",e.TIMEUNIT="timeUnit",e.FIELD="field",e.TYPE="type",e.SORT="sort",e.SCALE="scale",e.AXIS="axis",e.LEGEND="legend",e.WIDTH="width",e.HEIGHT="height",e.BACKGROUND="background",e.PADDING="padding",e.TITLE="title"})(m||(m={}));const ze="area",gt="line",Ye="point",rn="rect",an="rule",yt="text",vt="tick",on="circle",sn="square";var ul={area:1,bar:1,line:1,point:1,text:1,tick:1,trail:1,rect:1,geoshape:1,rule:1,circle:1,square:1};function dl(e){return G(["line","area","trail"],e)}const fl=j(ul);function pl(e){return e.type}De(fl),["january","february","march","april","may","june","july","august","september","october","november","december"].map(e=>e.substr(0,3)),["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].map(e=>e.substr(0,3));var B;(function(e){e.YEAR="year",e.MONTH="month",e.DAY="day",e.DATE="date",e.HOURS="hours",e.MINUTES="minutes",e.SECONDS="seconds",e.MILLISECONDS="milliseconds",e.YEARMONTH="yearmonth",e.YEARMONTHDATE="yearmonthdate",e.YEARMONTHDATEHOURS="yearmonthdatehours",e.YEARMONTHDATEHOURSMINUTES="yearmonthdatehoursminutes",e.YEARMONTHDATEHOURSMINUTESSECONDS="yearmonthdatehoursminutesseconds",e.MONTHDATE="monthdate",e.MONTHDATEHOURS="monthdatehours",e.HOURSMINUTES="hoursminutes",e.HOURSMINUTESSECONDS="hoursminutesseconds",e.MINUTESSECONDS="minutesseconds",e.SECONDSMILLISECONDS="secondsmilliseconds",e.QUARTER="quarter",e.YEARQUARTER="yearquarter",e.QUARTERMONTH="quartermonth",e.YEARQUARTERMONTH="yearquartermonth",e.UTCYEAR="utcyear",e.UTCMONTH="utcmonth",e.UTCDAY="utcday",e.UTCDATE="utcdate",e.UTCHOURS="utchours",e.UTCMINUTES="utcminutes",e.UTCSECONDS="utcseconds",e.UTCMILLISECONDS="utcmilliseconds",e.UTCYEARMONTH="utcyearmonth",e.UTCYEARMONTHDATE="utcyearmonthdate",e.UTCYEARMONTHDATEHOURS="utcyearmonthdatehours",e.UTCYEARMONTHDATEHOURSMINUTES="utcyearmonthdatehoursminutes",e.UTCYEARMONTHDATEHOURSMINUTESSECONDS="utcyearmonthdatehoursminutesseconds",e.UTCMONTHDATE="utcmonthdate",e.UTCMONTHDATEHOURS="utcmonthdatehours",e.UTCHOURSMINUTES="utchoursminutes",e.UTCHOURSMINUTESSECONDS="utchoursminutesseconds",e.UTCMINUTESSECONDS="utcminutesseconds",e.UTCSECONDSMILLISECONDS="utcsecondsmilliseconds",e.UTCQUARTER="utcquarter",e.UTCYEARQUARTER="utcyearquarter",e.UTCQUARTERMONTH="utcquartermonth",e.UTCYEARQUARTERMONTH="utcyearquartermonth"})(B||(B={}));var ln={year:1,quarter:1,month:1,day:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1};const Kr=j(ln);function hl(e){return!!ln[e]}var cn={utcyear:1,utcquarter:1,utcmonth:1,utcday:1,utcdate:1,utchours:1,utcminutes:1,utcseconds:1,utcmilliseconds:1};function ml(e){return!!cn[e]}var gl={yearquarter:1,yearquartermonth:1,yearmonth:1,yearmonthdate:1,yearmonthdatehours:1,yearmonthdatehoursminutes:1,yearmonthdatehoursminutesseconds:1,quartermonth:1,monthdate:1,monthdatehours:1,hoursminutes:1,hoursminutesseconds:1,minutesseconds:1,secondsmilliseconds:1},Jr={utcyearquarter:1,utcyearquartermonth:1,utcyearmonth:1,utcyearmonthdate:1,utcyearmonthdatehours:1,utcyearmonthdatehoursminutes:1,utcyearmonthdatehoursminutesseconds:1,utcquartermonth:1,utcmonthdate:1,utcmonthdatehours:1,utchoursminutes:1,utchoursminutesseconds:1,utcminutesseconds:1,utcsecondsmilliseconds:1},yl=Object.assign({},cn,Jr);function vl(e){return!!yl[e]}var Xr=Object.assign({},ln,cn,gl,Jr);j(Xr);function bl(e){return!!Xr[e]}var xl={year:"setFullYear",month:"setMonth",date:"setDate",hours:"setHours",minutes:"setMinutes",seconds:"setSeconds",milliseconds:"setMilliseconds",quarter:null,day:null};function El(e,t){let n=vl(e),i=n?new Date(Date.UTC(1972,0,1,0,0,0,0)):new Date(1972,0,1,0,0,0,0);for(let a of Kr)if(ei(e,a))switch(a){case B.DAY:throw Error("Cannot convert to TimeUnits containing 'day'");case B.QUARTER:{let{getDateMethod:r,setDateMethod:s}=Zr("month",n);i[s](Math.floor(t[r]()/3)*3);break}default:{let{getDateMethod:r,setDateMethod:s}=Zr(a,n);i[s](t[r]())}}return i}function Zr(e,t){let n=xl[e],i=t?"setUTC"+n.substr(3):n,a="get"+(t?"UTC":"")+n.substr(3);return{setDateMethod:i,getDateMethod:a}}function ei(e,t){let n=e.indexOf(t);return n>-1&&(t!==B.SECONDS||n===0||e.charAt(n-1)!=="i")}function A(e){return bt(e)||Tl(e)}function bt(e){return e==="?"}function Tl(e){return e!==void 0&&e!=null&&(!!e.enum||!!e.name)&&!(0,Lr.isArray)(e)}function un(e,t,n){return(0,U.extend)({},{name:t,enum:n},e==="?"?{}:e)}function dn(e){let t={},n={};for(let i of e){let a=[0];for(let s=0;s<i.length;s++)i.charAt(s).toUpperCase()===i.charAt(s)&&a.push(s);let r=a.map(s=>i.charAt(s)).join("").toLowerCase();if(!n[r]){t[i]=r,n[r]=!0;continue}if(a[a.length-1]!==i.length-1&&(r=a.concat([i.length-1]).map(s=>i.charAt(s)).join("").toLowerCase(),!n[r])){t[i]=r,n[r]=!0;continue}for(let s=1;!t[i];s++){let u=r+"_"+s;if(!n[u]){t[i]=u,n[u]=!0;break}}}return t}const xt={mark:"m",channel:"c",aggregate:"a",autoCount:"#",hasFn:"h",bin:"b",sort:"so",stack:"st",scale:"s",format:"f",axis:"ax",legend:"l",value:"v",timeUnit:"tu",field:"f",type:"t",binProps:{maxbins:"mb",min:"mi",max:"ma",base:"b",step:"s",steps:"ss",minstep:"ms",divide:"d"},sortProps:{field:"f",op:"o",order:"or"},scaleProps:dn(Rr),axisProps:dn(Fr),legendProps:dn(_r)};function Qe(e){if(se(e))return xt[e.parent]+"-"+xt[e.parent+"Props"][e.child];if(xt[e])return xt[e];throw Error("Default name undefined for "+e)}var V=[!1,!0],Sl={maxbins:[5,10,20],extent:[void 0],base:[10],step:[void 0],steps:[void 0],minstep:[void 0],divide:[[5,2]],binned:[!1],anchor:[void 0],nice:[!0]},Nl={field:[void 0],op:["min","mean"],order:["ascending","descending"]},Cl={type:[void 0,F.LOG],domain:[void 0],base:[void 0],exponent:[1,2],constant:[void 0],bins:[void 0],clamp:V,nice:V,reverse:V,round:V,zero:V,padding:[void 0],paddingInner:[void 0],paddingOuter:[void 0],interpolate:[void 0],range:[void 0],rangeStep:[17,21],scheme:[void 0]},wl={zindex:[1,0],offset:[void 0],orient:[void 0],values:[void 0],bandPosition:[void 0],encoding:[void 0],domain:V,domainColor:[void 0],domainDash:[void 0],domainDashOffset:[void 0],domainOpacity:[void 0],domainWidth:[void 0],formatType:[void 0],grid:V,gridColor:[void 0],gridDash:[void 0],gridDashOffset:[void 0],gridOpacity:[void 0],gridWidth:[void 0],format:[void 0],labels:V,labelAlign:[void 0],labelAngle:[void 0],labelBaseline:[void 0],labelColor:[void 0],labelFlushOffset:[void 0],labelFont:[void 0],labelFontSize:[void 0],labelFontStyle:[void 0],labelFontWeight:[void 0],labelLimit:[void 0],labelOpacity:[void 0],labelSeparation:[void 0],labelOverlap:[void 0],labelPadding:[void 0],labelBound:[void 0],labelFlush:[void 0],maxExtent:[void 0],minExtent:[void 0],position:[void 0],ticks:V,tickColor:[void 0],tickCount:[void 0],tickDash:[void 0],tickExtra:[void 0],tickDashOffset:[void 0],tickMinStep:[void 0],tickOffset:[void 0],tickOpacity:[void 0],tickRound:[void 0],tickSize:[void 0],tickWidth:[void 0],title:[void 0],titleAlign:[void 0],titleAnchor:[void 0],titleAngle:[void 0],titleBaseline:[void 0],titleColor:[void 0],titleFont:[void 0],titleFontSize:[void 0],titleFontStyle:[void 0],titleFontWeight:[void 0],titleLimit:[void 0],titleOpacity:[void 0],titlePadding:[void 0],titleX:[void 0],titleY:[void 0]};const Al={mark:[Ye,"bar",gt,ze,rn,vt,yt],channel:["x","y","row",Ne,He,ue],aggregate:[void 0,"mean"],autoCount:V,bin:V,hasFn:V,timeUnit:[void 0,B.YEAR,B.MONTH,B.MINUTES,B.SECONDS],field:[void 0],type:[we,Ce,te,ye],sort:["ascending","descending"],stack:["zero","normalize","center",null],value:[void 0],format:[void 0],title:[void 0],scale:[!0],axis:V,legend:V,binProps:Sl,sortProps:Nl,scaleProps:Cl,axisProps:wl,legendProps:{orient:["left","right"],format:[void 0],type:[void 0],values:[void 0],zindex:[void 0],clipHeight:[void 0],columnPadding:[void 0],columns:[void 0],cornerRadius:[void 0],direction:[void 0],encoding:[void 0],fillColor:[void 0],formatType:[void 0],gridAlign:[void 0],offset:[void 0],padding:[void 0],rowPadding:[void 0],strokeColor:[void 0],labelAlign:[void 0],labelBaseline:[void 0],labelColor:[void 0],labelFont:[void 0],labelFontSize:[void 0],labelFontStyle:[void 0],labelFontWeight:[void 0],labelLimit:[void 0],labelOffset:[void 0],labelOpacity:[void 0],labelOverlap:[void 0],labelPadding:[void 0],labelSeparation:[void 0],legendX:[void 0],legendY:[void 0],gradientLength:[void 0],gradientOpacity:[void 0],gradientStrokeColor:[void 0],gradientStrokeWidth:[void 0],gradientThickness:[void 0],symbolDash:[void 0],symbolDashOffset:[void 0],symbolFillColor:[void 0],symbolOffset:[void 0],symbolOpacity:[void 0],symbolSize:[void 0],symbolStrokeColor:[void 0],symbolStrokeWidth:[void 0],symbolType:[void 0],tickCount:[void 0],tickMinStep:[void 0],title:[void 0],titleAnchor:[void 0],titleAlign:[void 0],titleBaseline:[void 0],titleColor:[void 0],titleFont:[void 0],titleFontSize:[void 0],titleFontStyle:[void 0],titleFontWeight:[void 0],titleLimit:[void 0],titleOpacity:[void 0],titleOrient:[void 0],titlePadding:[void 0]}};function fn(e,t,n){if(e==="field"||se(e)&&e.parent==="sort"&&e.child==="field")return t.fieldNames();let i;if(i=se(e)?n.enum[e.parent+"Props"][e.child]:n.enum[e],i!==void 0)return i;throw Error("No default enumValues for "+JSON.stringify(e))}const Ve={verbose:!1,defaultSpecConfig:{line:{point:!0},scale:{useUnaggregatedDomain:!0}},propertyPrecedence:Vr.map(mt),enum:Al,numberNominalProportion:.05,numberNominalLimit:40,constraintManuallySpecifiedValue:!1,autoAddCount:!1,hasAppropriateGraphicTypeForMark:!0,omitAggregate:!1,omitAggregatePlotWithDimensionOnlyOnFacet:!0,omitAggregatePlotWithoutDimension:!1,omitBarLineAreaWithOcclusion:!0,omitBarTickWithSize:!0,omitMultipleNonPositionalChannels:!0,omitRaw:!1,omitRawContinuousFieldForAggregatePlot:!0,omitRepeatedField:!0,omitNonPositionalOrFacetOverPositionalChannels:!0,omitTableWithOcclusionIfAutoAddCount:!0,omitVerticalDotPlot:!1,omitInvalidStackSpec:!0,omitNonSumStack:!0,preferredBinAxis:"x",preferredTemporalAxis:"x",preferredOrdinalAxis:"y",preferredNominalAxis:"y",preferredFacet:"row",minCardinalityForBin:15,maxCardinalityForCategoricalColor:20,maxCardinalityForFacet:20,maxCardinalityForShape:6,timeUnitShouldHaveVariation:!0,typeMatchesSchemaType:!0,stylize:!0,smallRangeStepForHighCardinalityOrFacet:{maxCardinality:10,rangeStep:12},nominalColorScaleForHighCardinality:{maxCardinality:10,palette:"category20"},xAxisOnTopForHighYCardinalityWithoutColumn:{maxCardinality:30},maxGoodCardinalityForFacet:5,maxGoodCardinalityForColor:7,minPercentUniqueForKey:.8,minCardinalityForKey:50};var ti={argmax:1,argmin:1,average:1,count:1,distinct:1,max:1,mean:1,median:1,min:1,missing:1,q1:1,q3:1,ci0:1,ci1:1,stderr:1,stdev:1,stdevp:1,sum:1,valid:1,values:1,variance:1,variancep:1};function Ol(e){return!!e&&!!e.argmin}function kl(e){return!!e&&!!e.argmax}j(ti);function Ml(e){return Gt(e)&&!!ti[e]}const ni=["count","sum","distinct","valid","missing"];De(["mean","average","median","q1","q3","min","max"]);function Il(e){return Yt(e)&&(e=Pl(e,void 0)),"bin"+j(e).map(t=>lo(`_${t}_${e[t]}`)).join("")}function ri(e){return e===!0||Ul(e)&&!e.binned}function Ul(e){return gr(e)}function pn(e){switch(e){case"row":case Ne:case He:case ue:case it:case at:case ut:case st:case lt:case ct:case ot:return 6;default:return 10}}function ii(e){return!!e&&!!e.condition&&!nt(e.condition)&&ve(e.condition)}function ve(e){return!!e&&(!!e.field||e.aggregate==="count")}function hn(e){return ve(e)&&Gt(e.field)}function Fl(e){return!!e.op}function mn(e,t={}){let n=e.field,i=t.prefix,a=t.suffix,r="";if(_l(e))n=po("count");else{let s;if(!t.nofn)if(Fl(e))s=e.op;else{let{bin:u,aggregate:h,timeUnit:o}=e;ri(u)?(s=Il(u),a=(t.binSuffix||"")+(t.suffix||"")):h?kl(h)?(r=`.${n}`,n=`argmax_${h.argmax}`):Ol(h)?(r=`.${n}`,n=`argmin_${h.argmin}`):s=String(h):o&&(s=String(o))}s&&(n=n?`${s}_${n}`:s)}return a&&(n=`${n}_${a}`),i&&(n=`${i}_${n}`),t.forAs?n:t.expr?co(n,t.expr)+r:uo(n)+r}function ai(e){switch(e.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return!!e.bin;case"temporal":return!1}throw Error(ee.invalidFieldType(e.type))}function Dl(e){return!ai(e)}function _l(e){return e.aggregate==="count"}function jl(e){if(ve(e))return e;if(ii(e))return e.condition}function Pl(e,t){return Yt(e)?{maxbins:pn(t)}:e==="binned"?{binned:!0}:!e.maxbins&&!e.step?Object.assign({},e,{maxbins:pn(t)}):e}var je={compatible:!0};function Rl(e,t){let n=e.type;if(n==="geojson"&&t!=="shape")return{compatible:!1,warning:`Channel ${t} should not be used with a geojson data.`};switch(t){case"row":case"column":case"facet":return Dl(e)?{compatible:!1,warning:ee.facetChannelShouldBeDiscrete(t)}:je;case"x":case"y":case"color":case"fill":case"stroke":case"text":case"detail":case"key":case"tooltip":case"href":return je;case"longitude":case"longitude2":case"latitude":case"latitude2":return n==="quantitative"?je:{compatible:!1,warning:`Channel ${t} should be used with a quantitative field only, not ${e.type} field.`};case"opacity":case"fillOpacity":case"strokeOpacity":case"strokeWidth":case"size":case"x2":case"y2":return n==="nominal"&&!e.sort?{compatible:!1,warning:`Channel ${t} should not be used with an unsorted discrete field.`}:je;case"shape":return G(["ordinal","nominal","geojson"],e.type)?je:{compatible:!1,warning:"Shape channel should be used with only either discrete or geojson data."};case"order":return e.type==="nominal"&&!("sort"in e)?{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}:je}throw Error("channelCompatability not implemented for channel "+t)}function $l(e,t,n,i){let a=Bl(t,n,i),{type:r}=e;return bo(t)?r===void 0?a:Br(t,r)?$r(r,n.type)?r:(ge(ee.scaleTypeNotWorkWithFieldDef(r,a)),a):(ge(ee.scaleTypeNotWorkWithChannel(t,r,a)),a):null}function Bl(e,t,n){switch(t.type){case"nominal":case"ordinal":return ft(e)||Jt(e)==="discrete"?(e==="shape"&&t.type==="ordinal"&&ge(ee.discreteChannelCannotEncode(e,"ordinal")),"ordinal"):G(["x","y"],e)&&(G(["rect","bar","rule"],n)||n==="bar")?"band":"point";case"temporal":return ft(e)?"time":Jt(e)==="discrete"?(ge(ee.discreteChannelCannotEncode(e,"temporal")),"ordinal"):"time";case"quantitative":return ft(e)?ri(t.bin)?"bin-ordinal":"linear":Jt(e)==="discrete"?(ge(ee.discreteChannelCannotEncode(e,"quantitative")),"ordinal"):"linear";case"geojson":return}throw Error(ee.invalidFieldType(t.type))}var le;(function(e){e.QUANTITATIVE=te,e.ORDINAL=Ce,e.TEMPORAL=ye,e.NOMINAL=we,e.KEY="key"})(le||(le={}));function oi(e){return e==="ordinal"||e==="nominal"||e===le.KEY}var re=class ir{constructor(t=null){this.index=t?Object.assign({},t):{}}has(t){return mt(t)in this.index}get(t){return this.index[mt(t)]}set(t,n){return this.index[mt(t)]=n,this}setByKey(t,n){this.index[t]=n}map(t){let n=new ir;for(let i in this.index)n.index[i]=t(this.index[i]);return n}size(){return(0,U.keys)(this.index).length}duplicate(){return new ir(this.index)}};function si(e,t){let n=e&&e[t];return n?nt(n)?so(n,i=>!!i.field):ve(n)||ii(n):!1}var Ll={zero:1,center:1,normalize:1};function Wl(e){return!!Ll[e]}const ql=["bar",ze,an,Ye,on,sn,gt,yt,vt],Hl=["bar",ze];function Gl(e){let t=e.x,n=e.y;if(ve(t)&&ve(n))if(t.type==="quantitative"&&n.type==="quantitative"){if(t.stack)return"x";if(n.stack)return"y";if(!!t.aggregate!=!!n.aggregate)return t.aggregate?"x":"y"}else{if(t.type==="quantitative")return"x";if(n.type==="quantitative")return"y"}else{if(ve(t)&&t.type==="quantitative")return"x";if(ve(n)&&n.type==="quantitative")return"y"}}function zl(e,t,n,i={}){let a=pl(e)?e.type:e;if(!G(ql,a))return null;let r=Gl(t);if(!r)return null;let s=t[r],u=hn(s)?mn(s,{}):void 0,h=r==="x"?"y":"x",o=t[h],l=hn(o)?mn(o,{}):void 0,c=Or.reduce((f,d)=>{if(d!=="tooltip"&&si(t,d)){let g=t[d];(nt(g)?g:[g]).forEach(y=>{let v=jl(y);if(v.aggregate)return;let b=hn(v)?mn(v,{}):void 0;(!b||b!==l&&b!==u)&&f.push({channel:d,fieldDef:v})})}return f},[]),p;if(s.stack===void 0?c.length>0&&(p=G(Hl,a)?fo(n,"zero"):n):p=Yt(s.stack)?s.stack?"zero":null:s.stack,!p||!Wl(p))return null;if(s.scale&&s.scale.type&&s.scale.type!==F.LINEAR){if(i.disallowNonLinearStack)return null;ge(ee.cannotStackNonLinearScale(s.scale.type))}return si(t,r==="x"?"x2":"y2")?(s.stack!==void 0&&ge(ee.cannotStackRangedMark(r)),null):(s.aggregate&&!G(ni,s.aggregate)&&ge(ee.stackNonSummativeAggregate(s.aggregate)),{groupbyChannel:o?h:void 0,fieldChannel:r,impute:dl(a),stackBy:c,offset:p})}var Yl=H(ne());function Ql(e){return de(e.encodings,t=>O(t)&&!A(t.aggregate)&&!!t.aggregate||Tt(t))}function li(e){if(!Jl(e))return null;let t=hi(e.encodings,{schema:null,wildcardMode:"null"}),n=e.mark;return zl(n,t,void 0,{disallowNonLinearStack:!0})}function Vl(e){for(let t of e.encodings)if(t[m.STACK]!==void 0&&!A(t[m.STACK]))return t[m.STACK]}function Kl(e){for(let t of e.encodings)if(t[m.STACK]!==void 0&&!A(t.channel))return t.channel;return null}function Jl(e){if(A(e.mark))return!1;let t=[m.STACK,m.CHANNEL,m.MARK,m.FIELD,m.AGGREGATE,m.AUTOCOUNT,m.SCALE,fe("scale","type"),m.TYPE],n=(0,Yl.toMap)(tl(cl,t)),i=e.encodings.filter(a=>!ae(a));for(let a of i)if(ci(a,{exclude:n}))return!1;return!0}function ci(e,t={}){if(!(0,U.isObject)(e))return!1;for(let n in e)if(e.hasOwnProperty(n)&&(A(e[n])&&(!t.exclude||!t.exclude[n])||ci(e[n],t)))return!0;return!1}var ui=H(ne());function Xl(e){return e.map(t=>Zl(t))}function Zl(e){return t=>e[t]===void 0?t:e[t]}function Oe(e,t){return A(e)?!bt(e)&&e.enum?"?"+JSON.stringify(e.enum):"?":t?t(e):e}function Et(e,t){return t?t(e):e}const gn=new re,yn=[].concat(Vr,nn,[m.TRANSFORM,m.STACK],zr).reduce((e,t)=>e.set(t,!0),new re),vn={axis:{x:!0,y:!0,row:!0,column:!0},legend:{color:!0,opacity:!0,size:!0,shape:!0},scale:{x:!0,y:!0,color:!0,opacity:!0,row:!0,column:!0,size:!0,shape:!0},sort:{x:!0,y:!0,path:!0,order:!0},stack:{x:!0,y:!0}};function Pe(e,t=yn,n=gn){let i=[];t.get(m.MARK)&&i.push(Oe(e.mark,n.get(m.MARK))),e.transform&&e.transform.length>0&&i.push("transform:"+JSON.stringify(e.transform));let a;if(t.get(m.STACK)&&(a=li(e)),e.encodings){let r=e.encodings.reduce((s,u)=>{if(!ae(u)){let h;h=a&&u.channel===a.fieldChannel?di(Object.assign({},u,{stack:a.offset}),t,n):di(u,t,n),h&&s.push(h)}return s},[]).sort().join("|");r&&i.push(r)}for(let r of zr){let s=r.toString();if(t.get(r)&&e[s]){let u=e[s];i.push(`${s}=${JSON.stringify(u)}`)}}return i.join("|")}function di(e,t=yn,n=gn){let i=[];if(t.get(m.CHANNEL)&&i.push(Oe(e.channel,n.get(m.CHANNEL))),O(e)){let a=fi(e,t,n);a&&i.push(a)}else ie(e)?i.push(e.value):P(e)&&i.push("autocount()");return i.join(":")}function fi(e,t=yn,n=gn){if(t.get(m.AGGREGATE)&&ae(e))return"-";let i=ec(e,t,n),a=tc(e,t,n),r;if(O(e)){if(r=t.get("field")?Oe(e.field,n.get("field")):"...",t.get(m.TYPE))if(A(e.type))r+=","+Oe(e.type,n.get(m.TYPE));else{let s=((e.type||"quantitative")+"").substr(0,1);r+=","+Oe(s,n.get(m.TYPE))}r+=a.map(s=>{let u=s.value instanceof Array?"["+s.value+"]":s.value;return","+s.key+"="+u}).join("")}else P(e)&&(r="*,q");return r?i?((0,ui.isString)(i)?i:"?"+((0,U.keys)(i).length>0?JSON.stringify(i):""))+"("+r+")":r:null}function ec(e,t,n){if(t.get(m.AGGREGATE)&&e.aggregate&&!A(e.aggregate))return Et(e.aggregate,n.get(m.AGGREGATE));if(t.get(m.AGGREGATE)&&Tt(e))return Et("count",n.get(m.AGGREGATE));if(t.get(m.TIMEUNIT)&&e.timeUnit&&!A(e.timeUnit))return Et(e.timeUnit,n.get(m.TIMEUNIT));if(t.get(m.BIN)&&e.bin&&!A(e.bin))return"bin";{let i=null;for(let a of[m.AGGREGATE,m.AUTOCOUNT,m.TIMEUNIT,m.BIN]){let r=e[a];t.get(a)&&e[a]&&A(r)&&(i||(i={}),i[a]=bt(r)?r:r.enum)}return i&&e.hasFn&&(i.hasFn=!0),i}}function tc(e,t,n){let i=[];if(!(0,U.isBoolean)(e.bin)&&!bt(e.bin)){let a=e.bin;for(let r in a){let s=fe("bin",r);s&&t.get(s)&&a[r]!==void 0&&i.push({key:r,value:Oe(a[r],n.get(s))})}i.sort((r,s)=>r.key.localeCompare(s.key))}for(let a of[m.SCALE,m.SORT,m.STACK,m.AXIS,m.LEGEND])if(!(!A(e.channel)&&!vn[a][e.channel])&&t.get(a)&&e[a]!==void 0){let r=e[a];if((0,U.isBoolean)(r)||r===null)i.push({key:a+"",value:r||!1});else if((0,ui.isString)(r))i.push({key:a+"",value:Et(JSON.stringify(r),n.get(a))});else{let s=[];for(let u in r){let h=fe(a,u);h&&t.get(h)&&r[u]!==void 0&&s.push({key:u,value:Oe(r[u],n.get(h))})}if(s.length>0){let u=s.sort((h,o)=>h.key.localeCompare(o.key)).reduce((h,o)=>(h[o.key]=o.value,h),{});i.push({key:a+"",value:JSON.stringify(u)})}}}return i}function bn(e,t,n){let i=[],a=0;for(let r=0;r<n;r++){let s=e.indexOf(t,a);if(s!==-1)i.push(e.substring(a,s)),a=s+1;else break}if(i.push(e.substr(a)),i.length!==n+1)for(;i.length!==n+1;)i.push("");return i}var nc;(function(e){function t(r,s){let u=s.indexOf("(")===-1?n(bn(s,",",2)):a(s);return Object.assign({channel:r},u)}e.encoding=t;function n(r){let s={};s.field=r[0],s.type=Ws(r[1].toUpperCase())||"?";let u=r[2],h=0,o=0;for(;o<u.length;){let l=u.indexOf("=",o),c;if(l!==-1){let p=u.substring(o,l);if(u[o+p.length+1]==="{"){let f=o+p.length+1;h=i(f,u,"}");let d=u.substring(f,h+1);c=JSON.parse(d),o=h+2}else if(u[o+p.length+1]==="["){let f=o+p.length+1,d=i(f,u,"]"),g=u.substring(f,d+1);c=JSON.parse(g),o=d+2}else{let f=o,d=u.indexOf(",",o+p.length);d===-1&&(d=u.length),o=d+1,c=JSON.parse(u.substring(f+p.length+1,d))}tn(p)?s[p]=c:(s.bin=s.bin||{},s.bin[p]=c)}else break}return s}e.rawFieldDef=n;function i(r,s,u){for(let h=r;h<s.length;h++)if(s[h]===u)return h}e.getClosingIndex=i;function a(r){let s={};if(r[0]==="?"){let u=i(1,r,"}"),h=JSON.parse(r.substring(1,u+1));for(let o in h)(0,Lr.isArray)(h[o])?s[o]={enum:h[o]}:s[o]=h[o];return Object.assign({},s,n(bn(r.substring(u+2,r.length-1),",",2)))}else{let u=r.substring(0,r.indexOf("(")),h=r.substring(u.length+1,r.length-1),o=bn(h,",",2);if(Ml(u))return Object.assign({aggregate:u},n(o));if(bl(u))return Object.assign({timeUnit:u},n(o));if(u==="bin")return Object.assign({bin:{}},n(o))}}e.fn=a})(nc||(nc={}));var pi=H(ne());function ie(e){return e!=null&&e.value!==void 0}function O(e){return e!=null&&(e.field||e.aggregate==="count")}function P(e){return e!=null&&"autoCount"in e}function ae(e){return P(e)&&e.autoCount===!1}function Tt(e){return P(e)&&e.autoCount===!0}var rc=[m.AGGREGATE,m.BIN,m.TIMEUNIT,m.FIELD,m.TYPE,m.SCALE,m.SORT,m.AXIS,m.LEGEND,m.STACK,m.FORMAT];function hi(e,t){let{wildcardMode:n="skip"}=t,i={};for(let a of e){if(ae(a))continue;let{channel:r}=a;if(A(r))throw Error("Cannot convert wildcard channel to a fixed channel");let s=ie(a)?ic(a):xn(a,t);if(s===null){if(t.wildcardMode==="null")return null;continue}i[r]=s}return i}function ic(e){let{value:t}=e;return A(t)?null:{value:t}}function xn(e,t={}){let{props:n=rc,schema:i,wildcardMode:a="skip"}=t;if(O(e)){let r={};for(let s of n){let u=e[s];if(A(u)){if(a==="skip")continue;return null}if(u!==void 0){if(!(!vn[s]||vn[s][e.channel]))continue;if(tn(s)&&(0,pi.isObject)(u)){for(let h in u=Object.assign({},u),u)if(A(u[h])){if(a==="null")return null;delete u[h]}}if(s==="bin"&&u===!1)continue;s==="type"&&u==="key"?r.type="nominal":r[s]=u}if(s===m.SCALE&&i&&e.type==="ordinal"){let h=e.scale,{ordinalDomain:o}=i.fieldSchema(e.field);h!==null&&o&&(r[m.SCALE]=Object.assign({domain:o},(0,pi.isObject)(h)?h:{}))}}return r}else{if(e.autoCount===!1)throw Error("Cannot convert {autoCount: false} into a field def");return{aggregate:"count",field:"*",type:"quantitative"}}}function Ke(e){return O(e)?!be(e)&&e.type!=="temporal":P(e)}function be(e){if(O(e)){let t=xn(e,{props:["bin","timeUnit","type"]});return ai(t)||!!t.timeUnit}return!1}function ke(e){let t=e.scale===!0||e.scale==="?"?{}:e.scale||{},{type:n,channel:i,timeUnit:a,bin:r}=e;if(A(t.type)||A(n)||A(i)||A(r))return;if(t.type)return t.type;if(n==="temporal"&&A(a)||n==="quantitative"&&A(r))return;let s={type:n===le.KEY?"nominal":n,timeUnit:a,bin:r};return $l({type:t.type},i,s,void 0)}function L(e,t,n,i){function a(r){return e(r=new Date(+r)),r}return a.floor=a,a.round=function(r){var s=new Date(+r),u=new Date(r-1);return e(s),e(u),t(u,1),r-s<u-r?s:u},a.ceil=function(r){return e(r=new Date(r-1)),t(r,1),r},a.offset=function(r,s){return t(r=new Date(+r),s==null?1:Math.floor(s)),r},a.range=function(r,s,u){var h=[];if(r=new Date(r-1),s=new Date(+s),u=u==null?1:Math.floor(u),!(r<s)||!(u>0))return h;for(t(r,1),e(r),r<s&&h.push(new Date(+r));t(r,u),e(r),r<s;)h.push(new Date(+r));return h},a.filter=function(r){return L(function(s){for(;e(s),!r(s);)s.setTime(s-1)},function(s,u){for(;--u>=0;)for(;t(s,1),!r(s););})},n&&(a.count=function(r,s){return St.setTime(+r),Nt.setTime(+s),e(St),e(Nt),Math.floor(n(St,Nt))},a.every=function(r){return r=Math.floor(r),!isFinite(r)||!(r>0)?null:r>1?a.filter(i?function(s){return i(s)%r===0}:function(s){return a.count(0,s)%r===0}):a}),a}var St,Nt,Y=q((()=>{St=new Date,Nt=new Date})),Ct,wt,ac=q((()=>{Y(),Ct=L(function(){},function(e,t){e.setTime(+e+t)},function(e,t){return t-e}),Ct.every=function(e){return e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?L(function(t){t.setTime(Math.floor(t/e)*e)},function(t,n){t.setTime(+t+n*e)},function(t,n){return(n-t)/e}):Ct},wt=Ct})),En,oc=q((()=>{Y(),En=L(function(e){e.setMilliseconds(0)},function(e,t){e.setTime(+e+t*1e3)},function(e,t){return(t-e)/1e3},function(e){return e.getSeconds()})})),Tn,sc=q((()=>{Y(),Tn=L(function(e){e.setSeconds(0,0)},function(e,t){e.setTime(+e+t*6e4)},function(e,t){return(t-e)/6e4},function(e){return e.getMinutes()})})),Sn,lc=q((()=>{Y(),Sn=L(function(e){e.setMinutes(0,0,0)},function(e,t){e.setTime(+e+t*36e5)},function(e,t){return(t-e)/36e5},function(e){return e.getHours()})})),Nn,cc=q((()=>{Y(),Nn=L(function(e){e.setHours(0,0,0,0)},function(e,t){e.setDate(e.getDate()+t)},function(e,t){return(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/864e5},function(e){return e.getDate()-1})}));function Me(e){return L(function(t){t.setHours(0,0,0,0),t.setDate(t.getDate()-(t.getDay()+7-e)%7)},function(t,n){t.setDate(t.getDate()+n*7)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/6048e5})}var At,Cn,wn,An,On,kn,Mn,In,uc=q((()=>{Y(),At=Me(0),Cn=Me(1),wn=Me(2),An=Me(3),On=Me(4),kn=Me(5),Mn=Me(6),In=At})),Un,dc=q((()=>{Y(),Un=L(function(e){e.setHours(0,0,0,0),e.setDate(1)},function(e,t){e.setMonth(e.getMonth()+t)},function(e,t){return t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12},function(e){return e.getMonth()})})),Fn,fc=q((()=>{Y(),Fn=L(function(e){e.setHours(0,0,0,0),e.setMonth(0,1)},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e,t){return t.getFullYear()-e.getFullYear()},function(e){return e.getFullYear()})})),Dn,pc=q((()=>{Y(),Dn=L(function(e){e.setUTCMilliseconds(0)},function(e,t){e.setTime(+e+t*1e3)},function(e,t){return(t-e)/1e3},function(e){return e.getUTCSeconds()})})),_n,hc=q((()=>{Y(),_n=L(function(e){e.setUTCSeconds(0,0)},function(e,t){e.setTime(+e+t*6e4)},function(e,t){return(t-e)/6e4},function(e){return e.getUTCMinutes()})})),jn,mc=q((()=>{Y(),jn=L(function(e){e.setUTCMinutes(0,0,0)},function(e,t){e.setTime(+e+t*36e5)},function(e,t){return(t-e)/36e5},function(e){return e.getUTCHours()})})),Pn,gc=q((()=>{Y(),Pn=L(function(e){e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCDate(e.getUTCDate()+t)},function(e,t){return(t-e)/864e5},function(e){return e.getUTCDate()-1})}));function Ie(e){return L(function(t){t.setUTCHours(0,0,0,0),t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7)},function(t,n){t.setUTCDate(t.getUTCDate()+n*7)},function(t,n){return(n-t)/6048e5})}var Ot,Rn,$n,Bn,Ln,Wn,qn,Hn,yc=q((()=>{Y(),Ot=Ie(0),Rn=Ie(1),$n=Ie(2),Bn=Ie(3),Ln=Ie(4),Wn=Ie(5),qn=Ie(6),Hn=Ot})),Gn,vc=q((()=>{Y(),Gn=L(function(e){e.setUTCHours(0,0,0,0),e.setUTCDate(1)},function(e,t){e.setUTCMonth(e.getUTCMonth()+t)},function(e,t){return t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12},function(e){return e.getUTCMonth()})})),zn,bc=q((()=>{Y(),zn=L(function(e){e.setUTCHours(0,0,0,0),e.setUTCMonth(0,1)},function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)},function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()},function(e){return e.getUTCFullYear()})})),xc=sr({day:()=>Nn,days:()=>vi,friday:()=>kn,fridays:()=>Ni,hour:()=>Sn,hours:()=>yi,interval:()=>L,millisecond:()=>wt,milliseconds:()=>Yn,minute:()=>Tn,minutes:()=>gi,monday:()=>Cn,mondays:()=>xi,month:()=>Un,months:()=>Ai,saturday:()=>Mn,saturdays:()=>Ci,second:()=>En,seconds:()=>mi,sunday:()=>At,sundays:()=>bi,thursday:()=>On,thursdays:()=>Si,tuesday:()=>wn,tuesdays:()=>Ei,utcDay:()=>Pn,utcDays:()=>Di,utcFriday:()=>Wn,utcFridays:()=>Bi,utcHour:()=>jn,utcHours:()=>Fi,utcMillisecond:()=>ki,utcMilliseconds:()=>Mi,utcMinute:()=>_n,utcMinutes:()=>Ui,utcMonday:()=>Rn,utcMondays:()=>ji,utcMonth:()=>Gn,utcMonths:()=>qi,utcSaturday:()=>qn,utcSaturdays:()=>Li,utcSecond:()=>Dn,utcSeconds:()=>Ii,utcSunday:()=>Ot,utcSundays:()=>_i,utcThursday:()=>Ln,utcThursdays:()=>$i,utcTuesday:()=>$n,utcTuesdays:()=>Pi,utcWednesday:()=>Bn,utcWednesdays:()=>Ri,utcWeek:()=>Hn,utcWeeks:()=>Wi,utcYear:()=>zn,utcYears:()=>Hi,wednesday:()=>An,wednesdays:()=>Ti,week:()=>In,weeks:()=>wi,year:()=>Fn,years:()=>Oi}),Yn,mi,gi,yi,vi,bi,xi,Ei,Ti,Si,Ni,Ci,wi,Ai,Oi,ki,Mi,Ii,Ui,Fi,Di,_i,ji,Pi,Ri,$i,Bi,Li,Wi,qi,Hi,Ec=q((()=>{Y(),ac(),oc(),sc(),lc(),cc(),uc(),dc(),fc(),pc(),hc(),mc(),gc(),yc(),vc(),bc(),Yn=wt.range,mi=En.range,gi=Tn.range,yi=Sn.range,vi=Nn.range,bi=At.range,xi=Cn.range,Ei=wn.range,Ti=An.range,Si=On.range,Ni=kn.range,Ci=Mn.range,wi=In.range,Ai=Un.range,Oi=Fn.range,ki=wt,Mi=Yn,Ii=Dn.range,Ui=_n.range,Fi=jn.range,Di=Pn.range,_i=Ot.range,ji=Rn.range,Pi=$n.range,Ri=Bn.range,$i=Ln.range,Bi=Wn.range,Li=qn.range,Wi=Hn.range,qi=Gn.range,Hi=zn.range})),Tc=ce(((e,t)=>{var n=(Ec(),Na(xc)),i=new Date,a=new Date(0,0,1).setFullYear(0),r=new Date(Date.UTC(0,0,1)).setUTCFullYear(0);function s(d){return i.setTime(+d),i}function u(d,g,y,v,b,x){var S={type:d,date:g,unit:y};return v?S.step=v:S.minstep=1,b!=null&&(S.min=b),x!=null&&(S.max=x),S}function h(d,g,y,v,b,x){return u(d,function(S){return g.offset(y,S)},function(S){return g.count(y,S)},v,b,x)}var o=[h("second",n.second,a),h("minute",n.minute,a),h("hour",n.hour,a),h("day",n.day,a,[1,7]),h("month",n.month,a,[1,3,6]),h("year",n.year,a),u("seconds",function(d){return new Date(1970,0,1,0,0,d)},function(d){return s(d).getSeconds()},null,0,59),u("minutes",function(d){return new Date(1970,0,1,0,d)},function(d){return s(d).getMinutes()},null,0,59),u("hours",function(d){return new Date(1970,0,1,d)},function(d){return s(d).getHours()},null,0,23),u("weekdays",function(d){return new Date(1970,0,4+d)},function(d){return s(d).getDay()},[1],0,6),u("dates",function(d){return new Date(1970,0,d)},function(d){return s(d).getDate()},[1],1,31),u("months",function(d){return new Date(1970,d%12,1)},function(d){return s(d).getMonth()},[1],0,11)],l=[h("second",n.utcSecond,r),h("minute",n.utcMinute,r),h("hour",n.utcHour,r),h("day",n.utcDay,r,[1,7]),h("month",n.utcMonth,r,[1,3,6]),h("year",n.utcYear,r),u("seconds",function(d){return new Date(Date.UTC(1970,0,1,0,0,d))},function(d){return s(d).getUTCSeconds()},null,0,59),u("minutes",function(d){return new Date(Date.UTC(1970,0,1,0,d))},function(d){return s(d).getUTCMinutes()},null,0,59),u("hours",function(d){return new Date(Date.UTC(1970,0,1,d))},function(d){return s(d).getUTCHours()},null,0,23),u("weekdays",function(d){return new Date(Date.UTC(1970,0,4+d))},function(d){return s(d).getUTCDay()},[1],0,6),u("dates",function(d){return new Date(Date.UTC(1970,0,d))},function(d){return s(d).getUTCDate()},[1],1,31),u("months",function(d){return new Date(Date.UTC(1970,d%12,1))},function(d){return s(d).getUTCMonth()},[1],0,11)],c=[[31536e6,5],[7776e6,4],[2592e6,4],[12096e5,3],[6048e5,3],[1728e5,3],[864e5,3],[432e5,2],[216e5,2],[108e5,2],[36e5,2],[18e5,1],[9e5,1],[3e5,1],[6e4,1],[3e4,0],[15e3,0],[5e3,0],[1e3,0]];function p(d,g,y,v){var b=c[0],x,S,C;for(x=1,S=c.length;x<S;++x)if(b=c[x],g>b[0]){if(C=g/b[0],C>v)return d[c[x-1][1]];if(C>=y)return d[b[1]]}return d[c[S-1][1]]}function f(d){var g={},y,v;for(y=0,v=d.length;y<v;++y)g[d[y].type]=d[y];return g.find=function(b,x,S){return p(d,b,x,S)},g}t.exports=f(o),t.exports.utc=f(l)})),Sc=ce(((e,t)=>{var n=ne(),i=Tc(),a=1e-15;function r(c){if(!c)throw Error("Missing binning options.");var p=c.maxbins||15,f=c.base||10,d=Math.log(f),g=c.div||[5,2],y=c.min,v=c.max,b=v-y,x,S,C,T,w,N,D;if(c.step)x=c.step;else if(c.steps)x=c.steps[Math.min(c.steps.length-1,s(c.steps,b/p,0,c.steps.length))];else{for(S=Math.ceil(Math.log(p)/d),C=c.minstep||0,x=Math.max(C,f**+(Math.round(Math.log(b)/d)-S));Math.ceil(b/x)>p;)x*=f;for(N=0;N<g.length;++N)w=x/g[N],w>=C&&b/w<=p&&(x=w)}return w=Math.log(x),T=w>=0?0:~~(-w/d)+1,D=f**(-T-1),y=Math.min(y,Math.floor(y/x+D)*x),v=Math.ceil(v/x)*x,{start:y,stop:v,step:x,unit:{precision:T},value:u,index:h}}function s(c,p,f,d){for(;f<d;){var g=f+d>>>1;n.cmp(c[g],p)<0?f=g+1:d=g}return f}function u(c){return this.step*Math.floor(c/this.step+a)}function h(c){return Math.floor((c-this.start)/this.step+a)}function o(c){return this.unit.date(u.call(this,c))}function l(c){return h.call(this,this.unit.unit(c))}r.date=function(c){if(!c)throw Error("Missing date binning options.");var p=c.utc?i.utc:i,f=c.min,d=c.max,g=c.maxbins||20,y=c.minbins||4,v=d-+f,b=c.unit?p[c.unit]:p.find(v,y,g),x=r({min:b.min==null?b.unit(f):b.min,max:b.max==null?b.unit(d):b.max,maxbins:g,minstep:b.minstep,steps:b.step});return x.unit=b,x.index=l,c.raw||(x.value=o),x},t.exports=r})),Gi=ce(((e,t)=>{var n=ne(),i="__types__",a={boolean:n.boolean,integer:n.number,number:n.number,date:n.date,string:function(f){return f==null||f===""?null:f+""}},r={boolean:function(f){return f==="true"||f==="false"||n.isBoolean(f)},integer:function(f){return r.number(f)&&(f=+f)===~~f},number:function(f){return!isNaN(+f)&&!n.isDate(f)},date:function(f){return!isNaN(Date.parse(f))}};function s(f,d){if(!d)return f&&f[i]||null;f[i]=d}function u(f){return n.keys(f)}function h(f){return"["+f+"]"}function o(f,d){f=n.array(f),d=n.$(d);var g,y,v;if(f[i]&&(g=d(f[i]),n.isString(g)))return g;for(y=0,v=f.length;!n.isValid(g)&&y<v;++y)g=d?d(f[y]):f[y];return n.isDate(g)?"date":n.isNumber(g)?"number":n.isBoolean(g)?"boolean":n.isString(g)?"string":null}function l(f,d){if(f.length){var g=d?n.identity:(d=u(f[0]),h);return d.reduce(function(y,v){return y[v]=o(f,g(v)),y},{})}}function c(f,d){f=n.array(f),d=n.$(d);var g,y,v,b=["boolean","integer","number","date"];for(g=0;g<f.length;++g){for(v=d?d(f[g]):f[g],y=0;y<b.length;++y)n.isValid(v)&&!r[b[y]](v)&&(b.splice(y,1),--y);if(b.length===0)return"string"}return b[0]}function p(f,d){var g=d?n.identity:(d=u(f[0]),h);return d.reduce(function(y,v){return y[v]=c(f,g(v)),y},{})}o.annotation=s,o.all=l,o.infer=c,o.inferAll=p,o.parsers=a,t.exports=o})),Nc=ce(((e,t)=>{var n=ne(),i=t.exports;i.repeat=function(a,r){var s=Array(r),u;for(u=0;u<r;++u)s[u]=a;return s},i.zeros=function(a){return i.repeat(0,a)},i.range=function(a,r,s){if(arguments.length<3&&(s=1,arguments.length<2&&(r=a,a=0)),(r-a)/s==1/0)throw Error("Infinite range");var u=[],h=-1,o;if(s<0)for(;(o=a+s*++h)>r;)u.push(o);else for(;(o=a+s*++h)<r;)u.push(o);return u},i.random={},i.random.uniform=function(a,r){r===void 0&&(r=a===void 0?1:a,a=0);var s=r-a,u=function(){return a+s*Math.random()};return u.samples=function(h){return i.zeros(h).map(u)},u.pdf=function(h){return h>=a&&h<=r?1/s:0},u.cdf=function(h){return h<a?0:h>r?1:(h-a)/s},u.icdf=function(h){return h>=0&&h<=1?a+h*s:NaN},u},i.random.integer=function(a,r){r===void 0&&(r=a,a=0);var s=r-a,u=function(){return a+Math.floor(s*Math.random())};return u.samples=function(h){return i.zeros(h).map(u)},u.pdf=function(h){return h===Math.floor(h)&&h>=a&&h<r?1/s:0},u.cdf=function(h){var o=Math.floor(h);return o<a?0:o>=r?1:(o-a+1)/s},u.icdf=function(h){return h>=0&&h<=1?a-1+Math.floor(h*s):NaN},u},i.random.normal=function(a,r){a||(a=0),r||(r=1);var s,u=function(){var h=0,o=0,l,c;if(s!==void 0)return h=s,s=void 0,h;do h=Math.random()*2-1,o=Math.random()*2-1,l=h*h+o*o;while(l===0||l>1);return c=Math.sqrt(-2*Math.log(l)/l),s=a+o*c*r,a+h*c*r};return u.samples=function(h){return i.zeros(h).map(u)},u.pdf=function(h){var o=Math.exp((h-a)**2/(-2*r**2));return 1/(r*Math.sqrt(2*Math.PI))*o},u.cdf=function(h){var o,l=(h-a)/r,c=Math.abs(l);if(c>37)o=0;else{var p,f=Math.exp(-c*c/2);c<7.07106781186547?(p=.0352624965998911*c+.700383064443688,p=p*c+6.37396220353165,p=p*c+33.912866078383,p=p*c+112.079291497871,p=p*c+221.213596169931,p=p*c+220.206867912376,o=f*p,p=.0883883476483184*c+1.75566716318264,p=p*c+16.064177579207,p=p*c+86.7807322029461,p=p*c+296.564248779674,p=p*c+637.333633378831,p=p*c+793.826512519948,p=p*c+440.413735824752,o/=p):(p=c+.65,p=c+4/p,p=c+3/p,p=c+2/p,p=c+1/p,o=f/p/2.506628274631)}return l>0?1-o:o},u.icdf=function(h){if(h<=0||h>=1)return NaN;var o=2*h-1,l=8*(Math.PI-3)/(3*Math.PI*(4-Math.PI)),c=2/(Math.PI*l)+Math.log(1-o**2)/2,p=Math.log(1-o*o)/l,f=(o>0?1:-1)*Math.sqrt(Math.sqrt(c*c-p)-c);return a+r*Math.SQRT2*f},u},i.random.bootstrap=function(a,r){var s=a.filter(n.isValid),u=s.length,h=r?i.random.normal(0,r):null,o=function(){return s[~~(Math.random()*u)]+(h?h():0)};return o.samples=function(l){return i.zeros(l).map(o)},o}})),Cc=ce(((e,t)=>{var n=ne(),i=Gi(),a=Nc(),r=t.exports;r.unique=function(o,l,c){l=n.$(l),c||(c=[]);var p={},f,d,g;for(d=0,g=o.length;d<g;++d)f=l?l(o[d]):o[d],!(f in p)&&(p[f]=1,c.push(f));return c},r.count=function(o){return o&&o.length||0},r.count.valid=function(o,l){l=n.$(l);var c,p,f,d=0;for(p=0,f=o.length;p<f;++p)c=l?l(o[p]):o[p],n.isValid(c)&&(d+=1);return d},r.count.missing=function(o,l){l=n.$(l);var c,p,f,d=0;for(p=0,f=o.length;p<f;++p)c=l?l(o[p]):o[p],c??(d+=1);return d},r.count.distinct=function(o,l){l=n.$(l);var c={},p,f,d,g=0;for(f=0,d=o.length;f<d;++f)p=l?l(o[f]):o[f],!(p in c)&&(c[p]=1,g+=1);return g},r.count.map=function(o,l){l=n.$(l);var c={},p,f,d;for(f=0,d=o.length;f<d;++f)p=l?l(o[f]):o[f],c[p]=p in c?c[p]+1:1;return c},r.median=function(o,l){return l&&(o=o.map(n.$(l))),o=o.filter(n.isValid).sort(n.cmp),r.quantile(o,.5)},r.quartile=function(o,l){l&&(o=o.map(n.$(l))),o=o.filter(n.isValid).sort(n.cmp);var c=r.quantile;return[c(o,.25),c(o,.5),c(o,.75)]},r.quantile=function(o,l,c){c===void 0&&(c=l,l=n.identity),l=n.$(l);var p=(o.length-1)*c+1,f=Math.floor(p),d=+l(o[f-1]),g=p-f;return g?d+g*(l(o[f])-d):d},r.sum=function(o,l){l=n.$(l);for(var c=0,p=0,f=o.length,d;p<f;++p)d=l?l(o[p]):o[p],n.isValid(d)&&(c+=d);return c},r.mean=function(o,l){l=n.$(l);var c=0,p,f,d,g,y;for(f=0,g=0,d=o.length;f<d;++f)y=l?l(o[f]):o[f],n.isValid(y)&&(p=y-c,c+=p/++g);return c},r.mean.geometric=function(o,l){l=n.$(l);var c=1,p,f,d,g;for(g=0,p=0,f=o.length;g<f;++g)if(d=l?l(o[g]):o[g],n.isValid(d)){if(d<=0)throw Error("Geometric mean only defined for positive values.");c*=d,++p}return c=p>0?c**(1/p):0,c},r.mean.harmonic=function(o,l){l=n.$(l);var c=0,p,f,d,g;for(g=0,p=0,f=o.length;g<f;++g)d=l?l(o[g]):o[g],n.isValid(d)&&(c+=1/d,++p);return p/c},r.variance=function(o,l){if(l=n.$(l),!n.isArray(o)||o.length<2)return 0;var c=0,p=0,f,d,g,y;for(d=0,g=0;d<o.length;++d)y=l?l(o[d]):o[d],n.isValid(y)&&(f=y-c,c+=f/++g,p+=f*(y-c));return p/=g-1,p},r.stdev=function(o,l){return Math.sqrt(r.variance(o,l))},r.modeskew=function(o,l){var c=r.mean(o,l),p=r.median(o,l),f=r.stdev(o,l);return f===0?0:(c-p)/f},r.min=function(o,l){return r.extent(o,l)[0]},r.max=function(o,l){return r.extent(o,l)[1]},r.extent=function(o,l){l=n.$(l);var c,p,f,d,g=o.length;for(d=0;d<g;++d)if(f=l?l(o[d]):o[d],n.isValid(f)){c=p=f;break}for(;d<g;++d)f=l?l(o[d]):o[d],n.isValid(f)&&(f<c&&(c=f),f>p&&(p=f));return[c,p]},r.extent.index=function(o,l){l=n.$(l);var c=-1,p=-1,f,d,g,y,v=o.length;for(y=0;y<v;++y)if(g=l?l(o[y]):o[y],n.isValid(g)){f=d=g,c=p=y;break}for(;y<v;++y)g=l?l(o[y]):o[y],n.isValid(g)&&(g<f&&(f=g,c=y),g>d&&(d=g,p=y));return[c,p]},r.dot=function(o,l,c){var p=0,f,d;if(c)for(l=n.$(l),c=n.$(c),f=0;f<o.length;++f)d=l(o[f])*c(o[f]),d===d&&(p+=d);else{if(o.length!==l.length)throw Error("Array lengths must match.");for(f=0;f<o.length;++f)d=o[f]*l[f],d===d&&(p+=d)}return p},r.dist=function(o,l,c,p){var f=n.isFunction(c)||n.isString(c),d=o,g=f?o:l,y=f?p:c,v=y===2||y==null,b=o.length,x=0,S,C;for(f&&(l=n.$(l),c=n.$(c)),C=0;C<b;++C)S=f?l(d[C])-c(g[C]):d[C]-g[C],x+=v?S*S:Math.abs(S)**+y;return v?Math.sqrt(x):x**(1/y)},r.cohensd=function(o,l,c){var p=c?o.map(n.$(l)):o,f=c?o.map(n.$(c)):l,d=r.mean(p),g=r.mean(f),y=r.count.valid(p),v=r.count.valid(f);if(y+v-2<=0)return 0;var b=r.variance(p),x=r.variance(f),S=Math.sqrt(((y-1)*b+(v-1)*x)/(y+v-2));return S===0?0:(d-g)/S},r.covariance=function(o,l,c){var p=c?o.map(n.$(l)):o,f=c?o.map(n.$(c)):l,d=p.length,g=r.mean(p),y=r.mean(f),v=0,b=0,x,S,C,T,w;if(d!==f.length)throw Error("Input lengths must match.");for(x=0;x<d;++x)if(S=p[x],T=n.isValid(S),C=f[x],w=n.isValid(C),T&&w)v+=(S-g)*(C-y),++b;else if(T||w)throw Error("Valid values must align.");return v/(b-1)},r.rank=function(o,l){l=n.$(l)||n.identity;var c=o.map(function(x,S){return{idx:S,val:l(x)}}).sort(n.comparator("val")),p=o.length,f=Array(p),d=-1,g={},y,v,b;for(y=0;y<p;++y){if(v=c[y].val,d<0&&g===v)d=y-1;else if(d>-1&&g!==v){for(b=1+(y-1+d)/2;d<y;++d)f[c[d].idx]=b;d=-1}f[c[y].idx]=y+1,g=v}if(d>-1)for(b=1+(p-1+d)/2;d<p;++d)f[c[d].idx]=b;return f},r.cor=function(o,l,c){var p=c;c=p?o.map(n.$(c)):l,l=p?o.map(n.$(l)):o;var f=r.dot(l,c),d=r.mean(l),g=r.mean(c),y=r.stdev(l),v=r.stdev(c),b=o.length;return(f-b*d*g)/((b-1)*y*v)},r.cor.rank=function(o,l,c){var p=c?r.rank(o,l):r.rank(o),f=c?r.rank(o,c):r.rank(l),d=o.length,g,y,v;for(g=0,y=0;g<d;++g)v=p[g]-f[g],y+=v*v;return 1-6*y/(d*(d*d-1))},r.cor.dist=function(o,l,c){var p=c?o.map(n.$(l)):o,f=c?o.map(n.$(c)):l,d=r.dist.mat(p),g=r.dist.mat(f),y=d.length,v,b,x,S;for(v=0,b=0,x=0,S=0;v<y;++v)b+=d[v]*d[v],x+=g[v]*g[v],S+=d[v]*g[v];return Math.sqrt(S/Math.sqrt(b*x))},r.linearRegression=function(o,l,c){var p=c?o.map(n.$(l)):o,f=c?o.map(n.$(c)):l,d=p.length,g=r.covariance(p,f),y=r.stdev(p),v=r.stdev(f),b=g/(y*y),x=r.mean(f)-b*r.mean(p),S={slope:b,intercept:x,R:g/(y*v),rss:0},C,T;for(T=0;T<d;++T)n.isValid(p[T])&&n.isValid(f[T])&&(C=b*p[T]+x-f[T],S.rss+=C*C);return S},r.bootstrap={},r.bootstrap.ci=function(o,l,c,p,f){var d,g,y,v,b,x,S;for(n.isFunction(l)||n.isString(l)?(d=o.map(n.$(l)),g=c,y=p,v=f):(d=o,g=l,y=c,v=p),g=g?+g:1e3,y||(y=.05),b=a.random.bootstrap(d,v),S=0,x=Array(g);S<g;++S)x[S]=r.mean(b.samples(d.length));return x.sort(n.numcmp),[r.quantile(x,y/2),r.quantile(x,1-y/2)]},r.z={},r.z.ci=function(o,l,c){var p=o,f=l;(n.isFunction(l)||n.isString(l))&&(p=o.map(n.$(l)),f=c),f||(f=.05);var d=f===.05?1.96:a.random.normal(0,1).icdf(1-f/2),g=r.mean(p),y=r.stdev(p)/Math.sqrt(r.count.valid(p));return[g-d*y,g+d*y]},r.z.test=function(o,l,c,p){return n.isFunction(c)||n.isString(c)?(p&&p.paired?u:h)(p,o,l,c):n.isArray(l)?(c&&c.paired?u:h)(c,o,l):n.isFunction(l)||n.isString(l)?s(c,o,l):s(l,o)};function s(o,l,c){var p=o&&o.nullh||0,f=a.random.normal(0,1),d=r.mean(l,c),g=r.stdev(l,c)/Math.sqrt(r.count.valid(l,c));if(g===0)return d-p===0?1:0;var y=(d-p)/g;return 2*f.cdf(-Math.abs(y))}function u(o,l,c,p){var f=p?l.map(n.$(c)):l,d=p?l.map(n.$(p)):c,g=r.count(f),y=r.count(d),v=[],b;if(g!==y)throw Error("Array lengths must match.");for(b=0;b<g;++b)n.isValid(f[b])&&n.isValid(d[b])&&v.push(f[b]-d[b]);return r.z.test(v,o&&o.nullh||0)}function h(o,l,c,p){var f=p?l.map(n.$(c)):l,d=p?l.map(n.$(p)):c,g=r.count.valid(f),y=r.count.valid(d),v=a.random.normal(0,1),b=r.mean(f)-r.mean(d)-(o&&o.nullh||0),x=Math.sqrt(r.variance(f)/g+r.variance(d)/y);if(x===0)return b===0?1:0;var S=b/x;return 2*v.cdf(-Math.abs(S))}r.dist.mat=function(o){var l=o.length,c=l*l,p=Array(c),f=a.zeros(l),d=0,g,y,v;for(y=0;y<l;++y)for(p[y*l+y]=0,v=y+1;v<l;++v)p[y*l+v]=g=Math.abs(o[y]-o[v]),p[v*l+y]=g,f[y]+=g,f[v]+=g;for(y=0;y<l;++y)d+=f[y],f[y]/=l;for(d/=c,y=0;y<l;++y)for(v=y;v<l;++v)p[y*l+v]+=d-f[y]-f[v],p[v*l+y]=p[y*l+v];return p},r.entropy=function(o,l){l=n.$(l);var c,p,f=0,d=0,g=o.length;for(c=0;c<g;++c)f+=l?l(o[c]):o[c];if(f===0)return 0;for(c=0;c<g;++c)p=(l?l(o[c]):o[c])/f,p&&(d+=p*Math.log(p));return-d/Math.LN2},r.mutual=function(o,l,c,p){var f=p?o.map(n.$(l)):o,d=p?o.map(n.$(c)):l,g=p?o.map(n.$(p)):c,y={},v={},b=g.length,x=0,S=0,C=0,T,w,N;for(N=0;N<b;++N)y[f[N]]=0,v[d[N]]=0;for(N=0;N<b;++N)y[f[N]]+=g[N],v[d[N]]+=g[N],x+=g[N];for(w=1/(x*Math.LN2),N=0;N<b;++N)g[N]!==0&&(T=x*g[N]/(y[f[N]]*v[d[N]]),S+=g[N]*w*Math.log(T),C+=g[N]*w*Math.log(g[N]/x));return[S,1+S/C]},r.mutual.info=function(o,l,c,p){return r.mutual(o,l,c,p)[0]},r.mutual.dist=function(o,l,c,p){return r.mutual(o,l,c,p)[1]},r.profile=function(o,l){var c=0,p=0,f=0,d=0,g=null,y=null,v=0,b=[],x={},S,C,T,w,N;for(T=0;T<o.length;++T)w=l?l(o[T]):o[T],x[w]=w in x?x[w]+1:(d+=1,1),w==null?++f:n.isValid(w)&&(N=typeof w=="string"?w.length:w,(g===null||N<g)&&(g=N),(y===null||N>y)&&(y=N),S=N-c,c+=S/++p,v+=S*(N-c),b.push(N));return v/=p-1,C=Math.sqrt(v),b.sort(n.cmp),{type:i(o,l),unique:x,count:o.length,valid:p,missing:f,distinct:d,min:g,max:y,mean:c,stdev:C,median:w=r.quantile(b,.5),q1:r.quantile(b,.25),q3:r.quantile(b,.75),modeskew:C===0?0:(c-w)/C}},r.summary=function(o,l){l||(l=n.keys(o[0]));var c=l.map(function(p){var f=r.profile(o,n.$(p));return f.field=p,f});return c.__summary__=!0,c}})),wc=H(Sc()),Ac=H(Gi()),Oc=H(Cc()),kc=wc.default;function Mc(e,t={},n={fields:[]}){t=(0,U.extend)({},Ve,t);let i=(0,Oc.summary)(e),a=(0,Ac.inferAll)(e),r=n.fields.reduce((h,o)=>(h[o.name]=o,h),{}),s=i.map(function(h,o){let l=h.field,c=a[l]==="date"?R.DATETIME:a[l],p=h.distinct,f;if(c===R.NUMBER)f=te;else if(c===R.INTEGER)f=p<t.numberNominalLimit&&p/h.count<t.numberNominalProportion?we:te;else if(c===R.DATETIME){f=ye,h.min=new Date(e[0][l]),h.max=new Date(e[0][l]);for(let y of e){let v=new Date(y[l]).getTime();v<h.min.getTime()&&(h.min=new Date(v)),v>h.max.getTime()&&(h.max=new Date(v))}}else f=we;f==="nominal"&&p/h.count>t.minPercentUniqueForKey&&h.count>t.minCardinalityForKey&&(f=le.KEY);let d={name:l,originalIndex:o,vlType:f,type:c,stats:h,timeStats:{},binStats:{}},g=r[d.name];return d=(0,U.extend)(d,g),d});for(let h of s)if(h.vlType==="quantitative")for(let o of t.enum.binProps.maxbins)h.binStats[o]=zi(o,h.stats);else if(h.vlType==="temporal")for(let o of t.enum.timeUnit)o!==void 0&&(h.timeStats[o]=Yi(o,h.stats));let u=Object.assign({},n,{fields:s});return new Ic(u)}var kt={nominal:0,key:1,ordinal:2,temporal:3,quantitative:4},Ic=class{constructor(e){this._tableSchema=e,e.fields.sort(function(t,n){return kt[t.vlType]<kt[n.vlType]?-1:kt[t.vlType]>kt[n.vlType]?1:t.name.localeCompare(n.name)}),e.fields.forEach((t,n)=>t.index=n),this._fieldSchemaIndex=e.fields.reduce((t,n)=>(t[n.name]=n,t),{})}fieldNames(){return this._tableSchema.fields.map(e=>e.name)}get fieldSchemas(){return this._tableSchema.fields}fieldSchema(e){return this._fieldSchemaIndex[e]}tableSchema(){let e=(0,U.duplicate)(this._tableSchema);return e.fields.sort((t,n)=>t.originalIndex-n.originalIndex),e}primitiveType(e){return this._fieldSchemaIndex[e]?this._fieldSchemaIndex[e].type:null}vlType(e){return this._fieldSchemaIndex[e]?this._fieldSchemaIndex[e].vlType:null}cardinality(e,t=!0,n=!1){let i=this._fieldSchemaIndex[e.field];if(e.aggregate||P(e)&&e.autoCount)return 1;if(e.bin){let a;a=typeof e.bin=="boolean"?{maxbins:pn(e.channel)}:e.bin==="?"?{enum:[!0,!1]}:e.bin;let r=a.maxbins;return i.binStats[r]||(i.binStats[r]=zi(r,i.stats)),i.binStats[r].distinct}else if(e.timeUnit){if(t)switch(e.timeUnit){case B.SECONDS:return 60;case B.MINUTES:return 60;case B.HOURS:return 24;case B.DAY:return 7;case B.DATE:return 31;case B.MONTH:return 12;case B.QUARTER:return 4;case B.MILLISECONDS:return 1e3}let a=e.timeUnit,r=i.timeStats;return(!r||!r[a])&&(r=Object.assign({},r,{[a]:Yi(e.timeUnit,i.stats)})),n?r[a].distinct-Qi(r[a].unique,["Invalid Date",null]):r[a].distinct}else return i?n?i.stats.distinct-Qi(i.stats.unique,[NaN,null]):i.stats.distinct:null}timeUnitHasVariation(e){if(!e.timeUnit)return;if(e.timeUnit===B.DAY){let n=(0,U.extend)({},e,{timeUnit:B.DATE});if(this.cardinality(n,!1,!0)<=1)return!1}let t=e.timeUnit;for(let n of Kr)if(ei(t,n)){let i=(0,U.extend)({},e,{timeUnit:n});if(this.cardinality(i,!1,!0)<=1)return!1}return!0}domain(e){let t=this._fieldSchemaIndex[e.field],n=(0,U.keys)(t.stats.unique);return t.vlType==="quantitative"?[+t.stats.min,+t.stats.max]:t.type===R.DATETIME?[t.stats.min,t.stats.max]:t.type===R.INTEGER||t.type===R.NUMBER?(n=n.map(i=>+i),n.sort(U.cmp)):t.vlType==="ordinal"&&t.ordinalDomain?t.ordinalDomain:n.map(i=>i==="null"?null:i).sort(U.cmp)}stats(e){let t=this._fieldSchemaIndex[e.field];return t?t.stats:null}};function zi(e,t){let n=kc({min:t.min,max:t.max,maxbins:e}),i=(0,U.extend)({},t);return i.unique=Uc(n,t.unique),i.distinct=(n.stop-n.start)/n.step,i.min=n.start,i.max=n.stop,i}function Yi(e,t){let n=(0,U.extend)({},t),i={};return(0,U.keys)(t.unique).forEach(function(a){let r=a==="null"?null:new Date(a),s;s=r===null?null:isNaN(r.getTime())?"Invalid Date":(e===B.DAY?r.getDay():El(e,r)).toString(),i[s]=(i[s]||0)+t.unique[a]}),n.unique=i,n.distinct=(0,U.keys)(i).length,n}function Uc(e,t){let n={};for(let i in t){let a;a=i===null?null:isNaN(Number(i))?NaN:e.value(Number(i)),n[a]=(n[a]||0)+t[i]}return n}function Qi(e,t){return t.reduce(function(n,i){return e[i]?n+1:n},0)}var R;(function(e){e[e.STRING="string"]="STRING",e[e.NUMBER="number"]="NUMBER",e[e.INTEGER="integer"]="INTEGER",e[e.BOOLEAN="boolean"]="BOOLEAN",e[e.DATETIME="datetime"]="DATETIME"})(R||(R={}));var Vi=class{constructor(e){this.constraint=e}name(){return this.constraint.name}description(){return this.constraint.description}properties(){return this.constraint.properties}strict(){return this.constraint.strict}},Ki=class extends Vi{constructor(e){super(e)}hasAllRequiredPropertiesSpecific(e){return oe(this.constraint.properties,t=>{if(se(t)){let n=t.parent,i=t.child;return e[n]?!A(e[n][i]):!0}return e[t]?!A(e[t]):!0})}satisfy(e,t,n,i){return!this.constraint.allowWildcardForProperties&&!this.hasAllRequiredPropertiesSpecific(e)?!0:this.constraint.satisfy(e,t,n,i)}};const Ji=[{name:"aggregateOpSupportedByType",description:"Aggregate function should be supported by data type.",properties:[m.TYPE,m.AGGREGATE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,i)=>e.aggregate?!oi(e.type):!0},{name:"asteriskFieldWithCountOnly",description:'Field="*" should be disallowed except aggregate="count"',properties:[m.FIELD,m.AGGREGATE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,i)=>e.field==="*"==(e.aggregate==="count")},{name:"minCardinalityForBin",description:"binned quantitative field should not have too low cardinality",properties:[m.BIN,m.FIELD,m.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,i)=>{if(e.bin&&e.type==="quantitative"){let a={channel:e.channel,field:e.field,type:e.type};return t.cardinality(a)>=i.minCardinalityForBin}return!0}},{name:"binAppliedForQuantitative",description:"bin should be applied to quantitative field only.",properties:[m.TYPE,m.BIN],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,i)=>e.bin?e.type===te:!0},{name:"channelFieldCompatible",description:"encoding channel's range type be compatible with channel type.",properties:[m.CHANNEL,m.TYPE,m.BIN,m.TIMEUNIT],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,i)=>{let a=Object.assign({field:"f"},xn(e,{schema:t,props:["bin","timeUnit","type"]})),{compatible:r}=Rl(a,e.channel);return r?!0:!!((e.channel==="row"||e.channel==="column")&&(hl(a.timeUnit)||ml(a.timeUnit)))}},{name:"hasFn",description:"A field with as hasFn flag should have one of aggregate, timeUnit, or bin.",properties:[m.AGGREGATE,m.BIN,m.TIMEUNIT],allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n,i)=>e.hasFn?!!e.aggregate||!!e.bin||!!e.timeUnit:!0},{name:"omitScaleZeroWithBinnedField",description:"Do not use scale zero with binned field",properties:[m.SCALE,fe("scale","zero"),m.BIN],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,i)=>!(e.bin&&e.scale&&e.scale.zero===!0)},{name:"onlyOneTypeOfFunction",description:"Only of of aggregate, autoCount, timeUnit, or bin should be applied at the same time.",properties:[m.AGGREGATE,m.AUTOCOUNT,m.TIMEUNIT,m.BIN],allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n,i)=>O(e)?(!A(e.aggregate)&&e.aggregate?1:0)+(!A(e.bin)&&e.bin?1:0)+(!A(e.timeUnit)&&e.timeUnit?1:0)<=1:!0},{name:"timeUnitAppliedForTemporal",description:"Time unit should be applied to temporal field only.",properties:[m.TYPE,m.TIMEUNIT],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,i)=>!(e.timeUnit&&e.type!=="temporal")},{name:"timeUnitShouldHaveVariation",description:"A particular time unit should be applied only if they produce unique values.",properties:[m.TIMEUNIT,m.TYPE],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n,i)=>e.timeUnit&&e.type==="temporal"?!n.has("timeUnit")&&!i.constraintManuallySpecifiedValue?!0:t.timeUnitHasVariation(e):!0},{name:"scalePropertiesSupportedByScaleType",description:"Scale properties must be supported by correct scale type",properties:[].concat(pt,[m.SCALE,m.TYPE]),allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n,i)=>{if(e.scale){let a=e.scale,r=ke(e);if(r==null)return!0;for(let s in a){if(s==="type"||s==="name"||s==="enum")continue;let u=s;if(r==="point"){if(!Zt("point",u)&&!Zt("band",u))return!1}else if(!Zt(r,u))return!1}}return!0}},{name:"scalePropertiesSupportedByChannel",description:"Not all scale properties are supported by all encoding channels",properties:[].concat(pt,[m.SCALE,m.CHANNEL]),allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n,i)=>{if(e){let a=e.channel,r=e.scale;if(a&&!A(a)&&r){if(a==="row"||a==="column")return!1;for(let s in r)if(r.hasOwnProperty(s)&&!(s==="type"||s==="name"||s==="enum")&&Xs(a,s)!==void 0)return!1}}return!0}},{name:"typeMatchesPrimitiveType",description:"Data type should be supported by field's primitive type.",properties:[m.FIELD,m.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,i)=>{if(e.field==="*")return!0;let a=t.primitiveType(e.field),r=e.type;if(!n.has("field")&&!n.has("type")&&!i.constraintManuallySpecifiedValue)return!0;switch(a){case R.BOOLEAN:case R.STRING:return r!=="quantitative"&&r!=="temporal";case R.NUMBER:case R.INTEGER:return r!==ye;case R.DATETIME:return r===ye;case null:return!1}throw Error("Not implemented")}},{name:"typeMatchesSchemaType",description:"Enumerated data type of a field should match the field's type in the schema.",properties:[m.FIELD,m.TYPE],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n,i)=>!n.has("field")&&!n.has("type")&&!i.constraintManuallySpecifiedValue?!0:e.field==="*"?e.type===te:t.vlType(e.field)===e.type},{name:"maxCardinalityForCategoricalColor",description:"Categorical channel should not have too high cardinality",properties:[m.CHANNEL,m.FIELD],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n,i)=>e.channel==="color"&&(e.type==="nominal"||e.type===le.KEY)?t.cardinality(e)<=i.maxCardinalityForCategoricalColor:!0},{name:"maxCardinalityForFacet",description:"Row/column channel should not have too high cardinality",properties:[m.CHANNEL,m.FIELD,m.BIN,m.TIMEUNIT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n,i)=>e.channel==="row"||e.channel==="column"?t.cardinality(e)<=i.maxCardinalityForFacet:!0},{name:"maxCardinalityForShape",description:"Shape channel should not have too high cardinality",properties:[m.CHANNEL,m.FIELD,m.BIN,m.TIMEUNIT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n,i)=>e.channel==="shape"?t.cardinality(e)<=i.maxCardinalityForShape:!0},{name:"dataTypeAndFunctionMatchScaleType",description:"Scale type must match data type",properties:[m.TYPE,m.SCALE,fe("scale","type"),m.TIMEUNIT,m.BIN],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,i)=>{if(e.scale){let a=e.type,r=ke(e);if(oi(a))return r===void 0||Ae(r);if(a==="temporal")return e.timeUnit?K([F.TIME,F.UTC,void 0],r)||Ae(r):K([F.TIME,F.UTC,void 0],r);if(a==="quantitative")return e.bin?K([F.LINEAR,void 0],r):K([F.LOG,F.POW,F.SQRT,F.QUANTILE,F.QUANTIZE,F.LINEAR,void 0],r)}return!0}},{name:"stackIsOnlyUsedWithXY",description:"stack should only be allowed for x and y channels",properties:[m.STACK,m.CHANNEL],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,i)=>e.stack?e.channel==="x"||e.channel==="y":!0}].map(e=>new Ki(e));Ji.reduce((e,t)=>(e[t.name()]=t,e),{});const Fc=Ji.reduce((e,t)=>{for(let n of t.properties())e.set(n,e.get(n)||[]),e.get(n).push(t);return e},new re),Xi=[{name:"doesNotSupportConstantValue",description:"row, column, x, y, order, and detail should not work with constant values.",properties:[m.TYPE,m.AGGREGATE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,i)=>!K(["row","column","x","y","detail","order"],e.channel)}].map(e=>new Ki(e));Xi.reduce((e,t)=>(e[t.name()]=t,e),{});const Dc=Xi.reduce((e,t)=>{for(let n of t.properties())e.set(n,e.get(n)||[]),e.get(n).push(t);return e},new re);function _c(e,t,n,i,a,r){let s=Fc.get(e)||[],u=i.getEncodingQueryByIndex(n);for(let o of s)if((o.strict()||r[o.name()])&&!o.satisfy(u,a,i.wildcardIndex.encodings[n],r)){let l="(enc) "+o.name();return r.verbose&&console.log(l+" failed with "+i.toShorthand()+" for "+t.name),l}let h=Dc.get(e)||[];for(let o of h)if((o.strict()||r[o.name()])&&ie(u)&&!o.satisfy(u,a,i.wildcardIndex.encodings[n],r)){let l="(enc) "+o.name();return r.verbose&&console.log(l+" failed with "+i.toShorthand()+" for "+t.name),l}return null}var jc=Or.reduce((e,t)=>(e[t]=!0,e),{}),Pc=class extends Vi{constructor(e){super(e)}hasAllRequiredPropertiesSpecific(e){return oe(this.constraint.properties,t=>{if(t===m.MARK)return!A(e.getMark());if(se(t)){let n=t.parent,i=t.child;return oe(e.getEncodings(),a=>a[n]?!A(a[n][i]):!0)}if(!Qr(t))throw Error("UNIMPLEMENTED");return oe(e.getEncodings(),n=>n[t]?!A(n[t]):!0)})}satisfy(e,t,n){return!this.constraint.allowWildcardForProperties&&!this.hasAllRequiredPropertiesSpecific(e)?!0:this.constraint.satisfy(e,t,n)}};const Zi=[{name:"noRepeatedChannel",description:"Each encoding channel should only be used once.",properties:[m.CHANNEL],allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n)=>{let i={};return oe(e.getEncodings(),a=>A(a.channel)?!0:i[a.channel]?!1:(i[a.channel]=!0,!0))}},{name:"alwaysIncludeZeroInScaleWithBarMark",description:"Do not recommend bar mark if scale does not start at zero",properties:[m.MARK,m.SCALE,fe("scale","zero"),m.CHANNEL,m.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>{let i=e.getMark(),a=e.getEncodings();if(i==="bar"){for(let r of a)if(O(r)&&(r.channel==="x"||r.channel==="y")&&r.type==="quantitative"&&r.scale&&r.scale.zero===!1)return!1}return!0}},{name:"autoAddCount",description:"Automatically adding count only for plots with only ordinal, binned quantitative, or temporal with timeunit fields.",properties:[m.BIN,m.TIMEUNIT,m.TYPE,m.AUTOCOUNT],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{if(de(e.getEncodings(),i=>Tt(i)))return oe(e.getEncodings(),i=>{if(ie(i)||P(i))return!0;switch(i.type){case te:return!!i.bin;case ye:return!!i.timeUnit;case Ce:case le.KEY:case we:return!0}throw Error("Unsupported Type")});{let i=e.wildcardIndex.encodingIndicesByProperty.get("autoCount")||[];if(oe(i,a=>{let r=e.getEncodingQueryByIndex(a);return P(r)&&!A(r.autoCount)}))return de(e.getEncodings(),a=>(O(a)||P(a))&&a.type==="quantitative"?ae(a)?!1:O(a)&&(!a.bin||A(a.bin)):O(a)&&a.type==="temporal"?!a.timeUnit||A(a.timeUnit):!1)}return!0}},{name:"channelPermittedByMarkType",description:"Each encoding channel should be supported by the mark type",properties:[m.CHANNEL,m.MARK],allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n)=>{let i=e.getMark();return A(i)?!0:oe(e.getEncodings(),a=>A(a.channel)?!0:!!xo(a.channel,i))}},{name:"hasAllRequiredChannelsForMark",description:"All required channels for the specified mark should be specified",properties:[m.CHANNEL,m.MARK],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>{let i=e.getMark();switch(i){case ze:case gt:return e.channelUsed("x")&&e.channelUsed("y");case yt:return e.channelUsed(Qt);case"bar":case on:case sn:case vt:case an:case rn:return e.channelUsed("x")||e.channelUsed("y");case Ye:return!e.wildcardIndex.hasProperty(m.CHANNEL)||e.channelUsed("x")||e.channelUsed("y")}throw Error("hasAllRequiredChannelsForMark not implemented for mark"+JSON.stringify(i))}},{name:"omitAggregate",description:"Omit aggregate plots.",properties:[m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>!e.isAggregate()},{name:"omitAggregatePlotWithDimensionOnlyOnFacet",description:"Omit aggregate plots with dimensions only on facets as that leads to inefficient use of space.",properties:[m.CHANNEL,m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>{if(e.isAggregate()){let i=!1,a=!1,r=!1;if(e.specQuery.encodings.forEach((s,u)=>{ie(s)||ae(s)||O(s)&&!s.aggregate&&(a=!0,K(["row","column"],s.channel)?e.wildcardIndex.hasEncodingProperty(u,m.CHANNEL)&&(r=!0):i=!0)}),a&&!i&&(r||n.constraintManuallySpecifiedValue))return!1}return!0}},{name:"omitAggregatePlotWithoutDimension",description:"Aggregate plots without dimension should be omitted",properties:[m.AGGREGATE,m.AUTOCOUNT,m.BIN,m.TIMEUNIT,m.TYPE],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>e.isAggregate()?de(e.getEncodings(),i=>!!(be(i)||O(i)&&i.type==="temporal")):!0},{name:"omitBarLineAreaWithOcclusion",description:"Don't use bar, line or area to visualize raw plot as they often lead to occlusion.",properties:[m.MARK,m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>K(["bar","line","area"],e.getMark())?e.isAggregate():!0},{name:"omitBarTickWithSize",description:"Do not map field to size channel with bar and tick mark",properties:[m.CHANNEL,m.MARK],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{let i=e.getMark();if(K(["tick","bar"],i)&&e.channelEncodingField("size")){if(n.constraintManuallySpecifiedValue)return!1;{let a=e.specQuery.encodings;for(let r=0;r<a.length;r++)if(a[r].channel==="size")return!e.wildcardIndex.hasEncodingProperty(r,m.CHANNEL)}}return!0}},{name:"omitBarAreaForLogScale",description:"Do not use bar and area mark for x and y's log scale",properties:[m.MARK,m.CHANNEL,m.SCALE,fe("scale","type"),m.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>{let i=e.getMark(),a=e.getEncodings();if(i==="area"||i==="bar"){for(let r of a)if(O(r)&&(r.channel==="x"||r.channel==="y")&&r.scale&&ke(r)===F.LOG)return!1}return!0}},{name:"omitMultipleNonPositionalChannels",description:"Unless manually specified, do not use multiple non-positional encoding channel to avoid over-encoding.",properties:[m.CHANNEL],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{let i=e.specQuery.encodings,a=0,r=!1;for(let s=0;s<i.length;s++){let u=i[s];if(ie(u)||ae(u))continue;let h=u.channel;if(!A(h)&&jc[h+""]&&(a+=1,e.wildcardIndex.hasEncodingProperty(s,m.CHANNEL)&&(r=!0),a>1&&(r||n.constraintManuallySpecifiedValue)))return!1}return!0}},{name:"omitNonPositionalOrFacetOverPositionalChannels",description:"Do not use non-positional channels unless all positional channels are used",properties:[m.CHANNEL],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>{let i=e.specQuery.encodings,a=!1,r=!1,s=!1,u=!1;for(let h=0;h<i.length;h++){let o=i[h];if(ie(o)||ae(o))continue;let l=o.channel;l==="x"?s=!0:l==="y"?u=!0:A(l)||(a=!0,e.wildcardIndex.hasEncodingProperty(h,m.CHANNEL)&&(r=!0))}return r||n.constraintManuallySpecifiedValue&&a?s&&u:!0}},{name:"omitRaw",description:"Omit raw plots.",properties:[m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>!!e.isAggregate()},{name:"omitRawContinuousFieldForAggregatePlot",description:"Aggregate plot should not use raw continuous field as group by values. (Quantitative should be binned. Temporal should have time unit.)",properties:[m.AGGREGATE,m.AUTOCOUNT,m.TIMEUNIT,m.BIN,m.TYPE],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{if(e.isAggregate()){let i=e.specQuery.encodings;for(let a=0;a<i.length;a++){let r=i[a];if(!(ie(r)||ae(r))&&(O(r)&&r.type==="temporal"&&!r.timeUnit&&(e.wildcardIndex.hasEncodingProperty(a,m.TIMEUNIT)||n.constraintManuallySpecifiedValue)||r.type==="quantitative"&&O(r)&&!r.bin&&!r.aggregate&&(e.wildcardIndex.hasEncodingProperty(a,m.BIN)||e.wildcardIndex.hasEncodingProperty(a,m.AGGREGATE)||e.wildcardIndex.hasEncodingProperty(a,m.AUTOCOUNT)||n.constraintManuallySpecifiedValue)))return!1}}return!0}},{name:"omitRawDetail",description:"Do not use detail channel with raw plot.",properties:[m.CHANNEL,m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>e.isAggregate()?!0:oe(e.specQuery.encodings,(i,a)=>ie(i)||ae(i)?!0:!(i.channel==="detail"&&(e.wildcardIndex.hasEncodingProperty(a,m.CHANNEL)||n.constraintManuallySpecifiedValue)))},{name:"omitRepeatedField",description:"Each field should be mapped to only one channel",properties:[m.FIELD],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{let i={},a={},r=e.specQuery.encodings;for(let s=0;s<r.length;s++){let u=r[s];if(ie(u)||P(u))continue;let h;if(u.field&&!A(u.field)&&(h=u.field),P(u)&&!A(u.autoCount)&&(h="count_*"),h){if(e.wildcardIndex.hasEncodingProperty(s,m.FIELD)&&(a[h]=!0),i[h]&&(a[h]||n.constraintManuallySpecifiedValue))return!1;i[h]=!0}}return!0}},{name:"omitVerticalDotPlot",description:"Do not output vertical dot plot.",properties:[m.CHANNEL],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{let i=e.getEncodings();return!(i.length===1&&i[0].channel==="y")}},{name:"hasAppropriateGraphicTypeForMark",description:"Has appropriate graphic type for mark",properties:[m.CHANNEL,m.MARK,m.TYPE,m.TIMEUNIT,m.BIN,m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>{let i=e.getMark();switch(i){case ze:case gt:if(e.isAggregate()){let c=e.getEncodingQueryByChannel("x"),p=e.getEncodingQueryByChannel("y"),f=Ke(c),d=Ke(p);return c&&p&&f!==d&&!(O(c)&&!f&&K(["nominal","key"],c.type))&&!(O(p)&&!d&&K(["nominal","key"],p.type))}return!0;case yt:return!0;case"bar":case vt:if(e.channelEncodingField("size"))return!1;{let c=e.getEncodingQueryByChannel("x"),p=e.getEncodingQueryByChannel("y"),f=Ke(c),d=Ke(p);return f!==d}case rn:let a=e.getEncodingQueryByChannel("x"),r=e.getEncodingQueryByChannel("y"),s=be(a),u=be(r),h=e.getEncodingQueryByChannel(ue),o=Ke(h),l=O(h)?h.type===Ce:!1;return(s&&u||s&&!e.channelUsed("y")||u&&!e.channelUsed("x"))&&(!h||h&&(o||l));case on:case Ye:case sn:case an:return!0}throw Error("hasAllRequiredChannelsForMark not implemented for mark"+i)}},{name:"omitInvalidStackSpec",description:"If stack is specified, must follow Vega-Lite stack rules",properties:[m.STACK,m.FIELD,m.CHANNEL,m.MARK,m.AGGREGATE,m.AUTOCOUNT,m.SCALE,fe("scale","type"),m.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>{if(!e.wildcardIndex.hasProperty(m.STACK))return!0;let i=e.getVlStack();return!(i===null&&e.getStackOffset()!==null||i.fieldChannel!==e.getStackChannel())}},{name:"omitNonSumStack",description:"Stack specifications that use non-summative aggregates should be omitted (even implicit ones)",properties:[m.CHANNEL,m.MARK,m.AGGREGATE,m.AUTOCOUNT,m.SCALE,fe("scale","type"),m.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>{let i=e.getVlStack();if(i!=null){let a=e.getEncodingQueryByChannel(i.fieldChannel);if(!K(ni,a.aggregate))return!1}return!0}},{name:"omitTableWithOcclusionIfAutoAddCount",description:"Plots without aggregation or autocount where x and y are both discrete should be omitted if autoAddCount is enabled as they often lead to occlusion",properties:[m.CHANNEL,m.TYPE,m.TIMEUNIT,m.BIN,m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>{if(n.autoAddCount){let i=e.getEncodingQueryByChannel("x"),a=e.getEncodingQueryByChannel("y");if((!O(i)||be(i))&&(!O(a)||be(a)))return e.isAggregate()?oe(e.getEncodings(),r=>{let s=r.channel;return!(s!=="x"&&s!=="y"&&s!=="row"&&s!=="column"&&O(r)&&!r.aggregate)}):!1}return!0}}].map(e=>new Pc(e));Zi.reduce((e,t)=>(e[t.name()]=t,e),{});var Rc=Zi.reduce((e,t)=>{for(let n of t.properties())e.set(n,e.get(n)||[]),e.get(n).push(t);return e},new re);function ea(e,t,n,i,a){let r=Rc.get(e)||[];for(let s of r)if((s.strict()||a[s.name()])&&!s.satisfy(n,i,a)){let u="(spec) "+s.name();return a.verbose&&console.log(u+" failed with "+n.toShorthand()+" for "+t.name),u}return null}var Mt=new re;function $c(e){return Mt.get(e)}Mt.set("mark",(e,t,n)=>(i,a)=>(a.getMark().enum.forEach(r=>{a.setMark(r),ea("mark",e.mark,a,t,n)||i.push(a.duplicate())}),a.resetMark(),i)),en.forEach(e=>{Mt.set(e,ta(e))}),ht.forEach(e=>{Mt.set(e,ta(e))});function ta(e){return(t,n,i)=>(a,r)=>{let s=t.encodingIndicesByProperty.get(e);function u(h){if(h===s.length){a.push(r.duplicate());return}let o=s[h],l=t.encodings[o].get(e),c=r.getEncodingQueryByIndex(o),p=r.getEncodingProperty(o,e);ie(c)||ae(c)||!p?u(h+1):(l.enum.forEach(f=>{f===null&&(f=void 0),r.setEncodingProperty(o,e,f,l),!_c(e,l,o,r,n,i)&&(ea(e,l,r,n,i)||u(h+1))}),r.resetEncodingProperty(o,e,l))}return u(0),a}}var Bc=H(ne());function Lc(e){return(0,Bc.isObject)(e)&&!!e.property}function Je(e,t,n){return t||(t=new re),n||(n=new re),e.forEach(i=>{Lc(i)?(t.setByKey(i.property,!0),n.setByKey(i.property,i.replace)):t.setByKey(i,!0)}),{include:t,replaceIndex:n,replacer:Xl(n)}}const na=[m.FIELD,m.TYPE,m.AGGREGATE,m.BIN,m.TIMEUNIT,m.STACK],Wc=na.concat([{property:m.CHANNEL,replace:{x:"xy",y:"xy",color:"style",size:"style",shape:"style",opacity:"style",row:"facet",column:"facet"}}]);var ra=H(ne()),Qn={};function It(e,t){Qn[e]=t}function qc(e,t){if(t){let n={name:"",path:"",items:[]},i={},a=[],r=[],s=[];for(let u=0;u<t.length;u++){a.push(u>0?a[u-1].duplicate():new re),r.push(u>0?r[u-1].duplicate():new re);let h=t[u].groupBy;if((0,ra.isArray)(h)){let o=Je(h,a[u],r[u]);s.push(o.replacer)}}return e.forEach(u=>{let h="",o=n;for(let l=0;l<t.length;l++){let c=o.groupBy=t[l].groupBy;o.orderGroupBy=t[l].orderGroupBy;let p=(0,ra.isArray)(c)?Pe(u.specQuery,a[l],s[l]):Qn[c](u.specQuery);h+="/"+p,i[h]||(i[h]={name:p,path:h,items:[]},o.items.push(i[h])),o=i[h]}o.items.push(u)}),n}else return{name:"",path:"",items:e}}var Hc=[m.FIELD],ia=Je(Hc);function Gc(e,t){return Qn[t](e)}It("field",e=>Pe(e,ia.include,ia.replacer));const aa=Je(na);It("fieldTransform",e=>Pe(e,aa.include,aa.replacer));const oa=Je(Wc);It("encoding",e=>Pe(e,oa.include,oa.replacer)),It("spec",e=>JSON.stringify(e));var zc=class{constructor(){this._mark=void 0,this._encodings={},this._encodingIndicesByProperty=new re}setEncodingProperty(e,t,n){let i=this._encodings;(i[e]=i[e]||new re).set(t,n);let a=this._encodingIndicesByProperty;return a.set(t,a.get(t)||[]),a.get(t).push(e),this}hasEncodingProperty(e,t){return!!this._encodings[e]&&this._encodings[e].has(t)}hasProperty(e){if(Qr(e))return this.encodingIndicesByProperty.has(e);if(e==="mark")return!!this.mark;throw Error("Unimplemented for property "+e)}isEmpty(){return!this.mark&&this.encodingIndicesByProperty.size()===0}setMark(e){return this._mark=e,this}get mark(){return this._mark}get encodings(){return this._encodings}get encodingIndicesByProperty(){return this._encodingIndicesByProperty}},Yc=H(ne()),Qc=class ar{constructor(t,n,i,a,r){this._rankingScore={},this._spec=t,this._channelFieldCount=t.encodings.reduce((s,u)=>(!A(u.channel)&&(!P(u)||u.autoCount!==!1)&&(s[u.channel+""]=1),s),{}),this._wildcardIndex=n,this._assignedWildcardIndex=r,this._opt=a,this._schema=i}static build(t,n,i){let a=new zc;if(A(t.mark)){let r=Qe(m.MARK);t.mark=un(t.mark,r,i.enum.mark),a.setMark(t.mark)}if(t.encodings.forEach((r,s)=>{P(r)&&(console.warn("A field with autoCount should not be included as autoCount meant to be an internal object."),r.type=te),O(r)&&r.type===void 0&&(r.type="?"),en.forEach(u=>{if(A(r[u])){let h=Qe(u)+s,o=fn(u,n,i),l=r[u]=un(r[u],h,o);a.setEncodingProperty(s,u,l)}}),ht.forEach(u=>{let h=r[u.parent];if(h){let o=u.child;if(A(h[o])){let l=Qe(u)+s,c=fn(u,n,i),p=h[o]=un(h[o],l,c);a.setEncodingProperty(s,u,p)}}})}),i.autoAddCount){let r={name:Qe(m.CHANNEL)+t.encodings.length,enum:fn(m.CHANNEL,n,i)},s={name:Qe(m.AUTOCOUNT)+t.encodings.length,enum:[!1,!0]},u={channel:r,autoCount:s,type:te};t.encodings.push(u);let h=t.encodings.length-1;a.setEncodingProperty(h,m.CHANNEL,r),a.setEncodingProperty(h,m.AUTOCOUNT,s)}return new ar(t,a,n,i,{})}get wildcardIndex(){return this._wildcardIndex}get schema(){return this._schema}get specQuery(){return this._spec}duplicate(){return new ar((0,U.duplicate)(this._spec),this._wildcardIndex,this._schema,this._opt,(0,U.duplicate)(this._assignedWildcardIndex))}setMark(t){let n=this._wildcardIndex.mark.name;this._assignedWildcardIndex[n]=this._spec.mark=t}resetMark(){let t=this._spec.mark=this._wildcardIndex.mark;delete this._assignedWildcardIndex[t.name]}getMark(){return this._spec.mark}getEncodingProperty(t,n){let i=this._spec.encodings[t];return se(n)?i[n.parent][n.child]:i[n]}setEncodingProperty(t,n,i,a){let r=this._spec.encodings[t];n===m.CHANNEL&&r.channel&&!A(r.channel)&&this._channelFieldCount[r.channel]--,se(n)?r[n.parent][n.child]=i:tn(n)&&i===!0?r[n]=(0,U.extend)({},r[n],{enum:void 0,name:void 0}):r[n]=i,this._assignedWildcardIndex[a.name]=i,n===m.CHANNEL&&(this._channelFieldCount[i]=(this._channelFieldCount[i]||0)+1)}resetEncodingProperty(t,n,i){let a=this._spec.encodings[t];n===m.CHANNEL&&this._channelFieldCount[a.channel]--,se(n)?a[n.parent][n.child]=i:a[n]=i,delete this._assignedWildcardIndex[i.name]}channelUsed(t){return this._channelFieldCount[t]>0}channelEncodingField(t){let n=this.getEncodingQueryByChannel(t);return O(n)}getEncodings(){return this._spec.encodings.filter(t=>!ae(t))}getEncodingQueryByChannel(t){for(let n of this._spec.encodings)if(n.channel===t)return n}getEncodingQueryByIndex(t){return this._spec.encodings[t]}isAggregate(){return Ql(this._spec)}getVlStack(){return li(this._spec)}getStackOffset(){return Vl(this._spec)}getStackChannel(){return Kl(this._spec)}toShorthand(t){if(t){if((0,Yc.isString)(t))return Gc(this.specQuery,t);let n=Je(t);return Pe(this._spec,n.include,n.replacer)}return Pe(this._spec)}toSpec(t){if(A(this._spec.mark))return null;let n={};return t||(t=this._spec.data),t&&(n.data=t),this._spec.transform&&(n.transform=this._spec.transform),n.mark=this._spec.mark,n.encoding=hi(this.specQuery.encodings,{schema:this._schema,wildcardMode:"null"}),this._spec.width&&(n.width=this._spec.width),this._spec.height&&(n.height=this._spec.height),this._spec.background&&(n.background=this._spec.background),this._spec.padding&&(n.padding=this._spec.padding),this._spec.title&&(n.title=this._spec.title),n.encoding===null?null:((this._spec.config||this._opt.defaultSpecConfig)&&(n.config=(0,U.extend)({},this._opt.defaultSpecConfig,this._spec.config)),n)}getRankingScore(t){return this._rankingScore[t]}setRankingScore(t,n){this._rankingScore[t]=n}};function Vc(e){if(e.groupBy){let t={groupBy:e.groupBy};e.orderBy&&(t.orderGroupBy=e.orderBy);let n={spec:(0,U.duplicate)(e.spec),nest:[t]};return e.chooseBy&&(n.chooseBy=e.chooseBy),e.config&&(n.config=e.config),n}return(0,U.duplicate)(e)}function sa(e){return e.items!==void 0}function Vn(e){let t=e.items[0];for(;t&&sa(t);)t=t.items[0];return t}var Re=class{constructor(e){this.type=e,this.scoreIndex=this.initScore()}getFeatureScore(e){let t=this.type,n=this.scoreIndex[e];if(n!==void 0)return{type:t,feature:e,score:n}}},J;(function(e){e[e.Q=te]="Q",e[e.BIN_Q="bin_"+te]="BIN_Q",e[e.T=ye]="T",e[e.TIMEUNIT_T="timeUnit_time"]="TIMEUNIT_T",e[e.TIMEUNIT_O="timeUnit_"+Ce]="TIMEUNIT_O",e[e.O=Ce]="O",e[e.N=we]="N",e[e.K=le.KEY]="K",e[e.NONE="-"]="NONE"})(J||(J={}));const la=J.Q,Ut=J.BIN_Q,Kn=J.T,$e=J.TIMEUNIT_T,Ft=J.TIMEUNIT_O,Dt=J.O,_t=J.N,Jn=J.K,jt=J.NONE;function Pt(e){if(e.bin)return J.BIN_Q;if(e.timeUnit){let t=ke(e);return Ae(t)?J.TIMEUNIT_O:J.TIMEUNIT_T}return e.type}var Kc=class extends Re{constructor(){super("Axis")}initScore(e={}){e=Object.assign({},Ve,e);let t={};return[{feature:Ut,opt:"preferredBinAxis"},{feature:Kn,opt:"preferredTemporalAxis"},{feature:$e,opt:"preferredTemporalAxis"},{feature:Ft,opt:"preferredTemporalAxis"},{feature:Dt,opt:"preferredOrdinalAxis"},{feature:_t,opt:"preferredNominalAxis"}].forEach(n=>{e[n.opt]==="x"?t[n.feature+"_y"]=-.01:e[n.opt]==="y"&&(t[n.feature+"_x"]=-.01)}),t}featurize(e,t){return e+"_"+t}getScore(e,t,n){return e.getEncodings().reduce((i,a)=>{if(O(a)||P(a)){let r=Pt(a),s=this.featurize(r,a.channel),u=this.getFeatureScore(s);u&&i.push(u)}return i},[])}},Jc=class extends Re{constructor(){super("Dimension")}initScore(){return{row:-2,column:-2,color:0,opacity:0,size:0,shape:0}}getScore(e,t,n){return e.isAggregate()&&e.getEncodings().reduce((i,a)=>{if(P(a)||O(a)&&!a.aggregate){let r=this.getFeatureScore(a.channel+"");if(r&&r.score>i.score)return r}return i},{type:"Dimension",feature:"No Dimension",score:-5}),[]}},Xc=class extends Re{constructor(){super("Facet")}initScore(e){e=Object.assign({},Ve,e);let t={};return e.preferredFacet==="row"?t[Ne]=-.01:e.preferredFacet==="column"&&(t.row=-.01),t}getScore(e,t,n){return e.getEncodings().reduce((i,a)=>{if(O(a)||P(a)){let r=this.getFeatureScore(a.channel);r&&i.push(r)}return i},[])}},Zc=class extends Re{constructor(){super("SizeChannel")}initScore(){return{bar_size:-2,tick_size:-2}}getScore(e,t,n){let i=e.getMark();return e.getEncodings().reduce((a,r)=>{if(O(r)||P(r)){let s=i+"_"+r.channel,u=this.getFeatureScore(s);u&&a.push(u)}return a},[])}},eu=class extends Re{constructor(){super("TypeChannel")}initScore(){let e={},t={x:0,y:0,size:-.575,color:-.725,text:-2,opacity:-3,shape:-10,row:-10,column:-10,detail:-20};[la,Kn,$e].forEach(a=>{(0,U.keys)(t).forEach(r=>{e[this.featurize(a,r)]=t[r]})});let n=(0,U.extend)({},t,{row:-.75,column:-.75,shape:-3.1,text:-3.2,detail:-4});[Ut,Ft,Dt].forEach(a=>{(0,U.keys)(n).forEach(r=>{e[this.featurize(a,r)]=n[r]})});let i={x:0,y:0,color:-.6,shape:-.65,row:-.7,column:-.7,text:-.8,detail:-2,size:-3,opacity:-3.1};return(0,U.keys)(i).forEach(a=>{e[this.featurize(_t,a)]=i[a],e[this.featurize(Jn,a)]=K(["x","y","detail"],a)?-1:i[a]-2}),e}featurize(e,t){return e+"_"+t}getScore(e,t,n){let i=e.getEncodings().reduce((r,s)=>{if(O(s)||P(s)){let u=fi(s);(r[u]=r[u]||[]).push(s)}return r},{}),a=[];return z(i,r=>{let s=r.reduce((u,h)=>{if(O(h)||P(h)){let o=Pt(h),l=this.featurize(o,h.channel),c=this.getFeatureScore(l);if(u===null||c.score>u.score)return c}return u},null);a.push(s)}),a}},tu=class extends Re{constructor(){super("Mark")}initScore(){return nu()}getScore(e,t,n){let i=e.getMark();(i==="circle"||i==="square")&&(i=Ye);let a=e.getEncodingQueryByChannel("x"),r=a?Pt(a):jt,s=e.getEncodingQueryByChannel("y"),u=s?Pt(s):jt,h=!e.isAggregate(),o=r+"_"+u+"_"+h+"_"+i,l=this.getFeatureScore(o);return l?[l]:(console.error("feature score missing for",o),[])}};function $(e,t,n,i){return e+"_"+t+"_"+n+"_"+i}function nu(){let e=[la,Kn],t=[Ut,Ft,Dt,_t,Jn,jt],n={};e.forEach(i=>{e.forEach(a=>{z({point:0,text:-.2,tick:-.5,rect:-1,bar:-2,line:-2,area:-2,rule:-2.5},(r,s)=>{let u=$(i,a,!0,s);n[u]=r}),z({point:0,text:-.2,tick:-.5,bar:-2,line:-2,area:-2,rule:-2.5},(r,s)=>{let u=$(i,a,!1,s);n[u]=r})})}),e.forEach(i=>{t.forEach(a=>{z({tick:0,point:-.2,text:-.5,bar:-2,line:-2,area:-2,rule:-2.5},(r,s)=>{let u=$(i,a,!0,s);n[u]=r;let h=$(a,i,!0,s);n[h]=r})}),[$e].forEach(a=>{z({point:0,text:-.5,tick:-1,bar:-2,line:-2,area:-2,rule:-2.5},(r,s)=>{let u=$(i,a,!0,s);n[u]=r;let h=$(a,i,!0,s);n[h]=r})}),[jt,_t,Dt,Jn].forEach(a=>{z({bar:0,point:-.2,tick:-.25,text:-.3,line:-2,area:-2,rule:-2.5},(r,s)=>{let u=$(i,a,!1,s);n[u]=r;let h=$(a,i,!1,s);n[h]=r})}),[Ut].forEach(a=>{z({bar:0,point:-.2,tick:-.25,text:-.3,line:-.5,area:-.5,rule:-2.5},(r,s)=>{let u=$(i,a,!1,s);n[u]=r;let h=$(a,i,!1,s);n[h]=r})}),[$e,Ft].forEach(a=>{z({line:0,area:-.1,bar:-.2,point:-.3,tick:-.35,text:-.4,rule:-2.5},(r,s)=>{let u=$(i,a,!1,s);n[u]=r;let h=$(a,i,!1,s);n[h]=r})})}),[$e].forEach(i=>{[$e].forEach(a=>{let r={point:0,rect:-.1,text:-.5,tick:-1,bar:-2,line:-2,area:-2,rule:-2.5};z(r,(s,u)=>{let h=$(i,a,!0,u);n[h]=s}),z(r,(s,u)=>{let h=$(i,a,!1,u);n[h]=s})}),t.forEach(a=>{let r={tick:0,point:-.2,text:-.5,rect:-1,bar:-2,line:-2,area:-2,rule:-2.5};z(r,(s,u)=>{let h=$(i,a,!0,u);n[h]=s}),z(r,(s,u)=>{let h=$(a,i,!0,u);n[h]=s}),z(r,(s,u)=>{let h=$(i,a,!1,u);n[h]=s}),z(r,(s,u)=>{let h=$(a,i,!1,u);n[h]=s})})});for(let i of t)for(let a of t){let r={point:0,rect:0,text:-.1,tick:-1,bar:-2,line:-2,area:-2,rule:-2.5};z(r,(s,u)=>{let h=$(i,a,!0,u);n[h]=s}),z(r,(s,u)=>{let h=$(i,a,!1,u);n[h]=s})}return n}var ru=[new Kc,new Jc,new Xc,new tu,new Zc,new eu];function iu(e,t,n){let i=ru.reduce((a,r)=>{let s=r.getScore(e,t,n);return a.concat(s)},[]);return{score:i.reduce((a,r)=>a+r.score,0),features:i}}const xe="aggregationQuality";function au(e,t,n){let i=ou(e,t,n);return{score:i.score,features:[i]}}function ou(e,t,n){let i=e.getEncodings();if(e.isAggregate()){if(de(i,a=>O(a)&&(a.type==="quantitative"&&!a.bin&&!a.aggregate||a.type==="temporal"&&!a.timeUnit)))return{type:xe,score:.1,feature:"Aggregate with raw continuous"};if(de(i,a=>O(a)&&be(a))){let a=de(i,s=>O(s)&&s.aggregate==="count"||Tt(s)),r=de(i,s=>O(s)&&!!s.bin);return a?{type:xe,score:.8,feature:"Aggregate with count"}:r?{type:xe,score:.7,feature:"Aggregate with bin but without count"}:{type:xe,score:.9,feature:"Aggregate without count and without bin"}}return{type:xe,score:.3,feature:"Aggregate without dimension"}}else return de(i,a=>O(a)&&!be(a))?{type:xe,score:1,feature:"Raw with measure"}:{type:xe,score:.2,feature:"Raw without measure"}}function su(e,t,n){let i=e.wildcardIndex.encodingIndicesByProperty.get("field");if(!i)return{score:0,features:[]};let a=e.specQuery.encodings,r=t.fieldSchemas.length,s=[],u=0,h=1;for(let o=i.length-1;o>=0;o--){let l=i[o],c=a[l],p;if(O(c))p=c.field;else continue;let f=e.wildcardIndex.encodings[l].get("field"),d=t.fieldSchema(p).index,g=-d*h;u+=g,s.push({score:g,type:"fieldOrder",feature:`field ${f.name} is ${p} (#${d} in the schema)`}),h*=r}return{score:u,features:s}}var ca={};function Xn(e,t){ca[e]=t}function lu(e){return ca[e]}function ua(e,t,n,i){return!t.nest||i===t.nest.length?(t.orderBy||t.chooseBy)&&(e.items.sort(cu(t.orderBy||t.chooseBy,n,t.config)),t.chooseBy&&e.items.length>0&&e.items.splice(1)):(e.items.forEach(a=>{ua(a,t,n,i+1)}),t.nest[i].orderGroupBy&&e.items.sort(uu(t.nest[i].orderGroupBy,n,t.config))),e}function cu(e,t,n){return(i,a)=>e instanceof Array?Rt(e,i,a,t,n):Rt([e],i,a,t,n)}function uu(e,t,n){return(i,a)=>{let r=Vn(i),s=Vn(a);return e instanceof Array?Rt(e,r,s,t,n):Rt([e],r,s,t,n)}}function Rt(e,t,n,i,a){for(let r of e){let s=da(n,r,i,a).score-da(t,r,i,a).score;if(s!==0)return s}return 0}function da(e,t,n,i){if(e.getRankingScore(t)!==void 0)return e.getRankingScore(t);let a=lu(t)(e,n,i);return e.setRankingScore(t,a),a}Xn("effectiveness",iu),Xn(xe,au),Xn("fieldOrder",su);function du(e,t,n){let i={};return e=e.map(function(a){return n.smallRangeStepForHighCardinalityOrFacet&&(a=fu(a,t,i,n)),n.nominalColorScaleForHighCardinality&&(a=pu(a,t,i,n)),n.xAxisOnTopForHighYCardinalityWithoutColumn&&(a=hu(a,t,i,n)),a}),e}function fu(e,t,n,i){["row","y",Ne,"x"].forEach(s=>{n[s]=e.getEncodingQueryByChannel(s)});let a=n.y;if(a!==void 0&&O(a)&&(n.row||t.cardinality(a)>i.smallRangeStepForHighCardinalityOrFacet.maxCardinality)){a.scale===void 0&&(a.scale={});let s=ke(a);a.scale&&(s===void 0||Ae(s))&&(a.scale.rangeStep||(a.scale.rangeStep=12))}let r=n.x;if(O(r)&&(n.column||t.cardinality(r)>i.smallRangeStepForHighCardinalityOrFacet.maxCardinality)){r.scale===void 0&&(r.scale={});let s=ke(r);r.scale&&(s===void 0||Ae(s))&&(r.scale.rangeStep||(r.scale.rangeStep=12))}return e}function pu(e,t,n,i){n[ue]=e.getEncodingQueryByChannel(ue);let a=n[ue];return O(a)&&a!==void 0&&(a.type==="nominal"||a.type===le.KEY)&&t.cardinality(a)>i.nominalColorScaleForHighCardinality.maxCardinality&&(a.scale===void 0&&(a.scale={}),a.scale&&(a.scale.range||(a.scale.scheme=i.nominalColorScaleForHighCardinality.palette))),e}function hu(e,t,n,i){if([Ne,"x","y"].forEach(a=>{n[a]=e.getEncodingQueryByChannel(a)}),n.column===void 0){let a=n.x,r=n.y;O(a)&&O(r)&&r!==void 0&&r.field&&Ae(ke(r))&&a!==void 0&&t.cardinality(r)>i.xAxisOnTopForHighYCardinalityWithoutColumn.maxCardinality&&(a.axis===void 0&&(a.axis={}),a.axis&&!a.axis.orient&&(a.axis.orient="top"))}return e}function mu(e,t,n=Ve){let i=Qc.build(e,t,n),a=i.wildcardIndex,r=[i];return n.propertyPrecedence.forEach(s=>{let u=sl(s);if(a.hasProperty(u)){let h=$c(u)(a,t,n);r=r.reduce(h,[])}}),n.stylize&&(n.nominalColorScaleForHighCardinality!==null||n.smallRangeStepForHighCardinalityOrFacet!==null||n.xAxisOnTopForHighYCardinalityWithoutColumn!==null)?du(r,t,n):r}function fa(e,t,n){e=Object.assign({},Vc(e),{config:Object.assign({},Ve,n,e.config)});let i=mu(e.spec,t,e.config),a=qc(i,e.nest),r=ua(a,e,t,0);return{query:e,result:r}}var Zn=H(Oa()),E=H(ka());const Be={[R.BOOLEAN]:(0,E.jsx)($a,{className:"h-5 w-5 inline-flex opacity-60"}),[R.DATETIME]:(0,E.jsx)(Ra,{className:"h-5 w-5 inline-flex opacity-60"}),[R.NUMBER]:(0,E.jsx)(Ba,{className:"h-5 w-5 inline-flex opacity-60"}),[R.STRING]:(0,E.jsx)(La,{className:"h-5 w-5 inline-flex opacity-60"}),[R.INTEGER]:(0,E.jsx)(no,{className:"h-5 w-5 inline-flex opacity-60"})};var pa=12;const gu=e=>{let t=(0,hr.c)(45),{schema:n}=e,[i,a]=(0,Zn.useState)(),[r,s]=(0,Zn.useState)(),u,h,o,l,c,p,f,d;if(t[0]!==n||t[1]!==i||t[2]!==r){u=n.fieldNames();let k;t[11]!==n||t[12]!==i?(k=i?n.stats({field:i,channel:"x"}):void 0,t[11]=n,t[12]=i,t[13]=k):k=t[13],o=k;let M;t[14]===Symbol.for("react.memo_cache_sentinel")?(M=(0,E.jsx)(to,{className:"text-muted-foreground",width:40,height:40,strokeWidth:1.5}),t[14]=M):M=t[14];let _=M,Ee=r?u:u.slice(0,pa);h=u.length>pa,p="flex flex-col justify-center items-center h-full flex-1 gap-2",f=_,d=(0,E.jsxs)("span",{className:"text-muted-foreground font-semibold",children:[u.length>0?u.length:"No"," fields"]}),l="hidden lg:grid grid-cols-2 xl:grid-cols-3 gap-2 p-2 bg-(--slate-1) border rounded lg:items-center items-start w-fit grid-flow-dense max-h-[300px] overflow-auto";let X;t[15]!==n||t[16]!==i?(X=W=>{let pe=n.cardinality({channel:"x",field:W});return(0,E.jsxs)("span",{className:_a("hover:bg-muted self-start px-2 py-2 rounded flex flex-row gap-1 items-center cursor-pointer lg:justify-center text-sm truncate shrink-0 overflow-hidden",i===W&&"bg-muted"),onClick:()=>{if(i===W){a(void 0);return}a(W)},children:[Be[n.primitiveType(W)],W,pe>1&&(0,E.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",pe,")"]})]},W)},t[15]=n,t[16]=i,t[17]=X):X=t[17],c=Ee.map(X),t[0]=n,t[1]=i,t[2]=r,t[3]=u,t[4]=h,t[5]=o,t[6]=l,t[7]=c,t[8]=p,t[9]=f,t[10]=d}else u=t[3],h=t[4],o=t[5],l=t[6],c=t[7],p=t[8],f=t[9],d=t[10];let g;t[18]!==h||t[19]!==r?(g=h&&(0,E.jsx)(lr,{"data-testid":"marimo-plugin-data-explorer-show-more-columns",variant:"link",size:"sm",className:"self-center col-span-3 -mt-1",onClick:()=>s(bu),children:r?"Show less":"Show more"}),t[18]=h,t[19]=r,t[20]=g):g=t[20];let y;t[21]!==l||t[22]!==c||t[23]!==g?(y=(0,E.jsxs)("div",{className:l,children:[c,g]}),t[21]=l,t[22]=c,t[23]=g,t[24]=y):y=t[24];let v=i||"",b=u.length===0,x;t[25]===Symbol.for("react.memo_cache_sentinel")?(x=k=>{a(k)},t[25]=x):x=t[25];let S;t[26]===Symbol.for("react.memo_cache_sentinel")?(S=(0,E.jsx)(et,{className:"min-w-[210px] h-full",children:(0,E.jsx)(dr,{placeholder:"Select a column"})}),t[26]=S):S=t[26];let C;t[27]===n?C=t[28]:(C=n.fieldNames().map(k=>(0,E.jsx)(Se,{value:k.toString(),children:(0,E.jsxs)("span",{className:"flex items-center gap-2 flex-1",children:[Be[n.primitiveType(k)],(0,E.jsx)("span",{className:"flex-1",children:k}),(0,E.jsxs)("span",{className:"text-muted-foreground text-xs font-semibold",children:["(",n.vlType(k),")"]})]})},k)),t[27]=n,t[28]=C);let T;t[29]===C?T=t[30]:(T=(0,E.jsx)(Ze,{children:(0,E.jsx)(We,{children:C})}),t[29]=C,t[30]=T);let w;t[31]!==T||t[32]!==v||t[33]!==b?(w=(0,E.jsx)("div",{className:"lg:hidden",children:(0,E.jsxs)(tt,{"data-testid":"marimo-plugin-data-explorer-column-select",value:v,disabled:b,onValueChange:x,children:[S,T]})}),t[31]=T,t[32]=v,t[33]=b,t[34]=w):w=t[34];let N;t[35]!==i||t[36]!==o?(N=i&&(0,E.jsx)("div",{className:"grid grid-cols-1 lg:grid-cols-2 xl:grid-cols-3 gap-2 p-2 text-sm",children:yu.map(k=>(0,E.jsxs)("div",{className:"flex flex-row gap-2 min-w-[100px]",children:[(0,E.jsx)("span",{className:"font-semibold",children:k}),(0,E.jsx)("span",{children:(0,E.jsx)(vu,{value:o==null?void 0:o[k]})})]},k))}),t[35]=i,t[36]=o,t[37]=N):N=t[37];let D;return t[38]!==w||t[39]!==N||t[40]!==p||t[41]!==f||t[42]!==d||t[43]!==y?(D=(0,E.jsxs)("div",{className:p,children:[f,d,y,w,N]}),t[38]=w,t[39]=N,t[40]=p,t[41]=f,t[42]=d,t[43]=y,t[44]=D):D=t[44],D};var yu=["distinct","min","max","mean","median","q1","q3","stdev"],vu=e=>{let t=(0,hr.c)(8),{value:n}=e,i;t[0]===Symbol.for("react.memo_cache_sentinel")?(i={maximumFractionDigits:2},t[0]=i):i=t[0];let a=Ya(i),r;t[1]===Symbol.for("react.memo_cache_sentinel")?(r={year:"numeric",month:"short",day:"numeric"},t[1]=r):r=t[1];let s=Qa(r);if(typeof n=="number"){let u;return t[2]!==a||t[3]!==n?(u=a.format(n),t[2]=a,t[3]=n,t[4]=u):u=t[4],u}if(typeof n=="string")return n;if(typeof n=="object"&&n instanceof Date){let u;return t[5]!==s||t[6]!==n?(u=s.format(n),t[5]=s,t[6]=n,t[7]=u):u=t[7],u}return String(n)};function bu(e){return!e}function xu(e){return e?e==="bin"?{bin:!0}:Va(e)?{aggregate:e}:Eu(e)?{timeUnit:e}:{}:{}}function Eu(e){return e?ha.includes(e)||ma.includes(e):!1}const Tu=["bin","min","max","mean","median","sum"],ha=["year","month","date","day","hours","minutes","seconds","milliseconds"],ma=["yearmonth","yearmonthdate","monthdate"];function Su(e){let{aggregate:t,bin:n,timeUnit:i}=e;if(n)return"bin";if(t)return t.toString();if(i)return i.toString()}const Nu=["?","area","bar","circle","geoshape","line","point","rect","rule","square","text","tick","trail"],Cu={type:"histograms",limit:12,createQuery(e){return{spec:{data:e.spec.data,mark:"?",transform:e.spec.transform,encodings:[{channel:"?",bin:"?",timeUnit:"?",field:"?",type:"?"},{channel:"?",aggregate:"count",field:"*",type:"quantitative"}]},groupBy:"fieldTransform",orderBy:["fieldOrder","aggregationQuality","effectiveness"],chooseBy:["aggregationQuality","effectiveness"],config:{autoAddCount:!1}}}};function ga(e){let t={};for(let n in e)e[n]!==void 0&&(t[n]=e[n]);return t}function wu(e,t){let{fn:n,...i}=e;return{channel:t,...xu(n),...i}}function Au(e){let{aggregate:t,bin:n,timeUnit:i,field:a,scale:r,legend:s,axis:u,sort:h,description:o}=e,{type:l}=e;if(A(l))throw Error("Wildcard not support");l==="ordinal"&&(Fa.warn("Ordinal type is not supported. Using nominal type instead."),l="nominal");let c=Su({aggregate:t,bin:n,timeUnit:i});return Ia(a!==void 0,"Field is required for fieldQ"),ga({field:a,fn:c,type:l,sort:h,scale:r,axis:u,legend:s,description:o})}function Ou(e){return{mark:e.mark,encodings:ku(e.encoding),config:e.config}}function ku(e){return e?Object.entries(e).map(([t,n])=>wu(n,t)):[]}function er(e){let{type:t,limit:n,additionalFieldQuery:i}=e;return{type:t,limit:n,createQuery(a){return{spec:{...a.spec,encodings:[...a.spec.encodings,i]},groupBy:"field",orderBy:["fieldOrder","aggregationQuality","effectiveness"],chooseBy:["aggregationQuality","effectiveness"],config:{autoAddCount:!0}}}}}const Mu=er({type:"addCategoricalField",limit:4,additionalFieldQuery:{channel:"?",field:"?",type:"nominal"}}),Iu=er({type:"addQuantitativeField",limit:4,additionalFieldQuery:{channel:"?",bin:"?",aggregate:"?",field:"?",type:"quantitative"}}),Uu=er({type:"addTemporalField",limit:2,additionalFieldQuery:{channel:"?",hasFn:!0,timeUnit:"?",field:"?",type:"temporal"}});function Fu(e){return!va(e).hasAnyWildcard}function Du(e){let t=["x","y","color"],n=["row","column"],i=new Set(e.encodings.map(s=>s.channel)),a=t.every(s=>i.has(s)),r=n.some(s=>i.has(s));return a&&r}function ya(e){return e.encodings.length===0}function va(e){let t=!1,n=!1,i=!1;for(let a of e.encodings)ie(a)||(P(a)?A(a.autoCount)&&(n=!0):(A(a.field)&&(t=!0),(A(a.aggregate)||A(a.bin)||A(a.timeUnit))&&(n=!0),A(a.channel)&&(i=!0)));return{hasAnyWildcard:i||t||n,hasWildcardField:t,hasWildcardFn:n,hasWildcardChannel:i}}var ba={name:"source"};function _u(e){let t=!1,n=!1,i=!1;return e.encodings.forEach(a=>{a.channel==="x"||a.channel==="y"?t=!0:a.channel==="row"||a.channel==="column"?i=!0:typeof a.channel=="string"&&Ja(Ka,a.channel)&&(n=!0)}),{hasOpenPosition:t,hasStyleChannel:n,hasOpenFacet:i}}function ju(e,t){let n={},{hasOpenPosition:i,hasStyleChannel:a,hasOpenFacet:r}=_u(e.spec);return(i||a)&&(n.addQuantitativeField=$t(Iu,e,t)),(i||a||r)&&(n.addCategoricalField=$t(Mu,e,t)),i&&(n.addTemporalField=$t(Uu,e,t)),n}function tr(e,t){if(ya(e.spec))return{plots:[],query:e,limit:1};let n=fa(e,t).result;return{plots:[xa(n,ba)[0]],query:e,limit:1}}function $t(e,t,n){let i=e.createQuery(t),a=fa(i,n).result;return{plots:xa(a,ba),query:i,limit:e.limit}}function xa(e,t){return e.items.map(n=>sa(n)?Ea(t,Vn(n)):Ea(t,n))}function Ea(e,t){return{fieldInfos:t.getEncodings().filter(O).map(n=>({fieldDef:Au(n),channel:n.channel})),spec:t.toSpec(e)}}function Pu(e){let{spec:t,autoAddCount:n}=e,i=Ou(t),{hasAnyWildcard:a,hasWildcardFn:r,hasWildcardField:s}=va(i),u=Ru({hasWildcardFn:r,hasWildcardField:s});return{spec:i,groupBy:u,orderBy:["fieldOrder","aggregationQuality","effectiveness"],chooseBy:["aggregationQuality","effectiveness"],config:a?{autoAddCount:n}:void 0}}function Ru(e){let{hasWildcardFn:t,hasWildcardField:n}=e;return t?"fieldTransform":n?"field":"encoding"}function $u(){return{mark:"?",encoding:{},config:{},schema:null}}var{valueAtom:Le,useActions:Bu}=ja($u,{setSchema:(e,t)=>({...e,schema:t}),setMark:(e,t)=>({...e,mark:t}),setEncoding:(e,t)=>{let n=ga({...e.encoding,...t});return{...e,encoding:n}},set:(e,t)=>{let{schema:n,...i}=t;return{...e,...i}}});function Ta(){return Bu()}const Lu=Ca(e=>{let t=e(Le);if(!t.schema)return{};let n=Pu({spec:t,autoAddCount:!0});return ya(n.spec)?{main:tr(n,t.schema),histograms:$t(Cu,n,t.schema)}:Fu(n.spec)&&!Du(n.spec)?{main:tr(n,t.schema),...ju(n,t.schema)}:{main:tr(n,t.schema)}});var nr=H(Wt()),Wu=["x","y","row","column"],qu=["color","size","shape"];const Hu=e=>{let t=(0,nr.c)(26),{schema:n,mark:i}=e,a=Lt(Le),r=Ta(),s=a.encoding.x&&a.encoding.y,u;t[0]!==r||t[1]!==s||t[2]!==n||t[3]!==a.encoding?(u=C=>(0,E.jsx)(Gu,{schema:n,label:C,disabled:(C==="row"||C==="column")&&!s,fieldDefinition:a.encoding[C],onChange:T=>r.setEncoding({[C]:T})},C),t[0]=r,t[1]=s,t[2]=n,t[3]=a.encoding,t[4]=u):u=t[4];let h=u,o;t[5]===i?o=t[6]:(o=i.toString(),t[5]=i,t[6]=o);let l;t[7]===r?l=t[8]:(l=C=>r.setMark(C),t[7]=r,t[8]=l);let c;t[9]===Symbol.for("react.memo_cache_sentinel")?(c=(0,E.jsx)(et,{children:(0,E.jsx)(dr,{placeholder:"Mark"})}),t[9]=c):c=t[9];let p;t[10]===Symbol.for("react.memo_cache_sentinel")?(p=(0,E.jsx)(Ze,{children:(0,E.jsxs)(We,{children:[(0,E.jsx)(ur,{children:"Mark"}),Nu.map(Yu)]})}),t[10]=p):p=t[10];let f;t[11]!==o||t[12]!==l?(f=(0,E.jsxs)(tt,{"data-testid":"marimo-plugin-data-explorer-mark-select",value:o,onValueChange:l,children:[c,p]}),t[11]=o,t[12]=l,t[13]=f):f=t[13];let d=f,g;t[14]===Symbol.for("react.memo_cache_sentinel")?(g=(0,E.jsx)("span",{className:"col-span-2 flex items-center justify-between w-full",children:(0,E.jsx)("div",{className:"text-sm font-semibold",children:"Encodings"})}),t[14]=g):g=t[14];let y;t[15]===h?y=t[16]:(y=Wu.map(h),t[15]=h,t[16]=y);let v;t[17]===Symbol.for("react.memo_cache_sentinel")?(v=(0,E.jsx)("div",{children:"Mark"}),t[17]=v):v=t[17];let b;t[18]===d?b=t[19]:(b=(0,E.jsxs)("span",{className:"col-span-2 text-sm font-semibold w-full border-t border-divider flex items-center justify-between pt-2 pr-[30px]",children:[v,d]}),t[18]=d,t[19]=b);let x;t[20]===h?x=t[21]:(x=qu.map(h),t[20]=h,t[21]=x);let S;return t[22]!==b||t[23]!==x||t[24]!==y?(S=(0,E.jsxs)("div",{className:"grid gap-x-2 gap-y-4 justify-items-start py-3 pl-4 pr-2 bg-(--slate-1) border rounded items-center grid-template-columns-[repeat(2,_minmax(0,_min-content))] self-start",children:[g,y,b,x]}),t[22]=b,t[23]=x,t[24]=y,t[25]=S):S=t[25],S};var Gu=e=>{let t=(0,nr.c)(43),{label:n,schema:i,fieldDefinition:a,disabled:r,onChange:s}=e,u;t[0]!==a||t[1]!==i?(u=()=>{if(!a)return"--";if(a.field==="*")return(0,E.jsxs)("span",{className:"flex gap-2 flex-1",children:[Be[R.NUMBER],(0,E.jsx)("span",{className:"text-left flex-1",children:"Count"})]});let _=a.field.toString();return(0,E.jsxs)("span",{className:"flex gap-2 flex-1",children:[Be[i.primitiveType(_)],(0,E.jsx)("span",{className:"text-left flex-1",children:a.fn?`${a.fn}(${a.field})`:_})]})},t[0]=a,t[1]=i,t[2]=u):u=t[2];let h=u,o;t[3]===s?o=t[4]:(o=()=>{s(void 0)},t[3]=s,t[4]=o);let l=o,c;t[5]===(a==null?void 0:a.field)?c=t[6]:(c=(a==null?void 0:a.field.toString())??"",t[5]=a==null?void 0:a.field,t[6]=c);let p=c,f;t[7]===n?f=t[8]:(f=(0,E.jsx)(eo,{className:"text-(--slate-11) font-semibold",children:n}),t[7]=n,t[8]=f);let d;t[9]!==s||t[10]!==i?(d=_=>{s(_==="*"?{field:"*",fn:"count",type:"quantitative"}:{field:_,type:i.vlType(_)})},t[9]=s,t[10]=i,t[11]=d):d=t[11];let g=p?l:void 0,y;t[12]===h?y=t[13]:(y=h(),t[12]=h,t[13]=y);let v;t[14]!==g||t[15]!==y?(v=(0,E.jsx)(et,{className:"min-w-[140px] lg:min-w-[210px] h-full",onClear:g,children:y}),t[14]=g,t[15]=y,t[16]=v):v=t[16];let b;t[17]===i?b=t[18]:(b=i.fieldNames().map(_=>(0,E.jsx)(Se,{value:_.toString(),children:(0,E.jsxs)("span",{className:"flex items-center gap-2 flex-1",children:[Be[i.primitiveType(_)],(0,E.jsx)("span",{className:"flex-1",children:_}),(0,E.jsxs)("span",{className:"text-muted-foreground text-xs font-semibold",children:["(",i.vlType(_),")"]})]})},_)),t[17]=i,t[18]=b);let x;t[19]===i?x=t[20]:(x=i.fieldNames().length===0&&(0,E.jsx)(Se,{disabled:!0,value:"--",children:"No columns"}),t[19]=i,t[20]=x);let S;t[21]===Symbol.for("react.memo_cache_sentinel")?(S=(0,E.jsx)(fr,{}),t[21]=S):S=t[21];let C;t[22]===Symbol.for("react.memo_cache_sentinel")?(C=(0,E.jsx)(Se,{value:"*",children:(0,E.jsxs)("span",{className:"flex items-center gap-1 flex-1",children:[Be[R.NUMBER],(0,E.jsx)("span",{className:"flex-1",children:"Count"})]})},"*"),t[22]=C):C=t[22];let T;t[23]!==x||t[24]!==b?(T=(0,E.jsx)(Ze,{children:(0,E.jsxs)(We,{children:[b,x,S,C]})}),t[23]=x,t[24]=b,t[25]=T):T=t[25];let w;t[26]!==r||t[27]!==p||t[28]!==T||t[29]!==d||t[30]!==v?(w=(0,E.jsxs)(tt,{value:p,disabled:r,onValueChange:d,children:[v,T]}),t[26]=r,t[27]=p,t[28]=T,t[29]=d,t[30]=v,t[31]=w):w=t[31];let N;t[32]!==a||t[33]!==s?(N=a&&(0,E.jsx)(zu,{field:a,onChange:s}),t[32]=a,t[33]=s,t[34]=N):N=t[34];let D;t[35]===N?D=t[36]:(D=(0,E.jsx)("div",{className:"w-[26px]",children:N}),t[35]=N,t[36]=D);let k;t[37]!==w||t[38]!==D?(k=(0,E.jsxs)("div",{className:"flex flex-row gap-1 h-[26px]",children:[w,D]}),t[37]=w,t[38]=D,t[39]=k):k=t[39];let M;return t[40]!==k||t[41]!==f?(M=(0,E.jsxs)(E.Fragment,{children:[f,k]}),t[40]=k,t[41]=f,t[42]=M):M=t[42],M},rr="__",zu=e=>{let t=(0,nr.c)(10),{field:n,onChange:i}=e;if(n.field==="*")return null;let a;if(t[0]!==n||t[1]!==i){a=Symbol.for("react.early_return_sentinel");e:{let r=[];if(n.type===le.QUANTITATIVE&&(r=[["",Tu]]),n.type===le.TEMPORAL&&(r=[["Single",ha],["Multi",ma]]),r.length>0){let s=p=>{i({...n,fn:p===rr?void 0:p})},u;t[3]===Symbol.for("react.memo_cache_sentinel")?(u=(0,E.jsx)(et,{className:"h-full px-1",hideChevron:!0,variant:"ghost",children:(0,E.jsx)(qa,{size:14,strokeWidth:1.5})}),t[3]=u):u=t[3];let h,o;t[4]===Symbol.for("react.memo_cache_sentinel")?(h=(0,E.jsx)(We,{children:(0,E.jsx)(Se,{value:rr,children:"None"})}),o=(0,E.jsx)(fr,{}),t[4]=h,t[5]=o):(h=t[4],o=t[5]);let l=(0,E.jsxs)(Ze,{children:[h,o,r.map(Vu)]}),c;t[6]!==n.fn||t[7]!==s||t[8]!==l?(c=(0,E.jsxs)(tt,{"data-testid":"marimo-plugin-data-explorer-field-options",value:n.fn,onValueChange:s,children:[u,l]}),t[6]=n.fn,t[7]=s,t[8]=l,t[9]=c):c=t[9],a=c;break e}}t[0]=n,t[1]=i,t[2]=a}else a=t[2];return a===Symbol.for("react.early_return_sentinel")?null:a};function Yu(e){return(0,E.jsx)(Se,{value:e,children:e==="?"?"auto":e},e)}function Qu(e){return(0,E.jsx)(Se,{value:e??rr,children:Ma(e)},e)}function Vu(e){let[t,n]=e;return(0,E.jsxs)(We,{children:[t&&(0,E.jsx)(ur,{children:t}),n.map(Qu)]},t)}var Bt=H(Wt()),Ku=e=>{let t=(0,Bt.c)(5),n;t[0]===Symbol.for("react.memo_cache_sentinel")?(n=wa(),t[0]=n):n=t[0];let i=n,a;t[1]===e?a=t[2]:(a=()=>{let s=i.sub(Le,()=>{let{schema:h,...o}=i.get(Le);e.setValue(o)}),u=e.value;return u&&Object.keys(u).length>0&&i.set(Le,u),s},t[1]=e,t[2]=a),za(a);let r;return t[3]===e?r=t[4]:(r=(0,E.jsx)(Aa,{store:i,children:(0,E.jsx)(Sa,{...e})}),t[3]=e,t[4]=r),r},Ju={export:{svg:!0,png:!0},source:!1,compiled:!1,editor:!1},Xu={left:20,right:20,top:20,bottom:20},Zu=Ku;const Sa=e=>{var Ee,X,W,pe,Te,he;let t=(0,Bt.c)(43),{data:n}=e,i=Ta(),a;t[0]!==i||t[1]!==n?(a=async()=>{if(!n)return{};let I=await Ua(n,{type:"csv",parse:"auto"},{replacePeriod:!0}),Z=Mc(I);return i.setSchema(Z),{chartData:I,schema:Z}},t[0]=i,t[1]=n,t[2]=a):a=t[2];let r;t[3]===n?r=t[4]:(r=[n],t[3]=n,t[4]=r);let{data:s,isPending:u,error:h}=Xa(a,r),{mark:o}=Lt(Le),l=Lt(Lu),{theme:c}=Pa();if(h){let I;return t[5]===h?I=t[6]:(I=(0,E.jsx)(Za,{error:h}),t[5]=h,t[6]=I),I}if(!s){let I;return t[7]===Symbol.for("react.memo_cache_sentinel")?(I=(0,E.jsx)("div",{}),t[7]=I):I=t[7],I}let{chartData:p,schema:f}=s;if(u||!f){let I;return t[8]===Symbol.for("react.memo_cache_sentinel")?(I=(0,E.jsx)("div",{}),t[8]=I):I=t[8],I}let d=(X=(Ee=l.main)==null?void 0:Ee.plots)==null?void 0:X[0],g;t[9]===(d==null?void 0:d.fieldInfos)?g=t[10]:(g=new Set(d==null?void 0:d.fieldInfos.map(rd)),t[9]=d==null?void 0:d.fieldInfos,t[10]=g);let y=g,v;t[11]!==p||t[12]!==d||t[13]!==f||t[14]!==c?(v=()=>d?(0,E.jsx)("div",{className:"flex overflow-y-auto justify-center items-center flex-1 w-[90%]",children:(0,E.jsx)(pr,{data:{source:p},padding:Xu,actions:Ju,spec:nd(d.spec),theme:c==="dark"?"dark":void 0})}):(0,E.jsx)(gu,{schema:f}),t[11]=p,t[12]=d,t[13]=f,t[14]=c,t[15]=v):v=t[15];let b=v,x;t[16]!==o||t[17]!==f?(x=(0,E.jsx)(Hu,{mark:o,schema:f}),t[16]=o,t[17]=f,t[18]=x):x=t[18];let S;t[19]===b?S=t[20]:(S=b(),t[19]=b,t[20]=S);let C;t[21]!==x||t[22]!==S?(C=(0,E.jsxs)("div",{className:"flex items-center gap-2",children:[x,S]}),t[21]=x,t[22]=S,t[23]=C):C=t[23];let T=(W=l.histograms)==null?void 0:W.plots,w=(pe=l.addCategoricalField)==null?void 0:pe.plots,N=(Te=l.addQuantitativeField)==null?void 0:Te.plots,D=(he=l.addTemporalField)==null?void 0:he.plots,k;if(t[24]!==i||t[25]!==p||t[26]!==y||t[27]!==N||t[28]!==D||t[29]!==T||t[30]!==w||t[31]!==c){let I;t[33]!==i||t[34]!==p||t[35]!==y||t[36]!==c?(I=(Z,Xe)=>(0,E.jsx)(td,{title:(0,E.jsx)("div",{className:"flex flex-row gap-1",children:Z.fieldInfos.map(me=>{let or=me.fieldDef.field==="*"?"Count":me.fieldDef.fn?`${me.fieldDef.fn}(${me.fieldDef.field})`:me.fieldDef.field.toString();return(0,E.jsx)(Ha,{variant:y.has(me.fieldDef.field)?"secondary":"defaultOutline",children:or},or)})}),actions:(0,E.jsx)(Ga,{content:"Make main plot",children:(0,E.jsx)(lr,{"data-testid":"marimo-plugin-data-explorer-make-main-plot",variant:"text",size:"icon",onClick:()=>{let me=Da.fromEntries(Z.fieldInfos.map(id));i.setEncoding(me)},children:(0,E.jsx)(Wa,{className:"w-4 h-4"})})}),children:(0,E.jsx)(pr,{data:{source:p},actions:!1,spec:Z.spec,theme:c==="dark"?"dark":void 0},Xe)},Xe),t[33]=i,t[34]=p,t[35]=y,t[36]=c,t[37]=I):I=t[37],k=[T,w,N,D].filter(Boolean).flat().map(I),t[24]=i,t[25]=p,t[26]=y,t[27]=N,t[28]=D,t[29]=T,t[30]=w,t[31]=c,t[32]=k}else k=t[32];let M;t[38]===k?M=t[39]:(M=(0,E.jsx)(ed,{children:k}),t[38]=k,t[39]=M);let _;return t[40]!==M||t[41]!==C?(_=(0,E.jsxs)("div",{className:"flex flex-col gap-2",children:[C,M]}),t[40]=M,t[41]=C,t[42]=_):_=t[42],_};var ed=e=>{let t=(0,Bt.c)(2),{children:n}=e;if(Zn.Children.count(n)===0)return null;let i;return t[0]===n?i=t[1]:(i=(0,E.jsx)("div",{className:"flex flex-row overflow-x-auto overflow-y-hidden gap-4 snap-x pb-4",children:n}),t[0]=n,t[1]=i),i},td=e=>{let t=(0,Bt.c)(10),{title:n,children:i,actions:a}=e,r;t[0]===n?r=t[1]:(r=(0,E.jsx)("div",{className:"text-sm font-medium",children:n}),t[0]=n,t[1]=r);let s;t[2]!==a||t[3]!==r?(s=(0,E.jsxs)("div",{className:"flex flex-row justify-between items-center bg-(--slate-3) py-0.5 px-2",children:[r,a]}),t[2]=a,t[3]=r,t[4]=s):s=t[4];let u;t[5]===i?u=t[6]:(u=(0,E.jsx)("div",{className:"px-6 pt-2 max-h-[280px] overflow-y-auto",children:i}),t[5]=i,t[6]=u);let h;return t[7]!==s||t[8]!==u?(h=(0,E.jsxs)("div",{className:"shrink-0 bg-card shadow-md border overflow-hidden rounded snap-start",children:[s,u]}),t[7]=s,t[8]=u,t[9]=h):h=t[9],h};function nd(e){var t,n;return(t=e.encoding)!=null&&t.row||(n=e.encoding)!=null&&n.column||(e.width="container"),e}function rd(e){return e.fieldDef.field}function id(e){return[e.channel,e.fieldDef]}export{Sa as DataExplorerComponent,Zu as default};
1
+ import{a as Na,n as q,r as sr,s as H,t as ce}from"./chunk-DZLz74EQ.js";import{o as Ca,r as Lt,s as wa,t as Aa}from"./react-7g8sREeT.js";import{t as Oa}from"./react-BcIddLXZ.js";import"./react-dom-D6bRRS5R.js";import"./zod-BEi78Y5d.js";import{n as Wt,t as ka}from"./jsx-runtime-DvsdsEjx.js";import"./_Uint8Array-CPNtPV0k.js";import"./isSymbol-D1Vf4s0g.js";import"./_arrayMap-DQI2GUNb.js";import"./toString-pPvo2488.js";import"./isArrayLikeObject-CQy5-FN4.js";import"./_getTag-C4fv2peH.js";import"./_baseIsEqual-Cdnsi4t8.js";import"./merge-DrdmtLTL.js";import"./_baseSlice-B27Cqkm6.js";import"./upperFirst-CVedXayx.js";import"./_hasUnicode-CPHpt5EV.js";import"./_arrayReduce-DDpPg0Qh.js";import{t as Ma}from"./startCase-D58-CT5H.js";import{t as Ia}from"./invariant-91cSKJcr.js";import{n as Ua}from"./loader-CgbiPC_T.js";import{t as Fa}from"./Logger-BkkOJyg0.js";import{a as Da}from"./hotkeys-CBY41Jr2.js";import"./utils-DBmmAf_K.js";import"./dist-CLazWf1X.js";import{t as _a}from"./cn-Dr9kMPPj.js";import"./dist-D-dnh2ed.js";import"./useEventListener-g9rPKvBX.js";import"./events-BGfCi1Xy.js";import{t as lr}from"./button-Bxk0BtBn.js";import{t as ja}from"./createReducer-CFr1RdS2.js";import{r as Pa}from"./useTheme-oPMxEKRc.js";import{t as cr}from"./createLucideIcon-QLW8E4z5.js";import{i as Ra,n as $a,r as Ba,t as La}from"./type-kF6pOJbH.js";import"./check-C5PVLNkJ.js";import{a as ur,c as dr,i as Se,n as Ze,o as fr,r as We,s as et,t as tt}from"./select-DKRTzlUU.js";import{t as Wa}from"./list-filter-CRC72QPW.js";import{t as qa}from"./square-function-DBJINsmk.js";import{t as Ha}from"./badge-DJuT6BaT.js";import"./namespace-CnoeT75h.js";import{t as Ga}from"./tooltip-ULHbIsj9.js";import{t as za}from"./useLifecycle-BfeAlD80.js";import"./menu-items-Bo6Dyd_Q.js";import"./fullscreen-DTPr3iBY.js";import"./tslib.es6-dlz5WbC8.js";import"./alert-dialog-BO8sf-73.js";import{t as Ya}from"./useNumberFormatter-D21brJ0f.js";import{t as Qa}from"./useDateFormatter-DrFLqO1D.js";import"./useEvent-BOb1a9d1.js";import"./errors-_3XAtRr3.js";import"./vega-loader.browser.module-BkWiTok0.js";import"./precisionRound-TxjBk8nN.js";import"./linear-nWRf49aw.js";import{a as Va,o as Ka,s as Ja}from"./src-KuQao6GK.js";import"./ordinal-CHS6rGcb.js";import"./time-BkIHCvH2.js";import"./range-BPiwmiGf.js";import"./defaultLocale-DPsgYaXf.js";import"./defaultLocale-C6TNIE_k.js";import"./prop-types-CHKlDUlJ.js";import{n as Xa}from"./useAsyncData-D9GA9BWg.js";import{n as Za}from"./error-banner-BGjnZePp.js";import{t as eo}from"./label-BEUjZsdo.js";import"./fast-deep-equal-BdzBWnNx.js";import"./timer-m_pEB4Lb.js";import"./path-Gc-fQZTe.js";import"./math-BsaXoFIn.js";import"./arc-De5rudRM.js";import"./array-DZFD9yN1.js";import"./step-aJ-oEw6-.js";import"./line-1VYCafWO.js";import"./init-BEfLCoUT.js";import"./colors-BlRVeShK.js";import"./treemap-CMOdyZ8L.js";import{n as pr}from"./esm-BBn_y9Ew.js";var to=cr("chart-column-big",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["rect",{x:"15",y:"5",width:"4",height:"12",rx:"1",key:"q8uenq"}],["rect",{x:"7",y:"8",width:"4",height:"9",rx:"1",key:"sr5ea"}]]),no=cr("list-ordered",[["path",{d:"M10 12h11",key:"6m4ad9"}],["path",{d:"M10 18h11",key:"11hvi2"}],["path",{d:"M10 6h11",key:"c7qv1k"}],["path",{d:"M4 10h2",key:"16xx2s"}],["path",{d:"M4 6h1v4",key:"cnovpq"}],["path",{d:"M6 18H4c0-1 2-2 2-3s-1-1.5-2-1",key:"m9a95d"}]]),hr=H(Wt());function Ue(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,i=Object.getOwnPropertySymbols(e);a<i.length;a++)t.indexOf(i[a])<0&&Object.prototype.propertyIsEnumerable.call(e,i[a])&&(n[i[a]]=e[i[a]]);return n}var ro=ce(((e,t)=>{var n=(function(){function i(f,d){return d!=null&&f instanceof d}var a;try{a=Map}catch{a=function(){}}var r;try{r=Set}catch{r=function(){}}var s;try{s=Promise}catch{s=function(){}}function u(f,d,g,y,v){typeof d=="object"&&(g=d.depth,y=d.prototype,v=d.includeNonEnumerable,d=d.circular);var b=[],x=[],S=typeof Buffer<"u";d===void 0&&(d=!0),g===void 0&&(g=1/0);function C(T,w){if(T===null)return null;if(w===0)return T;var N,D;if(typeof T!="object")return T;if(i(T,a))N=new a;else if(i(T,r))N=new r;else if(i(T,s))N=new s(function(he,I){T.then(function(Z){he(C(Z,w-1))},function(Z){I(C(Z,w-1))})});else if(u.__isArray(T))N=[];else if(u.__isRegExp(T))N=new RegExp(T.source,p(T)),T.lastIndex&&(N.lastIndex=T.lastIndex);else if(u.__isDate(T))N=new Date(T.getTime());else{if(S&&Buffer.isBuffer(T))return N=Buffer.allocUnsafe?Buffer.allocUnsafe(T.length):new Buffer(T.length),T.copy(N),N;i(T,Error)?N=Object.create(T):y===void 0?(D=Object.getPrototypeOf(T),N=Object.create(D)):(N=Object.create(y),D=y)}if(d){var k=b.indexOf(T);if(k!=-1)return x[k];b.push(T),x.push(N)}for(var M in i(T,a)&&T.forEach(function(he,I){var Z=C(I,w-1),Xe=C(he,w-1);N.set(Z,Xe)}),i(T,r)&&T.forEach(function(he){var I=C(he,w-1);N.add(I)}),T){var _;D&&(_=Object.getOwnPropertyDescriptor(D,M)),!(_&&_.set==null)&&(N[M]=C(T[M],w-1))}if(Object.getOwnPropertySymbols)for(var Ee=Object.getOwnPropertySymbols(T),M=0;M<Ee.length;M++){var X=Ee[M],W=Object.getOwnPropertyDescriptor(T,X);W&&!W.enumerable&&!v||(N[X]=C(T[X],w-1),W.enumerable||Object.defineProperty(N,X,{enumerable:!1}))}if(v)for(var pe=Object.getOwnPropertyNames(T),M=0;M<pe.length;M++){var Te=pe[M],W=Object.getOwnPropertyDescriptor(T,Te);W&&W.enumerable||(N[Te]=C(T[Te],w-1),Object.defineProperty(N,Te,{enumerable:!1}))}return N}return C(f,g)}u.clonePrototype=function(f){if(f===null)return null;var d=function(){};return d.prototype=f,new d};function h(f){return Object.prototype.toString.call(f)}u.__objToStr=h;function o(f){return typeof f=="object"&&h(f)==="[object Date]"}u.__isDate=o;function l(f){return typeof f=="object"&&h(f)==="[object Array]"}u.__isArray=l;function c(f){return typeof f=="object"&&h(f)==="[object RegExp]"}u.__isRegExp=c;function p(f){var d="";return f.global&&(d+="g"),f.ignoreCase&&(d+="i"),f.multiline&&(d+="m"),d}return u.__getRegExpFlags=p,u})();typeof t=="object"&&t.exports&&(t.exports=n)})),io=ce(((e,t)=>{var n=Array.isArray,i=Object.keys,a=Object.prototype.hasOwnProperty;t.exports=function r(s,u){if(s===u)return!0;if(s&&u&&typeof s=="object"&&typeof u=="object"){var h=n(s),o=n(u),l,c,p;if(h&&o){if(c=s.length,c!=u.length)return!1;for(l=c;l--!==0;)if(!r(s[l],u[l]))return!1;return!0}if(h!=o)return!1;var f=s instanceof Date,d=u instanceof Date;if(f!=d)return!1;if(f&&d)return s.getTime()==u.getTime();var g=s instanceof RegExp,y=u instanceof RegExp;if(g!=y)return!1;if(g&&y)return s.toString()==u.toString();var v=i(s);if(c=v.length,c!==i(u).length)return!1;for(l=c;l--!==0;)if(!a.call(u,v[l]))return!1;for(l=c;l--!==0;)if(p=v[l],!r(s[p],u[p]))return!1;return!0}return s!==s&&u!==u}})),mr=H(ce(((e,t)=>{t.exports=function(n,i){i||(i={}),typeof i=="function"&&(i={cmp:i});var a=typeof i.cycles=="boolean"?i.cycles:!1,r=i.cmp&&(function(u){return function(h){return function(o,l){var c={key:o,value:h[o]},p={key:l,value:h[l]};return u(c,p)}}})(i.cmp),s=[];return(function u(h){if(h&&h.toJSON&&typeof h.toJSON=="function"&&(h=h.toJSON()),h!==void 0){if(typeof h=="number")return isFinite(h)?""+h:"null";if(typeof h!="object")return JSON.stringify(h);var o,l;if(Array.isArray(h)){for(l="[",o=0;o<h.length;o++)o&&(l+=","),l+=u(h[o])||"null";return l+"]"}if(h===null)return"null";if(s.indexOf(h)!==-1){if(a)return JSON.stringify("__cycle__");throw TypeError("Converting circular structure to JSON")}var c=s.push(h)-1,p=Object.keys(h).sort(r&&r(h));for(l="",o=0;o<p.length;o++){var f=p[o],d=u(h[f]);d&&(l&&(l+=","),l+=JSON.stringify(f)+":"+d)}return s.splice(c,1),"{"+l+"}"}})(n)}}))());io(),ro();function Fe(e,t,n){return e.fields=t||[],e.fname=n,e}function qt(e){throw Error(e)}function Ht(e){var t=[],n=null,i=0,a=e.length,r="",s,u,h;e+="";function o(){t.push(r+e.substring(s,u)),r="",s=u+1}for(s=u=0;u<a;++u)if(h=e[u],h==="\\")r+=e.substring(s,u),s=++u;else if(h===n)o(),n=null,i=-1;else{if(n)continue;s===i&&h==='"'||s===i&&h==="'"?(s=u+1,n=h):h==="."&&!i?u>s?o():s=u+1:h==="["?(u>s&&o(),i=s=u+1):h==="]"&&(i||qt("Access path missing open bracket: "+e),i>0&&o(),i=0,s=u+1)}return i&&qt("Access path missing closing bracket: "+e),n&&qt("Access path missing closing quote: "+e),u>s&&(u++,o()),t}var nt=Array.isArray;function gr(e){return e===Object(e)}function Gt(e){return typeof e=="string"}function zt(e){return nt(e)?"["+e.map(zt)+"]":gr(e)||Gt(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function ao(e,t){var n=Ht(e),i="return _["+n.map(zt).join("][")+"];";return Fe(Function("_",i),[e=n.length===1?n[0]:e],t||e)}var qe=[];ao("id"),Fe(function(e){return e},qe,"identity"),Fe(function(){return 0},qe,"zero"),Fe(function(){return 1},qe,"one"),Fe(function(){return!0},qe,"true"),Fe(function(){return!1},qe,"false");function rt(e,t,n){var i=[t].concat([].slice.call(n));console[e](...i)}function oo(e,t){var n=e||0;return{level:function(i){return arguments.length?(n=+i,this):n},error:function(){return n>=1&&rt(t||"error","ERROR",arguments),this},warn:function(){return n>=2&&rt(t||"warn","WARN",arguments),this},info:function(){return n>=3&&rt(t||"log","INFO",arguments),this},debug:function(){return n>=4&&rt(t||"log","DEBUG",arguments),this}}}function Yt(e){return typeof e=="boolean"}function De(e){for(var t={},n=0,i=e.length;n<i;++n)t[e[n]]=!0;return t}Set.prototype.toJSON=function(){return`Set(${[...this].map(e=>(0,mr.default)(e)).join(",")})`};const Q=mr.default;function G(e,t){return e.indexOf(t)>-1}function so(e,t){let n=0;for(let[i,a]of e.entries())if(t(a,i,n++))return!0;return!1}const j=Object.keys;function lo(e){let t=e.replace(/\W/g,"_");return(e.match(/^\d+/)?"_":"")+t}function co(e,t="datum"){return`${t}[${zt(Ht(e).join("."))}]`}function uo(e){return`${Ht(e).map(t=>t.replace(".","\\.")).join("\\.")}`}function fo(...e){for(let t of e)if(t!==void 0)return t}function po(e){return ho(e)?e:`__${e}`}function ho(e){return e.indexOf("__")===0}const Ne="column",yr="facet",vr="latitude",br="longitude",xr="latitude2",Er="longitude2",ue="color",it="fill",at="stroke",ot="shape",He="size",st="opacity",lt="fillOpacity",ct="strokeOpacity",ut="strokeWidth",Qt="text",Tr="order",Sr="detail",Nr="tooltip",Cr="href";var mo={x:1,y:1,x2:1,y2:1},wr={longitude:1,longitude2:1,latitude:1,latitude2:1};j(wr);var dt=Object.assign({},mo,wr,{color:1,fill:1,stroke:1,opacity:1,fillOpacity:1,strokeOpacity:1,strokeWidth:1,size:1,shape:1,order:1,text:1,detail:1,key:1,tooltip:1,href:1});function ft(e){return e==="color"||e==="fill"||e==="stroke"}var Ar={row:1,column:1,facet:1};j(Ar);var Ge=Object.assign({},dt,Ar);const go=j(Ge);var{order:Af,detail:Of}=Ge,yo=Ue(Ge,["order","detail"]),{order:kf,detail:Mf,row:If,column:Uf,facet:Ff}=Ge,vo=Ue(Ge,["order","detail","row","column","facet"]);j(yo),j(vo),j(dt);var{x:Df,y:_f,x2:jf,y2:Pf,latitude:Rf,longitude:$f,latitude2:Bf,longitude2:Lf}=dt,Vt=Ue(dt,["x","y","x2","y2","latitude","longitude","latitude2","longitude2"]);const Or=j(Vt);var kr={x:1,y:1};j(kr);var{text:Wf,tooltip:qf,href:Hf,detail:Gf,key:zf,order:Yf}=Vt,Mr=Ue(Vt,["text","tooltip","href","detail","key","order"]);j(Mr);var Ir=Object.assign({},kr,Mr);j(Ir);function bo(e){return!!Ir[e]}function xo(e,t){return To(e)[t]}var Kt={area:"always",bar:"always",circle:"always",geoshape:"always",line:"always",rule:"always",point:"always",rect:"always",square:"always",trail:"always",text:"always",tick:"always"},{geoshape:Qf}=Kt,Eo=Ue(Kt,["geoshape"]);function To(e){switch(e){case ue:case it:case at:case Sr:case"key":case Nr:case Cr:case Tr:case st:case lt:case ct:case ut:case yr:case"row":case Ne:return Kt;case"x":case"y":case vr:case br:return Eo;case"x2":case"y2":case xr:case Er:return{rule:"always",bar:"always",rect:"always",area:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case He:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case ot:return{point:"always",geoshape:"always"};case Qt:return{text:"always"}}}function Jt(e){switch(e){case"x":case"y":case He:case ut:case st:case lt:case ct:case"x2":case"y2":return;case yr:case"row":case Ne:case ot:case Qt:case Nr:case Cr:return"discrete";case ue:case it:case at:return"flexible";case vr:case br:case xr:case Er:case Sr:case"key":case Tr:return}throw Error("rangeType not implemented for "+e)}var Ur={orient:1,bandPosition:1,domain:1,domainColor:1,domainDash:1,domainDashOffset:1,domainOpacity:1,domainWidth:1,format:1,formatType:1,grid:1,gridColor:1,gridDash:1,gridDashOffset:1,gridOpacity:1,gridWidth:1,labelAlign:1,labelAngle:1,labelBaseline:1,labelBound:1,labelColor:1,labelFlush:1,labelFlushOffset:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labels:1,labelSeparation:1,maxExtent:1,minExtent:1,offset:1,position:1,tickColor:1,tickCount:1,tickDash:1,tickDashOffset:1,tickExtra:1,tickMinStep:1,tickOffset:1,tickOpacity:1,tickRound:1,ticks:1,tickSize:1,tickWidth:1,title:1,titleAlign:1,titleAnchor:1,titleAngle:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleOpacity:1,titlePadding:1,titleX:1,titleY:1,values:1,zindex:1},So=Object.assign({},Ur,{encoding:1}),No=Object.assign({gridScale:1,scale:1},Ur,{encode:1});j(No);const Fr=j(So);var Dr={clipHeight:1,columnPadding:1,columns:1,cornerRadius:1,direction:1,fillColor:1,format:1,formatType:1,gradientLength:1,gradientOpacity:1,gradientStrokeColor:1,gradientStrokeWidth:1,gradientThickness:1,gridAlign:1,labelAlign:1,labelBaseline:1,labelColor:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labelSeparation:1,legendX:1,legendY:1,offset:1,orient:1,padding:1,rowPadding:1,strokeColor:1,symbolDash:1,symbolDashOffset:1,symbolFillColor:1,symbolOffset:1,symbolOpacity:1,symbolSize:1,symbolStrokeColor:1,symbolStrokeWidth:1,symbolType:1,tickCount:1,tickMinStep:1,title:1,titleAlign:1,titleAnchor:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleOpacity:1,titleOrient:1,titlePadding:1,type:1,values:1,zindex:1},Co=Object.assign({},Dr,{opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,encode:1});const _r=j(Dr);j(Co);var wo=sr({BAR_WITH_POINT_SCALE_AND_RANGESTEP_NULL:()=>ss,CANNOT_FIX_RANGE_STEP_WITH_FIT:()=>ko,CANNOT_UNION_CUSTOM_DOMAIN_WITH_FIELD_DOMAIN:()=>us,CONCAT_CANNOT_SHARE_AXIS:()=>Ro,FIT_NON_SINGLE:()=>Oo,INVALID_CHANNEL_FOR_AXIS:()=>As,INVALID_SPEC:()=>Ao,LINE_WITH_VARYING_SIZE:()=>ts,MORE_THAN_ONE_SORT:()=>ws,NO_FIELDS_NEEDS_AS:()=>qo,NO_INIT_SCALE_BINDINGS:()=>_o,REPEAT_CANNOT_SHARE_AXIS:()=>$o,SCALE_BINDINGS_CONTINUOUS:()=>Do,UNABLE_TO_MERGE_DOMAINS:()=>Cs,cannotApplySizeToNonOrientedMark:()=>ms,cannotProjectOnChannelWithoutField:()=>Mo,cannotStackNonLinearScale:()=>ks,cannotStackRangedMark:()=>Os,cannotUseScalePropertyWithNonColor:()=>ds,channelRequiredForBinned:()=>$s,columnsNotSupportByRowCol:()=>Po,dayReplacedWithDate:()=>Us,differentParse:()=>Lo,discreteChannelCannotEncode:()=>os,domainRequiredForThresholdScale:()=>Bs,domainSortDropped:()=>Ns,droppedDay:()=>Fs,droppingColor:()=>Xo,emptyFieldDef:()=>Zo,encodingOverridden:()=>Ho,errorBand1DNotSupport:()=>Rs,errorBarCenterAndExtentAreNotNeeded:()=>Ds,errorBarCenterIsNotNeeded:()=>Ps,errorBarCenterIsUsedWithWrongExtent:()=>_s,errorBarContinuousAxisHasCustomizedAggregate:()=>js,facetChannelDropped:()=>as,facetChannelShouldBeDiscrete:()=>is,incompatibleChannel:()=>ns,independentScaleMeansIndependentGuide:()=>Ss,invalidAggregate:()=>Ko,invalidEncodingChannel:()=>rs,invalidFieldType:()=>Yo,invalidFieldTypeForCountAggregate:()=>Vo,invalidTimeUnit:()=>Is,invalidTransformIgnored:()=>Wo,latLongDeprecated:()=>es,lineWithRange:()=>ls,mergeConflictingDomainProperty:()=>Ts,mergeConflictingProperty:()=>Es,missingFieldType:()=>Jo,nearestNotSupportForContinuous:()=>Io,noSuchRepeatedValue:()=>jo,nonZeroScaleUsedWithLengthMark:()=>Qo,orientOverridden:()=>cs,primitiveChannelDef:()=>zo,projectionOverridden:()=>Go,rangeStepDropped:()=>gs,scalePropertyNotWorkWithScaleType:()=>bs,scaleTypeNotWorkWithChannel:()=>ys,scaleTypeNotWorkWithFieldDef:()=>vs,scaleTypeNotWorkWithMark:()=>xs,selectionNotFound:()=>Fo,selectionNotSupported:()=>Uo,stackNonSummativeAggregate:()=>Ms,unaggregateDomainHasNoEffectForRawField:()=>fs,unaggregateDomainWithNonSharedDomainOp:()=>ps,unaggregatedDomainWithLogScale:()=>hs,unrecognizedParse:()=>Bo});const Ao="Invalid spec",Oo='Autosize "fit" only works for single views and layered views.',ko='Cannot use a fixed value of "rangeStep" when "autosize" is "fit".';function Mo(e){return`Cannot project a selection on encoding channel "${e}", which has no field.`}function Io(e){return`The "nearest" transform is not supported for ${e} marks.`}function Uo(e){return`Selection not supported for ${e} yet`}function Fo(e){return`Cannot find a selection named "${e}"`}const Do="Scale bindings are currently only supported for scales with unbinned, continuous domains.",_o="Selections bound to scales cannot be separately initialized.";function jo(e){return`Unknown repeated value "${e}".`}function Po(e){return`The "columns" property cannot be used when "${e}" has nested row/column.`}const Ro="Axes cannot be shared in concatenated views yet (https://github.com/vega/vega-lite/issues/2415).",$o="Axes cannot be shared in repeated views yet (https://github.com/vega/vega-lite/issues/2415).";function Bo(e){return`Unrecognized parse "${e}".`}function Lo(e,t,n){return`An ancestor parsed field "${e}" as ${n} but a child wants to parse the field as ${t}.`}function Wo(e){return`Ignoring an invalid transform: ${Q(e)}.`}const qo='If "from.fields" is not specified, "as" has to be a string that specifies the key to be used for the data from the secondary source.';function Ho(e){return`Layer's shared ${e.join(",")} channel ${e.length===1?"is":"are"} overriden`}function Go(e){let{parentProjection:t,projection:n}=e;return`Layer's shared projection ${Q(t)} is overridden by a child projection ${Q(n)}.`}function zo(e,t,n){return`Channel ${e} is a ${t}. Converted to {value: ${Q(n)}}.`}function Yo(e){return`Invalid field type "${e}"`}function Qo(e,t,n){return`A ${n.scaleType?`${n.scaleType} scale`:n.zeroFalse?"scale with zero=false":"scale with custom domain that excludes zero"} is used to encode ${e}'s ${t}. This can be misleading as the ${t==="x"?"width":"height"} of the ${e} can be arbitrary based on the scale domain. You may want to use point mark instead.`}function Vo(e,t){return`Invalid field type "${e}" for aggregate: "${t}", using "quantitative" instead.`}function Ko(e){return`Invalid aggregation operator "${e}"`}function Jo(e,t){return`Missing type for channel "${e}", using "${t}" instead.`}function Xo(e,t){let{fill:n,stroke:i}=t;return`Dropping color ${e} as the plot also has `+(n&&i?"fill and stroke":n?"fill":"stroke")}function Zo(e,t){return`Dropping ${Q(e)} from channel "${t}" since it does not contain data field or value.`}function es(e,t,n){return`${e}-encoding with type ${t} is deprecated. Replacing with ${n}-encoding.`}const ts="Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.";function ns(e,t,n){return`${e} dropped as it is incompatible with "${t}"${n?` when ${n}`:""}.`}function rs(e){return`${e}-encoding is dropped as ${e} is not a valid encoding channel.`}function is(e){return`${e} encoding should be discrete (ordinal / nominal / binned).`}function as(e){return`Facet encoding dropped as ${e.join(" and ")} ${e.length>1?"are":"is"} also specified.`}function os(e,t){return`Using discrete channel "${e}" to encode "${t}" field can be misleading as it does not encode ${t==="ordinal"?"order":"magnitude"}.`}const ss="Bar mark should not be used with point scale when rangeStep is null. Please use band scale instead.";function ls(e,t){return`Line mark is for continuous lines and thus cannot be used with ${e&&t?"x2 and y2":e?"x2":"y2"}. We will use the rule mark (line segments) instead.`}function cs(e,t){return`Specified orient "${e}" overridden with "${t}"`}const us="custom domain scale cannot be unioned with default field-based domain";function ds(e){return`Cannot use the scale property "${e}" with non-color channel.`}function fs(e){return`Using unaggregated domain with raw field has no effect (${Q(e)}).`}function ps(e){return`Unaggregated domain not applicable for "${e}" since it produces values outside the origin domain of the source data.`}function hs(e){return`Unaggregated domain is currently unsupported for log scale (${Q(e)}).`}function ms(e){return`Cannot apply size to non-oriented mark "${e}".`}function gs(e){return`rangeStep for "${e}" is dropped as top-level ${e==="x"?"width":"height"} is provided.`}function ys(e,t,n){return`Channel "${e}" does not work with "${t}" scale. We are using "${n}" scale instead.`}function vs(e,t){return`FieldDef does not work with "${e}" scale. We are using "${t}" scale instead.`}function bs(e,t,n){return`${n}-scale's "${t}" is dropped as it does not work with ${e} scale.`}function xs(e,t){return`Scale type "${t}" does not work with mark "${e}".`}function Es(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${Q(n)} and ${Q(i)}). Using ${Q(n)}.`}function Ts(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${Q(n)} and ${Q(i)}). Using the union of the two domains.`}function Ss(e){return`Setting the scale to be independent for "${e}" means we also have to set the guide (axis or legend) to be independent.`}function Ns(e){return`Dropping sort property ${Q(e)} as unioned domains only support boolean or op 'count'.`}const Cs="Unable to merge domains",ws="Domains that should be unioned has conflicting sort properties. Sort will be set to true.",As="Invalid channel for axis.";function Os(e){return`Cannot stack "${e}" if there is already "${e}2"`}function ks(e){return`Cannot stack non-linear scale (${e})`}function Ms(e){return`Stacking is applied even though the aggregate function is non-summative ("${e}")`}function Is(e,t){return`Invalid ${e}: ${Q(t)}`}function Us(e){return`Time unit "${e}" is not supported. We are replacing it with ${e.replace("day","date")}.`}function Fs(e){return`Dropping day from datetime ${Q(e)} as day cannot be combined with other units.`}function Ds(e,t){return`${t?"extent ":""}${t&&e?"and ":""}${e?"center ":""}${t&&e?"are ":"is "}not needed when data are aggregated.`}function _s(e,t,n){return`${e} is not usually used with ${t} for ${n}.`}function js(e,t){return`Continuous axis should not have customized aggregation function ${e}; ${t} already agregates the axis.`}function Ps(e,t){return`Center is not needed to be specified in ${t} when extent is ${e}.`}function Rs(e){return`1D error band does not support ${e}`}function $s(e){return`Channel ${e} is required for "binned" bin`}function Bs(e){return`Domain for ${e} is required for threshold scale`}const ee=wo;var jr=oo(2);function ge(...e){jr.warn.apply(jr,arguments)}const Ls={quantitative:1,ordinal:1,temporal:1,nominal:1,geojson:1},te="quantitative",Ce="ordinal",ye="temporal",we="nominal";function Ws(e){if(e)switch(e=e.toLowerCase(),e){case"q":case te:return"quantitative";case"t":case ye:return"temporal";case"o":case Ce:return"ordinal";case"n":case we:return"nominal";case"geojson":return"geojson"}}var F;(function(e){e.LINEAR="linear",e.LOG="log",e.POW="pow",e.SQRT="sqrt",e.SYMLOG="symlog",e.TIME="time",e.UTC="utc",e.QUANTILE="quantile",e.QUANTIZE="quantize",e.THRESHOLD="threshold",e.BIN_ORDINAL="bin-ordinal",e.ORDINAL="ordinal",e.POINT="point",e.BAND="band"})(F||(F={}));const qs=j({linear:"numeric",log:"numeric",pow:"numeric",sqrt:"numeric",symlog:"numeric",time:"time",utc:"time",ordinal:"ordinal","bin-ordinal":"bin-ordinal",point:"ordinal-position",band:"ordinal-position",quantile:"discretizing",quantize:"discretizing",threshold:"discretizing"}),Pr=["linear","log","pow","sqrt","symlog","time","utc"];var Hs=De(Pr),Gs=De(["quantile","quantize","threshold"]);const zs=Pr.concat(["quantile","quantize","threshold"]);var Ys=De(zs),Qs=De(["ordinal","bin-ordinal","point","band"]);function Ae(e){return e in Qs}function Vs(e){return e in Ys}function _e(e){return e in Hs}function Ks(e){return e in Gs}var Xt={type:1,domain:1,align:1,range:1,rangeStep:1,scheme:1,bins:1,reverse:1,round:1,clamp:1,nice:1,base:1,exponent:1,constant:1,interpolate:1,zero:1,padding:1,paddingInner:1,paddingOuter:1};const Rr=j(Xt);var{type:Vf,domain:Kf,range:Jf,rangeStep:Xf,scheme:Zf}=Xt,Js=Ue(Xt,["type","domain","range","rangeStep","scheme"]);j(Js),Zs();function Zt(e,t){switch(t){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!G(["point","band","identity"],e);case"bins":return!G(["point","band","identity","ordinal"],e);case"round":return _e(e)||e==="band"||e==="point";case"padding":return _e(e)||G(["point","band"],e);case"paddingOuter":case"rangeStep":case"align":return G(["point","band"],e);case"paddingInner":return e==="band";case"clamp":return _e(e);case"nice":return _e(e)||e==="quantize"||e==="threshold";case"exponent":return e==="pow";case"base":return e==="log";case"constant":return e==="symlog";case"zero":return Vs(e)&&!G(["log","time","utc","threshold","quantile"],e)}}function Xs(e,t){switch(t){case"interpolate":case"scheme":return ft(e)?void 0:ee.cannotUseScalePropertyWithNonColor(e);case"align":case"type":case"bins":case"domain":case"range":case"base":case"exponent":case"constant":case"nice":case"padding":case"paddingInner":case"paddingOuter":case"rangeStep":case"reverse":case"round":case"clamp":case"zero":return}}function $r(e,t){return G(["ordinal","nominal"],t)?e===void 0||Ae(e):t==="temporal"?G([F.TIME,F.UTC,void 0],e):t==="quantitative"?G([F.LOG,F.POW,F.SQRT,F.SYMLOG,F.QUANTILE,F.QUANTIZE,F.THRESHOLD,F.LINEAR,void 0],e):!0}function Br(e,t){switch(e){case"x":case"y":return _e(t)||G(["band","point"],t);case He:case ut:case st:case lt:case ct:return _e(t)||Ks(t)||G(["band","point"],t);case ue:case it:case at:return t!=="band";case ot:return t==="ordinal"}return!1}function Zs(){let e={};for(let t of go)for(let n of j(Ls))for(let i of qs){let a=el(t,n);Br(t,i)&&$r(i,n)&&(e[a]=e[a]||[],e[a].push(i))}return e}function el(e,t){return e+"_"+t}var ne=ce(((e,t)=>{var n=t.exports,i="__name__";n.namedfunc=function(o,l){return l[i]=o,l},n.name=function(o){return o==null?null:o[i]},n.identity=function(o){return o},n.true=n.namedfunc("true",function(){return!0}),n.false=n.namedfunc("false",function(){return!1}),n.duplicate=function(o){return JSON.parse(JSON.stringify(o))},n.equal=function(o,l){return JSON.stringify(o)===JSON.stringify(l)},n.extend=function(o){for(var l,c,p=1,f=arguments.length;p<f;++p)for(c in l=arguments[p],l)o[c]=l[c];return o},n.length=function(o){return o!=null&&o.length!=null?o.length:null},n.keys=function(o){var l=[],c;for(c in o)l.push(c);return l},n.vals=function(o){var l=[],c;for(c in o)l.push(o[c]);return l},n.toMap=function(o,l){return(l=n.$(l))?o.reduce(function(c,p){return c[l(p)]=1,c},{}):o.reduce(function(c,p){return c[p]=1,c},{})},n.keystr=function(o){var l=o.length;if(!l)return"";for(var c=String(o[0]),p=1;p<l;++p)c+="|"+String(o[p]);return c};var a=Object.prototype.toString;n.isObject=function(o){return o===Object(o)},n.isFunction=function(o){return a.call(o)==="[object Function]"},n.isString=function(o){return typeof value=="string"||a.call(o)==="[object String]"},n.isArray=Array.isArray||function(o){return a.call(o)==="[object Array]"},n.isNumber=function(o){return typeof o=="number"||a.call(o)==="[object Number]"},n.isBoolean=function(o){return o===!0||o===!1||a.call(o)=="[object Boolean]"},n.isDate=function(o){return a.call(o)==="[object Date]"},n.isValid=function(o){return o!=null&&o===o},n.isBuffer=typeof Buffer=="function"&&Buffer.isBuffer||n.false,n.number=function(o){return o==null||o===""?null:+o},n.boolean=function(o){return o==null||o===""?null:o==="false"?!1:!!o},n.date=function(o,l){var c=l||Date;return o==null||o===""?null:c.parse(o)},n.array=function(o){return o==null?[]:n.isArray(o)?o:[o]},n.str=function(o){return n.isArray(o)?"["+o.map(n.str)+"]":n.isObject(o)||n.isString(o)?JSON.stringify(o).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):o};var r=/\[(.*?)\]|[^.\[]+/g;n.field=function(o){return String(o).match(r).map(function(l){return l[0]==="["?l[1]!=="'"&&l[1]!=='"'?l.slice(1,-1):l.slice(2,-2).replace(/\\(["'])/g,"$1"):l})},n.accessor=function(o){return o==null||n.isFunction(o)?o:n.namedfunc(o,Function("x","return x["+n.field(o).map(n.str).join("][")+"];"))},n.$=n.accessor,n.mutator=function(o){var l;return n.isString(o)&&(l=n.field(o)).length>1?function(c,p){for(var f=0;f<l.length-1;++f)c=c[l[f]];c[l[f]]=p}:function(c,p){c[o]=p}},n.$func=function(o,l){return function(c){c=n.$(c)||n.identity;var p=o+(n.name(c)?"_"+n.name(c):"");return n.namedfunc(p,function(f){return l(c(f))})}},n.$valid=n.$func("valid",n.isValid),n.$length=n.$func("length",n.length),n.$in=function(o,l){o=n.$(o);var c=n.isArray(l)?n.toMap(l):l;return function(p){return!!c[o(p)]}},n.comparator=function(o){var l=[];return o===void 0&&(o=[]),o=n.array(o).map(function(c){var p=1;return c[0]==="-"?(p=-1,c=c.slice(1)):c[0]==="+"&&(p=1,c=c.slice(1)),l.push(p),n.accessor(c)}),function(c,p){var f,d,g,y;for(f=0,d=o.length;f<d;++f)if(g=o[f],y=n.cmp(g(c),g(p)),y)return y*l[f];return 0}},n.cmp=function(o,l){return(o<l||o==null)&&l!=null?-1:(o>l||l==null)&&o!=null?1:(l=l instanceof Date?+l:l,(o=o instanceof Date?+o:o)!==o&&l===l?-1:l!==l&&o===o?1:0)},n.numcmp=function(o,l){return o-l},n.stablesort=function(o,l,c){var p=o.reduce(function(f,d,g){return f[c(d)]=g,f},{});return o.sort(function(f,d){var g=l(f),y=l(d);return g<y?-1:g>y?1:p[c(f)]-p[c(d)]}),o},n.permute=function(o){for(var l=o.length,c,p;l;)p=Math.floor(Math.random()*l--),c=o[l],o[l]=o[p],o[p]=c},n.pad=function(o,l,c,p){p||(p=" ");var f=l-o.length;if(f<=0)return o;switch(c){case"left":return s(f,p)+o;case"middle":case"center":return s(Math.floor(f/2),p)+o+s(Math.ceil(f/2),p);default:return o+s(f,p)}};function s(o,l){var c="",p;for(p=0;p<o;++p)c+=l;return c}n.truncate=function(o,l,c,p,f){var d=o.length;if(d<=l)return o;f=f===void 0?"\u2026":String(f);var g=Math.max(0,l-f.length);switch(c){case"left":return f+(p?u(o,g,1):o.slice(d-g));case"middle":case"center":var y=Math.ceil(g/2),v=Math.floor(g/2);return(p?u(o,y):o.slice(0,y))+f+(p?u(o,v,1):o.slice(d-v));default:return(p?u(o,g):o.slice(0,g))+f}};function u(o,l,c){var p=0,f=o.split(h);return o=c?(f=f.reverse()).filter(function(d){return p+=d.length,p<=l}).reverse():f.filter(function(d){return p+=d.length,p<=l}),o.length?o.join("").trim():f[0].slice(0,l)}var h=/([\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u2028\u2029\u3000\uFEFF])/})),Lr=H(ne()),U=H(ne());function K(e,t){return e.indexOf(t)!==-1}function oe(e,t){for(let n=0;n<e.length;n++)if(!t(e[n],n))return!1;return!0}function z(e,t,n){if(e.forEach)e.forEach.call(n,t);else for(let i in e)t.call(n,e[i],i,e)}function de(e,t){let n=0,i;for(i in e)if(t(e[i],i,n++))return!0;return!1}function tl(e,t){return e.filter(function(n){return!K(t,n)})}function nl(e){return Object.keys(e)}function se(e){return!!e.parent}var Wr={channel:1,aggregate:1,autoCount:1,bin:1,timeUnit:1,hasFn:1,sort:1,stack:1,field:1,type:1,format:1,scale:1,axis:1,legend:1,value:1};const en=nl(Wr);function rl(e){return e in Wr}var il={bin:1,scale:1,sort:1,axis:1,legend:1};function tn(e){return il[e]}const al=["maxbins","divide","extent","base","step","steps","minstep"],ol=["field","op","order"];var qr=al.map(e=>({parent:"bin",child:e}));const nn=ol.map(e=>({parent:"sort",child:e})),pt=Rr.map(e=>({parent:"scale",child:e}));var Hr=Fr.map(e=>({parent:"axis",child:e})),Gr=_r.map(e=>({parent:"legend",child:e}));const ht=[].concat(qr,nn,pt,Hr,Gr),zr=["width","height","background","padding","title"];var Yr=".";function mt(e){return se(e)?e.parent+Yr+e.child:e}function sl(e){let t=e.split(Yr);if(t.length===1)return e;if(t.length===2)return{parent:t[0],child:t[1]};throw"Invalid property key with "+t.length+" dots: "+e}var ll=ht.reduce((e,t)=>(e[t.parent]=e[t.parent]||[],e[t.parent][t.child]=t,e),{});function fe(e,t){return(ll[e]||{})[t]}function Qr(e){return rl(e)||se(e)}const cl=[].concat(en,ht),Vr=["type","field","bin","timeUnit","aggregate","autoCount","channel","mark","stack","scale","sort","axis","legend"].concat(qr,pt,Hr,Gr,nn);var m;(function(e){e.MARK="mark",e.TRANSFORM="transform",e.STACK="stack",e.FORMAT="format",e.CHANNEL="channel",e.AGGREGATE="aggregate",e.AUTOCOUNT="autoCount",e.BIN="bin",e.HAS_FN="hasFn",e.TIMEUNIT="timeUnit",e.FIELD="field",e.TYPE="type",e.SORT="sort",e.SCALE="scale",e.AXIS="axis",e.LEGEND="legend",e.WIDTH="width",e.HEIGHT="height",e.BACKGROUND="background",e.PADDING="padding",e.TITLE="title"})(m||(m={}));const ze="area",gt="line",Ye="point",rn="rect",an="rule",yt="text",vt="tick",on="circle",sn="square";var ul={area:1,bar:1,line:1,point:1,text:1,tick:1,trail:1,rect:1,geoshape:1,rule:1,circle:1,square:1};function dl(e){return G(["line","area","trail"],e)}const fl=j(ul);function pl(e){return e.type}De(fl),["january","february","march","april","may","june","july","august","september","october","november","december"].map(e=>e.substr(0,3)),["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].map(e=>e.substr(0,3));var B;(function(e){e.YEAR="year",e.MONTH="month",e.DAY="day",e.DATE="date",e.HOURS="hours",e.MINUTES="minutes",e.SECONDS="seconds",e.MILLISECONDS="milliseconds",e.YEARMONTH="yearmonth",e.YEARMONTHDATE="yearmonthdate",e.YEARMONTHDATEHOURS="yearmonthdatehours",e.YEARMONTHDATEHOURSMINUTES="yearmonthdatehoursminutes",e.YEARMONTHDATEHOURSMINUTESSECONDS="yearmonthdatehoursminutesseconds",e.MONTHDATE="monthdate",e.MONTHDATEHOURS="monthdatehours",e.HOURSMINUTES="hoursminutes",e.HOURSMINUTESSECONDS="hoursminutesseconds",e.MINUTESSECONDS="minutesseconds",e.SECONDSMILLISECONDS="secondsmilliseconds",e.QUARTER="quarter",e.YEARQUARTER="yearquarter",e.QUARTERMONTH="quartermonth",e.YEARQUARTERMONTH="yearquartermonth",e.UTCYEAR="utcyear",e.UTCMONTH="utcmonth",e.UTCDAY="utcday",e.UTCDATE="utcdate",e.UTCHOURS="utchours",e.UTCMINUTES="utcminutes",e.UTCSECONDS="utcseconds",e.UTCMILLISECONDS="utcmilliseconds",e.UTCYEARMONTH="utcyearmonth",e.UTCYEARMONTHDATE="utcyearmonthdate",e.UTCYEARMONTHDATEHOURS="utcyearmonthdatehours",e.UTCYEARMONTHDATEHOURSMINUTES="utcyearmonthdatehoursminutes",e.UTCYEARMONTHDATEHOURSMINUTESSECONDS="utcyearmonthdatehoursminutesseconds",e.UTCMONTHDATE="utcmonthdate",e.UTCMONTHDATEHOURS="utcmonthdatehours",e.UTCHOURSMINUTES="utchoursminutes",e.UTCHOURSMINUTESSECONDS="utchoursminutesseconds",e.UTCMINUTESSECONDS="utcminutesseconds",e.UTCSECONDSMILLISECONDS="utcsecondsmilliseconds",e.UTCQUARTER="utcquarter",e.UTCYEARQUARTER="utcyearquarter",e.UTCQUARTERMONTH="utcquartermonth",e.UTCYEARQUARTERMONTH="utcyearquartermonth"})(B||(B={}));var ln={year:1,quarter:1,month:1,day:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1};const Kr=j(ln);function hl(e){return!!ln[e]}var cn={utcyear:1,utcquarter:1,utcmonth:1,utcday:1,utcdate:1,utchours:1,utcminutes:1,utcseconds:1,utcmilliseconds:1};function ml(e){return!!cn[e]}var gl={yearquarter:1,yearquartermonth:1,yearmonth:1,yearmonthdate:1,yearmonthdatehours:1,yearmonthdatehoursminutes:1,yearmonthdatehoursminutesseconds:1,quartermonth:1,monthdate:1,monthdatehours:1,hoursminutes:1,hoursminutesseconds:1,minutesseconds:1,secondsmilliseconds:1},Jr={utcyearquarter:1,utcyearquartermonth:1,utcyearmonth:1,utcyearmonthdate:1,utcyearmonthdatehours:1,utcyearmonthdatehoursminutes:1,utcyearmonthdatehoursminutesseconds:1,utcquartermonth:1,utcmonthdate:1,utcmonthdatehours:1,utchoursminutes:1,utchoursminutesseconds:1,utcminutesseconds:1,utcsecondsmilliseconds:1},yl=Object.assign({},cn,Jr);function vl(e){return!!yl[e]}var Xr=Object.assign({},ln,cn,gl,Jr);j(Xr);function bl(e){return!!Xr[e]}var xl={year:"setFullYear",month:"setMonth",date:"setDate",hours:"setHours",minutes:"setMinutes",seconds:"setSeconds",milliseconds:"setMilliseconds",quarter:null,day:null};function El(e,t){let n=vl(e),i=n?new Date(Date.UTC(1972,0,1,0,0,0,0)):new Date(1972,0,1,0,0,0,0);for(let a of Kr)if(ei(e,a))switch(a){case B.DAY:throw Error("Cannot convert to TimeUnits containing 'day'");case B.QUARTER:{let{getDateMethod:r,setDateMethod:s}=Zr("month",n);i[s](Math.floor(t[r]()/3)*3);break}default:{let{getDateMethod:r,setDateMethod:s}=Zr(a,n);i[s](t[r]())}}return i}function Zr(e,t){let n=xl[e],i=t?"setUTC"+n.substr(3):n,a="get"+(t?"UTC":"")+n.substr(3);return{setDateMethod:i,getDateMethod:a}}function ei(e,t){let n=e.indexOf(t);return n>-1&&(t!==B.SECONDS||n===0||e.charAt(n-1)!=="i")}function A(e){return bt(e)||Tl(e)}function bt(e){return e==="?"}function Tl(e){return e!==void 0&&e!=null&&(!!e.enum||!!e.name)&&!(0,Lr.isArray)(e)}function un(e,t,n){return(0,U.extend)({},{name:t,enum:n},e==="?"?{}:e)}function dn(e){let t={},n={};for(let i of e){let a=[0];for(let s=0;s<i.length;s++)i.charAt(s).toUpperCase()===i.charAt(s)&&a.push(s);let r=a.map(s=>i.charAt(s)).join("").toLowerCase();if(!n[r]){t[i]=r,n[r]=!0;continue}if(a[a.length-1]!==i.length-1&&(r=a.concat([i.length-1]).map(s=>i.charAt(s)).join("").toLowerCase(),!n[r])){t[i]=r,n[r]=!0;continue}for(let s=1;!t[i];s++){let u=r+"_"+s;if(!n[u]){t[i]=u,n[u]=!0;break}}}return t}const xt={mark:"m",channel:"c",aggregate:"a",autoCount:"#",hasFn:"h",bin:"b",sort:"so",stack:"st",scale:"s",format:"f",axis:"ax",legend:"l",value:"v",timeUnit:"tu",field:"f",type:"t",binProps:{maxbins:"mb",min:"mi",max:"ma",base:"b",step:"s",steps:"ss",minstep:"ms",divide:"d"},sortProps:{field:"f",op:"o",order:"or"},scaleProps:dn(Rr),axisProps:dn(Fr),legendProps:dn(_r)};function Qe(e){if(se(e))return xt[e.parent]+"-"+xt[e.parent+"Props"][e.child];if(xt[e])return xt[e];throw Error("Default name undefined for "+e)}var V=[!1,!0],Sl={maxbins:[5,10,20],extent:[void 0],base:[10],step:[void 0],steps:[void 0],minstep:[void 0],divide:[[5,2]],binned:[!1],anchor:[void 0],nice:[!0]},Nl={field:[void 0],op:["min","mean"],order:["ascending","descending"]},Cl={type:[void 0,F.LOG],domain:[void 0],base:[void 0],exponent:[1,2],constant:[void 0],bins:[void 0],clamp:V,nice:V,reverse:V,round:V,zero:V,padding:[void 0],paddingInner:[void 0],paddingOuter:[void 0],interpolate:[void 0],range:[void 0],rangeStep:[17,21],scheme:[void 0]},wl={zindex:[1,0],offset:[void 0],orient:[void 0],values:[void 0],bandPosition:[void 0],encoding:[void 0],domain:V,domainColor:[void 0],domainDash:[void 0],domainDashOffset:[void 0],domainOpacity:[void 0],domainWidth:[void 0],formatType:[void 0],grid:V,gridColor:[void 0],gridDash:[void 0],gridDashOffset:[void 0],gridOpacity:[void 0],gridWidth:[void 0],format:[void 0],labels:V,labelAlign:[void 0],labelAngle:[void 0],labelBaseline:[void 0],labelColor:[void 0],labelFlushOffset:[void 0],labelFont:[void 0],labelFontSize:[void 0],labelFontStyle:[void 0],labelFontWeight:[void 0],labelLimit:[void 0],labelOpacity:[void 0],labelSeparation:[void 0],labelOverlap:[void 0],labelPadding:[void 0],labelBound:[void 0],labelFlush:[void 0],maxExtent:[void 0],minExtent:[void 0],position:[void 0],ticks:V,tickColor:[void 0],tickCount:[void 0],tickDash:[void 0],tickExtra:[void 0],tickDashOffset:[void 0],tickMinStep:[void 0],tickOffset:[void 0],tickOpacity:[void 0],tickRound:[void 0],tickSize:[void 0],tickWidth:[void 0],title:[void 0],titleAlign:[void 0],titleAnchor:[void 0],titleAngle:[void 0],titleBaseline:[void 0],titleColor:[void 0],titleFont:[void 0],titleFontSize:[void 0],titleFontStyle:[void 0],titleFontWeight:[void 0],titleLimit:[void 0],titleOpacity:[void 0],titlePadding:[void 0],titleX:[void 0],titleY:[void 0]};const Al={mark:[Ye,"bar",gt,ze,rn,vt,yt],channel:["x","y","row",Ne,He,ue],aggregate:[void 0,"mean"],autoCount:V,bin:V,hasFn:V,timeUnit:[void 0,B.YEAR,B.MONTH,B.MINUTES,B.SECONDS],field:[void 0],type:[we,Ce,te,ye],sort:["ascending","descending"],stack:["zero","normalize","center",null],value:[void 0],format:[void 0],title:[void 0],scale:[!0],axis:V,legend:V,binProps:Sl,sortProps:Nl,scaleProps:Cl,axisProps:wl,legendProps:{orient:["left","right"],format:[void 0],type:[void 0],values:[void 0],zindex:[void 0],clipHeight:[void 0],columnPadding:[void 0],columns:[void 0],cornerRadius:[void 0],direction:[void 0],encoding:[void 0],fillColor:[void 0],formatType:[void 0],gridAlign:[void 0],offset:[void 0],padding:[void 0],rowPadding:[void 0],strokeColor:[void 0],labelAlign:[void 0],labelBaseline:[void 0],labelColor:[void 0],labelFont:[void 0],labelFontSize:[void 0],labelFontStyle:[void 0],labelFontWeight:[void 0],labelLimit:[void 0],labelOffset:[void 0],labelOpacity:[void 0],labelOverlap:[void 0],labelPadding:[void 0],labelSeparation:[void 0],legendX:[void 0],legendY:[void 0],gradientLength:[void 0],gradientOpacity:[void 0],gradientStrokeColor:[void 0],gradientStrokeWidth:[void 0],gradientThickness:[void 0],symbolDash:[void 0],symbolDashOffset:[void 0],symbolFillColor:[void 0],symbolOffset:[void 0],symbolOpacity:[void 0],symbolSize:[void 0],symbolStrokeColor:[void 0],symbolStrokeWidth:[void 0],symbolType:[void 0],tickCount:[void 0],tickMinStep:[void 0],title:[void 0],titleAnchor:[void 0],titleAlign:[void 0],titleBaseline:[void 0],titleColor:[void 0],titleFont:[void 0],titleFontSize:[void 0],titleFontStyle:[void 0],titleFontWeight:[void 0],titleLimit:[void 0],titleOpacity:[void 0],titleOrient:[void 0],titlePadding:[void 0]}};function fn(e,t,n){if(e==="field"||se(e)&&e.parent==="sort"&&e.child==="field")return t.fieldNames();let i;if(i=se(e)?n.enum[e.parent+"Props"][e.child]:n.enum[e],i!==void 0)return i;throw Error("No default enumValues for "+JSON.stringify(e))}const Ve={verbose:!1,defaultSpecConfig:{line:{point:!0},scale:{useUnaggregatedDomain:!0}},propertyPrecedence:Vr.map(mt),enum:Al,numberNominalProportion:.05,numberNominalLimit:40,constraintManuallySpecifiedValue:!1,autoAddCount:!1,hasAppropriateGraphicTypeForMark:!0,omitAggregate:!1,omitAggregatePlotWithDimensionOnlyOnFacet:!0,omitAggregatePlotWithoutDimension:!1,omitBarLineAreaWithOcclusion:!0,omitBarTickWithSize:!0,omitMultipleNonPositionalChannels:!0,omitRaw:!1,omitRawContinuousFieldForAggregatePlot:!0,omitRepeatedField:!0,omitNonPositionalOrFacetOverPositionalChannels:!0,omitTableWithOcclusionIfAutoAddCount:!0,omitVerticalDotPlot:!1,omitInvalidStackSpec:!0,omitNonSumStack:!0,preferredBinAxis:"x",preferredTemporalAxis:"x",preferredOrdinalAxis:"y",preferredNominalAxis:"y",preferredFacet:"row",minCardinalityForBin:15,maxCardinalityForCategoricalColor:20,maxCardinalityForFacet:20,maxCardinalityForShape:6,timeUnitShouldHaveVariation:!0,typeMatchesSchemaType:!0,stylize:!0,smallRangeStepForHighCardinalityOrFacet:{maxCardinality:10,rangeStep:12},nominalColorScaleForHighCardinality:{maxCardinality:10,palette:"category20"},xAxisOnTopForHighYCardinalityWithoutColumn:{maxCardinality:30},maxGoodCardinalityForFacet:5,maxGoodCardinalityForColor:7,minPercentUniqueForKey:.8,minCardinalityForKey:50};var ti={argmax:1,argmin:1,average:1,count:1,distinct:1,max:1,mean:1,median:1,min:1,missing:1,q1:1,q3:1,ci0:1,ci1:1,stderr:1,stdev:1,stdevp:1,sum:1,valid:1,values:1,variance:1,variancep:1};function Ol(e){return!!e&&!!e.argmin}function kl(e){return!!e&&!!e.argmax}j(ti);function Ml(e){return Gt(e)&&!!ti[e]}const ni=["count","sum","distinct","valid","missing"];De(["mean","average","median","q1","q3","min","max"]);function Il(e){return Yt(e)&&(e=Pl(e,void 0)),"bin"+j(e).map(t=>lo(`_${t}_${e[t]}`)).join("")}function ri(e){return e===!0||Ul(e)&&!e.binned}function Ul(e){return gr(e)}function pn(e){switch(e){case"row":case Ne:case He:case ue:case it:case at:case ut:case st:case lt:case ct:case ot:return 6;default:return 10}}function ii(e){return!!e&&!!e.condition&&!nt(e.condition)&&ve(e.condition)}function ve(e){return!!e&&(!!e.field||e.aggregate==="count")}function hn(e){return ve(e)&&Gt(e.field)}function Fl(e){return!!e.op}function mn(e,t={}){let n=e.field,i=t.prefix,a=t.suffix,r="";if(_l(e))n=po("count");else{let s;if(!t.nofn)if(Fl(e))s=e.op;else{let{bin:u,aggregate:h,timeUnit:o}=e;ri(u)?(s=Il(u),a=(t.binSuffix||"")+(t.suffix||"")):h?kl(h)?(r=`.${n}`,n=`argmax_${h.argmax}`):Ol(h)?(r=`.${n}`,n=`argmin_${h.argmin}`):s=String(h):o&&(s=String(o))}s&&(n=n?`${s}_${n}`:s)}return a&&(n=`${n}_${a}`),i&&(n=`${i}_${n}`),t.forAs?n:t.expr?co(n,t.expr)+r:uo(n)+r}function ai(e){switch(e.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return!!e.bin;case"temporal":return!1}throw Error(ee.invalidFieldType(e.type))}function Dl(e){return!ai(e)}function _l(e){return e.aggregate==="count"}function jl(e){if(ve(e))return e;if(ii(e))return e.condition}function Pl(e,t){return Yt(e)?{maxbins:pn(t)}:e==="binned"?{binned:!0}:!e.maxbins&&!e.step?Object.assign({},e,{maxbins:pn(t)}):e}var je={compatible:!0};function Rl(e,t){let n=e.type;if(n==="geojson"&&t!=="shape")return{compatible:!1,warning:`Channel ${t} should not be used with a geojson data.`};switch(t){case"row":case"column":case"facet":return Dl(e)?{compatible:!1,warning:ee.facetChannelShouldBeDiscrete(t)}:je;case"x":case"y":case"color":case"fill":case"stroke":case"text":case"detail":case"key":case"tooltip":case"href":return je;case"longitude":case"longitude2":case"latitude":case"latitude2":return n==="quantitative"?je:{compatible:!1,warning:`Channel ${t} should be used with a quantitative field only, not ${e.type} field.`};case"opacity":case"fillOpacity":case"strokeOpacity":case"strokeWidth":case"size":case"x2":case"y2":return n==="nominal"&&!e.sort?{compatible:!1,warning:`Channel ${t} should not be used with an unsorted discrete field.`}:je;case"shape":return G(["ordinal","nominal","geojson"],e.type)?je:{compatible:!1,warning:"Shape channel should be used with only either discrete or geojson data."};case"order":return e.type==="nominal"&&!("sort"in e)?{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}:je}throw Error("channelCompatability not implemented for channel "+t)}function $l(e,t,n,i){let a=Bl(t,n,i),{type:r}=e;return bo(t)?r===void 0?a:Br(t,r)?$r(r,n.type)?r:(ge(ee.scaleTypeNotWorkWithFieldDef(r,a)),a):(ge(ee.scaleTypeNotWorkWithChannel(t,r,a)),a):null}function Bl(e,t,n){switch(t.type){case"nominal":case"ordinal":return ft(e)||Jt(e)==="discrete"?(e==="shape"&&t.type==="ordinal"&&ge(ee.discreteChannelCannotEncode(e,"ordinal")),"ordinal"):G(["x","y"],e)&&(G(["rect","bar","rule"],n)||n==="bar")?"band":"point";case"temporal":return ft(e)?"time":Jt(e)==="discrete"?(ge(ee.discreteChannelCannotEncode(e,"temporal")),"ordinal"):"time";case"quantitative":return ft(e)?ri(t.bin)?"bin-ordinal":"linear":Jt(e)==="discrete"?(ge(ee.discreteChannelCannotEncode(e,"quantitative")),"ordinal"):"linear";case"geojson":return}throw Error(ee.invalidFieldType(t.type))}var le;(function(e){e.QUANTITATIVE=te,e.ORDINAL=Ce,e.TEMPORAL=ye,e.NOMINAL=we,e.KEY="key"})(le||(le={}));function oi(e){return e==="ordinal"||e==="nominal"||e===le.KEY}var re=class ir{constructor(t=null){this.index=t?Object.assign({},t):{}}has(t){return mt(t)in this.index}get(t){return this.index[mt(t)]}set(t,n){return this.index[mt(t)]=n,this}setByKey(t,n){this.index[t]=n}map(t){let n=new ir;for(let i in this.index)n.index[i]=t(this.index[i]);return n}size(){return(0,U.keys)(this.index).length}duplicate(){return new ir(this.index)}};function si(e,t){let n=e&&e[t];return n?nt(n)?so(n,i=>!!i.field):ve(n)||ii(n):!1}var Ll={zero:1,center:1,normalize:1};function Wl(e){return!!Ll[e]}const ql=["bar",ze,an,Ye,on,sn,gt,yt,vt],Hl=["bar",ze];function Gl(e){let t=e.x,n=e.y;if(ve(t)&&ve(n))if(t.type==="quantitative"&&n.type==="quantitative"){if(t.stack)return"x";if(n.stack)return"y";if(!!t.aggregate!=!!n.aggregate)return t.aggregate?"x":"y"}else{if(t.type==="quantitative")return"x";if(n.type==="quantitative")return"y"}else{if(ve(t)&&t.type==="quantitative")return"x";if(ve(n)&&n.type==="quantitative")return"y"}}function zl(e,t,n,i={}){let a=pl(e)?e.type:e;if(!G(ql,a))return null;let r=Gl(t);if(!r)return null;let s=t[r],u=hn(s)?mn(s,{}):void 0,h=r==="x"?"y":"x",o=t[h],l=hn(o)?mn(o,{}):void 0,c=Or.reduce((f,d)=>{if(d!=="tooltip"&&si(t,d)){let g=t[d];(nt(g)?g:[g]).forEach(y=>{let v=jl(y);if(v.aggregate)return;let b=hn(v)?mn(v,{}):void 0;(!b||b!==l&&b!==u)&&f.push({channel:d,fieldDef:v})})}return f},[]),p;if(s.stack===void 0?c.length>0&&(p=G(Hl,a)?fo(n,"zero"):n):p=Yt(s.stack)?s.stack?"zero":null:s.stack,!p||!Wl(p))return null;if(s.scale&&s.scale.type&&s.scale.type!==F.LINEAR){if(i.disallowNonLinearStack)return null;ge(ee.cannotStackNonLinearScale(s.scale.type))}return si(t,r==="x"?"x2":"y2")?(s.stack!==void 0&&ge(ee.cannotStackRangedMark(r)),null):(s.aggregate&&!G(ni,s.aggregate)&&ge(ee.stackNonSummativeAggregate(s.aggregate)),{groupbyChannel:o?h:void 0,fieldChannel:r,impute:dl(a),stackBy:c,offset:p})}var Yl=H(ne());function Ql(e){return de(e.encodings,t=>O(t)&&!A(t.aggregate)&&!!t.aggregate||Tt(t))}function li(e){if(!Jl(e))return null;let t=hi(e.encodings,{schema:null,wildcardMode:"null"}),n=e.mark;return zl(n,t,void 0,{disallowNonLinearStack:!0})}function Vl(e){for(let t of e.encodings)if(t[m.STACK]!==void 0&&!A(t[m.STACK]))return t[m.STACK]}function Kl(e){for(let t of e.encodings)if(t[m.STACK]!==void 0&&!A(t.channel))return t.channel;return null}function Jl(e){if(A(e.mark))return!1;let t=[m.STACK,m.CHANNEL,m.MARK,m.FIELD,m.AGGREGATE,m.AUTOCOUNT,m.SCALE,fe("scale","type"),m.TYPE],n=(0,Yl.toMap)(tl(cl,t)),i=e.encodings.filter(a=>!ae(a));for(let a of i)if(ci(a,{exclude:n}))return!1;return!0}function ci(e,t={}){if(!(0,U.isObject)(e))return!1;for(let n in e)if(e.hasOwnProperty(n)&&(A(e[n])&&(!t.exclude||!t.exclude[n])||ci(e[n],t)))return!0;return!1}var ui=H(ne());function Xl(e){return e.map(t=>Zl(t))}function Zl(e){return t=>e[t]===void 0?t:e[t]}function Oe(e,t){return A(e)?!bt(e)&&e.enum?"?"+JSON.stringify(e.enum):"?":t?t(e):e}function Et(e,t){return t?t(e):e}const gn=new re,yn=[].concat(Vr,nn,[m.TRANSFORM,m.STACK],zr).reduce((e,t)=>e.set(t,!0),new re),vn={axis:{x:!0,y:!0,row:!0,column:!0},legend:{color:!0,opacity:!0,size:!0,shape:!0},scale:{x:!0,y:!0,color:!0,opacity:!0,row:!0,column:!0,size:!0,shape:!0},sort:{x:!0,y:!0,path:!0,order:!0},stack:{x:!0,y:!0}};function Pe(e,t=yn,n=gn){let i=[];t.get(m.MARK)&&i.push(Oe(e.mark,n.get(m.MARK))),e.transform&&e.transform.length>0&&i.push("transform:"+JSON.stringify(e.transform));let a;if(t.get(m.STACK)&&(a=li(e)),e.encodings){let r=e.encodings.reduce((s,u)=>{if(!ae(u)){let h;h=a&&u.channel===a.fieldChannel?di(Object.assign({},u,{stack:a.offset}),t,n):di(u,t,n),h&&s.push(h)}return s},[]).sort().join("|");r&&i.push(r)}for(let r of zr){let s=r.toString();if(t.get(r)&&e[s]){let u=e[s];i.push(`${s}=${JSON.stringify(u)}`)}}return i.join("|")}function di(e,t=yn,n=gn){let i=[];if(t.get(m.CHANNEL)&&i.push(Oe(e.channel,n.get(m.CHANNEL))),O(e)){let a=fi(e,t,n);a&&i.push(a)}else ie(e)?i.push(e.value):P(e)&&i.push("autocount()");return i.join(":")}function fi(e,t=yn,n=gn){if(t.get(m.AGGREGATE)&&ae(e))return"-";let i=ec(e,t,n),a=tc(e,t,n),r;if(O(e)){if(r=t.get("field")?Oe(e.field,n.get("field")):"...",t.get(m.TYPE))if(A(e.type))r+=","+Oe(e.type,n.get(m.TYPE));else{let s=((e.type||"quantitative")+"").substr(0,1);r+=","+Oe(s,n.get(m.TYPE))}r+=a.map(s=>{let u=s.value instanceof Array?"["+s.value+"]":s.value;return","+s.key+"="+u}).join("")}else P(e)&&(r="*,q");return r?i?((0,ui.isString)(i)?i:"?"+((0,U.keys)(i).length>0?JSON.stringify(i):""))+"("+r+")":r:null}function ec(e,t,n){if(t.get(m.AGGREGATE)&&e.aggregate&&!A(e.aggregate))return Et(e.aggregate,n.get(m.AGGREGATE));if(t.get(m.AGGREGATE)&&Tt(e))return Et("count",n.get(m.AGGREGATE));if(t.get(m.TIMEUNIT)&&e.timeUnit&&!A(e.timeUnit))return Et(e.timeUnit,n.get(m.TIMEUNIT));if(t.get(m.BIN)&&e.bin&&!A(e.bin))return"bin";{let i=null;for(let a of[m.AGGREGATE,m.AUTOCOUNT,m.TIMEUNIT,m.BIN]){let r=e[a];t.get(a)&&e[a]&&A(r)&&(i||(i={}),i[a]=bt(r)?r:r.enum)}return i&&e.hasFn&&(i.hasFn=!0),i}}function tc(e,t,n){let i=[];if(!(0,U.isBoolean)(e.bin)&&!bt(e.bin)){let a=e.bin;for(let r in a){let s=fe("bin",r);s&&t.get(s)&&a[r]!==void 0&&i.push({key:r,value:Oe(a[r],n.get(s))})}i.sort((r,s)=>r.key.localeCompare(s.key))}for(let a of[m.SCALE,m.SORT,m.STACK,m.AXIS,m.LEGEND])if(!(!A(e.channel)&&!vn[a][e.channel])&&t.get(a)&&e[a]!==void 0){let r=e[a];if((0,U.isBoolean)(r)||r===null)i.push({key:a+"",value:r||!1});else if((0,ui.isString)(r))i.push({key:a+"",value:Et(JSON.stringify(r),n.get(a))});else{let s=[];for(let u in r){let h=fe(a,u);h&&t.get(h)&&r[u]!==void 0&&s.push({key:u,value:Oe(r[u],n.get(h))})}if(s.length>0){let u=s.sort((h,o)=>h.key.localeCompare(o.key)).reduce((h,o)=>(h[o.key]=o.value,h),{});i.push({key:a+"",value:JSON.stringify(u)})}}}return i}function bn(e,t,n){let i=[],a=0;for(let r=0;r<n;r++){let s=e.indexOf(t,a);if(s!==-1)i.push(e.substring(a,s)),a=s+1;else break}if(i.push(e.substr(a)),i.length!==n+1)for(;i.length!==n+1;)i.push("");return i}var nc;(function(e){function t(r,s){let u=s.indexOf("(")===-1?n(bn(s,",",2)):a(s);return Object.assign({channel:r},u)}e.encoding=t;function n(r){let s={};s.field=r[0],s.type=Ws(r[1].toUpperCase())||"?";let u=r[2],h=0,o=0;for(;o<u.length;){let l=u.indexOf("=",o),c;if(l!==-1){let p=u.substring(o,l);if(u[o+p.length+1]==="{"){let f=o+p.length+1;h=i(f,u,"}");let d=u.substring(f,h+1);c=JSON.parse(d),o=h+2}else if(u[o+p.length+1]==="["){let f=o+p.length+1,d=i(f,u,"]"),g=u.substring(f,d+1);c=JSON.parse(g),o=d+2}else{let f=o,d=u.indexOf(",",o+p.length);d===-1&&(d=u.length),o=d+1,c=JSON.parse(u.substring(f+p.length+1,d))}tn(p)?s[p]=c:(s.bin=s.bin||{},s.bin[p]=c)}else break}return s}e.rawFieldDef=n;function i(r,s,u){for(let h=r;h<s.length;h++)if(s[h]===u)return h}e.getClosingIndex=i;function a(r){let s={};if(r[0]==="?"){let u=i(1,r,"}"),h=JSON.parse(r.substring(1,u+1));for(let o in h)(0,Lr.isArray)(h[o])?s[o]={enum:h[o]}:s[o]=h[o];return Object.assign({},s,n(bn(r.substring(u+2,r.length-1),",",2)))}else{let u=r.substring(0,r.indexOf("(")),h=r.substring(u.length+1,r.length-1),o=bn(h,",",2);if(Ml(u))return Object.assign({aggregate:u},n(o));if(bl(u))return Object.assign({timeUnit:u},n(o));if(u==="bin")return Object.assign({bin:{}},n(o))}}e.fn=a})(nc||(nc={}));var pi=H(ne());function ie(e){return e!=null&&e.value!==void 0}function O(e){return e!=null&&(e.field||e.aggregate==="count")}function P(e){return e!=null&&"autoCount"in e}function ae(e){return P(e)&&e.autoCount===!1}function Tt(e){return P(e)&&e.autoCount===!0}var rc=[m.AGGREGATE,m.BIN,m.TIMEUNIT,m.FIELD,m.TYPE,m.SCALE,m.SORT,m.AXIS,m.LEGEND,m.STACK,m.FORMAT];function hi(e,t){let{wildcardMode:n="skip"}=t,i={};for(let a of e){if(ae(a))continue;let{channel:r}=a;if(A(r))throw Error("Cannot convert wildcard channel to a fixed channel");let s=ie(a)?ic(a):xn(a,t);if(s===null){if(t.wildcardMode==="null")return null;continue}i[r]=s}return i}function ic(e){let{value:t}=e;return A(t)?null:{value:t}}function xn(e,t={}){let{props:n=rc,schema:i,wildcardMode:a="skip"}=t;if(O(e)){let r={};for(let s of n){let u=e[s];if(A(u)){if(a==="skip")continue;return null}if(u!==void 0){if(!(!vn[s]||vn[s][e.channel]))continue;if(tn(s)&&(0,pi.isObject)(u)){for(let h in u=Object.assign({},u),u)if(A(u[h])){if(a==="null")return null;delete u[h]}}if(s==="bin"&&u===!1)continue;s==="type"&&u==="key"?r.type="nominal":r[s]=u}if(s===m.SCALE&&i&&e.type==="ordinal"){let h=e.scale,{ordinalDomain:o}=i.fieldSchema(e.field);h!==null&&o&&(r[m.SCALE]=Object.assign({domain:o},(0,pi.isObject)(h)?h:{}))}}return r}else{if(e.autoCount===!1)throw Error("Cannot convert {autoCount: false} into a field def");return{aggregate:"count",field:"*",type:"quantitative"}}}function Ke(e){return O(e)?!be(e)&&e.type!=="temporal":P(e)}function be(e){if(O(e)){let t=xn(e,{props:["bin","timeUnit","type"]});return ai(t)||!!t.timeUnit}return!1}function ke(e){let t=e.scale===!0||e.scale==="?"?{}:e.scale||{},{type:n,channel:i,timeUnit:a,bin:r}=e;if(A(t.type)||A(n)||A(i)||A(r))return;if(t.type)return t.type;if(n==="temporal"&&A(a)||n==="quantitative"&&A(r))return;let s={type:n===le.KEY?"nominal":n,timeUnit:a,bin:r};return $l({type:t.type},i,s,void 0)}function L(e,t,n,i){function a(r){return e(r=new Date(+r)),r}return a.floor=a,a.round=function(r){var s=new Date(+r),u=new Date(r-1);return e(s),e(u),t(u,1),r-s<u-r?s:u},a.ceil=function(r){return e(r=new Date(r-1)),t(r,1),r},a.offset=function(r,s){return t(r=new Date(+r),s==null?1:Math.floor(s)),r},a.range=function(r,s,u){var h=[];if(r=new Date(r-1),s=new Date(+s),u=u==null?1:Math.floor(u),!(r<s)||!(u>0))return h;for(t(r,1),e(r),r<s&&h.push(new Date(+r));t(r,u),e(r),r<s;)h.push(new Date(+r));return h},a.filter=function(r){return L(function(s){for(;e(s),!r(s);)s.setTime(s-1)},function(s,u){for(;--u>=0;)for(;t(s,1),!r(s););})},n&&(a.count=function(r,s){return St.setTime(+r),Nt.setTime(+s),e(St),e(Nt),Math.floor(n(St,Nt))},a.every=function(r){return r=Math.floor(r),!isFinite(r)||!(r>0)?null:r>1?a.filter(i?function(s){return i(s)%r===0}:function(s){return a.count(0,s)%r===0}):a}),a}var St,Nt,Y=q((()=>{St=new Date,Nt=new Date})),Ct,wt,ac=q((()=>{Y(),Ct=L(function(){},function(e,t){e.setTime(+e+t)},function(e,t){return t-e}),Ct.every=function(e){return e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?L(function(t){t.setTime(Math.floor(t/e)*e)},function(t,n){t.setTime(+t+n*e)},function(t,n){return(n-t)/e}):Ct},wt=Ct})),En,oc=q((()=>{Y(),En=L(function(e){e.setMilliseconds(0)},function(e,t){e.setTime(+e+t*1e3)},function(e,t){return(t-e)/1e3},function(e){return e.getSeconds()})})),Tn,sc=q((()=>{Y(),Tn=L(function(e){e.setSeconds(0,0)},function(e,t){e.setTime(+e+t*6e4)},function(e,t){return(t-e)/6e4},function(e){return e.getMinutes()})})),Sn,lc=q((()=>{Y(),Sn=L(function(e){e.setMinutes(0,0,0)},function(e,t){e.setTime(+e+t*36e5)},function(e,t){return(t-e)/36e5},function(e){return e.getHours()})})),Nn,cc=q((()=>{Y(),Nn=L(function(e){e.setHours(0,0,0,0)},function(e,t){e.setDate(e.getDate()+t)},function(e,t){return(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/864e5},function(e){return e.getDate()-1})}));function Me(e){return L(function(t){t.setHours(0,0,0,0),t.setDate(t.getDate()-(t.getDay()+7-e)%7)},function(t,n){t.setDate(t.getDate()+n*7)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/6048e5})}var At,Cn,wn,An,On,kn,Mn,In,uc=q((()=>{Y(),At=Me(0),Cn=Me(1),wn=Me(2),An=Me(3),On=Me(4),kn=Me(5),Mn=Me(6),In=At})),Un,dc=q((()=>{Y(),Un=L(function(e){e.setHours(0,0,0,0),e.setDate(1)},function(e,t){e.setMonth(e.getMonth()+t)},function(e,t){return t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12},function(e){return e.getMonth()})})),Fn,fc=q((()=>{Y(),Fn=L(function(e){e.setHours(0,0,0,0),e.setMonth(0,1)},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e,t){return t.getFullYear()-e.getFullYear()},function(e){return e.getFullYear()})})),Dn,pc=q((()=>{Y(),Dn=L(function(e){e.setUTCMilliseconds(0)},function(e,t){e.setTime(+e+t*1e3)},function(e,t){return(t-e)/1e3},function(e){return e.getUTCSeconds()})})),_n,hc=q((()=>{Y(),_n=L(function(e){e.setUTCSeconds(0,0)},function(e,t){e.setTime(+e+t*6e4)},function(e,t){return(t-e)/6e4},function(e){return e.getUTCMinutes()})})),jn,mc=q((()=>{Y(),jn=L(function(e){e.setUTCMinutes(0,0,0)},function(e,t){e.setTime(+e+t*36e5)},function(e,t){return(t-e)/36e5},function(e){return e.getUTCHours()})})),Pn,gc=q((()=>{Y(),Pn=L(function(e){e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCDate(e.getUTCDate()+t)},function(e,t){return(t-e)/864e5},function(e){return e.getUTCDate()-1})}));function Ie(e){return L(function(t){t.setUTCHours(0,0,0,0),t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7)},function(t,n){t.setUTCDate(t.getUTCDate()+n*7)},function(t,n){return(n-t)/6048e5})}var Ot,Rn,$n,Bn,Ln,Wn,qn,Hn,yc=q((()=>{Y(),Ot=Ie(0),Rn=Ie(1),$n=Ie(2),Bn=Ie(3),Ln=Ie(4),Wn=Ie(5),qn=Ie(6),Hn=Ot})),Gn,vc=q((()=>{Y(),Gn=L(function(e){e.setUTCHours(0,0,0,0),e.setUTCDate(1)},function(e,t){e.setUTCMonth(e.getUTCMonth()+t)},function(e,t){return t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12},function(e){return e.getUTCMonth()})})),zn,bc=q((()=>{Y(),zn=L(function(e){e.setUTCHours(0,0,0,0),e.setUTCMonth(0,1)},function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)},function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()},function(e){return e.getUTCFullYear()})})),xc=sr({day:()=>Nn,days:()=>vi,friday:()=>kn,fridays:()=>Ni,hour:()=>Sn,hours:()=>yi,interval:()=>L,millisecond:()=>wt,milliseconds:()=>Yn,minute:()=>Tn,minutes:()=>gi,monday:()=>Cn,mondays:()=>xi,month:()=>Un,months:()=>Ai,saturday:()=>Mn,saturdays:()=>Ci,second:()=>En,seconds:()=>mi,sunday:()=>At,sundays:()=>bi,thursday:()=>On,thursdays:()=>Si,tuesday:()=>wn,tuesdays:()=>Ei,utcDay:()=>Pn,utcDays:()=>Di,utcFriday:()=>Wn,utcFridays:()=>Bi,utcHour:()=>jn,utcHours:()=>Fi,utcMillisecond:()=>ki,utcMilliseconds:()=>Mi,utcMinute:()=>_n,utcMinutes:()=>Ui,utcMonday:()=>Rn,utcMondays:()=>ji,utcMonth:()=>Gn,utcMonths:()=>qi,utcSaturday:()=>qn,utcSaturdays:()=>Li,utcSecond:()=>Dn,utcSeconds:()=>Ii,utcSunday:()=>Ot,utcSundays:()=>_i,utcThursday:()=>Ln,utcThursdays:()=>$i,utcTuesday:()=>$n,utcTuesdays:()=>Pi,utcWednesday:()=>Bn,utcWednesdays:()=>Ri,utcWeek:()=>Hn,utcWeeks:()=>Wi,utcYear:()=>zn,utcYears:()=>Hi,wednesday:()=>An,wednesdays:()=>Ti,week:()=>In,weeks:()=>wi,year:()=>Fn,years:()=>Oi}),Yn,mi,gi,yi,vi,bi,xi,Ei,Ti,Si,Ni,Ci,wi,Ai,Oi,ki,Mi,Ii,Ui,Fi,Di,_i,ji,Pi,Ri,$i,Bi,Li,Wi,qi,Hi,Ec=q((()=>{Y(),ac(),oc(),sc(),lc(),cc(),uc(),dc(),fc(),pc(),hc(),mc(),gc(),yc(),vc(),bc(),Yn=wt.range,mi=En.range,gi=Tn.range,yi=Sn.range,vi=Nn.range,bi=At.range,xi=Cn.range,Ei=wn.range,Ti=An.range,Si=On.range,Ni=kn.range,Ci=Mn.range,wi=In.range,Ai=Un.range,Oi=Fn.range,ki=wt,Mi=Yn,Ii=Dn.range,Ui=_n.range,Fi=jn.range,Di=Pn.range,_i=Ot.range,ji=Rn.range,Pi=$n.range,Ri=Bn.range,$i=Ln.range,Bi=Wn.range,Li=qn.range,Wi=Hn.range,qi=Gn.range,Hi=zn.range})),Tc=ce(((e,t)=>{var n=(Ec(),Na(xc)),i=new Date,a=new Date(0,0,1).setFullYear(0),r=new Date(Date.UTC(0,0,1)).setUTCFullYear(0);function s(d){return i.setTime(+d),i}function u(d,g,y,v,b,x){var S={type:d,date:g,unit:y};return v?S.step=v:S.minstep=1,b!=null&&(S.min=b),x!=null&&(S.max=x),S}function h(d,g,y,v,b,x){return u(d,function(S){return g.offset(y,S)},function(S){return g.count(y,S)},v,b,x)}var o=[h("second",n.second,a),h("minute",n.minute,a),h("hour",n.hour,a),h("day",n.day,a,[1,7]),h("month",n.month,a,[1,3,6]),h("year",n.year,a),u("seconds",function(d){return new Date(1970,0,1,0,0,d)},function(d){return s(d).getSeconds()},null,0,59),u("minutes",function(d){return new Date(1970,0,1,0,d)},function(d){return s(d).getMinutes()},null,0,59),u("hours",function(d){return new Date(1970,0,1,d)},function(d){return s(d).getHours()},null,0,23),u("weekdays",function(d){return new Date(1970,0,4+d)},function(d){return s(d).getDay()},[1],0,6),u("dates",function(d){return new Date(1970,0,d)},function(d){return s(d).getDate()},[1],1,31),u("months",function(d){return new Date(1970,d%12,1)},function(d){return s(d).getMonth()},[1],0,11)],l=[h("second",n.utcSecond,r),h("minute",n.utcMinute,r),h("hour",n.utcHour,r),h("day",n.utcDay,r,[1,7]),h("month",n.utcMonth,r,[1,3,6]),h("year",n.utcYear,r),u("seconds",function(d){return new Date(Date.UTC(1970,0,1,0,0,d))},function(d){return s(d).getUTCSeconds()},null,0,59),u("minutes",function(d){return new Date(Date.UTC(1970,0,1,0,d))},function(d){return s(d).getUTCMinutes()},null,0,59),u("hours",function(d){return new Date(Date.UTC(1970,0,1,d))},function(d){return s(d).getUTCHours()},null,0,23),u("weekdays",function(d){return new Date(Date.UTC(1970,0,4+d))},function(d){return s(d).getUTCDay()},[1],0,6),u("dates",function(d){return new Date(Date.UTC(1970,0,d))},function(d){return s(d).getUTCDate()},[1],1,31),u("months",function(d){return new Date(Date.UTC(1970,d%12,1))},function(d){return s(d).getUTCMonth()},[1],0,11)],c=[[31536e6,5],[7776e6,4],[2592e6,4],[12096e5,3],[6048e5,3],[1728e5,3],[864e5,3],[432e5,2],[216e5,2],[108e5,2],[36e5,2],[18e5,1],[9e5,1],[3e5,1],[6e4,1],[3e4,0],[15e3,0],[5e3,0],[1e3,0]];function p(d,g,y,v){var b=c[0],x,S,C;for(x=1,S=c.length;x<S;++x)if(b=c[x],g>b[0]){if(C=g/b[0],C>v)return d[c[x-1][1]];if(C>=y)return d[b[1]]}return d[c[S-1][1]]}function f(d){var g={},y,v;for(y=0,v=d.length;y<v;++y)g[d[y].type]=d[y];return g.find=function(b,x,S){return p(d,b,x,S)},g}t.exports=f(o),t.exports.utc=f(l)})),Sc=ce(((e,t)=>{var n=ne(),i=Tc(),a=1e-15;function r(c){if(!c)throw Error("Missing binning options.");var p=c.maxbins||15,f=c.base||10,d=Math.log(f),g=c.div||[5,2],y=c.min,v=c.max,b=v-y,x,S,C,T,w,N,D;if(c.step)x=c.step;else if(c.steps)x=c.steps[Math.min(c.steps.length-1,s(c.steps,b/p,0,c.steps.length))];else{for(S=Math.ceil(Math.log(p)/d),C=c.minstep||0,x=Math.max(C,f**+(Math.round(Math.log(b)/d)-S));Math.ceil(b/x)>p;)x*=f;for(N=0;N<g.length;++N)w=x/g[N],w>=C&&b/w<=p&&(x=w)}return w=Math.log(x),T=w>=0?0:~~(-w/d)+1,D=f**(-T-1),y=Math.min(y,Math.floor(y/x+D)*x),v=Math.ceil(v/x)*x,{start:y,stop:v,step:x,unit:{precision:T},value:u,index:h}}function s(c,p,f,d){for(;f<d;){var g=f+d>>>1;n.cmp(c[g],p)<0?f=g+1:d=g}return f}function u(c){return this.step*Math.floor(c/this.step+a)}function h(c){return Math.floor((c-this.start)/this.step+a)}function o(c){return this.unit.date(u.call(this,c))}function l(c){return h.call(this,this.unit.unit(c))}r.date=function(c){if(!c)throw Error("Missing date binning options.");var p=c.utc?i.utc:i,f=c.min,d=c.max,g=c.maxbins||20,y=c.minbins||4,v=d-+f,b=c.unit?p[c.unit]:p.find(v,y,g),x=r({min:b.min==null?b.unit(f):b.min,max:b.max==null?b.unit(d):b.max,maxbins:g,minstep:b.minstep,steps:b.step});return x.unit=b,x.index=l,c.raw||(x.value=o),x},t.exports=r})),Gi=ce(((e,t)=>{var n=ne(),i="__types__",a={boolean:n.boolean,integer:n.number,number:n.number,date:n.date,string:function(f){return f==null||f===""?null:f+""}},r={boolean:function(f){return f==="true"||f==="false"||n.isBoolean(f)},integer:function(f){return r.number(f)&&(f=+f)===~~f},number:function(f){return!isNaN(+f)&&!n.isDate(f)},date:function(f){return!isNaN(Date.parse(f))}};function s(f,d){if(!d)return f&&f[i]||null;f[i]=d}function u(f){return n.keys(f)}function h(f){return"["+f+"]"}function o(f,d){f=n.array(f),d=n.$(d);var g,y,v;if(f[i]&&(g=d(f[i]),n.isString(g)))return g;for(y=0,v=f.length;!n.isValid(g)&&y<v;++y)g=d?d(f[y]):f[y];return n.isDate(g)?"date":n.isNumber(g)?"number":n.isBoolean(g)?"boolean":n.isString(g)?"string":null}function l(f,d){if(f.length){var g=d?n.identity:(d=u(f[0]),h);return d.reduce(function(y,v){return y[v]=o(f,g(v)),y},{})}}function c(f,d){f=n.array(f),d=n.$(d);var g,y,v,b=["boolean","integer","number","date"];for(g=0;g<f.length;++g){for(v=d?d(f[g]):f[g],y=0;y<b.length;++y)n.isValid(v)&&!r[b[y]](v)&&(b.splice(y,1),--y);if(b.length===0)return"string"}return b[0]}function p(f,d){var g=d?n.identity:(d=u(f[0]),h);return d.reduce(function(y,v){return y[v]=c(f,g(v)),y},{})}o.annotation=s,o.all=l,o.infer=c,o.inferAll=p,o.parsers=a,t.exports=o})),Nc=ce(((e,t)=>{var n=ne(),i=t.exports;i.repeat=function(a,r){var s=Array(r),u;for(u=0;u<r;++u)s[u]=a;return s},i.zeros=function(a){return i.repeat(0,a)},i.range=function(a,r,s){if(arguments.length<3&&(s=1,arguments.length<2&&(r=a,a=0)),(r-a)/s==1/0)throw Error("Infinite range");var u=[],h=-1,o;if(s<0)for(;(o=a+s*++h)>r;)u.push(o);else for(;(o=a+s*++h)<r;)u.push(o);return u},i.random={},i.random.uniform=function(a,r){r===void 0&&(r=a===void 0?1:a,a=0);var s=r-a,u=function(){return a+s*Math.random()};return u.samples=function(h){return i.zeros(h).map(u)},u.pdf=function(h){return h>=a&&h<=r?1/s:0},u.cdf=function(h){return h<a?0:h>r?1:(h-a)/s},u.icdf=function(h){return h>=0&&h<=1?a+h*s:NaN},u},i.random.integer=function(a,r){r===void 0&&(r=a,a=0);var s=r-a,u=function(){return a+Math.floor(s*Math.random())};return u.samples=function(h){return i.zeros(h).map(u)},u.pdf=function(h){return h===Math.floor(h)&&h>=a&&h<r?1/s:0},u.cdf=function(h){var o=Math.floor(h);return o<a?0:o>=r?1:(o-a+1)/s},u.icdf=function(h){return h>=0&&h<=1?a-1+Math.floor(h*s):NaN},u},i.random.normal=function(a,r){a||(a=0),r||(r=1);var s,u=function(){var h=0,o=0,l,c;if(s!==void 0)return h=s,s=void 0,h;do h=Math.random()*2-1,o=Math.random()*2-1,l=h*h+o*o;while(l===0||l>1);return c=Math.sqrt(-2*Math.log(l)/l),s=a+o*c*r,a+h*c*r};return u.samples=function(h){return i.zeros(h).map(u)},u.pdf=function(h){var o=Math.exp((h-a)**2/(-2*r**2));return 1/(r*Math.sqrt(2*Math.PI))*o},u.cdf=function(h){var o,l=(h-a)/r,c=Math.abs(l);if(c>37)o=0;else{var p,f=Math.exp(-c*c/2);c<7.07106781186547?(p=.0352624965998911*c+.700383064443688,p=p*c+6.37396220353165,p=p*c+33.912866078383,p=p*c+112.079291497871,p=p*c+221.213596169931,p=p*c+220.206867912376,o=f*p,p=.0883883476483184*c+1.75566716318264,p=p*c+16.064177579207,p=p*c+86.7807322029461,p=p*c+296.564248779674,p=p*c+637.333633378831,p=p*c+793.826512519948,p=p*c+440.413735824752,o/=p):(p=c+.65,p=c+4/p,p=c+3/p,p=c+2/p,p=c+1/p,o=f/p/2.506628274631)}return l>0?1-o:o},u.icdf=function(h){if(h<=0||h>=1)return NaN;var o=2*h-1,l=8*(Math.PI-3)/(3*Math.PI*(4-Math.PI)),c=2/(Math.PI*l)+Math.log(1-o**2)/2,p=Math.log(1-o*o)/l,f=(o>0?1:-1)*Math.sqrt(Math.sqrt(c*c-p)-c);return a+r*Math.SQRT2*f},u},i.random.bootstrap=function(a,r){var s=a.filter(n.isValid),u=s.length,h=r?i.random.normal(0,r):null,o=function(){return s[~~(Math.random()*u)]+(h?h():0)};return o.samples=function(l){return i.zeros(l).map(o)},o}})),Cc=ce(((e,t)=>{var n=ne(),i=Gi(),a=Nc(),r=t.exports;r.unique=function(o,l,c){l=n.$(l),c||(c=[]);var p={},f,d,g;for(d=0,g=o.length;d<g;++d)f=l?l(o[d]):o[d],!(f in p)&&(p[f]=1,c.push(f));return c},r.count=function(o){return o&&o.length||0},r.count.valid=function(o,l){l=n.$(l);var c,p,f,d=0;for(p=0,f=o.length;p<f;++p)c=l?l(o[p]):o[p],n.isValid(c)&&(d+=1);return d},r.count.missing=function(o,l){l=n.$(l);var c,p,f,d=0;for(p=0,f=o.length;p<f;++p)c=l?l(o[p]):o[p],c??(d+=1);return d},r.count.distinct=function(o,l){l=n.$(l);var c={},p,f,d,g=0;for(f=0,d=o.length;f<d;++f)p=l?l(o[f]):o[f],!(p in c)&&(c[p]=1,g+=1);return g},r.count.map=function(o,l){l=n.$(l);var c={},p,f,d;for(f=0,d=o.length;f<d;++f)p=l?l(o[f]):o[f],c[p]=p in c?c[p]+1:1;return c},r.median=function(o,l){return l&&(o=o.map(n.$(l))),o=o.filter(n.isValid).sort(n.cmp),r.quantile(o,.5)},r.quartile=function(o,l){l&&(o=o.map(n.$(l))),o=o.filter(n.isValid).sort(n.cmp);var c=r.quantile;return[c(o,.25),c(o,.5),c(o,.75)]},r.quantile=function(o,l,c){c===void 0&&(c=l,l=n.identity),l=n.$(l);var p=(o.length-1)*c+1,f=Math.floor(p),d=+l(o[f-1]),g=p-f;return g?d+g*(l(o[f])-d):d},r.sum=function(o,l){l=n.$(l);for(var c=0,p=0,f=o.length,d;p<f;++p)d=l?l(o[p]):o[p],n.isValid(d)&&(c+=d);return c},r.mean=function(o,l){l=n.$(l);var c=0,p,f,d,g,y;for(f=0,g=0,d=o.length;f<d;++f)y=l?l(o[f]):o[f],n.isValid(y)&&(p=y-c,c+=p/++g);return c},r.mean.geometric=function(o,l){l=n.$(l);var c=1,p,f,d,g;for(g=0,p=0,f=o.length;g<f;++g)if(d=l?l(o[g]):o[g],n.isValid(d)){if(d<=0)throw Error("Geometric mean only defined for positive values.");c*=d,++p}return c=p>0?c**(1/p):0,c},r.mean.harmonic=function(o,l){l=n.$(l);var c=0,p,f,d,g;for(g=0,p=0,f=o.length;g<f;++g)d=l?l(o[g]):o[g],n.isValid(d)&&(c+=1/d,++p);return p/c},r.variance=function(o,l){if(l=n.$(l),!n.isArray(o)||o.length<2)return 0;var c=0,p=0,f,d,g,y;for(d=0,g=0;d<o.length;++d)y=l?l(o[d]):o[d],n.isValid(y)&&(f=y-c,c+=f/++g,p+=f*(y-c));return p/=g-1,p},r.stdev=function(o,l){return Math.sqrt(r.variance(o,l))},r.modeskew=function(o,l){var c=r.mean(o,l),p=r.median(o,l),f=r.stdev(o,l);return f===0?0:(c-p)/f},r.min=function(o,l){return r.extent(o,l)[0]},r.max=function(o,l){return r.extent(o,l)[1]},r.extent=function(o,l){l=n.$(l);var c,p,f,d,g=o.length;for(d=0;d<g;++d)if(f=l?l(o[d]):o[d],n.isValid(f)){c=p=f;break}for(;d<g;++d)f=l?l(o[d]):o[d],n.isValid(f)&&(f<c&&(c=f),f>p&&(p=f));return[c,p]},r.extent.index=function(o,l){l=n.$(l);var c=-1,p=-1,f,d,g,y,v=o.length;for(y=0;y<v;++y)if(g=l?l(o[y]):o[y],n.isValid(g)){f=d=g,c=p=y;break}for(;y<v;++y)g=l?l(o[y]):o[y],n.isValid(g)&&(g<f&&(f=g,c=y),g>d&&(d=g,p=y));return[c,p]},r.dot=function(o,l,c){var p=0,f,d;if(c)for(l=n.$(l),c=n.$(c),f=0;f<o.length;++f)d=l(o[f])*c(o[f]),d===d&&(p+=d);else{if(o.length!==l.length)throw Error("Array lengths must match.");for(f=0;f<o.length;++f)d=o[f]*l[f],d===d&&(p+=d)}return p},r.dist=function(o,l,c,p){var f=n.isFunction(c)||n.isString(c),d=o,g=f?o:l,y=f?p:c,v=y===2||y==null,b=o.length,x=0,S,C;for(f&&(l=n.$(l),c=n.$(c)),C=0;C<b;++C)S=f?l(d[C])-c(g[C]):d[C]-g[C],x+=v?S*S:Math.abs(S)**+y;return v?Math.sqrt(x):x**(1/y)},r.cohensd=function(o,l,c){var p=c?o.map(n.$(l)):o,f=c?o.map(n.$(c)):l,d=r.mean(p),g=r.mean(f),y=r.count.valid(p),v=r.count.valid(f);if(y+v-2<=0)return 0;var b=r.variance(p),x=r.variance(f),S=Math.sqrt(((y-1)*b+(v-1)*x)/(y+v-2));return S===0?0:(d-g)/S},r.covariance=function(o,l,c){var p=c?o.map(n.$(l)):o,f=c?o.map(n.$(c)):l,d=p.length,g=r.mean(p),y=r.mean(f),v=0,b=0,x,S,C,T,w;if(d!==f.length)throw Error("Input lengths must match.");for(x=0;x<d;++x)if(S=p[x],T=n.isValid(S),C=f[x],w=n.isValid(C),T&&w)v+=(S-g)*(C-y),++b;else if(T||w)throw Error("Valid values must align.");return v/(b-1)},r.rank=function(o,l){l=n.$(l)||n.identity;var c=o.map(function(x,S){return{idx:S,val:l(x)}}).sort(n.comparator("val")),p=o.length,f=Array(p),d=-1,g={},y,v,b;for(y=0;y<p;++y){if(v=c[y].val,d<0&&g===v)d=y-1;else if(d>-1&&g!==v){for(b=1+(y-1+d)/2;d<y;++d)f[c[d].idx]=b;d=-1}f[c[y].idx]=y+1,g=v}if(d>-1)for(b=1+(p-1+d)/2;d<p;++d)f[c[d].idx]=b;return f},r.cor=function(o,l,c){var p=c;c=p?o.map(n.$(c)):l,l=p?o.map(n.$(l)):o;var f=r.dot(l,c),d=r.mean(l),g=r.mean(c),y=r.stdev(l),v=r.stdev(c),b=o.length;return(f-b*d*g)/((b-1)*y*v)},r.cor.rank=function(o,l,c){var p=c?r.rank(o,l):r.rank(o),f=c?r.rank(o,c):r.rank(l),d=o.length,g,y,v;for(g=0,y=0;g<d;++g)v=p[g]-f[g],y+=v*v;return 1-6*y/(d*(d*d-1))},r.cor.dist=function(o,l,c){var p=c?o.map(n.$(l)):o,f=c?o.map(n.$(c)):l,d=r.dist.mat(p),g=r.dist.mat(f),y=d.length,v,b,x,S;for(v=0,b=0,x=0,S=0;v<y;++v)b+=d[v]*d[v],x+=g[v]*g[v],S+=d[v]*g[v];return Math.sqrt(S/Math.sqrt(b*x))},r.linearRegression=function(o,l,c){var p=c?o.map(n.$(l)):o,f=c?o.map(n.$(c)):l,d=p.length,g=r.covariance(p,f),y=r.stdev(p),v=r.stdev(f),b=g/(y*y),x=r.mean(f)-b*r.mean(p),S={slope:b,intercept:x,R:g/(y*v),rss:0},C,T;for(T=0;T<d;++T)n.isValid(p[T])&&n.isValid(f[T])&&(C=b*p[T]+x-f[T],S.rss+=C*C);return S},r.bootstrap={},r.bootstrap.ci=function(o,l,c,p,f){var d,g,y,v,b,x,S;for(n.isFunction(l)||n.isString(l)?(d=o.map(n.$(l)),g=c,y=p,v=f):(d=o,g=l,y=c,v=p),g=g?+g:1e3,y||(y=.05),b=a.random.bootstrap(d,v),S=0,x=Array(g);S<g;++S)x[S]=r.mean(b.samples(d.length));return x.sort(n.numcmp),[r.quantile(x,y/2),r.quantile(x,1-y/2)]},r.z={},r.z.ci=function(o,l,c){var p=o,f=l;(n.isFunction(l)||n.isString(l))&&(p=o.map(n.$(l)),f=c),f||(f=.05);var d=f===.05?1.96:a.random.normal(0,1).icdf(1-f/2),g=r.mean(p),y=r.stdev(p)/Math.sqrt(r.count.valid(p));return[g-d*y,g+d*y]},r.z.test=function(o,l,c,p){return n.isFunction(c)||n.isString(c)?(p&&p.paired?u:h)(p,o,l,c):n.isArray(l)?(c&&c.paired?u:h)(c,o,l):n.isFunction(l)||n.isString(l)?s(c,o,l):s(l,o)};function s(o,l,c){var p=o&&o.nullh||0,f=a.random.normal(0,1),d=r.mean(l,c),g=r.stdev(l,c)/Math.sqrt(r.count.valid(l,c));if(g===0)return d-p===0?1:0;var y=(d-p)/g;return 2*f.cdf(-Math.abs(y))}function u(o,l,c,p){var f=p?l.map(n.$(c)):l,d=p?l.map(n.$(p)):c,g=r.count(f),y=r.count(d),v=[],b;if(g!==y)throw Error("Array lengths must match.");for(b=0;b<g;++b)n.isValid(f[b])&&n.isValid(d[b])&&v.push(f[b]-d[b]);return r.z.test(v,o&&o.nullh||0)}function h(o,l,c,p){var f=p?l.map(n.$(c)):l,d=p?l.map(n.$(p)):c,g=r.count.valid(f),y=r.count.valid(d),v=a.random.normal(0,1),b=r.mean(f)-r.mean(d)-(o&&o.nullh||0),x=Math.sqrt(r.variance(f)/g+r.variance(d)/y);if(x===0)return b===0?1:0;var S=b/x;return 2*v.cdf(-Math.abs(S))}r.dist.mat=function(o){var l=o.length,c=l*l,p=Array(c),f=a.zeros(l),d=0,g,y,v;for(y=0;y<l;++y)for(p[y*l+y]=0,v=y+1;v<l;++v)p[y*l+v]=g=Math.abs(o[y]-o[v]),p[v*l+y]=g,f[y]+=g,f[v]+=g;for(y=0;y<l;++y)d+=f[y],f[y]/=l;for(d/=c,y=0;y<l;++y)for(v=y;v<l;++v)p[y*l+v]+=d-f[y]-f[v],p[v*l+y]=p[y*l+v];return p},r.entropy=function(o,l){l=n.$(l);var c,p,f=0,d=0,g=o.length;for(c=0;c<g;++c)f+=l?l(o[c]):o[c];if(f===0)return 0;for(c=0;c<g;++c)p=(l?l(o[c]):o[c])/f,p&&(d+=p*Math.log(p));return-d/Math.LN2},r.mutual=function(o,l,c,p){var f=p?o.map(n.$(l)):o,d=p?o.map(n.$(c)):l,g=p?o.map(n.$(p)):c,y={},v={},b=g.length,x=0,S=0,C=0,T,w,N;for(N=0;N<b;++N)y[f[N]]=0,v[d[N]]=0;for(N=0;N<b;++N)y[f[N]]+=g[N],v[d[N]]+=g[N],x+=g[N];for(w=1/(x*Math.LN2),N=0;N<b;++N)g[N]!==0&&(T=x*g[N]/(y[f[N]]*v[d[N]]),S+=g[N]*w*Math.log(T),C+=g[N]*w*Math.log(g[N]/x));return[S,1+S/C]},r.mutual.info=function(o,l,c,p){return r.mutual(o,l,c,p)[0]},r.mutual.dist=function(o,l,c,p){return r.mutual(o,l,c,p)[1]},r.profile=function(o,l){var c=0,p=0,f=0,d=0,g=null,y=null,v=0,b=[],x={},S,C,T,w,N;for(T=0;T<o.length;++T)w=l?l(o[T]):o[T],x[w]=w in x?x[w]+1:(d+=1,1),w==null?++f:n.isValid(w)&&(N=typeof w=="string"?w.length:w,(g===null||N<g)&&(g=N),(y===null||N>y)&&(y=N),S=N-c,c+=S/++p,v+=S*(N-c),b.push(N));return v/=p-1,C=Math.sqrt(v),b.sort(n.cmp),{type:i(o,l),unique:x,count:o.length,valid:p,missing:f,distinct:d,min:g,max:y,mean:c,stdev:C,median:w=r.quantile(b,.5),q1:r.quantile(b,.25),q3:r.quantile(b,.75),modeskew:C===0?0:(c-w)/C}},r.summary=function(o,l){l||(l=n.keys(o[0]));var c=l.map(function(p){var f=r.profile(o,n.$(p));return f.field=p,f});return c.__summary__=!0,c}})),wc=H(Sc()),Ac=H(Gi()),Oc=H(Cc()),kc=wc.default;function Mc(e,t={},n={fields:[]}){t=(0,U.extend)({},Ve,t);let i=(0,Oc.summary)(e),a=(0,Ac.inferAll)(e),r=n.fields.reduce((h,o)=>(h[o.name]=o,h),{}),s=i.map(function(h,o){let l=h.field,c=a[l]==="date"?R.DATETIME:a[l],p=h.distinct,f;if(c===R.NUMBER)f=te;else if(c===R.INTEGER)f=p<t.numberNominalLimit&&p/h.count<t.numberNominalProportion?we:te;else if(c===R.DATETIME){f=ye,h.min=new Date(e[0][l]),h.max=new Date(e[0][l]);for(let y of e){let v=new Date(y[l]).getTime();v<h.min.getTime()&&(h.min=new Date(v)),v>h.max.getTime()&&(h.max=new Date(v))}}else f=we;f==="nominal"&&p/h.count>t.minPercentUniqueForKey&&h.count>t.minCardinalityForKey&&(f=le.KEY);let d={name:l,originalIndex:o,vlType:f,type:c,stats:h,timeStats:{},binStats:{}},g=r[d.name];return d=(0,U.extend)(d,g),d});for(let h of s)if(h.vlType==="quantitative")for(let o of t.enum.binProps.maxbins)h.binStats[o]=zi(o,h.stats);else if(h.vlType==="temporal")for(let o of t.enum.timeUnit)o!==void 0&&(h.timeStats[o]=Yi(o,h.stats));let u=Object.assign({},n,{fields:s});return new Ic(u)}var kt={nominal:0,key:1,ordinal:2,temporal:3,quantitative:4},Ic=class{constructor(e){this._tableSchema=e,e.fields.sort(function(t,n){return kt[t.vlType]<kt[n.vlType]?-1:kt[t.vlType]>kt[n.vlType]?1:t.name.localeCompare(n.name)}),e.fields.forEach((t,n)=>t.index=n),this._fieldSchemaIndex=e.fields.reduce((t,n)=>(t[n.name]=n,t),{})}fieldNames(){return this._tableSchema.fields.map(e=>e.name)}get fieldSchemas(){return this._tableSchema.fields}fieldSchema(e){return this._fieldSchemaIndex[e]}tableSchema(){let e=(0,U.duplicate)(this._tableSchema);return e.fields.sort((t,n)=>t.originalIndex-n.originalIndex),e}primitiveType(e){return this._fieldSchemaIndex[e]?this._fieldSchemaIndex[e].type:null}vlType(e){return this._fieldSchemaIndex[e]?this._fieldSchemaIndex[e].vlType:null}cardinality(e,t=!0,n=!1){let i=this._fieldSchemaIndex[e.field];if(e.aggregate||P(e)&&e.autoCount)return 1;if(e.bin){let a;a=typeof e.bin=="boolean"?{maxbins:pn(e.channel)}:e.bin==="?"?{enum:[!0,!1]}:e.bin;let r=a.maxbins;return i.binStats[r]||(i.binStats[r]=zi(r,i.stats)),i.binStats[r].distinct}else if(e.timeUnit){if(t)switch(e.timeUnit){case B.SECONDS:return 60;case B.MINUTES:return 60;case B.HOURS:return 24;case B.DAY:return 7;case B.DATE:return 31;case B.MONTH:return 12;case B.QUARTER:return 4;case B.MILLISECONDS:return 1e3}let a=e.timeUnit,r=i.timeStats;return(!r||!r[a])&&(r=Object.assign({},r,{[a]:Yi(e.timeUnit,i.stats)})),n?r[a].distinct-Qi(r[a].unique,["Invalid Date",null]):r[a].distinct}else return i?n?i.stats.distinct-Qi(i.stats.unique,[NaN,null]):i.stats.distinct:null}timeUnitHasVariation(e){if(!e.timeUnit)return;if(e.timeUnit===B.DAY){let n=(0,U.extend)({},e,{timeUnit:B.DATE});if(this.cardinality(n,!1,!0)<=1)return!1}let t=e.timeUnit;for(let n of Kr)if(ei(t,n)){let i=(0,U.extend)({},e,{timeUnit:n});if(this.cardinality(i,!1,!0)<=1)return!1}return!0}domain(e){let t=this._fieldSchemaIndex[e.field],n=(0,U.keys)(t.stats.unique);return t.vlType==="quantitative"?[+t.stats.min,+t.stats.max]:t.type===R.DATETIME?[t.stats.min,t.stats.max]:t.type===R.INTEGER||t.type===R.NUMBER?(n=n.map(i=>+i),n.sort(U.cmp)):t.vlType==="ordinal"&&t.ordinalDomain?t.ordinalDomain:n.map(i=>i==="null"?null:i).sort(U.cmp)}stats(e){let t=this._fieldSchemaIndex[e.field];return t?t.stats:null}};function zi(e,t){let n=kc({min:t.min,max:t.max,maxbins:e}),i=(0,U.extend)({},t);return i.unique=Uc(n,t.unique),i.distinct=(n.stop-n.start)/n.step,i.min=n.start,i.max=n.stop,i}function Yi(e,t){let n=(0,U.extend)({},t),i={};return(0,U.keys)(t.unique).forEach(function(a){let r=a==="null"?null:new Date(a),s;s=r===null?null:isNaN(r.getTime())?"Invalid Date":(e===B.DAY?r.getDay():El(e,r)).toString(),i[s]=(i[s]||0)+t.unique[a]}),n.unique=i,n.distinct=(0,U.keys)(i).length,n}function Uc(e,t){let n={};for(let i in t){let a;a=i===null?null:isNaN(Number(i))?NaN:e.value(Number(i)),n[a]=(n[a]||0)+t[i]}return n}function Qi(e,t){return t.reduce(function(n,i){return e[i]?n+1:n},0)}var R;(function(e){e[e.STRING="string"]="STRING",e[e.NUMBER="number"]="NUMBER",e[e.INTEGER="integer"]="INTEGER",e[e.BOOLEAN="boolean"]="BOOLEAN",e[e.DATETIME="datetime"]="DATETIME"})(R||(R={}));var Vi=class{constructor(e){this.constraint=e}name(){return this.constraint.name}description(){return this.constraint.description}properties(){return this.constraint.properties}strict(){return this.constraint.strict}},Ki=class extends Vi{constructor(e){super(e)}hasAllRequiredPropertiesSpecific(e){return oe(this.constraint.properties,t=>{if(se(t)){let n=t.parent,i=t.child;return e[n]?!A(e[n][i]):!0}return e[t]?!A(e[t]):!0})}satisfy(e,t,n,i){return!this.constraint.allowWildcardForProperties&&!this.hasAllRequiredPropertiesSpecific(e)?!0:this.constraint.satisfy(e,t,n,i)}};const Ji=[{name:"aggregateOpSupportedByType",description:"Aggregate function should be supported by data type.",properties:[m.TYPE,m.AGGREGATE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,i)=>e.aggregate?!oi(e.type):!0},{name:"asteriskFieldWithCountOnly",description:'Field="*" should be disallowed except aggregate="count"',properties:[m.FIELD,m.AGGREGATE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,i)=>e.field==="*"==(e.aggregate==="count")},{name:"minCardinalityForBin",description:"binned quantitative field should not have too low cardinality",properties:[m.BIN,m.FIELD,m.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,i)=>{if(e.bin&&e.type==="quantitative"){let a={channel:e.channel,field:e.field,type:e.type};return t.cardinality(a)>=i.minCardinalityForBin}return!0}},{name:"binAppliedForQuantitative",description:"bin should be applied to quantitative field only.",properties:[m.TYPE,m.BIN],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,i)=>e.bin?e.type===te:!0},{name:"channelFieldCompatible",description:"encoding channel's range type be compatible with channel type.",properties:[m.CHANNEL,m.TYPE,m.BIN,m.TIMEUNIT],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,i)=>{let a=Object.assign({field:"f"},xn(e,{schema:t,props:["bin","timeUnit","type"]})),{compatible:r}=Rl(a,e.channel);return r?!0:!!((e.channel==="row"||e.channel==="column")&&(hl(a.timeUnit)||ml(a.timeUnit)))}},{name:"hasFn",description:"A field with as hasFn flag should have one of aggregate, timeUnit, or bin.",properties:[m.AGGREGATE,m.BIN,m.TIMEUNIT],allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n,i)=>e.hasFn?!!e.aggregate||!!e.bin||!!e.timeUnit:!0},{name:"omitScaleZeroWithBinnedField",description:"Do not use scale zero with binned field",properties:[m.SCALE,fe("scale","zero"),m.BIN],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,i)=>!(e.bin&&e.scale&&e.scale.zero===!0)},{name:"onlyOneTypeOfFunction",description:"Only of of aggregate, autoCount, timeUnit, or bin should be applied at the same time.",properties:[m.AGGREGATE,m.AUTOCOUNT,m.TIMEUNIT,m.BIN],allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n,i)=>O(e)?(!A(e.aggregate)&&e.aggregate?1:0)+(!A(e.bin)&&e.bin?1:0)+(!A(e.timeUnit)&&e.timeUnit?1:0)<=1:!0},{name:"timeUnitAppliedForTemporal",description:"Time unit should be applied to temporal field only.",properties:[m.TYPE,m.TIMEUNIT],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,i)=>!(e.timeUnit&&e.type!=="temporal")},{name:"timeUnitShouldHaveVariation",description:"A particular time unit should be applied only if they produce unique values.",properties:[m.TIMEUNIT,m.TYPE],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n,i)=>e.timeUnit&&e.type==="temporal"?!n.has("timeUnit")&&!i.constraintManuallySpecifiedValue?!0:t.timeUnitHasVariation(e):!0},{name:"scalePropertiesSupportedByScaleType",description:"Scale properties must be supported by correct scale type",properties:[].concat(pt,[m.SCALE,m.TYPE]),allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n,i)=>{if(e.scale){let a=e.scale,r=ke(e);if(r==null)return!0;for(let s in a){if(s==="type"||s==="name"||s==="enum")continue;let u=s;if(r==="point"){if(!Zt("point",u)&&!Zt("band",u))return!1}else if(!Zt(r,u))return!1}}return!0}},{name:"scalePropertiesSupportedByChannel",description:"Not all scale properties are supported by all encoding channels",properties:[].concat(pt,[m.SCALE,m.CHANNEL]),allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n,i)=>{if(e){let a=e.channel,r=e.scale;if(a&&!A(a)&&r){if(a==="row"||a==="column")return!1;for(let s in r)if(r.hasOwnProperty(s)&&!(s==="type"||s==="name"||s==="enum")&&Xs(a,s)!==void 0)return!1}}return!0}},{name:"typeMatchesPrimitiveType",description:"Data type should be supported by field's primitive type.",properties:[m.FIELD,m.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,i)=>{if(e.field==="*")return!0;let a=t.primitiveType(e.field),r=e.type;if(!n.has("field")&&!n.has("type")&&!i.constraintManuallySpecifiedValue)return!0;switch(a){case R.BOOLEAN:case R.STRING:return r!=="quantitative"&&r!=="temporal";case R.NUMBER:case R.INTEGER:return r!==ye;case R.DATETIME:return r===ye;case null:return!1}throw Error("Not implemented")}},{name:"typeMatchesSchemaType",description:"Enumerated data type of a field should match the field's type in the schema.",properties:[m.FIELD,m.TYPE],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n,i)=>!n.has("field")&&!n.has("type")&&!i.constraintManuallySpecifiedValue?!0:e.field==="*"?e.type===te:t.vlType(e.field)===e.type},{name:"maxCardinalityForCategoricalColor",description:"Categorical channel should not have too high cardinality",properties:[m.CHANNEL,m.FIELD],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n,i)=>e.channel==="color"&&(e.type==="nominal"||e.type===le.KEY)?t.cardinality(e)<=i.maxCardinalityForCategoricalColor:!0},{name:"maxCardinalityForFacet",description:"Row/column channel should not have too high cardinality",properties:[m.CHANNEL,m.FIELD,m.BIN,m.TIMEUNIT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n,i)=>e.channel==="row"||e.channel==="column"?t.cardinality(e)<=i.maxCardinalityForFacet:!0},{name:"maxCardinalityForShape",description:"Shape channel should not have too high cardinality",properties:[m.CHANNEL,m.FIELD,m.BIN,m.TIMEUNIT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n,i)=>e.channel==="shape"?t.cardinality(e)<=i.maxCardinalityForShape:!0},{name:"dataTypeAndFunctionMatchScaleType",description:"Scale type must match data type",properties:[m.TYPE,m.SCALE,fe("scale","type"),m.TIMEUNIT,m.BIN],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,i)=>{if(e.scale){let a=e.type,r=ke(e);if(oi(a))return r===void 0||Ae(r);if(a==="temporal")return e.timeUnit?K([F.TIME,F.UTC,void 0],r)||Ae(r):K([F.TIME,F.UTC,void 0],r);if(a==="quantitative")return e.bin?K([F.LINEAR,void 0],r):K([F.LOG,F.POW,F.SQRT,F.QUANTILE,F.QUANTIZE,F.LINEAR,void 0],r)}return!0}},{name:"stackIsOnlyUsedWithXY",description:"stack should only be allowed for x and y channels",properties:[m.STACK,m.CHANNEL],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,i)=>e.stack?e.channel==="x"||e.channel==="y":!0}].map(e=>new Ki(e));Ji.reduce((e,t)=>(e[t.name()]=t,e),{});const Fc=Ji.reduce((e,t)=>{for(let n of t.properties())e.set(n,e.get(n)||[]),e.get(n).push(t);return e},new re),Xi=[{name:"doesNotSupportConstantValue",description:"row, column, x, y, order, and detail should not work with constant values.",properties:[m.TYPE,m.AGGREGATE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,i)=>!K(["row","column","x","y","detail","order"],e.channel)}].map(e=>new Ki(e));Xi.reduce((e,t)=>(e[t.name()]=t,e),{});const Dc=Xi.reduce((e,t)=>{for(let n of t.properties())e.set(n,e.get(n)||[]),e.get(n).push(t);return e},new re);function _c(e,t,n,i,a,r){let s=Fc.get(e)||[],u=i.getEncodingQueryByIndex(n);for(let o of s)if((o.strict()||r[o.name()])&&!o.satisfy(u,a,i.wildcardIndex.encodings[n],r)){let l="(enc) "+o.name();return r.verbose&&console.log(l+" failed with "+i.toShorthand()+" for "+t.name),l}let h=Dc.get(e)||[];for(let o of h)if((o.strict()||r[o.name()])&&ie(u)&&!o.satisfy(u,a,i.wildcardIndex.encodings[n],r)){let l="(enc) "+o.name();return r.verbose&&console.log(l+" failed with "+i.toShorthand()+" for "+t.name),l}return null}var jc=Or.reduce((e,t)=>(e[t]=!0,e),{}),Pc=class extends Vi{constructor(e){super(e)}hasAllRequiredPropertiesSpecific(e){return oe(this.constraint.properties,t=>{if(t===m.MARK)return!A(e.getMark());if(se(t)){let n=t.parent,i=t.child;return oe(e.getEncodings(),a=>a[n]?!A(a[n][i]):!0)}if(!Qr(t))throw Error("UNIMPLEMENTED");return oe(e.getEncodings(),n=>n[t]?!A(n[t]):!0)})}satisfy(e,t,n){return!this.constraint.allowWildcardForProperties&&!this.hasAllRequiredPropertiesSpecific(e)?!0:this.constraint.satisfy(e,t,n)}};const Zi=[{name:"noRepeatedChannel",description:"Each encoding channel should only be used once.",properties:[m.CHANNEL],allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n)=>{let i={};return oe(e.getEncodings(),a=>A(a.channel)?!0:i[a.channel]?!1:(i[a.channel]=!0,!0))}},{name:"alwaysIncludeZeroInScaleWithBarMark",description:"Do not recommend bar mark if scale does not start at zero",properties:[m.MARK,m.SCALE,fe("scale","zero"),m.CHANNEL,m.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>{let i=e.getMark(),a=e.getEncodings();if(i==="bar"){for(let r of a)if(O(r)&&(r.channel==="x"||r.channel==="y")&&r.type==="quantitative"&&r.scale&&r.scale.zero===!1)return!1}return!0}},{name:"autoAddCount",description:"Automatically adding count only for plots with only ordinal, binned quantitative, or temporal with timeunit fields.",properties:[m.BIN,m.TIMEUNIT,m.TYPE,m.AUTOCOUNT],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{if(de(e.getEncodings(),i=>Tt(i)))return oe(e.getEncodings(),i=>{if(ie(i)||P(i))return!0;switch(i.type){case te:return!!i.bin;case ye:return!!i.timeUnit;case Ce:case le.KEY:case we:return!0}throw Error("Unsupported Type")});{let i=e.wildcardIndex.encodingIndicesByProperty.get("autoCount")||[];if(oe(i,a=>{let r=e.getEncodingQueryByIndex(a);return P(r)&&!A(r.autoCount)}))return de(e.getEncodings(),a=>(O(a)||P(a))&&a.type==="quantitative"?ae(a)?!1:O(a)&&(!a.bin||A(a.bin)):O(a)&&a.type==="temporal"?!a.timeUnit||A(a.timeUnit):!1)}return!0}},{name:"channelPermittedByMarkType",description:"Each encoding channel should be supported by the mark type",properties:[m.CHANNEL,m.MARK],allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n)=>{let i=e.getMark();return A(i)?!0:oe(e.getEncodings(),a=>A(a.channel)?!0:!!xo(a.channel,i))}},{name:"hasAllRequiredChannelsForMark",description:"All required channels for the specified mark should be specified",properties:[m.CHANNEL,m.MARK],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>{let i=e.getMark();switch(i){case ze:case gt:return e.channelUsed("x")&&e.channelUsed("y");case yt:return e.channelUsed(Qt);case"bar":case on:case sn:case vt:case an:case rn:return e.channelUsed("x")||e.channelUsed("y");case Ye:return!e.wildcardIndex.hasProperty(m.CHANNEL)||e.channelUsed("x")||e.channelUsed("y")}throw Error("hasAllRequiredChannelsForMark not implemented for mark"+JSON.stringify(i))}},{name:"omitAggregate",description:"Omit aggregate plots.",properties:[m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>!e.isAggregate()},{name:"omitAggregatePlotWithDimensionOnlyOnFacet",description:"Omit aggregate plots with dimensions only on facets as that leads to inefficient use of space.",properties:[m.CHANNEL,m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>{if(e.isAggregate()){let i=!1,a=!1,r=!1;if(e.specQuery.encodings.forEach((s,u)=>{ie(s)||ae(s)||O(s)&&!s.aggregate&&(a=!0,K(["row","column"],s.channel)?e.wildcardIndex.hasEncodingProperty(u,m.CHANNEL)&&(r=!0):i=!0)}),a&&!i&&(r||n.constraintManuallySpecifiedValue))return!1}return!0}},{name:"omitAggregatePlotWithoutDimension",description:"Aggregate plots without dimension should be omitted",properties:[m.AGGREGATE,m.AUTOCOUNT,m.BIN,m.TIMEUNIT,m.TYPE],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>e.isAggregate()?de(e.getEncodings(),i=>!!(be(i)||O(i)&&i.type==="temporal")):!0},{name:"omitBarLineAreaWithOcclusion",description:"Don't use bar, line or area to visualize raw plot as they often lead to occlusion.",properties:[m.MARK,m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>K(["bar","line","area"],e.getMark())?e.isAggregate():!0},{name:"omitBarTickWithSize",description:"Do not map field to size channel with bar and tick mark",properties:[m.CHANNEL,m.MARK],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{let i=e.getMark();if(K(["tick","bar"],i)&&e.channelEncodingField("size")){if(n.constraintManuallySpecifiedValue)return!1;{let a=e.specQuery.encodings;for(let r=0;r<a.length;r++)if(a[r].channel==="size")return!e.wildcardIndex.hasEncodingProperty(r,m.CHANNEL)}}return!0}},{name:"omitBarAreaForLogScale",description:"Do not use bar and area mark for x and y's log scale",properties:[m.MARK,m.CHANNEL,m.SCALE,fe("scale","type"),m.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>{let i=e.getMark(),a=e.getEncodings();if(i==="area"||i==="bar"){for(let r of a)if(O(r)&&(r.channel==="x"||r.channel==="y")&&r.scale&&ke(r)===F.LOG)return!1}return!0}},{name:"omitMultipleNonPositionalChannels",description:"Unless manually specified, do not use multiple non-positional encoding channel to avoid over-encoding.",properties:[m.CHANNEL],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{let i=e.specQuery.encodings,a=0,r=!1;for(let s=0;s<i.length;s++){let u=i[s];if(ie(u)||ae(u))continue;let h=u.channel;if(!A(h)&&jc[h+""]&&(a+=1,e.wildcardIndex.hasEncodingProperty(s,m.CHANNEL)&&(r=!0),a>1&&(r||n.constraintManuallySpecifiedValue)))return!1}return!0}},{name:"omitNonPositionalOrFacetOverPositionalChannels",description:"Do not use non-positional channels unless all positional channels are used",properties:[m.CHANNEL],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>{let i=e.specQuery.encodings,a=!1,r=!1,s=!1,u=!1;for(let h=0;h<i.length;h++){let o=i[h];if(ie(o)||ae(o))continue;let l=o.channel;l==="x"?s=!0:l==="y"?u=!0:A(l)||(a=!0,e.wildcardIndex.hasEncodingProperty(h,m.CHANNEL)&&(r=!0))}return r||n.constraintManuallySpecifiedValue&&a?s&&u:!0}},{name:"omitRaw",description:"Omit raw plots.",properties:[m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>!!e.isAggregate()},{name:"omitRawContinuousFieldForAggregatePlot",description:"Aggregate plot should not use raw continuous field as group by values. (Quantitative should be binned. Temporal should have time unit.)",properties:[m.AGGREGATE,m.AUTOCOUNT,m.TIMEUNIT,m.BIN,m.TYPE],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{if(e.isAggregate()){let i=e.specQuery.encodings;for(let a=0;a<i.length;a++){let r=i[a];if(!(ie(r)||ae(r))&&(O(r)&&r.type==="temporal"&&!r.timeUnit&&(e.wildcardIndex.hasEncodingProperty(a,m.TIMEUNIT)||n.constraintManuallySpecifiedValue)||r.type==="quantitative"&&O(r)&&!r.bin&&!r.aggregate&&(e.wildcardIndex.hasEncodingProperty(a,m.BIN)||e.wildcardIndex.hasEncodingProperty(a,m.AGGREGATE)||e.wildcardIndex.hasEncodingProperty(a,m.AUTOCOUNT)||n.constraintManuallySpecifiedValue)))return!1}}return!0}},{name:"omitRawDetail",description:"Do not use detail channel with raw plot.",properties:[m.CHANNEL,m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>e.isAggregate()?!0:oe(e.specQuery.encodings,(i,a)=>ie(i)||ae(i)?!0:!(i.channel==="detail"&&(e.wildcardIndex.hasEncodingProperty(a,m.CHANNEL)||n.constraintManuallySpecifiedValue)))},{name:"omitRepeatedField",description:"Each field should be mapped to only one channel",properties:[m.FIELD],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{let i={},a={},r=e.specQuery.encodings;for(let s=0;s<r.length;s++){let u=r[s];if(ie(u)||P(u))continue;let h;if(u.field&&!A(u.field)&&(h=u.field),P(u)&&!A(u.autoCount)&&(h="count_*"),h){if(e.wildcardIndex.hasEncodingProperty(s,m.FIELD)&&(a[h]=!0),i[h]&&(a[h]||n.constraintManuallySpecifiedValue))return!1;i[h]=!0}}return!0}},{name:"omitVerticalDotPlot",description:"Do not output vertical dot plot.",properties:[m.CHANNEL],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{let i=e.getEncodings();return!(i.length===1&&i[0].channel==="y")}},{name:"hasAppropriateGraphicTypeForMark",description:"Has appropriate graphic type for mark",properties:[m.CHANNEL,m.MARK,m.TYPE,m.TIMEUNIT,m.BIN,m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>{let i=e.getMark();switch(i){case ze:case gt:if(e.isAggregate()){let c=e.getEncodingQueryByChannel("x"),p=e.getEncodingQueryByChannel("y"),f=Ke(c),d=Ke(p);return c&&p&&f!==d&&!(O(c)&&!f&&K(["nominal","key"],c.type))&&!(O(p)&&!d&&K(["nominal","key"],p.type))}return!0;case yt:return!0;case"bar":case vt:if(e.channelEncodingField("size"))return!1;{let c=e.getEncodingQueryByChannel("x"),p=e.getEncodingQueryByChannel("y"),f=Ke(c),d=Ke(p);return f!==d}case rn:let a=e.getEncodingQueryByChannel("x"),r=e.getEncodingQueryByChannel("y"),s=be(a),u=be(r),h=e.getEncodingQueryByChannel(ue),o=Ke(h),l=O(h)?h.type===Ce:!1;return(s&&u||s&&!e.channelUsed("y")||u&&!e.channelUsed("x"))&&(!h||h&&(o||l));case on:case Ye:case sn:case an:return!0}throw Error("hasAllRequiredChannelsForMark not implemented for mark"+i)}},{name:"omitInvalidStackSpec",description:"If stack is specified, must follow Vega-Lite stack rules",properties:[m.STACK,m.FIELD,m.CHANNEL,m.MARK,m.AGGREGATE,m.AUTOCOUNT,m.SCALE,fe("scale","type"),m.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>{if(!e.wildcardIndex.hasProperty(m.STACK))return!0;let i=e.getVlStack();return!(i===null&&e.getStackOffset()!==null||i.fieldChannel!==e.getStackChannel())}},{name:"omitNonSumStack",description:"Stack specifications that use non-summative aggregates should be omitted (even implicit ones)",properties:[m.CHANNEL,m.MARK,m.AGGREGATE,m.AUTOCOUNT,m.SCALE,fe("scale","type"),m.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>{let i=e.getVlStack();if(i!=null){let a=e.getEncodingQueryByChannel(i.fieldChannel);if(!K(ni,a.aggregate))return!1}return!0}},{name:"omitTableWithOcclusionIfAutoAddCount",description:"Plots without aggregation or autocount where x and y are both discrete should be omitted if autoAddCount is enabled as they often lead to occlusion",properties:[m.CHANNEL,m.TYPE,m.TIMEUNIT,m.BIN,m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>{if(n.autoAddCount){let i=e.getEncodingQueryByChannel("x"),a=e.getEncodingQueryByChannel("y");if((!O(i)||be(i))&&(!O(a)||be(a)))return e.isAggregate()?oe(e.getEncodings(),r=>{let s=r.channel;return!(s!=="x"&&s!=="y"&&s!=="row"&&s!=="column"&&O(r)&&!r.aggregate)}):!1}return!0}}].map(e=>new Pc(e));Zi.reduce((e,t)=>(e[t.name()]=t,e),{});var Rc=Zi.reduce((e,t)=>{for(let n of t.properties())e.set(n,e.get(n)||[]),e.get(n).push(t);return e},new re);function ea(e,t,n,i,a){let r=Rc.get(e)||[];for(let s of r)if((s.strict()||a[s.name()])&&!s.satisfy(n,i,a)){let u="(spec) "+s.name();return a.verbose&&console.log(u+" failed with "+n.toShorthand()+" for "+t.name),u}return null}var Mt=new re;function $c(e){return Mt.get(e)}Mt.set("mark",(e,t,n)=>(i,a)=>(a.getMark().enum.forEach(r=>{a.setMark(r),ea("mark",e.mark,a,t,n)||i.push(a.duplicate())}),a.resetMark(),i)),en.forEach(e=>{Mt.set(e,ta(e))}),ht.forEach(e=>{Mt.set(e,ta(e))});function ta(e){return(t,n,i)=>(a,r)=>{let s=t.encodingIndicesByProperty.get(e);function u(h){if(h===s.length){a.push(r.duplicate());return}let o=s[h],l=t.encodings[o].get(e),c=r.getEncodingQueryByIndex(o),p=r.getEncodingProperty(o,e);ie(c)||ae(c)||!p?u(h+1):(l.enum.forEach(f=>{f===null&&(f=void 0),r.setEncodingProperty(o,e,f,l),!_c(e,l,o,r,n,i)&&(ea(e,l,r,n,i)||u(h+1))}),r.resetEncodingProperty(o,e,l))}return u(0),a}}var Bc=H(ne());function Lc(e){return(0,Bc.isObject)(e)&&!!e.property}function Je(e,t,n){return t||(t=new re),n||(n=new re),e.forEach(i=>{Lc(i)?(t.setByKey(i.property,!0),n.setByKey(i.property,i.replace)):t.setByKey(i,!0)}),{include:t,replaceIndex:n,replacer:Xl(n)}}const na=[m.FIELD,m.TYPE,m.AGGREGATE,m.BIN,m.TIMEUNIT,m.STACK],Wc=na.concat([{property:m.CHANNEL,replace:{x:"xy",y:"xy",color:"style",size:"style",shape:"style",opacity:"style",row:"facet",column:"facet"}}]);var ra=H(ne()),Qn={};function It(e,t){Qn[e]=t}function qc(e,t){if(t){let n={name:"",path:"",items:[]},i={},a=[],r=[],s=[];for(let u=0;u<t.length;u++){a.push(u>0?a[u-1].duplicate():new re),r.push(u>0?r[u-1].duplicate():new re);let h=t[u].groupBy;if((0,ra.isArray)(h)){let o=Je(h,a[u],r[u]);s.push(o.replacer)}}return e.forEach(u=>{let h="",o=n;for(let l=0;l<t.length;l++){let c=o.groupBy=t[l].groupBy;o.orderGroupBy=t[l].orderGroupBy;let p=(0,ra.isArray)(c)?Pe(u.specQuery,a[l],s[l]):Qn[c](u.specQuery);h+="/"+p,i[h]||(i[h]={name:p,path:h,items:[]},o.items.push(i[h])),o=i[h]}o.items.push(u)}),n}else return{name:"",path:"",items:e}}var Hc=[m.FIELD],ia=Je(Hc);function Gc(e,t){return Qn[t](e)}It("field",e=>Pe(e,ia.include,ia.replacer));const aa=Je(na);It("fieldTransform",e=>Pe(e,aa.include,aa.replacer));const oa=Je(Wc);It("encoding",e=>Pe(e,oa.include,oa.replacer)),It("spec",e=>JSON.stringify(e));var zc=class{constructor(){this._mark=void 0,this._encodings={},this._encodingIndicesByProperty=new re}setEncodingProperty(e,t,n){let i=this._encodings;(i[e]=i[e]||new re).set(t,n);let a=this._encodingIndicesByProperty;return a.set(t,a.get(t)||[]),a.get(t).push(e),this}hasEncodingProperty(e,t){return!!this._encodings[e]&&this._encodings[e].has(t)}hasProperty(e){if(Qr(e))return this.encodingIndicesByProperty.has(e);if(e==="mark")return!!this.mark;throw Error("Unimplemented for property "+e)}isEmpty(){return!this.mark&&this.encodingIndicesByProperty.size()===0}setMark(e){return this._mark=e,this}get mark(){return this._mark}get encodings(){return this._encodings}get encodingIndicesByProperty(){return this._encodingIndicesByProperty}},Yc=H(ne()),Qc=class ar{constructor(t,n,i,a,r){this._rankingScore={},this._spec=t,this._channelFieldCount=t.encodings.reduce((s,u)=>(!A(u.channel)&&(!P(u)||u.autoCount!==!1)&&(s[u.channel+""]=1),s),{}),this._wildcardIndex=n,this._assignedWildcardIndex=r,this._opt=a,this._schema=i}static build(t,n,i){let a=new zc;if(A(t.mark)){let r=Qe(m.MARK);t.mark=un(t.mark,r,i.enum.mark),a.setMark(t.mark)}if(t.encodings.forEach((r,s)=>{P(r)&&(console.warn("A field with autoCount should not be included as autoCount meant to be an internal object."),r.type=te),O(r)&&r.type===void 0&&(r.type="?"),en.forEach(u=>{if(A(r[u])){let h=Qe(u)+s,o=fn(u,n,i),l=r[u]=un(r[u],h,o);a.setEncodingProperty(s,u,l)}}),ht.forEach(u=>{let h=r[u.parent];if(h){let o=u.child;if(A(h[o])){let l=Qe(u)+s,c=fn(u,n,i),p=h[o]=un(h[o],l,c);a.setEncodingProperty(s,u,p)}}})}),i.autoAddCount){let r={name:Qe(m.CHANNEL)+t.encodings.length,enum:fn(m.CHANNEL,n,i)},s={name:Qe(m.AUTOCOUNT)+t.encodings.length,enum:[!1,!0]},u={channel:r,autoCount:s,type:te};t.encodings.push(u);let h=t.encodings.length-1;a.setEncodingProperty(h,m.CHANNEL,r),a.setEncodingProperty(h,m.AUTOCOUNT,s)}return new ar(t,a,n,i,{})}get wildcardIndex(){return this._wildcardIndex}get schema(){return this._schema}get specQuery(){return this._spec}duplicate(){return new ar((0,U.duplicate)(this._spec),this._wildcardIndex,this._schema,this._opt,(0,U.duplicate)(this._assignedWildcardIndex))}setMark(t){let n=this._wildcardIndex.mark.name;this._assignedWildcardIndex[n]=this._spec.mark=t}resetMark(){let t=this._spec.mark=this._wildcardIndex.mark;delete this._assignedWildcardIndex[t.name]}getMark(){return this._spec.mark}getEncodingProperty(t,n){let i=this._spec.encodings[t];return se(n)?i[n.parent][n.child]:i[n]}setEncodingProperty(t,n,i,a){let r=this._spec.encodings[t];n===m.CHANNEL&&r.channel&&!A(r.channel)&&this._channelFieldCount[r.channel]--,se(n)?r[n.parent][n.child]=i:tn(n)&&i===!0?r[n]=(0,U.extend)({},r[n],{enum:void 0,name:void 0}):r[n]=i,this._assignedWildcardIndex[a.name]=i,n===m.CHANNEL&&(this._channelFieldCount[i]=(this._channelFieldCount[i]||0)+1)}resetEncodingProperty(t,n,i){let a=this._spec.encodings[t];n===m.CHANNEL&&this._channelFieldCount[a.channel]--,se(n)?a[n.parent][n.child]=i:a[n]=i,delete this._assignedWildcardIndex[i.name]}channelUsed(t){return this._channelFieldCount[t]>0}channelEncodingField(t){let n=this.getEncodingQueryByChannel(t);return O(n)}getEncodings(){return this._spec.encodings.filter(t=>!ae(t))}getEncodingQueryByChannel(t){for(let n of this._spec.encodings)if(n.channel===t)return n}getEncodingQueryByIndex(t){return this._spec.encodings[t]}isAggregate(){return Ql(this._spec)}getVlStack(){return li(this._spec)}getStackOffset(){return Vl(this._spec)}getStackChannel(){return Kl(this._spec)}toShorthand(t){if(t){if((0,Yc.isString)(t))return Gc(this.specQuery,t);let n=Je(t);return Pe(this._spec,n.include,n.replacer)}return Pe(this._spec)}toSpec(t){if(A(this._spec.mark))return null;let n={};return t||(t=this._spec.data),t&&(n.data=t),this._spec.transform&&(n.transform=this._spec.transform),n.mark=this._spec.mark,n.encoding=hi(this.specQuery.encodings,{schema:this._schema,wildcardMode:"null"}),this._spec.width&&(n.width=this._spec.width),this._spec.height&&(n.height=this._spec.height),this._spec.background&&(n.background=this._spec.background),this._spec.padding&&(n.padding=this._spec.padding),this._spec.title&&(n.title=this._spec.title),n.encoding===null?null:((this._spec.config||this._opt.defaultSpecConfig)&&(n.config=(0,U.extend)({},this._opt.defaultSpecConfig,this._spec.config)),n)}getRankingScore(t){return this._rankingScore[t]}setRankingScore(t,n){this._rankingScore[t]=n}};function Vc(e){if(e.groupBy){let t={groupBy:e.groupBy};e.orderBy&&(t.orderGroupBy=e.orderBy);let n={spec:(0,U.duplicate)(e.spec),nest:[t]};return e.chooseBy&&(n.chooseBy=e.chooseBy),e.config&&(n.config=e.config),n}return(0,U.duplicate)(e)}function sa(e){return e.items!==void 0}function Vn(e){let t=e.items[0];for(;t&&sa(t);)t=t.items[0];return t}var Re=class{constructor(e){this.type=e,this.scoreIndex=this.initScore()}getFeatureScore(e){let t=this.type,n=this.scoreIndex[e];if(n!==void 0)return{type:t,feature:e,score:n}}},J;(function(e){e[e.Q=te]="Q",e[e.BIN_Q="bin_"+te]="BIN_Q",e[e.T=ye]="T",e[e.TIMEUNIT_T="timeUnit_time"]="TIMEUNIT_T",e[e.TIMEUNIT_O="timeUnit_"+Ce]="TIMEUNIT_O",e[e.O=Ce]="O",e[e.N=we]="N",e[e.K=le.KEY]="K",e[e.NONE="-"]="NONE"})(J||(J={}));const la=J.Q,Ut=J.BIN_Q,Kn=J.T,$e=J.TIMEUNIT_T,Ft=J.TIMEUNIT_O,Dt=J.O,_t=J.N,Jn=J.K,jt=J.NONE;function Pt(e){if(e.bin)return J.BIN_Q;if(e.timeUnit){let t=ke(e);return Ae(t)?J.TIMEUNIT_O:J.TIMEUNIT_T}return e.type}var Kc=class extends Re{constructor(){super("Axis")}initScore(e={}){e=Object.assign({},Ve,e);let t={};return[{feature:Ut,opt:"preferredBinAxis"},{feature:Kn,opt:"preferredTemporalAxis"},{feature:$e,opt:"preferredTemporalAxis"},{feature:Ft,opt:"preferredTemporalAxis"},{feature:Dt,opt:"preferredOrdinalAxis"},{feature:_t,opt:"preferredNominalAxis"}].forEach(n=>{e[n.opt]==="x"?t[n.feature+"_y"]=-.01:e[n.opt]==="y"&&(t[n.feature+"_x"]=-.01)}),t}featurize(e,t){return e+"_"+t}getScore(e,t,n){return e.getEncodings().reduce((i,a)=>{if(O(a)||P(a)){let r=Pt(a),s=this.featurize(r,a.channel),u=this.getFeatureScore(s);u&&i.push(u)}return i},[])}},Jc=class extends Re{constructor(){super("Dimension")}initScore(){return{row:-2,column:-2,color:0,opacity:0,size:0,shape:0}}getScore(e,t,n){return e.isAggregate()&&e.getEncodings().reduce((i,a)=>{if(P(a)||O(a)&&!a.aggregate){let r=this.getFeatureScore(a.channel+"");if(r&&r.score>i.score)return r}return i},{type:"Dimension",feature:"No Dimension",score:-5}),[]}},Xc=class extends Re{constructor(){super("Facet")}initScore(e){e=Object.assign({},Ve,e);let t={};return e.preferredFacet==="row"?t[Ne]=-.01:e.preferredFacet==="column"&&(t.row=-.01),t}getScore(e,t,n){return e.getEncodings().reduce((i,a)=>{if(O(a)||P(a)){let r=this.getFeatureScore(a.channel);r&&i.push(r)}return i},[])}},Zc=class extends Re{constructor(){super("SizeChannel")}initScore(){return{bar_size:-2,tick_size:-2}}getScore(e,t,n){let i=e.getMark();return e.getEncodings().reduce((a,r)=>{if(O(r)||P(r)){let s=i+"_"+r.channel,u=this.getFeatureScore(s);u&&a.push(u)}return a},[])}},eu=class extends Re{constructor(){super("TypeChannel")}initScore(){let e={},t={x:0,y:0,size:-.575,color:-.725,text:-2,opacity:-3,shape:-10,row:-10,column:-10,detail:-20};[la,Kn,$e].forEach(a=>{(0,U.keys)(t).forEach(r=>{e[this.featurize(a,r)]=t[r]})});let n=(0,U.extend)({},t,{row:-.75,column:-.75,shape:-3.1,text:-3.2,detail:-4});[Ut,Ft,Dt].forEach(a=>{(0,U.keys)(n).forEach(r=>{e[this.featurize(a,r)]=n[r]})});let i={x:0,y:0,color:-.6,shape:-.65,row:-.7,column:-.7,text:-.8,detail:-2,size:-3,opacity:-3.1};return(0,U.keys)(i).forEach(a=>{e[this.featurize(_t,a)]=i[a],e[this.featurize(Jn,a)]=K(["x","y","detail"],a)?-1:i[a]-2}),e}featurize(e,t){return e+"_"+t}getScore(e,t,n){let i=e.getEncodings().reduce((r,s)=>{if(O(s)||P(s)){let u=fi(s);(r[u]=r[u]||[]).push(s)}return r},{}),a=[];return z(i,r=>{let s=r.reduce((u,h)=>{if(O(h)||P(h)){let o=Pt(h),l=this.featurize(o,h.channel),c=this.getFeatureScore(l);if(u===null||c.score>u.score)return c}return u},null);a.push(s)}),a}},tu=class extends Re{constructor(){super("Mark")}initScore(){return nu()}getScore(e,t,n){let i=e.getMark();(i==="circle"||i==="square")&&(i=Ye);let a=e.getEncodingQueryByChannel("x"),r=a?Pt(a):jt,s=e.getEncodingQueryByChannel("y"),u=s?Pt(s):jt,h=!e.isAggregate(),o=r+"_"+u+"_"+h+"_"+i,l=this.getFeatureScore(o);return l?[l]:(console.error("feature score missing for",o),[])}};function $(e,t,n,i){return e+"_"+t+"_"+n+"_"+i}function nu(){let e=[la,Kn],t=[Ut,Ft,Dt,_t,Jn,jt],n={};e.forEach(i=>{e.forEach(a=>{z({point:0,text:-.2,tick:-.5,rect:-1,bar:-2,line:-2,area:-2,rule:-2.5},(r,s)=>{let u=$(i,a,!0,s);n[u]=r}),z({point:0,text:-.2,tick:-.5,bar:-2,line:-2,area:-2,rule:-2.5},(r,s)=>{let u=$(i,a,!1,s);n[u]=r})})}),e.forEach(i=>{t.forEach(a=>{z({tick:0,point:-.2,text:-.5,bar:-2,line:-2,area:-2,rule:-2.5},(r,s)=>{let u=$(i,a,!0,s);n[u]=r;let h=$(a,i,!0,s);n[h]=r})}),[$e].forEach(a=>{z({point:0,text:-.5,tick:-1,bar:-2,line:-2,area:-2,rule:-2.5},(r,s)=>{let u=$(i,a,!0,s);n[u]=r;let h=$(a,i,!0,s);n[h]=r})}),[jt,_t,Dt,Jn].forEach(a=>{z({bar:0,point:-.2,tick:-.25,text:-.3,line:-2,area:-2,rule:-2.5},(r,s)=>{let u=$(i,a,!1,s);n[u]=r;let h=$(a,i,!1,s);n[h]=r})}),[Ut].forEach(a=>{z({bar:0,point:-.2,tick:-.25,text:-.3,line:-.5,area:-.5,rule:-2.5},(r,s)=>{let u=$(i,a,!1,s);n[u]=r;let h=$(a,i,!1,s);n[h]=r})}),[$e,Ft].forEach(a=>{z({line:0,area:-.1,bar:-.2,point:-.3,tick:-.35,text:-.4,rule:-2.5},(r,s)=>{let u=$(i,a,!1,s);n[u]=r;let h=$(a,i,!1,s);n[h]=r})})}),[$e].forEach(i=>{[$e].forEach(a=>{let r={point:0,rect:-.1,text:-.5,tick:-1,bar:-2,line:-2,area:-2,rule:-2.5};z(r,(s,u)=>{let h=$(i,a,!0,u);n[h]=s}),z(r,(s,u)=>{let h=$(i,a,!1,u);n[h]=s})}),t.forEach(a=>{let r={tick:0,point:-.2,text:-.5,rect:-1,bar:-2,line:-2,area:-2,rule:-2.5};z(r,(s,u)=>{let h=$(i,a,!0,u);n[h]=s}),z(r,(s,u)=>{let h=$(a,i,!0,u);n[h]=s}),z(r,(s,u)=>{let h=$(i,a,!1,u);n[h]=s}),z(r,(s,u)=>{let h=$(a,i,!1,u);n[h]=s})})});for(let i of t)for(let a of t){let r={point:0,rect:0,text:-.1,tick:-1,bar:-2,line:-2,area:-2,rule:-2.5};z(r,(s,u)=>{let h=$(i,a,!0,u);n[h]=s}),z(r,(s,u)=>{let h=$(i,a,!1,u);n[h]=s})}return n}var ru=[new Kc,new Jc,new Xc,new tu,new Zc,new eu];function iu(e,t,n){let i=ru.reduce((a,r)=>{let s=r.getScore(e,t,n);return a.concat(s)},[]);return{score:i.reduce((a,r)=>a+r.score,0),features:i}}const xe="aggregationQuality";function au(e,t,n){let i=ou(e,t,n);return{score:i.score,features:[i]}}function ou(e,t,n){let i=e.getEncodings();if(e.isAggregate()){if(de(i,a=>O(a)&&(a.type==="quantitative"&&!a.bin&&!a.aggregate||a.type==="temporal"&&!a.timeUnit)))return{type:xe,score:.1,feature:"Aggregate with raw continuous"};if(de(i,a=>O(a)&&be(a))){let a=de(i,s=>O(s)&&s.aggregate==="count"||Tt(s)),r=de(i,s=>O(s)&&!!s.bin);return a?{type:xe,score:.8,feature:"Aggregate with count"}:r?{type:xe,score:.7,feature:"Aggregate with bin but without count"}:{type:xe,score:.9,feature:"Aggregate without count and without bin"}}return{type:xe,score:.3,feature:"Aggregate without dimension"}}else return de(i,a=>O(a)&&!be(a))?{type:xe,score:1,feature:"Raw with measure"}:{type:xe,score:.2,feature:"Raw without measure"}}function su(e,t,n){let i=e.wildcardIndex.encodingIndicesByProperty.get("field");if(!i)return{score:0,features:[]};let a=e.specQuery.encodings,r=t.fieldSchemas.length,s=[],u=0,h=1;for(let o=i.length-1;o>=0;o--){let l=i[o],c=a[l],p;if(O(c))p=c.field;else continue;let f=e.wildcardIndex.encodings[l].get("field"),d=t.fieldSchema(p).index,g=-d*h;u+=g,s.push({score:g,type:"fieldOrder",feature:`field ${f.name} is ${p} (#${d} in the schema)`}),h*=r}return{score:u,features:s}}var ca={};function Xn(e,t){ca[e]=t}function lu(e){return ca[e]}function ua(e,t,n,i){return!t.nest||i===t.nest.length?(t.orderBy||t.chooseBy)&&(e.items.sort(cu(t.orderBy||t.chooseBy,n,t.config)),t.chooseBy&&e.items.length>0&&e.items.splice(1)):(e.items.forEach(a=>{ua(a,t,n,i+1)}),t.nest[i].orderGroupBy&&e.items.sort(uu(t.nest[i].orderGroupBy,n,t.config))),e}function cu(e,t,n){return(i,a)=>e instanceof Array?Rt(e,i,a,t,n):Rt([e],i,a,t,n)}function uu(e,t,n){return(i,a)=>{let r=Vn(i),s=Vn(a);return e instanceof Array?Rt(e,r,s,t,n):Rt([e],r,s,t,n)}}function Rt(e,t,n,i,a){for(let r of e){let s=da(n,r,i,a).score-da(t,r,i,a).score;if(s!==0)return s}return 0}function da(e,t,n,i){if(e.getRankingScore(t)!==void 0)return e.getRankingScore(t);let a=lu(t)(e,n,i);return e.setRankingScore(t,a),a}Xn("effectiveness",iu),Xn(xe,au),Xn("fieldOrder",su);function du(e,t,n){let i={};return e=e.map(function(a){return n.smallRangeStepForHighCardinalityOrFacet&&(a=fu(a,t,i,n)),n.nominalColorScaleForHighCardinality&&(a=pu(a,t,i,n)),n.xAxisOnTopForHighYCardinalityWithoutColumn&&(a=hu(a,t,i,n)),a}),e}function fu(e,t,n,i){["row","y",Ne,"x"].forEach(s=>{n[s]=e.getEncodingQueryByChannel(s)});let a=n.y;if(a!==void 0&&O(a)&&(n.row||t.cardinality(a)>i.smallRangeStepForHighCardinalityOrFacet.maxCardinality)){a.scale===void 0&&(a.scale={});let s=ke(a);a.scale&&(s===void 0||Ae(s))&&(a.scale.rangeStep||(a.scale.rangeStep=12))}let r=n.x;if(O(r)&&(n.column||t.cardinality(r)>i.smallRangeStepForHighCardinalityOrFacet.maxCardinality)){r.scale===void 0&&(r.scale={});let s=ke(r);r.scale&&(s===void 0||Ae(s))&&(r.scale.rangeStep||(r.scale.rangeStep=12))}return e}function pu(e,t,n,i){n[ue]=e.getEncodingQueryByChannel(ue);let a=n[ue];return O(a)&&a!==void 0&&(a.type==="nominal"||a.type===le.KEY)&&t.cardinality(a)>i.nominalColorScaleForHighCardinality.maxCardinality&&(a.scale===void 0&&(a.scale={}),a.scale&&(a.scale.range||(a.scale.scheme=i.nominalColorScaleForHighCardinality.palette))),e}function hu(e,t,n,i){if([Ne,"x","y"].forEach(a=>{n[a]=e.getEncodingQueryByChannel(a)}),n.column===void 0){let a=n.x,r=n.y;O(a)&&O(r)&&r!==void 0&&r.field&&Ae(ke(r))&&a!==void 0&&t.cardinality(r)>i.xAxisOnTopForHighYCardinalityWithoutColumn.maxCardinality&&(a.axis===void 0&&(a.axis={}),a.axis&&!a.axis.orient&&(a.axis.orient="top"))}return e}function mu(e,t,n=Ve){let i=Qc.build(e,t,n),a=i.wildcardIndex,r=[i];return n.propertyPrecedence.forEach(s=>{let u=sl(s);if(a.hasProperty(u)){let h=$c(u)(a,t,n);r=r.reduce(h,[])}}),n.stylize&&(n.nominalColorScaleForHighCardinality!==null||n.smallRangeStepForHighCardinalityOrFacet!==null||n.xAxisOnTopForHighYCardinalityWithoutColumn!==null)?du(r,t,n):r}function fa(e,t,n){e=Object.assign({},Vc(e),{config:Object.assign({},Ve,n,e.config)});let i=mu(e.spec,t,e.config),a=qc(i,e.nest),r=ua(a,e,t,0);return{query:e,result:r}}var Zn=H(Oa()),E=H(ka());const Be={[R.BOOLEAN]:(0,E.jsx)($a,{className:"h-5 w-5 inline-flex opacity-60"}),[R.DATETIME]:(0,E.jsx)(Ra,{className:"h-5 w-5 inline-flex opacity-60"}),[R.NUMBER]:(0,E.jsx)(Ba,{className:"h-5 w-5 inline-flex opacity-60"}),[R.STRING]:(0,E.jsx)(La,{className:"h-5 w-5 inline-flex opacity-60"}),[R.INTEGER]:(0,E.jsx)(no,{className:"h-5 w-5 inline-flex opacity-60"})};var pa=12;const gu=e=>{let t=(0,hr.c)(45),{schema:n}=e,[i,a]=(0,Zn.useState)(),[r,s]=(0,Zn.useState)(),u,h,o,l,c,p,f,d;if(t[0]!==n||t[1]!==i||t[2]!==r){u=n.fieldNames();let k;t[11]!==n||t[12]!==i?(k=i?n.stats({field:i,channel:"x"}):void 0,t[11]=n,t[12]=i,t[13]=k):k=t[13],o=k;let M;t[14]===Symbol.for("react.memo_cache_sentinel")?(M=(0,E.jsx)(to,{className:"text-muted-foreground",width:40,height:40,strokeWidth:1.5}),t[14]=M):M=t[14];let _=M,Ee=r?u:u.slice(0,pa);h=u.length>pa,p="flex flex-col justify-center items-center h-full flex-1 gap-2",f=_,d=(0,E.jsxs)("span",{className:"text-muted-foreground font-semibold",children:[u.length>0?u.length:"No"," fields"]}),l="hidden lg:grid grid-cols-2 xl:grid-cols-3 gap-2 p-2 bg-(--slate-1) border rounded lg:items-center items-start w-fit grid-flow-dense max-h-[300px] overflow-auto";let X;t[15]!==n||t[16]!==i?(X=W=>{let pe=n.cardinality({channel:"x",field:W});return(0,E.jsxs)("span",{className:_a("hover:bg-muted self-start px-2 py-2 rounded flex flex-row gap-1 items-center cursor-pointer lg:justify-center text-sm truncate shrink-0 overflow-hidden",i===W&&"bg-muted"),onClick:()=>{if(i===W){a(void 0);return}a(W)},children:[Be[n.primitiveType(W)],W,pe>1&&(0,E.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",pe,")"]})]},W)},t[15]=n,t[16]=i,t[17]=X):X=t[17],c=Ee.map(X),t[0]=n,t[1]=i,t[2]=r,t[3]=u,t[4]=h,t[5]=o,t[6]=l,t[7]=c,t[8]=p,t[9]=f,t[10]=d}else u=t[3],h=t[4],o=t[5],l=t[6],c=t[7],p=t[8],f=t[9],d=t[10];let g;t[18]!==h||t[19]!==r?(g=h&&(0,E.jsx)(lr,{"data-testid":"marimo-plugin-data-explorer-show-more-columns",variant:"link",size:"sm",className:"self-center col-span-3 -mt-1",onClick:()=>s(bu),children:r?"Show less":"Show more"}),t[18]=h,t[19]=r,t[20]=g):g=t[20];let y;t[21]!==l||t[22]!==c||t[23]!==g?(y=(0,E.jsxs)("div",{className:l,children:[c,g]}),t[21]=l,t[22]=c,t[23]=g,t[24]=y):y=t[24];let v=i||"",b=u.length===0,x;t[25]===Symbol.for("react.memo_cache_sentinel")?(x=k=>{a(k)},t[25]=x):x=t[25];let S;t[26]===Symbol.for("react.memo_cache_sentinel")?(S=(0,E.jsx)(et,{className:"min-w-[210px] h-full",children:(0,E.jsx)(dr,{placeholder:"Select a column"})}),t[26]=S):S=t[26];let C;t[27]===n?C=t[28]:(C=n.fieldNames().map(k=>(0,E.jsx)(Se,{value:k.toString(),children:(0,E.jsxs)("span",{className:"flex items-center gap-2 flex-1",children:[Be[n.primitiveType(k)],(0,E.jsx)("span",{className:"flex-1",children:k}),(0,E.jsxs)("span",{className:"text-muted-foreground text-xs font-semibold",children:["(",n.vlType(k),")"]})]})},k)),t[27]=n,t[28]=C);let T;t[29]===C?T=t[30]:(T=(0,E.jsx)(Ze,{children:(0,E.jsx)(We,{children:C})}),t[29]=C,t[30]=T);let w;t[31]!==T||t[32]!==v||t[33]!==b?(w=(0,E.jsx)("div",{className:"lg:hidden",children:(0,E.jsxs)(tt,{"data-testid":"marimo-plugin-data-explorer-column-select",value:v,disabled:b,onValueChange:x,children:[S,T]})}),t[31]=T,t[32]=v,t[33]=b,t[34]=w):w=t[34];let N;t[35]!==i||t[36]!==o?(N=i&&(0,E.jsx)("div",{className:"grid grid-cols-1 lg:grid-cols-2 xl:grid-cols-3 gap-2 p-2 text-sm",children:yu.map(k=>(0,E.jsxs)("div",{className:"flex flex-row gap-2 min-w-[100px]",children:[(0,E.jsx)("span",{className:"font-semibold",children:k}),(0,E.jsx)("span",{children:(0,E.jsx)(vu,{value:o==null?void 0:o[k]})})]},k))}),t[35]=i,t[36]=o,t[37]=N):N=t[37];let D;return t[38]!==w||t[39]!==N||t[40]!==p||t[41]!==f||t[42]!==d||t[43]!==y?(D=(0,E.jsxs)("div",{className:p,children:[f,d,y,w,N]}),t[38]=w,t[39]=N,t[40]=p,t[41]=f,t[42]=d,t[43]=y,t[44]=D):D=t[44],D};var yu=["distinct","min","max","mean","median","q1","q3","stdev"],vu=e=>{let t=(0,hr.c)(8),{value:n}=e,i;t[0]===Symbol.for("react.memo_cache_sentinel")?(i={maximumFractionDigits:2},t[0]=i):i=t[0];let a=Ya(i),r;t[1]===Symbol.for("react.memo_cache_sentinel")?(r={year:"numeric",month:"short",day:"numeric"},t[1]=r):r=t[1];let s=Qa(r);if(typeof n=="number"){let u;return t[2]!==a||t[3]!==n?(u=a.format(n),t[2]=a,t[3]=n,t[4]=u):u=t[4],u}if(typeof n=="string")return n;if(typeof n=="object"&&n instanceof Date){let u;return t[5]!==s||t[6]!==n?(u=s.format(n),t[5]=s,t[6]=n,t[7]=u):u=t[7],u}return String(n)};function bu(e){return!e}function xu(e){return e?e==="bin"?{bin:!0}:Va(e)?{aggregate:e}:Eu(e)?{timeUnit:e}:{}:{}}function Eu(e){return e?ha.includes(e)||ma.includes(e):!1}const Tu=["bin","min","max","mean","median","sum"],ha=["year","month","date","day","hours","minutes","seconds","milliseconds"],ma=["yearmonth","yearmonthdate","monthdate"];function Su(e){let{aggregate:t,bin:n,timeUnit:i}=e;if(n)return"bin";if(t)return t.toString();if(i)return i.toString()}const Nu=["?","area","bar","circle","geoshape","line","point","rect","rule","square","text","tick","trail"],Cu={type:"histograms",limit:12,createQuery(e){return{spec:{data:e.spec.data,mark:"?",transform:e.spec.transform,encodings:[{channel:"?",bin:"?",timeUnit:"?",field:"?",type:"?"},{channel:"?",aggregate:"count",field:"*",type:"quantitative"}]},groupBy:"fieldTransform",orderBy:["fieldOrder","aggregationQuality","effectiveness"],chooseBy:["aggregationQuality","effectiveness"],config:{autoAddCount:!1}}}};function ga(e){let t={};for(let n in e)e[n]!==void 0&&(t[n]=e[n]);return t}function wu(e,t){let{fn:n,...i}=e;return{channel:t,...xu(n),...i}}function Au(e){let{aggregate:t,bin:n,timeUnit:i,field:a,scale:r,legend:s,axis:u,sort:h,description:o}=e,{type:l}=e;if(A(l))throw Error("Wildcard not support");l==="ordinal"&&(Fa.warn("Ordinal type is not supported. Using nominal type instead."),l="nominal");let c=Su({aggregate:t,bin:n,timeUnit:i});return Ia(a!==void 0,"Field is required for fieldQ"),ga({field:a,fn:c,type:l,sort:h,scale:r,axis:u,legend:s,description:o})}function Ou(e){return{mark:e.mark,encodings:ku(e.encoding),config:e.config}}function ku(e){return e?Object.entries(e).map(([t,n])=>wu(n,t)):[]}function er(e){let{type:t,limit:n,additionalFieldQuery:i}=e;return{type:t,limit:n,createQuery(a){return{spec:{...a.spec,encodings:[...a.spec.encodings,i]},groupBy:"field",orderBy:["fieldOrder","aggregationQuality","effectiveness"],chooseBy:["aggregationQuality","effectiveness"],config:{autoAddCount:!0}}}}}const Mu=er({type:"addCategoricalField",limit:4,additionalFieldQuery:{channel:"?",field:"?",type:"nominal"}}),Iu=er({type:"addQuantitativeField",limit:4,additionalFieldQuery:{channel:"?",bin:"?",aggregate:"?",field:"?",type:"quantitative"}}),Uu=er({type:"addTemporalField",limit:2,additionalFieldQuery:{channel:"?",hasFn:!0,timeUnit:"?",field:"?",type:"temporal"}});function Fu(e){return!va(e).hasAnyWildcard}function Du(e){let t=["x","y","color"],n=["row","column"],i=new Set(e.encodings.map(s=>s.channel)),a=t.every(s=>i.has(s)),r=n.some(s=>i.has(s));return a&&r}function ya(e){return e.encodings.length===0}function va(e){let t=!1,n=!1,i=!1;for(let a of e.encodings)ie(a)||(P(a)?A(a.autoCount)&&(n=!0):(A(a.field)&&(t=!0),(A(a.aggregate)||A(a.bin)||A(a.timeUnit))&&(n=!0),A(a.channel)&&(i=!0)));return{hasAnyWildcard:i||t||n,hasWildcardField:t,hasWildcardFn:n,hasWildcardChannel:i}}var ba={name:"source"};function _u(e){let t=!1,n=!1,i=!1;return e.encodings.forEach(a=>{a.channel==="x"||a.channel==="y"?t=!0:a.channel==="row"||a.channel==="column"?i=!0:typeof a.channel=="string"&&Ja(Ka,a.channel)&&(n=!0)}),{hasOpenPosition:t,hasStyleChannel:n,hasOpenFacet:i}}function ju(e,t){let n={},{hasOpenPosition:i,hasStyleChannel:a,hasOpenFacet:r}=_u(e.spec);return(i||a)&&(n.addQuantitativeField=$t(Iu,e,t)),(i||a||r)&&(n.addCategoricalField=$t(Mu,e,t)),i&&(n.addTemporalField=$t(Uu,e,t)),n}function tr(e,t){if(ya(e.spec))return{plots:[],query:e,limit:1};let n=fa(e,t).result;return{plots:[xa(n,ba)[0]],query:e,limit:1}}function $t(e,t,n){let i=e.createQuery(t),a=fa(i,n).result;return{plots:xa(a,ba),query:i,limit:e.limit}}function xa(e,t){return e.items.map(n=>sa(n)?Ea(t,Vn(n)):Ea(t,n))}function Ea(e,t){return{fieldInfos:t.getEncodings().filter(O).map(n=>({fieldDef:Au(n),channel:n.channel})),spec:t.toSpec(e)}}function Pu(e){let{spec:t,autoAddCount:n}=e,i=Ou(t),{hasAnyWildcard:a,hasWildcardFn:r,hasWildcardField:s}=va(i),u=Ru({hasWildcardFn:r,hasWildcardField:s});return{spec:i,groupBy:u,orderBy:["fieldOrder","aggregationQuality","effectiveness"],chooseBy:["aggregationQuality","effectiveness"],config:a?{autoAddCount:n}:void 0}}function Ru(e){let{hasWildcardFn:t,hasWildcardField:n}=e;return t?"fieldTransform":n?"field":"encoding"}function $u(){return{mark:"?",encoding:{},config:{},schema:null}}var{valueAtom:Le,useActions:Bu}=ja($u,{setSchema:(e,t)=>({...e,schema:t}),setMark:(e,t)=>({...e,mark:t}),setEncoding:(e,t)=>{let n=ga({...e.encoding,...t});return{...e,encoding:n}},set:(e,t)=>{let{schema:n,...i}=t;return{...e,...i}}});function Ta(){return Bu()}const Lu=Ca(e=>{let t=e(Le);if(!t.schema)return{};let n=Pu({spec:t,autoAddCount:!0});return ya(n.spec)?{main:tr(n,t.schema),histograms:$t(Cu,n,t.schema)}:Fu(n.spec)&&!Du(n.spec)?{main:tr(n,t.schema),...ju(n,t.schema)}:{main:tr(n,t.schema)}});var nr=H(Wt()),Wu=["x","y","row","column"],qu=["color","size","shape"];const Hu=e=>{let t=(0,nr.c)(26),{schema:n,mark:i}=e,a=Lt(Le),r=Ta(),s=a.encoding.x&&a.encoding.y,u;t[0]!==r||t[1]!==s||t[2]!==n||t[3]!==a.encoding?(u=C=>(0,E.jsx)(Gu,{schema:n,label:C,disabled:(C==="row"||C==="column")&&!s,fieldDefinition:a.encoding[C],onChange:T=>r.setEncoding({[C]:T})},C),t[0]=r,t[1]=s,t[2]=n,t[3]=a.encoding,t[4]=u):u=t[4];let h=u,o;t[5]===i?o=t[6]:(o=i.toString(),t[5]=i,t[6]=o);let l;t[7]===r?l=t[8]:(l=C=>r.setMark(C),t[7]=r,t[8]=l);let c;t[9]===Symbol.for("react.memo_cache_sentinel")?(c=(0,E.jsx)(et,{children:(0,E.jsx)(dr,{placeholder:"Mark"})}),t[9]=c):c=t[9];let p;t[10]===Symbol.for("react.memo_cache_sentinel")?(p=(0,E.jsx)(Ze,{children:(0,E.jsxs)(We,{children:[(0,E.jsx)(ur,{children:"Mark"}),Nu.map(Yu)]})}),t[10]=p):p=t[10];let f;t[11]!==o||t[12]!==l?(f=(0,E.jsxs)(tt,{"data-testid":"marimo-plugin-data-explorer-mark-select",value:o,onValueChange:l,children:[c,p]}),t[11]=o,t[12]=l,t[13]=f):f=t[13];let d=f,g;t[14]===Symbol.for("react.memo_cache_sentinel")?(g=(0,E.jsx)("span",{className:"col-span-2 flex items-center justify-between w-full",children:(0,E.jsx)("div",{className:"text-sm font-semibold",children:"Encodings"})}),t[14]=g):g=t[14];let y;t[15]===h?y=t[16]:(y=Wu.map(h),t[15]=h,t[16]=y);let v;t[17]===Symbol.for("react.memo_cache_sentinel")?(v=(0,E.jsx)("div",{children:"Mark"}),t[17]=v):v=t[17];let b;t[18]===d?b=t[19]:(b=(0,E.jsxs)("span",{className:"col-span-2 text-sm font-semibold w-full border-t border-divider flex items-center justify-between pt-2 pr-[30px]",children:[v,d]}),t[18]=d,t[19]=b);let x;t[20]===h?x=t[21]:(x=qu.map(h),t[20]=h,t[21]=x);let S;return t[22]!==b||t[23]!==x||t[24]!==y?(S=(0,E.jsxs)("div",{className:"grid gap-x-2 gap-y-4 justify-items-start py-3 pl-4 pr-2 bg-(--slate-1) border rounded items-center grid-template-columns-[repeat(2,_minmax(0,_min-content))] self-start",children:[g,y,b,x]}),t[22]=b,t[23]=x,t[24]=y,t[25]=S):S=t[25],S};var Gu=e=>{let t=(0,nr.c)(43),{label:n,schema:i,fieldDefinition:a,disabled:r,onChange:s}=e,u;t[0]!==a||t[1]!==i?(u=()=>{if(!a)return"--";if(a.field==="*")return(0,E.jsxs)("span",{className:"flex gap-2 flex-1",children:[Be[R.NUMBER],(0,E.jsx)("span",{className:"text-left flex-1",children:"Count"})]});let _=a.field.toString();return(0,E.jsxs)("span",{className:"flex gap-2 flex-1",children:[Be[i.primitiveType(_)],(0,E.jsx)("span",{className:"text-left flex-1",children:a.fn?`${a.fn}(${a.field})`:_})]})},t[0]=a,t[1]=i,t[2]=u):u=t[2];let h=u,o;t[3]===s?o=t[4]:(o=()=>{s(void 0)},t[3]=s,t[4]=o);let l=o,c;t[5]===(a==null?void 0:a.field)?c=t[6]:(c=(a==null?void 0:a.field.toString())??"",t[5]=a==null?void 0:a.field,t[6]=c);let p=c,f;t[7]===n?f=t[8]:(f=(0,E.jsx)(eo,{className:"text-(--slate-11) font-semibold",children:n}),t[7]=n,t[8]=f);let d;t[9]!==s||t[10]!==i?(d=_=>{s(_==="*"?{field:"*",fn:"count",type:"quantitative"}:{field:_,type:i.vlType(_)})},t[9]=s,t[10]=i,t[11]=d):d=t[11];let g=p?l:void 0,y;t[12]===h?y=t[13]:(y=h(),t[12]=h,t[13]=y);let v;t[14]!==g||t[15]!==y?(v=(0,E.jsx)(et,{className:"min-w-[140px] lg:min-w-[210px] h-full",onClear:g,children:y}),t[14]=g,t[15]=y,t[16]=v):v=t[16];let b;t[17]===i?b=t[18]:(b=i.fieldNames().map(_=>(0,E.jsx)(Se,{value:_.toString(),children:(0,E.jsxs)("span",{className:"flex items-center gap-2 flex-1",children:[Be[i.primitiveType(_)],(0,E.jsx)("span",{className:"flex-1",children:_}),(0,E.jsxs)("span",{className:"text-muted-foreground text-xs font-semibold",children:["(",i.vlType(_),")"]})]})},_)),t[17]=i,t[18]=b);let x;t[19]===i?x=t[20]:(x=i.fieldNames().length===0&&(0,E.jsx)(Se,{disabled:!0,value:"--",children:"No columns"}),t[19]=i,t[20]=x);let S;t[21]===Symbol.for("react.memo_cache_sentinel")?(S=(0,E.jsx)(fr,{}),t[21]=S):S=t[21];let C;t[22]===Symbol.for("react.memo_cache_sentinel")?(C=(0,E.jsx)(Se,{value:"*",children:(0,E.jsxs)("span",{className:"flex items-center gap-1 flex-1",children:[Be[R.NUMBER],(0,E.jsx)("span",{className:"flex-1",children:"Count"})]})},"*"),t[22]=C):C=t[22];let T;t[23]!==x||t[24]!==b?(T=(0,E.jsx)(Ze,{children:(0,E.jsxs)(We,{children:[b,x,S,C]})}),t[23]=x,t[24]=b,t[25]=T):T=t[25];let w;t[26]!==r||t[27]!==p||t[28]!==T||t[29]!==d||t[30]!==v?(w=(0,E.jsxs)(tt,{value:p,disabled:r,onValueChange:d,children:[v,T]}),t[26]=r,t[27]=p,t[28]=T,t[29]=d,t[30]=v,t[31]=w):w=t[31];let N;t[32]!==a||t[33]!==s?(N=a&&(0,E.jsx)(zu,{field:a,onChange:s}),t[32]=a,t[33]=s,t[34]=N):N=t[34];let D;t[35]===N?D=t[36]:(D=(0,E.jsx)("div",{className:"w-[26px]",children:N}),t[35]=N,t[36]=D);let k;t[37]!==w||t[38]!==D?(k=(0,E.jsxs)("div",{className:"flex flex-row gap-1 h-[26px]",children:[w,D]}),t[37]=w,t[38]=D,t[39]=k):k=t[39];let M;return t[40]!==k||t[41]!==f?(M=(0,E.jsxs)(E.Fragment,{children:[f,k]}),t[40]=k,t[41]=f,t[42]=M):M=t[42],M},rr="__",zu=e=>{let t=(0,nr.c)(10),{field:n,onChange:i}=e;if(n.field==="*")return null;let a;if(t[0]!==n||t[1]!==i){a=Symbol.for("react.early_return_sentinel");e:{let r=[];if(n.type===le.QUANTITATIVE&&(r=[["",Tu]]),n.type===le.TEMPORAL&&(r=[["Single",ha],["Multi",ma]]),r.length>0){let s=p=>{i({...n,fn:p===rr?void 0:p})},u;t[3]===Symbol.for("react.memo_cache_sentinel")?(u=(0,E.jsx)(et,{className:"h-full px-1",hideChevron:!0,variant:"ghost",children:(0,E.jsx)(qa,{size:14,strokeWidth:1.5})}),t[3]=u):u=t[3];let h,o;t[4]===Symbol.for("react.memo_cache_sentinel")?(h=(0,E.jsx)(We,{children:(0,E.jsx)(Se,{value:rr,children:"None"})}),o=(0,E.jsx)(fr,{}),t[4]=h,t[5]=o):(h=t[4],o=t[5]);let l=(0,E.jsxs)(Ze,{children:[h,o,r.map(Vu)]}),c;t[6]!==n.fn||t[7]!==s||t[8]!==l?(c=(0,E.jsxs)(tt,{"data-testid":"marimo-plugin-data-explorer-field-options",value:n.fn,onValueChange:s,children:[u,l]}),t[6]=n.fn,t[7]=s,t[8]=l,t[9]=c):c=t[9],a=c;break e}}t[0]=n,t[1]=i,t[2]=a}else a=t[2];return a===Symbol.for("react.early_return_sentinel")?null:a};function Yu(e){return(0,E.jsx)(Se,{value:e,children:e==="?"?"auto":e},e)}function Qu(e){return(0,E.jsx)(Se,{value:e??rr,children:Ma(e)},e)}function Vu(e){let[t,n]=e;return(0,E.jsxs)(We,{children:[t&&(0,E.jsx)(ur,{children:t}),n.map(Qu)]},t)}var Bt=H(Wt()),Ku=e=>{let t=(0,Bt.c)(5),n;t[0]===Symbol.for("react.memo_cache_sentinel")?(n=wa(),t[0]=n):n=t[0];let i=n,a;t[1]===e?a=t[2]:(a=()=>{let s=i.sub(Le,()=>{let{schema:h,...o}=i.get(Le);e.setValue(o)}),u=e.value;return u&&Object.keys(u).length>0&&i.set(Le,u),s},t[1]=e,t[2]=a),za(a);let r;return t[3]===e?r=t[4]:(r=(0,E.jsx)(Aa,{store:i,children:(0,E.jsx)(Sa,{...e})}),t[3]=e,t[4]=r),r},Ju={export:{svg:!0,png:!0},source:!1,compiled:!1,editor:!1},Xu={left:20,right:20,top:20,bottom:20},Zu=Ku;const Sa=e=>{var Ee,X,W,pe,Te,he;let t=(0,Bt.c)(43),{data:n}=e,i=Ta(),a;t[0]!==i||t[1]!==n?(a=async()=>{if(!n)return{};let I=await Ua(n,{type:"csv",parse:"auto"},{replacePeriod:!0}),Z=Mc(I);return i.setSchema(Z),{chartData:I,schema:Z}},t[0]=i,t[1]=n,t[2]=a):a=t[2];let r;t[3]===n?r=t[4]:(r=[n],t[3]=n,t[4]=r);let{data:s,isPending:u,error:h}=Xa(a,r),{mark:o}=Lt(Le),l=Lt(Lu),{theme:c}=Pa();if(h){let I;return t[5]===h?I=t[6]:(I=(0,E.jsx)(Za,{error:h}),t[5]=h,t[6]=I),I}if(!s){let I;return t[7]===Symbol.for("react.memo_cache_sentinel")?(I=(0,E.jsx)("div",{}),t[7]=I):I=t[7],I}let{chartData:p,schema:f}=s;if(u||!f){let I;return t[8]===Symbol.for("react.memo_cache_sentinel")?(I=(0,E.jsx)("div",{}),t[8]=I):I=t[8],I}let d=(X=(Ee=l.main)==null?void 0:Ee.plots)==null?void 0:X[0],g;t[9]===(d==null?void 0:d.fieldInfos)?g=t[10]:(g=new Set(d==null?void 0:d.fieldInfos.map(rd)),t[9]=d==null?void 0:d.fieldInfos,t[10]=g);let y=g,v;t[11]!==p||t[12]!==d||t[13]!==f||t[14]!==c?(v=()=>d?(0,E.jsx)("div",{className:"flex overflow-y-auto justify-center items-center flex-1 w-[90%]",children:(0,E.jsx)(pr,{data:{source:p},padding:Xu,actions:Ju,spec:nd(d.spec),theme:c==="dark"?"dark":void 0})}):(0,E.jsx)(gu,{schema:f}),t[11]=p,t[12]=d,t[13]=f,t[14]=c,t[15]=v):v=t[15];let b=v,x;t[16]!==o||t[17]!==f?(x=(0,E.jsx)(Hu,{mark:o,schema:f}),t[16]=o,t[17]=f,t[18]=x):x=t[18];let S;t[19]===b?S=t[20]:(S=b(),t[19]=b,t[20]=S);let C;t[21]!==x||t[22]!==S?(C=(0,E.jsxs)("div",{className:"flex items-center gap-2",children:[x,S]}),t[21]=x,t[22]=S,t[23]=C):C=t[23];let T=(W=l.histograms)==null?void 0:W.plots,w=(pe=l.addCategoricalField)==null?void 0:pe.plots,N=(Te=l.addQuantitativeField)==null?void 0:Te.plots,D=(he=l.addTemporalField)==null?void 0:he.plots,k;if(t[24]!==i||t[25]!==p||t[26]!==y||t[27]!==N||t[28]!==D||t[29]!==T||t[30]!==w||t[31]!==c){let I;t[33]!==i||t[34]!==p||t[35]!==y||t[36]!==c?(I=(Z,Xe)=>(0,E.jsx)(td,{title:(0,E.jsx)("div",{className:"flex flex-row gap-1",children:Z.fieldInfos.map(me=>{let or=me.fieldDef.field==="*"?"Count":me.fieldDef.fn?`${me.fieldDef.fn}(${me.fieldDef.field})`:me.fieldDef.field.toString();return(0,E.jsx)(Ha,{variant:y.has(me.fieldDef.field)?"secondary":"defaultOutline",children:or},or)})}),actions:(0,E.jsx)(Ga,{content:"Make main plot",children:(0,E.jsx)(lr,{"data-testid":"marimo-plugin-data-explorer-make-main-plot",variant:"text",size:"icon",onClick:()=>{let me=Da.fromEntries(Z.fieldInfos.map(id));i.setEncoding(me)},children:(0,E.jsx)(Wa,{className:"w-4 h-4"})})}),children:(0,E.jsx)(pr,{data:{source:p},actions:!1,spec:Z.spec,theme:c==="dark"?"dark":void 0},Xe)},Xe),t[33]=i,t[34]=p,t[35]=y,t[36]=c,t[37]=I):I=t[37],k=[T,w,N,D].filter(Boolean).flat().map(I),t[24]=i,t[25]=p,t[26]=y,t[27]=N,t[28]=D,t[29]=T,t[30]=w,t[31]=c,t[32]=k}else k=t[32];let M;t[38]===k?M=t[39]:(M=(0,E.jsx)(ed,{children:k}),t[38]=k,t[39]=M);let _;return t[40]!==M||t[41]!==C?(_=(0,E.jsxs)("div",{className:"flex flex-col gap-2",children:[C,M]}),t[40]=M,t[41]=C,t[42]=_):_=t[42],_};var ed=e=>{let t=(0,Bt.c)(2),{children:n}=e;if(Zn.Children.count(n)===0)return null;let i;return t[0]===n?i=t[1]:(i=(0,E.jsx)("div",{className:"flex flex-row overflow-x-auto overflow-y-hidden gap-4 snap-x pb-4",children:n}),t[0]=n,t[1]=i),i},td=e=>{let t=(0,Bt.c)(10),{title:n,children:i,actions:a}=e,r;t[0]===n?r=t[1]:(r=(0,E.jsx)("div",{className:"text-sm font-medium",children:n}),t[0]=n,t[1]=r);let s;t[2]!==a||t[3]!==r?(s=(0,E.jsxs)("div",{className:"flex flex-row justify-between items-center bg-(--slate-3) py-0.5 px-2",children:[r,a]}),t[2]=a,t[3]=r,t[4]=s):s=t[4];let u;t[5]===i?u=t[6]:(u=(0,E.jsx)("div",{className:"px-6 pt-2 max-h-[280px] overflow-y-auto",children:i}),t[5]=i,t[6]=u);let h;return t[7]!==s||t[8]!==u?(h=(0,E.jsxs)("div",{className:"shrink-0 bg-card shadow-md border overflow-hidden rounded snap-start",children:[s,u]}),t[7]=s,t[8]=u,t[9]=h):h=t[9],h};function nd(e){var t,n;return(t=e.encoding)!=null&&t.row||(n=e.encoding)!=null&&n.column||(e.width="container"),e}function rd(e){return e.fieldDef.field}function id(e){return[e.channel,e.fieldDef]}export{Sa as DataExplorerComponent,Zu as default};