@windborne/grapher 1.0.19 → 1.0.21
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.
- package/dist/744.bundle.cjs +1 -2
- package/dist/744.bundle.esm.js +1 -2
- package/dist/bundle.cjs +1 -1
- package/dist/bundle.cjs.map +1 -1
- package/dist/bundle.esm.js +1 -1
- package/dist/bundle.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/index.d.ts +19 -1
- package/src/index.js +3 -1
- package/src/index.mjs +3 -2
- package/src/rust/Cargo.lock +1 -1
- package/src/rust/pkg/index.js +0 -397
- package/src/rust/pkg/index_bg.wasm +0 -0
- package/src/state/state_controller.js +1 -1
- package/dist/744.bundle.cjs.map +0 -1
- package/dist/744.bundle.esm.js.map +0 -1
- package/dist/c83ea4ee006f636782a7.wasm +0 -0
- package/src/rust/target/.rustc_info.json +0 -1
- package/src/rust/target/CACHEDIR.TAG +0 -3
- package/src/rust/target/release/.cargo-lock +0 -0
- package/src/rust/target/release/.fingerprint/bumpalo-952aca385c0ec8c7/dep-lib-bumpalo +0 -0
- package/src/rust/target/release/.fingerprint/bumpalo-952aca385c0ec8c7/invoked.timestamp +0 -1
- package/src/rust/target/release/.fingerprint/bumpalo-952aca385c0ec8c7/lib-bumpalo +0 -1
- package/src/rust/target/release/.fingerprint/bumpalo-952aca385c0ec8c7/lib-bumpalo.json +0 -1
- package/src/rust/target/release/.fingerprint/cfg-if-26f63e0967bee367/dep-lib-cfg_if +0 -0
- package/src/rust/target/release/.fingerprint/cfg-if-26f63e0967bee367/invoked.timestamp +0 -1
- package/src/rust/target/release/.fingerprint/cfg-if-26f63e0967bee367/lib-cfg_if +0 -1
- package/src/rust/target/release/.fingerprint/cfg-if-26f63e0967bee367/lib-cfg_if.json +0 -1
- package/src/rust/target/release/.fingerprint/log-27022fbed75e0765/build-script-build-script-build +0 -1
- package/src/rust/target/release/.fingerprint/log-27022fbed75e0765/build-script-build-script-build.json +0 -1
- package/src/rust/target/release/.fingerprint/log-27022fbed75e0765/dep-build-script-build-script-build +0 -0
- package/src/rust/target/release/.fingerprint/log-27022fbed75e0765/invoked.timestamp +0 -1
- package/src/rust/target/release/.fingerprint/log-77a2b15818511956/dep-lib-log +0 -0
- package/src/rust/target/release/.fingerprint/log-77a2b15818511956/invoked.timestamp +0 -1
- package/src/rust/target/release/.fingerprint/log-77a2b15818511956/lib-log +0 -1
- package/src/rust/target/release/.fingerprint/log-77a2b15818511956/lib-log.json +0 -1
- package/src/rust/target/release/.fingerprint/log-e84eaabb9bd44eb4/run-build-script-build-script-build +0 -1
- package/src/rust/target/release/.fingerprint/log-e84eaabb9bd44eb4/run-build-script-build-script-build.json +0 -1
- package/src/rust/target/release/.fingerprint/proc-macro2-4bfff30b5fc4cb97/build-script-build-script-build +0 -1
- package/src/rust/target/release/.fingerprint/proc-macro2-4bfff30b5fc4cb97/build-script-build-script-build.json +0 -1
- package/src/rust/target/release/.fingerprint/proc-macro2-4bfff30b5fc4cb97/dep-build-script-build-script-build +0 -0
- package/src/rust/target/release/.fingerprint/proc-macro2-4bfff30b5fc4cb97/invoked.timestamp +0 -1
- package/src/rust/target/release/.fingerprint/proc-macro2-5841341c69f10991/run-build-script-build-script-build +0 -1
- package/src/rust/target/release/.fingerprint/proc-macro2-5841341c69f10991/run-build-script-build-script-build.json +0 -1
- package/src/rust/target/release/.fingerprint/proc-macro2-78d2de1a55ac02b2/dep-lib-proc_macro2 +0 -0
- package/src/rust/target/release/.fingerprint/proc-macro2-78d2de1a55ac02b2/invoked.timestamp +0 -1
- package/src/rust/target/release/.fingerprint/proc-macro2-78d2de1a55ac02b2/lib-proc_macro2 +0 -1
- package/src/rust/target/release/.fingerprint/proc-macro2-78d2de1a55ac02b2/lib-proc_macro2.json +0 -1
- package/src/rust/target/release/.fingerprint/quote-536d2fed8f9d8732/dep-lib-quote +0 -0
- package/src/rust/target/release/.fingerprint/quote-536d2fed8f9d8732/invoked.timestamp +0 -1
- package/src/rust/target/release/.fingerprint/quote-536d2fed8f9d8732/lib-quote +0 -1
- package/src/rust/target/release/.fingerprint/quote-536d2fed8f9d8732/lib-quote.json +0 -1
- package/src/rust/target/release/.fingerprint/rustversion-33c78623764430e6/run-build-script-build-script-build +0 -1
- package/src/rust/target/release/.fingerprint/rustversion-33c78623764430e6/run-build-script-build-script-build.json +0 -1
- package/src/rust/target/release/.fingerprint/rustversion-c398d71ca0669ffc/build-script-build-script-build +0 -1
- package/src/rust/target/release/.fingerprint/rustversion-c398d71ca0669ffc/build-script-build-script-build.json +0 -1
- package/src/rust/target/release/.fingerprint/rustversion-c398d71ca0669ffc/dep-build-script-build-script-build +0 -0
- package/src/rust/target/release/.fingerprint/rustversion-c398d71ca0669ffc/invoked.timestamp +0 -1
- package/src/rust/target/release/.fingerprint/rustversion-db265df7d80a8662/dep-lib-rustversion +0 -0
- package/src/rust/target/release/.fingerprint/rustversion-db265df7d80a8662/invoked.timestamp +0 -1
- package/src/rust/target/release/.fingerprint/rustversion-db265df7d80a8662/lib-rustversion +0 -1
- package/src/rust/target/release/.fingerprint/rustversion-db265df7d80a8662/lib-rustversion.json +0 -1
- package/src/rust/target/release/.fingerprint/syn-4d3d7efa31c6c7f3/dep-lib-syn +0 -0
- package/src/rust/target/release/.fingerprint/syn-4d3d7efa31c6c7f3/invoked.timestamp +0 -1
- package/src/rust/target/release/.fingerprint/syn-4d3d7efa31c6c7f3/lib-syn +0 -1
- package/src/rust/target/release/.fingerprint/syn-4d3d7efa31c6c7f3/lib-syn.json +0 -1
- package/src/rust/target/release/.fingerprint/unicode-ident-717c57863b369186/dep-lib-unicode_ident +0 -0
- package/src/rust/target/release/.fingerprint/unicode-ident-717c57863b369186/invoked.timestamp +0 -1
- package/src/rust/target/release/.fingerprint/unicode-ident-717c57863b369186/lib-unicode_ident +0 -1
- package/src/rust/target/release/.fingerprint/unicode-ident-717c57863b369186/lib-unicode_ident.json +0 -1
- package/src/rust/target/release/.fingerprint/wasm-bindgen-8074d255d7357147/build-script-build-script-build +0 -1
- package/src/rust/target/release/.fingerprint/wasm-bindgen-8074d255d7357147/build-script-build-script-build.json +0 -1
- package/src/rust/target/release/.fingerprint/wasm-bindgen-8074d255d7357147/dep-build-script-build-script-build +0 -0
- package/src/rust/target/release/.fingerprint/wasm-bindgen-8074d255d7357147/invoked.timestamp +0 -1
- package/src/rust/target/release/.fingerprint/wasm-bindgen-backend-8f4a80df1d778f42/dep-lib-wasm_bindgen_backend +0 -0
- package/src/rust/target/release/.fingerprint/wasm-bindgen-backend-8f4a80df1d778f42/invoked.timestamp +0 -1
- package/src/rust/target/release/.fingerprint/wasm-bindgen-backend-8f4a80df1d778f42/lib-wasm_bindgen_backend +0 -1
- package/src/rust/target/release/.fingerprint/wasm-bindgen-backend-8f4a80df1d778f42/lib-wasm_bindgen_backend.json +0 -1
- package/src/rust/target/release/.fingerprint/wasm-bindgen-macro-9eb75cc91d1ac47b/dep-lib-wasm_bindgen_macro +0 -0
- package/src/rust/target/release/.fingerprint/wasm-bindgen-macro-9eb75cc91d1ac47b/invoked.timestamp +0 -1
- package/src/rust/target/release/.fingerprint/wasm-bindgen-macro-9eb75cc91d1ac47b/lib-wasm_bindgen_macro +0 -1
- package/src/rust/target/release/.fingerprint/wasm-bindgen-macro-9eb75cc91d1ac47b/lib-wasm_bindgen_macro.json +0 -1
- package/src/rust/target/release/.fingerprint/wasm-bindgen-macro-support-14689549cd7b65b6/dep-lib-wasm_bindgen_macro_support +0 -0
- package/src/rust/target/release/.fingerprint/wasm-bindgen-macro-support-14689549cd7b65b6/invoked.timestamp +0 -1
- package/src/rust/target/release/.fingerprint/wasm-bindgen-macro-support-14689549cd7b65b6/lib-wasm_bindgen_macro_support +0 -1
- package/src/rust/target/release/.fingerprint/wasm-bindgen-macro-support-14689549cd7b65b6/lib-wasm_bindgen_macro_support.json +0 -1
- package/src/rust/target/release/.fingerprint/wasm-bindgen-shared-51aa8d774f2c628e/run-build-script-build-script-build +0 -1
- package/src/rust/target/release/.fingerprint/wasm-bindgen-shared-51aa8d774f2c628e/run-build-script-build-script-build.json +0 -1
- package/src/rust/target/release/.fingerprint/wasm-bindgen-shared-873126f2b1566d9c/dep-lib-wasm_bindgen_shared +0 -0
- package/src/rust/target/release/.fingerprint/wasm-bindgen-shared-873126f2b1566d9c/invoked.timestamp +0 -1
- package/src/rust/target/release/.fingerprint/wasm-bindgen-shared-873126f2b1566d9c/lib-wasm_bindgen_shared +0 -1
- package/src/rust/target/release/.fingerprint/wasm-bindgen-shared-873126f2b1566d9c/lib-wasm_bindgen_shared.json +0 -1
- package/src/rust/target/release/.fingerprint/wasm-bindgen-shared-f5ddbf25cd087b9d/build-script-build-script-build +0 -1
- package/src/rust/target/release/.fingerprint/wasm-bindgen-shared-f5ddbf25cd087b9d/build-script-build-script-build.json +0 -1
- package/src/rust/target/release/.fingerprint/wasm-bindgen-shared-f5ddbf25cd087b9d/dep-build-script-build-script-build +0 -0
- package/src/rust/target/release/.fingerprint/wasm-bindgen-shared-f5ddbf25cd087b9d/invoked.timestamp +0 -1
- package/src/rust/target/release/build/log-27022fbed75e0765/build-script-build +0 -0
- package/src/rust/target/release/build/log-27022fbed75e0765/build_script_build-27022fbed75e0765 +0 -0
- package/src/rust/target/release/build/log-27022fbed75e0765/build_script_build-27022fbed75e0765.d +0 -5
- package/src/rust/target/release/build/log-e84eaabb9bd44eb4/invoked.timestamp +0 -1
- package/src/rust/target/release/build/log-e84eaabb9bd44eb4/output +0 -2
- package/src/rust/target/release/build/log-e84eaabb9bd44eb4/root-output +0 -1
- package/src/rust/target/release/build/log-e84eaabb9bd44eb4/stderr +0 -0
- package/src/rust/target/release/build/proc-macro2-4bfff30b5fc4cb97/build-script-build +0 -0
- package/src/rust/target/release/build/proc-macro2-4bfff30b5fc4cb97/build_script_build-4bfff30b5fc4cb97 +0 -0
- package/src/rust/target/release/build/proc-macro2-4bfff30b5fc4cb97/build_script_build-4bfff30b5fc4cb97.d +0 -5
- package/src/rust/target/release/build/proc-macro2-5841341c69f10991/invoked.timestamp +0 -1
- package/src/rust/target/release/build/proc-macro2-5841341c69f10991/output +0 -16
- package/src/rust/target/release/build/proc-macro2-5841341c69f10991/root-output +0 -1
- package/src/rust/target/release/build/proc-macro2-5841341c69f10991/stderr +0 -0
- package/src/rust/target/release/build/rustversion-33c78623764430e6/invoked.timestamp +0 -1
- package/src/rust/target/release/build/rustversion-33c78623764430e6/out/version.expr +0 -5
- package/src/rust/target/release/build/rustversion-33c78623764430e6/output +0 -3
- package/src/rust/target/release/build/rustversion-33c78623764430e6/root-output +0 -1
- package/src/rust/target/release/build/rustversion-33c78623764430e6/stderr +0 -0
- package/src/rust/target/release/build/rustversion-c398d71ca0669ffc/build-script-build +0 -0
- package/src/rust/target/release/build/rustversion-c398d71ca0669ffc/build_script_build-c398d71ca0669ffc +0 -0
- package/src/rust/target/release/build/rustversion-c398d71ca0669ffc/build_script_build-c398d71ca0669ffc.d +0 -6
- package/src/rust/target/release/build/wasm-bindgen-8074d255d7357147/build-script-build +0 -0
- package/src/rust/target/release/build/wasm-bindgen-8074d255d7357147/build_script_build-8074d255d7357147 +0 -0
- package/src/rust/target/release/build/wasm-bindgen-8074d255d7357147/build_script_build-8074d255d7357147.d +0 -5
- package/src/rust/target/release/build/wasm-bindgen-shared-51aa8d774f2c628e/invoked.timestamp +0 -1
- package/src/rust/target/release/build/wasm-bindgen-shared-51aa8d774f2c628e/output +0 -1
- package/src/rust/target/release/build/wasm-bindgen-shared-51aa8d774f2c628e/root-output +0 -1
- package/src/rust/target/release/build/wasm-bindgen-shared-51aa8d774f2c628e/stderr +0 -0
- package/src/rust/target/release/build/wasm-bindgen-shared-f5ddbf25cd087b9d/build-script-build +0 -0
- package/src/rust/target/release/build/wasm-bindgen-shared-f5ddbf25cd087b9d/build_script_build-f5ddbf25cd087b9d +0 -0
- package/src/rust/target/release/build/wasm-bindgen-shared-f5ddbf25cd087b9d/build_script_build-f5ddbf25cd087b9d.d +0 -5
- package/src/rust/target/release/deps/bumpalo-952aca385c0ec8c7.d +0 -8
- package/src/rust/target/release/deps/cfg_if-26f63e0967bee367.d +0 -7
- package/src/rust/target/release/deps/libbumpalo-952aca385c0ec8c7.rlib +0 -0
- package/src/rust/target/release/deps/libbumpalo-952aca385c0ec8c7.rmeta +0 -0
- package/src/rust/target/release/deps/libcfg_if-26f63e0967bee367.rlib +0 -0
- package/src/rust/target/release/deps/libcfg_if-26f63e0967bee367.rmeta +0 -0
- package/src/rust/target/release/deps/liblog-77a2b15818511956.rlib +0 -0
- package/src/rust/target/release/deps/liblog-77a2b15818511956.rmeta +0 -0
- package/src/rust/target/release/deps/libproc_macro2-78d2de1a55ac02b2.rlib +0 -0
- package/src/rust/target/release/deps/libproc_macro2-78d2de1a55ac02b2.rmeta +0 -0
- package/src/rust/target/release/deps/libquote-536d2fed8f9d8732.rlib +0 -0
- package/src/rust/target/release/deps/libquote-536d2fed8f9d8732.rmeta +0 -0
- package/src/rust/target/release/deps/librustversion-db265df7d80a8662.dylib +0 -0
- package/src/rust/target/release/deps/libsyn-4d3d7efa31c6c7f3.rlib +0 -0
- package/src/rust/target/release/deps/libsyn-4d3d7efa31c6c7f3.rmeta +0 -0
- package/src/rust/target/release/deps/libunicode_ident-717c57863b369186.rlib +0 -0
- package/src/rust/target/release/deps/libunicode_ident-717c57863b369186.rmeta +0 -0
- package/src/rust/target/release/deps/libwasm_bindgen_backend-8f4a80df1d778f42.rlib +0 -0
- package/src/rust/target/release/deps/libwasm_bindgen_backend-8f4a80df1d778f42.rmeta +0 -0
- package/src/rust/target/release/deps/libwasm_bindgen_macro-9eb75cc91d1ac47b.dylib +0 -0
- package/src/rust/target/release/deps/libwasm_bindgen_macro_support-14689549cd7b65b6.rlib +0 -0
- package/src/rust/target/release/deps/libwasm_bindgen_macro_support-14689549cd7b65b6.rmeta +0 -0
- package/src/rust/target/release/deps/libwasm_bindgen_shared-873126f2b1566d9c.rlib +0 -0
- package/src/rust/target/release/deps/libwasm_bindgen_shared-873126f2b1566d9c.rmeta +0 -0
- package/src/rust/target/release/deps/log-77a2b15818511956.d +0 -9
- package/src/rust/target/release/deps/proc_macro2-78d2de1a55ac02b2.d +0 -14
- package/src/rust/target/release/deps/quote-536d2fed8f9d8732.d +0 -13
- package/src/rust/target/release/deps/rustversion-db265df7d80a8662.d +0 -20
- package/src/rust/target/release/deps/syn-4d3d7efa31c6c7f3.d +0 -55
- package/src/rust/target/release/deps/unicode_ident-717c57863b369186.d +0 -8
- package/src/rust/target/release/deps/wasm_bindgen_backend-8f4a80df1d778f42.d +0 -12
- package/src/rust/target/release/deps/wasm_bindgen_macro-9eb75cc91d1ac47b.d +0 -5
- package/src/rust/target/release/deps/wasm_bindgen_macro_support-14689549cd7b65b6.d +0 -8
- package/src/rust/target/release/deps/wasm_bindgen_shared-873126f2b1566d9c.d +0 -11
- package/src/rust/target/wasm32-unknown-unknown/CACHEDIR.TAG +0 -3
- package/src/rust/target/wasm32-unknown-unknown/release/.cargo-lock +0 -0
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/cfg-if-3a3785674ee249ca/dep-lib-cfg_if +0 -0
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/cfg-if-3a3785674ee249ca/invoked.timestamp +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/cfg-if-3a3785674ee249ca/lib-cfg_if +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/cfg-if-3a3785674ee249ca/lib-cfg_if.json +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/cfg-if-74574db566dede99/dep-lib-cfg_if +0 -0
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/cfg-if-74574db566dede99/invoked.timestamp +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/cfg-if-74574db566dede99/lib-cfg_if +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/cfg-if-74574db566dede99/lib-cfg_if.json +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/console_error_panic_hook-be3a0429a6c048b7/dep-lib-console_error_panic_hook +0 -0
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/console_error_panic_hook-be3a0429a6c048b7/invoked.timestamp +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/console_error_panic_hook-be3a0429a6c048b7/lib-console_error_panic_hook +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/console_error_panic_hook-be3a0429a6c048b7/lib-console_error_panic_hook.json +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/grapher-rs-aff1dd7b7a7287aa/dep-lib-grapher_rs +0 -0
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/grapher-rs-aff1dd7b7a7287aa/invoked.timestamp +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/grapher-rs-aff1dd7b7a7287aa/lib-grapher_rs +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/grapher-rs-aff1dd7b7a7287aa/lib-grapher_rs.json +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/js-sys-6b38aa05f6fa3f57/dep-lib-js_sys +0 -0
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/js-sys-6b38aa05f6fa3f57/invoked.timestamp +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/js-sys-6b38aa05f6fa3f57/lib-js_sys +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/js-sys-6b38aa05f6fa3f57/lib-js_sys.json +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/once_cell-e662b25eb1a26f16/dep-lib-once_cell +0 -0
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/once_cell-e662b25eb1a26f16/invoked.timestamp +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/once_cell-e662b25eb1a26f16/lib-once_cell +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/once_cell-e662b25eb1a26f16/lib-once_cell.json +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/wasm-bindgen-32de32a3c025e199/run-build-script-build-script-build +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/wasm-bindgen-32de32a3c025e199/run-build-script-build-script-build.json +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/wasm-bindgen-99ed9f45b86292fd/dep-lib-wasm_bindgen +0 -0
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/wasm-bindgen-99ed9f45b86292fd/invoked.timestamp +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/wasm-bindgen-99ed9f45b86292fd/lib-wasm_bindgen +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/wasm-bindgen-99ed9f45b86292fd/lib-wasm_bindgen.json +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/web-sys-07c24d9b289e70fd/dep-lib-web_sys +0 -0
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/web-sys-07c24d9b289e70fd/invoked.timestamp +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/web-sys-07c24d9b289e70fd/lib-web_sys +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/.fingerprint/web-sys-07c24d9b289e70fd/lib-web_sys.json +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/build/wasm-bindgen-32de32a3c025e199/invoked.timestamp +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/build/wasm-bindgen-32de32a3c025e199/output +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/build/wasm-bindgen-32de32a3c025e199/root-output +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/build/wasm-bindgen-32de32a3c025e199/stderr +0 -0
- package/src/rust/target/wasm32-unknown-unknown/release/deps/cfg_if-3a3785674ee249ca.d +0 -7
- package/src/rust/target/wasm32-unknown-unknown/release/deps/cfg_if-74574db566dede99.d +0 -7
- package/src/rust/target/wasm32-unknown-unknown/release/deps/console_error_panic_hook-be3a0429a6c048b7.d +0 -7
- package/src/rust/target/wasm32-unknown-unknown/release/deps/grapher_rs.d +0 -8
- package/src/rust/target/wasm32-unknown-unknown/release/deps/grapher_rs.wasm +0 -0
- package/src/rust/target/wasm32-unknown-unknown/release/deps/js_sys-6b38aa05f6fa3f57.d +0 -7
- package/src/rust/target/wasm32-unknown-unknown/release/deps/libcfg_if-3a3785674ee249ca.rlib +0 -0
- package/src/rust/target/wasm32-unknown-unknown/release/deps/libcfg_if-3a3785674ee249ca.rmeta +0 -0
- package/src/rust/target/wasm32-unknown-unknown/release/deps/libcfg_if-74574db566dede99.rlib +0 -0
- package/src/rust/target/wasm32-unknown-unknown/release/deps/libcfg_if-74574db566dede99.rmeta +0 -0
- package/src/rust/target/wasm32-unknown-unknown/release/deps/libconsole_error_panic_hook-be3a0429a6c048b7.rlib +0 -0
- package/src/rust/target/wasm32-unknown-unknown/release/deps/libconsole_error_panic_hook-be3a0429a6c048b7.rmeta +0 -0
- package/src/rust/target/wasm32-unknown-unknown/release/deps/libjs_sys-6b38aa05f6fa3f57.rlib +0 -0
- package/src/rust/target/wasm32-unknown-unknown/release/deps/libjs_sys-6b38aa05f6fa3f57.rmeta +0 -0
- package/src/rust/target/wasm32-unknown-unknown/release/deps/libonce_cell-e662b25eb1a26f16.rlib +0 -0
- package/src/rust/target/wasm32-unknown-unknown/release/deps/libonce_cell-e662b25eb1a26f16.rmeta +0 -0
- package/src/rust/target/wasm32-unknown-unknown/release/deps/libwasm_bindgen-99ed9f45b86292fd.rlib +0 -0
- package/src/rust/target/wasm32-unknown-unknown/release/deps/libwasm_bindgen-99ed9f45b86292fd.rmeta +0 -0
- package/src/rust/target/wasm32-unknown-unknown/release/deps/libweb_sys-07c24d9b289e70fd.rlib +0 -0
- package/src/rust/target/wasm32-unknown-unknown/release/deps/libweb_sys-07c24d9b289e70fd.rmeta +0 -0
- package/src/rust/target/wasm32-unknown-unknown/release/deps/once_cell-e662b25eb1a26f16.d +0 -7
- package/src/rust/target/wasm32-unknown-unknown/release/deps/wasm_bindgen-99ed9f45b86292fd.d +0 -21
- package/src/rust/target/wasm32-unknown-unknown/release/deps/web_sys-07c24d9b289e70fd.d +0 -13
- package/src/rust/target/wasm32-unknown-unknown/release/grapher_rs.d +0 -1
- package/src/rust/target/wasm32-unknown-unknown/release/grapher_rs.wasm +0 -0
package/dist/bundle.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import*as e from"react";var t={557:(e,t,n)=>{n.d(t,{A:()=>s});var r=n(354),i=n.n(r),a=n(314),o=n.n(a)()(i());o.push([e.id,'.grapher-night{position:relative;background:linear-gradient(to bottom right, #2a2a2b, #3e3e40);padding:10px;font-family:sans-serif;font-size:12px;line-height:normal}.grapher-night *,.grapher-night :after,.grapher-night :before{box-sizing:content-box}.grapher-night .grapher-title{text-align:center;color:#fff;font-size:18px;margin-bottom:8px}.grapher-night .grapher-primary-container-outer{display:flex}.grapher-night .grapher-primary-container-outer .grapher-sidebar{background:linear-gradient(#111, transparent 75%, transparent 100%);color:#eee;padding:50px 6px 5px 10px;margin-left:-10px;margin-top:-10px;margin-bottom:-10px;overflow-y:auto;flex-shrink:0}.grapher-night .grapher-primary-container-outer .grapher-sidebar .series-toggle{white-space:nowrap}.grapher-night .grapher-primary-container-outer .grapher-sidebar .series-toggle+.series-toggle{margin-top:3px}.grapher-night .grapher-primary-container-outer .grapher-sidebar .series-toggle label{display:inline-block;position:relative;user-select:none}.grapher-night .grapher-primary-container-outer .grapher-sidebar .series-toggle input[type=checkbox]{opacity:0;cursor:pointer;height:0;width:0;margin-right:11px}.grapher-night .grapher-primary-container-outer .grapher-sidebar .series-toggle input:not(:checked)~.checkmark{background-color:rgba(0,0,0,0) !important}.grapher-night .grapher-primary-container-outer .grapher-sidebar .series-toggle input:checked~.checkmark:after{display:block}.grapher-night .grapher-primary-container-outer .grapher-sidebar .series-toggle .checkmark{position:absolute;top:1px;left:0;height:7px;width:7px;background-color:#eee;border:2px solid;border-radius:1px}.grapher-night .grapher-primary-container-outer .grapher-sidebar .series-toggle .checkmark:after{content:"";position:absolute;display:none;left:.5px;top:-1.5px;width:3px;height:6px;border:solid #fff;border-width:0 2px 2px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.grapher-night .grapher-primary-container-outer .grapher-primary-container-body{width:100%;padding-left:2px}.grapher-night .series-key{text-align:center;margin-bottom:-14px;position:relative}.grapher-night .series-key .scale-label{display:inline-block;background:#111;color:silver;transform:rotate(-90deg);width:24px;margin-left:-5px;vertical-align:top;margin-top:4px;padding-bottom:2px;cursor:pointer;user-select:none}.grapher-night .series-key .series-key-axis-container{display:inline-block;border:1px solid #111;min-width:18px;min-height:24px;vertical-align:top;white-space:nowrap}.grapher-night .series-key .series-key-axis-container+.series-key-axis-container{margin-left:4px}.grapher-night .series-key .series-key-axis-container.series-key-axis-container-showing-label .scale-label{width:46px;margin-top:15px;margin-left:-15px;margin-right:-12px}.grapher-night .series-key .series-key-axis-container.series-key-axis-container-showing-label .series-key-axis-label-container{display:block}.grapher-night .series-key .series-key-axis-container.series-key-axis-container-showing-label .label-input-toggler path{fill:#e0e0e3}.grapher-night .series-key .series-key-axis-container .series-key-axis-container-body{display:inline-block}.grapher-night .series-key .series-key-axis-container .series-key-axis-container-body>div{white-space:initial}.grapher-night .series-key .series-key-axis-container .series-key-axis-label-container{display:none}.grapher-night .series-key .series-key-axis-container .label-input-toggler{width:16px;cursor:pointer;display:inline-block;vertical-align:top;margin:4px 2px}.grapher-night .series-key .series-key-axis-container .label-input-toggler path{fill:#111}.grapher-night .series-key .series-key-axis-container .label-input-toggler:hover path{fill:#e0e0e3}.grapher-night .series-key .series-key-item{border:1px solid currentColor;padding:2px;margin:2px;display:inline-block;cursor:pointer;user-select:none;background:rgba(0,0,0,0)}.grapher-night .series-key .series-key-item+.series-key-item{margin-left:4px}.grapher-night .series-key .series-key-item.series-key-item-highlighted{box-shadow:0 0 4px silver}.grapher-night .range-selection{color:silver;user-select:none}.grapher-night .range-selection.range-not-dates{color:#aaa}.grapher-night .range-selection .range-buttons{text-align:right}.grapher-night .range-selection .range-buttons .options-bar{display:inline-block}.grapher-night .range-selection .range-buttons .option-tooltip{position:relative;display:inline-block;border-bottom:1px dotted #000}.grapher-night .range-selection .range-buttons .option-tooltip .option-tooltip-text{visibility:hidden;color:silver;background:#000;text-align:center;padding:5px 5px;border-radius:6px;position:absolute;z-index:1;border:1px solid #000;width:120px;margin-left:-65px;top:calc(100% + 7px);left:50%}.grapher-night .range-selection .range-buttons .option-tooltip:hover .option-tooltip-text{visibility:visible}.grapher-night .range-selection .range-buttons .option-tooltip .option-tooltip-text::after{content:" ";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:rgba(0,0,0,0) rgba(0,0,0,0) #000 rgba(0,0,0,0)}.grapher-night .range-selection .range-buttons .range-button{display:inline-block;cursor:pointer;padding:4px 8px;margin-left:6px;border-radius:2px;background:#505053}.grapher-night .range-selection .range-buttons .range-button.range-button-selected{color:silver;background:#000}.grapher-night .range-selection .range-buttons .range-button.range-button-disabled,.grapher-night .range-selection .range-buttons .range-button.range-button-selected.range-button-disabled{cursor:not-allowed;color:#aaa;background:#7a7a7a}.grapher-night .range-selection .range-buttons .range-button .icon-container{position:relative;width:0}.grapher-night .range-selection .range-buttons .range-button .icon-container.icon-container-narrow svg{left:-3px}.grapher-night .range-selection .range-buttons .range-button .icon-container.icon-container-square{width:5px}.grapher-night .range-selection .range-buttons .range-button .icon-container.icon-container-square svg{left:-5px}.grapher-night .range-selection .range-buttons .range-button .icon-container.icon-container-448{width:3px}.grapher-night .range-selection .range-buttons .range-button .icon-container.icon-container-448 svg{left:-5px}.grapher-night .range-selection .range-buttons .range-button .icon-container:before{content:"A";opacity:0}.grapher-night .range-selection .range-buttons .range-button .icon-container svg{height:15px;position:absolute;top:-1px;left:-4px}.grapher-night .range-selection .range-buttons .range-selection-history+.range-selection-history{margin-right:8px;margin-left:4px}.grapher-night .range-selection .range-buttons .percentile-button>div{display:inline-block}.grapher-night .range-selection .range-buttons .percentile-button input{background:rgba(0,0,0,0);border:1px solid #505053;margin:2px 8px 2px 0;color:#e0e0e3;padding:1px 2px;width:20px;font-size:11px;-moz-appearance:textfield}.grapher-night .range-selection .range-buttons .percentile-button input:focus{outline:none;border-color:#e0e0e3}.grapher-night .range-selection .range-buttons .percentile-button input::-webkit-outer-spin-button,.grapher-night .range-selection .range-buttons .percentile-button input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.grapher-night .range-selection .range-buttons .percentile-button .icon-container.icon-container-narrow svg{height:12px;top:1px;left:-5px}.grapher-night .range-selection .range-buttons .showing-options-button{margin-right:8px}.grapher-night .grapher-main-row{display:flex}.grapher-night .grapher-main-row .central-container{width:100%}.grapher-night .range-graph-container{display:flex}.grapher-night .graph-body{width:100%;height:400px;position:relative}.grapher-night .graph-body canvas{width:100%;height:100%}.grapher-night .graph-body .grapher-tooltip,.grapher-night .graph-body .grapher-draggable-points,.grapher-night .graph-body .grapher-vertical-lines{position:absolute;top:0;left:0;right:0;z-index:20}.grapher-night .graph-body .grapher-tooltip>svg,.grapher-night .graph-body .grapher-draggable-points>svg,.grapher-night .graph-body .grapher-vertical-lines>svg{position:absolute;overflow:visible;left:0}.grapher-night .graph-body .grapher-vertical-lines{pointer-events:none;user-select:none}.grapher-night .graph-body .grapher-tooltip .tooltip-item path{fill:rgba(0,0,0,.6)}.grapher-night .graph-body .grapher-tooltip .tooltip-item text{fill:#f0f0f0;dominant-baseline:hanging;text-anchor:start}.grapher-night .graph-body .grapher-tooltip .tooltip-item.tooltip-item-fixed path{fill:#000}.grapher-night .graph-body .grapher-tooltip .line{position:absolute;height:400px;border-left:1px solid #ccc}.grapher-night .graph-body .grapher-tooltip .custom-tooltip-container{position:absolute}.grapher-night .graph-body .grapher-context-menu{position:absolute;top:0;left:0}.grapher-night .graph-body .grapher-context-menu .menu-item .menu-text{user-select:all;position:absolute;top:0;background:rgba(0,0,0,.6);border:1px solid rgba(255,255,255,.3);color:#f0f0f0;padding:2px 4px;max-width:max-content;width:200px}.grapher-night .graph-body .grapher-draggable-points circle{cursor:pointer}.grapher-night .graph-body .grapher-vertical-lines line{stroke:#ccc}.grapher-night .graph-body .grapher-vertical-lines polygon{fill:#ccc}.grapher-night .graph-body .grapher-annotations{position:absolute;top:0;pointer-events:none;user-select:none;z-index:10}.grapher-night .graph-body .grapher-annotations .grapher-annotation{position:absolute}.grapher-night .graph-body .grapher-annotations .grapher-annotation .annotation-marker{display:inline-block;background:rgba(255,255,255,.3)}.grapher-night .graph-body .grapher-annotations .grapher-annotation.grapher-annotation-range .annotation-range-marker{display:inline-block;background-color:rgba(128,128,128,.2);background-image:repeating-linear-gradient(53deg, #626266, #626266 1px, rgba(255, 255, 255, 0.1) 1px, rgba(255, 255, 255, 0.1) 4px);background-size:40px 40px;border-right:1px solid #fff;border-left:1px solid #fff}.grapher-night .graph-body .grapher-annotations .grapher-annotation .annotation-text{position:absolute;background:rgba(0,0,0,.6);border:1px solid rgba(255,255,255,.3);color:#f0f0f0;padding:2px 4px;white-space:nowrap;font-size:10px;z-index:10}.grapher-night .graph-body .bounds-selection{position:absolute;background:rgba(255,255,255,.1)}.grapher-night .axis{overflow:visible;user-select:none}.grapher-night .axis.x-axis{width:1px;height:20px;display:block}.grapher-night .axis.x-axis .axis-item text{text-anchor:middle}.grapher-night .axis.x-axis .axis-item.axis-item-first text{text-anchor:start}.grapher-night .axis.x-axis .axis-item.axis-item-last text{text-anchor:end}.grapher-night .axis.y-axis{height:400px}.grapher-night .axis.y-axis .axis-item text{text-anchor:end;alignment-baseline:middle}.grapher-night .axis.y-axis .y-axis-label{text-anchor:middle;fill:#e0e0e3}.grapher-night .axis.y-axis .y-axis-label.y-axis-big-label{font-size:18px}.grapher-night .axis.y-axis .series-color-box{cursor:pointer}.grapher-night .axis.y-axis.y-axis-right .axis-item text{text-anchor:start}.grapher-night .axis .axis-line{stroke:silver;stroke-width:2px}.grapher-night .axis .axis-line-shadow{stroke:#505053;stroke-width:1px}.grapher-night .axis .axis-item path{stroke:#505053;stroke-width:1px}.grapher-night .axis .axis-item text{fill:#e0e0e3;font-size:8px}.grapher-night .axis .axis-item.axis-item-major .axis-tick{stroke-width:2px}.grapher-night .axis .axis-item.axis-item-big-labels text{font-size:16px}.grapher-night .range-selection-graph{width:100%;padding-bottom:14px}.grapher-night .range-selection-graph .graph-body-secondary{height:50px}.grapher-night .range-selection-graph .graph-body-secondary svg{position:absolute;left:0;height:50px;width:100%;overflow:visible}.grapher-night .range-selection-graph .graph-body-secondary svg .target-selection{fill:rgba(255,255,255,.1);cursor:ew-resize}.grapher-night .range-selection-graph .graph-body-secondary svg .selection-bar{fill:#808083;cursor:ew-resize}.grapher-night .range-selection-graph .graph-body-secondary svg .selection-bar-track{fill:#303033}.grapher-night .range-selection-graph .graph-body-secondary svg .selection-bar-rifles{fill:none;stroke-width:1;stroke:#fff}.grapher-night .range-selection-graph .graph-body-secondary svg .selection-bar-handle{stroke:#aaa;stroke-width:1;fill:#666;cursor:ew-resize}.grapher-night .range-selection-graph .graph-body-secondary svg .target-selection-outline{stroke:#aaa;fill:none}.grapher-night .range-selection-graph .graph-body-secondary svg .axis-item text{fill:#9f9f9f;text-anchor:start;font-size:8px;user-select:none;dominant-baseline:text-after-edge}.grapher-night .range-selection-graph .graph-body-secondary svg .axis-item path{stroke:#505053;stroke-width:1px}.grapher-night input,.grapher-night textarea{background:rgba(0,0,0,0);border:1px solid #505053;margin:2px 0;color:#e0e0e3;padding:1px 2px;text-align:center}.grapher-night input:focus,.grapher-night textarea:focus{outline:none;border-color:#e0e0e3}.grapher-night.grapher-dragging-y .y-axis{border:2px dashed silver;margin:-2px;flex-shrink:0}.grapher-night.grapher-dragging-y .y-axis+.y-axis{border-left:none}.grapher-night.grapher-fullscreen{height:calc(100vh - 2*10px)}.grapher-night.grapher-fixed-height .grapher-primary-container-outer{height:100%}.grapher-night.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body{height:100%;display:flex;flex-direction:column}.grapher-night.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body .grapher-main-row{flex-grow:1}.grapher-night.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body .grapher-main-row .central-container{display:flex;flex-direction:column;height:100%}.grapher-night.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body .grapher-main-row .central-container>.graph-body{flex-grow:1;height:unset}.grapher-night.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body .grapher-main-row .axis.y-axis{height:calc(100% - 40px)}.grapher-night.new-grapher{height:auto;border:2px dashed silver;text-align:center;color:#ddd}.grapher-day{position:relative;background:linear-gradient(to bottom right, #FFF, #FFF);padding:10px;font-family:sans-serif;font-size:12px;line-height:normal}.grapher-day *,.grapher-day :after,.grapher-day :before{box-sizing:content-box}.grapher-day .grapher-title{text-align:center;color:#000;font-size:18px;margin-bottom:8px}.grapher-day .grapher-primary-container-outer{display:flex}.grapher-day .grapher-primary-container-outer .grapher-sidebar{background:linear-gradient(#EEE, transparent 75%, transparent 100%);color:#111;padding:50px 6px 5px 10px;margin-left:-10px;margin-top:-10px;margin-bottom:-10px;overflow-y:auto;flex-shrink:0}.grapher-day .grapher-primary-container-outer .grapher-sidebar .series-toggle{white-space:nowrap}.grapher-day .grapher-primary-container-outer .grapher-sidebar .series-toggle+.series-toggle{margin-top:3px}.grapher-day .grapher-primary-container-outer .grapher-sidebar .series-toggle label{display:inline-block;position:relative;user-select:none}.grapher-day .grapher-primary-container-outer .grapher-sidebar .series-toggle input[type=checkbox]{opacity:0;cursor:pointer;height:0;width:0;margin-right:11px}.grapher-day .grapher-primary-container-outer .grapher-sidebar .series-toggle input:not(:checked)~.checkmark{background-color:rgba(0,0,0,0) !important}.grapher-day .grapher-primary-container-outer .grapher-sidebar .series-toggle input:checked~.checkmark:after{display:block}.grapher-day .grapher-primary-container-outer .grapher-sidebar .series-toggle .checkmark{position:absolute;top:1px;left:0;height:7px;width:7px;background-color:#eee;border:2px solid;border-radius:1px}.grapher-day .grapher-primary-container-outer .grapher-sidebar .series-toggle .checkmark:after{content:"";position:absolute;display:none;left:.5px;top:-1.5px;width:3px;height:6px;border:solid #fff;border-width:0 2px 2px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.grapher-day .grapher-primary-container-outer .grapher-primary-container-body{width:100%;padding-left:2px}.grapher-day .series-key{text-align:center;margin-bottom:-14px;position:relative}.grapher-day .series-key .scale-label{display:inline-block;background:#b0b0b7;color:#000;transform:rotate(-90deg);width:24px;margin-left:-5px;vertical-align:top;margin-top:4px;padding-bottom:2px;cursor:pointer;user-select:none}.grapher-day .series-key .series-key-axis-container{display:inline-block;border:1px solid #b0b0b7;min-width:18px;min-height:24px;vertical-align:top;white-space:nowrap}.grapher-day .series-key .series-key-axis-container+.series-key-axis-container{margin-left:4px}.grapher-day .series-key .series-key-axis-container.series-key-axis-container-showing-label .scale-label{width:46px;margin-top:15px;margin-left:-15px;margin-right:-12px}.grapher-day .series-key .series-key-axis-container.series-key-axis-container-showing-label .series-key-axis-label-container{display:block}.grapher-day .series-key .series-key-axis-container.series-key-axis-container-showing-label .label-input-toggler path{fill:#505053}.grapher-day .series-key .series-key-axis-container .series-key-axis-container-body{display:inline-block}.grapher-day .series-key .series-key-axis-container .series-key-axis-container-body>div{white-space:initial}.grapher-day .series-key .series-key-axis-container .series-key-axis-label-container{display:none}.grapher-day .series-key .series-key-axis-container .label-input-toggler{width:16px;cursor:pointer;display:inline-block;vertical-align:top;margin:4px 2px}.grapher-day .series-key .series-key-axis-container .label-input-toggler path{fill:#b0b0b7}.grapher-day .series-key .series-key-axis-container .label-input-toggler:hover path{fill:#505053}.grapher-day .series-key .series-key-item{border:1px solid currentColor;padding:2px;margin:2px;display:inline-block;cursor:pointer;user-select:none}.grapher-day .series-key .series-key-item+.series-key-item{margin-left:4px}.grapher-day .series-key .series-key-item.series-key-item-highlighted{box-shadow:0 0 4px #000}.grapher-day .range-selection{color:#444;user-select:none}.grapher-day .range-selection.range-not-dates{color:#888}.grapher-day .range-selection .range-buttons{text-align:right}.grapher-day .range-selection .range-buttons .options-bar{display:inline-block}.grapher-day .range-selection .range-buttons .option-tooltip{position:relative;display:inline-block;border-bottom:1px dotted #000}.grapher-day .range-selection .range-buttons .option-tooltip .option-tooltip-text{visibility:hidden;color:#000;background:#fff;text-align:center;padding:5px 5px;border-radius:6px;position:absolute;z-index:1;border:1px solid #000;width:120px;margin-left:-65px;top:calc(100% + 7px);left:50%}.grapher-day .range-selection .range-buttons .option-tooltip:hover .option-tooltip-text{visibility:visible}.grapher-day .range-selection .range-buttons .option-tooltip .option-tooltip-text::after{content:" ";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:rgba(0,0,0,0) rgba(0,0,0,0) #000 rgba(0,0,0,0)}.grapher-day .range-selection .range-buttons .range-button{display:inline-block;cursor:pointer;padding:4px 8px;margin-left:4px;border-radius:2px;background:#fff;border:1px dotted silver}.grapher-day .range-selection .range-buttons .range-button.range-button-selected{color:#000;background:#fff;border:1px solid #000}.grapher-day .range-selection .range-buttons .range-button.range-button-disabled,.grapher-day .range-selection .range-buttons .range-button.range-button-selected.range-button-disabled{cursor:not-allowed;color:#888;background:#eee}.grapher-day .range-selection .range-buttons .range-button .icon-container{position:relative;width:0}.grapher-day .range-selection .range-buttons .range-button .icon-container.icon-container-narrow svg{left:-3px}.grapher-day .range-selection .range-buttons .range-button .icon-container.icon-container-square{width:5px}.grapher-day .range-selection .range-buttons .range-button .icon-container.icon-container-square svg{left:-5px}.grapher-day .range-selection .range-buttons .range-button .icon-container.icon-container-448{width:3px}.grapher-day .range-selection .range-buttons .range-button .icon-container.icon-container-448 svg{left:-5px}.grapher-day .range-selection .range-buttons .range-button .icon-container:before{content:"A";opacity:0}.grapher-day .range-selection .range-buttons .range-button .icon-container svg{height:15px;position:absolute;top:-1px;left:-4px}.grapher-day .range-selection .range-buttons .range-selection-history+.range-selection-history{margin-right:8px;margin-left:4px}.grapher-day .range-selection .range-buttons .percentile-button>div{display:inline-block}.grapher-day .range-selection .range-buttons .percentile-button input{background:rgba(0,0,0,0);border:1px solid #e0e0e3;margin:2px 8px 2px 0;color:#222;padding:1px 2px;width:20px;font-size:11px;-moz-appearance:textfield}.grapher-day .range-selection .range-buttons .percentile-button input:focus{outline:none;border-color:#505053}.grapher-day .range-selection .range-buttons .percentile-button input::-webkit-outer-spin-button,.grapher-day .range-selection .range-buttons .percentile-button input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.grapher-day .range-selection .range-buttons .percentile-button .icon-container.icon-container-narrow svg{height:12px;top:1px;left:-5px}.grapher-day .range-selection .range-buttons .showing-options-button{margin-right:8px}.grapher-day .grapher-main-row{display:flex}.grapher-day .grapher-main-row .central-container{width:100%}.grapher-day .range-graph-container{display:flex}.grapher-day .graph-body{width:100%;height:400px;position:relative}.grapher-day .graph-body canvas{width:100%;height:100%}.grapher-day .graph-body .grapher-tooltip,.grapher-day .graph-body .grapher-draggable-points,.grapher-day .graph-body .grapher-vertical-lines{position:absolute;top:0;left:0;right:0;z-index:20}.grapher-day .graph-body .grapher-tooltip>svg,.grapher-day .graph-body .grapher-draggable-points>svg,.grapher-day .graph-body .grapher-vertical-lines>svg{position:absolute;overflow:visible;left:0}.grapher-day .graph-body .grapher-vertical-lines{pointer-events:none;user-select:none}.grapher-day .graph-body .grapher-tooltip .tooltip-item path{fill:rgba(255,255,255,.6)}.grapher-day .graph-body .grapher-tooltip .tooltip-item text{fill:#0f0f0f;dominant-baseline:hanging;text-anchor:start}.grapher-day .graph-body .grapher-tooltip .tooltip-item.tooltip-item-fixed path{fill:#fff}.grapher-day .graph-body .grapher-tooltip .line{position:absolute;height:400px;border-left:1px solid #333}.grapher-day .graph-body .grapher-tooltip .custom-tooltip-container{position:absolute}.grapher-day .graph-body .grapher-context-menu{position:absolute;top:0;left:0}.grapher-day .graph-body .grapher-context-menu .menu-item .menu-text{user-select:all;position:absolute;top:0;background:rgba(255,255,255,.6);border:1px solid rgba(0,0,0,.3);color:#0f0f0f;padding:2px 4px;max-width:max-content;width:200px}.grapher-day .graph-body .grapher-draggable-points circle{cursor:pointer}.grapher-day .graph-body .grapher-vertical-lines line{stroke:#333}.grapher-day .graph-body .grapher-vertical-lines polygon{fill:#333}.grapher-day .graph-body .grapher-annotations{position:absolute;top:0;pointer-events:none;user-select:none;z-index:10}.grapher-day .graph-body .grapher-annotations .grapher-annotation{position:absolute}.grapher-day .graph-body .grapher-annotations .grapher-annotation .annotation-marker{display:inline-block;background:rgba(0,0,0,.3)}.grapher-day .graph-body .grapher-annotations .grapher-annotation.grapher-annotation-range .annotation-range-marker{display:inline-block;background-color:rgba(128,128,128,.2);background-image:repeating-linear-gradient(53deg, #626266, #626266 1px, rgba(255, 255, 255, 0.1) 1px, rgba(255, 255, 255, 0.1) 4px);background-size:40px 40px;border-right:1px solid #fff;border-left:1px solid #fff}.grapher-day .graph-body .grapher-annotations .grapher-annotation .annotation-text{position:absolute;background:rgba(255,255,255,.6);border:1px solid rgba(0,0,0,.3);color:#0f0f0f;padding:2px 4px;white-space:nowrap;font-size:10px;z-index:10}.grapher-day .graph-body .bounds-selection{position:absolute;background:rgba(0,0,0,.02)}.grapher-day .axis{overflow:visible;user-select:none}.grapher-day .axis.x-axis{width:1px;height:20px;display:block}.grapher-day .axis.x-axis .axis-item text{text-anchor:middle}.grapher-day .axis.x-axis .axis-item.axis-item-first text{text-anchor:start}.grapher-day .axis.x-axis .axis-item.axis-item-last text{text-anchor:end}.grapher-day .axis.y-axis{height:400px}.grapher-day .axis.y-axis .axis-item text{text-anchor:end;alignment-baseline:middle}.grapher-day .axis.y-axis .y-axis-label{text-anchor:middle;fill:#1f1f1c}.grapher-day .axis.y-axis .y-axis-label.y-axis-big-label{font-size:18px}.grapher-day .axis.y-axis .series-color-box{cursor:pointer}.grapher-day .axis.y-axis.y-axis-right .axis-item text{text-anchor:start}.grapher-day .axis .axis-line{stroke:#656565;stroke-width:2px}.grapher-day .axis .axis-line-shadow{stroke:#bfbfbf;stroke-width:1px}.grapher-day .axis .axis-item path{stroke:#bfbfbf;stroke-width:1px}.grapher-day .axis .axis-item text{fill:#1f1f1c;font-size:8px}.grapher-day .axis .axis-item.axis-item-major .axis-tick{stroke-width:2px}.grapher-day .axis .axis-item.axis-item-big-labels text{font-size:16px}.grapher-day .range-selection-graph{width:100%;padding-bottom:14px}.grapher-day .range-selection-graph .graph-body-secondary{height:50px}.grapher-day .range-selection-graph .graph-body-secondary svg{position:absolute;left:0;height:50px;width:100%;overflow:visible}.grapher-day .range-selection-graph .graph-body-secondary svg .target-selection{fill:rgba(0,0,0,.02);cursor:ew-resize}.grapher-day .range-selection-graph .graph-body-secondary svg .selection-bar{fill:#b0b0b7;cursor:ew-resize}.grapher-day .range-selection-graph .graph-body-secondary svg .selection-bar-track{fill:#eee}.grapher-day .range-selection-graph .graph-body-secondary svg .selection-bar-rifles{fill:none;stroke-width:1;stroke:#333}.grapher-day .range-selection-graph .graph-body-secondary svg .selection-bar-handle{stroke:#333;stroke-width:1;fill:#b0b0b7;cursor:ew-resize}.grapher-day .range-selection-graph .graph-body-secondary svg .target-selection-outline{stroke:#333;fill:none}.grapher-day .range-selection-graph .graph-body-secondary svg .axis-item text{fill:#9f9f9f;text-anchor:start;font-size:8px;user-select:none;dominant-baseline:text-after-edge}.grapher-day .range-selection-graph .graph-body-secondary svg .axis-item path{stroke:#bfbfbf;stroke-width:1px}.grapher-day input,.grapher-day textarea{background:rgba(0,0,0,0);border:1px solid #e0e0e3;margin:2px 0;color:#222;padding:1px 2px;text-align:center}.grapher-day input:focus,.grapher-day textarea:focus{outline:none;border-color:#505053}.grapher-day.grapher-dragging-y .y-axis{border:2px dashed silver;margin:-2px;flex-shrink:0}.grapher-day.grapher-dragging-y .y-axis+.y-axis{border-left:none}.grapher-day.grapher-fullscreen{height:calc(100vh - 2*10px)}.grapher-day.grapher-fixed-height .grapher-primary-container-outer{height:100%}.grapher-day.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body{height:100%;display:flex;flex-direction:column}.grapher-day.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body .grapher-main-row{flex-grow:1}.grapher-day.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body .grapher-main-row .central-container{display:flex;flex-direction:column;height:100%}.grapher-day.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body .grapher-main-row .central-container>.graph-body{flex-grow:1;height:unset}.grapher-day.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body .grapher-main-row .axis.y-axis{height:calc(100% - 40px)}.grapher-day.new-grapher{height:auto;border:2px dashed silver;text-align:center;color:#222}.grapher-export{position:relative;background:linear-gradient(to bottom right, #FFF, #FFF);padding:10px;font-family:sans-serif;font-size:12px;line-height:normal}.grapher-export *,.grapher-export :after,.grapher-export :before{box-sizing:content-box}.grapher-export .grapher-title{text-align:center;color:#000;font-size:18px;margin-bottom:8px}.grapher-export .grapher-primary-container-outer{display:flex}.grapher-export .grapher-primary-container-outer .grapher-sidebar{background:linear-gradient(#EEE, transparent 75%, transparent 100%);color:#111;padding:50px 6px 5px 10px;margin-left:-10px;margin-top:-10px;margin-bottom:-10px;overflow-y:auto;flex-shrink:0}.grapher-export .grapher-primary-container-outer .grapher-sidebar .series-toggle{white-space:nowrap}.grapher-export .grapher-primary-container-outer .grapher-sidebar .series-toggle+.series-toggle{margin-top:3px}.grapher-export .grapher-primary-container-outer .grapher-sidebar .series-toggle label{display:inline-block;position:relative;user-select:none}.grapher-export .grapher-primary-container-outer .grapher-sidebar .series-toggle input[type=checkbox]{opacity:0;cursor:pointer;height:0;width:0;margin-right:11px}.grapher-export .grapher-primary-container-outer .grapher-sidebar .series-toggle input:not(:checked)~.checkmark{background-color:rgba(0,0,0,0) !important}.grapher-export .grapher-primary-container-outer .grapher-sidebar .series-toggle input:checked~.checkmark:after{display:block}.grapher-export .grapher-primary-container-outer .grapher-sidebar .series-toggle .checkmark{position:absolute;top:1px;left:0;height:7px;width:7px;background-color:#eee;border:2px solid;border-radius:1px}.grapher-export .grapher-primary-container-outer .grapher-sidebar .series-toggle .checkmark:after{content:"";position:absolute;display:none;left:.5px;top:-1.5px;width:3px;height:6px;border:solid #fff;border-width:0 2px 2px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.grapher-export .grapher-primary-container-outer .grapher-primary-container-body{width:100%;padding-left:2px}.grapher-export .series-key{text-align:center;margin-bottom:-14px;position:relative}.grapher-export .series-key .scale-label{display:inline-block;background:#b0b0b7;color:#000;transform:rotate(-90deg);width:24px;margin-left:-5px;vertical-align:top;margin-top:4px;padding-bottom:2px;cursor:pointer;user-select:none}.grapher-export .series-key .series-key-axis-container{display:inline-block;border:1px solid #b0b0b7;min-width:18px;min-height:24px;vertical-align:top;white-space:nowrap}.grapher-export .series-key .series-key-axis-container+.series-key-axis-container{margin-left:4px}.grapher-export .series-key .series-key-axis-container.series-key-axis-container-showing-label .scale-label{width:46px;margin-top:15px;margin-left:-15px;margin-right:-12px}.grapher-export .series-key .series-key-axis-container.series-key-axis-container-showing-label .series-key-axis-label-container{display:block}.grapher-export .series-key .series-key-axis-container.series-key-axis-container-showing-label .label-input-toggler path{fill:#505053}.grapher-export .series-key .series-key-axis-container .series-key-axis-container-body{display:inline-block}.grapher-export .series-key .series-key-axis-container .series-key-axis-container-body>div{white-space:initial}.grapher-export .series-key .series-key-axis-container .series-key-axis-label-container{display:none}.grapher-export .series-key .series-key-axis-container .label-input-toggler{width:16px;cursor:pointer;display:inline-block;vertical-align:top;margin:4px 2px}.grapher-export .series-key .series-key-axis-container .label-input-toggler path{fill:#b0b0b7}.grapher-export .series-key .series-key-axis-container .label-input-toggler:hover path{fill:#505053}.grapher-export .series-key .series-key-item{border:1px solid currentColor;padding:2px;margin:2px;display:inline-block;cursor:pointer;user-select:none}.grapher-export .series-key .series-key-item+.series-key-item{margin-left:4px}.grapher-export .series-key .series-key-item.series-key-item-highlighted{box-shadow:0 0 4px #000}.grapher-export .range-selection{color:#444;user-select:none}.grapher-export .range-selection.range-not-dates{color:#888}.grapher-export .range-selection .range-buttons{text-align:right}.grapher-export .range-selection .range-buttons .options-bar{display:inline-block}.grapher-export .range-selection .range-buttons .option-tooltip{position:relative;display:inline-block;border-bottom:1px dotted #000}.grapher-export .range-selection .range-buttons .option-tooltip .option-tooltip-text{visibility:hidden;color:#000;background:#fff;text-align:center;padding:5px 5px;border-radius:6px;position:absolute;z-index:1;border:1px solid #000;width:120px;margin-left:-65px;top:calc(100% + 7px);left:50%}.grapher-export .range-selection .range-buttons .option-tooltip:hover .option-tooltip-text{visibility:visible}.grapher-export .range-selection .range-buttons .option-tooltip .option-tooltip-text::after{content:" ";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:rgba(0,0,0,0) rgba(0,0,0,0) #000 rgba(0,0,0,0)}.grapher-export .range-selection .range-buttons .range-button{display:inline-block;cursor:pointer;padding:4px 8px;margin-left:4px;border-radius:2px;background:#fff;border:1px dotted silver}.grapher-export .range-selection .range-buttons .range-button.range-button-selected{color:#000;background:#fff;border:1px solid #000}.grapher-export .range-selection .range-buttons .range-button.range-button-disabled,.grapher-export .range-selection .range-buttons .range-button.range-button-selected.range-button-disabled{cursor:not-allowed;color:#888;background:#eee}.grapher-export .range-selection .range-buttons .range-button .icon-container{position:relative;width:0}.grapher-export .range-selection .range-buttons .range-button .icon-container.icon-container-narrow svg{left:-3px}.grapher-export .range-selection .range-buttons .range-button .icon-container.icon-container-square{width:5px}.grapher-export .range-selection .range-buttons .range-button .icon-container.icon-container-square svg{left:-5px}.grapher-export .range-selection .range-buttons .range-button .icon-container.icon-container-448{width:3px}.grapher-export .range-selection .range-buttons .range-button .icon-container.icon-container-448 svg{left:-5px}.grapher-export .range-selection .range-buttons .range-button .icon-container:before{content:"A";opacity:0}.grapher-export .range-selection .range-buttons .range-button .icon-container svg{height:15px;position:absolute;top:-1px;left:-4px}.grapher-export .range-selection .range-buttons .range-selection-history+.range-selection-history{margin-right:8px;margin-left:4px}.grapher-export .range-selection .range-buttons .percentile-button>div{display:inline-block}.grapher-export .range-selection .range-buttons .percentile-button input{background:rgba(0,0,0,0);border:1px solid #e0e0e3;margin:2px 8px 2px 0;color:#222;padding:1px 2px;width:20px;font-size:11px;-moz-appearance:textfield}.grapher-export .range-selection .range-buttons .percentile-button input:focus{outline:none;border-color:#505053}.grapher-export .range-selection .range-buttons .percentile-button input::-webkit-outer-spin-button,.grapher-export .range-selection .range-buttons .percentile-button input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.grapher-export .range-selection .range-buttons .percentile-button .icon-container.icon-container-narrow svg{height:12px;top:1px;left:-5px}.grapher-export .range-selection .range-buttons .showing-options-button{margin-right:8px}.grapher-export .grapher-main-row{display:flex}.grapher-export .grapher-main-row .central-container{width:100%}.grapher-export .range-graph-container{display:flex}.grapher-export .graph-body{width:100%;height:400px;position:relative}.grapher-export .graph-body canvas{width:100%;height:100%}.grapher-export .graph-body .grapher-tooltip,.grapher-export .graph-body .grapher-draggable-points,.grapher-export .graph-body .grapher-vertical-lines{position:absolute;top:0;left:0;right:0;z-index:20}.grapher-export .graph-body .grapher-tooltip>svg,.grapher-export .graph-body .grapher-draggable-points>svg,.grapher-export .graph-body .grapher-vertical-lines>svg{position:absolute;overflow:visible;left:0}.grapher-export .graph-body .grapher-vertical-lines{pointer-events:none;user-select:none}.grapher-export .graph-body .grapher-tooltip .tooltip-item path{fill:rgba(255,255,255,.6)}.grapher-export .graph-body .grapher-tooltip .tooltip-item text{fill:#0f0f0f;dominant-baseline:hanging;text-anchor:start}.grapher-export .graph-body .grapher-tooltip .tooltip-item.tooltip-item-fixed path{fill:#fff}.grapher-export .graph-body .grapher-tooltip .line{position:absolute;height:400px;border-left:1px solid #333}.grapher-export .graph-body .grapher-tooltip .custom-tooltip-container{position:absolute}.grapher-export .graph-body .grapher-context-menu{position:absolute;top:0;left:0}.grapher-export .graph-body .grapher-context-menu .menu-item .menu-text{user-select:all;position:absolute;top:0;background:rgba(255,255,255,.6);border:1px solid rgba(0,0,0,.3);color:#0f0f0f;padding:2px 4px;max-width:max-content;width:200px}.grapher-export .graph-body .grapher-draggable-points circle{cursor:pointer}.grapher-export .graph-body .grapher-vertical-lines line{stroke:#333}.grapher-export .graph-body .grapher-vertical-lines polygon{fill:#333}.grapher-export .graph-body .grapher-annotations{position:absolute;top:0;pointer-events:none;user-select:none;z-index:10}.grapher-export .graph-body .grapher-annotations .grapher-annotation{position:absolute}.grapher-export .graph-body .grapher-annotations .grapher-annotation .annotation-marker{display:inline-block;background:rgba(0,0,0,.3)}.grapher-export .graph-body .grapher-annotations .grapher-annotation.grapher-annotation-range .annotation-range-marker{display:inline-block;background-color:rgba(128,128,128,.2);background-image:repeating-linear-gradient(53deg, #626266, #626266 1px, rgba(255, 255, 255, 0.1) 1px, rgba(255, 255, 255, 0.1) 4px);background-size:40px 40px;border-right:1px solid #fff;border-left:1px solid #fff}.grapher-export .graph-body .grapher-annotations .grapher-annotation .annotation-text{position:absolute;background:rgba(255,255,255,.6);border:1px solid rgba(0,0,0,.3);color:#0f0f0f;padding:2px 4px;white-space:nowrap;font-size:10px;z-index:10}.grapher-export .graph-body .bounds-selection{position:absolute;background:rgba(0,0,0,.02)}.grapher-export .axis{overflow:visible;user-select:none}.grapher-export .axis.x-axis{width:1px;height:20px;display:block}.grapher-export .axis.x-axis .axis-item text{text-anchor:middle}.grapher-export .axis.x-axis .axis-item.axis-item-first text{text-anchor:start}.grapher-export .axis.x-axis .axis-item.axis-item-last text{text-anchor:end}.grapher-export .axis.y-axis{height:400px}.grapher-export .axis.y-axis .axis-item text{text-anchor:end;alignment-baseline:middle}.grapher-export .axis.y-axis .y-axis-label{text-anchor:middle;fill:#000}.grapher-export .axis.y-axis .y-axis-label.y-axis-big-label{font-size:18px}.grapher-export .axis.y-axis .series-color-box{cursor:pointer}.grapher-export .axis.y-axis.y-axis-right .axis-item text{text-anchor:start}.grapher-export .axis .axis-line{stroke:#000;stroke-width:1px}.grapher-export .axis .axis-line-shadow{stroke:#bfbfbf;stroke-width:1px}.grapher-export .axis .axis-item path{stroke:#bfbfbf;stroke-width:1px}.grapher-export .axis .axis-item text{fill:#000;font-size:8px}.grapher-export .axis .axis-item.axis-item-major .axis-tick{stroke-width:2px}.grapher-export .axis .axis-item.axis-item-big-labels text{font-size:16px}.grapher-export .range-selection-graph{width:100%;padding-bottom:14px}.grapher-export .range-selection-graph .graph-body-secondary{height:50px}.grapher-export .range-selection-graph .graph-body-secondary svg{position:absolute;left:0;height:50px;width:100%;overflow:visible}.grapher-export .range-selection-graph .graph-body-secondary svg .target-selection{fill:rgba(0,0,0,.02);cursor:ew-resize}.grapher-export .range-selection-graph .graph-body-secondary svg .selection-bar{fill:#b0b0b7;cursor:ew-resize}.grapher-export .range-selection-graph .graph-body-secondary svg .selection-bar-track{fill:#eee}.grapher-export .range-selection-graph .graph-body-secondary svg .selection-bar-rifles{fill:none;stroke-width:1;stroke:#333}.grapher-export .range-selection-graph .graph-body-secondary svg .selection-bar-handle{stroke:#333;stroke-width:1;fill:#b0b0b7;cursor:ew-resize}.grapher-export .range-selection-graph .graph-body-secondary svg .target-selection-outline{stroke:#333;fill:none}.grapher-export .range-selection-graph .graph-body-secondary svg .axis-item text{fill:#9f9f9f;text-anchor:start;font-size:8px;user-select:none;dominant-baseline:text-after-edge}.grapher-export .range-selection-graph .graph-body-secondary svg .axis-item path{stroke:#bfbfbf;stroke-width:1px}.grapher-export input,.grapher-export textarea{background:rgba(0,0,0,0);border:1px solid #e0e0e3;margin:2px 0;color:#222;padding:1px 2px;text-align:center}.grapher-export input:focus,.grapher-export textarea:focus{outline:none;border-color:#505053}.grapher-export.grapher-dragging-y .y-axis{border:2px dashed silver;margin:-2px;flex-shrink:0}.grapher-export.grapher-dragging-y .y-axis+.y-axis{border-left:none}.grapher-export.grapher-fullscreen{height:calc(100vh - 2*10px)}.grapher-export.grapher-fixed-height .grapher-primary-container-outer{height:100%}.grapher-export.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body{height:100%;display:flex;flex-direction:column}.grapher-export.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body .grapher-main-row{flex-grow:1}.grapher-export.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body .grapher-main-row .central-container{display:flex;flex-direction:column;height:100%}.grapher-export.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body .grapher-main-row .central-container>.graph-body{flex-grow:1;height:unset}.grapher-export.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body .grapher-main-row .axis.y-axis{height:calc(100% - 40px)}.grapher-export.new-grapher{height:auto;border:2px dashed silver;text-align:center;color:#222}',"",{version:3,sources:["webpack://./src/grapher.scss"],names:[],mappings:"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",sourcesContent:["@mixin grapher(\n $primary-graph-body-height: 400px,\n $secondary-graph-body-height: 50px,\n\n $background-color-1: #2a2a2b,\n $background-color-2: #3e3e40,\n\n $tooltip-line-color: #CCC,\n $tooltip-background-color: rgba(0, 0, 0, 0.6),\n $tooltip-text-color: #F0F0F0,\n $vertical-line-color: #CCC,\n\n $axis-line-color: silver,\n $axis-line-width: 2px,\n $axis-tick-color: #505053,\n $axis-text-color: #E0E0E3,\n\n $range-selection-text-color: silver,\n $range-selection-button-color: #505053,\n $range-selection-button-selected-color: black,\n $range-selection-text-selected-color: silver,\n $range-selection-text-color-faded: #AAA,\n $range-selection-button-color-faded: #7A7A7A,\n $range-selection-button-border: null,\n $range-selection-selected-button-border: null,\n\n $range-graph-selection-bar-size: 14px,\n $range-graph-selection-range-color: rgba(255, 255, 255, 0.1),\n $range-graph-selection-outline-color: #AAA,\n $range-graph-selection-bar-color: #808083,\n $range-graph-selection-bar-track-color: #303033,\n $range-graph-selection-bar-rifles-color: #FFF,\n $range-graph-handle-color: #AAA,\n $range-graph-handle-fill-color: #666,\n $range-graph-axis-text-color: #9f9f9f,\n\n $annotation-background-color: rgba(255, 255, 255, 0.3),\n\n $series-key-axis-container-color: #111,\n $series-key-input-border-color: #505053,\n $series-key-input-selected-border-color: #E0E0E3,\n $series-key-input-text-color: #E0E0E3,\n $series-key-background: transparent,\n $scale-label-color: silver,\n $series-key-shadow-color: silver,\n\n $title-color: white,\n\n $sidebar-background-color: #111,\n $sidebar-text-color: #EEE,\n\n $new-grapher-color: #DDD\n) {\n $x-axis-height: 20px;\n $padding: 10px;\n\n $axis-z-index: 0;\n $graph-body-z-index: 1;\n\n position: relative;\n background: linear-gradient(to bottom right, $background-color-1, $background-color-2);\n padding: $padding;\n\n font-family: sans-serif;\n font-size: 12px;\n line-height: normal;\n\n *, :after, :before {\n box-sizing: content-box;\n }\n\n .grapher-title {\n text-align: center;\n color: $title-color;\n font-size: 18px;\n margin-bottom: 8px;\n }\n\n .grapher-primary-container-outer {\n display: flex;\n\n .grapher-sidebar {\n background: linear-gradient($sidebar-background-color, transparent 75%, transparent 100%);\n color: $sidebar-text-color;\n padding: 50px 6px 5px 10px;\n margin-left: -$padding;\n margin-top: -$padding;\n margin-bottom: -$padding;\n overflow-y: auto;\n flex-shrink: 0;\n\n .series-toggle {\n white-space: nowrap;\n\n & + .series-toggle {\n margin-top: 3px;\n }\n\n label {\n display: inline-block;\n position: relative;\n user-select: none;\n }\n\n input[type='checkbox'] {\n opacity: 0;\n cursor: pointer;\n height: 0;\n width: 0;\n margin-right: 11px;\n }\n\n input:not(:checked) ~ .checkmark {\n background-color: transparent !important;\n }\n\n input:checked ~ .checkmark:after {\n display: block;\n }\n\n .checkmark {\n position: absolute;\n top: 1px;\n left: 0;\n height: 7px;\n width: 7px;\n background-color: #eee;\n border: 2px solid;\n border-radius: 1px;\n }\n\n .checkmark:after {\n content: \"\";\n position: absolute;\n display: none;\n\n left: 0.5px;\n top: -1.5px;\n width: 3px;\n height: 6px;\n border: solid white;\n border-width: 0 2px 2px 0;\n -webkit-transform: rotate(45deg);\n -ms-transform: rotate(45deg);\n transform: rotate(45deg);\n }\n }\n }\n\n .grapher-primary-container-body {\n width: 100%;\n padding-left: 2px;\n }\n }\n\n .series-key {\n text-align: center;\n margin-bottom: -14px;\n position: relative;\n\n .scale-label {\n display: inline-block;\n background: $series-key-axis-container-color;\n color: $scale-label-color;\n transform: rotate(-90deg);\n width: 24px;\n margin-left: -5px;\n vertical-align: top;\n margin-top: 4px;\n padding-bottom: 2px;\n cursor: pointer;\n user-select: none;\n }\n\n .series-key-axis-container {\n display: inline-block;\n border: 1px solid $series-key-axis-container-color;\n\n min-width: 18px;\n min-height: 24px;\n vertical-align: top;\n\n white-space: nowrap;\n\n & + .series-key-axis-container {\n margin-left: 4px;\n }\n\n &.series-key-axis-container-showing-label {\n .scale-label {\n width: 46px;\n margin-top: 15px;\n margin-left: -15px;\n margin-right: -12px;\n }\n\n .series-key-axis-label-container {\n display: block;\n }\n\n .label-input-toggler {\n path {\n fill: $series-key-input-selected-border-color;\n }\n }\n }\n\n .series-key-axis-container-body {\n display: inline-block;\n\n & > div {\n white-space: initial;\n }\n }\n\n .series-key-axis-label-container {\n display: none;\n }\n\n .label-input-toggler {\n width: 16px;\n cursor: pointer;\n display: inline-block;\n vertical-align: top;\n margin: 4px 2px;\n\n path {\n fill: $series-key-axis-container-color;\n }\n\n &:hover {\n path {\n fill: $series-key-input-selected-border-color;\n }\n }\n }\n }\n\n .series-key-item {\n border: 1px solid currentColor;\n padding: 2px;\n margin: 2px;\n display: inline-block;\n cursor: pointer;\n user-select: none;\n background: $series-key-background;\n\n & + .series-key-item {\n margin-left: 4px;\n }\n\n &.series-key-item-highlighted {\n box-shadow: 0 0 4px $series-key-shadow-color;\n }\n }\n }\n\n .range-selection {\n color: $range-selection-text-color;\n user-select: none;\n\n &.range-not-dates {\n color: $range-selection-text-color-faded;\n }\n\n .range-buttons {\n text-align: right;\n\n .options-bar {\n display: inline-block;\n }\n\n .option-tooltip {\n position: relative;\n display: inline-block;\n border-bottom: 1px dotted black;\n\n .option-tooltip-text {\n visibility: hidden;\n color: $range-selection-text-selected-color;\n background: $range-selection-button-selected-color;\n text-align: center;\n padding: 5px 5px;\n border-radius: 6px;\n position: absolute;\n z-index: 1;\n border: 1px solid black;\n\n width: 120px;\n margin-left: -65px;\n top: calc(100% + 7px);\n left: 50%;\n }\n\n &:hover .option-tooltip-text {\n visibility: visible;\n }\n\n .option-tooltip-text::after {\n content: \" \";\n position: absolute;\n bottom: 100%;\n left: 50%;\n margin-left: -5px;\n border-width: 5px;\n border-style: solid;\n border-color: transparent transparent black transparent;\n }\n }\n\n .range-button {\n display: inline-block;\n cursor: pointer;\n padding: 4px 8px;\n @if ($range-selection-button-border == null) {\n margin-left: 6px;\n } @else {\n margin-left: 4px;\n }\n\n border-radius: 2px;\n background: $range-selection-button-color;\n border: $range-selection-button-border;\n\n &.range-button-selected {\n color: $range-selection-text-selected-color;\n background: $range-selection-button-selected-color;\n border: $range-selection-selected-button-border;\n }\n\n &.range-button-disabled, &.range-button-selected.range-button-disabled {\n cursor: not-allowed;\n color: $range-selection-text-color-faded;\n background: $range-selection-button-color-faded;\n }\n\n .icon-container {\n position: relative;\n width: 0;\n\n &.icon-container-narrow {\n svg {\n left: -3px;\n }\n }\n\n &.icon-container-square {\n width: 5px;\n\n svg {\n left: -5px;\n }\n }\n\n &.icon-container-448 {\n width: 3px;\n\n svg {\n left: -5px;\n }\n }\n\n &:before {\n content: 'A';\n opacity: 0;\n }\n\n svg {\n height: 15px;\n position: absolute;\n top: -1px;\n left: -4px;\n }\n }\n }\n\n .range-selection-history + .range-selection-history {\n margin-right: 8px;\n margin-left: 4px;\n }\n\n .percentile-button {\n & > div {\n display: inline-block;\n }\n\n input {\n background: transparent;\n border: 1px solid $series-key-input-border-color;\n margin: 2px 8px 2px 0;\n color: $series-key-input-text-color;\n padding: 1px 2px;\n width: 20px;\n font-size: 11px;\n -moz-appearance: textfield;\n\n &:focus {\n outline: none;\n border-color: $series-key-input-selected-border-color;\n }\n\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n }\n\n .icon-container.icon-container-narrow {\n svg {\n height: 12px;\n top: 1px;\n left: -5px;\n }\n }\n }\n\n .showing-options-button {\n margin-right: 8px;\n }\n }\n }\n\n .grapher-main-row {\n display: flex;\n\n .central-container {\n width: 100%;\n }\n }\n\n .range-graph-container {\n display: flex;\n }\n\n .graph-body {\n width: 100%;\n height: $primary-graph-body-height;\n position: relative;\n\n canvas {\n width: 100%;\n height: 100%;\n }\n\n .grapher-tooltip, .grapher-draggable-points, .grapher-vertical-lines {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n z-index: 20;\n\n > svg {\n position: absolute;\n overflow: visible;\n left: 0;\n }\n }\n\n .grapher-vertical-lines {\n pointer-events: none;\n user-select: none;\n }\n\n .grapher-tooltip {\n .tooltip-item {\n path {\n fill: $tooltip-background-color;\n }\n\n text {\n fill: $tooltip-text-color;\n dominant-baseline: hanging;\n text-anchor: start;\n }\n\n &.tooltip-item-fixed {\n path {\n fill: rgba($tooltip-background-color, 1);\n }\n }\n }\n\n .line {\n position: absolute;\n height: 400px;\n border-left: 1px solid $tooltip-line-color;\n }\n\n .custom-tooltip-container {\n position: absolute;\n }\n }\n\n .grapher-context-menu {\n position: absolute;\n top: 0;\n left: 0;\n .menu-item {\n\n .menu-text {\n user-select: all;\n position: absolute;\n top: 0;\n background: $tooltip-background-color;\n border: 1px solid $annotation-background-color;\n color: $tooltip-text-color;\n padding: 2px 4px;\n max-width: max-content;\n width: 200px;\n }\n }\n }\n\n .grapher-draggable-points {\n circle {\n cursor: pointer;\n }\n }\n\n .grapher-vertical-lines {\n line {\n stroke: $vertical-line-color;\n }\n\n polygon {\n fill: $vertical-line-color;\n }\n }\n\n .grapher-annotations {\n position: absolute;\n top: 0;\n pointer-events: none;\n user-select: none;\n z-index: 10;\n\n .grapher-annotation {\n position: absolute;\n\n .annotation-marker {\n display: inline-block;\n background: $annotation-background-color;\n }\n\n &.grapher-annotation-range {\n .annotation-range-marker {\n display: inline-block;\n background-color: rgba(128, 128, 128, 0.2);\n background-image: repeating-linear-gradient(53deg, #626266, #626266 1px, rgba(255, 255, 255, 0.1) 1px, rgba(255, 255, 255, 0.1) 4px);\n background-size: 40px 40px;\n border-right: 1px solid white;\n border-left: 1px solid white;\n }\n }\n\n .annotation-text {\n position: absolute;\n background: $tooltip-background-color;\n border: 1px solid $annotation-background-color;\n color: $tooltip-text-color;\n padding: 2px 4px;\n white-space: nowrap;\n font-size: 10px;\n z-index: 10;\n }\n }\n }\n\n .bounds-selection {\n position: absolute;\n background: $range-graph-selection-range-color;\n }\n }\n\n .axis {\n overflow: visible;\n user-select: none;\n\n &.x-axis {\n width: 1px;\n height: $x-axis-height;\n display: block;\n\n .axis-item {\n text {\n text-anchor: middle;\n }\n\n &.axis-item-first {\n text {\n text-anchor: start;\n }\n }\n\n &.axis-item-last {\n text {\n text-anchor: end;\n }\n }\n }\n }\n\n &.y-axis {\n height: $primary-graph-body-height;\n\n .axis-item text {\n text-anchor: end;\n alignment-baseline: middle;\n }\n\n .y-axis-label {\n text-anchor: middle;\n fill: $axis-text-color;\n\n &.y-axis-big-label {\n font-size: 18px;\n }\n }\n\n .series-color-box {\n cursor: pointer;\n }\n\n &.y-axis-right {\n .axis-item text {\n text-anchor: start;\n }\n }\n }\n\n .axis-line {\n stroke: $axis-line-color;\n stroke-width: $axis-line-width;\n }\n\n .axis-line-shadow {\n stroke: $axis-tick-color;\n stroke-width: 1px;\n }\n\n .axis-item {\n path {\n stroke: $axis-tick-color;\n stroke-width: 1px;\n }\n\n text {\n fill: $axis-text-color;\n font-size: 8px;\n }\n\n &.axis-item-major {\n .axis-tick {\n stroke-width: 2px;\n }\n }\n\n &.axis-item-big-labels {\n text {\n font-size: 16px;\n }\n }\n }\n }\n\n .range-selection-graph {\n width: 100%;\n padding-bottom: $range-graph-selection-bar-size;\n\n .graph-body-secondary {\n height: $secondary-graph-body-height;\n\n svg {\n position: absolute;\n left: 0;\n height: $secondary-graph-body-height;\n width: 100%;\n overflow: visible;\n\n .target-selection {\n fill: $range-graph-selection-range-color;\n cursor: ew-resize;\n }\n\n .selection-bar {\n fill: $range-graph-selection-bar-color;\n cursor: ew-resize;\n }\n\n .selection-bar-track {\n fill: $range-graph-selection-bar-track-color;\n }\n\n .selection-bar-rifles {\n fill: none;\n stroke-width: 1;\n stroke: $range-graph-selection-bar-rifles-color;\n }\n\n .selection-bar-handle {\n stroke: $range-graph-handle-color;\n stroke-width: 1;\n fill: $range-graph-handle-fill-color;\n cursor: ew-resize;\n }\n\n .target-selection-outline {\n stroke: $range-graph-selection-outline-color;\n fill: none;\n }\n\n .axis-item {\n text {\n fill: $range-graph-axis-text-color;\n text-anchor: start;\n font-size: 8px;\n user-select: none;\n dominant-baseline: text-after-edge;\n }\n\n path {\n stroke: $axis-tick-color;\n stroke-width: 1px;\n }\n }\n }\n }\n }\n\n input, textarea {\n background: transparent;\n border: 1px solid $series-key-input-border-color;\n margin: 2px 0;\n color: $series-key-input-text-color;\n padding: 1px 2px;\n text-align: center;\n\n &:focus {\n outline: none;\n border-color: $series-key-input-selected-border-color;\n }\n }\n\n &.grapher-dragging-y {\n .y-axis {\n border: 2px dashed silver;\n margin: -2px;\n flex-shrink: 0;\n\n & + .y-axis {\n border-left: none;\n }\n }\n }\n\n &.grapher-fullscreen {\n height: calc(100vh - 2*#{$padding});\n }\n\n &.grapher-fixed-height {\n .grapher-primary-container-outer {\n height: 100%;\n\n .grapher-primary-container-body {\n height: 100%;\n display: flex;\n flex-direction: column;\n\n .grapher-main-row {\n flex-grow: 1;\n\n .central-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n\n > .graph-body {\n flex-grow: 1;\n height: unset;\n }\n }\n\n .axis.y-axis {\n height: calc(100% - #{2*$x-axis-height});\n }\n }\n }\n }\n }\n\n &.new-grapher {\n height: auto;\n border: 2px dashed silver;\n text-align: center;\n color: $new-grapher-color;\n }\n}\n\n@mixin grapher-theme-night (\n $primary-graph-body-height: 400px,\n $secondary-graph-body-height: 50px,\n) {\n @include grapher(\n $primary-graph-body-height,\n $secondary-graph-body-height\n );\n}\n\n@mixin grapher-theme-day (\n $primary-graph-body-height: 400px,\n $secondary-graph-body-height: 50px,\n) {\n @include grapher(\n $primary-graph-body-height,\n $secondary-graph-body-height,\n\n $background-color-1: #FFF,\n $background-color-2: #FFF,\n\n $tooltip-line-color: invert(#CCC),\n $tooltip-background-color: invert(rgba(0, 0, 0, 0.6)),\n $tooltip-text-color: invert(#F0F0F0),\n $vertical-line-color: invert(#CCC),\n\n $axis-line-color: #656565,\n $axis-tick-color: #BFBFBF,\n $axis-text-color: invert(#E0E0E3),\n\n $range-selection-text-color: #444,\n $range-selection-button-color: white,\n $range-selection-button-selected-color: white,\n $range-selection-text-selected-color: black,\n $range-selection-text-color-faded: #888,\n $range-selection-button-color-faded: #EEE,\n $range-selection-button-border: 1px dotted silver,\n $range-selection-selected-button-border: 1px solid black,\n\n $range-graph-selection-range-color: rgba(0, 0, 0, 0.02),\n $range-graph-selection-outline-color: #333,\n $range-graph-selection-bar-color: #B0B0B7,\n $range-graph-selection-bar-track-color: #EEE,\n $range-graph-selection-bar-rifles-color: #333,\n $range-graph-handle-color: #333,\n $range-graph-handle-fill-color: #B0B0B7,\n\n $annotation-background-color: rgba(0, 0, 0, 0.3),\n\n $series-key-axis-container-color: #B0B0B7,\n $series-key-input-border-color: #E0E0E3,\n $series-key-input-selected-border-color: #505053,\n $series-key-input-text-color: #222,\n $series-key-background: null,\n $series-key-shadow-color: black,\n $scale-label-color: black,\n\n $title-color: black,\n\n $sidebar-background-color: #EEE,\n $sidebar-text-color: #111,\n\n $new-grapher-color: #222\n );\n}\n\n@mixin grapher-theme-export (\n $primary-graph-body-height: 400px,\n $secondary-graph-body-height: 50px,\n) {\n @include grapher(\n $primary-graph-body-height,\n $secondary-graph-body-height,\n\n $background-color-1: #FFF,\n $background-color-2: #FFF,\n\n $tooltip-line-color: invert(#CCC),\n $tooltip-background-color: invert(rgba(0, 0, 0, 0.6)),\n $tooltip-text-color: invert(#F0F0F0),\n $vertical-line-color: invert(#CCC),\n\n $axis-line-color: black,\n $axis-line-width: 1px,\n $axis-tick-color: #BFBFBF,\n $axis-text-color: black,\n\n $range-selection-text-color: #444,\n $range-selection-button-color: white,\n $range-selection-button-selected-color: white,\n $range-selection-text-selected-color: black,\n $range-selection-text-color-faded: #888,\n $range-selection-button-color-faded: #EEE,\n $range-selection-button-border: 1px dotted silver,\n $range-selection-selected-button-border: 1px solid black,\n\n $range-graph-selection-range-color: rgba(0, 0, 0, 0.02),\n $range-graph-selection-outline-color: #333,\n $range-graph-selection-bar-color: #B0B0B7,\n $range-graph-selection-bar-track-color: #EEE,\n $range-graph-selection-bar-rifles-color: #333,\n $range-graph-handle-color: #333,\n $range-graph-handle-fill-color: #B0B0B7,\n\n $annotation-background-color: rgba(0, 0, 0, 0.3),\n\n $series-key-axis-container-color: #B0B0B7,\n $series-key-input-border-color: #E0E0E3,\n $series-key-input-selected-border-color: #505053,\n $series-key-input-text-color: #222,\n $series-key-background: null,\n $series-key-shadow-color: black,\n $scale-label-color: black,\n\n $title-color: black,\n\n $sidebar-background-color: #EEE,\n $sidebar-text-color: #111,\n\n $new-grapher-color: #222\n );\n}\n\n.grapher-night {\n @include grapher-theme-night();\n}\n\n.grapher-day {\n @include grapher-theme-day();\n}\n\n.grapher-export {\n @include grapher-theme-export();\n}\n"],sourceRoot:""}]);const s=o},314:e=>{e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,i,a){"string"==typeof e&&(e=[[null,e,void 0]]);var o={};if(r)for(var s=0;s<this.length;s++){var l=this[s][0];null!=l&&(o[l]=!0)}for(var A=0;A<e.length;A++){var h=[].concat(e[A]);r&&o[h[0]]||(void 0!==a&&(void 0===h[5]||(h[1]="@layer".concat(h[5].length>0?" ".concat(h[5]):""," {").concat(h[1],"}")),h[5]=a),n&&(h[2]?(h[1]="@media ".concat(h[2]," {").concat(h[1],"}"),h[2]=n):h[2]=n),i&&(h[4]?(h[1]="@supports (".concat(h[4],") {").concat(h[1],"}"),h[4]=i):h[4]="".concat(i)),t.push(h))}},t}},354:e=>{e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),i="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),a="/*# ".concat(i," */");return[t].concat([a]).join("\n")}return[t].join("\n")}},694:(e,t,n)=>{var r=n(925);function i(){}function a(){}a.resetWarningCache=i,e.exports=function(){function e(e,t,n,i,a,o){if(o!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:i};return n.PropTypes=n,n}},556:(e,t,n)=>{e.exports=n(694)()},925:e=>{e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},72:e=>{var t=[];function n(e){for(var n=-1,r=0;r<t.length;r++)if(t[r].identifier===e){n=r;break}return n}function r(e,r){for(var a={},o=[],s=0;s<e.length;s++){var l=e[s],A=r.base?l[0]+r.base:l[0],h=a[A]||0,c="".concat(A," ").concat(h);a[A]=h+1;var d=n(c),g={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==d)t[d].references++,t[d].updater(g);else{var p=i(g,r);r.byIndex=s,t.splice(s,0,{identifier:c,updater:p,references:1})}o.push(c)}return o}function i(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else n.remove()}}e.exports=function(e,i){var a=r(e=e||[],i=i||{});return function(e){e=e||[];for(var o=0;o<a.length;o++){var s=n(a[o]);t[s].references--}for(var l=r(e,i),A=0;A<a.length;A++){var h=n(a[A]);0===t[h].references&&(t[h].updater(),t.splice(h,1))}a=l}}},659:e=>{var t={};e.exports=function(e,n){var r=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},540:e=>{e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},56:(e,t,n)=>{e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},825:e=>{e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var i=void 0!==n.layer;i&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,i&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var a=n.sourceMap;a&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),t.styleTagTransform(r,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},113:e=>{e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},400:e=>{e.exports="precision highp float;\n\nuniform vec4 color;\n\nvoid main() {\n gl_FragColor = vec4(color);\n}\n"},765:e=>{e.exports="precision highp float;\n\nattribute vec2 position;\n\nvoid main() {\n gl_Position = vec4((position - 0.5)*2.0, 0.0, 1.0);\n}\n"},120:e=>{e.exports="#ifdef GL_OES_standard_derivatives\n#extension GL_OES_standard_derivatives : enable\n#endif\n\nprecision mediump float;\n\nuniform vec4 color;\n\n// Adapted and modified from https://www.desultoryquest.com/blog/drawing-anti-aliased-circular-points-using-opengl-slash-webgl/\nvoid main() {\n float delta = 0.0;\n float alpha = 1.0;\n vec2 center = 2.0 * gl_PointCoord - 1.0;\n float r = dot(center, center);\n\n if (r > 1.0) {\n discard;\n }\n\n #ifdef GL_OES_standard_derivatives\n delta = fwidth(r);\n alpha = 1.0 - smoothstep(1.0 - delta, 1.0 + delta, r);\n #endif\n\n gl_FragColor = color * alpha;\n}\n"},789:e=>{e.exports="precision mediump float;\n\nattribute vec2 position;\n\nuniform float width;\nuniform float height;\nuniform float pointSize;\n\nvoid main() {\n gl_Position = vec4(2.0*position.x/width - 1.0, 1.0 - 2.0*position.y/height, 0.0, 1.0);\n gl_PointSize = pointSize;\n}"},390:e=>{e.exports="precision highp float;\n\nuniform vec4 color;\nuniform float thickness;\nuniform float shadowBlur;\nuniform vec4 shadowColor;\n\nvarying vec2 position_vec;\nvarying vec2 prev_position_vec;\n\n/**\n * Calculate distance between point and line in screen space (ie, inputs in pixels, returns distance in pixels)\n */\nfloat distance_from_line() {\n float x0 = gl_FragCoord.x;\n float y0 = gl_FragCoord.y;\n\n // let line be defined by ax + by + c = 0;\n float a, b, c;\n\n if (position_vec.x == prev_position_vec.x) {\n a = 1.0;\n b = 0.0;\n c = -position_vec.x;\n } else {\n float slope = (position_vec.y - prev_position_vec.y)/(position_vec.x - prev_position_vec.x);\n float y_intercept = position_vec.y - slope*position_vec.x;\n\n // y = slope*x + y_intercept\n // (-slope)(x) + (1)(y) - y_intercept = 0;\n a = -slope;\n b = 1.0;\n c = -y_intercept;\n }\n\n return abs(a*x0 + b*y0 + c)/length(vec2(a, b));\n}\n\nvoid main() {\n vec4 transparent = vec4(0.0, 0.0, 0.0, 0.0);\n\n float dist = distance_from_line();\n\n if (dist + shadowBlur >= thickness) {\n float percent_shadowed = ((thickness - dist) / shadowBlur);\n gl_FragColor = mix(transparent, shadowColor, percent_shadowed*percent_shadowed);\n } else {\n gl_FragColor = vec4(color);\n gl_FragColor.rgb *= gl_FragColor.a;\n }\n}\n"},39:e=>{e.exports="precision highp float;\n\nattribute vec2 position;\nattribute vec2 prevPosition;\nattribute float vertex;\n\nuniform float width;\nuniform float height;\nuniform float thickness;\n\nvarying vec2 position_vec;\nvarying vec2 prev_position_vec;\n\nvoid main() {\n vec2 delta = position - prevPosition;\n vec2 alpha = prevPosition;\n vec2 beta = position;\n\n vec2 normalized_delta = normalize(delta);\n vec2 normal = vec2(-thickness/2.0 * normalized_delta.y, thickness/2.0 * normalized_delta.x);\n\n vec2 vertex_position =\n step(0.5, mod(vertex, 2.0))*alpha + // alpha if vertex is odd, 0 otherwise\n step(0.5, mod(vertex + 1.0, 2.0))*beta + // beta if vertex is even, 0 otherwise\n 2.0*(step(1.5, vertex)-0.5)*normal // -normal if vertex < 2, +normal otherwise\n ;\n\n position_vec = vec2(position.x, height - position.y);\n prev_position_vec = vec2(prevPosition.x, height - prevPosition.y);\n\n gl_Position = vec4(2.0*vertex_position.x/width - 1.0, 1.0 - 2.0*vertex_position.y/height, 0.0, 1.0);\n}\n"}},n={};function r(e){var i=n[e];if(void 0!==i)return i.exports;var a=n[e]={id:e,exports:{}};return t[e](a,a.exports,r),a.exports}r.m=t,r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((t,n)=>(r.f[n](e,t),t)),[])),r.u=e=>e+".bundle.esm.js",r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/assets/",(()=>{r.b=new URL("./",import.meta.url);var e={792:0},t=t=>{var n,i,{ids:a,modules:o,runtime:s}=t,l=0;for(n in o)r.o(o,n)&&(r.m[n]=o[n]);for(s&&s(r);l<a.length;l++)i=a[l],r.o(e,i)&&e[i]&&e[i][0](),e[a[l]]=0};r.f.j=(n,i)=>{var a=r.o(e,n)?e[n]:void 0;if(0!==a)if(a)i.push(a[1]);else{var o=import("./"+r.u(n)).then(t,(t=>{throw 0!==e[n]&&(e[n]=void 0),t}));o=Promise.race([o,new Promise((t=>a=e[n]=[t]))]),i.push(a[1]=o)}}})(),r.nc=void 0;var i={};(()=>{r.d(i,{KG:()=>Zt,tw:()=>rn,Ay:()=>Zt});const t=(n={default:()=>e.default,useCallback:()=>e.useCallback,useEffect:()=>e.useEffect,useMemo:()=>e.useMemo,useRef:()=>e.useRef,useState:()=>e.useState},a={},r.d(a,n),a);var n,a,o=r(556),s=r.n(o);const l=["values","tuples","objects"],A=[...l,"tuple_observable","object_observable","generator"],h=s().any,c=s().shape({data:h.isRequired,type:s().oneOf([...A,"infer"]),xKey:s().string,yKey:s().string,xUnixDates:s().bool,color:s().oneOfType([s().string,s().number]),name:s().string,xLabel:s().string,yLabel:s().string,ignoreDiscontinuities:s().bool,dashed:s().bool,dashPattern:s().arrayOf(s().number),width:s().number,rangeSelectorWidth:s().number,axis:s().oneOfType([s().string,s().object]),expandYWith:s().arrayOf(s().number),defaultAlwaysTooltipped:s().bool,square:s().bool,shiftXBy:s().number,graph:s().number,background:s().object,hideFromKey:s().bool,showIndividualPoints:s().bool,rendering:s().oneOf(["line","bar","area"]),negativeColor:s().string,gradient:s().array,zeroLineWidth:s().number,zeroLineColor:s().string,zeroLineY:s().oneOfType([s().number,s().string]),pointRadius:s().number,tooltipWidth:s().number,hasAreaBottom:s().bool,shadowColor:s().string,rangeKey:s().string}),d=s().arrayOf(c),g=s().shape({axisIndex:s().number.isRequired,series:s().array.isRequired,side:s().oneOf(["left","right"]).isRequired,scale:s().oneOf(["linear","log"]).isRequired,label:s().string}),p=s().arrayOf(g),u=s().shape({label:s().string.isRequired,calculator:s().func.isRequired,datesOnly:s().bool}),m=s().arrayOf(u),C={includeSeriesLabel:s().bool,includeXLabel:s().bool,includeYLabel:s().bool,includeXValue:s().bool,includeYValue:s().bool,floating:s().bool,alwaysFixedPosition:s().bool,floatPosition:s().oneOf(["top","bottom"]),floatDelta:s().number,savingDisabled:s().bool,customTooltip:s().func,combineTooltips:s().oneOfType([s().bool,s().number])},x=s().shape(C),f=s().shape({x:s().oneOfType([s().string,s().number,s().instanceOf(Date)]),startX:s().oneOfType([s().string,s().number,s().instanceOf(Date)]),endX:s().oneOfType([s().string,s().number,s().instanceOf(Date)]),series:s().arrayOf(s().string),content:s().string,lineOnly:s().bool}),b=s().arrayOf(f),y=s().shape({x:s().number.isRequired,y:s().number.isRequired,radius:s().number,fillColor:s().string,strokeColor:s().string,strokeWidth:s().number,onClick:s().func,onDoubleClick:s().func}),_=s().arrayOf(y),B=s().shape({x:s().number.isRequired,color:s().string,lineTop:s().number,width:s().number,markTop:s().bool,style:s().object,markerStyle:s().object,text:s().string,textTop:s().number,textStyle:s().object,minPixelX:s().number,maxPixelX:s().number,onRangeGraph:s().oneOfType([s().bool,s().object]),onRangeGraphOnly:s().bool}),E={Data:h,SingleSeries:c,Series:d,Axis:g,Axes:p,CustomBoundsSelector:u,CustomBoundsSelectors:m,TooltipOptions:x,TooltipOptionsRaw:C,Annotations:b,DraggablePoint:y,DraggablePoints:_,VerticalLine:B,VerticalLines:s().arrayOf(B)};async function w(e,t,{reset:n=!0}={}){n&&(e.width="",e.height="",e.style.width="0",e.style.height="",await new Promise((e=>requestAnimationFrame(e))));let r=e.parentNode.getBoundingClientRect();for(;0===r.width;)await new Promise((e=>requestAnimationFrame(e))),r=e.getBoundingClientRect();const i=2*(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1),a=r.width,o=r.height,s=a*i,l=o*i;return e.width=s,e.height=l,e.style.width=`${a}px`,e.style.height=`${o}px`,{pixelRatio:i,elementWidth:a,elementHeight:o,renderWidth:s,renderHeight:l,boundingRect:r}}const v=["#F1C232","#1259f8","#cb4b4b","#4da74d","#9440ed","#61e0ed","#ed6d2c","#ed13c6","#bbed59"];function k(e,t,n){return"string"==typeof e?e:"number"==typeof e?v[e%v.length]:void 0!==n?v[n%v.length]:v[t%v.length]}var S=r(390),D=r.n(S),X=r(39),Y=r.n(X),M=r(120),T=r.n(M),R=r(789),P=r.n(R);function F(e){if("black"===e)e="#000000";else if("white"===e)e="#FFFFFF";else if("transparent"===e)return[0,0,0,0];if(e.startsWith("rgb")){const t=e.split(",").map((e=>parseFloat(e.match(/\d+(\.\d+)?/)[0])));return[t[0]/255,t[1]/255,t[2]/255,t.length>=4?t[3]:1]}if("string"!=typeof e||!/^#[\dA-F]{6}$/i.test(e))throw new Error(`Color must be a hex string: ${e}`);return[parseInt(e.substr(1,2),16)/255,parseInt(e.substr(3,2),16)/255,parseInt(e.substr(5,2),16)/255,1]}function I(e,{splitAtY:t}={}){const n=[];let r=[],i=!0;const{nullMask:a,maxYValues:o,minYValues:s,yValues:l}=e;for(let e=0;e<l.length;e++){const A=2*e,h=l[e];if(1&a[e]){i||(n.push(r),r=[]),i=!0;continue}r.push([A,h]);const c=s[e],d=o[e];if(c!==d&&(2&a[e]||r.push([A,c]),4&a[e]||r.push([A,d]),r.push([A,h])),i=!1,"number"==typeof t&&e>0){const o=l[e-1];(!(1&a[e-1])&&o<t&&h>=t||o>t&&h<=t||o===t&&h!==t)&&(i||(n.push(r),r=[[A,h]]),i=!0)}}return i||n.push(r),n}let z;const $=r.e(744).then(r.bind(r,744)).then((e=>e.default().then((()=>{z=e}))));function O(){return z}function L(e,{dashed:t,dashPattern:n}){let r=0;for(let i of e)if(t)for(let e=0;e<i.length;e++)t&&e%(n[0]+n[1])>=n[0]||r++;else r+=i.length;const i=new Float32Array(8*r),a=new Float32Array(8*r),o=new Float32Array(4*r),s=new Uint32Array(6*r);if(r>0){const e=new Float32Array([0,1,2,3]);o.set(e);let t=e.length,n=e.length;for(;t<o.length;)t+n>o.length&&(n=o.length-t),o.copyWithin(t,0,n),t+=n,n<<=1}let l=0;for(let r of e)for(let e=0;e<r.length;e++){if(t&&e%(n[0]+n[1])>=n[0])continue;const[o,A]=r[e];let h,c;0===e?(h=o-1,c=A):[h,c]=r[e-1];for(let e=0;e<4;e++)i[8*l+2*e]=o,i[8*l+2*e+1]=A,a[8*l+2*e]=h,a[8*l+2*e+1]=c;s[6*l]=4*l,s[6*l+1]=4*l+1,s[6*l+2]=4*l+3,s[6*l+3]=4*l,s[6*l+4]=4*l+2,s[6*l+5]=4*l+3,l++}return{positions:i,prevPositions:a,vertices:o,indices:s}}function G(e,t,n){const r=e.createShader(e.VERTEX_SHADER);e.shaderSource(r,t),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS)||console.error(e.getShaderInfoLog(r));const i=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(i,n),e.compileShader(i),e.getShaderParameter(i,e.COMPILE_STATUS)||console.error(e.getShaderInfoLog(i));const a=e.createProgram();return e.attachShader(a,r),e.attachShader(a,i),e.linkProgram(a),e.validateProgram(a),e.getProgramParameter(a,e.LINK_STATUS)||console.error(e.getProgramInfoLog(a)),a}class W{constructor(e){this._gl=e,this._program=G(e,Y(),D()),this._circleProgram=G(e,P(),T()),this._positionBuffer=e.createBuffer(),this._prevPositionBuffer=e.createBuffer(),this._vertexBuffer=e.createBuffer(),this._indexBuffer=e.createBuffer(),this._individualPointBuffer=e.createBuffer(),e.getExtension("OES_element_index_uint")||console.error("Your browser does not support OES_element_index_uint")}dispose(){}clear(){const e=this._gl,t=e.drawingBufferWidth,n=e.drawingBufferHeight;e.clearColor(0,0,0,0),e.clear(e.DEPTH_BUFFER_BIT|e.COLOR_BUFFER_BIT),e.viewport(0,0,t,n)}draw(e,t){const n=this._gl,r=n.drawingBufferWidth,i=n.drawingBufferHeight;n.useProgram(this._program);const a=2*((t.width||1)+(t.highlighted?2:0)),o=void 0===t.shadowBlur?2:t.shadowBlur,s=t.shadowColor||"black",l=t.dashed||!1,A=t.dashPattern||[5,5],{positions:h,prevPositions:c,vertices:d,indices:g}=function(e,{dashed:t,dashPattern:n}){if(e.paths)return L(e.paths,{dashed:t,dashPattern:n});if(!O())return L(I(e),{dashed:t,dashPattern:n});const r=O().get_point_number(e.nullMask,e.yValues,e.minYValues,e.maxYValues,t,n[0],n[1]);let i=new Float32Array(8*r),a=new Float32Array(8*r),o=new Float32Array(4*r),s=new Uint32Array(6*r);return O().extract_vertices(2,e.nullMask,e.yValues,e.minYValues,e.maxYValues,i,a,o,s,t,n[0],n[1]),{positions:i,prevPositions:a,vertices:o,indices:s}}(e,{dashed:l,dashPattern:A}),p=n.getAttribLocation(this._program,"position"),u=n.getAttribLocation(this._program,"prevPosition"),m=n.getAttribLocation(this._program,"vertex");if(n.enableVertexAttribArray(p),n.bindBuffer(n.ARRAY_BUFFER,this._positionBuffer),n.bufferData(n.ARRAY_BUFFER,h,n.STATIC_DRAW),n.vertexAttribPointer(p,2,n.FLOAT,!1,0,0),n.enableVertexAttribArray(u),n.bindBuffer(n.ARRAY_BUFFER,this._prevPositionBuffer),n.bufferData(n.ARRAY_BUFFER,c,n.STATIC_DRAW),n.vertexAttribPointer(u,2,n.FLOAT,!1,0,0),n.enableVertexAttribArray(m),n.bindBuffer(n.ARRAY_BUFFER,this._vertexBuffer),n.bufferData(n.ARRAY_BUFFER,d,n.STATIC_DRAW),n.vertexAttribPointer(m,1,n.FLOAT,!1,0,0),n.uniform1f(n.getUniformLocation(this._program,"width"),r),n.uniform1f(n.getUniformLocation(this._program,"height"),i),n.uniform1f(n.getUniformLocation(this._program,"thickness"),Math.max(a,1)+o),n.uniform1f(n.getUniformLocation(this._program,"shadowBlur"),o),n.uniform4f(n.getUniformLocation(this._program,"color"),...F(t.color)),n.uniform4f(n.getUniformLocation(this._program,"shadowColor"),...F(s)),n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,this._indexBuffer),n.bufferData(n.ELEMENT_ARRAY_BUFFER,g,n.STATIC_DRAW),n.drawElements(n.TRIANGLES,g.length,n.UNSIGNED_INT,0),t.showIndividualPoints){n.useProgram(this._circleProgram),n.uniform1f(n.getUniformLocation(this._circleProgram,"width"),r),n.uniform1f(n.getUniformLocation(this._circleProgram,"height"),i),n.uniform1f(n.getUniformLocation(this._circleProgram,"pointSize"),2*(a+6)),n.uniform4f(n.getUniformLocation(this._circleProgram,"color"),...F(t.color));const e=t.getIndividualPoints();n.enableVertexAttribArray(0),n.bindBuffer(n.ARRAY_BUFFER,this._individualPointBuffer),n.bufferData(n.ARRAY_BUFFER,new Float32Array(e.flat()),n.STATIC_DRAW),n.vertexAttribPointer(0,2,n.FLOAT,!1,0,0),n.drawArrays(n.POINTS,0,e.length)}}}class N{constructor(){this._listeners={}}clearListeners(){this._listeners={}}on(e,t){this._listeners[e]=this._listeners[e]||new Set,this._listeners[e].add(t)}off(e,t){this._listeners[e]&&(this._listeners[e].delete(t),0===this._listeners[e].size&&delete this._listeners[e])}emit(e){if(!this._listeners[e])return;const t=[];for(let e=1;e<arguments.length;e++)t.push(arguments[e]);this._listeners[e].forEach((e=>{e.apply(this,t)}))}}var q=r(400),U=r.n(q),H=r(765),j=r.n(H);class K{constructor(e){this._gl=e,this._program=G(e,j(),U()),this._vertexBuffer=e.createBuffer(),this._indexBuffer=e.createBuffer(),e.getExtension("OES_element_index_uint")||console.error("Your browser does not support OES_element_index_uint")}draw({data:e}){const t=this._gl;t.useProgram(this._program);for(let{minXt:n,maxXt:r,color:i}of e){t.uniform4f(t.getUniformLocation(this._program,"color"),...F(i));const e=new Float32Array([n,1,r,1,r,-1,n,1,r,-1,n,-1]);t.bindBuffer(t.ARRAY_BUFFER,this._vertexBuffer),t.bufferData(t.ARRAY_BUFFER,new Float32Array(e),t.STATIC_DRAW);const a=t.getAttribLocation(this._program,"position");t.enableVertexAttribArray(a),t.vertexAttribPointer(a,2,t.FLOAT,!1,0,0),t.enable(t.BLEND),t.blendFunc(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA),t.drawArrays(t.TRIANGLES,0,6)}}}function V(e,{context:t,sizing:n,color:r,zeroColor:i,zeroWidth:a}){a&&(t.strokeStyle=i||r,t.lineWidth=a,t.beginPath(),t.moveTo(0,e),t.lineTo(n.renderWidth,e),t.stroke())}function J({closestSpacing:e,bounds:t,sizing:n,axisSeriesCount:r}){const i=e/(t.maxX-t.minX)*n.renderWidth,a=.8*i;return{barWidth:a/r,totalBarWidth:a,barSpacing:.2*i}}function Z(e,t={useSimpleData:!1}){if(e.type&&"infer"!==e.type)return e.type;const n=t.data||t.useSimpleData&&e.simpleData||e.data;if(!n)throw new Error("Data must be provided");if(Array.isArray(n))return 0===n.length||Array.isArray(n[0])?"tuples":"number"!=typeof n[0]&&n[0]?"objects":"values";if(n.observe)return e.xKey?"object_observable":"tuple_observable";if("function"==typeof n)return"generator";throw new Error("Could not infer type")}class Q extends N{constructor({stateController:e,canvasElement:t,webgl:n=!1,checkIntersection:r=!0}){super(),this._stateController=e,this._checkIntersection=r,this._canvas=t,this._webgl=n,n&&(this._context=this._canvas.getContext("webgl"),this._context?this._lineProgram=new W(this._context):(alert("WebGL failed! Attempting fallback to CPU rendering"),this._webgl=!1)),this._webgl||(this._context=this._canvas.getContext("2d"),this._context2d=this._context),this._initialized=this._initializeCanvas(),this._boundResize=this.resize.bind(this),this._cachedAxisCount=null,this._onAxisChange=e=>{const t=e.filter((({series:e})=>e.length>0)).length;this._cachedAxisCount!==t&&(this._cachedAxisCount=t,this.resize())},e.on("axes_changed",this._onAxisChange),e.on("dragging_y_changed",this._boundResize),e.on("showing_sidebar_changed",this._boundResize)}dispose(){this.clearListeners(),this._lineProgram&&this._lineProgram.dispose(),this._cachedAxisCount=null,this._stateController.off("axes_changed",this._onAxisChange),this._stateController.off("dragging_y_changed",this._boundResize),this._resizeObserver&&this._resizeObserver.disconnect(),this._intersectionObserver&&this._intersectionObserver.disconnect()}clear(){this._webgl?this._lineProgram.clear():this._context.clearRect(0,0,this._context.canvas.width,this._context.canvas.height)}render(e,t,{highlighted:n,showIndividualPoints:r,shadowColor:i,shadowBlur:a,width:o,defaultLineWidth:s,bounds:l,globalBounds:A,inRenderSpaceAreaBottom:h}){const c=t=>{l||(l=e.axis.currentBounds);const n=[];let r=e.inSelectedSpace.data;t&&(r=e.inDataSpace);for(let[e,t]of r)null!==t&&n.push([(e-l.minX)/(l.maxX-l.minX)*this._sizing.renderWidth,(1-(t-l.minY)/(l.maxY-l.minY))*this._sizing.renderHeight]);return n};let d;if("bar"===e.rendering||"area"===e.rendering){this._context2d=this._context2d||this._canvas.getContext("2d"),this._webgl&&this._context.flush(),l||(l=e.axis.currentBounds);const t="bottom"===e.zeroLineY?this._sizing.renderHeight:(1-((e.zeroLineY||0)-l.minY)/(l.maxY-l.minY))*this._sizing.renderHeight;d={context:this._context2d,color:k(e.color,e.index,e.multigrapherSeriesIndex),sizing:this._sizing,zero:t,hasNegatives:!!e.inDataSpace.find((e=>e[1]<0)),negativeColor:e.negativeColor,zeroWidth:e.zeroLineWidth,zeroColor:e.zeroLineColor},!d.hasNegatives&&e.expandYWith&&(d.hasNegatives=e.expandYWith.some((e=>e<0)))}if("bar"===e.rendering)return void function(e,{color:t,context:n,sizing:r,indexInAxis:i,axisSeriesCount:a,zero:o,hasNegatives:s,negativeColor:l,zeroColor:A,zeroWidth:h,closestSpacing:c,bounds:d}){n.strokeStyle=t,n.fillStyle=t;const{barWidth:g,totalBarWidth:p}=J({closestSpacing:c,bounds:d,sizing:r,axisSeriesCount:a}),u=s?o:r.renderHeight;for(let r=0;r<e.length;r++){const[a,A]=e[r];s&&(n.fillStyle=A<=o?t:l),n.fillRect(a-p/2+g*i,A,g,u-A)}h&&V(u,{context:n,sizing:r,color:t,zero:o,zeroColor:A,zeroWidth:h})}(c(!0),{...d,indexInAxis:e.axis.series.indexOf(e),axisSeriesCount:e.axis.series.length,closestSpacing:A.closestSpacing,bounds:l});if("area"===e.rendering)return void function(e,t,{color:n,context:r,sizing:i,zero:a,hasNegatives:o,gradient:s,zeroColor:l,zeroWidth:A,showIndividualPoints:h,negativeColor:c,pointRadius:d,width:g,highlighted:p,shadowColor:u="black",shadowBlur:m=5,inRenderSpaceAreaBottom:C}){if(r.fillStyle=n,r.shadowColor=u,r.shadowBlur=m,s&&s.length>2){const e=r.createLinearGradient(0,0,0,i.renderHeight);for(let t=0;t<s.length;t++){const n=s[t];Array.isArray(n)?e.addColorStop(n[0],n[1]):e.addColorStop(t/(s.length-1),n)}r.fillStyle=e,"gradient"===n&&(r.strokeStyle=e)}else r.fillStyle=n;if(!e.length)return;const x=o?a:i.renderHeight,f=I(t),b=C&&I(C),y=I(t,{splitAtY:a});for(let e=0;e<f.length;e++){const t=f[e],n=b&&b[e];r.beginPath();const[i,a]=t[0],[o,s]=t[t.length-1];b||r.moveTo(i,x);for(let e=0;e<t.length;e++){const[n,i]=t[e];r.lineTo(n,i)}if(n&&n.length){for(let e=n.length-1;e>=0;e--){const[t,i]=n[e];r.lineTo(t,i)}r.lineTo(...t[0])}else r.lineTo(o,x);r.fill()}p&&(g+=2),g*=2,r.strokeStyle=n,r.lineWidth=g;for(let e of y)if(e.length){if(o){let t=!0;t=e.length>=2?e[1][1]<=a:e[0][1]<=a,r.strokeStyle=t?n:c}r.beginPath();for(let t=0;t<e.length;t++){const[n,i]=e[t];0===t?r.moveTo(n,i):r.lineTo(n,i)}r.stroke()}if(A&&V(x,{context:r,sizing:i,color:n,zero:a,zeroColor:l,zeroWidth:A}),h){r.fillStyle=n;for(let[t,i]of e)c&&o&&(r.fillStyle=i===a&&l?l:i<a?n:c),r.beginPath(),r.arc(t,i,d||8,0,2*Math.PI,!1),r.fill()}}(c(!0),t,{...d,showIndividualPoints:"boolean"==typeof e.showIndividualPoints?e.showIndividualPoints:r,gradient:e.gradient,pointRadius:e.pointRadius,highlighted:n,width:o||e.width||s,shadowColor:i,shadowBlur:a,inRenderSpaceAreaBottom:h});const g={color:k(e.color,e.index,e.multigrapherSeriesIndex),context:this._context,width:o||e.width||s,shadowColor:i,shadowBlur:a,dashed:e.dashed,dashPattern:e.dashPattern,highlighted:n,showIndividualPoints:"boolean"==typeof e.showIndividualPoints?e.showIndividualPoints:r,getIndividualPoints:c,getRanges:e.rangeKey?()=>(l||(l=e.axis.currentBounds),e.rangeKey?"objects"!==Z(e,{useSimpleData:!0})?[]:(e.simpleData||e.data).map((t=>{const n=t[e.rangeKey];if(!n)return null;const r=n.min,i=n.max,a=t[e.xKey];return{x:a,range:n,pixelX:(a-l.minX)/(l.maxX-l.minX)*this._sizing.renderWidth,pixelMinY:"number"==typeof r?(1-(r-l.minY)/(l.maxY-l.minY))*this._sizing.renderHeight:null,pixelMaxY:"number"==typeof i?(1-(i-l.minY)/(l.maxY-l.minY))*this._sizing.renderHeight:null}})):[]):null};this._webgl?this._lineProgram.draw(t,g):function(e,{color:t,width:n=1,context:r,shadowColor:i="black",shadowBlur:a=5,dashed:o=!1,dashPattern:s=null,highlighted:l=!1,showIndividualPoints:A=!1,getIndividualPoints:h,getRanges:c}){l&&(n+=2),n*=2,r.strokeStyle=t,r.lineWidth=n,r.shadowColor=i,r.shadowBlur=a,o?r.setLineDash(s||[5,5]):r.setLineDash([]);const d=I(e);for(let e of d){r.beginPath();for(let t=0;t<e.length;t++){const[n,i]=e[t];0===t?r.moveTo(n,i):r.lineTo(n,i)}r.stroke()}if(c){const e=c();r.lineWidth=n,r.strokeStyle=t,r.setLineDash([]);const i=16;for(let t of e){if(!t)continue;const{pixelX:e,pixelMinY:n,pixelMaxY:a}=t;null!==n&&(r.beginPath(),r.moveTo(e-i/2,n),r.lineTo(e+i/2,n),r.stroke()),null!==a&&(r.beginPath(),r.moveTo(e-i/2,a),r.lineTo(e+i/2,a),r.stroke()),null!==n&&null!==a&&(r.beginPath(),r.moveTo(e,n),r.lineTo(e,a),r.stroke())}}if(A){r.fillStyle=t;const e=h();for(let[t,i]of e)r.beginPath(),r.arc(t,i,n+4,0,2*Math.PI,!1),r.fill()}}(t,g)}renderBackground(e){e&&(this._webgl?(this._backgroundProgram||(this._backgroundProgram=new K(this._context)),this._backgroundProgram.draw(e)):function({data:e},{context:t}){const n=t.canvas.width,r=t.canvas.height;for(let{minXt:i,maxXt:a,color:o}of e)t.fillStyle=o,t.fillRect(i*n,0,(a-i)*n,r)}(e,{context:this._context}))}async _initializeCanvas(){if(this._sizing=await w(this._canvas,this._context),this.emit("size_changed",this._sizing),this._stateController.markSizeChanged(),window.ResizeObserver){let e=!0,t=!1;this._resizeObserver=new window.ResizeObserver((()=>{e?e=!1:t||(t=!0,this.resize().then((()=>{t=!1})))})),this._resizeObserver.observe(this._canvas.parentNode)}this._checkIntersection&&window.IntersectionObserver&&(this._intersectionObserver=new window.IntersectionObserver((e=>{clearTimeout(this._intersectionTimeout),e[0].isIntersecting&&(this._intersectionTimeout=setTimeout((()=>{this.resize()}),50))}),{threshold:.1}),this._intersectionObserver.observe(this._canvas.parentNode))}async resize(){const e=w(this._canvas,this._context,{reset:!0});this._initialized=e,this._sizing=await this._initialized,this._initialized===e&&(this.emit("size_changed",this._sizing),this._stateController.markSizeChanged(this))}resizeDebounced(){this._resizeTimeout&&clearTimeout(this._resizeTimeout),this._resizeTimeout=setTimeout((()=>{this.resize(),this._resizeTimeout=null}),50)}recalculatePosition(){this._sizing&&(this._sizing.boundingRect=this._canvas.getBoundingClientRect())}get boundingRect(){return this._sizing?.boundingRect}get sizing(){return this._sizing}}function ee(e){return Math.max(2-Math.log10(Math.abs(e)),0)}function te(e,t=null){if(null===t&&(t=ee(e)),isNaN(t)||t>100)return e.toString();const n=e.toFixed(Math.ceil(t));let r=n;return n.includes(".")&&(r=r.replace(/\.?0+$/g,"")),""===r?"0":r}const ne={};function re(e,t){try{let n=ne[e];if(!n){let t=e;e&&"local"!==e||(t=Intl.DateTimeFormat().resolvedOptions().timeZone),n=new Intl.DateTimeFormat("en-US",{timeZone:t,timeZoneName:"longOffset"}),ne[e]=n}const r=n.formatToParts(t).find((e=>"timeZoneName"===e.type));if(!r)return null;if("GMT"===r.value)return 0;if(!/^GMT[+-]\d{2}:\d{2}$/.test(r.value))return null;const[i,a]=r.value.slice(3).split(":");return 60*parseInt(i)*60*1e3+60*parseInt(a)*1e3}catch(n){return console.error(new Error(`Could not parse timezone offset for ${t} in ${e}`)),console.error(n),null}}function ie(e,t){if(!t){const t=new Date(e);return t.setHours(0,0,0,0),t}const n=re(t,e);let r=new Date(e);return r.setUTCHours(0,0,0,0),r.valueOf()-e.valueOf()>n&&(r=new Date(r.valueOf()-864e5)),new Date(r.valueOf()-n)}function ae(e,{dates:t=!1,precision:n=null,justTime:r=!1,justDate:i=!1,justMonthAndDay:a=!1,clockStyle:o="24h",unitOverride:s,timeZone:l,integersOnly:A=!1,inverseEnumMap:h}={}){return!t||e instanceof Date||(e=new Date(e),!isNaN(e))?e instanceof Date?function(e,{precision:t,justTime:n,justDate:r,justMonthAndDay:i,unitOverride:a,clockStyle:o="24h",timeZone:s}){const l=s&&"utc"===s.toLowerCase();if(s&&!l&&"local"!==s&&window.Intl&&window.Intl.DateTimeFormat){const t=re(s,e),n=re("local",e);"number"==typeof t&&"number"==typeof n&&(e=new Date(e.valueOf()+t-n))}const A=l?e.getUTCFullYear():e.getFullYear(),h=(l?e.getUTCMonth():e.getMonth())+1,c=l?e.getUTCDate():e.getDate();if("year"===a)return A.toString();if(r)return l?`${h}/${c}/${A}`:e.toLocaleDateString();if(i)return`${["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][h-1]} ${c}`;const d=l?e.getUTCHours():e.getHours(),g=l?e.getUTCMinutes():e.getMinutes(),p=l?e.getUTCSeconds():e.getSeconds(),u=l?e.getUTCMilliseconds():e.getMilliseconds();let m;return m="12h"===o?`${((d+11)%12+1).toString()}:${g.toString().padStart(2,"0")}`:`${d.toString().padStart(2,"0")}:${g.toString().padStart(2,"0")}`,"s"!==t&&"ms"!==t||(m+=`:${p.toString().padStart(2,"0")}`),"ms"===t&&(m+=`.${u.toString().padStart(3,"0")}`),"12h"===o&&(m+=d>=12?"pm":"am"),n?m:(l&&(m+=" UTC"),(l?`${h}/${c}/${A}`:e.toLocaleDateString())+" "+m)}(e,{precision:n,justTime:r,justDate:i,justMonthAndDay:a,unitOverride:s,clockStyle:o,timeZone:l}):isNaN(e)?"NaN":h?Math.abs(e-Math.round(e))>1e-10?"":h[Math.round(e)]:A&&Math.abs(e-Math.round(e))>1e-10?"":te(e,n):"Invalid Date"}function oe(e,{precision:t=null,log:n=!1}={}){return null===e?"null":isNaN(e)?"NaN":n?`10^${te(Math.log10(e),t)}`:te(e,t)}const se=32;function le(){return le=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},le.apply(this,arguments)}function Ae({yLabel:e,y:t,fullYPrecision:n}){return n&&!e?void 0===t?"undefined":null===t?"null":t.toString():"number"==typeof e?n?e.toString():oe(e):"object"==typeof e?oe(t):e||oe(t)}function he({axisLabel:e,x:n,y:r,xLabel:i,yLabel:a,textLeft:o,textTop:s,includeSeriesLabel:l,includeXValue:A,includeYValue:h,includeXLabel:c,includeYLabel:d,fullYPrecision:g,formatXOptions:p}){let u=0;return t.default.createElement("g",null,l&&t.default.createElement("text",{x:o,y:s+12*u++},e),A&&t.default.createElement("text",{x:o,y:s+12*u++},c&&"x: ",i||ae(n,p)),h&&t.default.createElement("text",{x:o,y:s+12*u++},d&&"y: ",Ae({yLabel:a,y:r,fullYPrecision:g})))}he.propTypes={axisLabel:s().string,x:s().oneOfType([s().number,s().instanceOf(Date)]),y:s().number,xLabel:s().string,yLabel:s().oneOfType([s().number,s().string]),textLeft:s().number.isRequired,textTop:s().number.isRequired,fullYPrecision:s().bool,formatXOptions:s().object,...E.TooltipOptionsRaw};class ce extends t.default.PureComponent{render(){let e=42;this.props.includeSeriesLabel||(e-=12),this.props.includeXValue||(e-=12),this.props.includeYValue||(e-=12);const n=e/2,r=3-n,i={clockStyle:this.props.clockStyle,timeZone:this.props.timeZone},a={includeSeriesLabel:this.props.includeSeriesLabel,includeXLabel:this.props.includeXLabel,includeYLabel:this.props.includeYLabel,includeXValue:this.props.includeXValue,includeYValue:this.props.includeYValue,formatXOptions:i},o=this.props.tooltips.map((t=>{const{x:o,y:s,pixelY:l,pixelX:A,series:h,index:c,xLabel:d,yLabel:g,fullYPrecision:p}=t;if("number"!=typeof A)return null;const u=(h.name||h.yKey||c).toString();let m=7.5*Math.max(u.length,(d||ae(o,i)).length+4,Ae({yLabel:g,y:s,fullYPrecision:p}).length+4);h.tooltipWidth&&(m=h.tooltipWidth);let C=this.props.elementWidth<m+14+8,x=1;A>=this.props.elementWidth-(m+14+4)&&(x=-1),A<m+14+4&&-1===x&&(C=!0),null===s&&(C=!0),this.props.alwaysFixedPosition&&(C=!0);let f=11;if(x<0?f=-m-f:f+=6,!isFinite(A))return null;const b=`translate(${A},${l})`,y={fullYPrecision:p||this.props.maxPrecision,x:o,y:s,axisLabel:u,xLabel:d,yLabel:g,...a};let _,B=0;return C&&(f=6,_=this.props.elementWidth/2-m/2,m>this.props.elementWidth&&!this.props.floating&&(_-=se*this.props.axisCount/2),B=18,this.props.floating&&(B="bottom"===this.props.floatPosition?this.props.elementHeight+n+4:-e,this.props.floatDelta&&(B+=this.props.floatDelta))),{...t,label:u,indexInAxis:h?.axis?.series?.indexOf(h),axisLabel:u,width:m,fixedPosition:C,multiplier:x,textLeft:f,transform:b,commonLabelProps:y,textTop:r,height:e,caretSize:7,halfHeight:n,caretPadding:4,yTranslation:B,baseLeft:_}})).filter(Boolean),s=this.props.customTooltip;let l;if(this.props.combineTooltips){let e=50;"number"==typeof this.props.combineTooltips&&(e=this.props.combineTooltips),l=[];for(let t of o){let n=!1;for(let r of l)if(Math.abs(r.pixelX-t.pixelX)<=e){r.tooltips.push(t),t.pixelX>r.pixelX&&(r.pixelX=t.pixelX,r.multiplier=t.multiplier),t.pixelY<r.pixelY&&(r.pixelY=t.pixelY),n=!0;break}n||l.push({pixelX:t.pixelX,pixelY:t.pixelY,multiplier:t.multiplier,tooltips:[t]})}for(let e of l){let t=0,n=0;e.tooltips.sort(((e,t)=>e.indexInAxis-t.indexInAxis));for(let r=0;r<e.tooltips.length;r++)e.tooltips[r].textTop=t,t+=e.tooltips[r].height,n=Math.max(n,e.tooltips[r].width);for(let n=0;n<e.tooltips.length;n++)e.tooltips[n].textTop-=t/2,e.tooltips[n].textTop+=3;e.height=t,e.halfHeight=t/2,e.caretSize=7,e.width=n}}return t.default.createElement("div",{className:"grapher-tooltip"},t.default.createElement("svg",null,o.map(((e,r)=>{const{color:i,fixedPosition:a,width:o,transform:s,baseLeft:A,commonLabelProps:h,yTranslation:c,multiplier:d,textLeft:g,textTop:p}=e;return this.props.customTooltip||l?t.default.createElement("g",{key:r,transform:s,className:"tooltip-item"},t.default.createElement("circle",{r:4,fill:i})):a?t.default.createElement("g",{key:r,className:"tooltip-item tooltip-item-fixed"},t.default.createElement("circle",{r:4,fill:i,transform:s}),t.default.createElement("g",{transform:`translate(${A}, ${c})`},t.default.createElement("path",{stroke:i,d:`M0,0 V-${n} h${o} V${n} h${-o} V0`}),t.default.createElement(he,le({textLeft:g,textTop:p},h)))):t.default.createElement("g",{key:r,transform:s,className:"tooltip-item"},t.default.createElement("circle",{r:4,fill:i}),t.default.createElement("path",{stroke:i,d:`M${4*d},0 L${7*d*2},-7 V-${n} h${d*o} V${n} h${d*-o} V7 L${4*d},0`}),t.default.createElement(he,le({textLeft:g,textTop:p},h)))})),!this.props.customTooltip&&l&&l.map((({tooltips:e,pixelX:n,pixelY:r,halfHeight:i,multiplier:a,color:o,width:s},l)=>t.default.createElement("g",{key:l,transform:`translate(${n},${r})`,className:"tooltip-item"},t.default.createElement("path",{stroke:o,d:`M${4*a},0 L${7*a*2},-7 V-${i} h${a*s} V${i} h${a*-s} V7 L${4*a},0`}),e.map(((e,n)=>t.default.createElement(he,le({key:n,textTop:e.textTop,textLeft:e.textLeft},e.commonLabelProps)))))))),this.props.customTooltip&&(l||o).map(((e,n)=>t.default.createElement("div",{key:n,className:"custom-tooltip-container",style:{top:e.pixelY,left:e.pixelX}},t.default.createElement(s,e)))))}}ce.defaultProps={includeSeriesLabel:!0,includeXLabel:!0,includeYLabel:!0,includeXValue:!0,includeYValue:!0},ce.propTypes={mouseX:s().number.isRequired,mouseY:s().number.isRequired,elementHeight:s().number.isRequired,elementWidth:s().number.isRequired,tooltips:s().arrayOf(s().shape({x:s().oneOfType([s().number,s().instanceOf(Date)]),y:s().number,pixelY:s().number,color:s().string,xLabel:s().string,yLabel:s().any,fullYPrecision:s().bool})),axisCount:s().number.isRequired,maxPrecision:s().bool.isRequired,clockStyle:s().oneOf(["12h","24h"]),timeZone:s().string,...E.TooltipOptionsRaw};class de extends t.default.PureComponent{constructor(e){super(e),this.setTextRef=this.setTextRef.bind(this)}setTextRef(e){if(this.textRef=e,this.props.contextMenu.showing&&this.textRef){const e=document.createRange(),t=window.getSelection();t.removeAllRanges(),e.selectNodeContents(this.textRef),t.addRange(e),this.textRef.focus()}}formatDateTime(e){const[t,n]=e.split(", "),[r,i,a]=t.split("/"),o=`${r.padStart(2,"0")}/${i.padStart(2,"0")}/${a}`,[s,l]=n.split(" "),[A,h]=s.split(":");return`${o} ${A.padStart(2,"0")}:${h} ${l}`}render(){const{x:e,y:n,showing:r,value:i}=this.props.contextMenu,a={left:e,top:n,width:"150px"};if(!r||!i||"Invalid Date"===i.toLocaleString()||isNaN(e)||isNaN(n))return null;const o=i instanceof Date?this.formatDateTime(i.toLocaleString()):i;return t.default.createElement("div",{className:"grapher-context-menu",style:a},t.default.createElement("div",{className:"menu-item"},t.default.createElement("div",{className:"menu-text",autoFocus:!0,ref:this.setTextRef},o)))}}function ge(e,t={}){const n=Z(e,{useSimpleData:!0,data:t.data});if(!l.includes(n))throw new Error(`Cannot normalize ${n} (expected a simple type)`);const r={tuples:ue,values:pe,objects:Ce}[n](t.data||e.simpleData||e.data,e,t);if(e.square){const e=[];let n=t.prevY;for(let t of r)void 0!==n&&e.push([t[0],n]),e.push(t),n=t[1];return e}if(e.shiftXBy)for(let n of r)if("string"==typeof n[0]){const r=n[0];n[0]=new Date(new Date(n[0]).valueOf()+e.shiftXBy),isNaN(n[0])&&(n[0]=t.stateController.enumToNumber(r,e))}else n[0]instanceof Date?n[0]=new Date(n[0].valueOf()+e.shiftXBy):"number"==typeof n[0]&&(n[0]+=e.shiftXBy);if(e.xUnixDates)for(let e of r)"number"==typeof e[0]&&(e[0]=new Date(1e3*e[0]));return r}function pe(e,t,n){const r=[];for(let i=0;i<e.length;i++){let a=e[i];"string"==typeof a&&(a=n.stateController.enumToNumber(a,t)),"boolean"==typeof a&&(a=+a),r.push([i+(n.valueXStart||0),a])}return r}function ue(e,t,n){return[...e.map((([e,r])=>{if(void 0===r&&(r=null),"string"==typeof e){const r=e;e=new Date(e),isNaN(e)&&(e=n.stateController.enumToNumber(r,t,!0))}return"string"==typeof r&&(r=n.stateController.enumToNumber(r,t)),"boolean"==typeof r&&(r=+r),[e,r]}))]}function me(e,t,n){const r=e.getUint32(t+2+Uint32Array.BYTES_PER_ELEMENT*n,!0);if(0===r)return null;const i=e.getUint8(r);if(0===i)return e.getFloat64(t+r+1,!0);if(1===i||6===i)return null;if(3===i)return new Date(e.getFloat64(t+r+1,!0));throw new Error(`Binary format type ${i} not supported`)}function Ce(e,t,n){if(!t.xKey||"string"!=typeof t.xKey)throw new Error("xKey must be provided in the series");if(!t.yKey||"string"!=typeof t.yKey)throw new Error("yKey must be provided in the series");const r=[];for(let i of e)if(i.buffer instanceof ArrayBuffer){const e=new DataView(i.buffer),n=i.channels[t.xKey],a=i.channels[t.yKey];for(let t of i.offsets)r.push([me(e,t,n),me(e,t,a)])}else if(Array.isArray(i[t.yKey]))if(i[t.yKey].length&&!Array.isArray(i[t.yKey][0])&&"object"==typeof i[t.yKey][0])for(let e of i[t.yKey]){let i=e[t.yKey];void 0===i&&(i=null),"string"==typeof i&&(i=n.stateController.enumToNumber(i,t)),"boolean"==typeof i&&(i=+i);let a=e[t.xKey];"string"==typeof a&&(a=new Date(a)),r.push([a,i])}else r.push(...i[t.yKey]);else{let e=i[t.yKey];void 0===e&&(e=null);let a=i[t.xKey];"string"==typeof a&&(a=new Date(a)),"string"==typeof e&&(e=n.stateController.enumToNumber(e,t)),"boolean"==typeof e&&(e=+e),r.push([a,e])}return r}function xe(e,{dates:t}){const n=null===e.minX&&null===e.maxX||null===e.minY||null===e.maxY;for(let t of Object.keys(e))"number"!=typeof e[t]&&(e[t]=0);return e.initial=n,e.dates=t,e}function fe(e,{percentile:t=100,percentileAsymmetry:n=0}={}){let r={minX:null,maxX:null,minY:null,maxY:null,closestSpacing:null};if(100!==t&&e.length)return function(e,t,{percentile:n=100,percentileAsymmetry:r=0}={}){let i=!1;t.minX=e[0][0],t.minX instanceof Date&&(t.minX=t.minX.valueOf(),i=!0),t.maxX=e[e.length-1][0],t.maxX instanceof Date&&(t.maxX=t.maxX.valueOf(),i=!0);const a=e.filter((([e,t])=>"number"==typeof t)).sort((([e,t],[n,r])=>t-r));if(!a.length)return xe(t,{dates:i});const o=Math.min(Math.abs(r),(100-n)/2)*(r<0?-1:1),s=(100-n)/2+o,l=(100-n)/2-o,A=Math.floor((a.length-1)*s/100),h=Math.floor((a.length-1)*(100-l)/100);return t.minY=a[A][1],t.maxY=a[h][1],xe(t,{dates:i})}(e,r,{percentile:t,percentileAsymmetry:n});let i=!1,a=null;for(let[t,n]of e){if(t instanceof Date&&(t=t.valueOf(),i=!0),("number"!=typeof r.minX||t<r.minX)&&(r.minX=t),("number"!=typeof r.maxX||t>r.maxX)&&(r.maxX=t),"number"==typeof a&&"number"==typeof t){const e=t-a;("number"!=typeof r.closestSpacing||e<r.closestSpacing)&&(r.closestSpacing=e)}a=t,"number"==typeof n&&(("number"!=typeof r.minY||n<r.minY)&&(r.minY=n),("number"!=typeof r.maxY||n>r.maxY)&&(r.maxY=n))}return xe(r,{dates:i})}function be(e){const t={minX:null,maxX:null,minY:null,maxY:null,closestSpacing:null,dates:!1,initial:!0};for(let{minX:n,maxX:r,minY:i,maxY:a,dates:o,initial:s,closestSpacing:l}of e)o&&(t.dates=!0),s||(t.initial=!1,(null===t.minX||n<t.minX)&&(t.minX=n),(null===t.maxX||r>t.maxX)&&(t.maxX=r),(null===t.closestSpacing||l<t.closestSpacing)&&(t.closestSpacing=l),(null===t.minY||i<t.minY)&&(t.minY=i),(null===t.maxY||a>t.maxY)&&(t.maxY=a));return null===t.minX&&(t.minX=0),null===t.maxX&&(t.maxX=0),null===t.closestSpacing&&(t.closestSpacing=1),null===t.minY&&(t.minY=0),null===t.maxY&&(t.maxY=0),t}function ye(e,{expandYWith:t=[],extendXForNBars:n=0}){const r=Object.assign({},e);for(let e of t)null!=e&&(("number"!=typeof r.minY||e<r.minY)&&(r.minY=e),("number"!=typeof r.maxY||e>r.maxY)&&(r.maxY=e));r.unscaledMinY=r.minY,r.unscaledMaxY=r.maxY;const i=r.maxY-r.minY,a=r.minY+i/2;if(r.minY=a-1.05*i/2,r.maxY=a+1.05*i/2,r.minY===r.maxY&&null!==r.minY&&(r.minY>0?(r.minY*=.95,r.maxY*=1.05):r.minY<0?(r.minY*=1.05,r.maxY*=.95):(r.minY-=1,r.maxY+=1)),n&&r.minX!==r.maxX&&null!==r.minX&&null!==r.maxX){const e=(r.maxX-r.minX)/n;r.minX-=e/2,r.maxX+=e/2}return r}function _e(e,t,n={},r=0,i=void 0){if(void 0===i&&(i=e.length-1),0===e.length)return n.returnIndex?-1:[null,null];const a=Math.floor((r+i)/2);if(t===e[a][0]||e[a][0]instanceof Date&&e[a][0].valueOf()===t)return n.returnIndex?a:e[a];if(r===i)return e[r][0]<t&&"before"===n.searchType||e[r][0]>t&&"after"===n.searchType?n.returnIndex?r:e[r]:n.returnIndex?-1:[null,null];if(i-1===r){let a;return a="before"===n.searchType?r:"after"===n.searchType||Math.abs(e[r][0]-t)>Math.abs(e[i][0]-t)?i:r,n.returnIndex?a:e[a]}return t>e[a][0]?_e(e,t,n,a,i):t<e[a][0]?_e(e,t,n,r,a):void 0}function Be({data:e,swap:t,minX:n,maxX:r,ignoreDiscontinuities:i,square:a}){if(!e.length||e.length&&n>e[e.length-1][0]||e.length&&r<e[0][0])return{data:[[n,null],[r,null]],firstAdded:!0,lastAdded:!0};let o,s=_e(e,n,{searchType:"before",returnIndex:!0})||0,l=_e(e,r,{searchType:"after",returnIndex:!0})||0;for(-1===l&&(l=0);s>=0&&e[s][0]>=n;)s--;for(;l<e.length&&e[l][0]<=r;)l++;let A=!1,h=!1,c=!1,d=s,g=l;if(i){for(;d>=0&&null===e[d][1];)d--;for(;g<e.length&&null===e[g][1];)g++}if(t){if(o=t.data,t.lastAdded&&o.pop(),n===t.minX&&(A=!0),s!==t.beforeIndex){A=!1,t.firstAdded&&o.shift();let r=t.beforeIndex;for(;r>=0&&o.length&&o[0][0]>=n;)i&&!e[r][1]&&0!==e[r][1]||o.unshift(e[r]),r--;for(;r<e.length&&o.length&&o[0][0]<n;)o.shift(),r++}if(i&&!t.ignoreDiscontinuities&&(o=o.filter((([e,t])=>null!=t))),s===t.beforeIndex&&t.firstAdded){h=!0;let t=s+1;if(i)for(;t<e.length&&null===e[t][1];)t++;-1===d&&o.length?o[0]=[n,null]:a&&o.length?o[0]=[n,e[d][1]]:o.length&&(o[0]=[n,Ee(e,d,t,n)]),e[s+1][0]===o[0][0]&&e[s+1][1]===o[0][1]&&(h=!1)}let c=t.afterIndex;if(t.ignoreDiscontinuities&&!i){let t=s+1,n=0;for(h&&n++;n<=o.length&&t<e.length&&t<l;)e[t][0]<=r&&null===e[t][1]&&(!o[n]||o[n][0]!==e[t][0]||o[n][1]!==e[t][1])&&(o.splice(n,0,e[t]),t>=c&&(c=t+1)),t++,n++}let g=c||0;for(;g<e.length&&e[g][0]<=r;)e[g][0]>=n&&(i&&!e[g][1]&&0!==e[g][1]||o.push(e[g])),g++;for(;o.length&&o[o.length-1][0]>r;)o.pop()}else o=e.slice(s+1,l),i&&(o=o.filter((([e,t])=>null!=t)));if(o.length||(o=a?d<0?[[n,null],[r,null]]:[[n,e[d][1]],[r,e[d][1]]]:[[n,Ee(e,d,g,n)],[r,Ee(e,d,g,r)]],h=!0,c=!0),!A){let t=s+1;if(i)for(;t<e.length&&null===e[t][1];)t++;o.length&&o[0][0]>n&&(h=!0,-1===d?o.unshift([n,null]):a?o.unshift([n,e[d][1]]):o.unshift([n,Ee(e,d,t,n)]))}if(o.length&&o[o.length-1][0]<r){c=!0;let t=l-1;if(i)for(;t>=0&&null===e[t][1];)t--;g===e.length?o.push([r,null]):a?o.push([r,o[o.length-1][1]]):o.push([r,Ee(e,t,g,r)])}if(1===o.length){let t,i;a?(t=d<0?[n,null]:[n,e[d][1]],i=[r,o[0][1]]):(t=[n,Ee(e,d,s+1,n)],i=[r,Ee(e,l-1,g,r)]),o.unshift(t),o.push(i),h=!0,c=!0}return{data:o,minX:n,maxX:r,beforeIndex:s,afterIndex:l,firstAdded:h,lastAdded:c,ignoreDiscontinuities:i}}function Ee(e,t,n,r){if(t<0||n<0)return null;if(t>=e.length||n>=e.length)return null;if(t===n)return e[t][1];const[i,a]=e[t],[o,s]=e[n];if(r===i&&null!==a)return a;if(r===o&&null!==s)return s;if(null===a||null===s)return null;const l=(r-i)/(o-i);return l<0||l>1?null:l*(s-a)+a}function we({minY:e,maxY:t,scale:n}){return"log"===n&&(t=Math.log10(t),e=e<=0?t>0?-t:2*t:Math.log10(e)),{minY:e,maxY:t}}function ve({data:e,swap:t,renderWidth:n,renderHeight:r,minX:i,maxX:a,minY:o,maxY:s,scale:l,dataChanged:A}){t&&t.yValues.length!==n&&(t=null);const h=t&&t.nullMask||new Uint8Array(n);h.fill(0);const c=new Float64Array(n),d=new Float64Array(n),g=new Float64Array(n),p=we({minY:o,maxY:s,scale:l}),u={data:e,renderWidth:n,renderHeight:r,minX:i,maxX:a,minY:o=p.minY,maxY:s=p.maxY,scale:l};let m,C;if(O()){let n=0;const r=t&&t.dataNullMask&&t.dataF64,o=!A&&r&&t.minX===i&&t.maxX<=a&&t.length<=e.length;if(!o||t.dataNullMask.length<e.length){const n=1.25;m=new Float64Array(Math.floor(2*e.length*n)),C=new Uint8Array(Math.floor(e.length*n)),o&&(C.set(t.dataNullMask),m.set(t.dataF64))}else m=t.dataF64,C=t.dataNullMask;o&&(n=Math.max(t.length-1,0));for(let t=n;t<e.length;t++)m[2*t]=e[t][0],m[2*t+1]=e[t][1],null===e[t][1]?C[t]=1:C[t]=0;O().selected_space_to_render_space(e.length,m,C,u,h,c,d,g)}else!function({data:e,renderWidth:t,renderHeight:n,minX:r,maxX:i,minY:a,maxY:o,scale:s},{nullMask:l,yValues:A,minYValues:h,maxYValues:c}){let d=0,g=d-1;for(let p=0;p<t;p++){const u=p/(t-1)*(i-r)+r;let m=null,C=null;for(d>0&&d<=e.length&&null===e[d-1][1]&&d--,d<e.length-2&&e[d+1][0]<u&&d++;d<e.length-2&&e[d+1][0]<u;d++){const t=e[d][1];null!==t&&((null===m||t<m)&&(m=t),(null===C||t>C)&&(C=t))}if(h[p]=null===m?0:n*(1-(("log"===s?Math.log10(m):m)-a)/(o-a)),c[p]=null===C?0:n*(1-(("log"===s?Math.log10(C):C)-a)/(o-a)),d>=e.length-1||null===e[d][1]||null===e[d+1][1]){const t=d>=e.length-1?null:e[d][1];l[p]=null===t|(null===m)<<1|(null===C)<<2,A[p]=null===t?0:n*(1-(("log"===s?Math.log10(t):t)-a)/(o-a)),d++;continue}const[x,f]=e[d],[b,y]=e[d+1];let _=(u-x)/(b-x)*(y-f)+f;g!==d&&(_=f),A[p]=null===_?0:n*(1-(("log"===s?Math.log10(_):_)-a)/(o-a)),l[p]=null===_|(null===m)<<1|(null===C)<<2,g=d}}(u,{nullMask:h,yValues:c,minYValues:d,maxYValues:g});return{nullMask:h,yValues:c,minYValues:d,maxYValues:g,dataF64:m,dataNullMask:C,minX:i,maxX:a,length:e.length}}function ke(e,{series:t,inDataSpace:n}){const r=[];let i=0;for(let a of e){const e=Se(a,t);if(t.yKey&&Array.isArray(e)){for(let e of a[t.yKey]){if(t.ignoreDiscontinuities&&"number"!=typeof e[t.yKey]&&!Array.isArray(e))continue;const a=n[i++][0];t.square&&r.length>0&&r.push([a,r[r.length-1][1]]),r.push([a,e])}continue}if(t.ignoreDiscontinuities&&null==e)continue;const o=n[i++][0];t.square&&r.length>0&&r.push([o,r[r.length-1][1]]),r.push([o,a])}return r.length!==n.length&&console.warn("Flattening didn't give the same length as it has in data space"),r}function Se(e,t){return t.yKey?e[t.yKey]:Array.isArray(e)?1===e.length?e[0]:e[1]:e}function De(e,t){return t.xKey?e[t.xKey]:Array.isArray(e)?e[0]:e}function Xe({mouseX:e,mouseY:t,sizing:n},r){const{x:i,y:a}=r,o=r.series.axis.scale,s=r.series.axis.currentBounds,{minY:l,maxY:A}=we({...s,scale:o}),h=(i-s.minX)/(s.maxX-s.minX)*n.elementWidth,c=(1-(("log"===o?Math.log10(a):a)-l)/(A-l))*n.elementHeight,d=Math.sqrt((h-e)**2+(c-t)**2),g=Math.abs(h-e);Object.assign(r,{pixelWidth:n.elementWidth,pixelX:h,pixelY:isNaN(c)?n.elementHeight/2:c,xDistance:g,distance:d})}de.propTypes={contextMenu:s().shape({x:s().number,y:s().number,showing:s().bool,value:s().oneOfType([s().instanceOf(Date),s().number,s().object])}).isRequired};const Ye={all:()=>{},lastMinute:e=>{if(e.dates)return{minX:Math.max(new Date(e.maxX).valueOf()-6e4,e.minX)}},last10Minutes:e=>{if(e.dates)return{minX:Math.max(new Date(e.maxX).valueOf()-6e5,e.minX)}},lastHour:e=>{if(e.dates)return{minX:Math.max(new Date(e.maxX).valueOf()-36e5,e.minX)}},lastDay:e=>{if(e.dates)return{minX:Math.max(new Date(e.maxX).valueOf()-864e5,e.minX)}}};function Me({data:e,swap:t,minX:n,maxX:r,renderWidth:i,dataChanged:a}){const o=2*i;let s;if(!a&&t&&t.minX===n&&t.maxX<=r&&t.length<=e.length?(s=t.data,e.length>t.length&&(e.length>0&&s.length>0&&(s[s.length-1]=e[t.length-1]),s=s.concat(e.slice(t.length)))):s=[...e],s.length/o<4)return{data:s,minX:n,maxX:r,length:e.length};const l=[],A=(r-n)/o;let h=null,c=null,d=0;e.length&&l.push(e[0]);for(let e of s){const[t,r]=e;if(null===r)continue;const i=Math.floor((t-n)/A);i!==d&&(h&&c&&(h===c?l[l.length-1]!==h&&l.push(h):h[0]<c[0]?l.push(c,h):l.push(h,c)),h=null,c=null,d=i),(!h||r<h[1])&&(h=e),(!c||r>c[1])&&(c=e)}return h&&c&&(h===c?l.push(h):h[0]<c[0]?l.push(c,h):l.push(h,c)),e.length>=2&&e[e.length-1]!==h&&e[e.length-1]!==c&&l.push(e[e.length-1]),{data:l,minX:n,maxX:r,length:e.length}}function Te(e,t){let n=e.name||e.yKey;return n||(n=t.toString()),n}function Re({data:e,background:t,minX:n,maxX:r}){if(!t)return null;const i=[];for(let[e,n]of Object.entries(t)){if("object"==typeof n){if("function"!=typeof n.evaluator)throw new Error("Invalid background declaration: "+e+" (evaluator must be a function)");i.push(Object.assign({key:e,comparator:"custom",comparedAgainst:null},n));continue}if("null"===e){i.push({evaluator:e=>null===e&&n,color:n,key:e,comparator:"=",comparedAgainst:null});continue}const[t,r]=e.split(" ");if(!t||!r||isNaN(parseFloat(r)))throw new Error("Invalid background declaration: "+e);const a=parseFloat(r);let o;if("="===t)o=e=>"number"==typeof e&&e===a&&n;else if("<"===t)o=e=>"number"==typeof e&&e<a&&n;else if(">"===t)o=e=>"number"==typeof e&&e>a&&n;else if("<="===t)o=e=>"number"==typeof e&&e<=a&&n;else{if(">="!==t)throw new Error("Invalid background declaration: "+e);o=e=>"number"==typeof e&&e>=a&&n}i.push({evaluator:o,color:n,key:e,comparator:t,comparedAgainst:a})}const a=[];let o=null;for(let t=0;t<e.length;t++){let[s,l]=e[t];s instanceof Date&&(s=s.valueOf());for(let A of o?[o.condition,...i]:i){const i=A.evaluator(l);if(o){if(o.color===i)break;let h=s;if(t>0){let[n,r]=e[t-1];n instanceof Date&&(n=n.valueOf()),h=null===o.condition.comparedAgainst?s:null===l?n:n+(A.comparedAgainst-r)/(l-r)*(s-n)}a.push({...o,maxX:h,maxXt:(h-n)/(r-n)}),o=null}if(i){let a=s;if(t>0){let[n,r]=e[t-1];n instanceof Date&&(n=n.valueOf()),a=null===A.comparedAgainst?n:null===r?s:n+(A.comparedAgainst-r)/(l-r)*(s-n)}o={minX:a,minXt:(a-n)/(r-n),color:i,condition:A};break}}}return o&&a.push({...o,maxX:e[e.length-1][0],maxXt:(e[e.length-1][0]-n)/(r-n)}),{data:a}}class Pe extends N{constructor({defaultBoundsCalculator:e,customBoundsSelectors:t,requireWASM:n,defaultShowIndividualPoints:r,defaultShowSidebar:i,defaultShowAnnotations:a,defaultShowOptions:o,syncPool:s,grapherID:l,sharedDataCache:A,sharedSubscriptions:h,fullscreen:c}){super(),this._requireWASM=n,n&&$.then((()=>{this._markDirty()})),this._series=[],this._seriesFromOriginalSeries=new Map,this._axes=[{series:[],scale:"linear",side:"left",axisIndex:0}],this._highlightedSeries=null,this._showIndividualPoints=r||!1,this._autoscaleY=!0,this._percentile=100,this._percentileAsymmetry=0,this._showingOptions=o,this._maxPrecision=!1,this._showingSidebar=i||!1,this._showingAnnotations=a||!1,this._grapherID=l,this._fullscreen=c||!1,this._alwaysTooltipped=new Set,this._tooltipState={mousePresent:!1,mouseX:0,mouseY:0,elementWidth:0,elementHeight:0,tooltips:[]},this._contextMenuPosition={x:0,y:0,showing:!1,value:null},this._savedTooltips=[],this._draggingY=!1,this._annotations=[],this._annotationsState={elementWidth:0,annotations:[]},this._enumMap={},this._hasXEnum=!1,this._timingBuffer=[],this._timingIndex=0,this._timingFrameCount=0,this._modifiedSeries=new Set,this._deferredEmissions={},this._deferredPriorityEmissions={},this.primaryRenderer=null,this.rangeGraphRenderer=null,this._boundsCalculator=function(e,t){if(Ye[e])return Ye[e];for(let{label:n,calculator:r}of t)if(e===n)return r;return Ye.all}(e,t),this._boundsHistory=[this._boundsCalculator],this._boundsIndex=0,this._dataCache=A||new Map,this._subscriptions=h||new Map,this._subscriptionsShared=!!h,this._observablesToSeries=new Map,this._generators=new Set,this._generatorsToSeries=new Map,this._generatorCallArgs=new Map,this._seriesChangedFromPromises=new Set,this._syncPool=s,this._syncPool&&this._syncPool.add(this),this._onDataChange()}dispose(){if(this.emit("dispose",this),this.clearListeners(),!this._subscriptionsShared){for(let e of this._subscriptions.values())e.unsubscribe();this._subscriptions.clear()}for(let e of this._series)this._removeSeries(e);this._syncPool&&this._syncPool.remove(this),this.disposed=!0}setSeries(e){const t=this._series.filter((e=>e.userCreated)),n=this._series.filter((e=>!e.userCreated));if(e.length===n.length){let t=!1;for(let n=0;n<e.length;n++)if(e[n]!==this._series[n].originalSeries){t=!0;break}if(!t)return}else this._mustResize=this._mustResize||this._fullscreen;const r=new Set(e);for(let e of n)r.has(e.originalSeries)||this._removeSeries(e);this._series.splice(0);for(let t=0;t<e.length;t++){const n=e[t];let r=this._seriesFromOriginalSeries.get(n);r||(r={...n,originalSeries:n},this._seriesFromOriginalSeries.set(n,r),r.defaultAlwaysTooltipped&&(this._alwaysTooltipped.add(r),this._tooltipsChanged=!0,this.deferredEmit("always_tooltipped_changed",this._alwaysTooltipped))),r.index=t,this._series.push(r),this._assignAxisTo(r),r.hidden&&this._hideSeries(r)}for(let n=0;n<t.length;n++){const r=t[n];r.index=n+e.length,this._series.push(r)}this.deferredEmit("series_changed",this._series),this._dataChanged=!0,this._markDirty()}_markDirty(){if(this._frameRequested)return;if(this._requireWASM&&!O)return;const e=performance.now();this._frameRequested=!0,requestAnimationFrame((()=>{if(this.disposed)return;const t=performance.now(),n=performance.now();this._dataChanged?(this._onDataChange(),this._mustRerender=!0,this._tooltipsChanged=!0,this._annotationsChanged=!0):this._modifiedSeries.size?(this._onDataAdd(this._modifiedSeries),this._mustRerender=!0,this._tooltipsChanged=!0,this._annotationsChanged=!0):(this._primarySizeChanged&&(this._calculatePrimarySizeDependents(),this._mustRerender=!0),this._rangeGraphSizeChanged&&(this._calculateRangeGraphSizeDependents(),this._mustRerender=!0));const r=performance.now(),i=performance.now();this._mustRerender&&this._render();const a=performance.now(),o=performance.now();this._mustCallGenerators&&this._callGenerators();const s=performance.now(),l=performance.now();this._tooltipsChanged&&this._recalculateTooltips();const A=performance.now(),h=performance.now();this._contextMenuChanged&&this._recalculateContextMenu();const c=performance.now(),d=performance.now();this._annotationsChanged&&this._recalculateAnnotations();const g=performance.now();this._mustResize&&(this.primaryRenderer.resizeDebounced(),this.rangeGraphRenderer&&this.rangeGraphRenderer.resizeDebounced()),this._frameRequested=!1,this._mustRerender=!1,this._dataChanged=!1,this._primarySizeChanged=!1,this._rangeGraphSizeChanged=!1,this._modifiedSeries.clear(),this._seriesChangedFromPromises.clear(),this._tooltipsChanged=!1,this._contextMenuChanged=!1,this._annotationsChanged=!1,this._mustCallGenerators=!1,this._mustResize=!1;const p=performance.now();for(let e of[...Object.values(this._deferredPriorityEmissions),...Object.values(this._deferredEmissions)])this.emit(...e);const u=performance.now();this._deferredEmissions={},this._deferredPriorityEmissions={};const m=performance.now(),C={frameExecution:m-t,frameRequestAndExecution:m-e,generators:s-o,dataProcessing:r-n,renderPipeline:a-i,tooltips:A-l,contextMenu:c-h,annotations:g-d,callbacks:u-p};this.lastLoopTime=C,this._timingFrameCount&&(this._timingBuffer.length<this._timingFrameCount?this._timingBuffer.push(C):this._timingBuffer[this._timingIndex%this._timingFrameCount]=C,this._timingIndex++),this.emit("render_time",m-t,C)}))}deferredEmit(...e){this._deferredEmissions[e[0]]=e}deferredPriorityEmit(...e){this._deferredPriorityEmissions[e[0]]=e}_seriesToSimpleData(e){const t=Z(e);if(l.includes(t))return e.data;let n=this._dataCache.get(e.data);if(n&&this._seriesChangedFromPromises.has(e.data))return n;if(n||(n=[],this._dataCache.set(e.data,n),e.simpleData=n),"object_observable"===t||"tuple_observable"===t){let t=this._observablesToSeries.get(e.data);if(t){const r=t.values().next().value;if(n=r.simpleData,!n)throw new Error(`Cannot find simpleData in ${r.name||r.yKey||r.data}`);this._dataCache.set(e.data,n),e.simpleData=n}else t=new Set,e.simpleData=n,this._observablesToSeries.set(e.data,t);t.add(e),this._listenToObservableData({observable:e.data,currentData:n})}return"generator"===t&&(this._generatorsToSeries.has(e.data)||this._generatorsToSeries.set(e.data,new Set),this._generatorsToSeries.get(e.data).add(e),this._generators.has(e.data)||(this._generators.add(e.data),this._callGenerator(e.data))),n}_listenToPromise(e,t){t.then((t=>{this._dataCache.set(e.data,t),e.simpleData=t,this._seriesChangedFromPromises.add(e.data),this._dataChanged=!0,this._markDirty()}))}_listenToObservableData({observable:e,currentData:t}){if(this._subscriptions.has(e))return;this._subscriptions.set(e,!0);const n=e.observe((n=>{if(Array.isArray(n))for(let e of n)t.push(e);else t.push(n);this.emit("observable_modified",e),this.markObservableModified(e)}));this._subscriptions.set(e,n)}markObservableModified(e){if(this._observablesToSeries.has(e)){for(let t of this._observablesToSeries.get(e))this._modifiedSeries.add(t);this._markDirty()}}_unsubscribeFromStaleSeries(){const e=new Set(this._series);for(let[t,n]of this._observablesToSeries){let r=!1;for(let t of n)if(e.has(t)){r=!0;break}r||(this._subscriptions.get(t).unsubscribe(),this._subscriptions.delete(t),this._observablesToSeries.delete(t))}for(let[t,n]of this._generatorsToSeries){let r=!1;for(let t of n)if(e.has(t)){r=!0;break}r||(this._generatorsToSeries.delete(t),this._generators.delete(t),this._generatorCallArgs.delete(t))}}async _callGenerator(e){const t={minX:this._selection.minX,maxX:this._selection.maxX,sizing:this.primaryRenderer.sizing};if(r=t,void 0===(n=this._generatorCallArgs.get(e))||void 0===r?n===r:n.minX===r.minX&&n.maxX===r.maxX&&n.sizing.elementWidth===r.sizing.elementWidth&&n.sizing.renderWidth===r.sizing.renderWidth)return;var n,r;this._generatorCallArgs.set(e,t);const i=await Promise.resolve(e(t));if(i&&this._generatorsToSeries.has(e))if(this._dataChanged=!0,this._markDirty(),"function"==typeof i.observe){const t=[];this._dataCache.set(e,t);for(let n of this._generatorsToSeries.get(e))n.simpleData=t;for(let t of this._generatorsToSeries.get(e))this._observablesToSeries.has(i)||this._observablesToSeries.set(i,new Set),this._observablesToSeries.get(i).add(t);this._listenToObservableData({observable:i,currentData:t})}else{this._dataCache.set(e,i);for(let t of this._generatorsToSeries.get(e))t.simpleData=i}}_callGenerators(){for(let e of this._generators)this._callGenerator(e)}_recalculateTooltips(){this.primaryRenderer&&this.primaryRenderer.sizing&&(this._tooltipState=function({mousePresent:e,mouseX:t,mouseY:n,sizing:r,series:i,alwaysTooltipped:a,savedTooltips:o,allTooltipped:s,closestSpacing:l}){o=o.filter((e=>e.series.axis));for(let e of o)Xe({mouseX:t,mouseY:n,sizing:r},e);if(!e)return{mouseX:t,mouseY:n,elementWidth:r.elementWidth,elementHeight:r.elementHeight,tooltips:[...o]};const A=[];let h=1/0;for(let e=0;e<i.length;e++){const o=i[e];if(o.hidden)continue;const c=o.axis,d=c.scale,g=c.currentBounds,{minY:p,maxY:u}=we({...g,scale:d}),m=t/r.elementWidth*(g.maxX-g.minX)+g.minX;let C=o.inDataSpace;o.ignoreDiscontinuities&&(C=C.filter((e=>"number"==typeof e[1])));const x=_e(C,m,{returnIndex:!0}),f=C[x];if(!f)continue;const[b,y]=f;if(null===b)continue;let _=(b-g.minX)/(g.maxX-g.minX)*r.elementWidth;const B=(1-(("log"===d?Math.log10(y):y)-p)/(u-p))*r.elementHeight;if(B>r.elementHeight||B<0)continue;const E=a.has(o)||s;let w=20,v=20,S=20;if("bar"===o.rendering){const e=o.axis.series.indexOf(o),t=o.axis.series.length,{totalBarWidth:n,barWidth:i}=J({closestSpacing:l,bounds:g,sizing:r,axisSeriesCount:t});_-=n/2/r.pixelRatio,_+=i*(e+.5)/r.pixelRatio,w=i/2/r.pixelRatio,v=100,S=w+v}const D=Math.abs(_-t),X=Math.abs(B-n),Y=Math.sqrt(D**2+(B-n)**2);if(D>w||!E&&X>v||!E&&Y>S)continue;let M,T;const R=o.simpleData||o.data,P=R.length&&!!o.hasEnum;if(o.xLabel||o.yLabel||P){let e;e=R.length===C.length?R[x]:ke(R,{series:o,inDataSpace:C})[x][1],o.xLabel?M=e[o.xLabel]:o.hasXEnum&&(M=De(e,o)),o.yLabel?T=e[o.yLabel]:P&&(T=Se(e,o))}Y<h&&(h=Y);let F=k(o.color,e,o.multigrapherSeriesIndex);y<0&&o.negativeColor?F=o.negativeColor:0===y&&o.zeroLineColor&&(F=o.zeroLineColor),A.push({pixelWidth:r.elementWidth,pixelX:_,pixelY:isNaN(B)?r.elementHeight/2:B,x:b,y,color:F,distance:Y,xDistance:D,index:e,series:o,xLabel:M,yLabel:T,fullYPrecision:o.fullYPrecision,ignoreYDistance:E})}const c=A.filter((({distance:e,ignoreYDistance:t})=>e===h||t)).sort(((e,t)=>t.distance-e.distance));return{mousePresent:e,mouseX:t,mouseY:n,elementWidth:r.elementWidth,elementHeight:r.elementHeight,unsavedTooltipsCount:c.length,tooltips:[...o,...c]}}({mousePresent:this._tooltipState.mousePresent,mouseX:this._tooltipState.mouseX,mouseY:this._tooltipState.mouseY,sizing:this.primaryRenderer.sizing,series:this._series,alwaysTooltipped:this._alwaysTooltipped,savedTooltips:this._savedTooltips,allTooltipped:this._tooltipAllNext,closestSpacing:this._globalBounds.closestSpacing}),this._tooltipAllNext=!1,this.deferredEmit("tooltip_state_changed",this._tooltipState,this._tooltipStateArg),this._tooltipStateArg=null)}_recalculateContextMenu(){if(!this.primaryRenderer||!this.primaryRenderer.sizing)return;const e=this.primaryRenderer.boundingRect,t=this.primaryRenderer.sizing;let n=null,r=null;for(let i of this._series){const a=i.axis.currentBounds;r=this._contextMenuPosition.x-e.left,this._contextMenuPosition.x>2*(e.right-t.elementWidth)&&(r-=130),n="timestamp"===i.xKey||"time"===i.xKey||"date"===i.xKey?new Date((this._contextMenuPosition.x-e.left)/t.elementWidth*(a.maxX-a.minX)+a.minX):(this._contextMenuPosition.x-e.left)/t.elementWidth*(a.maxX-a.minX)+a.minX}this._contextMenuPosition={x:r,y:this._contextMenuPosition.y-e.top,showing:this._contextMenuPosition.showing,value:n},this.deferredEmit("context_menu_position_changed",this._contextMenuPosition)}_recalculateAnnotations(){this.primaryRenderer&&this.primaryRenderer.sizing&&(this._annotationsState=function({annotations:e,series:t,sizing:n,selection:r}){const i=new Set(t.map(((e,t)=>({name:Te(e,t),hidden:e.hidden}))).filter((({hidden:e})=>!e)).map((({name:e})=>e))),{elementWidth:a}=n,{minX:o,maxX:s}=r,l=s-o;return 0===l?{annotations:[],elementWidth:a}:{annotations:e.filter((e=>{if(!e.series)return!0;for(let t of e.series)if(i.has(t))return!0;return!1})).map((e=>{const t=void 0!==e.startX&&void 0!==e.endX,n=void 0!==e.x;let r=e.startX,i=e.endX;if(!t&&n)r=e.x,i=e.x;else if(!t&&!n)return null;const s=e=>"string"==typeof e?new Date(e).valueOf():e instanceof Date?e.valueOf():e;let A=s(r),h=s(i);A>h&&([A,h]=[h,A]);let c=(A-o)/l*a,d=(h-o)/l*a;c=Math.max(0,Math.min(a,c)),d=Math.max(0,Math.min(a,d));let g=d-c;return g<1&&d>0&&c<a&&(!t&&n?(g=1,c-=.5):g=t?1:0),c=Math.max(0,Math.min(a-g,c)),g<=0?null:{...e,isRange:t,pixelStartX:c,pixelWidth:g}})).filter((e=>null!==e)),elementWidth:a}}({annotations:this._annotations,series:this._series,sizing:this.primaryRenderer.sizing,selection:this._selection}),this.deferredEmit("annotations_changed",this._annotationsState))}_onDataChange(){this._expandYWith=[];const e=[];for(let t of this._series){if(t.hidden)continue;const n=this._seriesToSimpleData(t);t.inDataSpace=ge({...t,data:n},{stateController:this}),t.simpleDataSliceStart=n.length,t.dataBounds=fe(t.inDataSpace),"bar"===t.rendering&&(t.dataBounds=ye(t.dataBounds,{extendXForNBars:t.inDataSpace.length,expandYWith:t.expandYWith})),e.push(t.dataBounds),t.expandYWith&&this._expandYWith.push(t.expandYWith)}this._unsubscribeFromStaleSeries(),this._dataBounds=be(e),this._recalculateSelection({disableSwap:!0});for(let e of this._series)e.hidden||(e.selectedBounds=fe(e.inSelectedSpace.data,{percentile:this._percentile,percentileAsymmetry:this._percentileAsymmetry}),e.hasAreaBottom&&(e.selectedBoundsAreaTop=e.selectedBounds,e.selectedBoundsAreaBottom=fe(e.inSelectedSpaceAreaBottom.data,{percentile:this._percentile,percentileAsymmetry:this._percentileAsymmetry}),e.selectedBounds=be([e.selectedBoundsAreaTop,e.selectedBoundsAreaBottom])));this._recalculateAxisBounds();for(let e of this._series)e.hidden||(this._calculatePrimarySizeDependents(e,{dataChanged:!0}),this._calculateRangeGraphSizeDependents(e,{dataChanged:!0}))}_onDataAdd(e){const t=new Map,n=new Set,r=new Set;for(let t of e)r.add(t);for(let r of e){if(n.add(r.axis),!r.inDataSpace)throw new Error("inDataSpace must be present for onDataAdd to be called");const e=this._seriesToSimpleData(r);let i;r.inDataSpace.length&&(i=r.inDataSpace[r.inDataSpace.length-1][1]);const a=ge(r,{data:e.slice(r.simpleDataSliceStart||0),valueXStart:r.inDataSpace.length,prevY:i,stateController:this});if(t.set(r,a),r.simpleDataSliceStart=e.length,a.length<32)r.inDataSpace.push(...a);else for(let e of a)r.inDataSpace.push(e);let o=fe(a);"bar"===r.rendering&&(o=ye(o,{extendXForNBars:r.inDataSpace.length,expandYWith:r.expandYWith})),r.dataBounds=be([r.dataBounds,o]),this._dataBounds=be([this._dataBounds,o]),r.newPointCount=a.length,r.newDataBounds=o}const i=this._selection;this._recalculateSelection();for(let n of e){if(!n.inSelectedSpace.data.length){n.selectedBounds=fe(n.inSelectedSpace.data);continue}const e=n.inSelectedSpace.data[0][0],r=n.inSelectedSpace.data[n.inSelectedSpace.data.length-1][0];if(!(i.minX>=e&&i.maxX<=r)||100!==this._percentile){n.selectedBounds=fe(n.inSelectedSpace.data,{percentile:this._percentile,percentileAsymmetry:this._percentileAsymmetry}),n.hasAreaBottom&&(n.selectedBoundsAreaTop=n.selectedBounds,n.selectedBoundsAreaBottom=fe(n.inSelectedSpaceAreaBottom.data,{percentile:this._percentile,percentileAsymmetry:this._percentileAsymmetry}),n.selectedBounds=be([n.selectedBoundsAreaTop,n.selectedBoundsAreaBottom]));continue}const a=t.get(n).filter((e=>e[0]>=this._selection.minX&&e[0]<=this._selection.maxX));n.newSelectedData=a,n.selectedBounds=be([n.selectedBounds,fe(a)])}this._recalculateAxisBounds(),this.deferredPriorityEmit("axis_bounds_changed",this._axes.map((({currentBounds:e})=>e)));for(let e of n)for(let t of e.series)this._calculatePrimarySizeDependents(t),this._calculateRangeGraphSizeDependents(t)}_recalculateAxisBounds(){for(let e of this._axes){if(this._selection.fixedY||!this._autoscaleY){e.targetBounds=this._selection,e.targetBounds.byAxis&&(e.targetBounds=e.targetBounds.byAxis[e.axisIndex]),e.currentBounds=e.targetBounds;continue}const t=[],n=[];for(let r of e.series)t.push(r.selectedBounds),r.expandYWith&&n.push(...r.expandYWith),"bar"===r.rendering&&n.push(r.dataBounds.minY,r.dataBounds.maxY);e.selectedDataBounds=be(t),e.targetBounds=e.currentBounds=ye(e.selectedDataBounds,{expandYWith:n})}this.deferredPriorityEmit("axis_bounds_changed",this._axes.map((({currentBounds:e})=>e)))}_recalculateSelection({disableSwap:e=!1}={}){this._globalBounds=ye(this._dataBounds,{expandYWith:this._expandYWith.flat()}),this.deferredPriorityEmit("global_bounds_changed",this._globalBounds),this._selection=function(e,t){const n=Object.assign({},e,t(e));return n.maxX instanceof Date&&(n.maxX=n.maxX.valueOf()),n.minX instanceof Date&&(n.minX=n.minX.valueOf()),n.maxX<n.minX&&(n.maxX=n.minX),n.minX<e.minX&&(n.minX=e.minX),n.maxX>e.maxX&&(n.maxX=e.maxX),n}(this._globalBounds,this._boundsCalculator),this.deferredPriorityEmit("selection_changed",this._selection);for(let t of this._series)t.hidden||(t.inSelectedSpace=Be({data:t.hasAreaBottom?t.inDataSpace.filter(((e,t)=>t%2==1)):t.inDataSpace,swap:e?null:t.inSelectedSpace,minX:this._selection.minX,maxX:this._selection.maxX,ignoreDiscontinuities:t.ignoreDiscontinuities,square:t.square}),t.hasAreaBottom&&(t.inSelectedSpaceAreaBottom=Be({data:t.inDataSpace.filter(((e,t)=>t%2==0)),swap:e?null:t.inSelectedSpaceAreaBottom,minX:this._selection.minX,maxX:this._selection.maxX,ignoreDiscontinuities:t.ignoreDiscontinuities,square:t.square})))}_render(){if(this.primaryRenderer&&this.primaryRenderer.sizing){this.primaryRenderer.clear(),this.rangeGraphRenderer&&this.rangeGraphRenderer.clear();for(let e of this._series){if(e.hidden)continue;const t=e.shadowColor||{day:"white",export:"transparent",night:"black"}[this._theme]||"black",n=void 0;this.primaryRenderer.renderBackground(e.inBackgroundSpacePrimary),this.primaryRenderer.render(e,e.inRenderSpacePrimary,{highlighted:this._highlightedSeries===e.index,showIndividualPoints:this._showIndividualPoints,shadowColor:t,shadowBlur:n,defaultLineWidth:this._defaultLineWidth,globalBounds:this._globalBounds,inRenderSpaceAreaBottom:e.inRenderSpacePrimaryAreaBottom}),this.rangeGraphRenderer&&this.rangeGraphRenderer.sizing&&this.rangeGraphRenderer.render(e,e.inRenderSpaceRangeGraph,{shadowColor:"transparent",shadowBlur:0,width:1,bounds:this._globalBounds,globalBounds:this._globalBounds,inRenderSpaceAreaBottom:e.inRenderSpaceRangeGraphAreaBottom})}}}_calculatePrimarySizeDependents(e,{dataChanged:t=!1}={}){if(!this.primaryRenderer||!this.primaryRenderer.sizing)return;if(!e){for(let e of this._series)this._calculatePrimarySizeDependents(e);return}if(!this._series.includes(e))throw new Error("Series no longer exists");if(e.hidden)return;const{currentBounds:n,scale:r}=e.axis,i=Math.ceil(this.primaryRenderer.sizing.renderWidth/2),a=Math.ceil(this.primaryRenderer.sizing.renderHeight),o={minX:n.minX,maxX:n.maxX,renderWidth:i,dataChanged:t};e.inCondensedSelectedSpacePrimary=Me({data:e.inSelectedSpace.data,swap:e.inCondensedSelectedSpacePrimary,...o});const s={minX:n.minX,maxX:n.maxX,minY:n.minY,maxY:n.maxY,renderWidth:i,renderHeight:a,scale:r,dataChanged:t};e.inRenderSpacePrimary=ve({data:e.inCondensedSelectedSpacePrimary.data,swap:e.inRenderSpacePrimary,...s}),e.inBackgroundSpacePrimary=Re({data:e.inCondensedSelectedSpacePrimary.data,background:e.background,swap:e.inBackgroundSpacePrimary,minX:n.minX,maxX:n.maxX}),e.hasAreaBottom&&(e.inCondensedSelectedSpacePrimaryAreaBottom=Me({data:e.inSelectedSpaceAreaBottom.data,swap:e.inCondensedSelectedSpacePrimaryAreaBottom,...o}),e.inRenderSpacePrimaryAreaBottom=ve({data:e.inCondensedSelectedSpacePrimaryAreaBottom.data,swap:e.inRenderSpacePrimaryAreaBottom,...s}),e.inBackgroundSpacePrimaryAreaBottom=Re({data:e.inCondensedSelectedSpacePrimaryAreaBottom.data,background:e.background,swap:e.inBackgroundSpacePrimaryAreaBottom,minX:n.minX,maxX:n.maxX}))}_calculateRangeGraphSizeDependents(e,{dataChanged:t=!1}={}){if(!this.rangeGraphRenderer||!this.rangeGraphRenderer.sizing)return;if(!e){for(let e of this._series)this._calculateRangeGraphSizeDependents(e);return}if(!this._series.includes(e))throw new Error("Series no longer exists");if(e.hidden)return;const{scale:n}=e.axis,r=this._globalBounds,i=Math.ceil(this.rangeGraphRenderer.sizing.renderWidth/2),a=Math.ceil(this.rangeGraphRenderer.sizing.renderHeight),o={minX:r.minX,maxX:r.maxX,ignoreDiscontinuities:e.ignoreDiscontinuities,square:e.square};e.inSelectedSpaceRangeGraph=Be({data:e.hasAreaBottom?e.inDataSpace.filter(((e,t)=>t%2==1)):e.inDataSpace,swap:e.inSelectedSpaceRangeGraph,...o});const s={minX:r.minX,maxX:r.maxX,renderWidth:i,dataChanged:t};e.inCondensedSelectedSpaceRangeGraph=Me({data:e.inSelectedSpaceRangeGraph.data,swap:e.inCondensedSelectedSpaceRangeGraph});const l={minX:r.minX,maxX:r.maxX,minY:r.minY,maxY:r.maxY,renderWidth:i,renderHeight:a,scale:n,dataChanged:t};e.inRenderSpaceRangeGraph=ve({data:e.inCondensedSelectedSpaceRangeGraph.data,swap:e.inRenderSpaceRangeGraph,...l}),e.hasAreaBottom&&(e.inSelectedSpaceRangeGraphAreaBottom=Be({data:e.inDataSpace.filter(((e,t)=>t%2==0)),swap:e.inSelectedSpaceRangeGraphAreaBottom,...o}),e.inCondensedSelectedSpaceRangeGraphAreaBottom=Me({data:e.inSelectedSpaceRangeGraphAreaBottom.data,swap:e.inCondensedSelectedSpaceRangeGraphAreaBottom,...s}),e.inRenderSpaceRangeGraphAreaBottom=ve({data:e.inCondensedSelectedSpaceRangeGraphAreaBottom.data,swap:e.inRenderSpaceRangeGraphAreaBottom,...l}))}_createAxis({side:e}){const t={series:[],scale:"linear",side:e,axisIndex:this._axes.length};return this._axes.push(t),t}_moveAxis(e,t){if(!this._series.includes(e))throw new Error("Series no longer exists");let n;if(n="new-left"===t||"new-right"===t?this._createAxis({side:t.split("-")[1]}):this._axes[parseInt(t)],e.axis===n)return;const r=e.axis,i=r.series.indexOf(e);if(-1===i)throw new Error("Series not present in axis");r.series.splice(i,1),n.series.push(e),e.axis=n,this._dataChanged=!0,this.deferredEmit("axes_changed",this._axes),this.deferredEmit("left_axes_changed",this.leftAxes),this.deferredEmit("right_axes_changed",this.rightAxes),this.deferredEmit("exported_axes_changed",this.exportedAxes),this._markDirty()}_assignAxisTo(e){if(e.axis&&"object"==typeof e.axis)return;let t;if(e.axisIndex){const{axisIndex:n}=e;t="new-left"===n||"new-right"===n?this._createAxis({side:n.split("-")[1]}):this._axes[parseInt(n)]}else if(e.axis){e.originalAxis=e.axis;let[n,r]=e.axis.split("-");t=function({axes:e,side:t,number:n}){let r;n=n&&parseInt(n)||0;let i=0;for(let a of e)if(a.side===t){if(i===n){r=a;break}i++}return r}({axes:this._axes,side:n,number:r}),t||(t=this._createAxis({side:n}))}else t=this._axes[0];t.series.push(e),e.axis=t,this.deferredEmit("axes_changed",this._axes),this.deferredEmit("exported_axes_changed",this.exportedAxes),"left"===e.axis.side?this.deferredEmit("left_axes_changed",this.leftAxes):this.deferredEmit("right_axes_changed",this.rightAxes)}_removeSeries(e){this._seriesFromOriginalSeries.delete(e.originalSeries);const{axis:t,data:n}=e;t.series.splice(t.series.indexOf(e),1);const r=this._observablesToSeries.get(n);r&&(r.delete(e),0===r.size&&this._observablesToSeries.delete(n)),this._generatorsToSeries.has(n)&&(this._generatorsToSeries.get(n).delete(e),0===this._generatorsToSeries.get(n).size&&(this._generatorsToSeries.delete(n),this._generators.delete(n))),this._alwaysTooltipped.delete(e),e.axis=e.originalAxis,delete e.originalAxis,delete e.inDataSpace,delete e.inSelectedSpace,delete e.inValueSpacePrimary,delete e.inValueSpaceRangeGraph,delete e.inRenderSpacePrimary,delete e.inRenderSpaceRangeGraph,delete e.newPointCount,delete e.newDataBounds,delete e.simpleDataSliceStart,this.deferredEmit("axes_changed",this._axes),this.deferredEmit("exported_axes_changed",this.exportedAxes),"left"===t.side?this.deferredEmit("left_axes_changed",this.leftAxes):this.deferredEmit("right_axes_changed",this.rightAxes)}_hideSeries(e){const{axis:t}=e,n=t.series.indexOf(e);e.indexInAxis=n,t.series.splice(n,1),this.deferredEmit("axes_changed",this._axes),"left"===t.side?this.deferredEmit("left_axes_changed",this.leftAxes):this.deferredEmit("right_axes_changed",this.rightAxes)}_showSeries(e){const{axis:t}=e;t.series.splice(e.indexInAxis,0,e),this.deferredEmit("axes_changed",this._axes),"left"===t.side?this.deferredEmit("left_axes_changed",this.leftAxes):this.deferredEmit("right_axes_changed",this.rightAxes)}get boundCalculator(){return this._boundsCalculator}get axes(){return this._axes}get leftAxes(){const e=this._axes.filter((({side:e,series:t})=>"left"===e&&t.length>0)).reverse();return 0===e.length&&0===this.rightAxes.length&&e.push(this._axes[0]),e}get rightAxes(){return this._axes.filter((({side:e,series:t})=>"right"===e&&t.length>0))}get bounds(){return this._axes.map((({targetBounds:e})=>e))}get selection(){return this._selection}get globalBounds(){return this._globalBounds}get series(){return this._series}get highlightedSeries(){return this._highlightedSeries}get showIndividualPoints(){return this._showIndividualPoints}get autoscaleY(){return this._autoscaleY}get boundHistory(){return{hasNextBounds:this._boundsIndex<this._boundsHistory.length-1,hasPreviousBounds:this._boundsIndex>0}}get tooltipState(){return this._tooltipState}get contextMenuState(){return this._contextMenuPosition}get alwaysTooltipped(){return this._alwaysTooltipped}get draggingY(){return this._draggingY}get averageLoopTime(){return function(e){const t={};for(let n of e)for(let[e,r]of Object.entries(n))t[e]=(t[e]||0)+r;for(let[n,r]of Object.entries(t))t[n]=r/e.length;return t}(this._timingBuffer)}get exportedAxes(){const e=new Map;let t=0,n=0;for(let r of this._axes){let i;"left"===r.side?(i=`left-${t}`,t++):(i=`right-${n}`,n++);for(let t of r.series)e.set(t,i)}return this.series.map((t=>({...t.originalSeries,axis:e.get(t)})))}get percentile(){return this._percentile}get percentileAsymmetry(){return this._percentileAsymmetry}get showingOptions(){return this._showingOptions}get maxPrecision(){return this._maxPrecision}get showingSidebar(){return this._showingSidebar}get showingAnnotations(){return this._showingAnnotations}get userCreatedSeries(){return this._series.filter((e=>e.userCreated))}get grapherID(){return this._grapherID}get annotationState(){return this._annotationsState}get sizing(){return this.primaryRenderer&&this.primaryRenderer.sizing}get theme(){return this._theme}get exportMode(){return this._exportMode}get enumMap(){return this._enumMap}get hasXEnum(){return this._hasXEnum}markSizeChanged(e){e===this.primaryRenderer?(this.deferredEmit("primary_size_change",this.primaryRenderer.sizing),this.deferredEmit("primary_bounding_rect_change",this.primaryRenderer.boundingRect),this._primarySizeChanged=!0):e===this.rangeGraphRenderer&&(this.deferredEmit("range_graph_size_change",this.rangeGraphRenderer.sizing),this.deferredEmit("range_graph_bounding_rect_change",this.rangeGraphRenderer.boundingRect),this._rangeGraphSizeChanged=!0),this._mustRerender=!0,this._tooltipsChanged=!0,this._annotationsChanged=!0,this._mustCallGenerators=!0,this._markDirty()}set theme(e){this._theme=e,this._mustRerender=!0,this.deferredEmit("theme_change",this._theme),this._markDirty()}set exportMode(e){this._exportMode=e,e?(this._nonExportTheme=this.theme,this.theme="export"):this.theme=this._nonExportTheme,this.deferredEmit("export_mode_change",this._exportMode),this._markDirty()}set defaultLineWidth(e){this._defaultLineWidth=e,this._mustRerender=!0,this._markDirty()}set boundCalculator(e){e&&e!==this._boundsCalculator&&(e.debounceHistory?(clearTimeout(this._boundingCalculatorDebouncer),this._boundingCalculatorDebouncer=setTimeout((()=>{this._addBoundCalculatorToHistory(e)}),250)):this._addBoundCalculatorToHistory(e),this._boundsCalculator=e,this.deferredEmit("bound_calculator_changed",this._boundsCalculator),this._dataChanged=!0,this._mustCallGenerators=!0,this._markDirty())}set customBoundsSelectors(e){this._customBoundsSelectors=this._customBoundsSelectors||{};const t={};for(let{label:n,calculator:r}of e)t[n]=r,this._boundsCalculator===this._customBoundsSelectors[n]&&this._boundsCalculator!==r&&(this.boundCalculator=r);this._customBoundsSelectors=t}_addBoundCalculatorToHistory(e){this._boundsIndex++,this._boundsHistory=this._boundsHistory.slice(0,this._boundsIndex),this._boundsHistory.push(e),this.emit("bound_history_changed",this.boundHistory)}registerSeriesClick(e){this.emit("series_click",this._series[e],e)}setHighlightedSeries(e){this._highlightedSeries=e,this.deferredEmit("highlighted_series_changed",e),this._mustRerender=!0,this._markDirty()}toggleIndividualPoints(){this._showIndividualPoints=!this._showIndividualPoints,this.deferredEmit("show_individual_points_changed",this._showIndividualPoints),this._mustRerender=!0,this._markDirty()}toggleYAutoscaling(){this._autoscaleY=!this._autoscaleY,this.deferredEmit("autoscale_y_changed",this._autoscaleY),this._markDirty()}toggleExportMode(){this.exportMode=!this._exportMode}setBoundsFromSelection(e){this.boundCalculator=function({minPixelX:e,maxPixelX:t,minPixelY:n,maxPixelY:r},{elementWidth:i,elementHeight:a,selection:o,axes:s}){if(Math.abs(t-e)<1||Math.abs(r-n)<1)return;const l=e/i*(o.maxX-o.minX)+o.minX,A=t/i*(o.maxX-o.minX)+o.minX,h=[];for(let{currentBounds:e,scale:t}of s){const i=we({...e,scale:t});let o=(1-n/a)*(i.maxY-i.minY)+i.minY,s=(1-r/a)*(i.maxY-i.minY)+i.minY;"log"===t&&(s=Math.pow(10,s),o=Math.pow(10,o)),h.push({minX:l,maxX:A,minY:s,maxY:o})}return()=>({minX:l,maxX:A,byAxis:h})}(e,{elementWidth:this.primaryRenderer.sizing.elementWidth,elementHeight:this.primaryRenderer.sizing.elementHeight,selection:this._selection,axes:this._axes})}nextBounds(){this._boundsIndex++,this._boundsCalculator=this._boundsHistory[this._boundsIndex],this.deferredEmit("bound_calculator_changed",this._boundsCalculator),this.deferredEmit("bound_history_changed",this.boundHistory),this._dataChanged=!0,this._markDirty()}previousBounds(){this._boundsIndex--,this._boundsCalculator=this._boundsHistory[this._boundsIndex],this.deferredEmit("bound_calculator_changed",this._boundsCalculator),this.deferredEmit("bound_history_changed",this.boundHistory),this._dataChanged=!0,this._markDirty()}setLabel({axisIndex:e,label:t}){this._axes[e].label=t,this.deferredEmit("axes_changed",[...this._axes]),this._markDirty()}toggleScale({axisIndex:e}){const t=this._axes[e].scale;this._axes[e].scale="log"===t?"linear":"log",this._dataChanged=!0,this.deferredEmit("axes_changed",[...this._axes]),this._markDirty()}recalculateTooltips(){this.primaryRenderer.recalculatePosition(),this.setTooltipMousePosition({clientX:this._tooltipClientX,clientY:this._tooltipClientY,shiftKey:this.shiftKeyPressedOnMove,tooltipAllNext:this._tooltipAllNext,tooltipStateArg:this._tooltipStateArg})}setTooltipMousePosition({clientX:e,clientY:t,shiftKey:n,mouseX:r,mouseY:i,tooltipAllNext:a,tooltipStateArg:o}){const s=this.primaryRenderer.sizing;if(!s)return;if("number"==typeof e){if(this._tooltipClientX=e,e<s.boundingRect.left||e>s.boundingRect.right)return void this.showOnlySavedTooltips()}else if("number"!=typeof i)return;if("number"==typeof t){if(this._tooltipClientY=t,t<s.boundingRect.top||t>s.boundingRect.bottom)return void this.showOnlySavedTooltips()}else if("number"!=typeof i)return;const l=r||e-s.boundingRect.left,A=i||t-s.boundingRect.top;this._tooltipState.mousePresent&&l===this._tooltipState.mouseX&&A===this._tooltipState.mouseY||(this._tooltipsChanged=!0,this._tooltipState.mousePresent=!0,this._tooltipState.mouseX=l,this._tooltipState.mouseY=A,this.shiftKeyPressedOnMove=n,this._tooltipAllNext=a,this._tooltipStateArg=o,this._markDirty())}setContextMenuMousePosition({clientX:e,clientY:t}){this._contextMenuPosition={x:e,y:t,showing:!this._contextMenuPosition.showing},this._contextMenuChanged=!0,this._markDirty()}toggleAlwaysTooltipped(e,t){if(this._alwaysTooltipped.has(e))t?this._alwaysTooltipped.clear():this._alwaysTooltipped.delete(e);else if(t)for(let e of this._series)this._alwaysTooltipped.add(e);else this._alwaysTooltipped.add(e);this._tooltipsChanged=!0,this.deferredEmit("always_tooltipped_changed",this._alwaysTooltipped),this._markDirty()}showOnlySavedTooltips(e){this._tooltipState.mousePresent&&(this._tooltipsChanged=!0,this._tooltipState.mousePresent=!1,this._tooltipStateArg=e,this._markDirty())}registerClick({clientX:e}){if(!this._listeners.series_click)return;const t=this.primaryRenderer.boundingRect,n=this.primaryRenderer.sizing;for(let r of this._series){const i=r.axis.currentBounds,a=(e-t.left)/n.elementWidth*(i.maxX-i.minX)+i.minX;this.emit("series_click",{x:a,series:r})}}toggleTooltipSaved(){const e=this._savedTooltips;this._savedTooltips=function({currentTooltips:e,savedTooltips:t}){if(!e.length)return t;const n=e[e.length-1];if(n.xDistance>20||!n.ignoreYDistance&&n.distance>20)return t;const r=t.findIndex((e=>e.x===n.x&&e.y===n.y));return-1===r?[...t,n]:t.filter(((e,t)=>t!==r))}({currentTooltips:this._tooltipState.tooltips,savedTooltips:this._savedTooltips}),this._tooltipsChanged=this._savedTooltips!==e,this._markDirty()}clearSavedTooltips(){0!==this._savedTooltips.length&&(this._savedTooltips=[],this._tooltipsChanged=!0,this._markDirty())}markDragStart(){this._draggingY||(this._draggingY=!0,this.deferredEmit("dragging_y_changed",this._draggingY),this._markDirty())}finalizeDrag(e,t,n){if(!this._draggingY)return;this._draggingY=!1,this.deferredEmit("dragging_y_changed",this._draggingY);const r=t&&0!==t,i=n===this._grapherID;r&&i?(this._moveAxis(e,t),this.deferredEmit("dragging_y_finalized",{draggedSeries:e,axisIndex:t,grapherID:n})):n&&this.deferredEmit("dragging_y_finalized",{draggedSeries:e,axisIndex:t,grapherID:n}),this._markDirty()}set timingFrameCount(e){"number"==typeof e&&(this._timingBuffer=[],this._timingIndex=0,this._timingFrameCount=e)}set percentile(e){void 0!==e&&(this.deferredEmit("percentile_changed",e),""===e&&(e=100),e=parseFloat(e),!isNaN(e)&&e<=100&&e>=0&&(this._percentile=e,this._dataChanged=!0),this._markDirty())}set percentileAsymmetry(e){void 0!==e&&(this.deferredEmit("percentile_asymmetry_changed",e),""===e&&(e=0),e=parseFloat(e),!isNaN(e)&&e<=50&&e>=-50&&(this._percentileAsymmetry=e,this._dataChanged=!0),this._markDirty())}set showingOptions(e){void 0!==e&&(this._showingOptions=e,this.deferredEmit("showing_options_changed",e),this._markDirty())}toggleShowingOptions(){this.showingOptions=!this.showingOptions}toggleMaxPrecision(){this._maxPrecision=!this._maxPrecision,this.deferredEmit("max_precision_changed",this._maxPrecision),this._markDirty()}toggleShowingAnnotations(){this._showingAnnotations=!this._showingAnnotations,this.deferredEmit("showing_annotations_changed",this._showingAnnotations),this._markDirty()}toggleShowingSidebar(){this._showingSidebar=!this._showingSidebar,this.deferredEmit("showing_sidebar_changed",this._showingSidebar),this._markDirty()}setShowing(e,t){e.hidden=!t,this._series=[...this._series],e.hidden?this._hideSeries(e):this._showSeries(e),this.deferredEmit("series_changed",this._series,{skipResize:!0}),this._dataChanged=!0,this._markDirty()}set annotations(e){this._annotations=e||[],this._annotationsChanged=!0,this._markDirty()}enumToNumber(e,t,n){const r=this._enumMap[e];if("number"==typeof r)return r;const i=Object.keys(this._enumMap).length;return this._enumMap[e]=i,this._series[t.index].hasEnum=!0,n&&(this._series[t.index].hasXEnum=!0,this._hasXEnum=!0,this.deferredEmit("has_x_enum_change",this._hasXEnum),this.deferredEmit("x_enum_map_change",this._enumMap)),this.deferredEmit("enum_map_change",this._enumMap),i}triggerResize(){this._mustResize=!0,this._markDirty()}}function Fe(e,n,r=null,i=[]){if("function"==typeof r){const e=r;r=()=>e}const[a,o]=(0,t.useState)(r);return(0,t.useEffect)((()=>{const t=e=>{if("function"==typeof e){const t=e;e=()=>t}o(e)};return e.on(n,t),()=>{e.off(n,t)}}),[...i,o,e]),a}function Ie(e){return Fe(e,"primary_size_change",e.primaryRenderer?e.primaryRenderer.sizing:{elementWidth:0,elementHeight:0,renderWidth:0,renderHeight:0})}function ze(e){return Fe(e,"axes_changed",e.axes)}function $e(e){return Fe(e,"series_changed",e.series)}function Oe(e){return Fe(e,"highlighted_series_changed",e.highlightedSeries)}function Le(e){return We(e).length}function Ge(e){return Ne(e).length}function We(e){return Fe(e,"right_axes_changed",e.rightAxes)}function Ne(e){return Fe(e,"left_axes_changed",e.leftAxes)}function qe(e){return Fe(e,"axis_bounds_changed",e.axes.map((({currentBounds:e})=>e)))}function Ue(e){return Fe(e,"autoscale_y_changed",e.autoscaleY)}function He(e){return Fe(e,"dragging_y_changed",e.draggingY)}function je(e){return Fe(e,"showing_options_changed",e.showingOptions)}function Ke(e){return Fe(e,"max_precision_changed",e.maxPrecision)}function Ve(e){return Fe(e,"showing_sidebar_changed",e.showingSidebar)}function Je(e){return Fe(e,"showing_annotations_changed",e.showingAnnotations)}function Ze(e){return Fe(e,"primary_size_change",e.sizing)}function Qe(e){return Fe(e,"theme_change",e.theme)}class et extends t.default.PureComponent{render(){const{bodyHeight:e,annotationState:n}=this.props,{annotations:r,elementWidth:i}=n,a=r.filter((e=>void 0!==e.pixelStartX&&void 0!==e.pixelWidth));return t.default.createElement("div",{className:"grapher-annotations"},a.map((({pixelStartX:n,pixelWidth:r,content:a,isRange:o,lineOnly:s},l)=>{const A={left:n};if(o)return t.default.createElement("div",{key:`range-${l}`,className:"grapher-annotation grapher-annotation-range",style:A},t.default.createElement("div",{className:"annotation-range-marker",style:{width:r,height:e}}));{const o=s?r:Math.max(r,1),h={};if(a){h.top=21*l,h.position="absolute";const e=5.5*(a||"").length;i>0&&i-n<e+10?(h.left=-e-5,h.textAlign="right"):h.left=o+5}return t.default.createElement("div",{key:`point-${l}`,className:"grapher-annotation grapher-annotation-point",style:A},t.default.createElement("div",{className:"annotation-marker",style:{width:o,height:e}}),a&&!s&&t.default.createElement("div",{className:"annotation-text",style:h},a))}})))}}et.propTypes={annotationState:s().shape({annotations:s().arrayOf(s().shape({pixelStartX:s().number,pixelWidth:s().number,content:s().string,isRange:s().bool,lineOnly:s().bool})).isRequired,elementWidth:s().number.isRequired}),bodyHeight:s().number};const tt=t.default.memo(nt);function nt({stateController:e,draggablePoints:n,onPointDrag:r,onDraggablePointsDoubleClick:i}){const a=qe(e)[0],o=Ze(e);if(!o)return null;const s=i&&(e=>{const t=(e.clientX-o.boundingRect.left)/o.elementWidth,n=1-(e.clientY-o.boundingRect.top)/o.elementHeight;i(e,{x:t*(a.maxX-a.minX)+a.minX,y:n*(a.maxY-a.minY)+a.minY})});return t.default.createElement("div",{className:"grapher-draggable-points",onDoubleClick:s},t.default.createElement("svg",{width:o.elementWidth,height:o.elementHeight},n.map(((e,n)=>{const i=(e.x-a.minX)/(a.maxX-a.minX),s=1-(e.y-a.minY)/(a.maxY-a.minY);if(i<0||i>1||s<0||s>1)return null;const l=i*o.elementWidth,A=s*o.elementHeight,h=e.radius||5,c=e.fillColor||v[0],d=e.strokeColor||"white",g=e.strokeWidth||1,p=e.onClick&&(t=>{e.onClick(t,e)}),u=e.onDoubleClick&&(t=>{t.stopPropagation(),e.onDoubleClick(t,e)});return t.default.createElement("circle",{key:n,cx:l,cy:A,r:h,fill:c,stroke:d,strokeWidth:g,onMouseDown:t=>{if(t.stopPropagation(),!r)return;const i=l-t.clientX,s=A-t.clientY,h=t=>{const l=(t.clientX+i)/o.elementWidth,A=1-(t.clientY+s)/o.elementHeight;r({index:n,point:e,x:l*(a.maxX-a.minX)+a.minX,y:A*(a.maxY-a.minY)+a.minY},t)},c=()=>{window.removeEventListener("mousemove",h),window.removeEventListener("mouseup",c)};window.addEventListener("mousemove",h),window.addEventListener("mouseup",c)},onClick:p,onDoubleClick:u})}))))}nt.propTypes={stateController:s().instanceOf(Pe).isRequired,draggablePoints:E.DraggablePoints.isRequired,onPointDrag:s().func,onDraggablePointsDoubleClick:s().func};const rt=t.default.memo(it);function it({stateController:e,verticalLines:n,isRangeGraph:r,bounds:i,elementWidth:a,elementHeight:o}){i=i||qe(e)[0];const s=Ze(e);if(!s)return null;const l=n.filter((e=>!(r&&!e.onRangeGraph||e.onRangeGraphOnly&&!r)));return 0===l.length?null:t.default.createElement("div",{className:"grapher-vertical-lines"},t.default.createElement("svg",{width:a||s.elementWidth,height:o||s.elementHeight},l.map(((e,n)=>{r&&"object"==typeof e.onRangeGraph&&(e={...e,...e.onRangeGraph});const l=(e.x-i.minX)/(i.maxX-i.minX);if(l<0||l>1)return null;const A=l*(a||s.elementWidth);if("number"==typeof e.minPixelX&&A<e.minPixelX)return null;if("number"==typeof e.maxPixelX&&A>e.maxPixelX)return null;const h={stroke:e.color,strokeWidth:e.width,...e.style||{}},c={fill:e.color,...e.markerStyle||{}},d={fontSize:"12px",fill:e.color,stroke:"none",textAnchor:"middle",dominantBaseline:"hanging",...e.textStyle||{}};let g=0;"number"==typeof e.lineTop?g=e.lineTop:e.text&&(g=18);let p=5;return"number"==typeof e.textTop&&(p=e.textTop),t.default.createElement(t.default.Fragment,{key:n},t.default.createElement("line",{x1:A,y1:g,x2:A,y2:o||s.elementHeight,style:h}),e.markTop&&t.default.createElement("polygon",{points:`${A-3},0 ${A+3},0 ${A},3`,style:c}),e.text&&t.default.createElement("text",{x:A,y:p,style:d},e.text))}))))}function at(){return at=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},at.apply(this,arguments)}it.propTypes={stateController:s().instanceOf(Pe).isRequired,verticalLines:E.VerticalLines.isRequired,isRangeGraph:s().bool,bounds:s().object,elementWidth:s().number,elementHeight:s().number};const ot=t.default.memo(st);function st({stateController:e,webgl:n,bodyHeight:r,boundsSelectionEnabled:i,showTooltips:a,tooltipOptions:o,checkIntersection:s,draggablePoints:l,onPointDrag:A,onDraggablePointsDoubleClick:h,verticalLines:c,clockStyle:d,timeZone:g,onPointClick:p}){const u=(0,t.useCallback)((t=>{if(e.primaryRenderer&&e.primaryRenderer.dispose(),!t)return;const r=new Q({stateController:e,canvasElement:t,webgl:n,checkIntersection:s});e.primaryRenderer=r,r.resize()}),[n,e]),[m,C]=(0,t.useState)({showing:!1,start:{},style:{}}),x=Ue(e),f=ze(e).length,b=function(e){return Fe(e,"tooltip_state_changed",e.tooltipState)}(e),y=Ke(e),_=Je(e),B=function(e){return Fe(e,"annotations_changed",e.annotationState)}(e),E=function(e){return Fe(e,"context_menu_position_changed",e.contextMenuState)}(e);return(0,t.useEffect)((()=>{const t=()=>{a&&e.recalculateTooltips()},n=t=>{a&&e.setTooltipMousePosition({clientX:t.clientX,clientY:t.clientY,shiftKey:t.shiftKey})};return window.addEventListener("scroll",t,{passive:!0}),window.addEventListener("mousemove",n,{passive:!0}),()=>{window.removeEventListener("scroll",t),window.removeEventListener("mousemove",n)}}),[]),t.default.createElement("div",{className:"graph-body graph-body-primary",onMouseMove:t=>{if(m.showing){const n=e.primaryRenderer.boundingRect,r=t.clientX-n.left,i=t.clientY-n.top;C((({start:e})=>({showing:!0,start:e,style:{left:Math.min(r,e.x),top:x?0:Math.min(i,e.y),width:Math.abs(r-e.x),height:x?n.height:Math.abs(i-e.y)}})))}},onMouseLeave:()=>{e.setContextMenuMousePosition({showing:!1})},onMouseDown:t=>{if(!i)return;let n=t.target;for(let e=0;e<10&&n;e++){if(n.classList.contains("grapher-tooltip"))return;n=n.parentNode}const r=e.primaryRenderer.boundingRect,a={x:t.clientX-r.left,y:t.clientY-r.top};C({showing:!0,start:a,style:{left:a.x,top:a.y,width:0,height:0}});const o=t=>{if(window.removeEventListener("mouseup",o),!i)return;const n=t.clientX-r.left,s=t.clientY-r.top;e.setBoundsFromSelection({minPixelX:Math.min(n,a.x),maxPixelX:Math.max(n,a.x),minPixelY:Math.min(s,a.y),maxPixelY:Math.max(s,a.y)}),C({showing:!1,style:{}})};window.addEventListener("mouseup",o)},onClick:t=>{if(e.registerClick({clientX:t.clientX,clientY:t.clientY}),o&&o.savingDisabled)e.clearSavedTooltips();else if(t.target.closest(".grapher-context-menu")||e.setContextMenuMousePosition({showing:!1}),window.getSelection&&"Range"===window.getSelection().type||e.toggleTooltipSaved(),p){const n={},r=e.series;for(let t=0;t<r.length;t++){const i=r[t],a=e.sizing,o=i.axis.currentBounds,s=e.tooltipState.mouseX/a.elementWidth*(o.maxX-o.minX)+o.minX;let l=i.inDataSpace;i.ignoreDiscontinuities&&(l=l.filter((e=>"number"==typeof e[1])));const A=l[_e(l,s,{returnIndex:!0})];n[i.name]=A[0]}p(t,n)}},onDoubleClick:()=>{e.clearSavedTooltips()},onContextMenu:t=>{t.preventDefault(),e.setContextMenuMousePosition({clientX:t.clientX,clientY:t.clientY,showing:!0})},style:"number"==typeof r?{height:r}:void 0},t.default.createElement("canvas",{ref:u}),a&&t.default.createElement(ce,at({axisCount:f,maxPrecision:y,clockStyle:d,timeZone:g},o||{},b)),E.showing&&t.default.createElement(de,{contextMenu:E}),_&&t.default.createElement(et,{bodyHeight:r||e?.primaryRenderer?.boundingRect?.height,annotationState:B}),c&&t.default.createElement(rt,{stateController:e,verticalLines:c}),l&&t.default.createElement(tt,{stateController:e,draggablePoints:l,onPointDrag:A,onDraggablePointsDoubleClick:h}),i&&m.showing&&t.default.createElement("div",{className:"bounds-selection",style:m.style}))}st.propTypes={stateController:s().instanceOf(Pe).isRequired,webgl:s().bool,checkIntersection:s().bool,bodyHeight:s().number,boundsSelectionEnabled:s().bool.isRequired,showTooltips:s().bool.isRequired,tooltipOptions:E.TooltipOptions,verticalLines:E.VerticalLines,draggablePoints:E.DraggablePoints,onPointDrag:s().func,onDraggablePointsDoubleClick:s().func,onPointClick:s().func,clockStyle:s().oneOf(["12h","24h"]),timeZone:s().string};var lt=r(72),At=r.n(lt),ht=r(825),ct=r.n(ht),dt=r(659),gt=r.n(dt),pt=r(56),ut=r.n(pt),mt=r(540),Ct=r.n(mt),xt=r(113),ft=r.n(xt),bt=r(557),yt={};function _t(e,{scale:t,min:n,max:r,inverted:i,totalSize:a,precision:o,formatter:s,dates:l,justTime:A,justDate:h,formatOptions:c={}},d={}){let g=e;"log"===t&&(g=10**e);let p=(e-n)/(r-n);i&&(p=1-p);let u=p*a;return isNaN(u)&&(u=0),{pixelValue:u,trueValue:g,label:s(g,{...c,precision:o,log:"log"===t,dates:l,justTime:A,justDate:h}),size:"major",...d}}function Bt(e,{scale:t,min:n,max:r,inverted:i,totalSize:a,precision:o,formatter:s,dates:l,justTime:A,justDate:h,formatOptions:c={}},d={}){let g=e/a;i&&(g=1-g);let p=g*(r-n)+n;return"log"===t&&(p=Math.pow(10,p)),{pixelValue:e,trueValue:p,label:s(p,{...c,precision:o,log:"log"===t,dates:l,justTime:A,justDate:h}),size:"major",...d}}function Et(e,t){if(e<=1)return 1;if(1===t)return Math.round(e);if(e>=t)return Math.round(e/t)*t;let n;if(24===t)n=[1,2,6,12,24];else{if(60!==t)throw new Error("Invalid divisor");n=[1,2,5,10,15,30,60]}let r=1/0,i=1;for(let t=0;t<n.length;t++){const a=Math.abs(n[t]-e);a<r&&(i=n[t],r=a)}return i}function wt(e){return e.dates?function({min:e,max:t,precision:n,expectedLabelSize:r,labelPadding:i,totalSize:a,skipFirst:o=!1,skipLast:s=!1,scale:l="linear",formatter:A,inverted:h=!1,formatOptions:c}){const d=r+2*i,g=[],p={scale:l,min:e,max:t,inverted:h,totalSize:a,precision:n,formatter:A,formatOptions:c,dates:!0},{amount:u,unit:m}=function(e,t,n){const r=e/t;return r<6e4&&(!n||"second"===n)?{amount:Et(r/1e3,60),unit:"s"}:r<36e5&&(!n||"minute"===n)?{amount:Et(r/6e4,60),unit:"m"}:r<864e5&&(!n||"hour"===n)?{amount:Et(r/36e5,24),unit:"h"}:"day"===n||r<2592e6&&!n?{amount:Et(r/864e5,1),unit:"d"}:r>2592e6&&(!n||"month"===n)?{amount:Et(r/30*24*60*60*1e3,1),unit:"month"}:"year"===n?{amount:Et(r/365*24*60*60*1e3,1),unit:"year"}:{unit:"m",amount:60}}(t-e,a/d,c.unitOverride),C="month"===m;o||g.push(Bt(0,{...p,justDate:C},{position:"first"}));let x=new Date(e);"h"===m?x.setMinutes(0,0,0):"m"===m?x.setSeconds(0,0):"s"===m?x.setMilliseconds(0):"month"===m?(x=ie(x,c.timeZone),x.setDate(1)):"d"===m&&(x=ie(x,c.timeZone));let f=A(x,{...c,...p,justDate:!0});for(;x<t;){let e=864e5;"h"===m?e=60*(u-x.getHours()%u)*60*1e3:"m"===m?e=60*(u-x.getMinutes()%u)*1e3:"s"===m?e=1e3*(u-x.getSeconds()%u):"month"===m?(e=0,x=11===x.getMonth()?new Date(x.getFullYear()+1,0,1):new Date(x.getFullYear(),x.getMonth()+1,1)):"year"===m&&(x=new Date(x.getFullYear()+1,0,0)),x=new Date(x.valueOf()+e);const t=A(x,{...c,...p,justDate:!0})===f,n=_t(x,{...p,justTime:t,justDate:C});g.length&&n.pixelValue-g[g.length-1].pixelValue<r+(i||0)||n.pixelValue+r/2>=a||(g.push(n),f=A(x,{...c,...p,justDate:!0}))}const b=f===A(t,{...c,...p,justDate:!0});return!s&&g[g.length-1].pixelValue+r<a&&g.push(Bt(a,{...p,justTime:b,justDate:C},{position:"last"})),g.filter((({pixelValue:e})=>e<=a&&e>=0))}(e):function({min:e,max:t,precision:n,expectedLabelSize:r,labelPadding:i,totalSize:a,scale:o="linear",formatter:s,inverted:l=!1,formatOptions:A}){const h=r+2*i,c=[],d={scale:o,min:e,max:t,inverted:l,totalSize:a,precision:n,formatter:s,formatOptions:A,dates:!1},g=function(e,t){const n=e/t,r=1-Math.log10(Math.abs(n)),i=r-Math.floor(r)>.5?2:1,a=10**Math.floor(r)*i;return Math.round(n*a)/a}(t-e,Math.floor((a-2*r)/h));if(g>0)for(let n=function(e,t){return Math.round(e/t)*t}(e,g);n<t;n+=g)c.push(_t(n,d));return c.length&&l&&c[c.length-1].pixelValue>i&&c.push(Bt(r/2,d)),c.filter((({pixelValue:e})=>e<=a&&e>=0))}(e)}yt.styleTagTransform=ft(),yt.setAttributes=ut(),yt.insert=gt().bind(null,"head"),yt.domAPI=ct(),yt.insertStyleElement=Ct(),At()(bt.A,yt),bt.A&&bt.A.locals&&bt.A.locals;const vt=t.default.memo(kt);function kt({showAxes:e,showGrid:n,stateController:r,bigLabels:i,xTickUnit:a,clockStyle:o,timeZone:s,integersOnly:l,formatXAxisLabel:A}){if(!e&&!n)return null;const{elementWidth:h,elementHeight:c}=Ie(r),{minX:d,maxX:g,dates:p}=function(e){return Fe(e,"selection_changed",e.selection)}(r),u=function(e){return Fe(e,"has_x_enum_change",e.hasXEnum)}(r),m=function(e){return Fe(e,"enum_map_change",e.enumMap)}(r);let C;C=p?function(e,t){e=new Date(e);const n=(t=new Date(t)).valueOf()-e.valueOf();return n<3e3?"ms":n<6e5?"s":"m"}(d,g):ee(g-d);let x=null;if(u){x={};for(const[e,t]of Object.entries(m))x[t]=e}const f={unitOverride:a,clockStyle:o,timeZone:s,integersOnly:l,inverseEnumMap:x,formatter:A},b=ae(d,{...f,dates:p,precision:C}).toString(),y=ae(g,{...f,dates:p,precision:C}).toString();let _=4*Math.max(b.length,y.length);i&&(_*=2);const B=wt({min:d,max:g,totalSize:h,precision:C,dates:p,formatter:A||ae,expectedLabelSize:_,labelPadding:30,formatOptions:f});return t.default.createElement("svg",{className:"axis x-axis",style:e?void 0:{marginBottom:-20}},e&&t.default.createElement("path",{d:`M-1,0 H${h}`,className:"axis-line"}),e&&t.default.createElement("path",{d:`M-2,1 H${h+1}`,className:"axis-line-shadow"}),B.map((({pixelValue:r,label:a,size:o,position:s,skipGrid:l},A)=>{if(isNaN(r))return null;const h=["axis-item",`axis-item-${o}`,`axis-item-${s}`];return i&&h.push("axis-item-big-labels"),t.default.createElement("g",{key:A,className:h.join(" ")},e&&t.default.createElement("path",{d:`M${r},1 v6`,className:"axis-tick"}),n&&!l&&t.default.createElement("path",{d:`M${r},0 v-${c}`}),e&&t.default.createElement("text",{x:r,y:15},a))})))}kt.propTypes={stateController:s().instanceOf(Pe).isRequired,showAxes:s().bool.isRequired,showGrid:s().bool.isRequired,bigLabels:s().bool,xTickUnit:s().oneOf(["year"]),clockStyle:s().oneOf(["12h","24h"]),timeZone:s().string,integersOnly:s().bool,formatXAxisLabel:s().func};const St=t.default.memo(Dt);function Dt({stateController:e,showAxes:n,showGrid:r,showSeriesKey:i,axis:a,sideIndex:o,bodyHeight:s,theme:l,grapherID:A,dragPositionYOffset:h=0,bigLabels:c,showAxisColors:d}){if(!n&&!r)return null;const{side:g,scale:p,axisIndex:u,label:m}=ze(e)[a.axisIndex],{elementWidth:C,elementHeight:x}=Ie(e);let{minY:f,maxY:b}=qe(e)[u];const y=we({minY:f,maxY:b,scale:p});f=y.minY,b=y.maxY;const _=wt({min:f,max:b,totalSize:x,scale:p,precision:ee(b-f),formatter:oe,inverted:!0,expectedLabelSize:c?20:10,labelPadding:30});let B=5;"log"===p&&(B=2);const E=Oe(e),[w,v]=(0,t.useState)(null),[S,D]=(0,t.useState)({dx:0,dy:0}),X="day"===l?1:.5,Y="day"===l?.8:.3;return t.default.createElement("svg",{className:`axis y-axis y-axis-${g}`,"data-axis-index":u,"data-grapher-id":A,style:{width:se,marginLeft:n?void 0:-32,height:"number"==typeof s?s:void 0}},n&&d&&a.series.map(((e,n)=>{const r=x/a.series.length;return t.default.createElement("rect",{x:"left"===g?0:2,y:n*r,width:30,height:r,key:e.index,fill:k(e.color,e.index,e.multigrapherSeriesIndex),opacity:e.index===E?X:Y,"data-element-height":x,"data-series-length":a.series.length})})),n&&t.default.createElement("path",{d:`M${"left"===g?31:1},3 V${x}`,className:"axis-line"}),n&&t.default.createElement("path",{d:`M${"left"===g?30:0},3 V${x+1}`,className:"axis-line-shadow"}),_.map((({pixelValue:e,label:i,size:a,skipGrid:s},l)=>{const A="left"===g?(o+1)*se:-o*se,h=("left"===g?1:-1)*(C+1),d=["axis-item",`axis-item-${a}`];return c&&d.push("axis-item-big-labels"),t.default.createElement("g",{key:l,className:d.join(" ")},r&&!s&&t.default.createElement("path",{d:`M${A},${e} h${h}`}),r&&!s&&o>0&&t.default.createElement("path",{d:`M${"left"===g?se:0},${e} h${("left"===g?1:-1)*o*se}`,strokeDasharray:"2,2"}),n&&t.default.createElement("text",{x:"left"===g?se-B:B,y:e},i))})),i&&n&&a.series.map(((n,r)=>{let i=18+14*(r%2-1),o=-14*Math.ceil(a.series.length/2)+14*Math.floor(r/2);return n===w&&(i+=S.dx,o+=S.dy-h),t.default.createElement("rect",{className:"series-color-box",onMouseDown:t=>((t,n)=>{let r=t.clientX,i=t.clientY;"left"===g&&(r+=se),"right"===g&&(r-=se),D({dx:0,dy:0});const a=e=>{D({dx:e.clientX-r,dy:e.clientY-i})},o=t=>{window.removeEventListener("mousemove",a),window.removeEventListener("mouseup",o);let r=t.target;for(;r&&!(r.dataset||{}).axisIndex;)r=r.parentNode;v(null),e.finalizeDrag(n,r&&(r.dataset||{}).axisIndex,r&&(r.dataset||{}).grapherId)};window.addEventListener("mousemove",a),window.addEventListener("mouseup",o),v(n),e.markDragStart()})(t,n),x:i,y:o,width:10,height:10,key:n.index,fill:k(n.color,n.index,n.multigrapherSeriesIndex),onMouseOver:()=>e.setHighlightedSeries(n.index),onMouseOut:()=>e.setHighlightedSeries(null)})})),n&&!!m&&t.default.createElement("text",{className:"y-axis-label"+(c?" y-axis-big-label":""),x:"left"===g?10:22,y:x/2+("left"===g?-1:1)*(u+1)*(c?20:0),transform:`rotate(${"left"===g?-90:90}, ${"left"===g?10:22}, ${x/2})`},m))}Dt.propTypes={stateController:s().instanceOf(Pe),showAxes:s().bool.isRequired,showGrid:s().bool.isRequired,showAxisColors:s().bool.isRequired,showSeriesKey:s().bool.isRequired,axis:E.Axis.isRequired,sideIndex:s().number.isRequired,bodyHeight:s().number,theme:s().string,grapherID:s().string,dragPositionYOffset:s().number,bigLabels:s().bool};const Xt=t.default.memo(Yt);function Yt({selected:e,disabled:n,className:r,onClick:i,children:a,description:o}){const s=["range-button"];return e&&s.push("range-button-selected"),n&&s.push("range-button-disabled"),r&&s.push(r),o&&s.push("option-tooltip"),t.default.createElement("div",{className:s.join(" "),onClick:i&&(e=>n||i(e))},a,o&&t.default.createElement("div",{className:"option-tooltip-text"},o))}Yt.propTypes={selected:s().bool.isRequired,onClick:s().func,children:s().node.isRequired,disabled:s().bool,className:s().string,description:s().string};const Mt=t.default.memo(Tt);function Tt({stateController:e,currentBoundCalculator:n,boundCalculator:r,children:i,disabled:a}){return t.default.createElement(Xt,{selected:n===r,onClick:()=>e.boundCalculator=r,disabled:a},i)}Tt.propTypes={stateController:s().instanceOf(Pe).isRequired,boundCalculator:s().func.isRequired,currentBoundCalculator:s().func.isRequired,children:s().node.isRequired,disabled:s().bool};const Rt=t.default.memo(Pt);function Pt({stateController:e}){const n=function(e){return Fe(e,"percentile_changed",e.percentile)}(e),r=function(e){return Fe(e,"percentile_asymmetry_changed",e.percentileAsymmetry)}(e),[i,a]=(0,t.useState)(!1);return[i?t.default.createElement(Xt,{key:"asymmetry button",className:"percentile-button",selected:!0,description:"Percentile asymmetry"},t.default.createElement("input",{onClick:e=>e.stopPropagation(),value:r,onChange:t=>e.percentileAsymmetry=t.target.value,onKeyUp:e=>13===e.keyCode&&a(!1),type:"number",min:-50,max:50}),t.default.createElement("div",{className:"icon-container icon-container-square"},t.default.createElement("svg",{focusable:"false",viewBox:"0 0 512 512"},t.default.createElement("path",{fill:"currentColor",d:"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z"})))):null,t.default.createElement(Xt,{key:"main-button",className:"percentile-button",selected:i||100!==parseFloat(n),onClick:()=>a(!i),description:"Edit percentile"},i&&t.default.createElement("div",null,t.default.createElement("input",{onClick:e=>e.stopPropagation(),autoFocus:!0,value:n,onChange:t=>e.percentile=t.target.value,onKeyUp:e=>13===e.keyCode&&a(!1),type:"number",min:0,max:100})),t.default.createElement("div",{className:"icon-container icon-container-narrow"},t.default.createElement("svg",{focusable:"false",viewBox:"0 0 448 512"},t.default.createElement("path",{fill:"currentColor",d:"M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z"}))))]}Pt.propTypes={stateController:s().instanceOf(Pe).isRequired};const Ft=t.default.memo(It);function It({stateController:e,sidebarEnabled:n}){const r=function(e){return Fe(e,"show_individual_points_changed",e.showIndividualPoints)}(e),i=Ue(e),a=Ke(e),o=Ve(e),s=Je(e),l=Qe(e);return t.default.createElement("div",{className:"options-bar"},n&&t.default.createElement(Xt,{selected:o,onClick:()=>e.toggleShowingSidebar(),description:"Show sidebar"},t.default.createElement("div",{className:"icon-container icon-container-square"},t.default.createElement("svg",{focusable:"false",viewBox:"0 0 512 512"},t.default.createElement("path",{fill:"currentColor",d:"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z"})))),t.default.createElement(Xt,{selected:"export"===l,onClick:()=>e.toggleExportMode(),description:"Export mode"},t.default.createElement("div",{className:"icon-container icon-container-square"},t.default.createElement("svg",{focusable:"false",viewBox:"0 0 512 512"},t.default.createElement("path",{fill:"currentColor",d:"M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z"})))),t.default.createElement(Xt,{selected:s,onClick:()=>e.toggleShowingAnnotations(),description:"Show annotations"},t.default.createElement("div",{className:"icon-container icon-container-448"},t.default.createElement("svg",{focusable:"false",viewBox:"0 0 448 512"},t.default.createElement("path",{fill:"currentColor",d:"M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z"})))),t.default.createElement(Rt,{stateController:e}),t.default.createElement(Xt,{selected:a,onClick:()=>e.toggleMaxPrecision(),description:"Max precision"},t.default.createElement("div",{className:"icon-container icon-container-square"},t.default.createElement("svg",{focusable:"false",viewBox:"0 0 512 512"},t.default.createElement("path",{fill:"currentColor",d:"M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z"})))),t.default.createElement(Xt,{selected:i,onClick:()=>e.toggleYAutoscaling(),description:"Autoscale y axis"},t.default.createElement("div",{className:"icon-container"},t.default.createElement("svg",{focusable:"false",viewBox:"0 0 256 512"},t.default.createElement("path",{fill:"currentColor",d:"M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z"})))),t.default.createElement(Xt,{selected:r,onClick:()=>e.toggleIndividualPoints(),description:"Show individual points"},t.default.createElement("div",{className:"icon-container icon-container-narrow"},t.default.createElement("svg",{focusable:"false",viewBox:"0 0 192 512"},t.default.createElement("path",{fill:"currentColor",d:"M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z"})))))}It.propTypes={stateController:s().instanceOf(Pe).isRequired,sidebarEnabled:s().bool};const zt=t.default.memo($t);function $t({stateController:e,customBoundsSelectors:n,customBoundsSelectorsOnly:r,sidebarEnabled:i}){const a=Le(e),o=Ge(e),s=je(e);let l=se*a;a>0&&(l+=5);let A=se*o;o>0&&(A+=5);const{dates:h}=function(e){return Fe(e,"global_bounds_changed",e.globalBounds)}(e),c=function(e){return Fe(e,"bound_calculator_changed",e.boundCalculator)}(e),{hasPreviousBounds:d,hasNextBounds:g}=function(e){return Fe(e,"bound_history_changed",e.boundHistory)}(e),p=new Set(n.map((({label:e})=>e)));return t.default.createElement("div",{className:"range-selection"+(h?"":" range-not-dates"),style:{marginRight:l,marginLeft:A}},t.default.createElement("div",{className:"range-buttons"},s&&t.default.createElement(Ft,{stateController:e,sidebarEnabled:i}),t.default.createElement(Xt,{className:"showing-options-button",selected:s,onClick:()=>e.toggleShowingOptions(),description:"Show additional options"},t.default.createElement("div",{className:"icon-container icon-container-square"},t.default.createElement("svg",{focusable:"false",viewBox:"0 0 512 512"},t.default.createElement("path",{fill:"currentColor",d:"M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"})))),t.default.createElement(Xt,{className:"range-selection-history",selected:!1,onClick:()=>e.previousBounds(),disabled:!d},t.default.createElement("div",{className:"icon-container"},t.default.createElement("svg",{focusable:"false",viewBox:"0 0 256 512"},t.default.createElement("path",{fill:"currentColor",d:"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z"})))),t.default.createElement(Xt,{className:"range-selection-history",selected:!1,onClick:()=>e.nextBounds(),disabled:!g},t.default.createElement("div",{className:"icon-container"},t.default.createElement("svg",{focusable:"false",viewBox:"0 0 256 512"},t.default.createElement("path",{fill:"currentColor",d:"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"})))),n.map((({label:n,calculator:r,datesOnly:i},a)=>t.default.createElement(Mt,{key:a,stateController:e,currentBoundCalculator:c,boundCalculator:r,disabled:i&&!h},n))),!p.has("1m")&&!r&&t.default.createElement(Mt,{stateController:e,currentBoundCalculator:c,boundCalculator:Ye.lastMinute,disabled:!h},"1m"),!p.has("10m")&&!r&&t.default.createElement(Mt,{stateController:e,currentBoundCalculator:c,boundCalculator:Ye.last10Minutes,disabled:!h},"10m"),!p.has("1h")&&!r&&t.default.createElement(Mt,{stateController:e,currentBoundCalculator:c,boundCalculator:Ye.lastHour,disabled:!h},"1h"),!p.has("1d")&&!r&&t.default.createElement(Mt,{stateController:e,currentBoundCalculator:c,boundCalculator:Ye.lastDay,disabled:!h},"1d"),t.default.createElement(Mt,{stateController:e,currentBoundCalculator:c,boundCalculator:Ye.all,disabled:!1},"All")))}$t.propTypes={stateController:s().instanceOf(Pe).isRequired,customBoundsSelectors:E.CustomBoundsSelectors.isRequired,customBoundsSelectorsOnly:s().bool,sidebarEnabled:s().bool};class Ot extends t.default.PureComponent{constructor(e){super(e),this.state={elementWidth:0,elementHeight:0,selectionBounds:{minX:0,maxX:0},globalBounds:{minX:0,maxX:0}},this.onMouseMove=this.onMouseMove.bind(this),this.stopDragging=this.stopDragging.bind(this),this.startScroll=this.startScroll.bind(this),this.startLeftDrag=this.startLeftDrag.bind(this),this.startRightDrag=this.startRightDrag.bind(this)}componentDidMount(){this._renderer=new Q({stateController:this.props.stateController,canvasElement:this.el,webgl:this.props.webgl,checkIntersection:this.props.checkIntersection}),this.props.stateController.rangeGraphRenderer=this._renderer,this._renderer.on("size_changed",(e=>{this.setState(e)})),this.setState({selectionBounds:this.props.stateController._selection,globalBounds:this.props.stateController._globalBounds}),this.props.stateController.on("selection_changed",(e=>{this.setState({selectionBounds:e})})),this.props.stateController.on("global_bounds_changed",(e=>{this.setState({globalBounds:e})}))}componentDidUpdate(e){e.draggingY!==this.props.draggingY&&this._renderer.resize()}componentWillUnmount(){this._renderer.dispose(),this._renderer=null}onMouseMove(e){if(!this._dragType)return;let t;const n=this.el.getBoundingClientRect().left;this.setState((({selectionBounds:r,globalBounds:i,elementWidth:a})=>{let o=(e.clientX-n)/a;o=Math.max(o,0),o=Math.min(o,1);let s=o*(i.maxX-i.minX)+i.minX;if("scroll"===this._dragType){const e=r.maxX-r.minX;let n=s-e*this._scrollAnchorPercentage,a=s+e*(1-this._scrollAnchorPercentage);return n<i.minX&&(n=i.minX,a=n+e),a>i.maxX&&(a=i.maxX,n=a-e),t=()=>({minX:n,maxX:a}),{selectionBounds:Object.assign({},r,{minX:n,maxX:a})}}if("left"===this._dragType){s>r.maxX&&(s=r.maxX);const e=i.maxX===r.maxX;return t=()=>e?{minX:s}:{minX:s,maxX:r.maxX},{selectionBounds:Object.assign({},r,{minX:s})}}if("right"===this._dragType){s<r.minX&&(s=r.minX);const e=i.minX===r.minX;return t=()=>e?{maxX:s}:{minX:r.minX,maxX:s},{selectionBounds:Object.assign({},r,{maxX:s})}}}),(()=>{t&&(t.debounceHistory=!0,this.props.stateController.boundCalculator=t)}))}addListeners(){window.addEventListener("mousemove",this.onMouseMove),window.addEventListener("mouseup",this.stopDragging)}stopDragging(){this._dragType=null,window.removeEventListener("mousemove",this.onMouseMove),window.removeEventListener("mouseup",this.stopDragging)}startScroll(e){this._dragType="scroll";const{selectionBounds:t,globalBounds:n,elementWidth:r}=this.state,i=this.el.getBoundingClientRect().left,a=e.clientX-i,o=(t.minX-n.minX)/(n.maxX-n.minX)*r||0,s=(t.maxX-n.minX)/(n.maxX-n.minX)*r||0;this._scrollAnchorPercentage=(a-o)/(s-o),this.addListeners()}startLeftDrag(){this._dragType="left",this.addListeners()}startRightDrag(){this._dragType="right",this.addListeners()}render(){const{globalBounds:e,selectionBounds:n,elementWidth:r,elementHeight:i}=this.state;let a,o=Math.min(Math.max((n.minX-e.minX)/(e.maxX-e.minX),0),1)*r||0,s=Math.min(Math.max((n.maxX-e.minX)/(e.maxX-e.minX),0),1)*r||0;return(isNaN(o)||!isFinite(o)||n.maxX<n.minX)&&(o=0),(isNaN(s)||!isFinite(s)||n.maxX<n.minX)&&(s=0),n.dates&&this.props.markDates&&(a=wt({min:e.minX,max:e.maxX,totalSize:r,precision:"day",dates:n.dates,formatter:ae,expectedLabelSize:30,labelPadding:5,formatOptions:{justMonthAndDay:!0,unitOverride:"day",timeZone:this.props.timeZone},skipFirst:!0,skipLast:!0})),t.default.createElement("div",{className:"range-selection-graph"},t.default.createElement("div",{className:"graph-body graph-body-secondary"},t.default.createElement("canvas",{ref:e=>this.el=e}),t.default.createElement("svg",null,t.default.createElement("g",null,t.default.createElement("rect",{x:0,y:i,width:r,height:14,className:"selection-bar-track"}),a&&a.map((({pixelValue:e,label:n,size:r,position:a},o)=>{if(isNaN(e))return null;const s=["axis-item",`axis-item-${r}`,`axis-item-${a}`];return t.default.createElement("g",{key:o,className:s.join(" ")},t.default.createElement("path",{d:`M${e},0 v${i}`}),t.default.createElement("text",{x:e+3,y:i},n))})),t.default.createElement("rect",{x:o,y:i,width:s-o,height:14,className:"selection-bar",onMouseDown:this.startScroll}),t.default.createElement("path",{d:"M -3 3.5 L -3 9.333333333333334 M 0 3.5 L 0 9.333333333333334 M 3 3.5 L 3 9.333333333333334",className:"selection-bar-rifles",transform:`translate(${o+(s-o)/2},${i})`,onMouseDown:this.startScroll})),t.default.createElement("g",null,t.default.createElement("rect",{x:o,y:0,width:s-o,height:i,className:"target-selection",onMouseDown:this.startScroll}),t.default.createElement("rect",{x:o,y:0,width:s-o,height:i+14,className:"target-selection-outline"})),t.default.createElement("g",null,t.default.createElement("path",{d:"M -4.5 0.5 L 3.5 0.5 L 3.5 15.5 L -4.5 15.5 L -4.5 0.5 M -1.5 4 L -1.5 12 M 0.5 4 L 0.5 12",className:"selection-bar-handle",transform:`translate(${o},${(i-15)/2})`,onMouseDown:this.startLeftDrag})),t.default.createElement("g",null,t.default.createElement("path",{d:"M -4.5 0.5 L 3.5 0.5 L 3.5 15.5 L -4.5 15.5 L -4.5 0.5 M -1.5 4 L -1.5 12 M 0.5 4 L 0.5 12",className:"selection-bar-handle",transform:`translate(${s},${(i-15)/2})`,onMouseDown:this.startRightDrag}))),this.props.verticalLines&&t.default.createElement(rt,{stateController:this.props.stateController,verticalLines:this.props.verticalLines,isRangeGraph:!0,bounds:e,elementHeight:i,elementWidth:r})))}}Ot.defaultProps={width:3,shadowColor:"transparent"},Ot.propTypes={stateController:s().instanceOf(Pe).isRequired,webgl:s().bool,draggingY:s().bool,checkIntersection:s().bool,markDates:s().bool,timeZone:s().string,verticalLines:E.VerticalLines};const Lt=t.default.memo(Gt);function Gt({series:e,i:n,style:r,onMouseDown:i,theme:a,stateController:o,highlighted:s}){const l=k(e.color,n,e.multigrapherSeriesIndex);r="day"===a?Object.assign({},r,{backgroundColor:l}):Object.assign({},r,{color:l});const A=["series-key-item"];s&&A.push("series-key-item-highlighted");const h=Te(e,n);return t.default.createElement("div",{className:A.join(" "),style:r,onMouseDown:i,onMouseOver:()=>o.setHighlightedSeries(n),onMouseOut:()=>o.setHighlightedSeries(null),onClick:()=>o.registerSeriesClick(n)},h)}Gt.propTypes={series:E.SingleSeries.isRequired,stateController:s().instanceOf(Pe),i:s().number.isRequired,style:s().object,onMouseDown:s().func,theme:s().string.isRequired,highlighted:s().bool};class Wt extends t.default.PureComponent{constructor(e){super(e),this.state={showingLabelInput:!1},this.toggleLabelInputShowing=this.toggleLabelInputShowing.bind(this)}toggleLabelInputShowing(){this.setState((({showingLabelInput:e})=>({showingLabelInput:!e})))}render(){const{children:e,stateController:n,axisIndex:r,scale:i,label:a,grapherID:o}=this.props,{showingLabelInput:s}=this.state;return t.default.createElement("div",{className:"series-key-axis-container"+(s?" series-key-axis-container-showing-label":""),"data-axis-index":r,"data-grapher-id":o},t.default.createElement("div",{className:"scale-label",onClick:()=>n.toggleScale({axisIndex:r})},i.slice(0,s?6:3)),t.default.createElement("div",{className:"series-key-axis-container-body"},t.default.createElement("div",null,e,t.default.createElement("svg",{className:"label-input-toggler",viewBox:"0 0 512 512",onClick:this.toggleLabelInputShowing},t.default.createElement("path",{d:"M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"}))),t.default.createElement("div",{className:"series-key-axis-label-container"},t.default.createElement("input",{onChange:e=>n.setLabel({axisIndex:r,label:e.target.value}),placeholder:"Enter label",value:a||""}))))}}Wt.propTypes={stateController:s().instanceOf(Pe).isRequired,children:s().node.isRequired,axisIndex:s().number.isRequired,scale:s().string.isRequired,label:s().string,grapherID:s().string};const Nt=t.default.memo(qt);function qt({stateController:e,theme:n,draggingY:r,grapherID:i,dragPositionYOffset:a=0}){const o=$e(e),[s,l]=(0,t.useState)(null),[A,h]=(0,t.useState)({x:0,y:0}),c=Oe(e),d=(0,t.useRef)(null),[g,p]=(0,t.useState)(5*o.map((({name:e,yKey:t},n)=>(e||t||n).toString().length)).reduce(((e,t)=>e+t),0));let u;(0,t.useEffect)((()=>{d.current&&(cancelAnimationFrame(u),u=requestAnimationFrame((()=>{if(!d.current)return;const e=[...d.current.querySelectorAll(".series-key-axis-container")].map((e=>e.clientWidth)).reduce(((e,t)=>e+t),0);p(e)})))}),[o,d.current]);const m=function({stateController:e,keyWidth:t}){const n=Le(e),r=Ge(e),i=je(e);let a=se*n;n>0&&(a+=5),a+=250,i&&(a+=70);let o,s=se*r;r>0&&(s+=5),s=Math.max(a,s),a=Math.max(a,s);const{elementWidth:l}=Ie(e);return l-s-a<t&&(s=0,a=0,o=10),{marginRight:a,marginLeft:s,marginBottom:o}}({stateController:e,keyWidth:g}),C=ze(e),x=function(e){return Fe(e,"always_tooltipped_changed",e.alwaysTooltipped)}(e);return t.default.createElement("div",{className:"series-key",style:m,ref:d},r&&t.default.createElement("div",{className:"series-key-axis-container","data-axis-index":"new-left","data-grapher-id":i}),C.map(((r,a)=>!r.series.length&&C.length>1?null:t.default.createElement(Wt,{key:a,label:r.label,axisIndex:r.axisIndex,scale:r.scale,stateController:e,grapherID:i},r.series.map((r=>r.hideFromKey?null:t.default.createElement(Lt,{key:r.index,series:r,i:r.index,onMouseDown:(t,n)=>((t,n)=>{let r=t.target;for(;r&&"series-key"!==r.className;)r=r.parentNode;const i=t.target.getBoundingClientRect().left;let a=r.getBoundingClientRect().left,o=r.style.marginLeft;const s=t.clientX,A=t.clientY,c=t.clientX,d=t.clientY;l(n),h({x:t.clientX-s+(i-a)-2,y:t.clientY-A+1});const g=e=>{r.style.marginLeft!==o&&(a=r.getBoundingClientRect().left,o=r.style.marginLeft),h({x:e.clientX-s+(i-a)-2,y:e.clientY-A+1})},p=t=>{window.removeEventListener("mousemove",g),window.removeEventListener("mouseup",p);let r=t.target;for(;r&&!(r.dataset||{}).axisIndex&&!(r.dataset||{}).grapherId;)r=r.parentNode;l(null),e.finalizeDrag(n,r&&(r.dataset||{}).axisIndex,r&&(r.dataset||{}).grapherId),t.clientX===c&&t.clientY===d&&e.toggleAlwaysTooltipped(n,t.shiftKey)};window.addEventListener("mousemove",g),window.addEventListener("mouseup",p),e.markDragStart()})(t,r),theme:n,stateController:e,highlighted:c===r.index||x.has(r)})))))),r&&t.default.createElement("div",{className:"series-key-axis-container","data-axis-index":"new-right","data-grapher-id":i}),s&&t.default.createElement(Lt,{style:{left:A.x,top:A.y-a,position:"absolute",pointerEvents:"none",zIndex:1},series:s,i:s.index,theme:n,stateController:e}))}qt.propTypes={stateController:s().instanceOf(Pe).isRequired,theme:s().string.isRequired,draggingY:s().bool.isRequired,grapherID:s().string,dragPositionYOffset:s().number};const Ut=t.default.memo(Ht);function Ht({title:e}){return t.default.createElement("div",{className:"grapher-title"},e)}Ht.propTypes={title:s().string.isRequired};class jt extends t.default.PureComponent{constructor(e){super(e),this.onChange=this.onChange.bind(this)}onChange(e){setTimeout((()=>{this.props.stateController.setShowing(this.props.singleSeries,e.target.checked)}))}render(){const{singleSeries:e}=this.props,n=k(e.color,e.index,e.multigrapherSeriesIndex);let r=e.name||e.yKey;return r||(r=e.index),t.default.createElement("div",{className:"series-toggle"},t.default.createElement("label",null,t.default.createElement("input",{type:"checkbox",defaultChecked:!e.hidden,ref:e=>e&&e.addEventListener("change",this.onChange)}),t.default.createElement("span",{className:"checkmark",style:{background:n,borderColor:n}}),r))}}function Kt({stateController:e}){const n=$e(e);return t.default.createElement("div",{className:"grapher-sidebar"},n.map(((n,r)=>t.default.createElement(jt,{key:r,singleSeries:n,stateController:e}))))}jt.propTypes={singleSeries:E.SingleSeries.isRequired,stateController:s().instanceOf(Pe).isRequired},Kt.propTypes={stateController:s().instanceOf(Pe).isRequired};class Vt{constructor({syncBounds:e=!0,syncTooltips:t=!0,syncDragState:n=!1}={}){this._stateControllers=new Set,this._syncBounds=e,this._syncTooltips=t,this._syncDragState=n}add(e){this._stateControllers.add(e),this._syncBounds&&this.syncBounds(e),this._syncTooltips&&this.syncTooltips(e),this._syncDragState&&this.syncDragState(e)}remove(e){this._stateControllers.delete(e)}syncDragState(e){e.on("dragging_y_changed",(t=>{for(let n of this._stateControllers)e!==n&&(t?n.markDragStart():n.finalizeDrag(null,null))}))}syncBounds(e){e.on("bound_calculator_changed",(t=>{for(let n of this._stateControllers)e!==n&&(n.boundCalculator=t)}))}syncTooltips(e){e.on("tooltip_state_changed",((t,n)=>{if(this._tooltipIgnoreState===n)return;const r=0===t.unsavedTooltipsCount||!t.mousePresent||"onShift"===this._syncTooltips&&!e.shiftKeyPressedOnMove;r&&(this._tooltipIgnoreState=Math.random());for(let n of this._stateControllers)e!==n&&(r?n.showOnlySavedTooltips(this._tooltipIgnoreState):n.setTooltipMousePosition({mouseX:t.mouseX,mouseY:t.mouseY,tooltipAllNext:!0,tooltipStateArg:this._tooltipIgnoreState}))}))}}function Jt(){return Jt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Jt.apply(this,arguments)}const Zt=t.default.memo(en),Qt={theme:"night",showAxes:!0,showRangeGraph:!0,showRangeSelectors:!0,showSeriesKey:!0,showTooltips:!0,boundsSelectionEnabled:!0,customBoundsSelectors:[],sidebarEnabled:!1,defaultShowAnnotations:!0,defaultShowOptions:!0};function en(e){e={...Qt,...e};const n=(0,t.useMemo)((()=>new Pe({grapherID:e.id,...e,...e.stateControllerInitialization})),[]);(0,t.useEffect)((()=>()=>{n.dispose()}),[n]),(0,t.useEffect)((()=>{e.exportStateController&&e.exportStateController(n)}),[n,e.exportStateController]),(0,t.useEffect)((()=>{n.timingFrameCount=e.timingFrameCount}),[n,e.timingFrameCount]),(0,t.useEffect)((()=>(e.onRenderTime&&n.on("render_time",e.onRenderTime),()=>{e.onRenderTime&&n.off("render_time",e.onRenderTime)})),[n,e.onRenderTime]),(0,t.useEffect)((()=>{n.setSeries(e.series)}),[n,e.series]),(0,t.useEffect)((()=>{n.theme=e.theme}),[n,e.theme]);const r=Qe(n),i=e.bigLabels||"export"===r,a=e.defaultLineWidth||("export"===r?3:void 0);(0,t.useEffect)((()=>{n.defaultLineWidth=a}),[n,a]),(0,t.useEffect)((()=>{n.percentile=e.percentile}),[n,e.percentile]),(0,t.useEffect)((()=>{n.customBoundsSelectors=e.customBoundsSelectors}),[n,e.customBoundsSelectors]),(0,t.useEffect)((()=>{n.annotations=e.annotations}),[n,e.annotations]),(0,t.useEffect)((()=>e.onAxisChange?(n.on("exported_axes_changed",e.onAxisChange),()=>{n.off("exported_axes_changed",e.onAxisChange)}):()=>{}),[n,e.onAxisChange]),(0,t.useEffect)((()=>{n.primaryRenderer.resize()}),[e.height]);const o=He(n),{styles:s,classNames:l}=function(e,{draggingY:t,theme:n}){const{fullscreen:r,height:i,width:a}=e,o=["grapher",`grapher-${n}`],s={};return t&&o.push("grapher-dragging-y"),r?(o.push("grapher-fullscreen"),o.push("grapher-fixed-height")):i&&(o.push("grapher-fixed-height"),s.height="number"==typeof i?i-20:`calc(${i} - 20px)`),a&&(s.width=a),{styles:s,classNames:o}}(e,{draggingY:o,theme:r}),A=We(n),h=Ne(n),c=Ve(n),d="boolean"==typeof e.showAxisColors?e.showAxisColors:"export"!==r,g="boolean"==typeof e.showGrid?e.showGrid:"export"!==r,p={stateController:n,showAxes:e.showAxes,showGrid:g,showSeriesKey:e.showSeriesKey,bodyHeight:e.bodyHeight,theme:r,grapherID:e.id,dragPositionYOffset:e.dragPositionYOffset,showAxisColors:d,bigLabels:i};return t.default.createElement("div",{className:l.join(" "),style:s,"data-grapher-id":e.id},e.title&&t.default.createElement(Ut,{title:e.title}),t.default.createElement("div",{className:"grapher-primary-container-outer"},c&&t.default.createElement(Kt,{stateController:n}),t.default.createElement("div",{className:"grapher-primary-container-body"},e.showSeriesKey&&t.default.createElement(Nt,{stateController:n,draggingY:o,theme:e.theme,grapherID:e.id,dragPositionYOffset:e.dragPositionYOffset}),e.showRangeSelectors&&t.default.createElement(zt,{stateController:n,customBoundsSelectors:e.customBoundsSelectors,customBoundsSelectorsOnly:e.customBoundsSelectorsOnly,sidebarEnabled:e.sidebarEnabled}),t.default.createElement("div",{className:"grapher-main-row"},o&&t.default.createElement("div",{className:"axis y-axis","data-axis-index":"new-left","data-grapher-id":e.id,style:{width:se,height:"number"==typeof e.bodyHeight?e.bodyHeight:void 0}}),h.map(((e,n)=>t.default.createElement(St,Jt({key:n,axis:e,sideIndex:h.length-n-1},p)))),t.default.createElement("div",{className:"central-container"},t.default.createElement(ot,{stateController:n,webgl:e.webgl,bodyHeight:e.bodyHeight,boundsSelectionEnabled:e.boundsSelectionEnabled,showTooltips:e.showTooltips,tooltipOptions:e.tooltipOptions,checkIntersection:e.checkIntersection,draggablePoints:e.draggablePoints,onPointDrag:e.onPointDrag,onDraggablePointsDoubleClick:e.onDraggablePointsDoubleClick,onPointClick:e.onPointClick,verticalLines:e.verticalLines,clockStyle:e.clockStyle,timeZone:e.timeZone}),t.default.createElement(vt,{showGrid:g,showAxes:e.showAxes,stateController:n,bigLabels:i,xTickUnit:e.xTickUnit,clockStyle:e.clockStyle,timeZone:e.timeZone,integersOnly:e.xAxisIntegersOnly,formatXAxisLabel:e.formatXAxisLabel}),e.showRangeGraph&&t.default.createElement("div",{className:"range-graph-container"},t.default.createElement(Ot,{stateController:n,webgl:e.webgl,checkIntersection:e.checkIntersection,markDates:e.markRangeGraphDates,timeZone:e.timeZone,verticalLines:e.verticalLines}))),A.map(((e,n)=>t.default.createElement(St,Jt({key:n,axis:e,sideIndex:n},p)))),o&&t.default.createElement("div",{className:"axis y-axis","data-axis-index":"new-right","data-grapher-id":e.id,style:{width:se,height:"number"==typeof e.bodyHeight?e.bodyHeight:void 0}})))))}en.propTypes={series:E.Series.isRequired,webgl:s().bool,requireWASM:s().bool,checkIntersection:s().bool,onAxisChange:s().func,onRenderTime:s().func,exportStateController:s().func,timingFrameCount:s().number,stateControllerInitialization:s().object,syncPool:s().instanceOf(Vt),id:s().string,dragPositionYOffset:s().number,theme:s().oneOf(["day","night","export"]),title:s().string,fullscreen:s().bool,bodyHeight:s().number,height:s().number,width:s().number,showAxes:s().bool,showRangeGraph:s().bool,showRangeSelectors:s().bool,showSeriesKey:s().bool,showTooltips:s().bool,showGrid:s().bool,showAxisColors:s().bool,bigLabels:s().bool,xTickUnit:s().oneOf(["year"]),formatXAxisLabel:s().func,xAxisIntegersOnly:s().bool,clockStyle:s().oneOf(["12h","24h"]),timeZone:s().string,markRangeGraphDates:s().bool,boundsSelectionEnabled:s().bool,sidebarEnabled:s().bool,percentile:s().number,defaultShowOptions:s().bool,defaultShowIndividualPoints:s().bool,defaultShowSidebar:s().bool,defaultShowAnnotations:s().bool,defaultLineWidth:s().number,tooltipOptions:E.TooltipOptions,customBoundsSelectors:E.CustomBoundsSelectors,customBoundsSelectorsOnly:s().bool,defaultBoundsCalculator:s().string,annotations:E.Annotations,draggablePoints:E.DraggablePoints,onPointDrag:s().func,onDraggablePointsDoubleClick:s().func,verticalLines:E.VerticalLines,onPointClick:s().func};class tn extends N{constructor({id:e}){super(),this._id=e,this._multiSeries=[],this._seriesToGraphIndices=new Map,this._graphIndicesToSeries=new Map,this._modifiedSeries=new Map,this._originalSeriesByMultigrapherIndex=new Map,this._stateControllers=new Set,this._prevSeries=[],this._dataCache=new Map,this._subscriptions=new Map,this._draggingY=!1,this.on("multi_series_changed",(()=>{for(let e of this._stateControllers)e._multiSeries=this._multiSeries}))}setSeries(e){if(this._prevSeries.length===e.length){let t=!1;for(let n=0;n<e.length;n++)if(e[n]!==this._prevSeries[n]){t=!0;break}if(!t)return}this._prevSeries=e;const t=new Set,n=new Set(e);for(let n of e){let e=n.graph||0;this._seriesToGraphIndices.has(n)&&(e=this._seriesToGraphIndices.get(n)),t.add(e);let r=this._graphIndicesToSeries.get(e);r||(r=new Set,this._graphIndicesToSeries.set(e,r)),r.add(n)}const r=[...t].sort();this._multiSeries=[];let i=0;for(let e of r){const t=[];for(let r of this._graphIndicesToSeries.get(e)){if(!n.has(r)){this._graphIndicesToSeries.get(e).delete(r);continue}if(this._modifiedSeries.has(r)){i++,t.push(this._modifiedSeries.get(r));continue}const a=k(r.color,i),o=Te(r,i),s={...r,multigrapherSeriesIndex:i,multigrapherGraphIndex:e,color:a,name:o};this._modifiedSeries.set(r,s),this._originalSeriesByMultigrapherIndex.set(i,r),i++,t.push(s)}this._multiSeries.push(t)}this._nextMultigrapherSeriesIndex?this._nextMultigrapherSeriesIndex=this._nextMultigrapherSeriesIndex-this._multiSeriesCount+i:this._nextMultigrapherSeriesIndex=i,this._multiSeriesCount=i,this.emit("multi_series_changed",this.multiSeries)}registerStateController(e){this._stateControllers.has(e)||(this._stateControllers.add(e),e._multigraphStateController=this,e._multiSeries=this._multiSeries,e.on("dragging_y_finalized",(({grapherID:t,axisIndex:n,draggedSeries:r}={})=>{if(t===e.grapherID)return;const[i,a,o]=t.split("-");"multigrapher"===i&&a===this._id&&setTimeout((()=>{this.moveSeries({axisIndex:n,draggedSeries:r,graphIndex:o})}))})),e.on("dragging_y_changed",(e=>{e!==this._draggingY&&(this._draggingY=e,this.emit("dragging_y_changed",this._draggingY))})),e.on("observable_modified",(t=>{for(let n of this._stateControllers)e!==n&&n.markObservableModified(t)})),e.on("dispose",(()=>{this._stateControllers.delete(e)})))}moveSeries({axisIndex:e,draggedSeries:t,graphIndex:n}){const r=this.graphCount,i=this._originalSeriesByMultigrapherIndex.get(t.multigrapherSeriesIndex),a=this._modifiedSeries.get(i);this._multiSeries[a.multigrapherGraphIndex].splice(this._multiSeries[a.multigrapherGraphIndex].indexOf(a),1),this._multiSeries[a.multigrapherGraphIndex]=[...this._multiSeries[a.multigrapherGraphIndex]],a.multigrapherGraphIndex="top"===n?this._createGraphAtTop():"bottom"===n?this._createGraphAtBottom():parseInt(n),a.axisIndex=e,delete a.axis,this._multiSeries[a.multigrapherGraphIndex]=[...this._multiSeries[a.multigrapherGraphIndex],a],this._multiSeries=[...this._multiSeries];for(let e=0;e<this._multiSeries.length;e++){const t=this._multiSeries[e].map((({multigrapherSeriesIndex:e})=>this._originalSeriesByMultigrapherIndex.get(e)));this._graphIndicesToSeries.set(e,new Set(t));for(let n of t)this._seriesToGraphIndices.set(n,e)}this.emit("multi_series_changed",this.multiSeries),this.emit("graph_count_changed",this.graphCount,r)}_createGraphAtTop(){let e=null;for(let t=0;t<this._multiSeries.length&&0===this._multiSeries[t].length;t++)e=t;if(null!==e)return e;this._multiSeries=[[],...this._multiSeries];for(let e=0;e<this._multiSeries.length;e++)if(this._multiSeries[e].length){this._multiSeries[e]=[...this._multiSeries[e]];for(let t of this._multiSeries[e])t.multigrapherGraphIndex=e}return 0}_createGraphAtBottom(){let e=null;for(let t=this._multiSeries.length-1;t>=0&&0===this._multiSeries[t].length;t--)e=t;return null!==e?e:(this._multiSeries=[...this._multiSeries,[]],this._multiSeries.length-1)}get multiSeries(){return this._multiSeries.filter((e=>e.length))}get series(){return[...this._stateControllers].map((e=>e.series)).flat()}get graphCount(){return this.multiSeries.length}get draggingY(){return this._draggingY}dispose(){this.clearListeners();for(let e of this._subscriptions.values())e.unsubscribe();this._subscriptions.clear()}get stateControllerInitialization(){return{sharedDataCache:this._dataCache,sharedSubscriptions:this._subscriptions}}incrementMultigrapherSeriesIndex(){const e=this._nextMultigrapherSeriesIndex;return this._nextMultigrapherSeriesIndex++,e}}function nn(){return nn=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},nn.apply(this,arguments)}const rn=t.default.memo(an);function an(e){const n=(0,t.useMemo)((()=>Math.random().toString(36).slice(2)),[]),r=(0,t.useMemo)((()=>new tn({id:n,...e})),[]),i=function(e){return Fe(e,"multi_series_changed",e.multiSeries)}(r),a=(0,t.useMemo)((()=>new Vt({syncBounds:e.syncBounds,syncTooltips:e.syncTooltips,syncDragState:!0})),[]),o=(0,t.useMemo)((()=>r.registerStateController.bind(r)),[r]);(0,t.useEffect)((()=>()=>{r.dispose()}),[r]),(0,t.useEffect)((()=>{e.exportStateController&&e.exportStateController(r)}),[r,e.exportStateController]),(0,t.useEffect)((()=>{r.setSeries(e.series)}),[r,e.series]),(0,t.useEffect)((()=>e.onMultiseriesChange?(r.on("multi_series_changed",e.onMultiseriesChange),()=>{r.off("multi_series_changed",e.onMultiseriesChange)}):()=>{}),[r,e.onMultiseriesChange]);const s=He(r);return t.default.createElement("div",{className:"multigrapher"},s&&e.newUpperEnabled&&t.default.createElement("div",{className:`new-grapher grapher-${e.theme}`,"data-grapher-id":`multigrapher-${n}-top`},"New grapher"),i.map(((i,s)=>t.default.createElement(Zt,nn({key:s},e,{syncPool:a,stateControllerInitialization:r.stateControllerInitialization,series:i,id:`multigrapher-${n}-${s}`,dragPositionYOffset:e.newUpperEnabled?38:0,exportStateController:o})))),s&&t.default.createElement("div",{className:`new-grapher grapher-${e.theme}`,"data-grapher-id":`multigrapher-${n}-bottom`},"New grapher"))}an.defaultProps={theme:"night"},an.propTypes=Object.assign({},Zt.propTypes,{syncBounds:s().bool,syncTooltips:s().bool,newUpperEnabled:s().bool,onMultiseriesChange:s().func})})();var a=i.KG,o=i.tw,s=i.Ay;export{a as Grapher,o as MultiGrapher,s as default};
|
|
1
|
+
import*as e from"react";var t,n,r={557:(e,t,n)=>{n.d(t,{A:()=>s});var r=n(354),i=n.n(r),a=n(314),o=n.n(a)()(i());o.push([e.id,'.grapher-night{position:relative;background:linear-gradient(to bottom right, #2a2a2b, #3e3e40);padding:10px;font-family:sans-serif;font-size:12px;line-height:normal}.grapher-night *,.grapher-night :after,.grapher-night :before{box-sizing:content-box}.grapher-night .grapher-title{text-align:center;color:#fff;font-size:18px;margin-bottom:8px}.grapher-night .grapher-primary-container-outer{display:flex}.grapher-night .grapher-primary-container-outer .grapher-sidebar{background:linear-gradient(#111, transparent 75%, transparent 100%);color:#eee;padding:50px 6px 5px 10px;margin-left:-10px;margin-top:-10px;margin-bottom:-10px;overflow-y:auto;flex-shrink:0}.grapher-night .grapher-primary-container-outer .grapher-sidebar .series-toggle{white-space:nowrap}.grapher-night .grapher-primary-container-outer .grapher-sidebar .series-toggle+.series-toggle{margin-top:3px}.grapher-night .grapher-primary-container-outer .grapher-sidebar .series-toggle label{display:inline-block;position:relative;user-select:none}.grapher-night .grapher-primary-container-outer .grapher-sidebar .series-toggle input[type=checkbox]{opacity:0;cursor:pointer;height:0;width:0;margin-right:11px}.grapher-night .grapher-primary-container-outer .grapher-sidebar .series-toggle input:not(:checked)~.checkmark{background-color:rgba(0,0,0,0) !important}.grapher-night .grapher-primary-container-outer .grapher-sidebar .series-toggle input:checked~.checkmark:after{display:block}.grapher-night .grapher-primary-container-outer .grapher-sidebar .series-toggle .checkmark{position:absolute;top:1px;left:0;height:7px;width:7px;background-color:#eee;border:2px solid;border-radius:1px}.grapher-night .grapher-primary-container-outer .grapher-sidebar .series-toggle .checkmark:after{content:"";position:absolute;display:none;left:.5px;top:-1.5px;width:3px;height:6px;border:solid #fff;border-width:0 2px 2px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.grapher-night .grapher-primary-container-outer .grapher-primary-container-body{width:100%;padding-left:2px}.grapher-night .series-key{text-align:center;margin-bottom:-14px;position:relative}.grapher-night .series-key .scale-label{display:inline-block;background:#111;color:silver;transform:rotate(-90deg);width:24px;margin-left:-5px;vertical-align:top;margin-top:4px;padding-bottom:2px;cursor:pointer;user-select:none}.grapher-night .series-key .series-key-axis-container{display:inline-block;border:1px solid #111;min-width:18px;min-height:24px;vertical-align:top;white-space:nowrap}.grapher-night .series-key .series-key-axis-container+.series-key-axis-container{margin-left:4px}.grapher-night .series-key .series-key-axis-container.series-key-axis-container-showing-label .scale-label{width:46px;margin-top:15px;margin-left:-15px;margin-right:-12px}.grapher-night .series-key .series-key-axis-container.series-key-axis-container-showing-label .series-key-axis-label-container{display:block}.grapher-night .series-key .series-key-axis-container.series-key-axis-container-showing-label .label-input-toggler path{fill:#e0e0e3}.grapher-night .series-key .series-key-axis-container .series-key-axis-container-body{display:inline-block}.grapher-night .series-key .series-key-axis-container .series-key-axis-container-body>div{white-space:initial}.grapher-night .series-key .series-key-axis-container .series-key-axis-label-container{display:none}.grapher-night .series-key .series-key-axis-container .label-input-toggler{width:16px;cursor:pointer;display:inline-block;vertical-align:top;margin:4px 2px}.grapher-night .series-key .series-key-axis-container .label-input-toggler path{fill:#111}.grapher-night .series-key .series-key-axis-container .label-input-toggler:hover path{fill:#e0e0e3}.grapher-night .series-key .series-key-item{border:1px solid currentColor;padding:2px;margin:2px;display:inline-block;cursor:pointer;user-select:none;background:rgba(0,0,0,0)}.grapher-night .series-key .series-key-item+.series-key-item{margin-left:4px}.grapher-night .series-key .series-key-item.series-key-item-highlighted{box-shadow:0 0 4px silver}.grapher-night .range-selection{color:silver;user-select:none}.grapher-night .range-selection.range-not-dates{color:#aaa}.grapher-night .range-selection .range-buttons{text-align:right}.grapher-night .range-selection .range-buttons .options-bar{display:inline-block}.grapher-night .range-selection .range-buttons .option-tooltip{position:relative;display:inline-block;border-bottom:1px dotted #000}.grapher-night .range-selection .range-buttons .option-tooltip .option-tooltip-text{visibility:hidden;color:silver;background:#000;text-align:center;padding:5px 5px;border-radius:6px;position:absolute;z-index:1;border:1px solid #000;width:120px;margin-left:-65px;top:calc(100% + 7px);left:50%}.grapher-night .range-selection .range-buttons .option-tooltip:hover .option-tooltip-text{visibility:visible}.grapher-night .range-selection .range-buttons .option-tooltip .option-tooltip-text::after{content:" ";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:rgba(0,0,0,0) rgba(0,0,0,0) #000 rgba(0,0,0,0)}.grapher-night .range-selection .range-buttons .range-button{display:inline-block;cursor:pointer;padding:4px 8px;margin-left:6px;border-radius:2px;background:#505053}.grapher-night .range-selection .range-buttons .range-button.range-button-selected{color:silver;background:#000}.grapher-night .range-selection .range-buttons .range-button.range-button-disabled,.grapher-night .range-selection .range-buttons .range-button.range-button-selected.range-button-disabled{cursor:not-allowed;color:#aaa;background:#7a7a7a}.grapher-night .range-selection .range-buttons .range-button .icon-container{position:relative;width:0}.grapher-night .range-selection .range-buttons .range-button .icon-container.icon-container-narrow svg{left:-3px}.grapher-night .range-selection .range-buttons .range-button .icon-container.icon-container-square{width:5px}.grapher-night .range-selection .range-buttons .range-button .icon-container.icon-container-square svg{left:-5px}.grapher-night .range-selection .range-buttons .range-button .icon-container.icon-container-448{width:3px}.grapher-night .range-selection .range-buttons .range-button .icon-container.icon-container-448 svg{left:-5px}.grapher-night .range-selection .range-buttons .range-button .icon-container:before{content:"A";opacity:0}.grapher-night .range-selection .range-buttons .range-button .icon-container svg{height:15px;position:absolute;top:-1px;left:-4px}.grapher-night .range-selection .range-buttons .range-selection-history+.range-selection-history{margin-right:8px;margin-left:4px}.grapher-night .range-selection .range-buttons .percentile-button>div{display:inline-block}.grapher-night .range-selection .range-buttons .percentile-button input{background:rgba(0,0,0,0);border:1px solid #505053;margin:2px 8px 2px 0;color:#e0e0e3;padding:1px 2px;width:20px;font-size:11px;-moz-appearance:textfield}.grapher-night .range-selection .range-buttons .percentile-button input:focus{outline:none;border-color:#e0e0e3}.grapher-night .range-selection .range-buttons .percentile-button input::-webkit-outer-spin-button,.grapher-night .range-selection .range-buttons .percentile-button input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.grapher-night .range-selection .range-buttons .percentile-button .icon-container.icon-container-narrow svg{height:12px;top:1px;left:-5px}.grapher-night .range-selection .range-buttons .showing-options-button{margin-right:8px}.grapher-night .grapher-main-row{display:flex}.grapher-night .grapher-main-row .central-container{width:100%}.grapher-night .range-graph-container{display:flex}.grapher-night .graph-body{width:100%;height:400px;position:relative}.grapher-night .graph-body canvas{width:100%;height:100%}.grapher-night .graph-body .grapher-tooltip,.grapher-night .graph-body .grapher-draggable-points,.grapher-night .graph-body .grapher-vertical-lines{position:absolute;top:0;left:0;right:0;z-index:20}.grapher-night .graph-body .grapher-tooltip>svg,.grapher-night .graph-body .grapher-draggable-points>svg,.grapher-night .graph-body .grapher-vertical-lines>svg{position:absolute;overflow:visible;left:0}.grapher-night .graph-body .grapher-vertical-lines{pointer-events:none;user-select:none}.grapher-night .graph-body .grapher-tooltip .tooltip-item path{fill:rgba(0,0,0,.6)}.grapher-night .graph-body .grapher-tooltip .tooltip-item text{fill:#f0f0f0;dominant-baseline:hanging;text-anchor:start}.grapher-night .graph-body .grapher-tooltip .tooltip-item.tooltip-item-fixed path{fill:#000}.grapher-night .graph-body .grapher-tooltip .line{position:absolute;height:400px;border-left:1px solid #ccc}.grapher-night .graph-body .grapher-tooltip .custom-tooltip-container{position:absolute}.grapher-night .graph-body .grapher-context-menu{position:absolute;top:0;left:0}.grapher-night .graph-body .grapher-context-menu .menu-item .menu-text{user-select:all;position:absolute;top:0;background:rgba(0,0,0,.6);border:1px solid rgba(255,255,255,.3);color:#f0f0f0;padding:2px 4px;max-width:max-content;width:200px}.grapher-night .graph-body .grapher-draggable-points circle{cursor:pointer}.grapher-night .graph-body .grapher-vertical-lines line{stroke:#ccc}.grapher-night .graph-body .grapher-vertical-lines polygon{fill:#ccc}.grapher-night .graph-body .grapher-annotations{position:absolute;top:0;pointer-events:none;user-select:none;z-index:10}.grapher-night .graph-body .grapher-annotations .grapher-annotation{position:absolute}.grapher-night .graph-body .grapher-annotations .grapher-annotation .annotation-marker{display:inline-block;background:rgba(255,255,255,.3)}.grapher-night .graph-body .grapher-annotations .grapher-annotation.grapher-annotation-range .annotation-range-marker{display:inline-block;background-color:rgba(128,128,128,.2);background-image:repeating-linear-gradient(53deg, #626266, #626266 1px, rgba(255, 255, 255, 0.1) 1px, rgba(255, 255, 255, 0.1) 4px);background-size:40px 40px;border-right:1px solid #fff;border-left:1px solid #fff}.grapher-night .graph-body .grapher-annotations .grapher-annotation .annotation-text{position:absolute;background:rgba(0,0,0,.6);border:1px solid rgba(255,255,255,.3);color:#f0f0f0;padding:2px 4px;white-space:nowrap;font-size:10px;z-index:10}.grapher-night .graph-body .bounds-selection{position:absolute;background:rgba(255,255,255,.1)}.grapher-night .axis{overflow:visible;user-select:none}.grapher-night .axis.x-axis{width:1px;height:20px;display:block}.grapher-night .axis.x-axis .axis-item text{text-anchor:middle}.grapher-night .axis.x-axis .axis-item.axis-item-first text{text-anchor:start}.grapher-night .axis.x-axis .axis-item.axis-item-last text{text-anchor:end}.grapher-night .axis.y-axis{height:400px}.grapher-night .axis.y-axis .axis-item text{text-anchor:end;alignment-baseline:middle}.grapher-night .axis.y-axis .y-axis-label{text-anchor:middle;fill:#e0e0e3}.grapher-night .axis.y-axis .y-axis-label.y-axis-big-label{font-size:18px}.grapher-night .axis.y-axis .series-color-box{cursor:pointer}.grapher-night .axis.y-axis.y-axis-right .axis-item text{text-anchor:start}.grapher-night .axis .axis-line{stroke:silver;stroke-width:2px}.grapher-night .axis .axis-line-shadow{stroke:#505053;stroke-width:1px}.grapher-night .axis .axis-item path{stroke:#505053;stroke-width:1px}.grapher-night .axis .axis-item text{fill:#e0e0e3;font-size:8px}.grapher-night .axis .axis-item.axis-item-major .axis-tick{stroke-width:2px}.grapher-night .axis .axis-item.axis-item-big-labels text{font-size:16px}.grapher-night .range-selection-graph{width:100%;padding-bottom:14px}.grapher-night .range-selection-graph .graph-body-secondary{height:50px}.grapher-night .range-selection-graph .graph-body-secondary svg{position:absolute;left:0;height:50px;width:100%;overflow:visible}.grapher-night .range-selection-graph .graph-body-secondary svg .target-selection{fill:rgba(255,255,255,.1);cursor:ew-resize}.grapher-night .range-selection-graph .graph-body-secondary svg .selection-bar{fill:#808083;cursor:ew-resize}.grapher-night .range-selection-graph .graph-body-secondary svg .selection-bar-track{fill:#303033}.grapher-night .range-selection-graph .graph-body-secondary svg .selection-bar-rifles{fill:none;stroke-width:1;stroke:#fff}.grapher-night .range-selection-graph .graph-body-secondary svg .selection-bar-handle{stroke:#aaa;stroke-width:1;fill:#666;cursor:ew-resize}.grapher-night .range-selection-graph .graph-body-secondary svg .target-selection-outline{stroke:#aaa;fill:none}.grapher-night .range-selection-graph .graph-body-secondary svg .axis-item text{fill:#9f9f9f;text-anchor:start;font-size:8px;user-select:none;dominant-baseline:text-after-edge}.grapher-night .range-selection-graph .graph-body-secondary svg .axis-item path{stroke:#505053;stroke-width:1px}.grapher-night input,.grapher-night textarea{background:rgba(0,0,0,0);border:1px solid #505053;margin:2px 0;color:#e0e0e3;padding:1px 2px;text-align:center}.grapher-night input:focus,.grapher-night textarea:focus{outline:none;border-color:#e0e0e3}.grapher-night.grapher-dragging-y .y-axis{border:2px dashed silver;margin:-2px;flex-shrink:0}.grapher-night.grapher-dragging-y .y-axis+.y-axis{border-left:none}.grapher-night.grapher-fullscreen{height:calc(100vh - 2*10px)}.grapher-night.grapher-fixed-height .grapher-primary-container-outer{height:100%}.grapher-night.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body{height:100%;display:flex;flex-direction:column}.grapher-night.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body .grapher-main-row{flex-grow:1}.grapher-night.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body .grapher-main-row .central-container{display:flex;flex-direction:column;height:100%}.grapher-night.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body .grapher-main-row .central-container>.graph-body{flex-grow:1;height:unset}.grapher-night.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body .grapher-main-row .axis.y-axis{height:calc(100% - 40px)}.grapher-night.new-grapher{height:auto;border:2px dashed silver;text-align:center;color:#ddd}.grapher-day{position:relative;background:linear-gradient(to bottom right, #FFF, #FFF);padding:10px;font-family:sans-serif;font-size:12px;line-height:normal}.grapher-day *,.grapher-day :after,.grapher-day :before{box-sizing:content-box}.grapher-day .grapher-title{text-align:center;color:#000;font-size:18px;margin-bottom:8px}.grapher-day .grapher-primary-container-outer{display:flex}.grapher-day .grapher-primary-container-outer .grapher-sidebar{background:linear-gradient(#EEE, transparent 75%, transparent 100%);color:#111;padding:50px 6px 5px 10px;margin-left:-10px;margin-top:-10px;margin-bottom:-10px;overflow-y:auto;flex-shrink:0}.grapher-day .grapher-primary-container-outer .grapher-sidebar .series-toggle{white-space:nowrap}.grapher-day .grapher-primary-container-outer .grapher-sidebar .series-toggle+.series-toggle{margin-top:3px}.grapher-day .grapher-primary-container-outer .grapher-sidebar .series-toggle label{display:inline-block;position:relative;user-select:none}.grapher-day .grapher-primary-container-outer .grapher-sidebar .series-toggle input[type=checkbox]{opacity:0;cursor:pointer;height:0;width:0;margin-right:11px}.grapher-day .grapher-primary-container-outer .grapher-sidebar .series-toggle input:not(:checked)~.checkmark{background-color:rgba(0,0,0,0) !important}.grapher-day .grapher-primary-container-outer .grapher-sidebar .series-toggle input:checked~.checkmark:after{display:block}.grapher-day .grapher-primary-container-outer .grapher-sidebar .series-toggle .checkmark{position:absolute;top:1px;left:0;height:7px;width:7px;background-color:#eee;border:2px solid;border-radius:1px}.grapher-day .grapher-primary-container-outer .grapher-sidebar .series-toggle .checkmark:after{content:"";position:absolute;display:none;left:.5px;top:-1.5px;width:3px;height:6px;border:solid #fff;border-width:0 2px 2px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.grapher-day .grapher-primary-container-outer .grapher-primary-container-body{width:100%;padding-left:2px}.grapher-day .series-key{text-align:center;margin-bottom:-14px;position:relative}.grapher-day .series-key .scale-label{display:inline-block;background:#b0b0b7;color:#000;transform:rotate(-90deg);width:24px;margin-left:-5px;vertical-align:top;margin-top:4px;padding-bottom:2px;cursor:pointer;user-select:none}.grapher-day .series-key .series-key-axis-container{display:inline-block;border:1px solid #b0b0b7;min-width:18px;min-height:24px;vertical-align:top;white-space:nowrap}.grapher-day .series-key .series-key-axis-container+.series-key-axis-container{margin-left:4px}.grapher-day .series-key .series-key-axis-container.series-key-axis-container-showing-label .scale-label{width:46px;margin-top:15px;margin-left:-15px;margin-right:-12px}.grapher-day .series-key .series-key-axis-container.series-key-axis-container-showing-label .series-key-axis-label-container{display:block}.grapher-day .series-key .series-key-axis-container.series-key-axis-container-showing-label .label-input-toggler path{fill:#505053}.grapher-day .series-key .series-key-axis-container .series-key-axis-container-body{display:inline-block}.grapher-day .series-key .series-key-axis-container .series-key-axis-container-body>div{white-space:initial}.grapher-day .series-key .series-key-axis-container .series-key-axis-label-container{display:none}.grapher-day .series-key .series-key-axis-container .label-input-toggler{width:16px;cursor:pointer;display:inline-block;vertical-align:top;margin:4px 2px}.grapher-day .series-key .series-key-axis-container .label-input-toggler path{fill:#b0b0b7}.grapher-day .series-key .series-key-axis-container .label-input-toggler:hover path{fill:#505053}.grapher-day .series-key .series-key-item{border:1px solid currentColor;padding:2px;margin:2px;display:inline-block;cursor:pointer;user-select:none}.grapher-day .series-key .series-key-item+.series-key-item{margin-left:4px}.grapher-day .series-key .series-key-item.series-key-item-highlighted{box-shadow:0 0 4px #000}.grapher-day .range-selection{color:#444;user-select:none}.grapher-day .range-selection.range-not-dates{color:#888}.grapher-day .range-selection .range-buttons{text-align:right}.grapher-day .range-selection .range-buttons .options-bar{display:inline-block}.grapher-day .range-selection .range-buttons .option-tooltip{position:relative;display:inline-block;border-bottom:1px dotted #000}.grapher-day .range-selection .range-buttons .option-tooltip .option-tooltip-text{visibility:hidden;color:#000;background:#fff;text-align:center;padding:5px 5px;border-radius:6px;position:absolute;z-index:1;border:1px solid #000;width:120px;margin-left:-65px;top:calc(100% + 7px);left:50%}.grapher-day .range-selection .range-buttons .option-tooltip:hover .option-tooltip-text{visibility:visible}.grapher-day .range-selection .range-buttons .option-tooltip .option-tooltip-text::after{content:" ";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:rgba(0,0,0,0) rgba(0,0,0,0) #000 rgba(0,0,0,0)}.grapher-day .range-selection .range-buttons .range-button{display:inline-block;cursor:pointer;padding:4px 8px;margin-left:4px;border-radius:2px;background:#fff;border:1px dotted silver}.grapher-day .range-selection .range-buttons .range-button.range-button-selected{color:#000;background:#fff;border:1px solid #000}.grapher-day .range-selection .range-buttons .range-button.range-button-disabled,.grapher-day .range-selection .range-buttons .range-button.range-button-selected.range-button-disabled{cursor:not-allowed;color:#888;background:#eee}.grapher-day .range-selection .range-buttons .range-button .icon-container{position:relative;width:0}.grapher-day .range-selection .range-buttons .range-button .icon-container.icon-container-narrow svg{left:-3px}.grapher-day .range-selection .range-buttons .range-button .icon-container.icon-container-square{width:5px}.grapher-day .range-selection .range-buttons .range-button .icon-container.icon-container-square svg{left:-5px}.grapher-day .range-selection .range-buttons .range-button .icon-container.icon-container-448{width:3px}.grapher-day .range-selection .range-buttons .range-button .icon-container.icon-container-448 svg{left:-5px}.grapher-day .range-selection .range-buttons .range-button .icon-container:before{content:"A";opacity:0}.grapher-day .range-selection .range-buttons .range-button .icon-container svg{height:15px;position:absolute;top:-1px;left:-4px}.grapher-day .range-selection .range-buttons .range-selection-history+.range-selection-history{margin-right:8px;margin-left:4px}.grapher-day .range-selection .range-buttons .percentile-button>div{display:inline-block}.grapher-day .range-selection .range-buttons .percentile-button input{background:rgba(0,0,0,0);border:1px solid #e0e0e3;margin:2px 8px 2px 0;color:#222;padding:1px 2px;width:20px;font-size:11px;-moz-appearance:textfield}.grapher-day .range-selection .range-buttons .percentile-button input:focus{outline:none;border-color:#505053}.grapher-day .range-selection .range-buttons .percentile-button input::-webkit-outer-spin-button,.grapher-day .range-selection .range-buttons .percentile-button input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.grapher-day .range-selection .range-buttons .percentile-button .icon-container.icon-container-narrow svg{height:12px;top:1px;left:-5px}.grapher-day .range-selection .range-buttons .showing-options-button{margin-right:8px}.grapher-day .grapher-main-row{display:flex}.grapher-day .grapher-main-row .central-container{width:100%}.grapher-day .range-graph-container{display:flex}.grapher-day .graph-body{width:100%;height:400px;position:relative}.grapher-day .graph-body canvas{width:100%;height:100%}.grapher-day .graph-body .grapher-tooltip,.grapher-day .graph-body .grapher-draggable-points,.grapher-day .graph-body .grapher-vertical-lines{position:absolute;top:0;left:0;right:0;z-index:20}.grapher-day .graph-body .grapher-tooltip>svg,.grapher-day .graph-body .grapher-draggable-points>svg,.grapher-day .graph-body .grapher-vertical-lines>svg{position:absolute;overflow:visible;left:0}.grapher-day .graph-body .grapher-vertical-lines{pointer-events:none;user-select:none}.grapher-day .graph-body .grapher-tooltip .tooltip-item path{fill:rgba(255,255,255,.6)}.grapher-day .graph-body .grapher-tooltip .tooltip-item text{fill:#0f0f0f;dominant-baseline:hanging;text-anchor:start}.grapher-day .graph-body .grapher-tooltip .tooltip-item.tooltip-item-fixed path{fill:#fff}.grapher-day .graph-body .grapher-tooltip .line{position:absolute;height:400px;border-left:1px solid #333}.grapher-day .graph-body .grapher-tooltip .custom-tooltip-container{position:absolute}.grapher-day .graph-body .grapher-context-menu{position:absolute;top:0;left:0}.grapher-day .graph-body .grapher-context-menu .menu-item .menu-text{user-select:all;position:absolute;top:0;background:rgba(255,255,255,.6);border:1px solid rgba(0,0,0,.3);color:#0f0f0f;padding:2px 4px;max-width:max-content;width:200px}.grapher-day .graph-body .grapher-draggable-points circle{cursor:pointer}.grapher-day .graph-body .grapher-vertical-lines line{stroke:#333}.grapher-day .graph-body .grapher-vertical-lines polygon{fill:#333}.grapher-day .graph-body .grapher-annotations{position:absolute;top:0;pointer-events:none;user-select:none;z-index:10}.grapher-day .graph-body .grapher-annotations .grapher-annotation{position:absolute}.grapher-day .graph-body .grapher-annotations .grapher-annotation .annotation-marker{display:inline-block;background:rgba(0,0,0,.3)}.grapher-day .graph-body .grapher-annotations .grapher-annotation.grapher-annotation-range .annotation-range-marker{display:inline-block;background-color:rgba(128,128,128,.2);background-image:repeating-linear-gradient(53deg, #626266, #626266 1px, rgba(255, 255, 255, 0.1) 1px, rgba(255, 255, 255, 0.1) 4px);background-size:40px 40px;border-right:1px solid #fff;border-left:1px solid #fff}.grapher-day .graph-body .grapher-annotations .grapher-annotation .annotation-text{position:absolute;background:rgba(255,255,255,.6);border:1px solid rgba(0,0,0,.3);color:#0f0f0f;padding:2px 4px;white-space:nowrap;font-size:10px;z-index:10}.grapher-day .graph-body .bounds-selection{position:absolute;background:rgba(0,0,0,.02)}.grapher-day .axis{overflow:visible;user-select:none}.grapher-day .axis.x-axis{width:1px;height:20px;display:block}.grapher-day .axis.x-axis .axis-item text{text-anchor:middle}.grapher-day .axis.x-axis .axis-item.axis-item-first text{text-anchor:start}.grapher-day .axis.x-axis .axis-item.axis-item-last text{text-anchor:end}.grapher-day .axis.y-axis{height:400px}.grapher-day .axis.y-axis .axis-item text{text-anchor:end;alignment-baseline:middle}.grapher-day .axis.y-axis .y-axis-label{text-anchor:middle;fill:#1f1f1c}.grapher-day .axis.y-axis .y-axis-label.y-axis-big-label{font-size:18px}.grapher-day .axis.y-axis .series-color-box{cursor:pointer}.grapher-day .axis.y-axis.y-axis-right .axis-item text{text-anchor:start}.grapher-day .axis .axis-line{stroke:#656565;stroke-width:2px}.grapher-day .axis .axis-line-shadow{stroke:#bfbfbf;stroke-width:1px}.grapher-day .axis .axis-item path{stroke:#bfbfbf;stroke-width:1px}.grapher-day .axis .axis-item text{fill:#1f1f1c;font-size:8px}.grapher-day .axis .axis-item.axis-item-major .axis-tick{stroke-width:2px}.grapher-day .axis .axis-item.axis-item-big-labels text{font-size:16px}.grapher-day .range-selection-graph{width:100%;padding-bottom:14px}.grapher-day .range-selection-graph .graph-body-secondary{height:50px}.grapher-day .range-selection-graph .graph-body-secondary svg{position:absolute;left:0;height:50px;width:100%;overflow:visible}.grapher-day .range-selection-graph .graph-body-secondary svg .target-selection{fill:rgba(0,0,0,.02);cursor:ew-resize}.grapher-day .range-selection-graph .graph-body-secondary svg .selection-bar{fill:#b0b0b7;cursor:ew-resize}.grapher-day .range-selection-graph .graph-body-secondary svg .selection-bar-track{fill:#eee}.grapher-day .range-selection-graph .graph-body-secondary svg .selection-bar-rifles{fill:none;stroke-width:1;stroke:#333}.grapher-day .range-selection-graph .graph-body-secondary svg .selection-bar-handle{stroke:#333;stroke-width:1;fill:#b0b0b7;cursor:ew-resize}.grapher-day .range-selection-graph .graph-body-secondary svg .target-selection-outline{stroke:#333;fill:none}.grapher-day .range-selection-graph .graph-body-secondary svg .axis-item text{fill:#9f9f9f;text-anchor:start;font-size:8px;user-select:none;dominant-baseline:text-after-edge}.grapher-day .range-selection-graph .graph-body-secondary svg .axis-item path{stroke:#bfbfbf;stroke-width:1px}.grapher-day input,.grapher-day textarea{background:rgba(0,0,0,0);border:1px solid #e0e0e3;margin:2px 0;color:#222;padding:1px 2px;text-align:center}.grapher-day input:focus,.grapher-day textarea:focus{outline:none;border-color:#505053}.grapher-day.grapher-dragging-y .y-axis{border:2px dashed silver;margin:-2px;flex-shrink:0}.grapher-day.grapher-dragging-y .y-axis+.y-axis{border-left:none}.grapher-day.grapher-fullscreen{height:calc(100vh - 2*10px)}.grapher-day.grapher-fixed-height .grapher-primary-container-outer{height:100%}.grapher-day.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body{height:100%;display:flex;flex-direction:column}.grapher-day.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body .grapher-main-row{flex-grow:1}.grapher-day.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body .grapher-main-row .central-container{display:flex;flex-direction:column;height:100%}.grapher-day.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body .grapher-main-row .central-container>.graph-body{flex-grow:1;height:unset}.grapher-day.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body .grapher-main-row .axis.y-axis{height:calc(100% - 40px)}.grapher-day.new-grapher{height:auto;border:2px dashed silver;text-align:center;color:#222}.grapher-export{position:relative;background:linear-gradient(to bottom right, #FFF, #FFF);padding:10px;font-family:sans-serif;font-size:12px;line-height:normal}.grapher-export *,.grapher-export :after,.grapher-export :before{box-sizing:content-box}.grapher-export .grapher-title{text-align:center;color:#000;font-size:18px;margin-bottom:8px}.grapher-export .grapher-primary-container-outer{display:flex}.grapher-export .grapher-primary-container-outer .grapher-sidebar{background:linear-gradient(#EEE, transparent 75%, transparent 100%);color:#111;padding:50px 6px 5px 10px;margin-left:-10px;margin-top:-10px;margin-bottom:-10px;overflow-y:auto;flex-shrink:0}.grapher-export .grapher-primary-container-outer .grapher-sidebar .series-toggle{white-space:nowrap}.grapher-export .grapher-primary-container-outer .grapher-sidebar .series-toggle+.series-toggle{margin-top:3px}.grapher-export .grapher-primary-container-outer .grapher-sidebar .series-toggle label{display:inline-block;position:relative;user-select:none}.grapher-export .grapher-primary-container-outer .grapher-sidebar .series-toggle input[type=checkbox]{opacity:0;cursor:pointer;height:0;width:0;margin-right:11px}.grapher-export .grapher-primary-container-outer .grapher-sidebar .series-toggle input:not(:checked)~.checkmark{background-color:rgba(0,0,0,0) !important}.grapher-export .grapher-primary-container-outer .grapher-sidebar .series-toggle input:checked~.checkmark:after{display:block}.grapher-export .grapher-primary-container-outer .grapher-sidebar .series-toggle .checkmark{position:absolute;top:1px;left:0;height:7px;width:7px;background-color:#eee;border:2px solid;border-radius:1px}.grapher-export .grapher-primary-container-outer .grapher-sidebar .series-toggle .checkmark:after{content:"";position:absolute;display:none;left:.5px;top:-1.5px;width:3px;height:6px;border:solid #fff;border-width:0 2px 2px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.grapher-export .grapher-primary-container-outer .grapher-primary-container-body{width:100%;padding-left:2px}.grapher-export .series-key{text-align:center;margin-bottom:-14px;position:relative}.grapher-export .series-key .scale-label{display:inline-block;background:#b0b0b7;color:#000;transform:rotate(-90deg);width:24px;margin-left:-5px;vertical-align:top;margin-top:4px;padding-bottom:2px;cursor:pointer;user-select:none}.grapher-export .series-key .series-key-axis-container{display:inline-block;border:1px solid #b0b0b7;min-width:18px;min-height:24px;vertical-align:top;white-space:nowrap}.grapher-export .series-key .series-key-axis-container+.series-key-axis-container{margin-left:4px}.grapher-export .series-key .series-key-axis-container.series-key-axis-container-showing-label .scale-label{width:46px;margin-top:15px;margin-left:-15px;margin-right:-12px}.grapher-export .series-key .series-key-axis-container.series-key-axis-container-showing-label .series-key-axis-label-container{display:block}.grapher-export .series-key .series-key-axis-container.series-key-axis-container-showing-label .label-input-toggler path{fill:#505053}.grapher-export .series-key .series-key-axis-container .series-key-axis-container-body{display:inline-block}.grapher-export .series-key .series-key-axis-container .series-key-axis-container-body>div{white-space:initial}.grapher-export .series-key .series-key-axis-container .series-key-axis-label-container{display:none}.grapher-export .series-key .series-key-axis-container .label-input-toggler{width:16px;cursor:pointer;display:inline-block;vertical-align:top;margin:4px 2px}.grapher-export .series-key .series-key-axis-container .label-input-toggler path{fill:#b0b0b7}.grapher-export .series-key .series-key-axis-container .label-input-toggler:hover path{fill:#505053}.grapher-export .series-key .series-key-item{border:1px solid currentColor;padding:2px;margin:2px;display:inline-block;cursor:pointer;user-select:none}.grapher-export .series-key .series-key-item+.series-key-item{margin-left:4px}.grapher-export .series-key .series-key-item.series-key-item-highlighted{box-shadow:0 0 4px #000}.grapher-export .range-selection{color:#444;user-select:none}.grapher-export .range-selection.range-not-dates{color:#888}.grapher-export .range-selection .range-buttons{text-align:right}.grapher-export .range-selection .range-buttons .options-bar{display:inline-block}.grapher-export .range-selection .range-buttons .option-tooltip{position:relative;display:inline-block;border-bottom:1px dotted #000}.grapher-export .range-selection .range-buttons .option-tooltip .option-tooltip-text{visibility:hidden;color:#000;background:#fff;text-align:center;padding:5px 5px;border-radius:6px;position:absolute;z-index:1;border:1px solid #000;width:120px;margin-left:-65px;top:calc(100% + 7px);left:50%}.grapher-export .range-selection .range-buttons .option-tooltip:hover .option-tooltip-text{visibility:visible}.grapher-export .range-selection .range-buttons .option-tooltip .option-tooltip-text::after{content:" ";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:rgba(0,0,0,0) rgba(0,0,0,0) #000 rgba(0,0,0,0)}.grapher-export .range-selection .range-buttons .range-button{display:inline-block;cursor:pointer;padding:4px 8px;margin-left:4px;border-radius:2px;background:#fff;border:1px dotted silver}.grapher-export .range-selection .range-buttons .range-button.range-button-selected{color:#000;background:#fff;border:1px solid #000}.grapher-export .range-selection .range-buttons .range-button.range-button-disabled,.grapher-export .range-selection .range-buttons .range-button.range-button-selected.range-button-disabled{cursor:not-allowed;color:#888;background:#eee}.grapher-export .range-selection .range-buttons .range-button .icon-container{position:relative;width:0}.grapher-export .range-selection .range-buttons .range-button .icon-container.icon-container-narrow svg{left:-3px}.grapher-export .range-selection .range-buttons .range-button .icon-container.icon-container-square{width:5px}.grapher-export .range-selection .range-buttons .range-button .icon-container.icon-container-square svg{left:-5px}.grapher-export .range-selection .range-buttons .range-button .icon-container.icon-container-448{width:3px}.grapher-export .range-selection .range-buttons .range-button .icon-container.icon-container-448 svg{left:-5px}.grapher-export .range-selection .range-buttons .range-button .icon-container:before{content:"A";opacity:0}.grapher-export .range-selection .range-buttons .range-button .icon-container svg{height:15px;position:absolute;top:-1px;left:-4px}.grapher-export .range-selection .range-buttons .range-selection-history+.range-selection-history{margin-right:8px;margin-left:4px}.grapher-export .range-selection .range-buttons .percentile-button>div{display:inline-block}.grapher-export .range-selection .range-buttons .percentile-button input{background:rgba(0,0,0,0);border:1px solid #e0e0e3;margin:2px 8px 2px 0;color:#222;padding:1px 2px;width:20px;font-size:11px;-moz-appearance:textfield}.grapher-export .range-selection .range-buttons .percentile-button input:focus{outline:none;border-color:#505053}.grapher-export .range-selection .range-buttons .percentile-button input::-webkit-outer-spin-button,.grapher-export .range-selection .range-buttons .percentile-button input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.grapher-export .range-selection .range-buttons .percentile-button .icon-container.icon-container-narrow svg{height:12px;top:1px;left:-5px}.grapher-export .range-selection .range-buttons .showing-options-button{margin-right:8px}.grapher-export .grapher-main-row{display:flex}.grapher-export .grapher-main-row .central-container{width:100%}.grapher-export .range-graph-container{display:flex}.grapher-export .graph-body{width:100%;height:400px;position:relative}.grapher-export .graph-body canvas{width:100%;height:100%}.grapher-export .graph-body .grapher-tooltip,.grapher-export .graph-body .grapher-draggable-points,.grapher-export .graph-body .grapher-vertical-lines{position:absolute;top:0;left:0;right:0;z-index:20}.grapher-export .graph-body .grapher-tooltip>svg,.grapher-export .graph-body .grapher-draggable-points>svg,.grapher-export .graph-body .grapher-vertical-lines>svg{position:absolute;overflow:visible;left:0}.grapher-export .graph-body .grapher-vertical-lines{pointer-events:none;user-select:none}.grapher-export .graph-body .grapher-tooltip .tooltip-item path{fill:rgba(255,255,255,.6)}.grapher-export .graph-body .grapher-tooltip .tooltip-item text{fill:#0f0f0f;dominant-baseline:hanging;text-anchor:start}.grapher-export .graph-body .grapher-tooltip .tooltip-item.tooltip-item-fixed path{fill:#fff}.grapher-export .graph-body .grapher-tooltip .line{position:absolute;height:400px;border-left:1px solid #333}.grapher-export .graph-body .grapher-tooltip .custom-tooltip-container{position:absolute}.grapher-export .graph-body .grapher-context-menu{position:absolute;top:0;left:0}.grapher-export .graph-body .grapher-context-menu .menu-item .menu-text{user-select:all;position:absolute;top:0;background:rgba(255,255,255,.6);border:1px solid rgba(0,0,0,.3);color:#0f0f0f;padding:2px 4px;max-width:max-content;width:200px}.grapher-export .graph-body .grapher-draggable-points circle{cursor:pointer}.grapher-export .graph-body .grapher-vertical-lines line{stroke:#333}.grapher-export .graph-body .grapher-vertical-lines polygon{fill:#333}.grapher-export .graph-body .grapher-annotations{position:absolute;top:0;pointer-events:none;user-select:none;z-index:10}.grapher-export .graph-body .grapher-annotations .grapher-annotation{position:absolute}.grapher-export .graph-body .grapher-annotations .grapher-annotation .annotation-marker{display:inline-block;background:rgba(0,0,0,.3)}.grapher-export .graph-body .grapher-annotations .grapher-annotation.grapher-annotation-range .annotation-range-marker{display:inline-block;background-color:rgba(128,128,128,.2);background-image:repeating-linear-gradient(53deg, #626266, #626266 1px, rgba(255, 255, 255, 0.1) 1px, rgba(255, 255, 255, 0.1) 4px);background-size:40px 40px;border-right:1px solid #fff;border-left:1px solid #fff}.grapher-export .graph-body .grapher-annotations .grapher-annotation .annotation-text{position:absolute;background:rgba(255,255,255,.6);border:1px solid rgba(0,0,0,.3);color:#0f0f0f;padding:2px 4px;white-space:nowrap;font-size:10px;z-index:10}.grapher-export .graph-body .bounds-selection{position:absolute;background:rgba(0,0,0,.02)}.grapher-export .axis{overflow:visible;user-select:none}.grapher-export .axis.x-axis{width:1px;height:20px;display:block}.grapher-export .axis.x-axis .axis-item text{text-anchor:middle}.grapher-export .axis.x-axis .axis-item.axis-item-first text{text-anchor:start}.grapher-export .axis.x-axis .axis-item.axis-item-last text{text-anchor:end}.grapher-export .axis.y-axis{height:400px}.grapher-export .axis.y-axis .axis-item text{text-anchor:end;alignment-baseline:middle}.grapher-export .axis.y-axis .y-axis-label{text-anchor:middle;fill:#000}.grapher-export .axis.y-axis .y-axis-label.y-axis-big-label{font-size:18px}.grapher-export .axis.y-axis .series-color-box{cursor:pointer}.grapher-export .axis.y-axis.y-axis-right .axis-item text{text-anchor:start}.grapher-export .axis .axis-line{stroke:#000;stroke-width:1px}.grapher-export .axis .axis-line-shadow{stroke:#bfbfbf;stroke-width:1px}.grapher-export .axis .axis-item path{stroke:#bfbfbf;stroke-width:1px}.grapher-export .axis .axis-item text{fill:#000;font-size:8px}.grapher-export .axis .axis-item.axis-item-major .axis-tick{stroke-width:2px}.grapher-export .axis .axis-item.axis-item-big-labels text{font-size:16px}.grapher-export .range-selection-graph{width:100%;padding-bottom:14px}.grapher-export .range-selection-graph .graph-body-secondary{height:50px}.grapher-export .range-selection-graph .graph-body-secondary svg{position:absolute;left:0;height:50px;width:100%;overflow:visible}.grapher-export .range-selection-graph .graph-body-secondary svg .target-selection{fill:rgba(0,0,0,.02);cursor:ew-resize}.grapher-export .range-selection-graph .graph-body-secondary svg .selection-bar{fill:#b0b0b7;cursor:ew-resize}.grapher-export .range-selection-graph .graph-body-secondary svg .selection-bar-track{fill:#eee}.grapher-export .range-selection-graph .graph-body-secondary svg .selection-bar-rifles{fill:none;stroke-width:1;stroke:#333}.grapher-export .range-selection-graph .graph-body-secondary svg .selection-bar-handle{stroke:#333;stroke-width:1;fill:#b0b0b7;cursor:ew-resize}.grapher-export .range-selection-graph .graph-body-secondary svg .target-selection-outline{stroke:#333;fill:none}.grapher-export .range-selection-graph .graph-body-secondary svg .axis-item text{fill:#9f9f9f;text-anchor:start;font-size:8px;user-select:none;dominant-baseline:text-after-edge}.grapher-export .range-selection-graph .graph-body-secondary svg .axis-item path{stroke:#bfbfbf;stroke-width:1px}.grapher-export input,.grapher-export textarea{background:rgba(0,0,0,0);border:1px solid #e0e0e3;margin:2px 0;color:#222;padding:1px 2px;text-align:center}.grapher-export input:focus,.grapher-export textarea:focus{outline:none;border-color:#505053}.grapher-export.grapher-dragging-y .y-axis{border:2px dashed silver;margin:-2px;flex-shrink:0}.grapher-export.grapher-dragging-y .y-axis+.y-axis{border-left:none}.grapher-export.grapher-fullscreen{height:calc(100vh - 2*10px)}.grapher-export.grapher-fixed-height .grapher-primary-container-outer{height:100%}.grapher-export.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body{height:100%;display:flex;flex-direction:column}.grapher-export.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body .grapher-main-row{flex-grow:1}.grapher-export.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body .grapher-main-row .central-container{display:flex;flex-direction:column;height:100%}.grapher-export.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body .grapher-main-row .central-container>.graph-body{flex-grow:1;height:unset}.grapher-export.grapher-fixed-height .grapher-primary-container-outer .grapher-primary-container-body .grapher-main-row .axis.y-axis{height:calc(100% - 40px)}.grapher-export.new-grapher{height:auto;border:2px dashed silver;text-align:center;color:#222}',"",{version:3,sources:["webpack://./src/grapher.scss"],names:[],mappings:"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",sourcesContent:["@mixin grapher(\n $primary-graph-body-height: 400px,\n $secondary-graph-body-height: 50px,\n\n $background-color-1: #2a2a2b,\n $background-color-2: #3e3e40,\n\n $tooltip-line-color: #CCC,\n $tooltip-background-color: rgba(0, 0, 0, 0.6),\n $tooltip-text-color: #F0F0F0,\n $vertical-line-color: #CCC,\n\n $axis-line-color: silver,\n $axis-line-width: 2px,\n $axis-tick-color: #505053,\n $axis-text-color: #E0E0E3,\n\n $range-selection-text-color: silver,\n $range-selection-button-color: #505053,\n $range-selection-button-selected-color: black,\n $range-selection-text-selected-color: silver,\n $range-selection-text-color-faded: #AAA,\n $range-selection-button-color-faded: #7A7A7A,\n $range-selection-button-border: null,\n $range-selection-selected-button-border: null,\n\n $range-graph-selection-bar-size: 14px,\n $range-graph-selection-range-color: rgba(255, 255, 255, 0.1),\n $range-graph-selection-outline-color: #AAA,\n $range-graph-selection-bar-color: #808083,\n $range-graph-selection-bar-track-color: #303033,\n $range-graph-selection-bar-rifles-color: #FFF,\n $range-graph-handle-color: #AAA,\n $range-graph-handle-fill-color: #666,\n $range-graph-axis-text-color: #9f9f9f,\n\n $annotation-background-color: rgba(255, 255, 255, 0.3),\n\n $series-key-axis-container-color: #111,\n $series-key-input-border-color: #505053,\n $series-key-input-selected-border-color: #E0E0E3,\n $series-key-input-text-color: #E0E0E3,\n $series-key-background: transparent,\n $scale-label-color: silver,\n $series-key-shadow-color: silver,\n\n $title-color: white,\n\n $sidebar-background-color: #111,\n $sidebar-text-color: #EEE,\n\n $new-grapher-color: #DDD\n) {\n $x-axis-height: 20px;\n $padding: 10px;\n\n $axis-z-index: 0;\n $graph-body-z-index: 1;\n\n position: relative;\n background: linear-gradient(to bottom right, $background-color-1, $background-color-2);\n padding: $padding;\n\n font-family: sans-serif;\n font-size: 12px;\n line-height: normal;\n\n *, :after, :before {\n box-sizing: content-box;\n }\n\n .grapher-title {\n text-align: center;\n color: $title-color;\n font-size: 18px;\n margin-bottom: 8px;\n }\n\n .grapher-primary-container-outer {\n display: flex;\n\n .grapher-sidebar {\n background: linear-gradient($sidebar-background-color, transparent 75%, transparent 100%);\n color: $sidebar-text-color;\n padding: 50px 6px 5px 10px;\n margin-left: -$padding;\n margin-top: -$padding;\n margin-bottom: -$padding;\n overflow-y: auto;\n flex-shrink: 0;\n\n .series-toggle {\n white-space: nowrap;\n\n & + .series-toggle {\n margin-top: 3px;\n }\n\n label {\n display: inline-block;\n position: relative;\n user-select: none;\n }\n\n input[type='checkbox'] {\n opacity: 0;\n cursor: pointer;\n height: 0;\n width: 0;\n margin-right: 11px;\n }\n\n input:not(:checked) ~ .checkmark {\n background-color: transparent !important;\n }\n\n input:checked ~ .checkmark:after {\n display: block;\n }\n\n .checkmark {\n position: absolute;\n top: 1px;\n left: 0;\n height: 7px;\n width: 7px;\n background-color: #eee;\n border: 2px solid;\n border-radius: 1px;\n }\n\n .checkmark:after {\n content: \"\";\n position: absolute;\n display: none;\n\n left: 0.5px;\n top: -1.5px;\n width: 3px;\n height: 6px;\n border: solid white;\n border-width: 0 2px 2px 0;\n -webkit-transform: rotate(45deg);\n -ms-transform: rotate(45deg);\n transform: rotate(45deg);\n }\n }\n }\n\n .grapher-primary-container-body {\n width: 100%;\n padding-left: 2px;\n }\n }\n\n .series-key {\n text-align: center;\n margin-bottom: -14px;\n position: relative;\n\n .scale-label {\n display: inline-block;\n background: $series-key-axis-container-color;\n color: $scale-label-color;\n transform: rotate(-90deg);\n width: 24px;\n margin-left: -5px;\n vertical-align: top;\n margin-top: 4px;\n padding-bottom: 2px;\n cursor: pointer;\n user-select: none;\n }\n\n .series-key-axis-container {\n display: inline-block;\n border: 1px solid $series-key-axis-container-color;\n\n min-width: 18px;\n min-height: 24px;\n vertical-align: top;\n\n white-space: nowrap;\n\n & + .series-key-axis-container {\n margin-left: 4px;\n }\n\n &.series-key-axis-container-showing-label {\n .scale-label {\n width: 46px;\n margin-top: 15px;\n margin-left: -15px;\n margin-right: -12px;\n }\n\n .series-key-axis-label-container {\n display: block;\n }\n\n .label-input-toggler {\n path {\n fill: $series-key-input-selected-border-color;\n }\n }\n }\n\n .series-key-axis-container-body {\n display: inline-block;\n\n & > div {\n white-space: initial;\n }\n }\n\n .series-key-axis-label-container {\n display: none;\n }\n\n .label-input-toggler {\n width: 16px;\n cursor: pointer;\n display: inline-block;\n vertical-align: top;\n margin: 4px 2px;\n\n path {\n fill: $series-key-axis-container-color;\n }\n\n &:hover {\n path {\n fill: $series-key-input-selected-border-color;\n }\n }\n }\n }\n\n .series-key-item {\n border: 1px solid currentColor;\n padding: 2px;\n margin: 2px;\n display: inline-block;\n cursor: pointer;\n user-select: none;\n background: $series-key-background;\n\n & + .series-key-item {\n margin-left: 4px;\n }\n\n &.series-key-item-highlighted {\n box-shadow: 0 0 4px $series-key-shadow-color;\n }\n }\n }\n\n .range-selection {\n color: $range-selection-text-color;\n user-select: none;\n\n &.range-not-dates {\n color: $range-selection-text-color-faded;\n }\n\n .range-buttons {\n text-align: right;\n\n .options-bar {\n display: inline-block;\n }\n\n .option-tooltip {\n position: relative;\n display: inline-block;\n border-bottom: 1px dotted black;\n\n .option-tooltip-text {\n visibility: hidden;\n color: $range-selection-text-selected-color;\n background: $range-selection-button-selected-color;\n text-align: center;\n padding: 5px 5px;\n border-radius: 6px;\n position: absolute;\n z-index: 1;\n border: 1px solid black;\n\n width: 120px;\n margin-left: -65px;\n top: calc(100% + 7px);\n left: 50%;\n }\n\n &:hover .option-tooltip-text {\n visibility: visible;\n }\n\n .option-tooltip-text::after {\n content: \" \";\n position: absolute;\n bottom: 100%;\n left: 50%;\n margin-left: -5px;\n border-width: 5px;\n border-style: solid;\n border-color: transparent transparent black transparent;\n }\n }\n\n .range-button {\n display: inline-block;\n cursor: pointer;\n padding: 4px 8px;\n @if ($range-selection-button-border == null) {\n margin-left: 6px;\n } @else {\n margin-left: 4px;\n }\n\n border-radius: 2px;\n background: $range-selection-button-color;\n border: $range-selection-button-border;\n\n &.range-button-selected {\n color: $range-selection-text-selected-color;\n background: $range-selection-button-selected-color;\n border: $range-selection-selected-button-border;\n }\n\n &.range-button-disabled, &.range-button-selected.range-button-disabled {\n cursor: not-allowed;\n color: $range-selection-text-color-faded;\n background: $range-selection-button-color-faded;\n }\n\n .icon-container {\n position: relative;\n width: 0;\n\n &.icon-container-narrow {\n svg {\n left: -3px;\n }\n }\n\n &.icon-container-square {\n width: 5px;\n\n svg {\n left: -5px;\n }\n }\n\n &.icon-container-448 {\n width: 3px;\n\n svg {\n left: -5px;\n }\n }\n\n &:before {\n content: 'A';\n opacity: 0;\n }\n\n svg {\n height: 15px;\n position: absolute;\n top: -1px;\n left: -4px;\n }\n }\n }\n\n .range-selection-history + .range-selection-history {\n margin-right: 8px;\n margin-left: 4px;\n }\n\n .percentile-button {\n & > div {\n display: inline-block;\n }\n\n input {\n background: transparent;\n border: 1px solid $series-key-input-border-color;\n margin: 2px 8px 2px 0;\n color: $series-key-input-text-color;\n padding: 1px 2px;\n width: 20px;\n font-size: 11px;\n -moz-appearance: textfield;\n\n &:focus {\n outline: none;\n border-color: $series-key-input-selected-border-color;\n }\n\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n }\n\n .icon-container.icon-container-narrow {\n svg {\n height: 12px;\n top: 1px;\n left: -5px;\n }\n }\n }\n\n .showing-options-button {\n margin-right: 8px;\n }\n }\n }\n\n .grapher-main-row {\n display: flex;\n\n .central-container {\n width: 100%;\n }\n }\n\n .range-graph-container {\n display: flex;\n }\n\n .graph-body {\n width: 100%;\n height: $primary-graph-body-height;\n position: relative;\n\n canvas {\n width: 100%;\n height: 100%;\n }\n\n .grapher-tooltip, .grapher-draggable-points, .grapher-vertical-lines {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n z-index: 20;\n\n > svg {\n position: absolute;\n overflow: visible;\n left: 0;\n }\n }\n\n .grapher-vertical-lines {\n pointer-events: none;\n user-select: none;\n }\n\n .grapher-tooltip {\n .tooltip-item {\n path {\n fill: $tooltip-background-color;\n }\n\n text {\n fill: $tooltip-text-color;\n dominant-baseline: hanging;\n text-anchor: start;\n }\n\n &.tooltip-item-fixed {\n path {\n fill: rgba($tooltip-background-color, 1);\n }\n }\n }\n\n .line {\n position: absolute;\n height: 400px;\n border-left: 1px solid $tooltip-line-color;\n }\n\n .custom-tooltip-container {\n position: absolute;\n }\n }\n\n .grapher-context-menu {\n position: absolute;\n top: 0;\n left: 0;\n .menu-item {\n\n .menu-text {\n user-select: all;\n position: absolute;\n top: 0;\n background: $tooltip-background-color;\n border: 1px solid $annotation-background-color;\n color: $tooltip-text-color;\n padding: 2px 4px;\n max-width: max-content;\n width: 200px;\n }\n }\n }\n\n .grapher-draggable-points {\n circle {\n cursor: pointer;\n }\n }\n\n .grapher-vertical-lines {\n line {\n stroke: $vertical-line-color;\n }\n\n polygon {\n fill: $vertical-line-color;\n }\n }\n\n .grapher-annotations {\n position: absolute;\n top: 0;\n pointer-events: none;\n user-select: none;\n z-index: 10;\n\n .grapher-annotation {\n position: absolute;\n\n .annotation-marker {\n display: inline-block;\n background: $annotation-background-color;\n }\n\n &.grapher-annotation-range {\n .annotation-range-marker {\n display: inline-block;\n background-color: rgba(128, 128, 128, 0.2);\n background-image: repeating-linear-gradient(53deg, #626266, #626266 1px, rgba(255, 255, 255, 0.1) 1px, rgba(255, 255, 255, 0.1) 4px);\n background-size: 40px 40px;\n border-right: 1px solid white;\n border-left: 1px solid white;\n }\n }\n\n .annotation-text {\n position: absolute;\n background: $tooltip-background-color;\n border: 1px solid $annotation-background-color;\n color: $tooltip-text-color;\n padding: 2px 4px;\n white-space: nowrap;\n font-size: 10px;\n z-index: 10;\n }\n }\n }\n\n .bounds-selection {\n position: absolute;\n background: $range-graph-selection-range-color;\n }\n }\n\n .axis {\n overflow: visible;\n user-select: none;\n\n &.x-axis {\n width: 1px;\n height: $x-axis-height;\n display: block;\n\n .axis-item {\n text {\n text-anchor: middle;\n }\n\n &.axis-item-first {\n text {\n text-anchor: start;\n }\n }\n\n &.axis-item-last {\n text {\n text-anchor: end;\n }\n }\n }\n }\n\n &.y-axis {\n height: $primary-graph-body-height;\n\n .axis-item text {\n text-anchor: end;\n alignment-baseline: middle;\n }\n\n .y-axis-label {\n text-anchor: middle;\n fill: $axis-text-color;\n\n &.y-axis-big-label {\n font-size: 18px;\n }\n }\n\n .series-color-box {\n cursor: pointer;\n }\n\n &.y-axis-right {\n .axis-item text {\n text-anchor: start;\n }\n }\n }\n\n .axis-line {\n stroke: $axis-line-color;\n stroke-width: $axis-line-width;\n }\n\n .axis-line-shadow {\n stroke: $axis-tick-color;\n stroke-width: 1px;\n }\n\n .axis-item {\n path {\n stroke: $axis-tick-color;\n stroke-width: 1px;\n }\n\n text {\n fill: $axis-text-color;\n font-size: 8px;\n }\n\n &.axis-item-major {\n .axis-tick {\n stroke-width: 2px;\n }\n }\n\n &.axis-item-big-labels {\n text {\n font-size: 16px;\n }\n }\n }\n }\n\n .range-selection-graph {\n width: 100%;\n padding-bottom: $range-graph-selection-bar-size;\n\n .graph-body-secondary {\n height: $secondary-graph-body-height;\n\n svg {\n position: absolute;\n left: 0;\n height: $secondary-graph-body-height;\n width: 100%;\n overflow: visible;\n\n .target-selection {\n fill: $range-graph-selection-range-color;\n cursor: ew-resize;\n }\n\n .selection-bar {\n fill: $range-graph-selection-bar-color;\n cursor: ew-resize;\n }\n\n .selection-bar-track {\n fill: $range-graph-selection-bar-track-color;\n }\n\n .selection-bar-rifles {\n fill: none;\n stroke-width: 1;\n stroke: $range-graph-selection-bar-rifles-color;\n }\n\n .selection-bar-handle {\n stroke: $range-graph-handle-color;\n stroke-width: 1;\n fill: $range-graph-handle-fill-color;\n cursor: ew-resize;\n }\n\n .target-selection-outline {\n stroke: $range-graph-selection-outline-color;\n fill: none;\n }\n\n .axis-item {\n text {\n fill: $range-graph-axis-text-color;\n text-anchor: start;\n font-size: 8px;\n user-select: none;\n dominant-baseline: text-after-edge;\n }\n\n path {\n stroke: $axis-tick-color;\n stroke-width: 1px;\n }\n }\n }\n }\n }\n\n input, textarea {\n background: transparent;\n border: 1px solid $series-key-input-border-color;\n margin: 2px 0;\n color: $series-key-input-text-color;\n padding: 1px 2px;\n text-align: center;\n\n &:focus {\n outline: none;\n border-color: $series-key-input-selected-border-color;\n }\n }\n\n &.grapher-dragging-y {\n .y-axis {\n border: 2px dashed silver;\n margin: -2px;\n flex-shrink: 0;\n\n & + .y-axis {\n border-left: none;\n }\n }\n }\n\n &.grapher-fullscreen {\n height: calc(100vh - 2*#{$padding});\n }\n\n &.grapher-fixed-height {\n .grapher-primary-container-outer {\n height: 100%;\n\n .grapher-primary-container-body {\n height: 100%;\n display: flex;\n flex-direction: column;\n\n .grapher-main-row {\n flex-grow: 1;\n\n .central-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n\n > .graph-body {\n flex-grow: 1;\n height: unset;\n }\n }\n\n .axis.y-axis {\n height: calc(100% - #{2*$x-axis-height});\n }\n }\n }\n }\n }\n\n &.new-grapher {\n height: auto;\n border: 2px dashed silver;\n text-align: center;\n color: $new-grapher-color;\n }\n}\n\n@mixin grapher-theme-night (\n $primary-graph-body-height: 400px,\n $secondary-graph-body-height: 50px,\n) {\n @include grapher(\n $primary-graph-body-height,\n $secondary-graph-body-height\n );\n}\n\n@mixin grapher-theme-day (\n $primary-graph-body-height: 400px,\n $secondary-graph-body-height: 50px,\n) {\n @include grapher(\n $primary-graph-body-height,\n $secondary-graph-body-height,\n\n $background-color-1: #FFF,\n $background-color-2: #FFF,\n\n $tooltip-line-color: invert(#CCC),\n $tooltip-background-color: invert(rgba(0, 0, 0, 0.6)),\n $tooltip-text-color: invert(#F0F0F0),\n $vertical-line-color: invert(#CCC),\n\n $axis-line-color: #656565,\n $axis-tick-color: #BFBFBF,\n $axis-text-color: invert(#E0E0E3),\n\n $range-selection-text-color: #444,\n $range-selection-button-color: white,\n $range-selection-button-selected-color: white,\n $range-selection-text-selected-color: black,\n $range-selection-text-color-faded: #888,\n $range-selection-button-color-faded: #EEE,\n $range-selection-button-border: 1px dotted silver,\n $range-selection-selected-button-border: 1px solid black,\n\n $range-graph-selection-range-color: rgba(0, 0, 0, 0.02),\n $range-graph-selection-outline-color: #333,\n $range-graph-selection-bar-color: #B0B0B7,\n $range-graph-selection-bar-track-color: #EEE,\n $range-graph-selection-bar-rifles-color: #333,\n $range-graph-handle-color: #333,\n $range-graph-handle-fill-color: #B0B0B7,\n\n $annotation-background-color: rgba(0, 0, 0, 0.3),\n\n $series-key-axis-container-color: #B0B0B7,\n $series-key-input-border-color: #E0E0E3,\n $series-key-input-selected-border-color: #505053,\n $series-key-input-text-color: #222,\n $series-key-background: null,\n $series-key-shadow-color: black,\n $scale-label-color: black,\n\n $title-color: black,\n\n $sidebar-background-color: #EEE,\n $sidebar-text-color: #111,\n\n $new-grapher-color: #222\n );\n}\n\n@mixin grapher-theme-export (\n $primary-graph-body-height: 400px,\n $secondary-graph-body-height: 50px,\n) {\n @include grapher(\n $primary-graph-body-height,\n $secondary-graph-body-height,\n\n $background-color-1: #FFF,\n $background-color-2: #FFF,\n\n $tooltip-line-color: invert(#CCC),\n $tooltip-background-color: invert(rgba(0, 0, 0, 0.6)),\n $tooltip-text-color: invert(#F0F0F0),\n $vertical-line-color: invert(#CCC),\n\n $axis-line-color: black,\n $axis-line-width: 1px,\n $axis-tick-color: #BFBFBF,\n $axis-text-color: black,\n\n $range-selection-text-color: #444,\n $range-selection-button-color: white,\n $range-selection-button-selected-color: white,\n $range-selection-text-selected-color: black,\n $range-selection-text-color-faded: #888,\n $range-selection-button-color-faded: #EEE,\n $range-selection-button-border: 1px dotted silver,\n $range-selection-selected-button-border: 1px solid black,\n\n $range-graph-selection-range-color: rgba(0, 0, 0, 0.02),\n $range-graph-selection-outline-color: #333,\n $range-graph-selection-bar-color: #B0B0B7,\n $range-graph-selection-bar-track-color: #EEE,\n $range-graph-selection-bar-rifles-color: #333,\n $range-graph-handle-color: #333,\n $range-graph-handle-fill-color: #B0B0B7,\n\n $annotation-background-color: rgba(0, 0, 0, 0.3),\n\n $series-key-axis-container-color: #B0B0B7,\n $series-key-input-border-color: #E0E0E3,\n $series-key-input-selected-border-color: #505053,\n $series-key-input-text-color: #222,\n $series-key-background: null,\n $series-key-shadow-color: black,\n $scale-label-color: black,\n\n $title-color: black,\n\n $sidebar-background-color: #EEE,\n $sidebar-text-color: #111,\n\n $new-grapher-color: #222\n );\n}\n\n.grapher-night {\n @include grapher-theme-night();\n}\n\n.grapher-day {\n @include grapher-theme-day();\n}\n\n.grapher-export {\n @include grapher-theme-export();\n}\n"],sourceRoot:""}]);const s=o},314:e=>{e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,i,a){"string"==typeof e&&(e=[[null,e,void 0]]);var o={};if(r)for(var s=0;s<this.length;s++){var l=this[s][0];null!=l&&(o[l]=!0)}for(var A=0;A<e.length;A++){var h=[].concat(e[A]);r&&o[h[0]]||(void 0!==a&&(void 0===h[5]||(h[1]="@layer".concat(h[5].length>0?" ".concat(h[5]):""," {").concat(h[1],"}")),h[5]=a),n&&(h[2]?(h[1]="@media ".concat(h[2]," {").concat(h[1],"}"),h[2]=n):h[2]=n),i&&(h[4]?(h[1]="@supports (".concat(h[4],") {").concat(h[1],"}"),h[4]=i):h[4]="".concat(i)),t.push(h))}},t}},354:e=>{e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),i="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),a="/*# ".concat(i," */");return[t].concat([a]).join("\n")}return[t].join("\n")}},694:(e,t,n)=>{var r=n(925);function i(){}function a(){}a.resetWarningCache=i,e.exports=function(){function e(e,t,n,i,a,o){if(o!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:i};return n.PropTypes=n,n}},556:(e,t,n)=>{e.exports=n(694)()},925:e=>{e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},72:e=>{var t=[];function n(e){for(var n=-1,r=0;r<t.length;r++)if(t[r].identifier===e){n=r;break}return n}function r(e,r){for(var a={},o=[],s=0;s<e.length;s++){var l=e[s],A=r.base?l[0]+r.base:l[0],h=a[A]||0,c="".concat(A," ").concat(h);a[A]=h+1;var d=n(c),g={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==d)t[d].references++,t[d].updater(g);else{var p=i(g,r);r.byIndex=s,t.splice(s,0,{identifier:c,updater:p,references:1})}o.push(c)}return o}function i(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else n.remove()}}e.exports=function(e,i){var a=r(e=e||[],i=i||{});return function(e){e=e||[];for(var o=0;o<a.length;o++){var s=n(a[o]);t[s].references--}for(var l=r(e,i),A=0;A<a.length;A++){var h=n(a[A]);0===t[h].references&&(t[h].updater(),t.splice(h,1))}a=l}}},659:e=>{var t={};e.exports=function(e,n){var r=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},540:e=>{e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},56:(e,t,n)=>{e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},825:e=>{e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var i=void 0!==n.layer;i&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,i&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var a=n.sourceMap;a&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),t.styleTagTransform(r,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},113:e=>{e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},400:e=>{e.exports="precision highp float;\n\nuniform vec4 color;\n\nvoid main() {\n gl_FragColor = vec4(color);\n}\n"},765:e=>{e.exports="precision highp float;\n\nattribute vec2 position;\n\nvoid main() {\n gl_Position = vec4((position - 0.5)*2.0, 0.0, 1.0);\n}\n"},120:e=>{e.exports="#ifdef GL_OES_standard_derivatives\n#extension GL_OES_standard_derivatives : enable\n#endif\n\nprecision mediump float;\n\nuniform vec4 color;\n\n// Adapted and modified from https://www.desultoryquest.com/blog/drawing-anti-aliased-circular-points-using-opengl-slash-webgl/\nvoid main() {\n float delta = 0.0;\n float alpha = 1.0;\n vec2 center = 2.0 * gl_PointCoord - 1.0;\n float r = dot(center, center);\n\n if (r > 1.0) {\n discard;\n }\n\n #ifdef GL_OES_standard_derivatives\n delta = fwidth(r);\n alpha = 1.0 - smoothstep(1.0 - delta, 1.0 + delta, r);\n #endif\n\n gl_FragColor = color * alpha;\n}\n"},789:e=>{e.exports="precision mediump float;\n\nattribute vec2 position;\n\nuniform float width;\nuniform float height;\nuniform float pointSize;\n\nvoid main() {\n gl_Position = vec4(2.0*position.x/width - 1.0, 1.0 - 2.0*position.y/height, 0.0, 1.0);\n gl_PointSize = pointSize;\n}"},390:e=>{e.exports="precision highp float;\n\nuniform vec4 color;\nuniform float thickness;\nuniform float shadowBlur;\nuniform vec4 shadowColor;\n\nvarying vec2 position_vec;\nvarying vec2 prev_position_vec;\n\n/**\n * Calculate distance between point and line in screen space (ie, inputs in pixels, returns distance in pixels)\n */\nfloat distance_from_line() {\n float x0 = gl_FragCoord.x;\n float y0 = gl_FragCoord.y;\n\n // let line be defined by ax + by + c = 0;\n float a, b, c;\n\n if (position_vec.x == prev_position_vec.x) {\n a = 1.0;\n b = 0.0;\n c = -position_vec.x;\n } else {\n float slope = (position_vec.y - prev_position_vec.y)/(position_vec.x - prev_position_vec.x);\n float y_intercept = position_vec.y - slope*position_vec.x;\n\n // y = slope*x + y_intercept\n // (-slope)(x) + (1)(y) - y_intercept = 0;\n a = -slope;\n b = 1.0;\n c = -y_intercept;\n }\n\n return abs(a*x0 + b*y0 + c)/length(vec2(a, b));\n}\n\nvoid main() {\n vec4 transparent = vec4(0.0, 0.0, 0.0, 0.0);\n\n float dist = distance_from_line();\n\n if (dist + shadowBlur >= thickness) {\n float percent_shadowed = ((thickness - dist) / shadowBlur);\n gl_FragColor = mix(transparent, shadowColor, percent_shadowed*percent_shadowed);\n } else {\n gl_FragColor = vec4(color);\n gl_FragColor.rgb *= gl_FragColor.a;\n }\n}\n"},39:e=>{e.exports="precision highp float;\n\nattribute vec2 position;\nattribute vec2 prevPosition;\nattribute float vertex;\n\nuniform float width;\nuniform float height;\nuniform float thickness;\n\nvarying vec2 position_vec;\nvarying vec2 prev_position_vec;\n\nvoid main() {\n vec2 delta = position - prevPosition;\n vec2 alpha = prevPosition;\n vec2 beta = position;\n\n vec2 normalized_delta = normalize(delta);\n vec2 normal = vec2(-thickness/2.0 * normalized_delta.y, thickness/2.0 * normalized_delta.x);\n\n vec2 vertex_position =\n step(0.5, mod(vertex, 2.0))*alpha + // alpha if vertex is odd, 0 otherwise\n step(0.5, mod(vertex + 1.0, 2.0))*beta + // beta if vertex is even, 0 otherwise\n 2.0*(step(1.5, vertex)-0.5)*normal // -normal if vertex < 2, +normal otherwise\n ;\n\n position_vec = vec2(position.x, height - position.y);\n prev_position_vec = vec2(prevPosition.x, height - prevPosition.y);\n\n gl_Position = vec4(2.0*vertex_position.x/width - 1.0, 1.0 - 2.0*vertex_position.y/height, 0.0, 1.0);\n}\n"}},i={};function a(e){var t=i[e];if(void 0!==t)return t.exports;var n=i[e]={id:e,exports:{}};return r[e](n,n.exports,a),n.exports}a.m=r,a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((t,n)=>(a.f[n](e,t),t)),[])),a.u=e=>e+".bundle.esm.js",a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t={792:0},n=e=>{var n,r,{ids:i,modules:o,runtime:s}=e,l=0;for(n in o)a.o(o,n)&&(a.m[n]=o[n]);for(s&&s(a);l<i.length;l++)r=i[l],a.o(t,r)&&t[r]&&t[r][0](),t[i[l]]=0},a.f.j=(e,r)=>{var i=a.o(t,e)?t[e]:void 0;if(0!==i)if(i)r.push(i[1]);else{var o=import("./"+a.u(e)).then(n,(n=>{throw 0!==t[e]&&(t[e]=void 0),n}));o=Promise.race([o,new Promise((n=>i=t[e]=[n]))]),r.push(i[1]=o)}},a.nc=void 0;var o={};(()=>{a.d(o,{xQ:()=>tn,wM:()=>nn,KG:()=>Zt,tw:()=>on,MH:()=>zt,Oy:()=>Vt,Ay:()=>Zt});const t=(n={default:()=>e.default,useCallback:()=>e.useCallback,useEffect:()=>e.useEffect,useMemo:()=>e.useMemo,useRef:()=>e.useRef,useState:()=>e.useState},r={},a.d(r,n),r);var n,r,i=a(556),s=a.n(i);const l=["values","tuples","objects"],A=[...l,"tuple_observable","object_observable","generator"],h=s().any,c=s().shape({data:h.isRequired,type:s().oneOf([...A,"infer"]),xKey:s().string,yKey:s().string,xUnixDates:s().bool,color:s().oneOfType([s().string,s().number]),name:s().string,xLabel:s().string,yLabel:s().string,ignoreDiscontinuities:s().bool,dashed:s().bool,dashPattern:s().arrayOf(s().number),width:s().number,rangeSelectorWidth:s().number,axis:s().oneOfType([s().string,s().object]),expandYWith:s().arrayOf(s().number),defaultAlwaysTooltipped:s().bool,square:s().bool,shiftXBy:s().number,graph:s().number,background:s().object,hideFromKey:s().bool,showIndividualPoints:s().bool,rendering:s().oneOf(["line","bar","area"]),negativeColor:s().string,gradient:s().array,zeroLineWidth:s().number,zeroLineColor:s().string,zeroLineY:s().oneOfType([s().number,s().string]),pointRadius:s().number,tooltipWidth:s().number,hasAreaBottom:s().bool,shadowColor:s().string,rangeKey:s().string}),d=s().arrayOf(c),g=s().shape({axisIndex:s().number.isRequired,series:s().array.isRequired,side:s().oneOf(["left","right"]).isRequired,scale:s().oneOf(["linear","log"]).isRequired,label:s().string}),p=s().arrayOf(g),u=s().shape({label:s().string.isRequired,calculator:s().func.isRequired,datesOnly:s().bool}),m=s().arrayOf(u),C={includeSeriesLabel:s().bool,includeXLabel:s().bool,includeYLabel:s().bool,includeXValue:s().bool,includeYValue:s().bool,floating:s().bool,alwaysFixedPosition:s().bool,floatPosition:s().oneOf(["top","bottom"]),floatDelta:s().number,savingDisabled:s().bool,customTooltip:s().func,combineTooltips:s().oneOfType([s().bool,s().number])},x=s().shape(C),f=s().shape({x:s().oneOfType([s().string,s().number,s().instanceOf(Date)]),startX:s().oneOfType([s().string,s().number,s().instanceOf(Date)]),endX:s().oneOfType([s().string,s().number,s().instanceOf(Date)]),series:s().arrayOf(s().string),content:s().string,lineOnly:s().bool}),b=s().arrayOf(f),y=s().shape({x:s().number.isRequired,y:s().number.isRequired,radius:s().number,fillColor:s().string,strokeColor:s().string,strokeWidth:s().number,onClick:s().func,onDoubleClick:s().func}),_=s().arrayOf(y),B=s().shape({x:s().number.isRequired,color:s().string,lineTop:s().number,width:s().number,markTop:s().bool,style:s().object,markerStyle:s().object,text:s().string,textTop:s().number,textStyle:s().object,minPixelX:s().number,maxPixelX:s().number,onRangeGraph:s().oneOfType([s().bool,s().object]),onRangeGraphOnly:s().bool}),E={Data:h,SingleSeries:c,Series:d,Axis:g,Axes:p,CustomBoundsSelector:u,CustomBoundsSelectors:m,TooltipOptions:x,TooltipOptionsRaw:C,Annotations:b,DraggablePoint:y,DraggablePoints:_,VerticalLine:B,VerticalLines:s().arrayOf(B)};async function w(e,t,{reset:n=!0}={}){n&&(e.width="",e.height="",e.style.width="0",e.style.height="",await new Promise((e=>requestAnimationFrame(e))));let r=e.parentNode.getBoundingClientRect();for(;0===r.width;)await new Promise((e=>requestAnimationFrame(e))),r=e.getBoundingClientRect();const i=2*(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1),a=r.width,o=r.height,s=a*i,l=o*i;return e.width=s,e.height=l,e.style.width=`${a}px`,e.style.height=`${o}px`,{pixelRatio:i,elementWidth:a,elementHeight:o,renderWidth:s,renderHeight:l,boundingRect:r}}const v=["#F1C232","#1259f8","#cb4b4b","#4da74d","#9440ed","#61e0ed","#ed6d2c","#ed13c6","#bbed59"];function k(e,t,n){return"string"==typeof e?e:"number"==typeof e?v[e%v.length]:void 0!==n?v[n%v.length]:v[t%v.length]}var S=a(390),D=a.n(S),X=a(39),M=a.n(X),Y=a(120),T=a.n(Y),R=a(789),P=a.n(R);function F(e){if("black"===e)e="#000000";else if("white"===e)e="#FFFFFF";else if("transparent"===e)return[0,0,0,0];if(e.startsWith("rgb")){const t=e.split(",").map((e=>parseFloat(e.match(/\d+(\.\d+)?/)[0])));return[t[0]/255,t[1]/255,t[2]/255,t.length>=4?t[3]:1]}if("string"!=typeof e||!/^#[\dA-F]{6}$/i.test(e))throw new Error(`Color must be a hex string: ${e}`);return[parseInt(e.substr(1,2),16)/255,parseInt(e.substr(3,2),16)/255,parseInt(e.substr(5,2),16)/255,1]}function I(e,{splitAtY:t}={}){const n=[];let r=[],i=!0;const{nullMask:a,maxYValues:o,minYValues:s,yValues:l}=e;for(let e=0;e<l.length;e++){const A=2*e,h=l[e];if(1&a[e]){i||(n.push(r),r=[]),i=!0;continue}r.push([A,h]);const c=s[e],d=o[e];if(c!==d&&(2&a[e]||r.push([A,c]),4&a[e]||r.push([A,d]),r.push([A,h])),i=!1,"number"==typeof t&&e>0){const o=l[e-1];(!(1&a[e-1])&&o<t&&h>=t||o>t&&h<=t||o===t&&h!==t)&&(i||(n.push(r),r=[[A,h]]),i=!0)}}return i||n.push(r),n}let z;const $=a.e(744).then(a.bind(a,744)).then((e=>e.default().then((()=>{z=e}))));function O(){return z}function L(e,{dashed:t,dashPattern:n}){let r=0;for(let i of e)if(t)for(let e=0;e<i.length;e++)t&&e%(n[0]+n[1])>=n[0]||r++;else r+=i.length;const i=new Float32Array(8*r),a=new Float32Array(8*r),o=new Float32Array(4*r),s=new Uint32Array(6*r);if(r>0){const e=new Float32Array([0,1,2,3]);o.set(e);let t=e.length,n=e.length;for(;t<o.length;)t+n>o.length&&(n=o.length-t),o.copyWithin(t,0,n),t+=n,n<<=1}let l=0;for(let r of e)for(let e=0;e<r.length;e++){if(t&&e%(n[0]+n[1])>=n[0])continue;const[o,A]=r[e];let h,c;0===e?(h=o-1,c=A):[h,c]=r[e-1];for(let e=0;e<4;e++)i[8*l+2*e]=o,i[8*l+2*e+1]=A,a[8*l+2*e]=h,a[8*l+2*e+1]=c;s[6*l]=4*l,s[6*l+1]=4*l+1,s[6*l+2]=4*l+3,s[6*l+3]=4*l,s[6*l+4]=4*l+2,s[6*l+5]=4*l+3,l++}return{positions:i,prevPositions:a,vertices:o,indices:s}}function G(e,t,n){const r=e.createShader(e.VERTEX_SHADER);e.shaderSource(r,t),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS)||console.error(e.getShaderInfoLog(r));const i=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(i,n),e.compileShader(i),e.getShaderParameter(i,e.COMPILE_STATUS)||console.error(e.getShaderInfoLog(i));const a=e.createProgram();return e.attachShader(a,r),e.attachShader(a,i),e.linkProgram(a),e.validateProgram(a),e.getProgramParameter(a,e.LINK_STATUS)||console.error(e.getProgramInfoLog(a)),a}class N{constructor(e){this._gl=e,this._program=G(e,M(),D()),this._circleProgram=G(e,P(),T()),this._positionBuffer=e.createBuffer(),this._prevPositionBuffer=e.createBuffer(),this._vertexBuffer=e.createBuffer(),this._indexBuffer=e.createBuffer(),this._individualPointBuffer=e.createBuffer(),e.getExtension("OES_element_index_uint")||console.error("Your browser does not support OES_element_index_uint")}dispose(){}clear(){const e=this._gl,t=e.drawingBufferWidth,n=e.drawingBufferHeight;e.clearColor(0,0,0,0),e.clear(e.DEPTH_BUFFER_BIT|e.COLOR_BUFFER_BIT),e.viewport(0,0,t,n)}draw(e,t){const n=this._gl,r=n.drawingBufferWidth,i=n.drawingBufferHeight;n.useProgram(this._program);const a=2*((t.width||1)+(t.highlighted?2:0)),o=void 0===t.shadowBlur?2:t.shadowBlur,s=t.shadowColor||"black",l=t.dashed||!1,A=t.dashPattern||[5,5],{positions:h,prevPositions:c,vertices:d,indices:g}=function(e,{dashed:t,dashPattern:n}){if(e.paths)return L(e.paths,{dashed:t,dashPattern:n});if(!O())return L(I(e),{dashed:t,dashPattern:n});const r=O().get_point_number(e.nullMask,e.yValues,e.minYValues,e.maxYValues,t,n[0],n[1]);let i=new Float32Array(8*r),a=new Float32Array(8*r),o=new Float32Array(4*r),s=new Uint32Array(6*r);return O().extract_vertices(2,e.nullMask,e.yValues,e.minYValues,e.maxYValues,i,a,o,s,t,n[0],n[1]),{positions:i,prevPositions:a,vertices:o,indices:s}}(e,{dashed:l,dashPattern:A}),p=n.getAttribLocation(this._program,"position"),u=n.getAttribLocation(this._program,"prevPosition"),m=n.getAttribLocation(this._program,"vertex");if(n.enableVertexAttribArray(p),n.bindBuffer(n.ARRAY_BUFFER,this._positionBuffer),n.bufferData(n.ARRAY_BUFFER,h,n.STATIC_DRAW),n.vertexAttribPointer(p,2,n.FLOAT,!1,0,0),n.enableVertexAttribArray(u),n.bindBuffer(n.ARRAY_BUFFER,this._prevPositionBuffer),n.bufferData(n.ARRAY_BUFFER,c,n.STATIC_DRAW),n.vertexAttribPointer(u,2,n.FLOAT,!1,0,0),n.enableVertexAttribArray(m),n.bindBuffer(n.ARRAY_BUFFER,this._vertexBuffer),n.bufferData(n.ARRAY_BUFFER,d,n.STATIC_DRAW),n.vertexAttribPointer(m,1,n.FLOAT,!1,0,0),n.uniform1f(n.getUniformLocation(this._program,"width"),r),n.uniform1f(n.getUniformLocation(this._program,"height"),i),n.uniform1f(n.getUniformLocation(this._program,"thickness"),Math.max(a,1)+o),n.uniform1f(n.getUniformLocation(this._program,"shadowBlur"),o),n.uniform4f(n.getUniformLocation(this._program,"color"),...F(t.color)),n.uniform4f(n.getUniformLocation(this._program,"shadowColor"),...F(s)),n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,this._indexBuffer),n.bufferData(n.ELEMENT_ARRAY_BUFFER,g,n.STATIC_DRAW),n.drawElements(n.TRIANGLES,g.length,n.UNSIGNED_INT,0),t.showIndividualPoints){n.useProgram(this._circleProgram),n.uniform1f(n.getUniformLocation(this._circleProgram,"width"),r),n.uniform1f(n.getUniformLocation(this._circleProgram,"height"),i),n.uniform1f(n.getUniformLocation(this._circleProgram,"pointSize"),2*(a+6)),n.uniform4f(n.getUniformLocation(this._circleProgram,"color"),...F(t.color));const e=t.getIndividualPoints();n.enableVertexAttribArray(0),n.bindBuffer(n.ARRAY_BUFFER,this._individualPointBuffer),n.bufferData(n.ARRAY_BUFFER,new Float32Array(e.flat()),n.STATIC_DRAW),n.vertexAttribPointer(0,2,n.FLOAT,!1,0,0),n.drawArrays(n.POINTS,0,e.length)}}}class W{constructor(){this._listeners={}}clearListeners(){this._listeners={}}on(e,t){this._listeners[e]=this._listeners[e]||new Set,this._listeners[e].add(t)}off(e,t){this._listeners[e]&&(this._listeners[e].delete(t),0===this._listeners[e].size&&delete this._listeners[e])}emit(e){if(!this._listeners[e])return;const t=[];for(let e=1;e<arguments.length;e++)t.push(arguments[e]);this._listeners[e].forEach((e=>{e.apply(this,t)}))}}var q=a(400),U=a.n(q),H=a(765),j=a.n(H);class K{constructor(e){this._gl=e,this._program=G(e,j(),U()),this._vertexBuffer=e.createBuffer(),this._indexBuffer=e.createBuffer(),e.getExtension("OES_element_index_uint")||console.error("Your browser does not support OES_element_index_uint")}draw({data:e}){const t=this._gl;t.useProgram(this._program);for(let{minXt:n,maxXt:r,color:i}of e){t.uniform4f(t.getUniformLocation(this._program,"color"),...F(i));const e=new Float32Array([n,1,r,1,r,-1,n,1,r,-1,n,-1]);t.bindBuffer(t.ARRAY_BUFFER,this._vertexBuffer),t.bufferData(t.ARRAY_BUFFER,new Float32Array(e),t.STATIC_DRAW);const a=t.getAttribLocation(this._program,"position");t.enableVertexAttribArray(a),t.vertexAttribPointer(a,2,t.FLOAT,!1,0,0),t.enable(t.BLEND),t.blendFunc(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA),t.drawArrays(t.TRIANGLES,0,6)}}}function V(e,{context:t,sizing:n,color:r,zeroColor:i,zeroWidth:a}){a&&(t.strokeStyle=i||r,t.lineWidth=a,t.beginPath(),t.moveTo(0,e),t.lineTo(n.renderWidth,e),t.stroke())}function J({closestSpacing:e,bounds:t,sizing:n,axisSeriesCount:r}){const i=e/(t.maxX-t.minX)*n.renderWidth,a=.8*i;return{barWidth:a/r,totalBarWidth:a,barSpacing:.2*i}}function Z(e,t={useSimpleData:!1}){if(e.type&&"infer"!==e.type)return e.type;const n=t.data||t.useSimpleData&&e.simpleData||e.data;if(!n)throw new Error("Data must be provided");if(Array.isArray(n))return 0===n.length||Array.isArray(n[0])?"tuples":"number"!=typeof n[0]&&n[0]?"objects":"values";if(n.observe)return e.xKey?"object_observable":"tuple_observable";if("function"==typeof n)return"generator";throw new Error("Could not infer type")}class Q extends W{constructor({stateController:e,canvasElement:t,webgl:n=!1,checkIntersection:r=!0}){super(),this._stateController=e,this._checkIntersection=r,this._canvas=t,this._webgl=n,n&&(this._context=this._canvas.getContext("webgl"),this._context?this._lineProgram=new N(this._context):(alert("WebGL failed! Attempting fallback to CPU rendering"),this._webgl=!1)),this._webgl||(this._context=this._canvas.getContext("2d"),this._context2d=this._context),this._initialized=this._initializeCanvas(),this._boundResize=this.resize.bind(this),this._cachedAxisCount=null,this._onAxisChange=e=>{const t=e.filter((({series:e})=>e.length>0)).length;this._cachedAxisCount!==t&&(this._cachedAxisCount=t,this.resize())},e.on("axes_changed",this._onAxisChange),e.on("dragging_y_changed",this._boundResize),e.on("showing_sidebar_changed",this._boundResize)}dispose(){this.clearListeners(),this._lineProgram&&this._lineProgram.dispose(),this._cachedAxisCount=null,this._stateController.off("axes_changed",this._onAxisChange),this._stateController.off("dragging_y_changed",this._boundResize),this._resizeObserver&&this._resizeObserver.disconnect(),this._intersectionObserver&&this._intersectionObserver.disconnect()}clear(){this._webgl?this._lineProgram.clear():this._context.clearRect(0,0,this._context.canvas.width,this._context.canvas.height)}render(e,t,{highlighted:n,showIndividualPoints:r,shadowColor:i,shadowBlur:a,width:o,defaultLineWidth:s,bounds:l,globalBounds:A,inRenderSpaceAreaBottom:h}){const c=t=>{l||(l=e.axis.currentBounds);const n=[];let r=e.inSelectedSpace.data;t&&(r=e.inDataSpace);for(let[e,t]of r)null!==t&&n.push([(e-l.minX)/(l.maxX-l.minX)*this._sizing.renderWidth,(1-(t-l.minY)/(l.maxY-l.minY))*this._sizing.renderHeight]);return n};let d;if("bar"===e.rendering||"area"===e.rendering){this._context2d=this._context2d||this._canvas.getContext("2d"),this._webgl&&this._context.flush(),l||(l=e.axis.currentBounds);const t="bottom"===e.zeroLineY?this._sizing.renderHeight:(1-((e.zeroLineY||0)-l.minY)/(l.maxY-l.minY))*this._sizing.renderHeight;d={context:this._context2d,color:k(e.color,e.index,e.multigrapherSeriesIndex),sizing:this._sizing,zero:t,hasNegatives:!!e.inDataSpace.find((e=>e[1]<0)),negativeColor:e.negativeColor,zeroWidth:e.zeroLineWidth,zeroColor:e.zeroLineColor},!d.hasNegatives&&e.expandYWith&&(d.hasNegatives=e.expandYWith.some((e=>e<0)))}if("bar"===e.rendering)return void function(e,{color:t,context:n,sizing:r,indexInAxis:i,axisSeriesCount:a,zero:o,hasNegatives:s,negativeColor:l,zeroColor:A,zeroWidth:h,closestSpacing:c,bounds:d}){n.strokeStyle=t,n.fillStyle=t;const{barWidth:g,totalBarWidth:p}=J({closestSpacing:c,bounds:d,sizing:r,axisSeriesCount:a}),u=s?o:r.renderHeight;for(let r=0;r<e.length;r++){const[a,A]=e[r];s&&(n.fillStyle=A<=o?t:l),n.fillRect(a-p/2+g*i,A,g,u-A)}h&&V(u,{context:n,sizing:r,color:t,zero:o,zeroColor:A,zeroWidth:h})}(c(!0),{...d,indexInAxis:e.axis.series.indexOf(e),axisSeriesCount:e.axis.series.length,closestSpacing:A.closestSpacing,bounds:l});if("area"===e.rendering)return void function(e,t,{color:n,context:r,sizing:i,zero:a,hasNegatives:o,gradient:s,zeroColor:l,zeroWidth:A,showIndividualPoints:h,negativeColor:c,pointRadius:d,width:g,highlighted:p,shadowColor:u="black",shadowBlur:m=5,inRenderSpaceAreaBottom:C}){if(r.fillStyle=n,r.shadowColor=u,r.shadowBlur=m,s&&s.length>2){const e=r.createLinearGradient(0,0,0,i.renderHeight);for(let t=0;t<s.length;t++){const n=s[t];Array.isArray(n)?e.addColorStop(n[0],n[1]):e.addColorStop(t/(s.length-1),n)}r.fillStyle=e,"gradient"===n&&(r.strokeStyle=e)}else r.fillStyle=n;if(!e.length)return;const x=o?a:i.renderHeight,f=I(t),b=C&&I(C),y=I(t,{splitAtY:a});for(let e=0;e<f.length;e++){const t=f[e],n=b&&b[e];r.beginPath();const[i,a]=t[0],[o,s]=t[t.length-1];b||r.moveTo(i,x);for(let e=0;e<t.length;e++){const[n,i]=t[e];r.lineTo(n,i)}if(n&&n.length){for(let e=n.length-1;e>=0;e--){const[t,i]=n[e];r.lineTo(t,i)}r.lineTo(...t[0])}else r.lineTo(o,x);r.fill()}p&&(g+=2),g*=2,r.strokeStyle=n,r.lineWidth=g;for(let e of y)if(e.length){if(o){let t=!0;t=e.length>=2?e[1][1]<=a:e[0][1]<=a,r.strokeStyle=t?n:c}r.beginPath();for(let t=0;t<e.length;t++){const[n,i]=e[t];0===t?r.moveTo(n,i):r.lineTo(n,i)}r.stroke()}if(A&&V(x,{context:r,sizing:i,color:n,zero:a,zeroColor:l,zeroWidth:A}),h){r.fillStyle=n;for(let[t,i]of e)c&&o&&(r.fillStyle=i===a&&l?l:i<a?n:c),r.beginPath(),r.arc(t,i,d||8,0,2*Math.PI,!1),r.fill()}}(c(!0),t,{...d,showIndividualPoints:"boolean"==typeof e.showIndividualPoints?e.showIndividualPoints:r,gradient:e.gradient,pointRadius:e.pointRadius,highlighted:n,width:o||e.width||s,shadowColor:i,shadowBlur:a,inRenderSpaceAreaBottom:h});const g={color:k(e.color,e.index,e.multigrapherSeriesIndex),context:this._context,width:o||e.width||s,shadowColor:i,shadowBlur:a,dashed:e.dashed,dashPattern:e.dashPattern,highlighted:n,showIndividualPoints:"boolean"==typeof e.showIndividualPoints?e.showIndividualPoints:r,getIndividualPoints:c,getRanges:e.rangeKey?()=>(l||(l=e.axis.currentBounds),e.rangeKey?"objects"!==Z(e,{useSimpleData:!0})?[]:(e.simpleData||e.data).map((t=>{const n=t[e.rangeKey];if(!n)return null;const r=n.min,i=n.max,a=t[e.xKey];return{x:a,range:n,pixelX:(a-l.minX)/(l.maxX-l.minX)*this._sizing.renderWidth,pixelMinY:"number"==typeof r?(1-(r-l.minY)/(l.maxY-l.minY))*this._sizing.renderHeight:null,pixelMaxY:"number"==typeof i?(1-(i-l.minY)/(l.maxY-l.minY))*this._sizing.renderHeight:null}})):[]):null};this._webgl?this._lineProgram.draw(t,g):function(e,{color:t,width:n=1,context:r,shadowColor:i="black",shadowBlur:a=5,dashed:o=!1,dashPattern:s=null,highlighted:l=!1,showIndividualPoints:A=!1,getIndividualPoints:h,getRanges:c}){l&&(n+=2),n*=2,r.strokeStyle=t,r.lineWidth=n,r.shadowColor=i,r.shadowBlur=a,o?r.setLineDash(s||[5,5]):r.setLineDash([]);const d=I(e);for(let e of d){r.beginPath();for(let t=0;t<e.length;t++){const[n,i]=e[t];0===t?r.moveTo(n,i):r.lineTo(n,i)}r.stroke()}if(c){const e=c();r.lineWidth=n,r.strokeStyle=t,r.setLineDash([]);const i=16;for(let t of e){if(!t)continue;const{pixelX:e,pixelMinY:n,pixelMaxY:a}=t;null!==n&&(r.beginPath(),r.moveTo(e-i/2,n),r.lineTo(e+i/2,n),r.stroke()),null!==a&&(r.beginPath(),r.moveTo(e-i/2,a),r.lineTo(e+i/2,a),r.stroke()),null!==n&&null!==a&&(r.beginPath(),r.moveTo(e,n),r.lineTo(e,a),r.stroke())}}if(A){r.fillStyle=t;const e=h();for(let[t,i]of e)r.beginPath(),r.arc(t,i,n+4,0,2*Math.PI,!1),r.fill()}}(t,g)}renderBackground(e){e&&(this._webgl?(this._backgroundProgram||(this._backgroundProgram=new K(this._context)),this._backgroundProgram.draw(e)):function({data:e},{context:t}){const n=t.canvas.width,r=t.canvas.height;for(let{minXt:i,maxXt:a,color:o}of e)t.fillStyle=o,t.fillRect(i*n,0,(a-i)*n,r)}(e,{context:this._context}))}async _initializeCanvas(){if(this._sizing=await w(this._canvas,this._context),this.emit("size_changed",this._sizing),this._stateController.markSizeChanged(),window.ResizeObserver){let e=!0,t=!1;this._resizeObserver=new window.ResizeObserver((()=>{e?e=!1:t||(t=!0,this.resize().then((()=>{t=!1})))})),this._resizeObserver.observe(this._canvas.parentNode)}this._checkIntersection&&window.IntersectionObserver&&(this._intersectionObserver=new window.IntersectionObserver((e=>{clearTimeout(this._intersectionTimeout),e[0].isIntersecting&&(this._intersectionTimeout=setTimeout((()=>{this.resize()}),50))}),{threshold:.1}),this._intersectionObserver.observe(this._canvas.parentNode))}async resize(){const e=w(this._canvas,this._context,{reset:!0});this._initialized=e,this._sizing=await this._initialized,this._initialized===e&&(this.emit("size_changed",this._sizing),this._stateController.markSizeChanged(this))}resizeDebounced(){this._resizeTimeout&&clearTimeout(this._resizeTimeout),this._resizeTimeout=setTimeout((()=>{this.resize(),this._resizeTimeout=null}),50)}recalculatePosition(){this._sizing&&(this._sizing.boundingRect=this._canvas.getBoundingClientRect())}get boundingRect(){return this._sizing?.boundingRect}get sizing(){return this._sizing}}function ee(e){return Math.max(2-Math.log10(Math.abs(e)),0)}function te(e,t=null){if(null===t&&(t=ee(e)),isNaN(t)||t>100)return e.toString();const n=e.toFixed(Math.ceil(t));let r=n;return n.includes(".")&&(r=r.replace(/\.?0+$/g,"")),""===r?"0":r}const ne={};function re(e,t){try{let n=ne[e];if(!n){let t=e;e&&"local"!==e||(t=Intl.DateTimeFormat().resolvedOptions().timeZone),n=new Intl.DateTimeFormat("en-US",{timeZone:t,timeZoneName:"longOffset"}),ne[e]=n}const r=n.formatToParts(t).find((e=>"timeZoneName"===e.type));if(!r)return null;if("GMT"===r.value)return 0;if(!/^GMT[+-]\d{2}:\d{2}$/.test(r.value))return null;const[i,a]=r.value.slice(3).split(":");return 60*parseInt(i)*60*1e3+60*parseInt(a)*1e3}catch(n){return console.error(new Error(`Could not parse timezone offset for ${t} in ${e}`)),console.error(n),null}}function ie(e,t){if(!t){const t=new Date(e);return t.setHours(0,0,0,0),t}const n=re(t,e);let r=new Date(e);return r.setUTCHours(0,0,0,0),r.valueOf()-e.valueOf()>n&&(r=new Date(r.valueOf()-864e5)),new Date(r.valueOf()-n)}function ae(e,{dates:t=!1,precision:n=null,justTime:r=!1,justDate:i=!1,justMonthAndDay:a=!1,clockStyle:o="24h",unitOverride:s,timeZone:l,integersOnly:A=!1,inverseEnumMap:h}={}){return!t||e instanceof Date||(e=new Date(e),!isNaN(e))?e instanceof Date?function(e,{precision:t,justTime:n,justDate:r,justMonthAndDay:i,unitOverride:a,clockStyle:o="24h",timeZone:s}){const l=s&&"utc"===s.toLowerCase();if(s&&!l&&"local"!==s&&window.Intl&&window.Intl.DateTimeFormat){const t=re(s,e),n=re("local",e);"number"==typeof t&&"number"==typeof n&&(e=new Date(e.valueOf()+t-n))}const A=l?e.getUTCFullYear():e.getFullYear(),h=(l?e.getUTCMonth():e.getMonth())+1,c=l?e.getUTCDate():e.getDate();if("year"===a)return A.toString();if(r)return l?`${h}/${c}/${A}`:e.toLocaleDateString();if(i)return`${["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][h-1]} ${c}`;const d=l?e.getUTCHours():e.getHours(),g=l?e.getUTCMinutes():e.getMinutes(),p=l?e.getUTCSeconds():e.getSeconds(),u=l?e.getUTCMilliseconds():e.getMilliseconds();let m;return m="12h"===o?`${((d+11)%12+1).toString()}:${g.toString().padStart(2,"0")}`:`${d.toString().padStart(2,"0")}:${g.toString().padStart(2,"0")}`,"s"!==t&&"ms"!==t||(m+=`:${p.toString().padStart(2,"0")}`),"ms"===t&&(m+=`.${u.toString().padStart(3,"0")}`),"12h"===o&&(m+=d>=12?"pm":"am"),n?m:(l&&(m+=" UTC"),(l?`${h}/${c}/${A}`:e.toLocaleDateString())+" "+m)}(e,{precision:n,justTime:r,justDate:i,justMonthAndDay:a,unitOverride:s,clockStyle:o,timeZone:l}):isNaN(e)?"NaN":h?Math.abs(e-Math.round(e))>1e-10?"":h[Math.round(e)]:A&&Math.abs(e-Math.round(e))>1e-10?"":te(e,n):"Invalid Date"}function oe(e,{precision:t=null,log:n=!1}={}){return null===e?"null":isNaN(e)?"NaN":n?`10^${te(Math.log10(e),t)}`:te(e,t)}const se=32;function le(){return le=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},le.apply(this,arguments)}function Ae({yLabel:e,y:t,fullYPrecision:n}){return n&&!e?void 0===t?"undefined":null===t?"null":t.toString():"number"==typeof e?n?e.toString():oe(e):"object"==typeof e?oe(t):e||oe(t)}function he({axisLabel:e,x:n,y:r,xLabel:i,yLabel:a,textLeft:o,textTop:s,includeSeriesLabel:l,includeXValue:A,includeYValue:h,includeXLabel:c,includeYLabel:d,fullYPrecision:g,formatXOptions:p}){let u=0;return t.default.createElement("g",null,l&&t.default.createElement("text",{x:o,y:s+12*u++},e),A&&t.default.createElement("text",{x:o,y:s+12*u++},c&&"x: ",i||ae(n,p)),h&&t.default.createElement("text",{x:o,y:s+12*u++},d&&"y: ",Ae({yLabel:a,y:r,fullYPrecision:g})))}he.propTypes={axisLabel:s().string,x:s().oneOfType([s().number,s().instanceOf(Date)]),y:s().number,xLabel:s().string,yLabel:s().oneOfType([s().number,s().string]),textLeft:s().number.isRequired,textTop:s().number.isRequired,fullYPrecision:s().bool,formatXOptions:s().object,...E.TooltipOptionsRaw};class ce extends t.default.PureComponent{render(){let e=42;this.props.includeSeriesLabel||(e-=12),this.props.includeXValue||(e-=12),this.props.includeYValue||(e-=12);const n=e/2,r=3-n,i={clockStyle:this.props.clockStyle,timeZone:this.props.timeZone},a={includeSeriesLabel:this.props.includeSeriesLabel,includeXLabel:this.props.includeXLabel,includeYLabel:this.props.includeYLabel,includeXValue:this.props.includeXValue,includeYValue:this.props.includeYValue,formatXOptions:i},o=this.props.tooltips.map((t=>{const{x:o,y:s,pixelY:l,pixelX:A,series:h,index:c,xLabel:d,yLabel:g,fullYPrecision:p}=t;if("number"!=typeof A)return null;const u=(h.name||h.yKey||c).toString();let m=7.5*Math.max(u.length,(d||ae(o,i)).length+4,Ae({yLabel:g,y:s,fullYPrecision:p}).length+4);h.tooltipWidth&&(m=h.tooltipWidth);let C=this.props.elementWidth<m+14+8,x=1;A>=this.props.elementWidth-(m+14+4)&&(x=-1),A<m+14+4&&-1===x&&(C=!0),null===s&&(C=!0),this.props.alwaysFixedPosition&&(C=!0);let f=11;if(x<0?f=-m-f:f+=6,!isFinite(A))return null;const b=`translate(${A},${l})`,y={fullYPrecision:p||this.props.maxPrecision,x:o,y:s,axisLabel:u,xLabel:d,yLabel:g,...a};let _,B=0;return C&&(f=6,_=this.props.elementWidth/2-m/2,m>this.props.elementWidth&&!this.props.floating&&(_-=se*this.props.axisCount/2),B=18,this.props.floating&&(B="bottom"===this.props.floatPosition?this.props.elementHeight+n+4:-e,this.props.floatDelta&&(B+=this.props.floatDelta))),{...t,label:u,indexInAxis:h?.axis?.series?.indexOf(h),axisLabel:u,width:m,fixedPosition:C,multiplier:x,textLeft:f,transform:b,commonLabelProps:y,textTop:r,height:e,caretSize:7,halfHeight:n,caretPadding:4,yTranslation:B,baseLeft:_}})).filter(Boolean),s=this.props.customTooltip;let l;if(this.props.combineTooltips){let e=50;"number"==typeof this.props.combineTooltips&&(e=this.props.combineTooltips),l=[];for(let t of o){let n=!1;for(let r of l)if(Math.abs(r.pixelX-t.pixelX)<=e){r.tooltips.push(t),t.pixelX>r.pixelX&&(r.pixelX=t.pixelX,r.multiplier=t.multiplier),t.pixelY<r.pixelY&&(r.pixelY=t.pixelY),n=!0;break}n||l.push({pixelX:t.pixelX,pixelY:t.pixelY,multiplier:t.multiplier,tooltips:[t]})}for(let e of l){let t=0,n=0;e.tooltips.sort(((e,t)=>e.indexInAxis-t.indexInAxis));for(let r=0;r<e.tooltips.length;r++)e.tooltips[r].textTop=t,t+=e.tooltips[r].height,n=Math.max(n,e.tooltips[r].width);for(let n=0;n<e.tooltips.length;n++)e.tooltips[n].textTop-=t/2,e.tooltips[n].textTop+=3;e.height=t,e.halfHeight=t/2,e.caretSize=7,e.width=n}}return t.default.createElement("div",{className:"grapher-tooltip"},t.default.createElement("svg",null,o.map(((e,r)=>{const{color:i,fixedPosition:a,width:o,transform:s,baseLeft:A,commonLabelProps:h,yTranslation:c,multiplier:d,textLeft:g,textTop:p}=e;return this.props.customTooltip||l?t.default.createElement("g",{key:r,transform:s,className:"tooltip-item"},t.default.createElement("circle",{r:4,fill:i})):a?t.default.createElement("g",{key:r,className:"tooltip-item tooltip-item-fixed"},t.default.createElement("circle",{r:4,fill:i,transform:s}),t.default.createElement("g",{transform:`translate(${A}, ${c})`},t.default.createElement("path",{stroke:i,d:`M0,0 V-${n} h${o} V${n} h${-o} V0`}),t.default.createElement(he,le({textLeft:g,textTop:p},h)))):t.default.createElement("g",{key:r,transform:s,className:"tooltip-item"},t.default.createElement("circle",{r:4,fill:i}),t.default.createElement("path",{stroke:i,d:`M${4*d},0 L${7*d*2},-7 V-${n} h${d*o} V${n} h${d*-o} V7 L${4*d},0`}),t.default.createElement(he,le({textLeft:g,textTop:p},h)))})),!this.props.customTooltip&&l&&l.map((({tooltips:e,pixelX:n,pixelY:r,halfHeight:i,multiplier:a,color:o,width:s},l)=>t.default.createElement("g",{key:l,transform:`translate(${n},${r})`,className:"tooltip-item"},t.default.createElement("path",{stroke:o,d:`M${4*a},0 L${7*a*2},-7 V-${i} h${a*s} V${i} h${a*-s} V7 L${4*a},0`}),e.map(((e,n)=>t.default.createElement(he,le({key:n,textTop:e.textTop,textLeft:e.textLeft},e.commonLabelProps)))))))),this.props.customTooltip&&(l||o).map(((e,n)=>t.default.createElement("div",{key:n,className:"custom-tooltip-container",style:{top:e.pixelY,left:e.pixelX}},t.default.createElement(s,e)))))}}ce.defaultProps={includeSeriesLabel:!0,includeXLabel:!0,includeYLabel:!0,includeXValue:!0,includeYValue:!0},ce.propTypes={mouseX:s().number.isRequired,mouseY:s().number.isRequired,elementHeight:s().number.isRequired,elementWidth:s().number.isRequired,tooltips:s().arrayOf(s().shape({x:s().oneOfType([s().number,s().instanceOf(Date)]),y:s().number,pixelY:s().number,color:s().string,xLabel:s().string,yLabel:s().any,fullYPrecision:s().bool})),axisCount:s().number.isRequired,maxPrecision:s().bool.isRequired,clockStyle:s().oneOf(["12h","24h"]),timeZone:s().string,...E.TooltipOptionsRaw};class de extends t.default.PureComponent{constructor(e){super(e),this.setTextRef=this.setTextRef.bind(this)}setTextRef(e){if(this.textRef=e,this.props.contextMenu.showing&&this.textRef){const e=document.createRange(),t=window.getSelection();t.removeAllRanges(),e.selectNodeContents(this.textRef),t.addRange(e),this.textRef.focus()}}formatDateTime(e){const[t,n]=e.split(", "),[r,i,a]=t.split("/"),o=`${r.padStart(2,"0")}/${i.padStart(2,"0")}/${a}`,[s,l]=n.split(" "),[A,h]=s.split(":");return`${o} ${A.padStart(2,"0")}:${h} ${l}`}render(){const{x:e,y:n,showing:r,value:i}=this.props.contextMenu,a={left:e,top:n,width:"150px"};if(!r||!i||"Invalid Date"===i.toLocaleString()||isNaN(e)||isNaN(n))return null;const o=i instanceof Date?this.formatDateTime(i.toLocaleString()):i;return t.default.createElement("div",{className:"grapher-context-menu",style:a},t.default.createElement("div",{className:"menu-item"},t.default.createElement("div",{className:"menu-text",autoFocus:!0,ref:this.setTextRef},o)))}}function ge(e,t={}){const n=Z(e,{useSimpleData:!0,data:t.data});if(!l.includes(n))throw new Error(`Cannot normalize ${n} (expected a simple type)`);const r={tuples:ue,values:pe,objects:Ce}[n](t.data||e.simpleData||e.data,e,t);if(e.square){const e=[];let n=t.prevY;for(let t of r)void 0!==n&&e.push([t[0],n]),e.push(t),n=t[1];return e}if(e.shiftXBy)for(let n of r)if("string"==typeof n[0]){const r=n[0];n[0]=new Date(new Date(n[0]).valueOf()+e.shiftXBy),isNaN(n[0])&&(n[0]=t.stateController.enumToNumber(r,e))}else n[0]instanceof Date?n[0]=new Date(n[0].valueOf()+e.shiftXBy):"number"==typeof n[0]&&(n[0]+=e.shiftXBy);if(e.xUnixDates)for(let e of r)"number"==typeof e[0]&&(e[0]=new Date(1e3*e[0]));return r}function pe(e,t,n){const r=[];for(let i=0;i<e.length;i++){let a=e[i];"string"==typeof a&&(a=n.stateController.enumToNumber(a,t)),"boolean"==typeof a&&(a=+a),r.push([i+(n.valueXStart||0),a])}return r}function ue(e,t,n){return[...e.map((([e,r])=>{if(void 0===r&&(r=null),"string"==typeof e){const r=e;e=new Date(e),isNaN(e)&&(e=n.stateController.enumToNumber(r,t,!0))}return"string"==typeof r&&(r=n.stateController.enumToNumber(r,t)),"boolean"==typeof r&&(r=+r),[e,r]}))]}function me(e,t,n){const r=e.getUint32(t+2+Uint32Array.BYTES_PER_ELEMENT*n,!0);if(0===r)return null;const i=e.getUint8(r);if(0===i)return e.getFloat64(t+r+1,!0);if(1===i||6===i)return null;if(3===i)return new Date(e.getFloat64(t+r+1,!0));throw new Error(`Binary format type ${i} not supported`)}function Ce(e,t,n){if(!t.xKey||"string"!=typeof t.xKey)throw new Error("xKey must be provided in the series");if(!t.yKey||"string"!=typeof t.yKey)throw new Error("yKey must be provided in the series");const r=[];for(let i of e)if(i.buffer instanceof ArrayBuffer){const e=new DataView(i.buffer),n=i.channels[t.xKey],a=i.channels[t.yKey];for(let t of i.offsets)r.push([me(e,t,n),me(e,t,a)])}else if(Array.isArray(i[t.yKey]))if(i[t.yKey].length&&!Array.isArray(i[t.yKey][0])&&"object"==typeof i[t.yKey][0])for(let e of i[t.yKey]){let i=e[t.yKey];void 0===i&&(i=null),"string"==typeof i&&(i=n.stateController.enumToNumber(i,t)),"boolean"==typeof i&&(i=+i);let a=e[t.xKey];"string"==typeof a&&(a=new Date(a)),r.push([a,i])}else r.push(...i[t.yKey]);else{let e=i[t.yKey];void 0===e&&(e=null);let a=i[t.xKey];"string"==typeof a&&(a=new Date(a)),"string"==typeof e&&(e=n.stateController.enumToNumber(e,t)),"boolean"==typeof e&&(e=+e),r.push([a,e])}return r}function xe(e,{dates:t}){const n=null===e.minX&&null===e.maxX||null===e.minY||null===e.maxY;for(let t of Object.keys(e))"number"!=typeof e[t]&&(e[t]=0);return e.initial=n,e.dates=t,e}function fe(e,{percentile:t=100,percentileAsymmetry:n=0}={}){let r={minX:null,maxX:null,minY:null,maxY:null,closestSpacing:null};if(100!==t&&e.length)return function(e,t,{percentile:n=100,percentileAsymmetry:r=0}={}){let i=!1;t.minX=e[0][0],t.minX instanceof Date&&(t.minX=t.minX.valueOf(),i=!0),t.maxX=e[e.length-1][0],t.maxX instanceof Date&&(t.maxX=t.maxX.valueOf(),i=!0);const a=e.filter((([e,t])=>"number"==typeof t)).sort((([e,t],[n,r])=>t-r));if(!a.length)return xe(t,{dates:i});const o=Math.min(Math.abs(r),(100-n)/2)*(r<0?-1:1),s=(100-n)/2+o,l=(100-n)/2-o,A=Math.floor((a.length-1)*s/100),h=Math.floor((a.length-1)*(100-l)/100);return t.minY=a[A][1],t.maxY=a[h][1],xe(t,{dates:i})}(e,r,{percentile:t,percentileAsymmetry:n});let i=!1,a=null;for(let[t,n]of e){if(t instanceof Date&&(t=t.valueOf(),i=!0),("number"!=typeof r.minX||t<r.minX)&&(r.minX=t),("number"!=typeof r.maxX||t>r.maxX)&&(r.maxX=t),"number"==typeof a&&"number"==typeof t){const e=t-a;("number"!=typeof r.closestSpacing||e<r.closestSpacing)&&(r.closestSpacing=e)}a=t,"number"==typeof n&&(("number"!=typeof r.minY||n<r.minY)&&(r.minY=n),("number"!=typeof r.maxY||n>r.maxY)&&(r.maxY=n))}return xe(r,{dates:i})}function be(e){const t={minX:null,maxX:null,minY:null,maxY:null,closestSpacing:null,dates:!1,initial:!0};for(let{minX:n,maxX:r,minY:i,maxY:a,dates:o,initial:s,closestSpacing:l}of e)o&&(t.dates=!0),s||(t.initial=!1,(null===t.minX||n<t.minX)&&(t.minX=n),(null===t.maxX||r>t.maxX)&&(t.maxX=r),(null===t.closestSpacing||l<t.closestSpacing)&&(t.closestSpacing=l),(null===t.minY||i<t.minY)&&(t.minY=i),(null===t.maxY||a>t.maxY)&&(t.maxY=a));return null===t.minX&&(t.minX=0),null===t.maxX&&(t.maxX=0),null===t.closestSpacing&&(t.closestSpacing=1),null===t.minY&&(t.minY=0),null===t.maxY&&(t.maxY=0),t}function ye(e,{expandYWith:t=[],extendXForNBars:n=0}){const r=Object.assign({},e);for(let e of t)null!=e&&(("number"!=typeof r.minY||e<r.minY)&&(r.minY=e),("number"!=typeof r.maxY||e>r.maxY)&&(r.maxY=e));r.unscaledMinY=r.minY,r.unscaledMaxY=r.maxY;const i=r.maxY-r.minY,a=r.minY+i/2;if(r.minY=a-1.05*i/2,r.maxY=a+1.05*i/2,r.minY===r.maxY&&null!==r.minY&&(r.minY>0?(r.minY*=.95,r.maxY*=1.05):r.minY<0?(r.minY*=1.05,r.maxY*=.95):(r.minY-=1,r.maxY+=1)),n&&r.minX!==r.maxX&&null!==r.minX&&null!==r.maxX){const e=(r.maxX-r.minX)/n;r.minX-=e/2,r.maxX+=e/2}return r}function _e(e,t,n={},r=0,i=void 0){if(void 0===i&&(i=e.length-1),0===e.length)return n.returnIndex?-1:[null,null];const a=Math.floor((r+i)/2);if(t===e[a][0]||e[a][0]instanceof Date&&e[a][0].valueOf()===t)return n.returnIndex?a:e[a];if(r===i)return e[r][0]<t&&"before"===n.searchType||e[r][0]>t&&"after"===n.searchType?n.returnIndex?r:e[r]:n.returnIndex?-1:[null,null];if(i-1===r){let a;return a="before"===n.searchType?r:"after"===n.searchType||Math.abs(e[r][0]-t)>Math.abs(e[i][0]-t)?i:r,n.returnIndex?a:e[a]}return t>e[a][0]?_e(e,t,n,a,i):t<e[a][0]?_e(e,t,n,r,a):void 0}function Be({data:e,swap:t,minX:n,maxX:r,ignoreDiscontinuities:i,square:a}){if(!e.length||e.length&&n>e[e.length-1][0]||e.length&&r<e[0][0])return{data:[[n,null],[r,null]],firstAdded:!0,lastAdded:!0};let o,s=_e(e,n,{searchType:"before",returnIndex:!0})||0,l=_e(e,r,{searchType:"after",returnIndex:!0})||0;for(-1===l&&(l=0);s>=0&&e[s][0]>=n;)s--;for(;l<e.length&&e[l][0]<=r;)l++;let A=!1,h=!1,c=!1,d=s,g=l;if(i){for(;d>=0&&null===e[d][1];)d--;for(;g<e.length&&null===e[g][1];)g++}if(t){if(o=t.data,t.lastAdded&&o.pop(),n===t.minX&&(A=!0),s!==t.beforeIndex){A=!1,t.firstAdded&&o.shift();let r=t.beforeIndex;for(;r>=0&&o.length&&o[0][0]>=n;)i&&!e[r][1]&&0!==e[r][1]||o.unshift(e[r]),r--;for(;r<e.length&&o.length&&o[0][0]<n;)o.shift(),r++}if(i&&!t.ignoreDiscontinuities&&(o=o.filter((([e,t])=>null!=t))),s===t.beforeIndex&&t.firstAdded){h=!0;let t=s+1;if(i)for(;t<e.length&&null===e[t][1];)t++;-1===d&&o.length?o[0]=[n,null]:a&&o.length?o[0]=[n,e[d][1]]:o.length&&(o[0]=[n,Ee(e,d,t,n)]),e[s+1][0]===o[0][0]&&e[s+1][1]===o[0][1]&&(h=!1)}let c=t.afterIndex;if(t.ignoreDiscontinuities&&!i){let t=s+1,n=0;for(h&&n++;n<=o.length&&t<e.length&&t<l;)e[t][0]<=r&&null===e[t][1]&&(!o[n]||o[n][0]!==e[t][0]||o[n][1]!==e[t][1])&&(o.splice(n,0,e[t]),t>=c&&(c=t+1)),t++,n++}let g=c||0;for(;g<e.length&&e[g][0]<=r;)e[g][0]>=n&&(i&&!e[g][1]&&0!==e[g][1]||o.push(e[g])),g++;for(;o.length&&o[o.length-1][0]>r;)o.pop()}else o=e.slice(s+1,l),i&&(o=o.filter((([e,t])=>null!=t)));if(o.length||(o=a?d<0?[[n,null],[r,null]]:[[n,e[d][1]],[r,e[d][1]]]:[[n,Ee(e,d,g,n)],[r,Ee(e,d,g,r)]],h=!0,c=!0),!A){let t=s+1;if(i)for(;t<e.length&&null===e[t][1];)t++;o.length&&o[0][0]>n&&(h=!0,-1===d?o.unshift([n,null]):a?o.unshift([n,e[d][1]]):o.unshift([n,Ee(e,d,t,n)]))}if(o.length&&o[o.length-1][0]<r){c=!0;let t=l-1;if(i)for(;t>=0&&null===e[t][1];)t--;g===e.length?o.push([r,null]):a?o.push([r,o[o.length-1][1]]):o.push([r,Ee(e,t,g,r)])}if(1===o.length){let t,i;a?(t=d<0?[n,null]:[n,e[d][1]],i=[r,o[0][1]]):(t=[n,Ee(e,d,s+1,n)],i=[r,Ee(e,l-1,g,r)]),o.unshift(t),o.push(i),h=!0,c=!0}return{data:o,minX:n,maxX:r,beforeIndex:s,afterIndex:l,firstAdded:h,lastAdded:c,ignoreDiscontinuities:i}}function Ee(e,t,n,r){if(t<0||n<0)return null;if(t>=e.length||n>=e.length)return null;if(t===n)return e[t][1];const[i,a]=e[t],[o,s]=e[n];if(r===i&&null!==a)return a;if(r===o&&null!==s)return s;if(null===a||null===s)return null;const l=(r-i)/(o-i);return l<0||l>1?null:l*(s-a)+a}function we({minY:e,maxY:t,scale:n}){return"log"===n&&(t=Math.log10(t),e=e<=0?t>0?-t:2*t:Math.log10(e)),{minY:e,maxY:t}}function ve({data:e,swap:t,renderWidth:n,renderHeight:r,minX:i,maxX:a,minY:o,maxY:s,scale:l,dataChanged:A}){t&&t.yValues.length!==n&&(t=null);const h=t&&t.nullMask||new Uint8Array(n);h.fill(0);const c=new Float64Array(n),d=new Float64Array(n),g=new Float64Array(n),p=we({minY:o,maxY:s,scale:l}),u={data:e,renderWidth:n,renderHeight:r,minX:i,maxX:a,minY:o=p.minY,maxY:s=p.maxY,scale:l};let m,C;if(O()){let n=0;const r=t&&t.dataNullMask&&t.dataF64,o=!A&&r&&t.minX===i&&t.maxX<=a&&t.length<=e.length;if(!o||t.dataNullMask.length<e.length){const n=1.25;m=new Float64Array(Math.floor(2*e.length*n)),C=new Uint8Array(Math.floor(e.length*n)),o&&(C.set(t.dataNullMask),m.set(t.dataF64))}else m=t.dataF64,C=t.dataNullMask;o&&(n=Math.max(t.length-1,0));for(let t=n;t<e.length;t++)m[2*t]=e[t][0],m[2*t+1]=e[t][1],null===e[t][1]?C[t]=1:C[t]=0;O().selected_space_to_render_space(e.length,m,C,u,h,c,d,g)}else!function({data:e,renderWidth:t,renderHeight:n,minX:r,maxX:i,minY:a,maxY:o,scale:s},{nullMask:l,yValues:A,minYValues:h,maxYValues:c}){let d=0,g=d-1;for(let p=0;p<t;p++){const u=p/(t-1)*(i-r)+r;let m=null,C=null;for(d>0&&d<=e.length&&null===e[d-1][1]&&d--,d<e.length-2&&e[d+1][0]<u&&d++;d<e.length-2&&e[d+1][0]<u;d++){const t=e[d][1];null!==t&&((null===m||t<m)&&(m=t),(null===C||t>C)&&(C=t))}if(h[p]=null===m?0:n*(1-(("log"===s?Math.log10(m):m)-a)/(o-a)),c[p]=null===C?0:n*(1-(("log"===s?Math.log10(C):C)-a)/(o-a)),d>=e.length-1||null===e[d][1]||null===e[d+1][1]){const t=d>=e.length-1?null:e[d][1];l[p]=null===t|(null===m)<<1|(null===C)<<2,A[p]=null===t?0:n*(1-(("log"===s?Math.log10(t):t)-a)/(o-a)),d++;continue}const[x,f]=e[d],[b,y]=e[d+1];let _=(u-x)/(b-x)*(y-f)+f;g!==d&&(_=f),A[p]=null===_?0:n*(1-(("log"===s?Math.log10(_):_)-a)/(o-a)),l[p]=null===_|(null===m)<<1|(null===C)<<2,g=d}}(u,{nullMask:h,yValues:c,minYValues:d,maxYValues:g});return{nullMask:h,yValues:c,minYValues:d,maxYValues:g,dataF64:m,dataNullMask:C,minX:i,maxX:a,length:e.length}}function ke(e,{series:t,inDataSpace:n}){const r=[];let i=0;for(let a of e){const e=Se(a,t);if(t.yKey&&Array.isArray(e)){for(let e of a[t.yKey]){if(t.ignoreDiscontinuities&&"number"!=typeof e[t.yKey]&&!Array.isArray(e))continue;const a=n[i++][0];t.square&&r.length>0&&r.push([a,r[r.length-1][1]]),r.push([a,e])}continue}if(t.ignoreDiscontinuities&&null==e)continue;const o=n[i++][0];t.square&&r.length>0&&r.push([o,r[r.length-1][1]]),r.push([o,a])}return r.length!==n.length&&console.warn("Flattening didn't give the same length as it has in data space"),r}function Se(e,t){return t.yKey?e[t.yKey]:Array.isArray(e)?1===e.length?e[0]:e[1]:e}function De(e,t){return t.xKey?e[t.xKey]:Array.isArray(e)?e[0]:e}function Xe({mouseX:e,mouseY:t,sizing:n},r){const{x:i,y:a}=r,o=r.series.axis.scale,s=r.series.axis.currentBounds,{minY:l,maxY:A}=we({...s,scale:o}),h=(i-s.minX)/(s.maxX-s.minX)*n.elementWidth,c=(1-(("log"===o?Math.log10(a):a)-l)/(A-l))*n.elementHeight,d=Math.sqrt((h-e)**2+(c-t)**2),g=Math.abs(h-e);Object.assign(r,{pixelWidth:n.elementWidth,pixelX:h,pixelY:isNaN(c)?n.elementHeight/2:c,xDistance:g,distance:d})}de.propTypes={contextMenu:s().shape({x:s().number,y:s().number,showing:s().bool,value:s().oneOfType([s().instanceOf(Date),s().number,s().object])}).isRequired};const Me={all:()=>{},lastMinute:e=>{if(e.dates)return{minX:Math.max(new Date(e.maxX).valueOf()-6e4,e.minX)}},last10Minutes:e=>{if(e.dates)return{minX:Math.max(new Date(e.maxX).valueOf()-6e5,e.minX)}},lastHour:e=>{if(e.dates)return{minX:Math.max(new Date(e.maxX).valueOf()-36e5,e.minX)}},lastDay:e=>{if(e.dates)return{minX:Math.max(new Date(e.maxX).valueOf()-864e5,e.minX)}}};function Ye({data:e,swap:t,minX:n,maxX:r,renderWidth:i,dataChanged:a}){const o=2*i;let s;if(!a&&t&&t.minX===n&&t.maxX<=r&&t.length<=e.length?(s=t.data,e.length>t.length&&(e.length>0&&s.length>0&&(s[s.length-1]=e[t.length-1]),s=s.concat(e.slice(t.length)))):s=[...e],s.length/o<4)return{data:s,minX:n,maxX:r,length:e.length};const l=[],A=(r-n)/o;let h=null,c=null,d=0;e.length&&l.push(e[0]);for(let e of s){const[t,r]=e;if(null===r)continue;const i=Math.floor((t-n)/A);i!==d&&(h&&c&&(h===c?l[l.length-1]!==h&&l.push(h):h[0]<c[0]?l.push(c,h):l.push(h,c)),h=null,c=null,d=i),(!h||r<h[1])&&(h=e),(!c||r>c[1])&&(c=e)}return h&&c&&(h===c?l.push(h):h[0]<c[0]?l.push(c,h):l.push(h,c)),e.length>=2&&e[e.length-1]!==h&&e[e.length-1]!==c&&l.push(e[e.length-1]),{data:l,minX:n,maxX:r,length:e.length}}function Te(e,t){let n=e.name||e.yKey;return n||(n=t.toString()),n}function Re({data:e,background:t,minX:n,maxX:r}){if(!t)return null;const i=[];for(let[e,n]of Object.entries(t)){if("object"==typeof n){if("function"!=typeof n.evaluator)throw new Error("Invalid background declaration: "+e+" (evaluator must be a function)");i.push(Object.assign({key:e,comparator:"custom",comparedAgainst:null},n));continue}if("null"===e){i.push({evaluator:e=>null===e&&n,color:n,key:e,comparator:"=",comparedAgainst:null});continue}const[t,r]=e.split(" ");if(!t||!r||isNaN(parseFloat(r)))throw new Error("Invalid background declaration: "+e);const a=parseFloat(r);let o;if("="===t)o=e=>"number"==typeof e&&e===a&&n;else if("<"===t)o=e=>"number"==typeof e&&e<a&&n;else if(">"===t)o=e=>"number"==typeof e&&e>a&&n;else if("<="===t)o=e=>"number"==typeof e&&e<=a&&n;else{if(">="!==t)throw new Error("Invalid background declaration: "+e);o=e=>"number"==typeof e&&e>=a&&n}i.push({evaluator:o,color:n,key:e,comparator:t,comparedAgainst:a})}const a=[];let o=null;for(let t=0;t<e.length;t++){let[s,l]=e[t];s instanceof Date&&(s=s.valueOf());for(let A of o?[o.condition,...i]:i){const i=A.evaluator(l);if(o){if(o.color===i)break;let h=s;if(t>0){let[n,r]=e[t-1];n instanceof Date&&(n=n.valueOf()),h=null===o.condition.comparedAgainst?s:null===l?n:n+(A.comparedAgainst-r)/(l-r)*(s-n)}a.push({...o,maxX:h,maxXt:(h-n)/(r-n)}),o=null}if(i){let a=s;if(t>0){let[n,r]=e[t-1];n instanceof Date&&(n=n.valueOf()),a=null===A.comparedAgainst?n:null===r?s:n+(A.comparedAgainst-r)/(l-r)*(s-n)}o={minX:a,minXt:(a-n)/(r-n),color:i,condition:A};break}}}return o&&a.push({...o,maxX:e[e.length-1][0],maxXt:(e[e.length-1][0]-n)/(r-n)}),{data:a}}class Pe extends W{constructor({defaultBoundsCalculator:e,customBoundsSelectors:t,requireWASM:n,defaultShowIndividualPoints:r,defaultShowSidebar:i,defaultShowAnnotations:a,defaultShowOptions:o,syncPool:s,grapherID:l,sharedDataCache:A,sharedSubscriptions:h,fullscreen:c}){super(),this._requireWASM=n,n&&$.then((()=>{this._markDirty()})),this._series=[],this._seriesFromOriginalSeries=new Map,this._axes=[{series:[],scale:"linear",side:"left",axisIndex:0}],this._highlightedSeries=null,this._showIndividualPoints=r||!1,this._autoscaleY=!0,this._percentile=100,this._percentileAsymmetry=0,this._showingOptions=o,this._maxPrecision=!1,this._showingSidebar=i||!1,this._showingAnnotations=a||!1,this._grapherID=l,this._fullscreen=c||!1,this._alwaysTooltipped=new Set,this._tooltipState={mousePresent:!1,mouseX:0,mouseY:0,elementWidth:0,elementHeight:0,tooltips:[]},this._contextMenuPosition={x:0,y:0,showing:!1,value:null},this._savedTooltips=[],this._draggingY=!1,this._annotations=[],this._annotationsState={elementWidth:0,annotations:[]},this._enumMap={},this._hasXEnum=!1,this._timingBuffer=[],this._timingIndex=0,this._timingFrameCount=0,this._modifiedSeries=new Set,this._deferredEmissions={},this._deferredPriorityEmissions={},this.primaryRenderer=null,this.rangeGraphRenderer=null,this._boundsCalculator=function(e,t){if(Me[e])return Me[e];for(let{label:n,calculator:r}of t)if(e===n)return r;return Me.all}(e,t),this._boundsHistory=[this._boundsCalculator],this._boundsIndex=0,this._dataCache=A||new Map,this._subscriptions=h||new Map,this._subscriptionsShared=!!h,this._observablesToSeries=new Map,this._generators=new Set,this._generatorsToSeries=new Map,this._generatorCallArgs=new Map,this._seriesChangedFromPromises=new Set,this._syncPool=s,this._syncPool&&this._syncPool.add(this),this._onDataChange()}dispose(){if(this.emit("dispose",this),this.clearListeners(),!this._subscriptionsShared){for(let e of this._subscriptions.values())e.unsubscribe();this._subscriptions.clear()}for(let e of this._series)this._removeSeries(e);this._syncPool&&this._syncPool.remove(this),this.disposed=!0}setSeries(e){const t=this._series.filter((e=>e.userCreated)),n=this._series.filter((e=>!e.userCreated));if(e.length===n.length){let t=!1;for(let n=0;n<e.length;n++)if(e[n]!==this._series[n].originalSeries){t=!0;break}if(!t)return}else this._mustResize=this._mustResize||this._fullscreen;const r=new Set(e);for(let e of n)r.has(e.originalSeries)||this._removeSeries(e);this._series.splice(0);for(let t=0;t<e.length;t++){const n=e[t];let r=this._seriesFromOriginalSeries.get(n);r||(r={...n,originalSeries:n},this._seriesFromOriginalSeries.set(n,r),r.defaultAlwaysTooltipped&&(this._alwaysTooltipped.add(r),this._tooltipsChanged=!0,this.deferredEmit("always_tooltipped_changed",this._alwaysTooltipped))),r.index=t,this._series.push(r),this._assignAxisTo(r),r.hidden&&this._hideSeries(r)}for(let n=0;n<t.length;n++){const r=t[n];r.index=n+e.length,this._series.push(r)}this.deferredEmit("series_changed",this._series),this._dataChanged=!0,this._markDirty()}_markDirty(){if(this._frameRequested)return;if(this._requireWASM&&!O)return;const e=performance.now();this._frameRequested=!0,requestAnimationFrame((()=>{if(this.disposed)return;const t=performance.now(),n=performance.now();this._dataChanged?(this._onDataChange(),this._mustRerender=!0,this._tooltipsChanged=!0,this._annotationsChanged=!0):this._modifiedSeries.size?(this._onDataAdd(this._modifiedSeries),this._mustRerender=!0,this._tooltipsChanged=!0,this._annotationsChanged=!0):(this._primarySizeChanged&&(this._calculatePrimarySizeDependents(),this._mustRerender=!0),this._rangeGraphSizeChanged&&(this._calculateRangeGraphSizeDependents(),this._mustRerender=!0));const r=performance.now(),i=performance.now();this._mustRerender&&this._render();const a=performance.now(),o=performance.now();this._mustCallGenerators&&this._callGenerators();const s=performance.now(),l=performance.now();this._tooltipsChanged&&this._recalculateTooltips();const A=performance.now(),h=performance.now();this._contextMenuChanged&&this._recalculateContextMenu();const c=performance.now(),d=performance.now();this._annotationsChanged&&this._recalculateAnnotations();const g=performance.now();this._mustResize&&(this.primaryRenderer.resizeDebounced(),this.rangeGraphRenderer&&this.rangeGraphRenderer.resizeDebounced()),this._frameRequested=!1,this._mustRerender=!1,this._dataChanged=!1,this._primarySizeChanged=!1,this._rangeGraphSizeChanged=!1,this._modifiedSeries.clear(),this._seriesChangedFromPromises.clear(),this._tooltipsChanged=!1,this._contextMenuChanged=!1,this._annotationsChanged=!1,this._mustCallGenerators=!1,this._mustResize=!1;const p=performance.now();for(let e of[...Object.values(this._deferredPriorityEmissions),...Object.values(this._deferredEmissions)])this.emit(...e);const u=performance.now();this._deferredEmissions={},this._deferredPriorityEmissions={};const m=performance.now(),C={frameExecution:m-t,frameRequestAndExecution:m-e,generators:s-o,dataProcessing:r-n,renderPipeline:a-i,tooltips:A-l,contextMenu:c-h,annotations:g-d,callbacks:u-p};this.lastLoopTime=C,this._timingFrameCount&&(this._timingBuffer.length<this._timingFrameCount?this._timingBuffer.push(C):this._timingBuffer[this._timingIndex%this._timingFrameCount]=C,this._timingIndex++),this.emit("render_time",m-t,C)}))}deferredEmit(...e){this._deferredEmissions[e[0]]=e}deferredPriorityEmit(...e){this._deferredPriorityEmissions[e[0]]=e}_seriesToSimpleData(e){const t=Z(e);if(l.includes(t))return e.data;let n=this._dataCache.get(e.data);if(n&&this._seriesChangedFromPromises.has(e.data))return n;if(n||(n=[],this._dataCache.set(e.data,n),e.simpleData=n),"object_observable"===t||"tuple_observable"===t){let t=this._observablesToSeries.get(e.data);if(t){const r=t.values().next().value;if(n=r.simpleData,!n)throw new Error(`Cannot find simpleData in ${r.name||r.yKey||r.data}`);this._dataCache.set(e.data,n),e.simpleData=n}else t=new Set,e.simpleData=n,this._observablesToSeries.set(e.data,t);t.add(e),this._listenToObservableData({observable:e.data,currentData:n})}return"generator"===t&&(this._generatorsToSeries.has(e.data)||this._generatorsToSeries.set(e.data,new Set),this._generatorsToSeries.get(e.data).add(e),this._generators.has(e.data)||(this._generators.add(e.data),this._callGenerator(e.data))),n}_listenToPromise(e,t){t.then((t=>{this._dataCache.set(e.data,t),e.simpleData=t,this._seriesChangedFromPromises.add(e.data),this._dataChanged=!0,this._markDirty()}))}_listenToObservableData({observable:e,currentData:t}){if(this._subscriptions.has(e))return;this._subscriptions.set(e,!0);const n=e.observe((n=>{if(Array.isArray(n))for(let e of n)t.push(e);else t.push(n);this.emit("observable_modified",e),this.markObservableModified(e)}));this._subscriptions.set(e,n)}markObservableModified(e){if(this._observablesToSeries.has(e)){for(let t of this._observablesToSeries.get(e))this._modifiedSeries.add(t);this._markDirty()}}_unsubscribeFromStaleSeries(){const e=new Set(this._series);for(let[t,n]of this._observablesToSeries){let r=!1;for(let t of n)if(e.has(t)){r=!0;break}r||(this._subscriptions.get(t).unsubscribe(),this._subscriptions.delete(t),this._observablesToSeries.delete(t))}for(let[t,n]of this._generatorsToSeries){let r=!1;for(let t of n)if(e.has(t)){r=!0;break}r||(this._generatorsToSeries.delete(t),this._generators.delete(t),this._generatorCallArgs.delete(t))}}async _callGenerator(e){const t={minX:this._selection.minX,maxX:this._selection.maxX,sizing:this.primaryRenderer.sizing};if(r=t,void 0===(n=this._generatorCallArgs.get(e))||void 0===r?n===r:n.minX===r.minX&&n.maxX===r.maxX&&n.sizing.elementWidth===r.sizing.elementWidth&&n.sizing.renderWidth===r.sizing.renderWidth)return;var n,r;this._generatorCallArgs.set(e,t);const i=await Promise.resolve(e(t));if(i&&this._generatorsToSeries.has(e))if(this._dataChanged=!0,this._markDirty(),"function"==typeof i.observe){const t=[];this._dataCache.set(e,t);for(let n of this._generatorsToSeries.get(e))n.simpleData=t;for(let t of this._generatorsToSeries.get(e))this._observablesToSeries.has(i)||this._observablesToSeries.set(i,new Set),this._observablesToSeries.get(i).add(t);this._listenToObservableData({observable:i,currentData:t})}else{this._dataCache.set(e,i);for(let t of this._generatorsToSeries.get(e))t.simpleData=i}}_callGenerators(){for(let e of this._generators)this._callGenerator(e)}_recalculateTooltips(){this.primaryRenderer&&this.primaryRenderer.sizing&&(this._tooltipState=function({mousePresent:e,mouseX:t,mouseY:n,sizing:r,series:i,alwaysTooltipped:a,savedTooltips:o,allTooltipped:s,closestSpacing:l}){o=o.filter((e=>e.series.axis));for(let e of o)Xe({mouseX:t,mouseY:n,sizing:r},e);if(!e)return{mouseX:t,mouseY:n,elementWidth:r.elementWidth,elementHeight:r.elementHeight,tooltips:[...o]};const A=[];let h=1/0;for(let e=0;e<i.length;e++){const o=i[e];if(o.hidden)continue;const c=o.axis,d=c.scale,g=c.currentBounds,{minY:p,maxY:u}=we({...g,scale:d}),m=t/r.elementWidth*(g.maxX-g.minX)+g.minX;let C=o.inDataSpace;o.ignoreDiscontinuities&&(C=C.filter((e=>"number"==typeof e[1])));const x=_e(C,m,{returnIndex:!0}),f=C[x];if(!f)continue;const[b,y]=f;if(null===b)continue;let _=(b-g.minX)/(g.maxX-g.minX)*r.elementWidth;const B=(1-(("log"===d?Math.log10(y):y)-p)/(u-p))*r.elementHeight;if(B>r.elementHeight||B<0)continue;const E=a.has(o)||s;let w=20,v=20,S=20;if("bar"===o.rendering){const e=o.axis.series.indexOf(o),t=o.axis.series.length,{totalBarWidth:n,barWidth:i}=J({closestSpacing:l,bounds:g,sizing:r,axisSeriesCount:t});_-=n/2/r.pixelRatio,_+=i*(e+.5)/r.pixelRatio,w=i/2/r.pixelRatio,v=100,S=w+v}const D=Math.abs(_-t),X=Math.abs(B-n),M=Math.sqrt(D**2+(B-n)**2);if(D>w||!E&&X>v||!E&&M>S)continue;let Y,T;const R=o.simpleData||o.data,P=R.length&&!!o.hasEnum;if(o.xLabel||o.yLabel||P){let e;e=R.length===C.length?R[x]:ke(R,{series:o,inDataSpace:C})[x][1],o.xLabel?Y=e[o.xLabel]:o.hasXEnum&&(Y=De(e,o)),o.yLabel?T=e[o.yLabel]:P&&(T=Se(e,o))}M<h&&(h=M);let F=k(o.color,e,o.multigrapherSeriesIndex);y<0&&o.negativeColor?F=o.negativeColor:0===y&&o.zeroLineColor&&(F=o.zeroLineColor),A.push({pixelWidth:r.elementWidth,pixelX:_,pixelY:isNaN(B)?r.elementHeight/2:B,x:b,y,color:F,distance:M,xDistance:D,index:e,series:o,xLabel:Y,yLabel:T,fullYPrecision:o.fullYPrecision,ignoreYDistance:E})}const c=A.filter((({distance:e,ignoreYDistance:t})=>e===h||t)).sort(((e,t)=>t.distance-e.distance));return{mousePresent:e,mouseX:t,mouseY:n,elementWidth:r.elementWidth,elementHeight:r.elementHeight,unsavedTooltipsCount:c.length,tooltips:[...o,...c]}}({mousePresent:this._tooltipState.mousePresent,mouseX:this._tooltipState.mouseX,mouseY:this._tooltipState.mouseY,sizing:this.primaryRenderer.sizing,series:this._series,alwaysTooltipped:this._alwaysTooltipped,savedTooltips:this._savedTooltips,allTooltipped:this._tooltipAllNext,closestSpacing:this._globalBounds.closestSpacing}),this._tooltipAllNext=!1,this.deferredEmit("tooltip_state_changed",this._tooltipState,this._tooltipStateArg),this._tooltipStateArg=null)}_recalculateContextMenu(){if(!this.primaryRenderer||!this.primaryRenderer.sizing)return;const e=this.primaryRenderer.boundingRect,t=this.primaryRenderer.sizing;let n=null,r=null;for(let i of this._series){const a=i.axis.currentBounds;r=this._contextMenuPosition.x-e.left,this._contextMenuPosition.x>2*(e.right-t.elementWidth)&&(r-=130),n="timestamp"===i.xKey||"time"===i.xKey||"date"===i.xKey?new Date((this._contextMenuPosition.x-e.left)/t.elementWidth*(a.maxX-a.minX)+a.minX):(this._contextMenuPosition.x-e.left)/t.elementWidth*(a.maxX-a.minX)+a.minX}this._contextMenuPosition={x:r,y:this._contextMenuPosition.y-e.top,showing:this._contextMenuPosition.showing,value:n},this.deferredEmit("context_menu_position_changed",this._contextMenuPosition)}_recalculateAnnotations(){this.primaryRenderer&&this.primaryRenderer.sizing&&(this._annotationsState=function({annotations:e,series:t,sizing:n,selection:r}){const i=new Set(t.map(((e,t)=>({name:Te(e,t),hidden:e.hidden}))).filter((({hidden:e})=>!e)).map((({name:e})=>e))),{elementWidth:a}=n,{minX:o,maxX:s}=r,l=s-o;return 0===l?{annotations:[],elementWidth:a}:{annotations:e.filter((e=>{if(!e.series)return!0;for(let t of e.series)if(i.has(t))return!0;return!1})).map((e=>{const t=void 0!==e.startX&&void 0!==e.endX,n=void 0!==e.x;let r=e.startX,i=e.endX;if(!t&&n)r=e.x,i=e.x;else if(!t&&!n)return null;const s=e=>"string"==typeof e?new Date(e).valueOf():e instanceof Date?e.valueOf():e;let A=s(r),h=s(i);A>h&&([A,h]=[h,A]);let c=(A-o)/l*a,d=(h-o)/l*a;c=Math.max(0,Math.min(a,c)),d=Math.max(0,Math.min(a,d));let g=d-c;return g<1&&d>0&&c<a&&(!t&&n?(g=1,c-=.5):g=t?1:0),c=Math.max(0,Math.min(a-g,c)),g<=0?null:{...e,isRange:t,pixelStartX:c,pixelWidth:g}})).filter((e=>null!==e)),elementWidth:a}}({annotations:this._annotations,series:this._series,sizing:this.primaryRenderer.sizing,selection:this._selection}),this.deferredEmit("annotations_changed",this._annotationsState))}_onDataChange(){this._expandYWith=[];const e=[];for(let t of this._series){if(t.hidden)continue;const n=this._seriesToSimpleData(t);t.inDataSpace=ge({...t,data:n},{stateController:this}),t.simpleDataSliceStart=n.length,t.dataBounds=fe(t.inDataSpace),"bar"===t.rendering&&(t.dataBounds=ye(t.dataBounds,{extendXForNBars:t.inDataSpace.length,expandYWith:t.expandYWith})),e.push(t.dataBounds),t.expandYWith&&this._expandYWith.push(t.expandYWith)}this._unsubscribeFromStaleSeries(),this._dataBounds=be(e),this._recalculateSelection({disableSwap:!0});for(let e of this._series)e.hidden||(e.selectedBounds=fe(e.inSelectedSpace.data,{percentile:this._percentile,percentileAsymmetry:this._percentileAsymmetry}),e.hasAreaBottom&&(e.selectedBoundsAreaTop=e.selectedBounds,e.selectedBoundsAreaBottom=fe(e.inSelectedSpaceAreaBottom.data,{percentile:this._percentile,percentileAsymmetry:this._percentileAsymmetry}),e.selectedBounds=be([e.selectedBoundsAreaTop,e.selectedBoundsAreaBottom])));this._recalculateAxisBounds();for(let e of this._series)e.hidden||(this._calculatePrimarySizeDependents(e,{dataChanged:!0}),this._calculateRangeGraphSizeDependents(e,{dataChanged:!0}))}_onDataAdd(e){const t=new Map,n=new Set,r=new Set;for(let t of e)r.add(t);for(let r of e){if(n.add(r.axis),!r.inDataSpace)throw new Error("inDataSpace must be present for onDataAdd to be called");const e=this._seriesToSimpleData(r);let i;r.inDataSpace.length&&(i=r.inDataSpace[r.inDataSpace.length-1][1]);const a=ge(r,{data:e.slice(r.simpleDataSliceStart||0),valueXStart:r.inDataSpace.length,prevY:i,stateController:this});if(t.set(r,a),r.simpleDataSliceStart=e.length,a.length<32)r.inDataSpace.push(...a);else for(let e of a)r.inDataSpace.push(e);let o=fe(a);"bar"===r.rendering&&(o=ye(o,{extendXForNBars:r.inDataSpace.length,expandYWith:r.expandYWith})),r.dataBounds=be([r.dataBounds,o]),this._dataBounds=be([this._dataBounds,o]),r.newPointCount=a.length,r.newDataBounds=o}const i=this._selection;this._recalculateSelection();for(let n of e){if(!n.inSelectedSpace.data.length){n.selectedBounds=fe(n.inSelectedSpace.data);continue}const e=n.inSelectedSpace.data[0][0],r=n.inSelectedSpace.data[n.inSelectedSpace.data.length-1][0];if(!(i.minX>=e&&i.maxX<=r)||100!==this._percentile){n.selectedBounds=fe(n.inSelectedSpace.data,{percentile:this._percentile,percentileAsymmetry:this._percentileAsymmetry}),n.hasAreaBottom&&(n.selectedBoundsAreaTop=n.selectedBounds,n.selectedBoundsAreaBottom=fe(n.inSelectedSpaceAreaBottom.data,{percentile:this._percentile,percentileAsymmetry:this._percentileAsymmetry}),n.selectedBounds=be([n.selectedBoundsAreaTop,n.selectedBoundsAreaBottom]));continue}const a=t.get(n).filter((e=>e[0]>=this._selection.minX&&e[0]<=this._selection.maxX));n.newSelectedData=a,n.selectedBounds=be([n.selectedBounds,fe(a)])}this._recalculateAxisBounds(),this.deferredPriorityEmit("axis_bounds_changed",this._axes.map((({currentBounds:e})=>e)));for(let e of n)for(let t of e.series)this._calculatePrimarySizeDependents(t),this._calculateRangeGraphSizeDependents(t)}_recalculateAxisBounds(){for(let e of this._axes){if(this._selection.fixedY||!this._autoscaleY){e.targetBounds=this._selection,e.targetBounds.byAxis&&(e.targetBounds=e.targetBounds.byAxis[e.axisIndex]),e.currentBounds=e.targetBounds;continue}const t=[],n=[];for(let r of e.series)t.push(r.selectedBounds),r.expandYWith&&n.push(...r.expandYWith),"bar"===r.rendering&&n.push(r.selectedBounds.minY,r.selectedBounds.maxY);e.selectedDataBounds=be(t),e.targetBounds=e.currentBounds=ye(e.selectedDataBounds,{expandYWith:n})}this.deferredPriorityEmit("axis_bounds_changed",this._axes.map((({currentBounds:e})=>e)))}_recalculateSelection({disableSwap:e=!1}={}){this._globalBounds=ye(this._dataBounds,{expandYWith:this._expandYWith.flat()}),this.deferredPriorityEmit("global_bounds_changed",this._globalBounds),this._selection=function(e,t){const n=Object.assign({},e,t(e));return n.maxX instanceof Date&&(n.maxX=n.maxX.valueOf()),n.minX instanceof Date&&(n.minX=n.minX.valueOf()),n.maxX<n.minX&&(n.maxX=n.minX),n.minX<e.minX&&(n.minX=e.minX),n.maxX>e.maxX&&(n.maxX=e.maxX),n}(this._globalBounds,this._boundsCalculator),this.deferredPriorityEmit("selection_changed",this._selection);for(let t of this._series)t.hidden||(t.inSelectedSpace=Be({data:t.hasAreaBottom?t.inDataSpace.filter(((e,t)=>t%2==1)):t.inDataSpace,swap:e?null:t.inSelectedSpace,minX:this._selection.minX,maxX:this._selection.maxX,ignoreDiscontinuities:t.ignoreDiscontinuities,square:t.square}),t.hasAreaBottom&&(t.inSelectedSpaceAreaBottom=Be({data:t.inDataSpace.filter(((e,t)=>t%2==0)),swap:e?null:t.inSelectedSpaceAreaBottom,minX:this._selection.minX,maxX:this._selection.maxX,ignoreDiscontinuities:t.ignoreDiscontinuities,square:t.square})))}_render(){if(this.primaryRenderer&&this.primaryRenderer.sizing){this.primaryRenderer.clear(),this.rangeGraphRenderer&&this.rangeGraphRenderer.clear();for(let e of this._series){if(e.hidden)continue;const t=e.shadowColor||{day:"white",export:"transparent",night:"black"}[this._theme]||"black",n=void 0;this.primaryRenderer.renderBackground(e.inBackgroundSpacePrimary),this.primaryRenderer.render(e,e.inRenderSpacePrimary,{highlighted:this._highlightedSeries===e.index,showIndividualPoints:this._showIndividualPoints,shadowColor:t,shadowBlur:n,defaultLineWidth:this._defaultLineWidth,globalBounds:this._globalBounds,inRenderSpaceAreaBottom:e.inRenderSpacePrimaryAreaBottom}),this.rangeGraphRenderer&&this.rangeGraphRenderer.sizing&&this.rangeGraphRenderer.render(e,e.inRenderSpaceRangeGraph,{shadowColor:"transparent",shadowBlur:0,width:1,bounds:this._globalBounds,globalBounds:this._globalBounds,inRenderSpaceAreaBottom:e.inRenderSpaceRangeGraphAreaBottom})}}}_calculatePrimarySizeDependents(e,{dataChanged:t=!1}={}){if(!this.primaryRenderer||!this.primaryRenderer.sizing)return;if(!e){for(let e of this._series)this._calculatePrimarySizeDependents(e);return}if(!this._series.includes(e))throw new Error("Series no longer exists");if(e.hidden)return;const{currentBounds:n,scale:r}=e.axis,i=Math.ceil(this.primaryRenderer.sizing.renderWidth/2),a=Math.ceil(this.primaryRenderer.sizing.renderHeight),o={minX:n.minX,maxX:n.maxX,renderWidth:i,dataChanged:t};e.inCondensedSelectedSpacePrimary=Ye({data:e.inSelectedSpace.data,swap:e.inCondensedSelectedSpacePrimary,...o});const s={minX:n.minX,maxX:n.maxX,minY:n.minY,maxY:n.maxY,renderWidth:i,renderHeight:a,scale:r,dataChanged:t};e.inRenderSpacePrimary=ve({data:e.inCondensedSelectedSpacePrimary.data,swap:e.inRenderSpacePrimary,...s}),e.inBackgroundSpacePrimary=Re({data:e.inCondensedSelectedSpacePrimary.data,background:e.background,swap:e.inBackgroundSpacePrimary,minX:n.minX,maxX:n.maxX}),e.hasAreaBottom&&(e.inCondensedSelectedSpacePrimaryAreaBottom=Ye({data:e.inSelectedSpaceAreaBottom.data,swap:e.inCondensedSelectedSpacePrimaryAreaBottom,...o}),e.inRenderSpacePrimaryAreaBottom=ve({data:e.inCondensedSelectedSpacePrimaryAreaBottom.data,swap:e.inRenderSpacePrimaryAreaBottom,...s}),e.inBackgroundSpacePrimaryAreaBottom=Re({data:e.inCondensedSelectedSpacePrimaryAreaBottom.data,background:e.background,swap:e.inBackgroundSpacePrimaryAreaBottom,minX:n.minX,maxX:n.maxX}))}_calculateRangeGraphSizeDependents(e,{dataChanged:t=!1}={}){if(!this.rangeGraphRenderer||!this.rangeGraphRenderer.sizing)return;if(!e){for(let e of this._series)this._calculateRangeGraphSizeDependents(e);return}if(!this._series.includes(e))throw new Error("Series no longer exists");if(e.hidden)return;const{scale:n}=e.axis,r=this._globalBounds,i=Math.ceil(this.rangeGraphRenderer.sizing.renderWidth/2),a=Math.ceil(this.rangeGraphRenderer.sizing.renderHeight),o={minX:r.minX,maxX:r.maxX,ignoreDiscontinuities:e.ignoreDiscontinuities,square:e.square};e.inSelectedSpaceRangeGraph=Be({data:e.hasAreaBottom?e.inDataSpace.filter(((e,t)=>t%2==1)):e.inDataSpace,swap:e.inSelectedSpaceRangeGraph,...o});const s={minX:r.minX,maxX:r.maxX,renderWidth:i,dataChanged:t};e.inCondensedSelectedSpaceRangeGraph=Ye({data:e.inSelectedSpaceRangeGraph.data,swap:e.inCondensedSelectedSpaceRangeGraph});const l={minX:r.minX,maxX:r.maxX,minY:r.minY,maxY:r.maxY,renderWidth:i,renderHeight:a,scale:n,dataChanged:t};e.inRenderSpaceRangeGraph=ve({data:e.inCondensedSelectedSpaceRangeGraph.data,swap:e.inRenderSpaceRangeGraph,...l}),e.hasAreaBottom&&(e.inSelectedSpaceRangeGraphAreaBottom=Be({data:e.inDataSpace.filter(((e,t)=>t%2==0)),swap:e.inSelectedSpaceRangeGraphAreaBottom,...o}),e.inCondensedSelectedSpaceRangeGraphAreaBottom=Ye({data:e.inSelectedSpaceRangeGraphAreaBottom.data,swap:e.inCondensedSelectedSpaceRangeGraphAreaBottom,...s}),e.inRenderSpaceRangeGraphAreaBottom=ve({data:e.inCondensedSelectedSpaceRangeGraphAreaBottom.data,swap:e.inRenderSpaceRangeGraphAreaBottom,...l}))}_createAxis({side:e}){const t={series:[],scale:"linear",side:e,axisIndex:this._axes.length};return this._axes.push(t),t}_moveAxis(e,t){if(!this._series.includes(e))throw new Error("Series no longer exists");let n;if(n="new-left"===t||"new-right"===t?this._createAxis({side:t.split("-")[1]}):this._axes[parseInt(t)],e.axis===n)return;const r=e.axis,i=r.series.indexOf(e);if(-1===i)throw new Error("Series not present in axis");r.series.splice(i,1),n.series.push(e),e.axis=n,this._dataChanged=!0,this.deferredEmit("axes_changed",this._axes),this.deferredEmit("left_axes_changed",this.leftAxes),this.deferredEmit("right_axes_changed",this.rightAxes),this.deferredEmit("exported_axes_changed",this.exportedAxes),this._markDirty()}_assignAxisTo(e){if(e.axis&&"object"==typeof e.axis)return;let t;if(e.axisIndex){const{axisIndex:n}=e;t="new-left"===n||"new-right"===n?this._createAxis({side:n.split("-")[1]}):this._axes[parseInt(n)]}else if(e.axis){e.originalAxis=e.axis;let[n,r]=e.axis.split("-");t=function({axes:e,side:t,number:n}){let r;n=n&&parseInt(n)||0;let i=0;for(let a of e)if(a.side===t){if(i===n){r=a;break}i++}return r}({axes:this._axes,side:n,number:r}),t||(t=this._createAxis({side:n}))}else t=this._axes[0];t.series.push(e),e.axis=t,this.deferredEmit("axes_changed",this._axes),this.deferredEmit("exported_axes_changed",this.exportedAxes),"left"===e.axis.side?this.deferredEmit("left_axes_changed",this.leftAxes):this.deferredEmit("right_axes_changed",this.rightAxes)}_removeSeries(e){this._seriesFromOriginalSeries.delete(e.originalSeries);const{axis:t,data:n}=e;t.series.splice(t.series.indexOf(e),1);const r=this._observablesToSeries.get(n);r&&(r.delete(e),0===r.size&&this._observablesToSeries.delete(n)),this._generatorsToSeries.has(n)&&(this._generatorsToSeries.get(n).delete(e),0===this._generatorsToSeries.get(n).size&&(this._generatorsToSeries.delete(n),this._generators.delete(n))),this._alwaysTooltipped.delete(e),e.axis=e.originalAxis,delete e.originalAxis,delete e.inDataSpace,delete e.inSelectedSpace,delete e.inValueSpacePrimary,delete e.inValueSpaceRangeGraph,delete e.inRenderSpacePrimary,delete e.inRenderSpaceRangeGraph,delete e.newPointCount,delete e.newDataBounds,delete e.simpleDataSliceStart,this.deferredEmit("axes_changed",this._axes),this.deferredEmit("exported_axes_changed",this.exportedAxes),"left"===t.side?this.deferredEmit("left_axes_changed",this.leftAxes):this.deferredEmit("right_axes_changed",this.rightAxes)}_hideSeries(e){const{axis:t}=e,n=t.series.indexOf(e);e.indexInAxis=n,t.series.splice(n,1),this.deferredEmit("axes_changed",this._axes),"left"===t.side?this.deferredEmit("left_axes_changed",this.leftAxes):this.deferredEmit("right_axes_changed",this.rightAxes)}_showSeries(e){const{axis:t}=e;t.series.splice(e.indexInAxis,0,e),this.deferredEmit("axes_changed",this._axes),"left"===t.side?this.deferredEmit("left_axes_changed",this.leftAxes):this.deferredEmit("right_axes_changed",this.rightAxes)}get boundCalculator(){return this._boundsCalculator}get axes(){return this._axes}get leftAxes(){const e=this._axes.filter((({side:e,series:t})=>"left"===e&&t.length>0)).reverse();return 0===e.length&&0===this.rightAxes.length&&e.push(this._axes[0]),e}get rightAxes(){return this._axes.filter((({side:e,series:t})=>"right"===e&&t.length>0))}get bounds(){return this._axes.map((({targetBounds:e})=>e))}get selection(){return this._selection}get globalBounds(){return this._globalBounds}get series(){return this._series}get highlightedSeries(){return this._highlightedSeries}get showIndividualPoints(){return this._showIndividualPoints}get autoscaleY(){return this._autoscaleY}get boundHistory(){return{hasNextBounds:this._boundsIndex<this._boundsHistory.length-1,hasPreviousBounds:this._boundsIndex>0}}get tooltipState(){return this._tooltipState}get contextMenuState(){return this._contextMenuPosition}get alwaysTooltipped(){return this._alwaysTooltipped}get draggingY(){return this._draggingY}get averageLoopTime(){return function(e){const t={};for(let n of e)for(let[e,r]of Object.entries(n))t[e]=(t[e]||0)+r;for(let[n,r]of Object.entries(t))t[n]=r/e.length;return t}(this._timingBuffer)}get exportedAxes(){const e=new Map;let t=0,n=0;for(let r of this._axes){let i;"left"===r.side?(i=`left-${t}`,t++):(i=`right-${n}`,n++);for(let t of r.series)e.set(t,i)}return this.series.map((t=>({...t.originalSeries,axis:e.get(t)})))}get percentile(){return this._percentile}get percentileAsymmetry(){return this._percentileAsymmetry}get showingOptions(){return this._showingOptions}get maxPrecision(){return this._maxPrecision}get showingSidebar(){return this._showingSidebar}get showingAnnotations(){return this._showingAnnotations}get userCreatedSeries(){return this._series.filter((e=>e.userCreated))}get grapherID(){return this._grapherID}get annotationState(){return this._annotationsState}get sizing(){return this.primaryRenderer&&this.primaryRenderer.sizing}get theme(){return this._theme}get exportMode(){return this._exportMode}get enumMap(){return this._enumMap}get hasXEnum(){return this._hasXEnum}markSizeChanged(e){e===this.primaryRenderer?(this.deferredEmit("primary_size_change",this.primaryRenderer.sizing),this.deferredEmit("primary_bounding_rect_change",this.primaryRenderer.boundingRect),this._primarySizeChanged=!0):e===this.rangeGraphRenderer&&(this.deferredEmit("range_graph_size_change",this.rangeGraphRenderer.sizing),this.deferredEmit("range_graph_bounding_rect_change",this.rangeGraphRenderer.boundingRect),this._rangeGraphSizeChanged=!0),this._mustRerender=!0,this._tooltipsChanged=!0,this._annotationsChanged=!0,this._mustCallGenerators=!0,this._markDirty()}set theme(e){this._theme=e,this._mustRerender=!0,this.deferredEmit("theme_change",this._theme),this._markDirty()}set exportMode(e){this._exportMode=e,e?(this._nonExportTheme=this.theme,this.theme="export"):this.theme=this._nonExportTheme,this.deferredEmit("export_mode_change",this._exportMode),this._markDirty()}set defaultLineWidth(e){this._defaultLineWidth=e,this._mustRerender=!0,this._markDirty()}set boundCalculator(e){e&&e!==this._boundsCalculator&&(e.debounceHistory?(clearTimeout(this._boundingCalculatorDebouncer),this._boundingCalculatorDebouncer=setTimeout((()=>{this._addBoundCalculatorToHistory(e)}),250)):this._addBoundCalculatorToHistory(e),this._boundsCalculator=e,this.deferredEmit("bound_calculator_changed",this._boundsCalculator),this._dataChanged=!0,this._mustCallGenerators=!0,this._markDirty())}set customBoundsSelectors(e){this._customBoundsSelectors=this._customBoundsSelectors||{};const t={};for(let{label:n,calculator:r}of e)t[n]=r,this._boundsCalculator===this._customBoundsSelectors[n]&&this._boundsCalculator!==r&&(this.boundCalculator=r);this._customBoundsSelectors=t}_addBoundCalculatorToHistory(e){this._boundsIndex++,this._boundsHistory=this._boundsHistory.slice(0,this._boundsIndex),this._boundsHistory.push(e),this.emit("bound_history_changed",this.boundHistory)}registerSeriesClick(e){this.emit("series_click",this._series[e],e)}setHighlightedSeries(e){this._highlightedSeries=e,this.deferredEmit("highlighted_series_changed",e),this._mustRerender=!0,this._markDirty()}toggleIndividualPoints(){this._showIndividualPoints=!this._showIndividualPoints,this.deferredEmit("show_individual_points_changed",this._showIndividualPoints),this._mustRerender=!0,this._markDirty()}toggleYAutoscaling(){this._autoscaleY=!this._autoscaleY,this.deferredEmit("autoscale_y_changed",this._autoscaleY),this._markDirty()}toggleExportMode(){this.exportMode=!this._exportMode}setBoundsFromSelection(e){this.boundCalculator=function({minPixelX:e,maxPixelX:t,minPixelY:n,maxPixelY:r},{elementWidth:i,elementHeight:a,selection:o,axes:s}){if(Math.abs(t-e)<1||Math.abs(r-n)<1)return;const l=e/i*(o.maxX-o.minX)+o.minX,A=t/i*(o.maxX-o.minX)+o.minX,h=[];for(let{currentBounds:e,scale:t}of s){const i=we({...e,scale:t});let o=(1-n/a)*(i.maxY-i.minY)+i.minY,s=(1-r/a)*(i.maxY-i.minY)+i.minY;"log"===t&&(s=Math.pow(10,s),o=Math.pow(10,o)),h.push({minX:l,maxX:A,minY:s,maxY:o})}return()=>({minX:l,maxX:A,byAxis:h})}(e,{elementWidth:this.primaryRenderer.sizing.elementWidth,elementHeight:this.primaryRenderer.sizing.elementHeight,selection:this._selection,axes:this._axes})}nextBounds(){this._boundsIndex++,this._boundsCalculator=this._boundsHistory[this._boundsIndex],this.deferredEmit("bound_calculator_changed",this._boundsCalculator),this.deferredEmit("bound_history_changed",this.boundHistory),this._dataChanged=!0,this._markDirty()}previousBounds(){this._boundsIndex--,this._boundsCalculator=this._boundsHistory[this._boundsIndex],this.deferredEmit("bound_calculator_changed",this._boundsCalculator),this.deferredEmit("bound_history_changed",this.boundHistory),this._dataChanged=!0,this._markDirty()}setLabel({axisIndex:e,label:t}){this._axes[e].label=t,this.deferredEmit("axes_changed",[...this._axes]),this._markDirty()}toggleScale({axisIndex:e}){const t=this._axes[e].scale;this._axes[e].scale="log"===t?"linear":"log",this._dataChanged=!0,this.deferredEmit("axes_changed",[...this._axes]),this._markDirty()}recalculateTooltips(){this.primaryRenderer.recalculatePosition(),this.setTooltipMousePosition({clientX:this._tooltipClientX,clientY:this._tooltipClientY,shiftKey:this.shiftKeyPressedOnMove,tooltipAllNext:this._tooltipAllNext,tooltipStateArg:this._tooltipStateArg})}setTooltipMousePosition({clientX:e,clientY:t,shiftKey:n,mouseX:r,mouseY:i,tooltipAllNext:a,tooltipStateArg:o}){const s=this.primaryRenderer.sizing;if(!s)return;if("number"==typeof e){if(this._tooltipClientX=e,e<s.boundingRect.left||e>s.boundingRect.right)return void this.showOnlySavedTooltips()}else if("number"!=typeof i)return;if("number"==typeof t){if(this._tooltipClientY=t,t<s.boundingRect.top||t>s.boundingRect.bottom)return void this.showOnlySavedTooltips()}else if("number"!=typeof i)return;const l=r||e-s.boundingRect.left,A=i||t-s.boundingRect.top;this._tooltipState.mousePresent&&l===this._tooltipState.mouseX&&A===this._tooltipState.mouseY||(this._tooltipsChanged=!0,this._tooltipState.mousePresent=!0,this._tooltipState.mouseX=l,this._tooltipState.mouseY=A,this.shiftKeyPressedOnMove=n,this._tooltipAllNext=a,this._tooltipStateArg=o,this._markDirty())}setContextMenuMousePosition({clientX:e,clientY:t}){this._contextMenuPosition={x:e,y:t,showing:!this._contextMenuPosition.showing},this._contextMenuChanged=!0,this._markDirty()}toggleAlwaysTooltipped(e,t){if(this._alwaysTooltipped.has(e))t?this._alwaysTooltipped.clear():this._alwaysTooltipped.delete(e);else if(t)for(let e of this._series)this._alwaysTooltipped.add(e);else this._alwaysTooltipped.add(e);this._tooltipsChanged=!0,this.deferredEmit("always_tooltipped_changed",this._alwaysTooltipped),this._markDirty()}showOnlySavedTooltips(e){this._tooltipState.mousePresent&&(this._tooltipsChanged=!0,this._tooltipState.mousePresent=!1,this._tooltipStateArg=e,this._markDirty())}registerClick({clientX:e}){if(!this._listeners.series_click)return;const t=this.primaryRenderer.boundingRect,n=this.primaryRenderer.sizing;for(let r of this._series){const i=r.axis.currentBounds,a=(e-t.left)/n.elementWidth*(i.maxX-i.minX)+i.minX;this.emit("series_click",{x:a,series:r})}}toggleTooltipSaved(){const e=this._savedTooltips;this._savedTooltips=function({currentTooltips:e,savedTooltips:t}){if(!e.length)return t;const n=e[e.length-1];if(n.xDistance>20||!n.ignoreYDistance&&n.distance>20)return t;const r=t.findIndex((e=>e.x===n.x&&e.y===n.y));return-1===r?[...t,n]:t.filter(((e,t)=>t!==r))}({currentTooltips:this._tooltipState.tooltips,savedTooltips:this._savedTooltips}),this._tooltipsChanged=this._savedTooltips!==e,this._markDirty()}clearSavedTooltips(){0!==this._savedTooltips.length&&(this._savedTooltips=[],this._tooltipsChanged=!0,this._markDirty())}markDragStart(){this._draggingY||(this._draggingY=!0,this.deferredEmit("dragging_y_changed",this._draggingY),this._markDirty())}finalizeDrag(e,t,n){if(!this._draggingY)return;this._draggingY=!1,this.deferredEmit("dragging_y_changed",this._draggingY);const r=t&&0!==t,i=n===this._grapherID;r&&i?(this._moveAxis(e,t),this.deferredEmit("dragging_y_finalized",{draggedSeries:e,axisIndex:t,grapherID:n})):n&&this.deferredEmit("dragging_y_finalized",{draggedSeries:e,axisIndex:t,grapherID:n}),this._markDirty()}set timingFrameCount(e){"number"==typeof e&&(this._timingBuffer=[],this._timingIndex=0,this._timingFrameCount=e)}set percentile(e){void 0!==e&&(this.deferredEmit("percentile_changed",e),""===e&&(e=100),e=parseFloat(e),!isNaN(e)&&e<=100&&e>=0&&(this._percentile=e,this._dataChanged=!0),this._markDirty())}set percentileAsymmetry(e){void 0!==e&&(this.deferredEmit("percentile_asymmetry_changed",e),""===e&&(e=0),e=parseFloat(e),!isNaN(e)&&e<=50&&e>=-50&&(this._percentileAsymmetry=e,this._dataChanged=!0),this._markDirty())}set showingOptions(e){void 0!==e&&(this._showingOptions=e,this.deferredEmit("showing_options_changed",e),this._markDirty())}toggleShowingOptions(){this.showingOptions=!this.showingOptions}toggleMaxPrecision(){this._maxPrecision=!this._maxPrecision,this.deferredEmit("max_precision_changed",this._maxPrecision),this._markDirty()}toggleShowingAnnotations(){this._showingAnnotations=!this._showingAnnotations,this.deferredEmit("showing_annotations_changed",this._showingAnnotations),this._markDirty()}toggleShowingSidebar(){this._showingSidebar=!this._showingSidebar,this.deferredEmit("showing_sidebar_changed",this._showingSidebar),this._markDirty()}setShowing(e,t){e.hidden=!t,this._series=[...this._series],e.hidden?this._hideSeries(e):this._showSeries(e),this.deferredEmit("series_changed",this._series,{skipResize:!0}),this._dataChanged=!0,this._markDirty()}set annotations(e){this._annotations=e||[],this._annotationsChanged=!0,this._markDirty()}enumToNumber(e,t,n){const r=this._enumMap[e];if("number"==typeof r)return r;const i=Object.keys(this._enumMap).length;return this._enumMap[e]=i,this._series[t.index].hasEnum=!0,n&&(this._series[t.index].hasXEnum=!0,this._hasXEnum=!0,this.deferredEmit("has_x_enum_change",this._hasXEnum),this.deferredEmit("x_enum_map_change",this._enumMap)),this.deferredEmit("enum_map_change",this._enumMap),i}triggerResize(){this._mustResize=!0,this._markDirty()}}function Fe(e,n,r=null,i=[]){if("function"==typeof r){const e=r;r=()=>e}const[a,o]=(0,t.useState)(r);return(0,t.useEffect)((()=>{const t=e=>{if("function"==typeof e){const t=e;e=()=>t}o(e)};return e.on(n,t),()=>{e.off(n,t)}}),[...i,o,e]),a}function Ie(e){return Fe(e,"primary_size_change",e.primaryRenderer?e.primaryRenderer.sizing:{elementWidth:0,elementHeight:0,renderWidth:0,renderHeight:0})}function ze(e){return Fe(e,"axes_changed",e.axes)}function $e(e){return Fe(e,"series_changed",e.series)}function Oe(e){return Fe(e,"highlighted_series_changed",e.highlightedSeries)}function Le(e){return Ne(e).length}function Ge(e){return We(e).length}function Ne(e){return Fe(e,"right_axes_changed",e.rightAxes)}function We(e){return Fe(e,"left_axes_changed",e.leftAxes)}function qe(e){return Fe(e,"axis_bounds_changed",e.axes.map((({currentBounds:e})=>e)))}function Ue(e){return Fe(e,"autoscale_y_changed",e.autoscaleY)}function He(e){return Fe(e,"dragging_y_changed",e.draggingY)}function je(e){return Fe(e,"showing_options_changed",e.showingOptions)}function Ke(e){return Fe(e,"max_precision_changed",e.maxPrecision)}function Ve(e){return Fe(e,"showing_sidebar_changed",e.showingSidebar)}function Je(e){return Fe(e,"showing_annotations_changed",e.showingAnnotations)}function Ze(e){return Fe(e,"primary_size_change",e.sizing)}function Qe(e){return Fe(e,"theme_change",e.theme)}class et extends t.default.PureComponent{render(){const{bodyHeight:e,annotationState:n}=this.props,{annotations:r,elementWidth:i}=n,a=r.filter((e=>void 0!==e.pixelStartX&&void 0!==e.pixelWidth));return t.default.createElement("div",{className:"grapher-annotations"},a.map((({pixelStartX:n,pixelWidth:r,content:a,isRange:o,lineOnly:s},l)=>{const A={left:n};if(o)return t.default.createElement("div",{key:`range-${l}`,className:"grapher-annotation grapher-annotation-range",style:A},t.default.createElement("div",{className:"annotation-range-marker",style:{width:r,height:e}}));{const o=s?r:Math.max(r,1),h={};if(a){h.top=21*l,h.position="absolute";const e=5.5*(a||"").length;i>0&&i-n<e+10?(h.left=-e-5,h.textAlign="right"):h.left=o+5}return t.default.createElement("div",{key:`point-${l}`,className:"grapher-annotation grapher-annotation-point",style:A},t.default.createElement("div",{className:"annotation-marker",style:{width:o,height:e}}),a&&!s&&t.default.createElement("div",{className:"annotation-text",style:h},a))}})))}}et.propTypes={annotationState:s().shape({annotations:s().arrayOf(s().shape({pixelStartX:s().number,pixelWidth:s().number,content:s().string,isRange:s().bool,lineOnly:s().bool})).isRequired,elementWidth:s().number.isRequired}),bodyHeight:s().number};const tt=t.default.memo(nt);function nt({stateController:e,draggablePoints:n,onPointDrag:r,onDraggablePointsDoubleClick:i}){const a=qe(e)[0],o=Ze(e);if(!o)return null;const s=i&&(e=>{const t=(e.clientX-o.boundingRect.left)/o.elementWidth,n=1-(e.clientY-o.boundingRect.top)/o.elementHeight;i(e,{x:t*(a.maxX-a.minX)+a.minX,y:n*(a.maxY-a.minY)+a.minY})});return t.default.createElement("div",{className:"grapher-draggable-points",onDoubleClick:s},t.default.createElement("svg",{width:o.elementWidth,height:o.elementHeight},n.map(((e,n)=>{const i=(e.x-a.minX)/(a.maxX-a.minX),s=1-(e.y-a.minY)/(a.maxY-a.minY);if(i<0||i>1||s<0||s>1)return null;const l=i*o.elementWidth,A=s*o.elementHeight,h=e.radius||5,c=e.fillColor||v[0],d=e.strokeColor||"white",g=e.strokeWidth||1,p=e.onClick&&(t=>{e.onClick(t,e)}),u=e.onDoubleClick&&(t=>{t.stopPropagation(),e.onDoubleClick(t,e)});return t.default.createElement("circle",{key:n,cx:l,cy:A,r:h,fill:c,stroke:d,strokeWidth:g,onMouseDown:t=>{if(t.stopPropagation(),!r)return;const i=l-t.clientX,s=A-t.clientY,h=t=>{const l=(t.clientX+i)/o.elementWidth,A=1-(t.clientY+s)/o.elementHeight;r({index:n,point:e,x:l*(a.maxX-a.minX)+a.minX,y:A*(a.maxY-a.minY)+a.minY},t)},c=()=>{window.removeEventListener("mousemove",h),window.removeEventListener("mouseup",c)};window.addEventListener("mousemove",h),window.addEventListener("mouseup",c)},onClick:p,onDoubleClick:u})}))))}nt.propTypes={stateController:s().instanceOf(Pe).isRequired,draggablePoints:E.DraggablePoints.isRequired,onPointDrag:s().func,onDraggablePointsDoubleClick:s().func};const rt=t.default.memo(it);function it({stateController:e,verticalLines:n,isRangeGraph:r,bounds:i,elementWidth:a,elementHeight:o}){i=i||qe(e)[0];const s=Ze(e);if(!s)return null;const l=n.filter((e=>!(r&&!e.onRangeGraph||e.onRangeGraphOnly&&!r)));return 0===l.length?null:t.default.createElement("div",{className:"grapher-vertical-lines"},t.default.createElement("svg",{width:a||s.elementWidth,height:o||s.elementHeight},l.map(((e,n)=>{r&&"object"==typeof e.onRangeGraph&&(e={...e,...e.onRangeGraph});const l=(e.x-i.minX)/(i.maxX-i.minX);if(l<0||l>1)return null;const A=l*(a||s.elementWidth);if("number"==typeof e.minPixelX&&A<e.minPixelX)return null;if("number"==typeof e.maxPixelX&&A>e.maxPixelX)return null;const h={stroke:e.color,strokeWidth:e.width,...e.style||{}},c={fill:e.color,...e.markerStyle||{}},d={fontSize:"12px",fill:e.color,stroke:"none",textAnchor:"middle",dominantBaseline:"hanging",...e.textStyle||{}};let g=0;"number"==typeof e.lineTop?g=e.lineTop:e.text&&(g=18);let p=5;return"number"==typeof e.textTop&&(p=e.textTop),t.default.createElement(t.default.Fragment,{key:n},t.default.createElement("line",{x1:A,y1:g,x2:A,y2:o||s.elementHeight,style:h}),e.markTop&&t.default.createElement("polygon",{points:`${A-3},0 ${A+3},0 ${A},3`,style:c}),e.text&&t.default.createElement("text",{x:A,y:p,style:d},e.text))}))))}function at(){return at=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},at.apply(this,arguments)}it.propTypes={stateController:s().instanceOf(Pe).isRequired,verticalLines:E.VerticalLines.isRequired,isRangeGraph:s().bool,bounds:s().object,elementWidth:s().number,elementHeight:s().number};const ot=t.default.memo(st);function st({stateController:e,webgl:n,bodyHeight:r,boundsSelectionEnabled:i,showTooltips:a,tooltipOptions:o,checkIntersection:s,draggablePoints:l,onPointDrag:A,onDraggablePointsDoubleClick:h,verticalLines:c,clockStyle:d,timeZone:g,onPointClick:p}){const u=(0,t.useCallback)((t=>{if(e.primaryRenderer&&e.primaryRenderer.dispose(),!t)return;const r=new Q({stateController:e,canvasElement:t,webgl:n,checkIntersection:s});e.primaryRenderer=r,r.resize()}),[n,e]),[m,C]=(0,t.useState)({showing:!1,start:{},style:{}}),x=Ue(e),f=ze(e).length,b=function(e){return Fe(e,"tooltip_state_changed",e.tooltipState)}(e),y=Ke(e),_=Je(e),B=function(e){return Fe(e,"annotations_changed",e.annotationState)}(e),E=function(e){return Fe(e,"context_menu_position_changed",e.contextMenuState)}(e);return(0,t.useEffect)((()=>{const t=()=>{a&&e.recalculateTooltips()},n=t=>{a&&e.setTooltipMousePosition({clientX:t.clientX,clientY:t.clientY,shiftKey:t.shiftKey})};return window.addEventListener("scroll",t,{passive:!0}),window.addEventListener("mousemove",n,{passive:!0}),()=>{window.removeEventListener("scroll",t),window.removeEventListener("mousemove",n)}}),[]),t.default.createElement("div",{className:"graph-body graph-body-primary",onMouseMove:t=>{if(m.showing){const n=e.primaryRenderer.boundingRect,r=t.clientX-n.left,i=t.clientY-n.top;C((({start:e})=>({showing:!0,start:e,style:{left:Math.min(r,e.x),top:x?0:Math.min(i,e.y),width:Math.abs(r-e.x),height:x?n.height:Math.abs(i-e.y)}})))}},onMouseLeave:()=>{e.setContextMenuMousePosition({showing:!1})},onMouseDown:t=>{if(!i)return;let n=t.target;for(let e=0;e<10&&n;e++){if(n.classList.contains("grapher-tooltip"))return;n=n.parentNode}const r=e.primaryRenderer.boundingRect,a={x:t.clientX-r.left,y:t.clientY-r.top};C({showing:!0,start:a,style:{left:a.x,top:a.y,width:0,height:0}});const o=t=>{if(window.removeEventListener("mouseup",o),!i)return;const n=t.clientX-r.left,s=t.clientY-r.top;e.setBoundsFromSelection({minPixelX:Math.min(n,a.x),maxPixelX:Math.max(n,a.x),minPixelY:Math.min(s,a.y),maxPixelY:Math.max(s,a.y)}),C({showing:!1,style:{}})};window.addEventListener("mouseup",o)},onClick:t=>{if(e.registerClick({clientX:t.clientX,clientY:t.clientY}),o&&o.savingDisabled)e.clearSavedTooltips();else if(t.target.closest(".grapher-context-menu")||e.setContextMenuMousePosition({showing:!1}),window.getSelection&&"Range"===window.getSelection().type||e.toggleTooltipSaved(),p){const n={},r=e.series;for(let t=0;t<r.length;t++){const i=r[t],a=e.sizing,o=i.axis.currentBounds,s=e.tooltipState.mouseX/a.elementWidth*(o.maxX-o.minX)+o.minX;let l=i.inDataSpace;i.ignoreDiscontinuities&&(l=l.filter((e=>"number"==typeof e[1])));const A=l[_e(l,s,{returnIndex:!0})];n[i.name]=A[0]}p(t,n)}},onDoubleClick:()=>{e.clearSavedTooltips()},onContextMenu:t=>{t.preventDefault(),e.setContextMenuMousePosition({clientX:t.clientX,clientY:t.clientY,showing:!0})},style:"number"==typeof r?{height:r}:void 0},t.default.createElement("canvas",{ref:u}),a&&t.default.createElement(ce,at({axisCount:f,maxPrecision:y,clockStyle:d,timeZone:g},o||{},b)),E.showing&&t.default.createElement(de,{contextMenu:E}),_&&t.default.createElement(et,{bodyHeight:r||e?.primaryRenderer?.boundingRect?.height,annotationState:B}),c&&t.default.createElement(rt,{stateController:e,verticalLines:c}),l&&t.default.createElement(tt,{stateController:e,draggablePoints:l,onPointDrag:A,onDraggablePointsDoubleClick:h}),i&&m.showing&&t.default.createElement("div",{className:"bounds-selection",style:m.style}))}st.propTypes={stateController:s().instanceOf(Pe).isRequired,webgl:s().bool,checkIntersection:s().bool,bodyHeight:s().number,boundsSelectionEnabled:s().bool.isRequired,showTooltips:s().bool.isRequired,tooltipOptions:E.TooltipOptions,verticalLines:E.VerticalLines,draggablePoints:E.DraggablePoints,onPointDrag:s().func,onDraggablePointsDoubleClick:s().func,onPointClick:s().func,clockStyle:s().oneOf(["12h","24h"]),timeZone:s().string};var lt=a(72),At=a.n(lt),ht=a(825),ct=a.n(ht),dt=a(659),gt=a.n(dt),pt=a(56),ut=a.n(pt),mt=a(540),Ct=a.n(mt),xt=a(113),ft=a.n(xt),bt=a(557),yt={};function _t(e,{scale:t,min:n,max:r,inverted:i,totalSize:a,precision:o,formatter:s,dates:l,justTime:A,justDate:h,formatOptions:c={}},d={}){let g=e;"log"===t&&(g=10**e);let p=(e-n)/(r-n);i&&(p=1-p);let u=p*a;return isNaN(u)&&(u=0),{pixelValue:u,trueValue:g,label:s(g,{...c,precision:o,log:"log"===t,dates:l,justTime:A,justDate:h}),size:"major",...d}}function Bt(e,{scale:t,min:n,max:r,inverted:i,totalSize:a,precision:o,formatter:s,dates:l,justTime:A,justDate:h,formatOptions:c={}},d={}){let g=e/a;i&&(g=1-g);let p=g*(r-n)+n;return"log"===t&&(p=Math.pow(10,p)),{pixelValue:e,trueValue:p,label:s(p,{...c,precision:o,log:"log"===t,dates:l,justTime:A,justDate:h}),size:"major",...d}}function Et(e,t){if(e<=1)return 1;if(1===t)return Math.round(e);if(e>=t)return Math.round(e/t)*t;let n;if(24===t)n=[1,2,6,12,24];else{if(60!==t)throw new Error("Invalid divisor");n=[1,2,5,10,15,30,60]}let r=1/0,i=1;for(let t=0;t<n.length;t++){const a=Math.abs(n[t]-e);a<r&&(i=n[t],r=a)}return i}function wt(e){return e.dates?function({min:e,max:t,precision:n,expectedLabelSize:r,labelPadding:i,totalSize:a,skipFirst:o=!1,skipLast:s=!1,scale:l="linear",formatter:A,inverted:h=!1,formatOptions:c}){const d=r+2*i,g=[],p={scale:l,min:e,max:t,inverted:h,totalSize:a,precision:n,formatter:A,formatOptions:c,dates:!0},{amount:u,unit:m}=function(e,t,n){const r=e/t;return r<6e4&&(!n||"second"===n)?{amount:Et(r/1e3,60),unit:"s"}:r<36e5&&(!n||"minute"===n)?{amount:Et(r/6e4,60),unit:"m"}:r<864e5&&(!n||"hour"===n)?{amount:Et(r/36e5,24),unit:"h"}:"day"===n||r<2592e6&&!n?{amount:Et(r/864e5,1),unit:"d"}:r>2592e6&&(!n||"month"===n)?{amount:Et(r/30*24*60*60*1e3,1),unit:"month"}:"year"===n?{amount:Et(r/365*24*60*60*1e3,1),unit:"year"}:{unit:"m",amount:60}}(t-e,a/d,c.unitOverride),C="month"===m;o||g.push(Bt(0,{...p,justDate:C},{position:"first"}));let x=new Date(e);"h"===m?x.setMinutes(0,0,0):"m"===m?x.setSeconds(0,0):"s"===m?x.setMilliseconds(0):"month"===m?(x=ie(x,c.timeZone),x.setDate(1)):"d"===m&&(x=ie(x,c.timeZone));let f=A(x,{...c,...p,justDate:!0});for(;x<t;){let e=864e5;"h"===m?e=60*(u-x.getHours()%u)*60*1e3:"m"===m?e=60*(u-x.getMinutes()%u)*1e3:"s"===m?e=1e3*(u-x.getSeconds()%u):"month"===m?(e=0,x=11===x.getMonth()?new Date(x.getFullYear()+1,0,1):new Date(x.getFullYear(),x.getMonth()+1,1)):"year"===m&&(x=new Date(x.getFullYear()+1,0,0)),x=new Date(x.valueOf()+e);const t=A(x,{...c,...p,justDate:!0})===f,n=_t(x,{...p,justTime:t,justDate:C});g.length&&n.pixelValue-g[g.length-1].pixelValue<r+(i||0)||n.pixelValue+r/2>=a||(g.push(n),f=A(x,{...c,...p,justDate:!0}))}const b=f===A(t,{...c,...p,justDate:!0});return!s&&g[g.length-1].pixelValue+r<a&&g.push(Bt(a,{...p,justTime:b,justDate:C},{position:"last"})),g.filter((({pixelValue:e})=>e<=a&&e>=0))}(e):function({min:e,max:t,precision:n,expectedLabelSize:r,labelPadding:i,totalSize:a,scale:o="linear",formatter:s,inverted:l=!1,formatOptions:A}){const h=r+2*i,c=[],d={scale:o,min:e,max:t,inverted:l,totalSize:a,precision:n,formatter:s,formatOptions:A,dates:!1},g=function(e,t){const n=e/t,r=1-Math.log10(Math.abs(n)),i=r-Math.floor(r)>.5?2:1,a=10**Math.floor(r)*i;return Math.round(n*a)/a}(t-e,Math.floor((a-2*r)/h));if(g>0)for(let n=function(e,t){return Math.round(e/t)*t}(e,g);n<t;n+=g)c.push(_t(n,d));return c.length&&l&&c[c.length-1].pixelValue>i&&c.push(Bt(r/2,d)),c.filter((({pixelValue:e})=>e<=a&&e>=0))}(e)}yt.styleTagTransform=ft(),yt.setAttributes=ut(),yt.insert=gt().bind(null,"head"),yt.domAPI=ct(),yt.insertStyleElement=Ct(),At()(bt.A,yt),bt.A&&bt.A.locals&&bt.A.locals;const vt=t.default.memo(kt);function kt({showAxes:e,showGrid:n,stateController:r,bigLabels:i,xTickUnit:a,clockStyle:o,timeZone:s,integersOnly:l,formatXAxisLabel:A}){if(!e&&!n)return null;const{elementWidth:h,elementHeight:c}=Ie(r),{minX:d,maxX:g,dates:p}=function(e){return Fe(e,"selection_changed",e.selection)}(r),u=function(e){return Fe(e,"has_x_enum_change",e.hasXEnum)}(r),m=function(e){return Fe(e,"enum_map_change",e.enumMap)}(r);let C;C=p?function(e,t){e=new Date(e);const n=(t=new Date(t)).valueOf()-e.valueOf();return n<3e3?"ms":n<6e5?"s":"m"}(d,g):ee(g-d);let x=null;if(u){x={};for(const[e,t]of Object.entries(m))x[t]=e}const f={unitOverride:a,clockStyle:o,timeZone:s,integersOnly:l,inverseEnumMap:x,formatter:A},b=ae(d,{...f,dates:p,precision:C}).toString(),y=ae(g,{...f,dates:p,precision:C}).toString();let _=4*Math.max(b.length,y.length);i&&(_*=2);const B=wt({min:d,max:g,totalSize:h,precision:C,dates:p,formatter:A||ae,expectedLabelSize:_,labelPadding:30,formatOptions:f});return t.default.createElement("svg",{className:"axis x-axis",style:e?void 0:{marginBottom:-20}},e&&t.default.createElement("path",{d:`M-1,0 H${h}`,className:"axis-line"}),e&&t.default.createElement("path",{d:`M-2,1 H${h+1}`,className:"axis-line-shadow"}),B.map((({pixelValue:r,label:a,size:o,position:s,skipGrid:l},A)=>{if(isNaN(r))return null;const h=["axis-item",`axis-item-${o}`,`axis-item-${s}`];return i&&h.push("axis-item-big-labels"),t.default.createElement("g",{key:A,className:h.join(" ")},e&&t.default.createElement("path",{d:`M${r},1 v6`,className:"axis-tick"}),n&&!l&&t.default.createElement("path",{d:`M${r},0 v-${c}`}),e&&t.default.createElement("text",{x:r,y:15},a))})))}kt.propTypes={stateController:s().instanceOf(Pe).isRequired,showAxes:s().bool.isRequired,showGrid:s().bool.isRequired,bigLabels:s().bool,xTickUnit:s().oneOf(["year"]),clockStyle:s().oneOf(["12h","24h"]),timeZone:s().string,integersOnly:s().bool,formatXAxisLabel:s().func};const St=t.default.memo(Dt);function Dt({stateController:e,showAxes:n,showGrid:r,showSeriesKey:i,axis:a,sideIndex:o,bodyHeight:s,theme:l,grapherID:A,dragPositionYOffset:h=0,bigLabels:c,showAxisColors:d}){if(!n&&!r)return null;const{side:g,scale:p,axisIndex:u,label:m}=ze(e)[a.axisIndex],{elementWidth:C,elementHeight:x}=Ie(e);let{minY:f,maxY:b}=qe(e)[u];const y=we({minY:f,maxY:b,scale:p});f=y.minY,b=y.maxY;const _=wt({min:f,max:b,totalSize:x,scale:p,precision:ee(b-f),formatter:oe,inverted:!0,expectedLabelSize:c?20:10,labelPadding:30});let B=5;"log"===p&&(B=2);const E=Oe(e),[w,v]=(0,t.useState)(null),[S,D]=(0,t.useState)({dx:0,dy:0}),X="day"===l?1:.5,M="day"===l?.8:.3;return t.default.createElement("svg",{className:`axis y-axis y-axis-${g}`,"data-axis-index":u,"data-grapher-id":A,style:{width:se,marginLeft:n?void 0:-32,height:"number"==typeof s?s:void 0}},n&&d&&a.series.map(((e,n)=>{const r=x/a.series.length;return t.default.createElement("rect",{x:"left"===g?0:2,y:n*r,width:30,height:r,key:e.index,fill:k(e.color,e.index,e.multigrapherSeriesIndex),opacity:e.index===E?X:M,"data-element-height":x,"data-series-length":a.series.length})})),n&&t.default.createElement("path",{d:`M${"left"===g?31:1},3 V${x}`,className:"axis-line"}),n&&t.default.createElement("path",{d:`M${"left"===g?30:0},3 V${x+1}`,className:"axis-line-shadow"}),_.map((({pixelValue:e,label:i,size:a,skipGrid:s},l)=>{const A="left"===g?(o+1)*se:-o*se,h=("left"===g?1:-1)*(C+1),d=["axis-item",`axis-item-${a}`];return c&&d.push("axis-item-big-labels"),t.default.createElement("g",{key:l,className:d.join(" ")},r&&!s&&t.default.createElement("path",{d:`M${A},${e} h${h}`}),r&&!s&&o>0&&t.default.createElement("path",{d:`M${"left"===g?se:0},${e} h${("left"===g?1:-1)*o*se}`,strokeDasharray:"2,2"}),n&&t.default.createElement("text",{x:"left"===g?se-B:B,y:e},i))})),i&&n&&a.series.map(((n,r)=>{let i=18+14*(r%2-1),o=-14*Math.ceil(a.series.length/2)+14*Math.floor(r/2);return n===w&&(i+=S.dx,o+=S.dy-h),t.default.createElement("rect",{className:"series-color-box",onMouseDown:t=>((t,n)=>{let r=t.clientX,i=t.clientY;"left"===g&&(r+=se),"right"===g&&(r-=se),D({dx:0,dy:0});const a=e=>{D({dx:e.clientX-r,dy:e.clientY-i})},o=t=>{window.removeEventListener("mousemove",a),window.removeEventListener("mouseup",o);let r=t.target;for(;r&&!(r.dataset||{}).axisIndex;)r=r.parentNode;v(null),e.finalizeDrag(n,r&&(r.dataset||{}).axisIndex,r&&(r.dataset||{}).grapherId)};window.addEventListener("mousemove",a),window.addEventListener("mouseup",o),v(n),e.markDragStart()})(t,n),x:i,y:o,width:10,height:10,key:n.index,fill:k(n.color,n.index,n.multigrapherSeriesIndex),onMouseOver:()=>e.setHighlightedSeries(n.index),onMouseOut:()=>e.setHighlightedSeries(null)})})),n&&!!m&&t.default.createElement("text",{className:"y-axis-label"+(c?" y-axis-big-label":""),x:"left"===g?10:22,y:x/2+("left"===g?-1:1)*(u+1)*(c?20:0),transform:`rotate(${"left"===g?-90:90}, ${"left"===g?10:22}, ${x/2})`},m))}Dt.propTypes={stateController:s().instanceOf(Pe),showAxes:s().bool.isRequired,showGrid:s().bool.isRequired,showAxisColors:s().bool.isRequired,showSeriesKey:s().bool.isRequired,axis:E.Axis.isRequired,sideIndex:s().number.isRequired,bodyHeight:s().number,theme:s().string,grapherID:s().string,dragPositionYOffset:s().number,bigLabels:s().bool};const Xt=t.default.memo(Mt);function Mt({selected:e,disabled:n,className:r,onClick:i,children:a,description:o}){const s=["range-button"];return e&&s.push("range-button-selected"),n&&s.push("range-button-disabled"),r&&s.push(r),o&&s.push("option-tooltip"),t.default.createElement("div",{className:s.join(" "),onClick:i&&(e=>n||i(e))},a,o&&t.default.createElement("div",{className:"option-tooltip-text"},o))}Mt.propTypes={selected:s().bool.isRequired,onClick:s().func,children:s().node.isRequired,disabled:s().bool,className:s().string,description:s().string};const Yt=t.default.memo(Tt);function Tt({stateController:e,currentBoundCalculator:n,boundCalculator:r,children:i,disabled:a}){return t.default.createElement(Xt,{selected:n===r,onClick:()=>e.boundCalculator=r,disabled:a},i)}Tt.propTypes={stateController:s().instanceOf(Pe).isRequired,boundCalculator:s().func.isRequired,currentBoundCalculator:s().func.isRequired,children:s().node.isRequired,disabled:s().bool};const Rt=t.default.memo(Pt);function Pt({stateController:e}){const n=function(e){return Fe(e,"percentile_changed",e.percentile)}(e),r=function(e){return Fe(e,"percentile_asymmetry_changed",e.percentileAsymmetry)}(e),[i,a]=(0,t.useState)(!1);return[i?t.default.createElement(Xt,{key:"asymmetry button",className:"percentile-button",selected:!0,description:"Percentile asymmetry"},t.default.createElement("input",{onClick:e=>e.stopPropagation(),value:r,onChange:t=>e.percentileAsymmetry=t.target.value,onKeyUp:e=>13===e.keyCode&&a(!1),type:"number",min:-50,max:50}),t.default.createElement("div",{className:"icon-container icon-container-square"},t.default.createElement("svg",{focusable:"false",viewBox:"0 0 512 512"},t.default.createElement("path",{fill:"currentColor",d:"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z"})))):null,t.default.createElement(Xt,{key:"main-button",className:"percentile-button",selected:i||100!==parseFloat(n),onClick:()=>a(!i),description:"Edit percentile"},i&&t.default.createElement("div",null,t.default.createElement("input",{onClick:e=>e.stopPropagation(),autoFocus:!0,value:n,onChange:t=>e.percentile=t.target.value,onKeyUp:e=>13===e.keyCode&&a(!1),type:"number",min:0,max:100})),t.default.createElement("div",{className:"icon-container icon-container-narrow"},t.default.createElement("svg",{focusable:"false",viewBox:"0 0 448 512"},t.default.createElement("path",{fill:"currentColor",d:"M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z"}))))]}Pt.propTypes={stateController:s().instanceOf(Pe).isRequired};const Ft=t.default.memo(It);function It({stateController:e,sidebarEnabled:n}){const r=function(e){return Fe(e,"show_individual_points_changed",e.showIndividualPoints)}(e),i=Ue(e),a=Ke(e),o=Ve(e),s=Je(e),l=Qe(e);return t.default.createElement("div",{className:"options-bar"},n&&t.default.createElement(Xt,{selected:o,onClick:()=>e.toggleShowingSidebar(),description:"Show sidebar"},t.default.createElement("div",{className:"icon-container icon-container-square"},t.default.createElement("svg",{focusable:"false",viewBox:"0 0 512 512"},t.default.createElement("path",{fill:"currentColor",d:"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z"})))),t.default.createElement(Xt,{selected:"export"===l,onClick:()=>e.toggleExportMode(),description:"Export mode"},t.default.createElement("div",{className:"icon-container icon-container-square"},t.default.createElement("svg",{focusable:"false",viewBox:"0 0 512 512"},t.default.createElement("path",{fill:"currentColor",d:"M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z"})))),t.default.createElement(Xt,{selected:s,onClick:()=>e.toggleShowingAnnotations(),description:"Show annotations"},t.default.createElement("div",{className:"icon-container icon-container-448"},t.default.createElement("svg",{focusable:"false",viewBox:"0 0 448 512"},t.default.createElement("path",{fill:"currentColor",d:"M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z"})))),t.default.createElement(Rt,{stateController:e}),t.default.createElement(Xt,{selected:a,onClick:()=>e.toggleMaxPrecision(),description:"Max precision"},t.default.createElement("div",{className:"icon-container icon-container-square"},t.default.createElement("svg",{focusable:"false",viewBox:"0 0 512 512"},t.default.createElement("path",{fill:"currentColor",d:"M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z"})))),t.default.createElement(Xt,{selected:i,onClick:()=>e.toggleYAutoscaling(),description:"Autoscale y axis"},t.default.createElement("div",{className:"icon-container"},t.default.createElement("svg",{focusable:"false",viewBox:"0 0 256 512"},t.default.createElement("path",{fill:"currentColor",d:"M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z"})))),t.default.createElement(Xt,{selected:r,onClick:()=>e.toggleIndividualPoints(),description:"Show individual points"},t.default.createElement("div",{className:"icon-container icon-container-narrow"},t.default.createElement("svg",{focusable:"false",viewBox:"0 0 192 512"},t.default.createElement("path",{fill:"currentColor",d:"M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z"})))))}It.propTypes={stateController:s().instanceOf(Pe).isRequired,sidebarEnabled:s().bool};const zt=t.default.memo($t);function $t({stateController:e,customBoundsSelectors:n,customBoundsSelectorsOnly:r,sidebarEnabled:i}){const a=Le(e),o=Ge(e),s=je(e);let l=se*a;a>0&&(l+=5);let A=se*o;o>0&&(A+=5);const{dates:h}=function(e){return Fe(e,"global_bounds_changed",e.globalBounds)}(e),c=function(e){return Fe(e,"bound_calculator_changed",e.boundCalculator)}(e),{hasPreviousBounds:d,hasNextBounds:g}=function(e){return Fe(e,"bound_history_changed",e.boundHistory)}(e),p=new Set(n.map((({label:e})=>e)));return t.default.createElement("div",{className:"range-selection"+(h?"":" range-not-dates"),style:{marginRight:l,marginLeft:A}},t.default.createElement("div",{className:"range-buttons"},s&&t.default.createElement(Ft,{stateController:e,sidebarEnabled:i}),t.default.createElement(Xt,{className:"showing-options-button",selected:s,onClick:()=>e.toggleShowingOptions(),description:"Show additional options"},t.default.createElement("div",{className:"icon-container icon-container-square"},t.default.createElement("svg",{focusable:"false",viewBox:"0 0 512 512"},t.default.createElement("path",{fill:"currentColor",d:"M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"})))),t.default.createElement(Xt,{className:"range-selection-history",selected:!1,onClick:()=>e.previousBounds(),disabled:!d},t.default.createElement("div",{className:"icon-container"},t.default.createElement("svg",{focusable:"false",viewBox:"0 0 256 512"},t.default.createElement("path",{fill:"currentColor",d:"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z"})))),t.default.createElement(Xt,{className:"range-selection-history",selected:!1,onClick:()=>e.nextBounds(),disabled:!g},t.default.createElement("div",{className:"icon-container"},t.default.createElement("svg",{focusable:"false",viewBox:"0 0 256 512"},t.default.createElement("path",{fill:"currentColor",d:"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"})))),n.map((({label:n,calculator:r,datesOnly:i},a)=>t.default.createElement(Yt,{key:a,stateController:e,currentBoundCalculator:c,boundCalculator:r,disabled:i&&!h},n))),!p.has("1m")&&!r&&t.default.createElement(Yt,{stateController:e,currentBoundCalculator:c,boundCalculator:Me.lastMinute,disabled:!h},"1m"),!p.has("10m")&&!r&&t.default.createElement(Yt,{stateController:e,currentBoundCalculator:c,boundCalculator:Me.last10Minutes,disabled:!h},"10m"),!p.has("1h")&&!r&&t.default.createElement(Yt,{stateController:e,currentBoundCalculator:c,boundCalculator:Me.lastHour,disabled:!h},"1h"),!p.has("1d")&&!r&&t.default.createElement(Yt,{stateController:e,currentBoundCalculator:c,boundCalculator:Me.lastDay,disabled:!h},"1d"),t.default.createElement(Yt,{stateController:e,currentBoundCalculator:c,boundCalculator:Me.all,disabled:!1},"All")))}$t.propTypes={stateController:s().instanceOf(Pe).isRequired,customBoundsSelectors:E.CustomBoundsSelectors.isRequired,customBoundsSelectorsOnly:s().bool,sidebarEnabled:s().bool};class Ot extends t.default.PureComponent{constructor(e){super(e),this.state={elementWidth:0,elementHeight:0,selectionBounds:{minX:0,maxX:0},globalBounds:{minX:0,maxX:0}},this.onMouseMove=this.onMouseMove.bind(this),this.stopDragging=this.stopDragging.bind(this),this.startScroll=this.startScroll.bind(this),this.startLeftDrag=this.startLeftDrag.bind(this),this.startRightDrag=this.startRightDrag.bind(this)}componentDidMount(){this._renderer=new Q({stateController:this.props.stateController,canvasElement:this.el,webgl:this.props.webgl,checkIntersection:this.props.checkIntersection}),this.props.stateController.rangeGraphRenderer=this._renderer,this._renderer.on("size_changed",(e=>{this.setState(e)})),this.setState({selectionBounds:this.props.stateController._selection,globalBounds:this.props.stateController._globalBounds}),this.props.stateController.on("selection_changed",(e=>{this.setState({selectionBounds:e})})),this.props.stateController.on("global_bounds_changed",(e=>{this.setState({globalBounds:e})}))}componentDidUpdate(e){e.draggingY!==this.props.draggingY&&this._renderer.resize()}componentWillUnmount(){this._renderer.dispose(),this._renderer=null}onMouseMove(e){if(!this._dragType)return;let t;const n=this.el.getBoundingClientRect().left;this.setState((({selectionBounds:r,globalBounds:i,elementWidth:a})=>{let o=(e.clientX-n)/a;o=Math.max(o,0),o=Math.min(o,1);let s=o*(i.maxX-i.minX)+i.minX;if("scroll"===this._dragType){const e=r.maxX-r.minX;let n=s-e*this._scrollAnchorPercentage,a=s+e*(1-this._scrollAnchorPercentage);return n<i.minX&&(n=i.minX,a=n+e),a>i.maxX&&(a=i.maxX,n=a-e),t=()=>({minX:n,maxX:a}),{selectionBounds:Object.assign({},r,{minX:n,maxX:a})}}if("left"===this._dragType){s>r.maxX&&(s=r.maxX);const e=i.maxX===r.maxX;return t=()=>e?{minX:s}:{minX:s,maxX:r.maxX},{selectionBounds:Object.assign({},r,{minX:s})}}if("right"===this._dragType){s<r.minX&&(s=r.minX);const e=i.minX===r.minX;return t=()=>e?{maxX:s}:{minX:r.minX,maxX:s},{selectionBounds:Object.assign({},r,{maxX:s})}}}),(()=>{t&&(t.debounceHistory=!0,this.props.stateController.boundCalculator=t)}))}addListeners(){window.addEventListener("mousemove",this.onMouseMove),window.addEventListener("mouseup",this.stopDragging)}stopDragging(){this._dragType=null,window.removeEventListener("mousemove",this.onMouseMove),window.removeEventListener("mouseup",this.stopDragging)}startScroll(e){this._dragType="scroll";const{selectionBounds:t,globalBounds:n,elementWidth:r}=this.state,i=this.el.getBoundingClientRect().left,a=e.clientX-i,o=(t.minX-n.minX)/(n.maxX-n.minX)*r||0,s=(t.maxX-n.minX)/(n.maxX-n.minX)*r||0;this._scrollAnchorPercentage=(a-o)/(s-o),this.addListeners()}startLeftDrag(){this._dragType="left",this.addListeners()}startRightDrag(){this._dragType="right",this.addListeners()}render(){const{globalBounds:e,selectionBounds:n,elementWidth:r,elementHeight:i}=this.state;let a,o=Math.min(Math.max((n.minX-e.minX)/(e.maxX-e.minX),0),1)*r||0,s=Math.min(Math.max((n.maxX-e.minX)/(e.maxX-e.minX),0),1)*r||0;return(isNaN(o)||!isFinite(o)||n.maxX<n.minX)&&(o=0),(isNaN(s)||!isFinite(s)||n.maxX<n.minX)&&(s=0),n.dates&&this.props.markDates&&(a=wt({min:e.minX,max:e.maxX,totalSize:r,precision:"day",dates:n.dates,formatter:ae,expectedLabelSize:30,labelPadding:5,formatOptions:{justMonthAndDay:!0,unitOverride:"day",timeZone:this.props.timeZone},skipFirst:!0,skipLast:!0})),t.default.createElement("div",{className:"range-selection-graph"},t.default.createElement("div",{className:"graph-body graph-body-secondary"},t.default.createElement("canvas",{ref:e=>this.el=e}),t.default.createElement("svg",null,t.default.createElement("g",null,t.default.createElement("rect",{x:0,y:i,width:r,height:14,className:"selection-bar-track"}),a&&a.map((({pixelValue:e,label:n,size:r,position:a},o)=>{if(isNaN(e))return null;const s=["axis-item",`axis-item-${r}`,`axis-item-${a}`];return t.default.createElement("g",{key:o,className:s.join(" ")},t.default.createElement("path",{d:`M${e},0 v${i}`}),t.default.createElement("text",{x:e+3,y:i},n))})),t.default.createElement("rect",{x:o,y:i,width:s-o,height:14,className:"selection-bar",onMouseDown:this.startScroll}),t.default.createElement("path",{d:"M -3 3.5 L -3 9.333333333333334 M 0 3.5 L 0 9.333333333333334 M 3 3.5 L 3 9.333333333333334",className:"selection-bar-rifles",transform:`translate(${o+(s-o)/2},${i})`,onMouseDown:this.startScroll})),t.default.createElement("g",null,t.default.createElement("rect",{x:o,y:0,width:s-o,height:i,className:"target-selection",onMouseDown:this.startScroll}),t.default.createElement("rect",{x:o,y:0,width:s-o,height:i+14,className:"target-selection-outline"})),t.default.createElement("g",null,t.default.createElement("path",{d:"M -4.5 0.5 L 3.5 0.5 L 3.5 15.5 L -4.5 15.5 L -4.5 0.5 M -1.5 4 L -1.5 12 M 0.5 4 L 0.5 12",className:"selection-bar-handle",transform:`translate(${o},${(i-15)/2})`,onMouseDown:this.startLeftDrag})),t.default.createElement("g",null,t.default.createElement("path",{d:"M -4.5 0.5 L 3.5 0.5 L 3.5 15.5 L -4.5 15.5 L -4.5 0.5 M -1.5 4 L -1.5 12 M 0.5 4 L 0.5 12",className:"selection-bar-handle",transform:`translate(${s},${(i-15)/2})`,onMouseDown:this.startRightDrag}))),this.props.verticalLines&&t.default.createElement(rt,{stateController:this.props.stateController,verticalLines:this.props.verticalLines,isRangeGraph:!0,bounds:e,elementHeight:i,elementWidth:r})))}}Ot.defaultProps={width:3,shadowColor:"transparent"},Ot.propTypes={stateController:s().instanceOf(Pe).isRequired,webgl:s().bool,draggingY:s().bool,checkIntersection:s().bool,markDates:s().bool,timeZone:s().string,verticalLines:E.VerticalLines};const Lt=t.default.memo(Gt);function Gt({series:e,i:n,style:r,onMouseDown:i,theme:a,stateController:o,highlighted:s}){const l=k(e.color,n,e.multigrapherSeriesIndex);r="day"===a?Object.assign({},r,{backgroundColor:l}):Object.assign({},r,{color:l});const A=["series-key-item"];s&&A.push("series-key-item-highlighted");const h=Te(e,n);return t.default.createElement("div",{className:A.join(" "),style:r,onMouseDown:i,onMouseOver:()=>o.setHighlightedSeries(n),onMouseOut:()=>o.setHighlightedSeries(null),onClick:()=>o.registerSeriesClick(n)},h)}Gt.propTypes={series:E.SingleSeries.isRequired,stateController:s().instanceOf(Pe),i:s().number.isRequired,style:s().object,onMouseDown:s().func,theme:s().string.isRequired,highlighted:s().bool};class Nt extends t.default.PureComponent{constructor(e){super(e),this.state={showingLabelInput:!1},this.toggleLabelInputShowing=this.toggleLabelInputShowing.bind(this)}toggleLabelInputShowing(){this.setState((({showingLabelInput:e})=>({showingLabelInput:!e})))}render(){const{children:e,stateController:n,axisIndex:r,scale:i,label:a,grapherID:o}=this.props,{showingLabelInput:s}=this.state;return t.default.createElement("div",{className:"series-key-axis-container"+(s?" series-key-axis-container-showing-label":""),"data-axis-index":r,"data-grapher-id":o},t.default.createElement("div",{className:"scale-label",onClick:()=>n.toggleScale({axisIndex:r})},i.slice(0,s?6:3)),t.default.createElement("div",{className:"series-key-axis-container-body"},t.default.createElement("div",null,e,t.default.createElement("svg",{className:"label-input-toggler",viewBox:"0 0 512 512",onClick:this.toggleLabelInputShowing},t.default.createElement("path",{d:"M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"}))),t.default.createElement("div",{className:"series-key-axis-label-container"},t.default.createElement("input",{onChange:e=>n.setLabel({axisIndex:r,label:e.target.value}),placeholder:"Enter label",value:a||""}))))}}Nt.propTypes={stateController:s().instanceOf(Pe).isRequired,children:s().node.isRequired,axisIndex:s().number.isRequired,scale:s().string.isRequired,label:s().string,grapherID:s().string};const Wt=t.default.memo(qt);function qt({stateController:e,theme:n,draggingY:r,grapherID:i,dragPositionYOffset:a=0}){const o=$e(e),[s,l]=(0,t.useState)(null),[A,h]=(0,t.useState)({x:0,y:0}),c=Oe(e),d=(0,t.useRef)(null),[g,p]=(0,t.useState)(5*o.map((({name:e,yKey:t},n)=>(e||t||n).toString().length)).reduce(((e,t)=>e+t),0));let u;(0,t.useEffect)((()=>{d.current&&(cancelAnimationFrame(u),u=requestAnimationFrame((()=>{if(!d.current)return;const e=[...d.current.querySelectorAll(".series-key-axis-container")].map((e=>e.clientWidth)).reduce(((e,t)=>e+t),0);p(e)})))}),[o,d.current]);const m=function({stateController:e,keyWidth:t}){const n=Le(e),r=Ge(e),i=je(e);let a=se*n;n>0&&(a+=5),a+=250,i&&(a+=70);let o,s=se*r;r>0&&(s+=5),s=Math.max(a,s),a=Math.max(a,s);const{elementWidth:l}=Ie(e);return l-s-a<t&&(s=0,a=0,o=10),{marginRight:a,marginLeft:s,marginBottom:o}}({stateController:e,keyWidth:g}),C=ze(e),x=function(e){return Fe(e,"always_tooltipped_changed",e.alwaysTooltipped)}(e);return t.default.createElement("div",{className:"series-key",style:m,ref:d},r&&t.default.createElement("div",{className:"series-key-axis-container","data-axis-index":"new-left","data-grapher-id":i}),C.map(((r,a)=>!r.series.length&&C.length>1?null:t.default.createElement(Nt,{key:a,label:r.label,axisIndex:r.axisIndex,scale:r.scale,stateController:e,grapherID:i},r.series.map((r=>r.hideFromKey?null:t.default.createElement(Lt,{key:r.index,series:r,i:r.index,onMouseDown:(t,n)=>((t,n)=>{let r=t.target;for(;r&&"series-key"!==r.className;)r=r.parentNode;const i=t.target.getBoundingClientRect().left;let a=r.getBoundingClientRect().left,o=r.style.marginLeft;const s=t.clientX,A=t.clientY,c=t.clientX,d=t.clientY;l(n),h({x:t.clientX-s+(i-a)-2,y:t.clientY-A+1});const g=e=>{r.style.marginLeft!==o&&(a=r.getBoundingClientRect().left,o=r.style.marginLeft),h({x:e.clientX-s+(i-a)-2,y:e.clientY-A+1})},p=t=>{window.removeEventListener("mousemove",g),window.removeEventListener("mouseup",p);let r=t.target;for(;r&&!(r.dataset||{}).axisIndex&&!(r.dataset||{}).grapherId;)r=r.parentNode;l(null),e.finalizeDrag(n,r&&(r.dataset||{}).axisIndex,r&&(r.dataset||{}).grapherId),t.clientX===c&&t.clientY===d&&e.toggleAlwaysTooltipped(n,t.shiftKey)};window.addEventListener("mousemove",g),window.addEventListener("mouseup",p),e.markDragStart()})(t,r),theme:n,stateController:e,highlighted:c===r.index||x.has(r)})))))),r&&t.default.createElement("div",{className:"series-key-axis-container","data-axis-index":"new-right","data-grapher-id":i}),s&&t.default.createElement(Lt,{style:{left:A.x,top:A.y-a,position:"absolute",pointerEvents:"none",zIndex:1},series:s,i:s.index,theme:n,stateController:e}))}qt.propTypes={stateController:s().instanceOf(Pe).isRequired,theme:s().string.isRequired,draggingY:s().bool.isRequired,grapherID:s().string,dragPositionYOffset:s().number};const Ut=t.default.memo(Ht);function Ht({title:e}){return t.default.createElement("div",{className:"grapher-title"},e)}Ht.propTypes={title:s().string.isRequired};class jt extends t.default.PureComponent{constructor(e){super(e),this.onChange=this.onChange.bind(this)}onChange(e){setTimeout((()=>{this.props.stateController.setShowing(this.props.singleSeries,e.target.checked)}))}render(){const{singleSeries:e}=this.props,n=k(e.color,e.index,e.multigrapherSeriesIndex);let r=e.name||e.yKey;return r||(r=e.index),t.default.createElement("div",{className:"series-toggle"},t.default.createElement("label",null,t.default.createElement("input",{type:"checkbox",defaultChecked:!e.hidden,ref:e=>e&&e.addEventListener("change",this.onChange)}),t.default.createElement("span",{className:"checkmark",style:{background:n,borderColor:n}}),r))}}function Kt({stateController:e}){const n=$e(e);return t.default.createElement("div",{className:"grapher-sidebar"},n.map(((n,r)=>t.default.createElement(jt,{key:r,singleSeries:n,stateController:e}))))}jt.propTypes={singleSeries:E.SingleSeries.isRequired,stateController:s().instanceOf(Pe).isRequired},Kt.propTypes={stateController:s().instanceOf(Pe).isRequired};class Vt{constructor({syncBounds:e=!0,syncTooltips:t=!0,syncDragState:n=!1}={}){this._stateControllers=new Set,this._syncBounds=e,this._syncTooltips=t,this._syncDragState=n}add(e){this._stateControllers.add(e),this._syncBounds&&this.syncBounds(e),this._syncTooltips&&this.syncTooltips(e),this._syncDragState&&this.syncDragState(e)}remove(e){this._stateControllers.delete(e)}syncDragState(e){e.on("dragging_y_changed",(t=>{for(let n of this._stateControllers)e!==n&&(t?n.markDragStart():n.finalizeDrag(null,null))}))}syncBounds(e){e.on("bound_calculator_changed",(t=>{for(let n of this._stateControllers)e!==n&&(n.boundCalculator=t)}))}syncTooltips(e){e.on("tooltip_state_changed",((t,n)=>{if(this._tooltipIgnoreState===n)return;const r=0===t.unsavedTooltipsCount||!t.mousePresent||"onShift"===this._syncTooltips&&!e.shiftKeyPressedOnMove;r&&(this._tooltipIgnoreState=Math.random());for(let n of this._stateControllers)e!==n&&(r?n.showOnlySavedTooltips(this._tooltipIgnoreState):n.setTooltipMousePosition({mouseX:t.mouseX,mouseY:t.mouseY,tooltipAllNext:!0,tooltipStateArg:this._tooltipIgnoreState}))}))}}function Jt(){return Jt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Jt.apply(this,arguments)}const Zt=t.default.memo(en),Qt={theme:"night",showAxes:!0,showRangeGraph:!0,showRangeSelectors:!0,showSeriesKey:!0,showTooltips:!0,boundsSelectionEnabled:!0,customBoundsSelectors:[],sidebarEnabled:!1,defaultShowAnnotations:!0,defaultShowOptions:!0};function en(e){e={...Qt,...e};const n=(0,t.useMemo)((()=>new Pe({grapherID:e.id,...e,...e.stateControllerInitialization})),[]);(0,t.useEffect)((()=>()=>{n.dispose()}),[n]),(0,t.useEffect)((()=>{e.exportStateController&&e.exportStateController(n)}),[n,e.exportStateController]),(0,t.useEffect)((()=>{n.timingFrameCount=e.timingFrameCount}),[n,e.timingFrameCount]),(0,t.useEffect)((()=>(e.onRenderTime&&n.on("render_time",e.onRenderTime),()=>{e.onRenderTime&&n.off("render_time",e.onRenderTime)})),[n,e.onRenderTime]),(0,t.useEffect)((()=>{n.setSeries(e.series)}),[n,e.series]),(0,t.useEffect)((()=>{n.theme=e.theme}),[n,e.theme]);const r=Qe(n),i=e.bigLabels||"export"===r,a=e.defaultLineWidth||("export"===r?3:void 0);(0,t.useEffect)((()=>{n.defaultLineWidth=a}),[n,a]),(0,t.useEffect)((()=>{n.percentile=e.percentile}),[n,e.percentile]),(0,t.useEffect)((()=>{n.customBoundsSelectors=e.customBoundsSelectors}),[n,e.customBoundsSelectors]),(0,t.useEffect)((()=>{n.annotations=e.annotations}),[n,e.annotations]),(0,t.useEffect)((()=>e.onAxisChange?(n.on("exported_axes_changed",e.onAxisChange),()=>{n.off("exported_axes_changed",e.onAxisChange)}):()=>{}),[n,e.onAxisChange]),(0,t.useEffect)((()=>{n.primaryRenderer.resize()}),[e.height]);const o=He(n),{styles:s,classNames:l}=function(e,{draggingY:t,theme:n}){const{fullscreen:r,height:i,width:a}=e,o=["grapher",`grapher-${n}`],s={};return t&&o.push("grapher-dragging-y"),r?(o.push("grapher-fullscreen"),o.push("grapher-fixed-height")):i&&(o.push("grapher-fixed-height"),s.height="number"==typeof i?i-20:`calc(${i} - 20px)`),a&&(s.width=a),{styles:s,classNames:o}}(e,{draggingY:o,theme:r}),A=Ne(n),h=We(n),c=Ve(n),d="boolean"==typeof e.showAxisColors?e.showAxisColors:"export"!==r,g="boolean"==typeof e.showGrid?e.showGrid:"export"!==r,p={stateController:n,showAxes:e.showAxes,showGrid:g,showSeriesKey:e.showSeriesKey,bodyHeight:e.bodyHeight,theme:r,grapherID:e.id,dragPositionYOffset:e.dragPositionYOffset,showAxisColors:d,bigLabels:i};return t.default.createElement("div",{className:l.join(" "),style:s,"data-grapher-id":e.id},e.title&&t.default.createElement(Ut,{title:e.title}),t.default.createElement("div",{className:"grapher-primary-container-outer"},c&&t.default.createElement(Kt,{stateController:n}),t.default.createElement("div",{className:"grapher-primary-container-body"},e.showSeriesKey&&t.default.createElement(Wt,{stateController:n,draggingY:o,theme:e.theme,grapherID:e.id,dragPositionYOffset:e.dragPositionYOffset}),e.showRangeSelectors&&t.default.createElement(zt,{stateController:n,customBoundsSelectors:e.customBoundsSelectors,customBoundsSelectorsOnly:e.customBoundsSelectorsOnly,sidebarEnabled:e.sidebarEnabled}),t.default.createElement("div",{className:"grapher-main-row"},o&&t.default.createElement("div",{className:"axis y-axis","data-axis-index":"new-left","data-grapher-id":e.id,style:{width:se,height:"number"==typeof e.bodyHeight?e.bodyHeight:void 0}}),h.map(((e,n)=>t.default.createElement(St,Jt({key:n,axis:e,sideIndex:h.length-n-1},p)))),t.default.createElement("div",{className:"central-container"},t.default.createElement(ot,{stateController:n,webgl:e.webgl,bodyHeight:e.bodyHeight,boundsSelectionEnabled:e.boundsSelectionEnabled,showTooltips:e.showTooltips,tooltipOptions:e.tooltipOptions,checkIntersection:e.checkIntersection,draggablePoints:e.draggablePoints,onPointDrag:e.onPointDrag,onDraggablePointsDoubleClick:e.onDraggablePointsDoubleClick,onPointClick:e.onPointClick,verticalLines:e.verticalLines,clockStyle:e.clockStyle,timeZone:e.timeZone}),t.default.createElement(vt,{showGrid:g,showAxes:e.showAxes,stateController:n,bigLabels:i,xTickUnit:e.xTickUnit,clockStyle:e.clockStyle,timeZone:e.timeZone,integersOnly:e.xAxisIntegersOnly,formatXAxisLabel:e.formatXAxisLabel}),e.showRangeGraph&&t.default.createElement("div",{className:"range-graph-container"},t.default.createElement(Ot,{stateController:n,webgl:e.webgl,checkIntersection:e.checkIntersection,markDates:e.markRangeGraphDates,timeZone:e.timeZone,verticalLines:e.verticalLines}))),A.map(((e,n)=>t.default.createElement(St,Jt({key:n,axis:e,sideIndex:n},p)))),o&&t.default.createElement("div",{className:"axis y-axis","data-axis-index":"new-right","data-grapher-id":e.id,style:{width:se,height:"number"==typeof e.bodyHeight?e.bodyHeight:void 0}})))))}en.propTypes={series:E.Series.isRequired,webgl:s().bool,requireWASM:s().bool,checkIntersection:s().bool,onAxisChange:s().func,onRenderTime:s().func,exportStateController:s().func,timingFrameCount:s().number,stateControllerInitialization:s().object,syncPool:s().instanceOf(Vt),id:s().string,dragPositionYOffset:s().number,theme:s().oneOf(["day","night","export"]),title:s().string,fullscreen:s().bool,bodyHeight:s().number,height:s().number,width:s().number,showAxes:s().bool,showRangeGraph:s().bool,showRangeSelectors:s().bool,showSeriesKey:s().bool,showTooltips:s().bool,showGrid:s().bool,showAxisColors:s().bool,bigLabels:s().bool,xTickUnit:s().oneOf(["year"]),formatXAxisLabel:s().func,xAxisIntegersOnly:s().bool,clockStyle:s().oneOf(["12h","24h"]),timeZone:s().string,markRangeGraphDates:s().bool,boundsSelectionEnabled:s().bool,sidebarEnabled:s().bool,percentile:s().number,defaultShowOptions:s().bool,defaultShowIndividualPoints:s().bool,defaultShowSidebar:s().bool,defaultShowAnnotations:s().bool,defaultLineWidth:s().number,tooltipOptions:E.TooltipOptions,customBoundsSelectors:E.CustomBoundsSelectors,customBoundsSelectorsOnly:s().bool,defaultBoundsCalculator:s().string,annotations:E.Annotations,draggablePoints:E.DraggablePoints,onPointDrag:s().func,onDraggablePointsDoubleClick:s().func,verticalLines:E.VerticalLines,onPointClick:s().func};const tn=v,nn=Me;class rn extends W{constructor({id:e}){super(),this._id=e,this._multiSeries=[],this._seriesToGraphIndices=new Map,this._graphIndicesToSeries=new Map,this._modifiedSeries=new Map,this._originalSeriesByMultigrapherIndex=new Map,this._stateControllers=new Set,this._prevSeries=[],this._dataCache=new Map,this._subscriptions=new Map,this._draggingY=!1,this.on("multi_series_changed",(()=>{for(let e of this._stateControllers)e._multiSeries=this._multiSeries}))}setSeries(e){if(this._prevSeries.length===e.length){let t=!1;for(let n=0;n<e.length;n++)if(e[n]!==this._prevSeries[n]){t=!0;break}if(!t)return}this._prevSeries=e;const t=new Set,n=new Set(e);for(let n of e){let e=n.graph||0;this._seriesToGraphIndices.has(n)&&(e=this._seriesToGraphIndices.get(n)),t.add(e);let r=this._graphIndicesToSeries.get(e);r||(r=new Set,this._graphIndicesToSeries.set(e,r)),r.add(n)}const r=[...t].sort();this._multiSeries=[];let i=0;for(let e of r){const t=[];for(let r of this._graphIndicesToSeries.get(e)){if(!n.has(r)){this._graphIndicesToSeries.get(e).delete(r);continue}if(this._modifiedSeries.has(r)){i++,t.push(this._modifiedSeries.get(r));continue}const a=k(r.color,i),o=Te(r,i),s={...r,multigrapherSeriesIndex:i,multigrapherGraphIndex:e,color:a,name:o};this._modifiedSeries.set(r,s),this._originalSeriesByMultigrapherIndex.set(i,r),i++,t.push(s)}this._multiSeries.push(t)}this._nextMultigrapherSeriesIndex?this._nextMultigrapherSeriesIndex=this._nextMultigrapherSeriesIndex-this._multiSeriesCount+i:this._nextMultigrapherSeriesIndex=i,this._multiSeriesCount=i,this.emit("multi_series_changed",this.multiSeries)}registerStateController(e){this._stateControllers.has(e)||(this._stateControllers.add(e),e._multigraphStateController=this,e._multiSeries=this._multiSeries,e.on("dragging_y_finalized",(({grapherID:t,axisIndex:n,draggedSeries:r}={})=>{if(t===e.grapherID)return;const[i,a,o]=t.split("-");"multigrapher"===i&&a===this._id&&setTimeout((()=>{this.moveSeries({axisIndex:n,draggedSeries:r,graphIndex:o})}))})),e.on("dragging_y_changed",(e=>{e!==this._draggingY&&(this._draggingY=e,this.emit("dragging_y_changed",this._draggingY))})),e.on("observable_modified",(t=>{for(let n of this._stateControllers)e!==n&&n.markObservableModified(t)})),e.on("dispose",(()=>{this._stateControllers.delete(e)})))}moveSeries({axisIndex:e,draggedSeries:t,graphIndex:n}){const r=this.graphCount,i=this._originalSeriesByMultigrapherIndex.get(t.multigrapherSeriesIndex),a=this._modifiedSeries.get(i);this._multiSeries[a.multigrapherGraphIndex].splice(this._multiSeries[a.multigrapherGraphIndex].indexOf(a),1),this._multiSeries[a.multigrapherGraphIndex]=[...this._multiSeries[a.multigrapherGraphIndex]],a.multigrapherGraphIndex="top"===n?this._createGraphAtTop():"bottom"===n?this._createGraphAtBottom():parseInt(n),a.axisIndex=e,delete a.axis,this._multiSeries[a.multigrapherGraphIndex]=[...this._multiSeries[a.multigrapherGraphIndex],a],this._multiSeries=[...this._multiSeries];for(let e=0;e<this._multiSeries.length;e++){const t=this._multiSeries[e].map((({multigrapherSeriesIndex:e})=>this._originalSeriesByMultigrapherIndex.get(e)));this._graphIndicesToSeries.set(e,new Set(t));for(let n of t)this._seriesToGraphIndices.set(n,e)}this.emit("multi_series_changed",this.multiSeries),this.emit("graph_count_changed",this.graphCount,r)}_createGraphAtTop(){let e=null;for(let t=0;t<this._multiSeries.length&&0===this._multiSeries[t].length;t++)e=t;if(null!==e)return e;this._multiSeries=[[],...this._multiSeries];for(let e=0;e<this._multiSeries.length;e++)if(this._multiSeries[e].length){this._multiSeries[e]=[...this._multiSeries[e]];for(let t of this._multiSeries[e])t.multigrapherGraphIndex=e}return 0}_createGraphAtBottom(){let e=null;for(let t=this._multiSeries.length-1;t>=0&&0===this._multiSeries[t].length;t--)e=t;return null!==e?e:(this._multiSeries=[...this._multiSeries,[]],this._multiSeries.length-1)}get multiSeries(){return this._multiSeries.filter((e=>e.length))}get series(){return[...this._stateControllers].map((e=>e.series)).flat()}get graphCount(){return this.multiSeries.length}get draggingY(){return this._draggingY}dispose(){this.clearListeners();for(let e of this._subscriptions.values())e.unsubscribe();this._subscriptions.clear()}get stateControllerInitialization(){return{sharedDataCache:this._dataCache,sharedSubscriptions:this._subscriptions}}incrementMultigrapherSeriesIndex(){const e=this._nextMultigrapherSeriesIndex;return this._nextMultigrapherSeriesIndex++,e}}function an(){return an=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},an.apply(this,arguments)}const on=t.default.memo(sn);function sn(e){const n=(0,t.useMemo)((()=>Math.random().toString(36).slice(2)),[]),r=(0,t.useMemo)((()=>new rn({id:n,...e})),[]),i=function(e){return Fe(e,"multi_series_changed",e.multiSeries)}(r),a=(0,t.useMemo)((()=>new Vt({syncBounds:e.syncBounds,syncTooltips:e.syncTooltips,syncDragState:!0})),[]),o=(0,t.useMemo)((()=>r.registerStateController.bind(r)),[r]);(0,t.useEffect)((()=>()=>{r.dispose()}),[r]),(0,t.useEffect)((()=>{e.exportStateController&&e.exportStateController(r)}),[r,e.exportStateController]),(0,t.useEffect)((()=>{r.setSeries(e.series)}),[r,e.series]),(0,t.useEffect)((()=>e.onMultiseriesChange?(r.on("multi_series_changed",e.onMultiseriesChange),()=>{r.off("multi_series_changed",e.onMultiseriesChange)}):()=>{}),[r,e.onMultiseriesChange]);const s=He(r);return t.default.createElement("div",{className:"multigrapher"},s&&e.newUpperEnabled&&t.default.createElement("div",{className:`new-grapher grapher-${e.theme}`,"data-grapher-id":`multigrapher-${n}-top`},"New grapher"),i.map(((i,s)=>t.default.createElement(Zt,an({key:s},e,{syncPool:a,stateControllerInitialization:r.stateControllerInitialization,series:i,id:`multigrapher-${n}-${s}`,dragPositionYOffset:e.newUpperEnabled?38:0,exportStateController:o})))),s&&t.default.createElement("div",{className:`new-grapher grapher-${e.theme}`,"data-grapher-id":`multigrapher-${n}-bottom`},"New grapher"))}sn.defaultProps={theme:"night"},sn.propTypes=Object.assign({},Zt.propTypes,{syncBounds:s().bool,syncTooltips:s().bool,newUpperEnabled:s().bool,onMultiseriesChange:s().func})})();var s=o.xQ,l=o.wM,A=o.KG,h=o.tw,c=o.MH,d=o.Oy,g=o.Ay;export{s as AVAILABLE_COLORS,l as BUILT_IN_BOUND_CALCULATORS,A as Grapher,h as MultiGrapher,c as RangeSelection,d as SyncPool,g as default};
|
|
2
2
|
//# sourceMappingURL=bundle.esm.js.map
|