@deephaven/embed-grid 0.57.0 → 0.57.1-alpha-theming-bootstrap.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/assets/{App-48a68d01.js → App-dbe4a1f0.js} +2 -2
- package/build/assets/{App-48a68d01.js.map → App-dbe4a1f0.js.map} +1 -1
- package/build/assets/index-127df55a.css +1 -0
- package/build/assets/{index-1198a790.js → index-4f84b414.js} +2 -2
- package/build/assets/{index-1198a790.js.map → index-4f84b414.js.map} +1 -1
- package/build/assets/index-dd488dc3.css +6 -0
- package/build/assets/{index-ff646b46.js → index-edaac177.js} +2 -2
- package/build/assets/{index-ff646b46.js.map → index-edaac177.js.map} +1 -1
- package/build/assets/{useUser-8de7dad8.js → useUser-7c0ab046.js} +2 -2
- package/build/assets/{useUser-8de7dad8.js.map → useUser-7c0ab046.js.map} +1 -1
- package/build/index.html +2 -2
- package/package.json +14 -14
- package/build/assets/index-03463bb3.css +0 -6
- package/build/assets/index-9f7c990b.css +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as s,C as d}from"./vendor-50d678a0.js";import{u as $,a as P,I as D,C as F,b as U,f as k}from"./useUser-
|
|
2
|
-
//# sourceMappingURL=App-
|
|
1
|
+
import{r as s,C as d}from"./vendor-50d678a0.js";import{u as $,a as P,I as D,C as F,b as U,f as k}from"./useUser-7c0ab046.js";import{L as C,a as B}from"./index-edaac177.js";import"./helpers-042e6b4d.js";import"./monaco-9eb7d7d5.js";var{dh:G}=globalThis;const i=G;C.setLogLevel(parseInt("2",10));const c=C.module("EmbedGrid.App"),N=[i.VariableType.TABLE,i.VariableType.TREETABLE,i.VariableType.HIERARCHICALTABLE,i.VariableType.PANDAS];async function O(a,r){c.info(`Fetching table ${r}...`);const e=await k(a,r);if(!N.includes(e.type))throw new Error(`Unsupported type '${e.type}' for variable named '${r}'`);return await a.getObject(e)}function J(){const a=$(),r=P(),[e,E]=s.useState(),[L,y]=s.useState(),[h,v]=s.useState(),[A,T]=s.useState(),[S,x]=s.useState(!0),g=s.useMemo(()=>new URLSearchParams(window.location.search),[]),{permissions:I}=r,{canCopy:V,canDownloadCsv:j}=I;s.useEffect(function(){async function l(){try{const t=g.get("name");if(t==null)throw new Error("No name param provided");c.debug("Loading table",t,"...");const p=await O(a,t);c.debug("Creating model...");const u=await U.makeModel(i,p);E(u),c.debug("Table successfully loaded!")}catch(t){c.error("Unable to load table",t),y(`${t}`)}x(!1)}l()},[a,g]),s.useEffect(function(){function l(t){const{command:p,value:u}=t.data;switch(p){case"filter":{const f=u.map(({name:o,value:b})=>{const n=e==null?void 0:e.columns.find(w=>w.name===o);if(n==null)throw new Error(`Could not find column named ${o}`);return{name:o,value:b,type:n.type}});v(f);break}case"sort":{const f=u.map(({name:o,direction:b})=>{const n=e==null?void 0:e.columns.find(w=>w.name===o);if(n==null)throw new Error(`Could not find column named ${o}`);return b==="DESC"?n.sort().desc():n.sort().asc()});T(f);break}}}return window.addEventListener("message",l),()=>{window.removeEventListener("message",l)}},[e]);const m=e!=null;return d.jsxs("div",{className:"App",children:[m&&d.jsx(D,{canCopy:V,canDownloadCsv:j,model:e,inputFilters:h,sorts:A}),!m&&d.jsx(B,{isLoaded:m,isLoading:S,errorMessage:L??null}),d.jsx(F,{})]})}export{J as default};
|
|
2
|
+
//# sourceMappingURL=App-dbe4a1f0.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App-
|
|
1
|
+
{"version":3,"file":"App-dbe4a1f0.js","sources":["../../../jsapi-shim/dist/dh.js","../../src/App.tsx"],"sourcesContent":["// The Deephaven API script isn't packaged as a module (yet), and is just included in index.html, exported to the global namespace\n// This include file is simply a wrapper so that it behaves like a module, and can be mocked easily for unit tests\n\nvar {\n dh\n} = globalThis;\nexport default dh;\n//# sourceMappingURL=dh.js.map","import React, { useEffect, useMemo, useState } from 'react';\nimport { useUser } from '@deephaven/app-utils';\nimport { useConnection } from '@deephaven/jsapi-components';\nimport { ContextMenuRoot, LoadingOverlay } from '@deephaven/components'; // Use the loading spinner from the Deephaven components package\nimport {\n InputFilter,\n IrisGrid,\n IrisGridModel,\n IrisGridModelFactory,\n} from '@deephaven/iris-grid'; // iris-grid is used to display Deephaven tables\nimport dh from '@deephaven/jsapi-shim'; // Import the shim to use the JS API\nimport type { IdeConnection, Sort, Table } from '@deephaven/jsapi-types';\nimport { fetchVariableDefinition } from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport './App.scss'; // Styles for in this app\n\nLog.setLogLevel(parseInt(import.meta.env.VITE_LOG_LEVEL ?? '', 10));\n\nconst log = Log.module('EmbedGrid.App');\n\nconst SUPPORTED_TYPES: string[] = [\n dh.VariableType.TABLE,\n dh.VariableType.TREETABLE,\n dh.VariableType.HIERARCHICALTABLE,\n dh.VariableType.PANDAS,\n];\n\nexport type Command = 'filter' | 'sort';\n\n/** Input value for filter commands */\nexport type FilterCommandType = {\n name: string;\n value: string;\n};\n\nexport type SortCommandType = {\n name: string;\n direction?: 'ASC' | 'DESC';\n};\n\n/**\n * Load an existing Deephaven table with the connection provided\n * @param connection The Deephaven session object\n * @param name Name of the table to load\n * @param type The type of table to load\n * @returns Deephaven table\n */\nasync function loadTable(\n connection: IdeConnection,\n name: string\n): Promise<Table> {\n log.info(`Fetching table ${name}...`);\n\n const definition = await fetchVariableDefinition(connection, name);\n if (!SUPPORTED_TYPES.includes(definition.type)) {\n throw new Error(\n `Unsupported type '${definition.type}' for variable named '${name}'`\n );\n }\n const object = await connection.getObject(definition);\n return object as Table;\n}\n\n/**\n * A functional React component that displays a Deephaven table in an IrisGrid using the @deephaven/iris-grid package.\n * It will attempt to open and display the table specified with the `name` parameter, expecting it to be present on the server.\n * E.g. http://localhost:3000/?name=myTable will attempt to open a table `myTable`\n * If no query param is provided, it will attempt to open a new session and create a basic time table and display that.\n * By default, tries to connect to the server defined in the VITE_CORE_API_URL variable, which is set to http://localhost:1000/jsapi\n * See Vite docs for how to update these env vars: https://vitejs.dev/guide/env-and-mode.html\n */\nfunction App(): JSX.Element {\n const connection = useConnection();\n const user = useUser();\n const [model, setModel] = useState<IrisGridModel>();\n const [error, setError] = useState<string>();\n const [inputFilters, setInputFilters] = useState<InputFilter[]>();\n const [sorts, setSorts] = useState<Sort[]>();\n const [isLoading, setIsLoading] = useState(true);\n const searchParams = useMemo(\n () => new URLSearchParams(window.location.search),\n []\n );\n const { permissions } = user;\n const { canCopy, canDownloadCsv } = permissions;\n\n useEffect(\n function initializeApp() {\n async function initApp(): Promise<void> {\n try {\n // Get the table name from the query param `name`.\n const name = searchParams.get('name');\n if (name == null) {\n throw new Error('No name param provided');\n }\n log.debug('Loading table', name, '...');\n // Load the table up.\n const table = await loadTable(connection, name);\n // Create the `IrisGridModel` for use with the `IrisGrid` component\n log.debug(`Creating model...`);\n const newModel = await IrisGridModelFactory.makeModel(dh, table);\n setModel(newModel);\n log.debug('Table successfully loaded!');\n } catch (e: unknown) {\n log.error('Unable to load table', e);\n setError(`${e}`);\n }\n setIsLoading(false);\n }\n initApp();\n },\n [connection, searchParams]\n );\n\n useEffect(\n function initCommandListener() {\n function receiveMessage(e: MessageEvent): void {\n const { command, value } = e.data as {\n command: Command;\n value: unknown;\n };\n switch (command) {\n case 'filter': {\n const filterCommandValues = value as FilterCommandType[];\n const newInputFilters = filterCommandValues.map(\n ({ name, value: filterValue }) => {\n const column = model?.columns.find(c => c.name === name);\n if (column == null) {\n throw new Error(`Could not find column named ${name}`);\n }\n return {\n name,\n value: filterValue,\n type: column.type,\n };\n }\n );\n setInputFilters(newInputFilters);\n break;\n }\n case 'sort': {\n const sortCommandValues = value as SortCommandType[];\n const newSorts = sortCommandValues.map(({ name, direction }) => {\n const column = model?.columns.find(c => c.name === name);\n if (column == null) {\n throw new Error(`Could not find column named ${name}`);\n }\n return direction === 'DESC'\n ? column.sort().desc()\n : column.sort().asc();\n });\n setSorts(newSorts);\n break;\n }\n }\n }\n window.addEventListener('message', receiveMessage);\n\n return () => {\n window.removeEventListener('message', receiveMessage);\n };\n },\n [model]\n );\n\n const isLoaded = model != null;\n\n return (\n <div className=\"App\">\n {isLoaded && (\n <IrisGrid\n canCopy={canCopy}\n canDownloadCsv={canDownloadCsv}\n model={model}\n inputFilters={inputFilters}\n sorts={sorts}\n />\n )}\n {!isLoaded && (\n <LoadingOverlay\n isLoaded={isLoaded}\n isLoading={isLoading}\n errorMessage={error ?? null}\n />\n )}\n <ContextMenuRoot />\n </div>\n );\n}\n\nexport default App;\n"],"names":["dh","shim","Log","log","SUPPORTED_TYPES","loadTable","connection","name","definition","fetchVariableDefinition","App","useConnection","user","useUser","model","setModel","useState","error","setError","inputFilters","setInputFilters","sorts","setSorts","isLoading","setIsLoading","searchParams","useMemo","permissions","canCopy","canDownloadCsv","useEffect","initApp","table","newModel","IrisGridModelFactory","e","receiveMessage","command","value","newInputFilters","filterValue","column","c","newSorts","direction","isLoaded","jsxs","jsx","IrisGrid","LoadingOverlay","ContextMenuRoot"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._spectrumActionBar_tmmkp_5 [class^=react-spectrum-ActionBar-bar]{max-width:none}._spectrumDialogComponentHeading_tmmkp_9{font-weight:400;overflow-wrap:break-word}._spectrumEllipsis_tmmkp_14{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aci-container{flex-grow:1}.aci-options{max-height:200px;border-radius:4px;overflow:auto;user-select:none}.aci-options .no-match{padding:.375rem .75rem}.aci-options .aci-option-btn{border:none;width:100%;color:var(--dh-color-fg);padding:.375rem .75rem;white-space:nowrap;background:none;text-align:left}.aci-options .aci-option-btn.keyboard-active{background-color:var(--dh-color-keyboard-selected-bg)}.aci-options .aci-option-btn:hover{color:var(--dh-color-fg);background-color:var(--dh-color-accent-bg)}.aci-options .aci-option-btn:focus{outline:none}textarea.auto-resize-textarea{min-height:calc(1.5em + .75rem + 2px);white-space:nowrap}textarea.auto-resize-textarea:focus{white-space:pre}.info-modal{text-align:center;padding-bottom:18px}.info-modal .message-icon{font-size:120px;text-align:center;line-height:1}.info-modal .message-icon .svg-inline--fa{font-size:inherit}.info-modal .message-header{font-size:24px}.info-modal .message-header .svg-inline--fa{font-size:inherit}.info-modal .message-content{font-style:italic}.card-flip--show-front,.card-flip--show-back{display:grid;height:100%;width:100%;isolation:isolate;perspective:1000px}.card-flip--front,.card-flip--back{grid-area:1/1/2/2;transform-style:flat;backface-visibility:hidden;transition:transform .6s ease-in-out;overflow:hidden}.card-flip--show-back .card-flip--front{transform:rotateY(180deg)}.card-flip--show-back .card-flip--back,.card-flip--show-front .card-flip--front{transform:rotateY(0)}.card-flip--show-front .card-flip--back{transform:rotateY(-180deg)}.card-flip--is-flipping{overflow:hidden}.card-flip--is-flipping .card-flip--show-front,.card-flip--is-flipping .card-flip--show-back{z-index:1060}.cs-container{flex-wrap:nowrap}.cs-container .cs-dropdown .cs-btn{display:flex;flex-direction:row;align-items:center;justify-content:space-between;border-radius:4px;border:1px solid var(--dh-color-input-border);min-width:14rem;font-weight:400}.cs-container .cs-dropdown .cs-btn .cs-caret{background-size:10px 6px;background-color:var(--dh-color-fg);mask-image:var(--dh-svg-icon-selector-caret);mask-position:center center;mask-repeat:no-repeat;mask-size:10px 6px;background-color:var(--dh-color-selector-fg);width:10px;height:6px;margin-right:4px}.cs-container .cs-dropdown:hover .cs-btn:not(:disabled) .cs-caret{background-color:var(--dh-color-selector-hover-fg)}.cs-container .cs-dropdown-invalid .cs-btn-invalid{border-color:var(--dh-color-negative-bg)}.cs-container .cs-btn:focus{border-color:var(--dh-color-input-focus-border)}.cs-menu-container .cs-divider{background-color:var(--dh-color-black, #1a171a)}.cs-menu-container .cs-custom-container{display:flex;direction:row}.cs-menu-container .custom-label{padding:.375rem .75rem}.cs-menu-container .cs-options{max-height:400px;overflow:auto}.cs-menu-container .cs-option-btn{border:none;width:100%;color:var(--dh-color-fg);padding:.375rem .75rem;white-space:nowrap;text-decoration:none;background-color:transparent;text-align:left;cursor:pointer;user-select:none;display:block}.cs-menu-container .cs-option-btn.keyboard-active{background-color:var(--dh-color-keyboard-selected-bg)}.cs-menu-container .cs-option-btn:hover{color:var(--dh-color-fg);background-color:var(--dh-color-accent-bg)}.cs-menu-container .cs-option-btn:focus{outline:none}.cs-menu-container .cs-options:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.hcm-btn{display:flex;flex-direction:row;align-items:center;gap:.75rem;justify-content:space-between;border-radius:4px;border:1px solid var(--dh-color-input-border);background-color:var(--dh-color-input-bg);padding:.375rem .75rem;font-weight:400}.hcm-btn .cs-caret{background-size:10px 6px;background-color:var(--dh-color-fg);mask-image:var(--dh-svg-icon-selector-caret);mask-position:center center;mask-repeat:no-repeat;mask-size:10px 6px;background-color:var(--dh-color-selector-fg);width:10px;height:6px;margin-right:4px}.hcm-btn:hover:not(:disabled) .cs-caret{background-color:var(--dh-color-selector-hover-fg)}.hcm-btn:focus{border-color:var(--dh-color-input-focus-border)}.hcm-menu-container{padding:.5rem}.hcm-menu-container .hcm-parent{font-weight:700}.hcm-menu-container .hcm-child{margin-left:1rem}.random-area-plot-animation-container{position:absolute;top:0;bottom:0;height:100%;width:100%;overflow:hidden}.random-area-plot-animation-container canvas{transition:all .15s;display:block}.random-area-plot-animation-container canvas.shade{filter:grayscale(100%) brightness(90%)}.btn-socketed{position:relative;display:inline-block;border:1px solid var(--dh-color-input-border);padding:.375rem 1.5rem;color:var(--dh-color-neutral-contrast);background:var(--dh-color-neutral-bg);line-height:1.5;user-select:none;border-radius:4px;transition:color .12s ease-in-out,background-color .12s ease-in-out,border-color .12s ease-in-out,box-shadow .12s ease-in-out;cursor:pointer}.btn-socketed:after{content:"";position:absolute;bottom:-1px;left:50%;transform:translate(-50%,50%);background:var(--dh-color-content-bg, #2d2a2e);width:18px;height:18px;border-radius:50%;border:1px solid var(--dh-color-input-border);transition:color .12s ease-in-out,background-color .12s ease-in-out,border-color .12s ease-in-out,box-shadow .12s ease-in-out}.btn-socketed:focus{border-color:var(--dh-color-input-focus-border);box-shadow:0 0 0 .2rem hsla(var(--dh-color-accent-hsl),.35)}.btn-socketed:focus:after{border-color:var(--dh-color-input-focus-border)}.btn-socketed:hover{background-color:var(--dh-color-accent-hover-bg);border-color:var(--dh-color-accent-hover-bg)}.btn-socketed:hover:after{border-color:var(--dh-color-accent-hover-bg)}.btn-socketed:active{border-color:var(--dh-color-accent-1100);background-color:var(--dh-color-accent-1100)}.btn-socketed .btn-socketed-icon{display:none}.btn-socketed:disabled,.btn-socketed:disabled:hover{cursor:not-allowed;border-color:var(--dh-color-black);background-color:var(--dh-color-input-disabled-bg)}.btn-socketed:disabled:after,.btn-socketed:disabled:hover:after{border-color:var(--dh-color-black)}.btn-socketed.btn-socketed-linked:after{border-color:var(--dh-color-accent-bg);background-color:var(--dh-color-accent-bg)}.btn-socketed.btn-socketed-linked.btn-socketed-linked-source:after{border-color:var(--dh-color-visual-purple);background-color:var(--dh-color-visual-purple)}.btn-socketed.btn-socketed-linked .btn-socketed-icon.linked{display:block;position:absolute;bottom:1px;left:50%;transform:translate(-50%,9px);z-index:1}.btn-socketed.btn-socketed-linked:disabled,.btn-socketed.btn-socketed-linked:disabled:hover{border-color:var(--dh-color-black);background-color:var(--dh-color-input-disabled-bg)}.btn-socketed.btn-socketed-linked:disabled:after,.btn-socketed.btn-socketed-linked:disabled:hover:after{background-color:var(--dh-color-accent-down-bg);border-color:var(--dh-color-black)}.btn-socketed.is-invalid,.btn-socketed.btn-socketed-linked.is-invalid{border-color:hsla(var(--dh-color-negative-hsl),.85)}.btn-socketed.is-invalid:after,.btn-socketed.btn-socketed-linked.is-invalid:after{border-color:var(--dh-color-negative-bg);background-color:var(--dh-color-negative-bg)}.btn-socketed.is-invalid .btn-socketed-icon.linked,.btn-socketed.btn-socketed-linked.is-invalid .btn-socketed-icon.linked{display:none}.btn-socketed.is-invalid .btn-socketed-icon.is-invalid,.btn-socketed.btn-socketed-linked.is-invalid .btn-socketed-icon.is-invalid{color:var(--dh-color-neutral-bg);display:block;position:absolute;bottom:1px;left:50%;transform:translate(-50%,9px);z-index:1}.btn-socketed.is-invalid:focus,.btn-socketed.btn-socketed-linked.is-invalid:focus{box-shadow:0 0 0 .2rem hsla(var(--dh-color-negative-hsl),.35)}.btn-socketed.is-invalid:disabled,.btn-socketed.is-invalid:disabled:hover,.btn-socketed.btn-socketed-linked.is-invalid:disabled,.btn-socketed.btn-socketed-linked.is-invalid:disabled:hover{border-color:var(--dh-color-black);background-color:var(--dh-color-input-disabled-bg)}.btn-socketed.is-invalid:disabled:after,.btn-socketed.is-invalid:disabled:hover:after,.btn-socketed.btn-socketed-linked.is-invalid:disabled:after,.btn-socketed.btn-socketed-linked.is-invalid:disabled:hover:after{background-color:var(--dh-color-input-disabled-bg);border-color:var(--dh-color-black)}._time-slider_1ymiy_3{width:100%;padding-bottom:1rem;overflow:hidden}._time-slider_1ymiy_3 ._time-slider-popovers_1ymiy_8{display:flex;flex-direction:row;margin:0 4px}._time-slider_1ymiy_3 ._time-slider-popovers_1ymiy_8 ._handle-popper_1ymiy_13{padding:.5rem;width:90px;border-radius:4px;background:var(--dh-color-gray-400);flex-shrink:0;text-align:center;margin:0 1px}._time-slider_1ymiy_3 ._time-slider-popovers_1ymiy_8 ._handle-popper_1ymiy_13 input{padding:.375rem 0;text-align:center}._time-slider_1ymiy_3 ._time-slider-popovers_1ymiy_8 ._flex-spacer_1ymiy_26{margin-left:auto;margin-right:auto}._time-slider_1ymiy_3 ._track_1ymiy_30{margin:4px;height:15px;background:var(--dh-color-gray-500);border-radius:7.5px;position:relative}._time-slider_1ymiy_3 ._track_1ymiy_30 ._track-fills_1ymiy_37{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:7.5px;overflow:hidden}._time-slider_1ymiy_3 ._track_1ymiy_30 ._track-fills_1ymiy_37 ._track-fill_1ymiy_37{border-radius:7.5px;background:var(--dh-color-accent-down-bg);height:100%;width:100%;position:absolute;top:0;left:0}._time-slider_1ymiy_3 ._track_1ymiy_30 ._track-fills_1ymiy_37 ._track-fill-start_1ymiy_55,._time-slider_1ymiy_3 ._track_1ymiy_30 ._track-fills_1ymiy_37 ._track-fill-middle_1ymiy_56{transform-origin:0 0}._time-slider_1ymiy_3 ._track_1ymiy_30 ._track-fills_1ymiy_37 ._track-fill-end_1ymiy_59{transform-origin:100% 0}._time-slider_1ymiy_3 ._track_1ymiy_30 ._handle-track_1ymiy_62{position:absolute;width:100%;height:15px;top:0;left:0;pointer-events:none}._time-slider_1ymiy_3 ._track_1ymiy_30 ._handle-track_1ymiy_62:focus-within{z-index:2}._time-slider_1ymiy_3 ._track_1ymiy_30 ._handle-track_1ymiy_62 ._handle_1ymiy_13{display:block;height:15px;width:15px;border-radius:50%;position:absolute;top:0;left:0;padding:0;background:var(--dh-color-gray-700);border:1px solid transparent;transition:color .12s ease-in-out,background-color .12s ease-in-out,border-color .12s ease-in-out,box-shadow .12s ease-in-out;cursor:grab;pointer-events:all}._time-slider_1ymiy_3 ._track_1ymiy_30 ._handle-track_1ymiy_62 ._handle_1ymiy_13:hover{background:var(--dh-color-gray-900, #fcfcfa)}._time-slider_1ymiy_3 ._track_1ymiy_30 ._handle-track_1ymiy_62 ._handle_1ymiy_13:focus{background:var(--dh-color-gray-900, #fcfcfa);outline:0;border:1px solid var(--dh-color-input-focus-border);box-shadow:0 0 0 .2rem hsla(var(--dh-color-accent-hsl),.35);transform:scale(1.15)}._time-slider_1ymiy_3 ._track_1ymiy_30 ._ticks_1ymiy_98{height:100%;width:100%;position:absolute;top:0;left:0;display:flex;flex-direction:row}._time-slider_1ymiy_3 ._track_1ymiy_30 ._ticks_1ymiy_98 div{display:block;width:4.1666666667%;height:15px;border-right:1px solid var(--dh-color-gray-75)}._time-slider_1ymiy_3 ._track_1ymiy_30 ._ticks_1ymiy_98 div:last-child{border-right:none}._time-slider_1ymiy_3 ._tick-labels_1ymiy_116{position:relative;width:100%;user-select:none;color:var(--dh-color-gray-700);display:flex;flex-direction:row;flex-wrap:wrap;height:1.5rem;overflow:hidden}._time-slider_1ymiy_3 ._tick-labels_1ymiy_116 ._tick-label_1ymiy_116{width:4.1666666667%;text-align:left;font-size:.9rem}._time-slider_1ymiy_3 ._tick-labels_1ymiy_116 ._tick-label-wrapper_1ymiy_132{width:95.8333333333%;min-width:300px;margin-left:-2.0833333333%;display:flex}._time-slider_1ymiy_3 ._tick-labels_1ymiy_116 ._tick-label-wrapper_1ymiy_132 ._tick-label_1ymiy_116{text-align:center;visibility:hidden;width:4.347826087%}._time-slider_1ymiy_3 ._tick-labels_1ymiy_116 ._tick-label-wrapper_1ymiy_132 ._tick-label_1ymiy_116:before{content:"";margin-left:-100%}._time-slider_1ymiy_3 ._tick-labels_1ymiy_116 ._tick-label-wrapper_1ymiy_132 ._tick-label_1ymiy_116:after{content:"";margin-right:-100%}._time-slider_1ymiy_3 ._tick-labels_1ymiy_116 ._tick-label-wrapper_1ymiy_132 ._tick-label_1ymiy_116:nth-child(4),._time-slider_1ymiy_3 ._tick-labels_1ymiy_116 ._tick-label-wrapper_1ymiy_132 ._tick-label_1ymiy_116:nth-child(8),._time-slider_1ymiy_3 ._tick-labels_1ymiy_116 ._tick-label-wrapper_1ymiy_132 ._tick-label_1ymiy_116:nth-child(12),._time-slider_1ymiy_3 ._tick-labels_1ymiy_116 ._tick-label-wrapper_1ymiy_132 ._tick-label_1ymiy_116:nth-child(16),._time-slider_1ymiy_3 ._tick-labels_1ymiy_116 ._tick-label-wrapper_1ymiy_132 ._tick-label_1ymiy_116:nth-child(20),._time-slider_1ymiy_3 ._tick-labels_1ymiy_116 ._tick-label-wrapper_1ymiy_132 ._tick-label_1ymiy_116:nth-child(24){visibility:visible}._time-slider_1ymiy_3 ._tick-labels_1ymiy_116 ._tick-label-wrapper_1ymiy_132 div:nth-child(12){position:absolute;top:0;left:47.8260869565%}._time-slider_1ymiy_3 ._tick-labels_1ymiy_116 ._tick-label-wrapper_1ymiy_132 div:nth-child(13){margin-left:4.1666666667%}._time-slider_1ymiy_3 ._tick-labels_1ymiy_116 ._tick-label-wrapper_1ymiy_132 div:nth-child(24){position:absolute;direction:rtl;top:0;right:0;text-align:right}._time-slider_1ymiy_3 ._tick-labels_1ymiy_116 ._tick-label-wrapper_1ymiy_132 div:nth-child(24):before,._time-slider_1ymiy_3 ._tick-labels_1ymiy_116 ._tick-label-wrapper_1ymiy_132 div:nth-child(24):after{content:unset;margin:unset}.time-slider{width:100%;padding-bottom:1rem;overflow:hidden}.time-slider .time-slider-popovers{display:flex;flex-direction:row;margin:0 4px}.time-slider .time-slider-popovers .handle-popper{padding:.5rem;width:90px;border-radius:4px;background:var(--dh-color-gray-400);flex-shrink:0;text-align:center;margin:0 1px}.time-slider .time-slider-popovers .handle-popper input{padding:.375rem 0;text-align:center}.time-slider .time-slider-popovers .flex-spacer{margin-left:auto;margin-right:auto}.time-slider .track{margin:4px;height:15px;background:var(--dh-color-gray-500);border-radius:7.5px;position:relative}.time-slider .track .track-fills{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:7.5px;overflow:hidden}.time-slider .track .track-fills .track-fill{border-radius:7.5px;background:var(--dh-color-accent-down-bg);height:100%;width:100%;position:absolute;top:0;left:0}.time-slider .track .track-fills .track-fill-start,.time-slider .track .track-fills .track-fill-middle{transform-origin:0 0}.time-slider .track .track-fills .track-fill-end{transform-origin:100% 0}.time-slider .track .handle-track{position:absolute;width:100%;height:15px;top:0;left:0;pointer-events:none}.time-slider .track .handle-track:focus-within{z-index:2}.time-slider .track .handle-track .handle{display:block;height:15px;width:15px;border-radius:50%;position:absolute;top:0;left:0;padding:0;background:var(--dh-color-gray-700);border:1px solid transparent;transition:color .12s ease-in-out,background-color .12s ease-in-out,border-color .12s ease-in-out,box-shadow .12s ease-in-out;cursor:grab;pointer-events:all}.time-slider .track .handle-track .handle:hover{background:var(--dh-color-gray-900, #fcfcfa)}.time-slider .track .handle-track .handle:focus{background:var(--dh-color-gray-900, #fcfcfa);outline:0;border:1px solid var(--dh-color-input-focus-border);box-shadow:0 0 0 .2rem hsla(var(--dh-color-accent-hsl),.35);transform:scale(1.15)}.time-slider .track .ticks{height:100%;width:100%;position:absolute;top:0;left:0;display:flex;flex-direction:row}.time-slider .track .ticks div{display:block;width:4.1666666667%;height:15px;border-right:1px solid var(--dh-color-gray-75)}.time-slider .track .ticks div:last-child{border-right:none}.time-slider .tick-labels{position:relative;width:100%;user-select:none;color:var(--dh-color-gray-700);display:flex;flex-direction:row;flex-wrap:wrap;height:1.5rem;overflow:hidden}.time-slider .tick-labels .tick-label{width:4.1666666667%;text-align:left;font-size:.9rem}.time-slider .tick-labels .tick-label-wrapper{width:95.8333333333%;min-width:300px;margin-left:-2.0833333333%;display:flex}.time-slider .tick-labels .tick-label-wrapper .tick-label{text-align:center;visibility:hidden;width:4.347826087%}.time-slider .tick-labels .tick-label-wrapper .tick-label:before{content:"";margin-left:-100%}.time-slider .tick-labels .tick-label-wrapper .tick-label:after{content:"";margin-right:-100%}.time-slider .tick-labels .tick-label-wrapper .tick-label:nth-child(4),.time-slider .tick-labels .tick-label-wrapper .tick-label:nth-child(8),.time-slider .tick-labels .tick-label-wrapper .tick-label:nth-child(12),.time-slider .tick-labels .tick-label-wrapper .tick-label:nth-child(16),.time-slider .tick-labels .tick-label-wrapper .tick-label:nth-child(20),.time-slider .tick-labels .tick-label-wrapper .tick-label:nth-child(24){visibility:visible}.time-slider .tick-labels .tick-label-wrapper div:nth-child(12){position:absolute;top:0;left:47.8260869565%}.time-slider .tick-labels .tick-label-wrapper div:nth-child(13){margin-left:4.1666666667%}.time-slider .tick-labels .tick-label-wrapper div:nth-child(24){position:absolute;direction:rtl;top:0;right:0;text-align:right}.time-slider .tick-labels .tick-label-wrapper div:nth-child(24):before,.time-slider .tick-labels .tick-label-wrapper div:nth-child(24):after{content:unset;margin:unset}.toast-notification{position:absolute;bottom:0;left:0;right:0;height:50px;background-color:var(--dh-color-accent-100);color:var(--dh-color-text);display:flex;flex-direction:row;align-content:center;padding-left:1em;padding-right:1em;padding-bottom:0}.toast-notification.error{background:var(--dh-color-negative-bg);color:var(--dh-color-text)}.toast-notification .message-container{flex-grow:1;font-weight:600;text-overflow:ellipsis;display:flex;flex-direction:row;align-items:center;user-select:none;white-space:nowrap;overflow:hidden}.toast-notification .message{text-overflow:ellipsis;overflow:hidden}.toast-notification .buttons-container{flex-grow:0;display:flex;flex-direction:row;align-items:center;margin-left:1em}.toast-notification-slide-up-enter{transform:translate3d(0,100%,0)}.toast-notification-slide-up-enter-active{transform:none;transition:transform .15s ease-out}.toast-notification-slide-up-exit{transform:none}.toast-notification-slide-up-exit-active{transform:translate3d(0,100%,0);transition:transform .15s ease-out}.validate-label{padding-right:.5rem}.validate-label.modified{color:var(--dh-color-modified)}.table-input-container .select-value-list-scroll-pane{min-height:2.4rem;max-height:12rem;z-index:0}.table-input-container .meta-row{display:flex;flex-wrap:wrap;justify-content:space-between;padding-top:.25rem}.login-form{max-width:302.5px;min-height:310px;background:var(--dh-color-login-form-bg);border-radius:0 4px 4px 0;display:flex;flex-grow:1;flex-direction:column;align-items:center;justify-content:space-between;padding:1rem 0}.login-form fieldset{padding:0;margin:0}.login-form .flex-wrapper{width:85%}.login-form .flex-spacer{display:flex;justify-content:center;align-items:center;flex-grow:1;width:85%}.login-form .flex-spacer:empty{content:""}.login-form .status-message{color:var(--dh-color-login-status-message)}.login-form .error-message{color:var(--dh-color-negative-bg);width:100%;word-break:break-word;margin-top:.25rem;margin-bottom:.25rem}.login-form .btn-primary{min-width:118px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.login-form .is-initializing{opacity:0;animation:fade-in .15s 1s forwards}.login-container{position:absolute;height:100%;width:100%;top:0;left:0;display:flex;align-items:center;justify-content:center}.login-container .login-box{position:relative;display:flex;width:605px;box-shadow:0 .1rem 1rem hsla(var(--dh-color-black-hsl),.45);opacity:0;animation:.3s ease-out 0s 1 forwards animateLoginBox}.login-container .login-box .logo{background-color:var(--dh-color-login-logo-bg);border-radius:4px 0 0 4px;display:flex;justify-content:center;align-items:center;min-height:310px;min-width:302.5px;pointer-events:none;user-select:none}.login-container .login-box .logo img{max-width:225px}.login-container .login-box .footer{padding:1rem 0;position:absolute;width:100%;bottom:0;margin:0;transform:translateY(100%);text-align:center;color:var(--dh-color-login-footer-fg);font-size:12px}@keyframes animateLoginBox{0%{opacity:0}to{opacity:1}}@media (max-width: 767.98px){.login-container .login-box{flex-direction:column;margin:3rem}.login-container .login-box .logo{width:100%;min-height:165px;border-radius:4px 4px 0 0}.login-container .login-box .logo img{width:80%;max-width:350px}.login-container .login-box .login-form{max-width:100%;border-radius:0 0 4px 4px}}.plotly-notifier{margin-right:15px}.plotly-notifier .notifier-note{color:var(--dh-color-fg)!important;border:0!important;border-radius:2px!important;background:var(--dh-color-plotly-notifier-note-bg)!important;overflow-wrap:normal!important;hyphens:unset!important;margin-bottom:.5rem!important;box-shadow:0 .1rem 1rem hsla(var(--dh-color-black-hsl),.45)!important}.plotly-notifier .notifier-close{color:var(--dh-color-gray-600)!important;transition:all .2s ease-in-out!important}.plotly-notifier .notifier-close:hover{color:var(--dh-color-fg)!important}.chart-wrapper{background:var(--dh-color-chart-bg)}.chart-wrapper .plot-container .cartesianlayer text{user-select:none}.chart-wrapper .plot-container .hovertext path,.chart-wrapper .plot-container .axistext path{stroke:none!important}.chart-wrapper .plot-container .axistext path{fill:var(--dh-color-plotly-axis-text)!important;box-shadow:4px 4px var(--dh-color-black)}.chart-wrapper .plot-container .zoomlayer .zoombox{fill:var(--dh-color-plotly-zoombox)!important}.chart-wrapper .plot-container .zoomlayer .zoombox-corners{fill:var(--dh-color-plotly-zoombox-corners-fill);stroke:var(--dh-color-plotly-zoombox-corners-stroke)}.chart-wrapper .js-plotly-plot .plotly [data-title]:before{border-color:transparent transparent var(--dh-color-tooltip-bg);z-index:1002}.chart-wrapper .js-plotly-plot .plotly [data-title]:after{border-radius:4px;background:var(--dh-color-tooltip-bg);color:var(--dh-color-tooltip-fg);padding:.25rem .5rem;box-shadow:var(--dh-color-tooltip-box-shadow);z-index:1001}.chart-wrapper .js-plotly-plot .plotly .modebar{z-index:auto}.chart-wrapper .js-plotly-plot .plotly .modebar .modebar-btn[data-attr=animation-spin] svg{animation:fa-spin 2s infinite linear}.chart-wrapper .js-plotly-plot .plotly .modebar .modebar-btn[data-attr=fill-active] svg path{fill:var(--dh-color-plotly-modebar-btn-active)!important}.chart-wrapper .js-plotly-plot .plotly .modebar .modebar-btn[data-attr=fill-warning] svg path{fill:var(--dh-color-plotly-modebar-btn-warning)!important}.chart-error-popper .popper-content{padding:.25rem}._lm_dragging_11jwh_1{overflow:hidden;pointer-events:none}._lm_dragging_11jwh_1 ._lm_goldenlayout_11jwh_1 ._lm_header_11jwh_1{pointer-events:auto}._lm_dragging_11jwh_1 ._lm_goldenlayout_11jwh_1 ._lm_header_11jwh_1 ._lm_controls_11jwh_1>li{pointer-events:none}._lm_dragging_11jwh_1 ._lm_goldenlayout_11jwh_1 ._lm_header_11jwh_1 ._lm_controls_11jwh_1>li._lm_tabpreviousbutton_11jwh_1,._lm_dragging_11jwh_1 ._lm_goldenlayout_11jwh_1 ._lm_header_11jwh_1 ._lm_controls_11jwh_1>li._lm_tabnextbutton_11jwh_1{pointer-events:auto}body:not(._lm_dragging_11jwh_1) ._lm_header_11jwh_1 ._lm_tab_11jwh_1:not(._lm_active_11jwh_1):hover{color:var(--dh-color-gray-700)}body:not(._lm_dragging_11jwh_1) ._lm_header_11jwh_1 ._lm_tab_11jwh_1:hover ._lm_close_tab_11jwh_1{opacity:.4;transition:opacity .3s ease}body:not(._lm_dragging_11jwh_1) ._lm_header_11jwh_1 ._lm_tab_11jwh_1:hover ._lm_close_tab_11jwh_1:hover{opacity:1}._lm_goldenlayout_11jwh_1{background:var(--dh-color-bg);position:absolute}._lm_content_11jwh_1{background:var(--dh-color-content-bg, #2d2a2e);overflow:visible}._lm_dragProxy_11jwh_1 ._lm_content_11jwh_1{height:100%;width:100%;box-shadow:0 .1rem 1rem hsla(var(--dh-color-black-hsl),.45)}._lm_dragProxy_11jwh_1 ._lm_header_11jwh_1{height:28px;box-shadow:none}._lm_dragProxy_11jwh_1 ._lm_header_11jwh_1 ._lm_tab_11jwh_1,._lm_dragProxy_11jwh_1 ._lm_header_11jwh_1 ._lm_tab_11jwh_1._lm_active_11jwh_1{border:0;box-shadow:0 .1rem 1rem hsla(var(--dh-color-black-hsl),.45)}._lm_dropTargetIndicator_11jwh_1{background-image:linear-gradient(to right,var(--dh-color-black, #1a171a) 50%,var(--dh-color-white, #f0f0ee) 50%),linear-gradient(to right,var(--dh-color-black, #1a171a) 50%,var(--dh-color-white, #f0f0ee) 50%),linear-gradient(to bottom,var(--dh-color-black, #1a171a) 50%,var(--dh-color-white, #f0f0ee) 50%),linear-gradient(to bottom,var(--dh-color-black, #1a171a) 50%,var(--dh-color-white, #f0f0ee) 50%);background-size:8px 1px,8px 1px,1px 8px,1px 8px;background-position:0 top,0 bottom,left 0,right 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;animation:_march_11jwh_1 .5s;animation-timing-function:linear;animation-iteration-count:infinite;box-sizing:border-box;transition:all .2s ease}._lm_dropTargetIndicator_11jwh_1 ._lm_inner_11jwh_1{box-sizing:border-box;border:1px solid transparent;box-shadow:inset 0 0 1rem 1px hsla(var(--dh-color-true-black-hsl),.45);opacity:1;background:hsla(var(--dh-color-accent-hsl),.1)}._lm_splitter_11jwh_1{background:var(--dh-color-gray-600);opacity:.001;transition:opacity .15s ease}._lm_splitter_11jwh_1:hover,._lm_splitter_11jwh_1._lm_dragging_11jwh_1{background:var(--dh-color-gray-700);opacity:1}._lm_header_11jwh_1{box-sizing:content-box;height:28px;padding-top:0;background:var(--dh-color-gray-75);box-shadow:inset 0 -1px 0 0 var(--dh-color-bg);user-select:none}._lm_header_11jwh_1 ._lm_controls_11jwh_1>li{height:100%;width:24px}._lm_header_11jwh_1._lm_selectable_11jwh_1{cursor:pointer}._lm_header_11jwh_1 ._lm_tab_11jwh_1,._lm_tabdropdown_list_11jwh_1 ._lm_tab_11jwh_1{display:flex;align-items:center;font-family:Fira Sans,-apple-system,blinkmacsystemfont,Segoe UI,Roboto,Helvetica Neue,arial,sans-serif;background-color:var(--dh-color-gray-75);color:var(--dh-color-gray-600);height:28px;font-size:12px;min-width:5rem;margin:0;padding:0 .25rem 0 .5rem;box-shadow:inset -1px -1px 0 0 var(--dh-color-bg);transition:color .15s,background-color .15s;max-width:12rem;white-space:nowrap;overflow:hidden}._lm_header_11jwh_1 ._lm_tab_11jwh_1 ._lm_title_11jwh_1,._lm_tabdropdown_list_11jwh_1 ._lm_tab_11jwh_1 ._lm_title_11jwh_1{flex-grow:1;padding-right:.25rem}._lm_header_11jwh_1 ._lm_tab_11jwh_1 ._lm_title_before_11jwh_1,._lm_tabdropdown_list_11jwh_1 ._lm_tab_11jwh_1 ._lm_title_before_11jwh_1{display:flex;align-items:center}._lm_header_11jwh_1 ._lm_tab_11jwh_1 ._lm_close_tab_11jwh_1,._lm_tabdropdown_list_11jwh_1 ._lm_tab_11jwh_1 ._lm_close_tab_11jwh_1{background-size:8px;background-color:var(--dh-color-fg);mask-image:var(--dh-svg-icon-close-tab);mask-position:center center;mask-repeat:no-repeat;mask-size:8px;cursor:pointer;position:relative;width:8px;height:8px;padding:4px;margin-left:-.25rem;opacity:0;transition:opacity .3s ease}._lm_selected_11jwh_1 ._lm_header_11jwh_1{background-color:var(--dh-color-content-bg, #2d2a2e)}._lm_header_11jwh_1 ._lm_tab_11jwh_1._lm_active_11jwh_1,._lm_header_11jwh_1 ._lm_tab_11jwh_1._lm_active_11jwh_1:hover{height:28px;background-color:var(--dh-color-content-bg, #2d2a2e);color:var(--dh-color-white, #f0f0ee);padding-bottom:0;box-shadow:inset -1px 0 0 0 var(--dh-color-bg)}._lm_header_11jwh_1 ._lm_tab_11jwh_1._lm_active_11jwh_1._lm_focusin_11jwh_1,._lm_header_11jwh_1 ._lm_tab_11jwh_1._lm_active_11jwh_1:hover._lm_focusin_11jwh_1{box-shadow:inset 0 1px var(--dh-color-accent-bg),inset -1px 0 0 0 var(--dh-color-bg)}._lm_window_blur_11jwh_1 ._lm_header_11jwh_1 ._lm_tab_11jwh_1._lm_active_11jwh_1._lm_focusin_11jwh_1{box-shadow:none}._lm_controls_11jwh_1>li{opacity:.4;transition:opacity .3s ease;position:relative;background-position:center center;background-repeat:no-repeat}._lm_controls_11jwh_1>li:hover{opacity:1}._lm_controls_11jwh_1 ._lm_popout_11jwh_1{background-size:auto;background-color:var(--dh-color-fg);mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAPklEQVR4nI2Q0QoAIAwCNfr/X7aXCpGN8snBdgejJOzckpkxs9jR6K6T5JpU0nWl5pSXTk7qwh8SnNT+CAAWCgkKFpuSWsUAAAAASUVORK5CYII=);mask-position:center center;mask-repeat:no-repeat;mask-size:auto}._lm_controls_11jwh_1 ._lm_maximise_11jwh_1{background-size:16px;background-color:var(--dh-color-fg);mask-image:var(--dh-svg-icon-maximise);mask-position:center center;mask-repeat:no-repeat;mask-size:16px}._lm_controls_11jwh_1 ._lm_tabdropdown_11jwh_1{background-size:16px;background-color:var(--dh-color-fg);mask-image:var(--dh-svg-icon-tab-dropdown);mask-position:center center;mask-repeat:no-repeat;mask-size:16px}._lm_controls_11jwh_1 ._lm_close_11jwh_1{background-size:16px;background-color:var(--dh-color-fg);mask-image:var(--dh-svg-icon-close);mask-position:center center;mask-repeat:no-repeat;mask-size:16px}._lm_controls_11jwh_1 ._lm_tabnextbutton_11jwh_1{background-size:16px;background-color:var(--dh-color-fg);mask-image:var(--dh-svg-icon-next);mask-position:center center;mask-repeat:no-repeat;mask-size:16px}._lm_controls_11jwh_1 ._lm_tabpreviousbutton_11jwh_1{background-size:16px;background-color:var(--dh-color-fg);mask-image:var(--dh-svg-icon-prev);mask-position:center center;mask-repeat:no-repeat;mask-size:16px}._lm_tabdropdown_list_11jwh_1{z-index:1000;background:var(--dh-color-gray-75);box-shadow:0 .1rem 1rem hsla(var(--dh-color-true-black-hsl),.45);border-radius:4px;max-width:12rem;margin:0;padding:0;list-style-type:none}._lm_tabdropdown_list_11jwh_1 ._lm_tabdropdown_search_11jwh_1{padding:.25rem}._lm_tabdropdown_list_11jwh_1 ._lm_tabdropdown_search_11jwh_1 input{padding:.375rem .75rem;line-height:1.5;color:var(--dh-color-input-fg);background-color:var(--dh-color-input-bg);border:1px solid var(--dh-color-input-border);border-radius:4px;max-width:100%}._lm_tabdropdown_list_11jwh_1 ._lm_tabdropdown_search_11jwh_1 input::placeholder{color:var(--dh-color-input-placeholder);opacity:1}._lm_tabdropdown_list_11jwh_1 ._lm_tabdropdown_search_11jwh_1 input:focus{border-color:var(--dh-color-input-focus-border);box-shadow:0 0 0 .2rem hsla(var(--dh-color-accent-hsl),.35);outline:0}._lm_tabdropdown_list_11jwh_1 ._lm_tabs_11jwh_1{padding:0}._lm_tabdropdown_list_11jwh_1 ._lm_tab_11jwh_1{background:var(--dh-color-gray-75);color:var(--dh-color-gray-700);box-shadow:none}._lm_tabdropdown_list_11jwh_1 ._lm_tab_11jwh_1._lm_keyboard_active_11jwh_1{color:var(--dh-color-gray-700);background-color:var(--dh-color-accent-down-bg)}._lm_tabdropdown_list_11jwh_1 ._lm_tab_11jwh_1:hover{color:var(--dh-color-white, #f0f0ee);background-color:var(--dh-color-accent-bg)}._lm_maximised_11jwh_1{border:15px solid hsla(var(--dh-color-bg-hsl),.8);height:100%!important;width:100%!important}._lm_maximised_11jwh_1 ._lm_items_11jwh_1{box-shadow:0 .1rem 1rem hsla(var(--dh-color-true-black-hsl),.45)}._lm_maximised_11jwh_1 ._lm_controls_11jwh_1 ._lm_maximise_11jwh_1{background-size:16px;background-color:var(--dh-color-fg);mask-image:var(--dh-svg-icon-minimise);mask-position:center center;mask-repeat:no-repeat;mask-size:16px}._lm_tabs_11jwh_1:empty+._lm_controls_11jwh_1 ._lm_maximise_11jwh_1{display:none}.lm_root{position:relative}.lm_row>.lm_item{float:left}.lm_content{overflow:hidden;position:relative;outline:0}.lm_dragging,.lm_dragging *{cursor:grabbing!important;user-select:none}.lm_maximised{position:absolute;top:0;left:0;z-index:40}.lm_maximise_placeholder{display:none}.lm_splitter{position:relative;z-index:20}.lm_splitter:hover,.lm_splitter.lm_dragging{background:orange}.lm_splitter.lm_vertical .lm_drag_handle{width:100%;position:absolute;cursor:ns-resize}.lm_splitter.lm_horizontal{float:left;height:100%}.lm_splitter.lm_horizontal .lm_drag_handle{height:100%;position:absolute;cursor:ew-resize}.lm_header{display:flex;justify-content:space-between;max-width:100%;z-index:12;position:relative;overflow:hidden}.lm_header.lm_dropdown_open{z-index:22}.lm_header [class^=lm_]{box-sizing:content-box!important}.lm_header .lm_controls{display:flex;user-select:none}.lm_header .lm_controls>li{cursor:pointer;float:left;width:18px;height:18px;text-align:center}.lm_header .lm_controls>li[disabled]{cursor:default;opacity:.1}.lm_header ul{margin:0;padding:0;list-style-type:none}.lm_header .lm_tabs{display:flex;flex-grow:1;overflow:hidden}.lm_header .lm_tab{cursor:pointer;height:14px;margin-top:1px;padding:0 25px 5px 10px;position:relative;min-width:0;flex-shrink:0}.lm_header .lm_tab .lm_title{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.lm_header .lm_tab .lm_close_tab{width:14px;height:14px;position:absolute;top:0;right:0;text-align:center}.lm_stack.lm_left .lm_header,.lm_stack.lm_right .lm_header{height:100%}.lm_dragProxy.lm_left .lm_header,.lm_dragProxy.lm_right .lm_header,.lm_stack.lm_left .lm_header,.lm_stack.lm_right .lm_header{width:20px;float:left;vertical-align:top}.lm_dragProxy.lm_left .lm_header .lm_tabs,.lm_dragProxy.lm_right .lm_header .lm_tabs,.lm_stack.lm_left .lm_header .lm_tabs,.lm_stack.lm_right .lm_header .lm_tabs{transform-origin:left top;top:0;width:1000px}.lm_dragProxy.lm_left .lm_header .lm_controls,.lm_dragProxy.lm_right .lm_header .lm_controls,.lm_stack.lm_left .lm_header .lm_controls,.lm_stack.lm_right .lm_header .lm_controls{bottom:0}.lm_dragProxy.lm_left .lm_items,.lm_dragProxy.lm_right .lm_items,.lm_stack.lm_left .lm_items,.lm_stack.lm_right .lm_items{float:left}.lm_dragProxy.lm_left .lm_header .lm_tabs,.lm_stack.lm_left .lm_header .lm_tabs{transform:rotate(-90deg) scaleX(-1);left:0}.lm_dragProxy.lm_left .lm_header .lm_tabs .lm_tab,.lm_stack.lm_left .lm_header .lm_tabs .lm_tab{transform:scaleX(-1);margin-top:1px}.lm_dragProxy.lm_left .lm_header .lm_tabdropdown_list,.lm_stack.lm_left .lm_header .lm_tabdropdown_list{top:initial;right:initial;left:20px}.lm_dragProxy.lm_right .lm_content{float:left}.lm_dragProxy.lm_right .lm_header .lm_tabs,.lm_stack.lm_right .lm_header .lm_tabs{transform:rotate(90deg) scaleX(1);left:100%;margin-left:0}.lm_dragProxy.lm_right .lm_header .lm_controls,.lm_stack.lm_right .lm_header .lm_controls{left:3px}.lm_dragProxy.lm_right .lm_header .lm_tabdropdown_list,.lm_stack.lm_right .lm_header .lm_tabdropdown_list{top:initial;right:20px}.lm_dragProxy.lm_bottom .lm_header .lm_tab,.lm_stack.lm_bottom .lm_header .lm_tab{margin-top:0;border-top:none}.lm_dragProxy.lm_bottom .lm_header .lm_controls,.lm_stack.lm_bottom .lm_header .lm_controls{top:3px}.lm_dragProxy.lm_bottom .lm_header .lm_tabdropdown_list,.lm_stack.lm_bottom .lm_header .lm_tabdropdown_list{top:initial;bottom:20px}.lm_drop_tab_placeholder{flex-shrink:0}.lm_tabdropdown_list{position:absolute;overflow-y:auto;overflow-x:hidden;top:0;left:0;max-height:100%}.lm_tabdropdown_list .lm_tabs{flex-direction:column}.lm_tabdropdown_list .lm_tab{padding-right:10px}.lm_tabdropdown_list .lm_tab .lm_title{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.lm_tabdropdown_list .lm_close_tab{display:none!important}.lm_dragProxy{position:absolute;top:0;left:0;z-index:30;pointer-events:none}.lm_dragProxy .lm_header{background:transparent}.lm_dragProxy .lm_content{border-top:none;overflow:hidden}.lm_dropTargetIndicator{display:none;position:absolute;z-index:20;pointer-events:none}.lm_dropTargetIndicator .lm_inner{width:100%;height:100%;position:relative;top:0;left:0}.lm_popin{width:20px;height:20px;position:absolute;bottom:0;right:0;z-index:9999}.lm_popin>*{width:100%;height:100%;position:absolute;top:0;left:0}.lm_popin>.lm_bg{z-index:10}.lm_popin>.lm_icon{z-index:20}.lm_dragging{overflow:hidden;pointer-events:none}.lm_dragging .lm_goldenlayout .lm_header{pointer-events:auto}.lm_dragging .lm_goldenlayout .lm_header .lm_controls>li{pointer-events:none}.lm_dragging .lm_goldenlayout .lm_header .lm_controls>li.lm_tabpreviousbutton,.lm_dragging .lm_goldenlayout .lm_header .lm_controls>li.lm_tabnextbutton{pointer-events:auto}body:not(.lm_dragging) .lm_header .lm_tab:not(.lm_active):hover{color:var(--dh-color-gray-700)}body:not(.lm_dragging) .lm_header .lm_tab:hover .lm_close_tab{opacity:.4;transition:opacity .3s ease}body:not(.lm_dragging) .lm_header .lm_tab:hover .lm_close_tab:hover{opacity:1}.lm_goldenlayout{background:var(--dh-color-bg);position:absolute}.lm_content{background:var(--dh-color-content-bg, #2d2a2e);overflow:visible}.lm_dragProxy .lm_content{height:100%;width:100%;box-shadow:0 .1rem 1rem hsla(var(--dh-color-black-hsl),.45)}.lm_dragProxy .lm_header{height:28px;box-shadow:none}.lm_dragProxy .lm_header .lm_tab,.lm_dragProxy .lm_header .lm_tab.lm_active{border:0;box-shadow:0 .1rem 1rem hsla(var(--dh-color-black-hsl),.45)}.lm_dropTargetIndicator{background-image:linear-gradient(to right,var(--dh-color-black, #1a171a) 50%,var(--dh-color-white, #f0f0ee) 50%),linear-gradient(to right,var(--dh-color-black, #1a171a) 50%,var(--dh-color-white, #f0f0ee) 50%),linear-gradient(to bottom,var(--dh-color-black, #1a171a) 50%,var(--dh-color-white, #f0f0ee) 50%),linear-gradient(to bottom,var(--dh-color-black, #1a171a) 50%,var(--dh-color-white, #f0f0ee) 50%);background-size:8px 1px,8px 1px,1px 8px,1px 8px;background-position:0 top,0 bottom,left 0,right 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;animation:march .5s;animation-timing-function:linear;animation-iteration-count:infinite;box-sizing:border-box;transition:all .2s ease}.lm_dropTargetIndicator .lm_inner{box-sizing:border-box;border:1px solid transparent;box-shadow:inset 0 0 1rem 1px hsla(var(--dh-color-true-black-hsl),.45);opacity:1;background:hsla(var(--dh-color-accent-hsl),.1)}.lm_splitter{background:var(--dh-color-gray-600);opacity:.001;transition:opacity .15s ease}.lm_splitter:hover,.lm_splitter.lm_dragging{background:var(--dh-color-gray-700);opacity:1}.lm_header{box-sizing:content-box;height:28px;padding-top:0;background:var(--dh-color-gray-75);box-shadow:inset 0 -1px 0 0 var(--dh-color-bg);user-select:none}.lm_header .lm_controls>li{height:100%;width:24px}.lm_header.lm_selectable{cursor:pointer}.lm_header .lm_tab,.lm_tabdropdown_list .lm_tab{display:flex;align-items:center;font-family:Fira Sans,-apple-system,blinkmacsystemfont,Segoe UI,Roboto,Helvetica Neue,arial,sans-serif;background-color:var(--dh-color-gray-75);color:var(--dh-color-gray-600);height:28px;font-size:12px;min-width:5rem;margin:0;padding:0 .25rem 0 .5rem;box-shadow:inset -1px -1px 0 0 var(--dh-color-bg);transition:color .15s,background-color .15s;max-width:12rem;white-space:nowrap;overflow:hidden}.lm_header .lm_tab .lm_title,.lm_tabdropdown_list .lm_tab .lm_title{flex-grow:1;padding-right:.25rem}.lm_header .lm_tab .lm_title_before,.lm_tabdropdown_list .lm_tab .lm_title_before{display:flex;align-items:center}.lm_header .lm_tab .lm_close_tab,.lm_tabdropdown_list .lm_tab .lm_close_tab{background-size:8px;background-color:var(--dh-color-fg);mask-image:var(--dh-svg-icon-close-tab);mask-position:center center;mask-repeat:no-repeat;mask-size:8px;cursor:pointer;position:relative;width:8px;height:8px;padding:4px;margin-left:-.25rem;opacity:0;transition:opacity .3s ease}.lm_selected .lm_header{background-color:var(--dh-color-content-bg, #2d2a2e)}.lm_header .lm_tab.lm_active,.lm_header .lm_tab.lm_active:hover{height:28px;background-color:var(--dh-color-content-bg, #2d2a2e);color:var(--dh-color-white, #f0f0ee);padding-bottom:0;box-shadow:inset -1px 0 0 0 var(--dh-color-bg)}.lm_header .lm_tab.lm_active.lm_focusin,.lm_header .lm_tab.lm_active:hover.lm_focusin{box-shadow:inset 0 1px var(--dh-color-accent-bg),inset -1px 0 0 0 var(--dh-color-bg)}.lm_window_blur .lm_header .lm_tab.lm_active.lm_focusin{box-shadow:none}.lm_controls>li{opacity:.4;transition:opacity .3s ease;position:relative;background-position:center center;background-repeat:no-repeat}.lm_controls>li:hover{opacity:1}.lm_controls .lm_popout{background-size:auto;background-color:var(--dh-color-fg);mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAPklEQVR4nI2Q0QoAIAwCNfr/X7aXCpGN8snBdgejJOzckpkxs9jR6K6T5JpU0nWl5pSXTk7qwh8SnNT+CAAWCgkKFpuSWsUAAAAASUVORK5CYII=);mask-position:center center;mask-repeat:no-repeat;mask-size:auto}.lm_controls .lm_maximise{background-size:16px;background-color:var(--dh-color-fg);mask-image:var(--dh-svg-icon-maximise);mask-position:center center;mask-repeat:no-repeat;mask-size:16px}.lm_controls .lm_tabdropdown{background-size:16px;background-color:var(--dh-color-fg);mask-image:var(--dh-svg-icon-tab-dropdown);mask-position:center center;mask-repeat:no-repeat;mask-size:16px}.lm_controls .lm_close{background-size:16px;background-color:var(--dh-color-fg);mask-image:var(--dh-svg-icon-close);mask-position:center center;mask-repeat:no-repeat;mask-size:16px}.lm_controls .lm_tabnextbutton{background-size:16px;background-color:var(--dh-color-fg);mask-image:var(--dh-svg-icon-next);mask-position:center center;mask-repeat:no-repeat;mask-size:16px}.lm_controls .lm_tabpreviousbutton{background-size:16px;background-color:var(--dh-color-fg);mask-image:var(--dh-svg-icon-prev);mask-position:center center;mask-repeat:no-repeat;mask-size:16px}.lm_tabdropdown_list{z-index:1000;background:var(--dh-color-gray-75);box-shadow:0 .1rem 1rem hsla(var(--dh-color-true-black-hsl),.45);border-radius:4px;max-width:12rem;margin:0;padding:0;list-style-type:none}.lm_tabdropdown_list .lm_tabdropdown_search{padding:.25rem}.lm_tabdropdown_list .lm_tabdropdown_search input{padding:.375rem .75rem;line-height:1.5;color:var(--dh-color-input-fg);background-color:var(--dh-color-input-bg);border:1px solid var(--dh-color-input-border);border-radius:4px;max-width:100%}.lm_tabdropdown_list .lm_tabdropdown_search input::placeholder{color:var(--dh-color-input-placeholder);opacity:1}.lm_tabdropdown_list .lm_tabdropdown_search input:focus{border-color:var(--dh-color-input-focus-border);box-shadow:0 0 0 .2rem hsla(var(--dh-color-accent-hsl),.35);outline:0}.lm_tabdropdown_list .lm_tabs{padding:0}.lm_tabdropdown_list .lm_tab{background:var(--dh-color-gray-75);color:var(--dh-color-gray-700);box-shadow:none}.lm_tabdropdown_list .lm_tab.lm_keyboard_active{color:var(--dh-color-gray-700);background-color:var(--dh-color-accent-down-bg)}.lm_tabdropdown_list .lm_tab:hover{color:var(--dh-color-white, #f0f0ee);background-color:var(--dh-color-accent-bg)}.lm_maximised{border:15px solid hsla(var(--dh-color-bg-hsl),.8);height:100%!important;width:100%!important}.lm_maximised .lm_items{box-shadow:0 .1rem 1rem hsla(var(--dh-color-true-black-hsl),.45)}.lm_maximised .lm_controls .lm_maximise{background-size:16px;background-color:var(--dh-color-fg);mask-image:var(--dh-svg-icon-minimise);mask-position:center center;mask-repeat:no-repeat;mask-size:16px}.lm_tabs:empty+.lm_controls .lm_maximise{display:none}.lm_tab .editor-unsaved-indicator{display:none;margin-right:5px;width:8px;height:8px;border-radius:50%;background:var(--dh-color-accent-bg)}.lm_tab .editor-unsaved-indicator.is-unsaved{display:inline-block}.lm_dragging .js-plotly-plot .plotly svg,.lm_dragging .js-plotly-plot .plotly g,.lm_dragging .js-plotly-plot .plotly rect,.lm_dragging .js-plotly-plot .plotly path{pointer-events:none!important}.panel-placeholder{display:flex;flex-direction:column;justify-content:center;min-height:100%;max-height:100%;text-align:center;overflow:hidden}.panel-placeholder div{padding:1rem}.panel-error-boundary{height:100%;width:100%;position:relative}.dashboard-container{position:relative}
|