@deephaven/console 0.38.0 → 0.38.1-beta.11
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/Console.d.ts +1 -1
- package/dist/Console.d.ts.map +1 -1
- package/dist/Console.js.map +1 -1
- package/dist/ConsoleInput.d.ts +1 -1
- package/dist/ConsoleInput.d.ts.map +1 -1
- package/dist/ConsoleInput.js.map +1 -1
- package/dist/ConsoleMenu.d.ts +1 -1
- package/dist/ConsoleMenu.d.ts.map +1 -1
- package/dist/ConsoleMenu.js.map +1 -1
- package/dist/ConsoleStatusBar.d.ts +1 -1
- package/dist/ConsoleStatusBar.d.ts.map +1 -1
- package/dist/ConsoleStatusBar.js.map +1 -1
- package/dist/HeapUsage.d.ts +1 -1
- package/dist/HeapUsage.d.ts.map +1 -1
- package/dist/HeapUsage.js.map +1 -1
- package/dist/common/ConsoleUtils.d.ts +1 -1
- package/dist/common/ConsoleUtils.d.ts.map +1 -1
- package/dist/common/ConsoleUtils.js.map +1 -1
- package/dist/console-history/ConsoleHistory.d.ts +1 -1
- package/dist/console-history/ConsoleHistory.d.ts.map +1 -1
- package/dist/console-history/ConsoleHistory.js.map +1 -1
- package/dist/console-history/ConsoleHistoryItem.d.ts +1 -1
- package/dist/console-history/ConsoleHistoryItem.d.ts.map +1 -1
- package/dist/console-history/ConsoleHistoryItem.js.map +1 -1
- package/dist/console-history/ConsoleHistoryTypes.d.ts +1 -1
- package/dist/console-history/ConsoleHistoryTypes.d.ts.map +1 -1
- package/dist/console-history/ConsoleHistoryTypes.js.map +1 -1
- package/dist/csv/CsvParser.d.ts +1 -1
- package/dist/csv/CsvParser.d.ts.map +1 -1
- package/dist/csv/CsvParser.js.map +1 -1
- package/dist/log/LogView.d.ts +1 -1
- package/dist/log/LogView.d.ts.map +1 -1
- package/dist/log/LogView.js.map +1 -1
- package/dist/monaco/MonacoProviders.d.ts +1 -1
- package/dist/monaco/MonacoProviders.d.ts.map +1 -1
- package/dist/monaco/MonacoProviders.js.map +1 -1
- package/dist/monaco/MonacoUtils.d.ts +1 -1
- package/dist/monaco/MonacoUtils.d.ts.map +1 -1
- package/dist/monaco/MonacoUtils.js.map +1 -1
- package/dist/notebook/ScriptEditor.d.ts +1 -1
- package/dist/notebook/ScriptEditor.d.ts.map +1 -1
- package/dist/notebook/ScriptEditor.js.map +1 -1
- package/package.json +11 -11
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PureComponent, ReactElement, ReactNode } from 'react';
|
|
2
|
-
import { IdeSession, VariableDefinition } from '@deephaven/jsapi-
|
|
2
|
+
import type { IdeSession, VariableDefinition } from '@deephaven/jsapi-types';
|
|
3
3
|
import { DropdownAction } from '@deephaven/components';
|
|
4
4
|
import { Pending } from '@deephaven/utils';
|
|
5
5
|
import './ConsoleStatusBar.scss';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleStatusBar.d.ts","sourceRoot":"","sources":["../src/ConsoleStatusBar.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ConsoleStatusBar.d.ts","sourceRoot":"","sources":["../src/ConsoleStatusBar.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtE,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAW,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAwB,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,yBAAyB,CAAC;AAEjC,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC;IACpB,UAAU,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACjD,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,eAAe,EAAE,MAAM,cAAc,EAAE,CAAC;CACzC;AAED,UAAU,qBAAqB;IAC7B,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,gBAAiB,SAAQ,aAAa,CACjD,qBAAqB,EACrB,qBAAqB,CACtB;IACC,MAAM,CAAC,YAAY;;MAEjB;gBAEU,KAAK,EAAE,qBAAqB;IAcxC,iBAAiB,IAAI,IAAI;IAIzB,oBAAoB,IAAI,IAAI;IAK5B,OAAO,EAAE,OAAO,CAAC;IAEjB,cAAc,IAAI,IAAI;IAQtB,aAAa,IAAI,IAAI;IAQrB,qBAAqB,IAAI,IAAI;IAI7B,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAa9C,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAS5C,MAAM,IAAI,YAAY;CAmCvB;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleStatusBar.js","names":["React","PureComponent","classNames","dh","Tooltip","CanceledPromiseError","Pending","ConsoleMenu","ConsoleStatusBar","constructor","props","handleCommandStarted","bind","handleCommandCompleted","pending","state","isDisconnected","isCommandRunning","componentDidMount","startListening","componentWillUnmount","stopListening","cancelPendingPromises","session","addEventListener","IdeSession","EVENT_COMMANDSTARTED","removeEventListener","cancel","event","result","detail","add","then","catch","error","setState","length","render","children","openObject","overflowActions","objects","statusIconClass","tooltipText"],"sources":["../src/ConsoleStatusBar.tsx"],"sourcesContent":["import React, { PureComponent, ReactElement, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport dh
|
|
1
|
+
{"version":3,"file":"ConsoleStatusBar.js","names":["React","PureComponent","classNames","dh","Tooltip","CanceledPromiseError","Pending","ConsoleMenu","ConsoleStatusBar","constructor","props","handleCommandStarted","bind","handleCommandCompleted","pending","state","isDisconnected","isCommandRunning","componentDidMount","startListening","componentWillUnmount","stopListening","cancelPendingPromises","session","addEventListener","IdeSession","EVENT_COMMANDSTARTED","removeEventListener","cancel","event","result","detail","add","then","catch","error","setState","length","render","children","openObject","overflowActions","objects","statusIconClass","tooltipText"],"sources":["../src/ConsoleStatusBar.tsx"],"sourcesContent":["import React, { PureComponent, ReactElement, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport dh from '@deephaven/jsapi-shim';\nimport type { IdeSession, VariableDefinition } from '@deephaven/jsapi-types';\nimport { DropdownAction, Tooltip } from '@deephaven/components';\nimport { CanceledPromiseError, Pending } from '@deephaven/utils';\nimport ConsoleMenu from './ConsoleMenu';\nimport './ConsoleStatusBar.scss';\n\ninterface ConsoleStatusBarProps {\n children: ReactNode;\n session: IdeSession;\n openObject: (object: VariableDefinition) => void;\n objects: VariableDefinition[];\n overflowActions: () => DropdownAction[];\n}\n\ninterface ConsoleStatusBarState {\n isDisconnected: boolean;\n isCommandRunning: boolean;\n}\n\nexport class ConsoleStatusBar extends PureComponent<\n ConsoleStatusBarProps,\n ConsoleStatusBarState\n> {\n static defaultProps = {\n children: null,\n };\n\n constructor(props: ConsoleStatusBarProps) {\n super(props);\n\n this.handleCommandStarted = this.handleCommandStarted.bind(this);\n this.handleCommandCompleted = this.handleCommandCompleted.bind(this);\n\n this.pending = new Pending();\n\n this.state = {\n isDisconnected: false,\n isCommandRunning: false,\n };\n }\n\n componentDidMount(): void {\n this.startListening();\n }\n\n componentWillUnmount(): void {\n this.stopListening();\n this.cancelPendingPromises();\n }\n\n pending: Pending;\n\n startListening(): void {\n const { session } = this.props;\n session.addEventListener(\n dh.IdeSession.EVENT_COMMANDSTARTED,\n this.handleCommandStarted\n );\n }\n\n stopListening(): void {\n const { session } = this.props;\n session.removeEventListener(\n dh.IdeSession.EVENT_COMMANDSTARTED,\n this.handleCommandStarted\n );\n }\n\n cancelPendingPromises(): void {\n this.pending.cancel();\n }\n\n handleCommandStarted(event: CustomEvent): void {\n const { result } = event.detail;\n\n this.pending\n .add(result)\n .then(() => this.handleCommandCompleted(null))\n .catch(error => this.handleCommandCompleted(error));\n\n this.setState({\n isCommandRunning: true,\n });\n }\n\n handleCommandCompleted(error: unknown): void {\n // Don't update state if the promise was canceled\n if (!(error instanceof CanceledPromiseError)) {\n this.setState({\n isCommandRunning: this.pending.pending.length > 0,\n });\n }\n }\n\n render(): ReactElement {\n const { children, openObject, overflowActions, objects } = this.props;\n const { isDisconnected, isCommandRunning } = this.state;\n\n let statusIconClass = null;\n let tooltipText = null;\n\n if (isDisconnected) {\n statusIconClass = 'console-status-icon-disconnected';\n tooltipText = 'Worker is disconnected';\n } else if (isCommandRunning) {\n // Connected, Pending\n statusIconClass = 'console-status-icon-pending';\n tooltipText = 'Worker is busy';\n } else {\n // Connected, Idle\n statusIconClass = 'console-status-icon-idle';\n tooltipText = 'Worker is idle';\n }\n\n return (\n <div className=\"console-pane-status-bar\">\n <div>\n <div className={classNames('console-status-icon', statusIconClass)} />\n <Tooltip>{tooltipText}</Tooltip>\n </div>\n {children}\n <ConsoleMenu\n overflowActions={overflowActions}\n openObject={openObject}\n objects={objects}\n />\n </div>\n );\n }\n}\n\nexport default ConsoleStatusBar;\n"],"mappings":"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"}
|
package/dist/HeapUsage.d.ts
CHANGED
package/dist/HeapUsage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeapUsage.d.ts","sourceRoot":"","sources":["../src/HeapUsage.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAuB,YAAY,EAAU,MAAM,OAAO,CAAC;AAGzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"HeapUsage.d.ts","sourceRoot":"","sources":["../src/HeapUsage.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAuB,YAAY,EAAU,MAAM,OAAO,CAAC;AAGzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG/D,OAAO,kBAAkB,CAAC;AAI1B,UAAU,cAAc;IACtB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IAGvB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,iBAAS,SAAS,CAAC,EACjB,UAAU,EACV,qBAAqB,EACrB,mBAAmB,EACnB,YAAmB,EACnB,eAAe,GAChB,EAAE,cAAc,GAAG,YAAY,CAoL/B;AAED,eAAe,SAAS,CAAC"}
|
package/dist/HeapUsage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeapUsage.js","names":["React","useEffect","useState","useRef","classNames","Tooltip","Plot","ChartTheme","Log","log","module","HeapUsage","connection","defaultUpdateInterval","hoverUpdateInterval","bgMonitoring","monitorDuration","memoryUsage","setMemoryUsage","freeMemory","maximumHeapSize","totalHeapSize","isOpen","setIsOpen","historyUsage","timestamps","usages","setUsageUpdateInterval","fetchAndUpdate","newUsage","getWorkerHeapInfo","currentUsage","currentTime","Date","now","current","length","shift","push","e","warn","updateUsage","setInterval","clearInterval","toDecimalPlace","num","dec","Math","round","decimalPlace","GbToByte","freeMemoryGB","totalHeapGB","maxHeapGB","inUseGB","getRow","text","size","bottomBorder","lastTimestamp","totalPercentage","usedPercentage","width","toFixed","x","y","type","mode","staticPlot","responsive","height","legend","margin","l","t","r","b","plot_bgcolor","paper_bgcolor","colorway","xaxis","dtick","gridcolor","linecolor","range","linewidth","mirror","yaxis"],"sources":["../src/HeapUsage.tsx"],"sourcesContent":["import React, { useEffect, useState, ReactElement, useRef } from 'react';\nimport classNames from 'classnames';\nimport { Tooltip } from '@deephaven/components';\nimport { QueryConnectable } from '@deephaven/jsapi-shim';\nimport { Plot, ChartTheme } from '@deephaven/chart';\nimport Log from '@deephaven/log';\nimport './HeapUsage.scss';\n\nconst log = Log.module('HeapUsage');\n\ninterface HeapUsageProps {\n connection: QueryConnectable;\n defaultUpdateInterval: number;\n hoverUpdateInterval: number;\n bgMonitoring?: boolean;\n\n // in millis\n monitorDuration: number;\n}\n\nfunction HeapUsage({\n connection,\n defaultUpdateInterval,\n hoverUpdateInterval,\n bgMonitoring = true,\n monitorDuration,\n}: HeapUsageProps): ReactElement {\n const [memoryUsage, setMemoryUsage] = useState({\n freeMemory: 0,\n maximumHeapSize: 999,\n totalHeapSize: 0,\n });\n\n const [isOpen, setIsOpen] = useState(false);\n\n const historyUsage = useRef<{ timestamps: number[]; usages: number[] }>({\n timestamps: [],\n usages: [],\n });\n\n useEffect(\n function setUsageUpdateInterval() {\n const fetchAndUpdate = async () => {\n try {\n const newUsage = await connection.getWorkerHeapInfo();\n setMemoryUsage(newUsage);\n\n if (bgMonitoring || isOpen) {\n const currentUsage =\n (newUsage.totalHeapSize - newUsage.freeMemory) /\n newUsage.maximumHeapSize;\n const currentTime = Date.now();\n\n const { timestamps, usages } = historyUsage.current;\n while (\n timestamps.length !== 0 &&\n currentTime - timestamps[0] > monitorDuration * 1.5\n ) {\n timestamps.shift();\n usages.shift();\n }\n\n timestamps.push(currentTime);\n usages.push(currentUsage);\n } else {\n historyUsage.current = { timestamps: [], usages: [] };\n }\n } catch (e) {\n log.warn('Unable to get heap usage', e);\n }\n };\n fetchAndUpdate();\n\n const updateUsage = setInterval(\n fetchAndUpdate,\n isOpen ? hoverUpdateInterval : defaultUpdateInterval\n );\n return () => {\n clearInterval(updateUsage);\n };\n },\n [\n isOpen,\n hoverUpdateInterval,\n connection,\n defaultUpdateInterval,\n monitorDuration,\n bgMonitoring,\n ]\n );\n\n const toDecimalPlace = (num: number, dec: number) =>\n Math.round(num * 10 ** dec) / 10 ** dec;\n\n const decimalPlace = 2;\n const GbToByte = 1024 ** 3;\n\n const { freeMemory, totalHeapSize, maximumHeapSize } = memoryUsage;\n\n const freeMemoryGB = toDecimalPlace(freeMemory / GbToByte, decimalPlace);\n const totalHeapGB = toDecimalPlace(totalHeapSize / GbToByte, decimalPlace);\n const maxHeapGB = toDecimalPlace(maximumHeapSize / GbToByte, decimalPlace);\n const inUseGB = totalHeapGB - freeMemoryGB;\n\n const getRow = (text: string, size: string, bottomBorder = false) => (\n <div\n className={classNames(`heap-usage-info-row`, {\n 'heading-bottom-border': bottomBorder,\n })}\n >\n <div className=\"font-weight-bold\">{text}</div>\n <div>{size}</div>\n </div>\n );\n\n const { timestamps, usages } = historyUsage.current;\n\n const lastTimestamp = timestamps[timestamps.length - 1] ?? 0;\n\n const totalPercentage = totalHeapSize / maximumHeapSize;\n const usedPercentage = (totalHeapSize - freeMemory) / maximumHeapSize;\n\n return (\n <>\n <div className=\"max-memory\">\n <div\n className=\"total-memory\"\n style={{\n width: `calc(${totalPercentage * 100}% - ${totalPercentage * 2}px`,\n }}\n />\n <div\n className={classNames('used-memory', {\n 'heap-overflow':\n (totalHeapSize - freeMemory) / maximumHeapSize > 0.95,\n })}\n style={{\n width: `calc(${usedPercentage * 100}% - ${usedPercentage * 2}px`,\n }}\n />\n <div className=\"memory-text\">{maxHeapGB.toFixed(1)} GB</div>\n </div>\n\n <Tooltip\n onEntered={() => setIsOpen(true)}\n onExited={() => setIsOpen(false)}\n interactive\n >\n <div className=\"heap-tooltip\">\n {getRow(\n 'In use:',\n `${inUseGB.toFixed(decimalPlace)} of ${maxHeapGB.toFixed(\n decimalPlace\n )} GB`,\n true\n )}\n {getRow('Free:', `${freeMemoryGB.toFixed(decimalPlace)} GB`)}\n {getRow('Total:', `${totalHeapGB.toFixed(decimalPlace)} GB`)}\n {getRow('Max:', `${maxHeapGB.toFixed(decimalPlace)} GB`)}\n <div className=\"heap-plot\">\n <Plot\n data={[\n {\n x: [...timestamps],\n y: [...usages],\n type: 'scatter',\n mode: 'lines',\n },\n ]}\n config={{ staticPlot: true, responsive: true }}\n style={{\n width: '196px',\n height: '100px',\n }}\n layout={{\n legend: false,\n margin: { l: 2, t: 2, r: 2, b: 2 },\n plot_bgcolor: 'transparent',\n paper_bgcolor: 'transparent',\n colorway: ['#4878ea'],\n xaxis: {\n dtick: Math.round(monitorDuration / 6),\n gridcolor: ChartTheme.linecolor,\n range: [lastTimestamp - monitorDuration, lastTimestamp],\n linecolor: ChartTheme.linecolor,\n linewidth: 2,\n mirror: true,\n },\n yaxis: {\n dtick: 0.2,\n gridcolor: ChartTheme.linecolor,\n range: [0, 1],\n linecolor: ChartTheme.linecolor,\n linewidth: 2,\n mirror: true,\n },\n }}\n />\n </div>\n <div className=\"heap-utilisation-text\">\n % utilization over {Math.round(monitorDuration / 1000 / 60)} min.\n </div>\n </div>\n </Tooltip>\n </>\n );\n}\n\nexport default HeapUsage;\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,QAAQ,EAAgBC,MAAM,QAAQ,OAAO;AACxE,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,OAAO,QAAQ,uBAAuB;AAE/C,SAASC,IAAI,EAAEC,UAAU,QAAQ,kBAAkB;AACnD,OAAOC,GAAG,MAAM,gBAAgB;AAAC;AAGjC,IAAMC,GAAG,GAAGD,GAAG,CAACE,MAAM,CAAC,WAAW,CAAC;AAYnC,SAASC,SAAS,OAMe;EAAA;EAAA,IANd;IACjBC,UAAU;IACVC,qBAAqB;IACrBC,mBAAmB;IACnBC,YAAY,GAAG,IAAI;IACnBC;EACc,CAAC;EACf,IAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGhB,QAAQ,CAAC;IAC7CiB,UAAU,EAAE,CAAC;IACbC,eAAe,EAAE,GAAG;IACpBC,aAAa,EAAE;EACjB,CAAC,CAAC;EAEF,IAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGrB,QAAQ,CAAC,KAAK,CAAC;EAE3C,IAAMsB,YAAY,GAAGrB,MAAM,CAA6C;IACtEsB,UAAU,EAAE,EAAE;IACdC,MAAM,EAAE;EACV,CAAC,CAAC;EAEFzB,SAAS,CACP,SAAS0B,sBAAsB,GAAG;IAChC,IAAMC,cAAc;MAAA,8BAAG,aAAY;QACjC,IAAI;UACF,IAAMC,QAAQ,SAASjB,UAAU,CAACkB,iBAAiB,EAAE;UACrDZ,cAAc,CAACW,QAAQ,CAAC;UAExB,IAAId,YAAY,IAAIO,MAAM,EAAE;YAC1B,IAAMS,YAAY,GAChB,CAACF,QAAQ,CAACR,aAAa,GAAGQ,QAAQ,CAACV,UAAU,IAC7CU,QAAQ,CAACT,eAAe;YAC1B,IAAMY,WAAW,GAAGC,IAAI,CAACC,GAAG,EAAE;YAE9B,IAAM;cAAET,UAAU,EAAVA,WAAU;cAAEC,MAAM,EAANA;YAAO,CAAC,GAAGF,YAAY,CAACW,OAAO;YACnD,OACEV,WAAU,CAACW,MAAM,KAAK,CAAC,IACvBJ,WAAW,GAAGP,WAAU,CAAC,CAAC,CAAC,GAAGT,eAAe,GAAG,GAAG,EACnD;cACAS,WAAU,CAACY,KAAK,EAAE;cAClBX,OAAM,CAACW,KAAK,EAAE;YAChB;YAEAZ,WAAU,CAACa,IAAI,CAACN,WAAW,CAAC;YAC5BN,OAAM,CAACY,IAAI,CAACP,YAAY,CAAC;UAC3B,CAAC,MAAM;YACLP,YAAY,CAACW,OAAO,GAAG;cAAEV,UAAU,EAAE,EAAE;cAAEC,MAAM,EAAE;YAAG,CAAC;UACvD;QACF,CAAC,CAAC,OAAOa,CAAC,EAAE;UACV9B,GAAG,CAAC+B,IAAI,CAAC,0BAA0B,EAAED,CAAC,CAAC;QACzC;MACF,CAAC;MAAA,gBA5BKX,cAAc;QAAA;MAAA;IAAA,GA4BnB;IACDA,cAAc,EAAE;IAEhB,IAAMa,WAAW,GAAGC,WAAW,CAC7Bd,cAAc,EACdN,MAAM,GAAGR,mBAAmB,GAAGD,qBAAqB,CACrD;IACD,OAAO,MAAM;MACX8B,aAAa,CAACF,WAAW,CAAC;IAC5B,CAAC;EACH,CAAC,EACD,CACEnB,MAAM,EACNR,mBAAmB,EACnBF,UAAU,EACVC,qBAAqB,EACrBG,eAAe,EACfD,YAAY,CACb,CACF;EAED,IAAM6B,cAAc,GAAG,CAACC,GAAW,EAAEC,GAAW,KAC9CC,IAAI,CAACC,KAAK,CAACH,GAAG,GAAG,EAAE,IAAIC,GAAG,CAAC,GAAG,EAAE,IAAIA,GAAG;EAEzC,IAAMG,YAAY,GAAG,CAAC;EACtB,IAAMC,QAAQ,GAAG,IAAI,IAAI,CAAC;EAE1B,IAAM;IAAE/B,UAAU;IAAEE,aAAa;IAAED;EAAgB,CAAC,GAAGH,WAAW;EAElE,IAAMkC,YAAY,GAAGP,cAAc,CAACzB,UAAU,GAAG+B,QAAQ,EAAED,YAAY,CAAC;EACxE,IAAMG,WAAW,GAAGR,cAAc,CAACvB,aAAa,GAAG6B,QAAQ,EAAED,YAAY,CAAC;EAC1E,IAAMI,SAAS,GAAGT,cAAc,CAACxB,eAAe,GAAG8B,QAAQ,EAAED,YAAY,CAAC;EAC1E,IAAMK,OAAO,GAAGF,WAAW,GAAGD,YAAY;EAE1C,IAAMI,MAAM,GAAG,SAATA,MAAM,CAAIC,IAAY,EAAEC,IAAY;IAAA,IAAEC,YAAY,uEAAG,KAAK;IAAA,oBAC9D;MACE,SAAS,EAAEtD,UAAU,wBAAwB;QAC3C,uBAAuB,EAAEsD;MAC3B,CAAC;IAAE,gBAEH;MAAK,SAAS,EAAC;IAAkB,GAAEF,IAAI,CAAO,eAC9C,iCAAMC,IAAI,CAAO,CACb;EAAA,CACP;EAED,IAAM;IAAEhC,UAAU;IAAEC;EAAO,CAAC,GAAGF,YAAY,CAACW,OAAO;EAEnD,IAAMwB,aAAa,mBAAGlC,UAAU,CAACA,UAAU,CAACW,MAAM,GAAG,CAAC,CAAC,uDAAI,CAAC;EAE5D,IAAMwB,eAAe,GAAGvC,aAAa,GAAGD,eAAe;EACvD,IAAMyC,cAAc,GAAG,CAACxC,aAAa,GAAGF,UAAU,IAAIC,eAAe;EAErE,oBACE,uDACE;IAAK,SAAS,EAAC;EAAY,gBACzB;IACE,SAAS,EAAC,cAAc;IACxB,KAAK,EAAE;MACL0C,KAAK,iBAAUF,eAAe,GAAG,GAAG,iBAAOA,eAAe,GAAG,CAAC;IAChE;EAAE,EACF,eACF;IACE,SAAS,EAAExD,UAAU,CAAC,aAAa,EAAE;MACnC,eAAe,EACb,CAACiB,aAAa,GAAGF,UAAU,IAAIC,eAAe,GAAG;IACrD,CAAC,CAAE;IACH,KAAK,EAAE;MACL0C,KAAK,iBAAUD,cAAc,GAAG,GAAG,iBAAOA,cAAc,GAAG,CAAC;IAC9D;EAAE,EACF,eACF;IAAK,SAAS,EAAC;EAAa,GAAER,SAAS,CAACU,OAAO,CAAC,CAAC,CAAC,EAAC,KAAG,CAAM,CACxD,eAEN,oBAAC,OAAO;IACN,SAAS,EAAE,MAAMxC,SAAS,CAAC,IAAI,CAAE;IACjC,QAAQ,EAAE,MAAMA,SAAS,CAAC,KAAK,CAAE;IACjC,WAAW;EAAA,gBAEX;IAAK,SAAS,EAAC;EAAc,GAC1BgC,MAAM,CACL,SAAS,YACND,OAAO,CAACS,OAAO,CAACd,YAAY,CAAC,iBAAOI,SAAS,CAACU,OAAO,CACtDd,YAAY,CACb,UACD,IAAI,CACL,EACAM,MAAM,CAAC,OAAO,YAAKJ,YAAY,CAACY,OAAO,CAACd,YAAY,CAAC,SAAM,EAC3DM,MAAM,CAAC,QAAQ,YAAKH,WAAW,CAACW,OAAO,CAACd,YAAY,CAAC,SAAM,EAC3DM,MAAM,CAAC,MAAM,YAAKF,SAAS,CAACU,OAAO,CAACd,YAAY,CAAC,SAAM,eACxD;IAAK,SAAS,EAAC;EAAW,gBACxB,oBAAC,IAAI;IACH,IAAI,EAAE,CACJ;MACEe,CAAC,EAAE,CAAC,GAAGvC,UAAU,CAAC;MAClBwC,CAAC,EAAE,CAAC,GAAGvC,MAAM,CAAC;MACdwC,IAAI,EAAE,SAAS;MACfC,IAAI,EAAE;IACR,CAAC,CACD;IACF,MAAM,EAAE;MAAEC,UAAU,EAAE,IAAI;MAAEC,UAAU,EAAE;IAAK,CAAE;IAC/C,KAAK,EAAE;MACLP,KAAK,EAAE,OAAO;MACdQ,MAAM,EAAE;IACV,CAAE;IACF,MAAM,EAAE;MACNC,MAAM,EAAE,KAAK;MACbC,MAAM,EAAE;QAAEC,CAAC,EAAE,CAAC;QAAEC,CAAC,EAAE,CAAC;QAAEC,CAAC,EAAE,CAAC;QAAEC,CAAC,EAAE;MAAE,CAAC;MAClCC,YAAY,EAAE,aAAa;MAC3BC,aAAa,EAAE,aAAa;MAC5BC,QAAQ,EAAE,CAAC,SAAS,CAAC;MACrBC,KAAK,EAAE;QACLC,KAAK,EAAElC,IAAI,CAACC,KAAK,CAAChC,eAAe,GAAG,CAAC,CAAC;QACtCkE,SAAS,EAAE3E,UAAU,CAAC4E,SAAS;QAC/BC,KAAK,EAAE,CAACzB,aAAa,GAAG3C,eAAe,EAAE2C,aAAa,CAAC;QACvDwB,SAAS,EAAE5E,UAAU,CAAC4E,SAAS;QAC/BE,SAAS,EAAE,CAAC;QACZC,MAAM,EAAE;MACV,CAAC;MACDC,KAAK,EAAE;QACLN,KAAK,EAAE,GAAG;QACVC,SAAS,EAAE3E,UAAU,CAAC4E,SAAS;QAC/BC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACbD,SAAS,EAAE5E,UAAU,CAAC4E,SAAS;QAC/BE,SAAS,EAAE,CAAC;QACZC,MAAM,EAAE;MACV;IACF;EAAE,EACF,CACE,eACN;IAAK,SAAS,EAAC;EAAuB,GAAC,qBAClB,EAACvC,IAAI,CAACC,KAAK,CAAChC,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC,EAAC,OAC9D,CAAM,CACF,CACE,CACT;AAEP;AAEA,eAAeL,SAAS"}
|
|
1
|
+
{"version":3,"file":"HeapUsage.js","names":["React","useEffect","useState","useRef","classNames","Tooltip","Plot","ChartTheme","Log","log","module","HeapUsage","connection","defaultUpdateInterval","hoverUpdateInterval","bgMonitoring","monitorDuration","memoryUsage","setMemoryUsage","freeMemory","maximumHeapSize","totalHeapSize","isOpen","setIsOpen","historyUsage","timestamps","usages","setUsageUpdateInterval","fetchAndUpdate","newUsage","getWorkerHeapInfo","currentUsage","currentTime","Date","now","current","length","shift","push","e","warn","updateUsage","setInterval","clearInterval","toDecimalPlace","num","dec","Math","round","decimalPlace","GbToByte","freeMemoryGB","totalHeapGB","maxHeapGB","inUseGB","getRow","text","size","bottomBorder","lastTimestamp","totalPercentage","usedPercentage","width","toFixed","x","y","type","mode","staticPlot","responsive","height","legend","margin","l","t","r","b","plot_bgcolor","paper_bgcolor","colorway","xaxis","dtick","gridcolor","linecolor","range","linewidth","mirror","yaxis"],"sources":["../src/HeapUsage.tsx"],"sourcesContent":["import React, { useEffect, useState, ReactElement, useRef } from 'react';\nimport classNames from 'classnames';\nimport { Tooltip } from '@deephaven/components';\nimport type { QueryConnectable } from '@deephaven/jsapi-types';\nimport { Plot, ChartTheme } from '@deephaven/chart';\nimport Log from '@deephaven/log';\nimport './HeapUsage.scss';\n\nconst log = Log.module('HeapUsage');\n\ninterface HeapUsageProps {\n connection: QueryConnectable;\n defaultUpdateInterval: number;\n hoverUpdateInterval: number;\n bgMonitoring?: boolean;\n\n // in millis\n monitorDuration: number;\n}\n\nfunction HeapUsage({\n connection,\n defaultUpdateInterval,\n hoverUpdateInterval,\n bgMonitoring = true,\n monitorDuration,\n}: HeapUsageProps): ReactElement {\n const [memoryUsage, setMemoryUsage] = useState({\n freeMemory: 0,\n maximumHeapSize: 999,\n totalHeapSize: 0,\n });\n\n const [isOpen, setIsOpen] = useState(false);\n\n const historyUsage = useRef<{ timestamps: number[]; usages: number[] }>({\n timestamps: [],\n usages: [],\n });\n\n useEffect(\n function setUsageUpdateInterval() {\n const fetchAndUpdate = async () => {\n try {\n const newUsage = await connection.getWorkerHeapInfo();\n setMemoryUsage(newUsage);\n\n if (bgMonitoring || isOpen) {\n const currentUsage =\n (newUsage.totalHeapSize - newUsage.freeMemory) /\n newUsage.maximumHeapSize;\n const currentTime = Date.now();\n\n const { timestamps, usages } = historyUsage.current;\n while (\n timestamps.length !== 0 &&\n currentTime - timestamps[0] > monitorDuration * 1.5\n ) {\n timestamps.shift();\n usages.shift();\n }\n\n timestamps.push(currentTime);\n usages.push(currentUsage);\n } else {\n historyUsage.current = { timestamps: [], usages: [] };\n }\n } catch (e) {\n log.warn('Unable to get heap usage', e);\n }\n };\n fetchAndUpdate();\n\n const updateUsage = setInterval(\n fetchAndUpdate,\n isOpen ? hoverUpdateInterval : defaultUpdateInterval\n );\n return () => {\n clearInterval(updateUsage);\n };\n },\n [\n isOpen,\n hoverUpdateInterval,\n connection,\n defaultUpdateInterval,\n monitorDuration,\n bgMonitoring,\n ]\n );\n\n const toDecimalPlace = (num: number, dec: number) =>\n Math.round(num * 10 ** dec) / 10 ** dec;\n\n const decimalPlace = 2;\n const GbToByte = 1024 ** 3;\n\n const { freeMemory, totalHeapSize, maximumHeapSize } = memoryUsage;\n\n const freeMemoryGB = toDecimalPlace(freeMemory / GbToByte, decimalPlace);\n const totalHeapGB = toDecimalPlace(totalHeapSize / GbToByte, decimalPlace);\n const maxHeapGB = toDecimalPlace(maximumHeapSize / GbToByte, decimalPlace);\n const inUseGB = totalHeapGB - freeMemoryGB;\n\n const getRow = (text: string, size: string, bottomBorder = false) => (\n <div\n className={classNames(`heap-usage-info-row`, {\n 'heading-bottom-border': bottomBorder,\n })}\n >\n <div className=\"font-weight-bold\">{text}</div>\n <div>{size}</div>\n </div>\n );\n\n const { timestamps, usages } = historyUsage.current;\n\n const lastTimestamp = timestamps[timestamps.length - 1] ?? 0;\n\n const totalPercentage = totalHeapSize / maximumHeapSize;\n const usedPercentage = (totalHeapSize - freeMemory) / maximumHeapSize;\n\n return (\n <>\n <div className=\"max-memory\">\n <div\n className=\"total-memory\"\n style={{\n width: `calc(${totalPercentage * 100}% - ${totalPercentage * 2}px`,\n }}\n />\n <div\n className={classNames('used-memory', {\n 'heap-overflow':\n (totalHeapSize - freeMemory) / maximumHeapSize > 0.95,\n })}\n style={{\n width: `calc(${usedPercentage * 100}% - ${usedPercentage * 2}px`,\n }}\n />\n <div className=\"memory-text\">{maxHeapGB.toFixed(1)} GB</div>\n </div>\n\n <Tooltip\n onEntered={() => setIsOpen(true)}\n onExited={() => setIsOpen(false)}\n interactive\n >\n <div className=\"heap-tooltip\">\n {getRow(\n 'In use:',\n `${inUseGB.toFixed(decimalPlace)} of ${maxHeapGB.toFixed(\n decimalPlace\n )} GB`,\n true\n )}\n {getRow('Free:', `${freeMemoryGB.toFixed(decimalPlace)} GB`)}\n {getRow('Total:', `${totalHeapGB.toFixed(decimalPlace)} GB`)}\n {getRow('Max:', `${maxHeapGB.toFixed(decimalPlace)} GB`)}\n <div className=\"heap-plot\">\n <Plot\n data={[\n {\n x: [...timestamps],\n y: [...usages],\n type: 'scatter',\n mode: 'lines',\n },\n ]}\n config={{ staticPlot: true, responsive: true }}\n style={{\n width: '196px',\n height: '100px',\n }}\n layout={{\n legend: false,\n margin: { l: 2, t: 2, r: 2, b: 2 },\n plot_bgcolor: 'transparent',\n paper_bgcolor: 'transparent',\n colorway: ['#4878ea'],\n xaxis: {\n dtick: Math.round(monitorDuration / 6),\n gridcolor: ChartTheme.linecolor,\n range: [lastTimestamp - monitorDuration, lastTimestamp],\n linecolor: ChartTheme.linecolor,\n linewidth: 2,\n mirror: true,\n },\n yaxis: {\n dtick: 0.2,\n gridcolor: ChartTheme.linecolor,\n range: [0, 1],\n linecolor: ChartTheme.linecolor,\n linewidth: 2,\n mirror: true,\n },\n }}\n />\n </div>\n <div className=\"heap-utilisation-text\">\n % utilization over {Math.round(monitorDuration / 1000 / 60)} min.\n </div>\n </div>\n </Tooltip>\n </>\n );\n}\n\nexport default HeapUsage;\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ParseEntry, ControlOperator } from 'shell-quote';
|
|
2
|
-
import { VariableTypeUnion } from '@deephaven/jsapi-
|
|
2
|
+
import type { VariableTypeUnion } from '@deephaven/jsapi-types';
|
|
3
3
|
declare class ConsoleUtils {
|
|
4
4
|
static hasComment(arg: ParseEntry): arg is {
|
|
5
5
|
comment: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleUtils.d.ts","sourceRoot":"","sources":["../../src/common/ConsoleUtils.ts"],"names":[],"mappings":"AAAA,OAAmB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ConsoleUtils.d.ts","sourceRoot":"","sources":["../../src/common/ConsoleUtils.ts"],"names":[],"mappings":"AAAA,OAAmB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,cAAM,YAAY;IAChB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,GAAG,IAAI;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;IAI9D,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,GAAG,IAAI;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAI1E,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,GAAG,GAAG,IAAI;QAAE,EAAE,EAAE,eAAe,CAAA;KAAE;IAI7D;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE;IAoB7C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI;IAajD,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO;IAQpD,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO;IAQrD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO;IAIvD,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO;IAIrD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO;CAGlD;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleUtils.js","names":["ShellQuote","dh","ConsoleUtils","hasComment","arg","comment","undefined","hasPattern","pattern","hasOp","op","parseArguments","str","String","parse","filter","map","formatTimestamp","date","Date","hours","getHours","padStart","minutes","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds","isTableType","type","VariableType","TABLE","TREETABLE","HIERARCHICALTABLE","isWidgetType","FIGURE","OTHERWIDGET","PANDAS","isOpenableType","isFigureType","isPandas"],"sources":["../../src/common/ConsoleUtils.ts"],"sourcesContent":["import ShellQuote, { ParseEntry, ControlOperator } from 'shell-quote';\nimport dh
|
|
1
|
+
{"version":3,"file":"ConsoleUtils.js","names":["ShellQuote","dh","ConsoleUtils","hasComment","arg","comment","undefined","hasPattern","pattern","hasOp","op","parseArguments","str","String","parse","filter","map","formatTimestamp","date","Date","hours","getHours","padStart","minutes","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds","isTableType","type","VariableType","TABLE","TREETABLE","HIERARCHICALTABLE","isWidgetType","FIGURE","OTHERWIDGET","PANDAS","isOpenableType","isFigureType","isPandas"],"sources":["../../src/common/ConsoleUtils.ts"],"sourcesContent":["import ShellQuote, { ParseEntry, ControlOperator } from 'shell-quote';\nimport dh from '@deephaven/jsapi-shim';\nimport type { VariableTypeUnion } from '@deephaven/jsapi-types';\n\nclass ConsoleUtils {\n static hasComment(arg: ParseEntry): arg is { comment: string } {\n return (arg as { comment: string }).comment !== undefined;\n }\n\n static hasPattern(arg: ParseEntry): arg is { op: 'glob'; pattern: string } {\n return (arg as { pattern: string }).pattern !== undefined;\n }\n\n static hasOp(arg: ParseEntry): arg is { op: ControlOperator } {\n return (arg as { op: ControlOperator }).op !== undefined;\n }\n\n /**\n * Given the provided text, parse out arguments using shell quoting rules.\n * @param str The text to parse.\n * @returns string[] of the arguments. Empty if no arguments found.\n */\n static parseArguments(str: unknown): string[] {\n if (str == null || !(typeof str === 'string' || str instanceof String)) {\n return [];\n }\n\n // Parse can return an object, not just a string. See the `ParseEntry` type def for all types\n // We must map them all to strings. Filter out comments that will not be needed as well.\n return ShellQuote.parse(str as string)\n .filter(arg => !this.hasComment(arg))\n .map(arg => {\n if (this.hasPattern(arg)) {\n return arg.pattern;\n }\n if (this.hasOp(arg)) {\n return arg.op;\n }\n return `${arg}`;\n });\n }\n\n static formatTimestamp(date: Date): string | null {\n if (date == null || !(date instanceof Date)) {\n return null;\n }\n\n const hours = `${date.getHours()}`.padStart(2, '0');\n const minutes = `${date.getMinutes()}`.padStart(2, '0');\n const seconds = `${date.getSeconds()}`.padStart(2, '0');\n const milliseconds = `${date.getMilliseconds()}`.padStart(3, '0');\n\n return `${hours}:${minutes}:${seconds}.${milliseconds}`;\n }\n\n static isTableType(type: VariableTypeUnion): boolean {\n return (\n type === dh.VariableType.TABLE ||\n type === dh.VariableType.TREETABLE ||\n type === dh.VariableType.HIERARCHICALTABLE\n );\n }\n\n static isWidgetType(type: VariableTypeUnion): boolean {\n return (\n type === dh.VariableType.FIGURE ||\n type === dh.VariableType.OTHERWIDGET ||\n type === dh.VariableType.PANDAS\n );\n }\n\n static isOpenableType(type: VariableTypeUnion): boolean {\n return ConsoleUtils.isTableType(type) || ConsoleUtils.isWidgetType(type);\n }\n\n static isFigureType(type: VariableTypeUnion): boolean {\n return type === dh.VariableType.FIGURE;\n }\n\n static isPandas(type: VariableTypeUnion): boolean {\n return type === dh.VariableType.PANDAS;\n }\n}\n\nexport default ConsoleUtils;\n"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Console display for use in the Iris environment.
|
|
3
3
|
*/
|
|
4
4
|
import { Component, ReactElement } from 'react';
|
|
5
|
-
import { VariableDefinition } from '@deephaven/jsapi-
|
|
5
|
+
import type { VariableDefinition } from '@deephaven/jsapi-types';
|
|
6
6
|
import './ConsoleHistory.scss';
|
|
7
7
|
import { ConsoleHistoryActionItem } from './ConsoleHistoryTypes';
|
|
8
8
|
interface ConsoleHistoryProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleHistory.d.ts","sourceRoot":"","sources":["../../src/console-history/ConsoleHistory.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ConsoleHistory.d.ts","sourceRoot":"","sources":["../../src/console-history/ConsoleHistory.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGjE,OAAO,uBAAuB,CAAC;AAC/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,UAAU,mBAAmB;IAC3B,KAAK,EAAE,wBAAwB,EAAE,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,cAAM,cAAe,SAAQ,SAAS,CACpC,mBAAmB,EACnB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CACtB;IACC,MAAM,CAAC,YAAY;;MAEjB;IAEF,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,GAAG,MAAM;IAMjE,MAAM,IAAI,YAAY;CAqBvB;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleHistory.js","names":["React","Component","ConsoleHistoryItem","ConsoleHistory","itemKey","i","item","command","result","message","error","render","disabled","items","language","openObject","props","historyElements","length","historyElement","push"],"sources":["../../src/console-history/ConsoleHistory.tsx"],"sourcesContent":["/**\n * Console display for use in the Iris environment.\n */\nimport React, { Component, ReactElement } from 'react';\nimport { VariableDefinition } from '@deephaven/jsapi-
|
|
1
|
+
{"version":3,"file":"ConsoleHistory.js","names":["React","Component","ConsoleHistoryItem","ConsoleHistory","itemKey","i","item","command","result","message","error","render","disabled","items","language","openObject","props","historyElements","length","historyElement","push"],"sources":["../../src/console-history/ConsoleHistory.tsx"],"sourcesContent":["/**\n * Console display for use in the Iris environment.\n */\nimport React, { Component, ReactElement } from 'react';\nimport type { VariableDefinition } from '@deephaven/jsapi-types';\nimport ConsoleHistoryItem from './ConsoleHistoryItem';\n\nimport './ConsoleHistory.scss';\nimport { ConsoleHistoryActionItem } from './ConsoleHistoryTypes';\n\ninterface ConsoleHistoryProps {\n items: ConsoleHistoryActionItem[];\n language: string;\n openObject: (object: VariableDefinition) => void;\n disabled?: boolean;\n}\n\nclass ConsoleHistory extends Component<\n ConsoleHistoryProps,\n Record<string, never>\n> {\n static defaultProps = {\n disabled: false,\n };\n\n static itemKey(i: number, item: ConsoleHistoryActionItem): string {\n return `${i}.${item.command}.${item.result && item.result.message}.${\n item.result && item.result.error\n }`;\n }\n\n render(): ReactElement {\n const { disabled, items, language, openObject } = this.props;\n const historyElements = [];\n for (let i = 0; i < items.length; i += 1) {\n const item = items[i];\n const historyElement = (\n <ConsoleHistoryItem\n key={ConsoleHistory.itemKey(i, item)}\n disabled={disabled}\n item={item}\n openObject={openObject}\n language={language}\n />\n );\n historyElements.push(historyElement);\n }\n\n return (\n <div className=\"container-fluid console-history\">{historyElements}</div>\n );\n }\n}\n\nexport default ConsoleHistory;\n"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,KAAK,IAAIC,SAAS,QAAsB,OAAO;AAAC,OAEhDC,kBAAkB;AAAA;AAYzB,MAAMC,cAAc,SAASF,SAAS,CAGpC;EAKA,OAAOG,OAAO,CAACC,CAAS,EAAEC,IAA8B,EAAU;IAChE,iBAAUD,CAAC,cAAIC,IAAI,CAACC,OAAO,cAAID,IAAI,CAACE,MAAM,IAAIF,IAAI,CAACE,MAAM,CAACC,OAAO,cAC/DH,IAAI,CAACE,MAAM,IAAIF,IAAI,CAACE,MAAM,CAACE,KAAK;EAEpC;EAEAC,MAAM,GAAiB;IACrB,IAAM;MAAEC,QAAQ;MAAEC,KAAK;MAAEC,QAAQ;MAAEC;IAAW,CAAC,GAAG,IAAI,CAACC,KAAK;IAC5D,IAAMC,eAAe,GAAG,EAAE;IAC1B,KAAK,IAAIZ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGQ,KAAK,CAACK,MAAM,EAAEb,CAAC,IAAI,CAAC,EAAE;MACxC,IAAMC,IAAI,GAAGO,KAAK,CAACR,CAAC,CAAC;MACrB,IAAMc,cAAc,gBAClB,oBAAC,kBAAkB;QACjB,GAAG,EAAEhB,cAAc,CAACC,OAAO,CAACC,CAAC,EAAEC,IAAI,CAAE;QACrC,QAAQ,EAAEM,QAAS;QACnB,IAAI,EAAEN,IAAK;QACX,UAAU,EAAES,UAAW;QACvB,QAAQ,EAAED;MAAS,EAEtB;MACDG,eAAe,CAACG,IAAI,CAACD,cAAc,CAAC;IACtC;IAEA,oBACE;MAAK,SAAS,EAAC;IAAiC,GAAEF,eAAe,CAAO;EAE5E;AACF;AAAC,gBAnCKd,cAAc,kBAII;EACpBS,QAAQ,EAAE;AACZ,CAAC;AA+BH,eAAeT,cAAc"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Console display for use in the Iris environment.
|
|
3
3
|
*/
|
|
4
4
|
import { PureComponent, ReactElement } from 'react';
|
|
5
|
-
import { VariableDefinition } from '@deephaven/jsapi-
|
|
5
|
+
import type { VariableDefinition } from '@deephaven/jsapi-types';
|
|
6
6
|
import './ConsoleHistoryItem.scss';
|
|
7
7
|
import { ConsoleHistoryActionItem } from './ConsoleHistoryTypes';
|
|
8
8
|
interface ConsoleHistoryItemProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleHistoryItem.d.ts","sourceRoot":"","sources":["../../src/console-history/ConsoleHistoryItem.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ConsoleHistoryItem.d.ts","sourceRoot":"","sources":["../../src/console-history/ConsoleHistoryItem.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAMjE,OAAO,2BAA2B,CAAC;AACnC,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAIjE,UAAU,uBAAuB;IAC/B,IAAI,EAAE,wBAAwB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,cAAM,kBAAmB,SAAQ,aAAa,CAC5C,uBAAuB,EACvB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CACtB;IACC,MAAM,CAAC,YAAY;;MAEjB;gBAEU,KAAK,EAAE,uBAAuB;IAO1C,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAOnD,iBAAiB,IAAI,IAAI;IAQzB,MAAM,IAAI,YAAY;CAqGvB;AAED,eAAe,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleHistoryItem.js","names":["React","PureComponent","Button","Log","classNames","Code","ObjectIcon","ConsoleHistoryItemResult","ConsoleHistoryResultInProgress","ConsoleHistoryResultErrorMessage","log","module","ConsoleHistoryItem","constructor","props","handleCancelClick","bind","handleObjectClick","object","debug","openObject","item","cancelResult","command","render","disabled","language","disabledObjects","result","commandElement","resultElements","hasButtons","error","message","changes","created","updated","forEach","title","key","btnDisabled","undefined","indexOf","element","type","push","errorMessage","resultElement","length"],"sources":["../../src/console-history/ConsoleHistoryItem.tsx"],"sourcesContent":["/**\n * Console display for use in the Iris environment.\n */\nimport React, { PureComponent, ReactElement } from 'react';\nimport { Button } from '@deephaven/components';\nimport Log from '@deephaven/log';\nimport { VariableDefinition } from '@deephaven/jsapi-
|
|
1
|
+
{"version":3,"file":"ConsoleHistoryItem.js","names":["React","PureComponent","Button","Log","classNames","Code","ObjectIcon","ConsoleHistoryItemResult","ConsoleHistoryResultInProgress","ConsoleHistoryResultErrorMessage","log","module","ConsoleHistoryItem","constructor","props","handleCancelClick","bind","handleObjectClick","object","debug","openObject","item","cancelResult","command","render","disabled","language","disabledObjects","result","commandElement","resultElements","hasButtons","error","message","changes","created","updated","forEach","title","key","btnDisabled","undefined","indexOf","element","type","push","errorMessage","resultElement","length"],"sources":["../../src/console-history/ConsoleHistoryItem.tsx"],"sourcesContent":["/**\n * Console display for use in the Iris environment.\n */\nimport React, { PureComponent, ReactElement } from 'react';\nimport { Button } from '@deephaven/components';\nimport Log from '@deephaven/log';\nimport type { VariableDefinition } from '@deephaven/jsapi-types';\nimport classNames from 'classnames';\nimport { Code, ObjectIcon } from '../common';\nimport ConsoleHistoryItemResult from './ConsoleHistoryItemResult';\nimport ConsoleHistoryResultInProgress from './ConsoleHistoryResultInProgress';\nimport ConsoleHistoryResultErrorMessage from './ConsoleHistoryResultErrorMessage';\nimport './ConsoleHistoryItem.scss';\nimport { ConsoleHistoryActionItem } from './ConsoleHistoryTypes';\n\nconst log = Log.module('ConsoleHistoryItem');\n\ninterface ConsoleHistoryItemProps {\n item: ConsoleHistoryActionItem;\n language: string;\n openObject: (object: VariableDefinition) => void;\n disabled?: boolean;\n}\n\nclass ConsoleHistoryItem extends PureComponent<\n ConsoleHistoryItemProps,\n Record<string, never>\n> {\n static defaultProps = {\n disabled: false,\n };\n\n constructor(props: ConsoleHistoryItemProps) {\n super(props);\n\n this.handleCancelClick = this.handleCancelClick.bind(this);\n this.handleObjectClick = this.handleObjectClick.bind(this);\n }\n\n handleObjectClick(object: VariableDefinition): void {\n log.debug('handleObjectClick', object);\n\n const { openObject } = this.props;\n openObject(object);\n }\n\n handleCancelClick(): void {\n const { item } = this.props;\n if (item != null && item.cancelResult) {\n log.debug(`Cancelling command: ${item.command}`);\n item.cancelResult();\n }\n }\n\n render(): ReactElement {\n const { disabled, item, language } = this.props;\n const { disabledObjects, result } = item;\n\n let commandElement = null;\n if (item.command != null && item.command !== '') {\n commandElement = (\n <div className=\"console-history-item-command\">\n <div className=\"console-history-gutter\">></div>\n <div className=\"console-history-content\">\n <Code language={language}>{item.command}</Code>\n </div>\n </div>\n );\n }\n\n const resultElements = [];\n let hasButtons = false;\n\n if (result) {\n const { error, message, changes } = result;\n\n if (changes) {\n const { created, updated } = changes;\n [...created, ...updated].forEach(object => {\n hasButtons = true;\n const { title } = object;\n const key = `${title}`;\n const btnDisabled =\n disabled === undefined ||\n disabled ||\n (disabledObjects ?? []).indexOf(key) >= 0;\n const element = (\n <Button\n key={key}\n kind=\"primary\"\n onClick={() => this.handleObjectClick(object)}\n className=\"btn-console-object\"\n disabled={btnDisabled}\n icon={<ObjectIcon type={object.type} />}\n >\n {title}\n </Button>\n );\n resultElements.push(element);\n });\n }\n\n // If the error has an associated command, we'll actually get a separate ERROR item printed out, so only print an error if there isn't an associated command\n if (error != null && item.command == null) {\n let errorMessage = `${(error as { message: string }).message ?? error}`;\n if (!errorMessage) {\n errorMessage = error as string;\n }\n const element = (\n <ConsoleHistoryResultErrorMessage\n key=\"result-error\"\n message={errorMessage}\n />\n );\n resultElements.push(element);\n }\n\n if (message !== undefined && message !== '') {\n const element = (\n <div key=\"log-message\" className=\"log-message\">\n {message}\n </div>\n );\n resultElements.push(element);\n }\n } else {\n hasButtons = true;\n const element = (\n <ConsoleHistoryResultInProgress\n key=\"in_progress\"\n onCancelClick={this.handleCancelClick}\n disabled={disabled}\n />\n );\n resultElements.push(element);\n }\n\n let resultElement = null;\n if (resultElements.length > 0) {\n resultElement = (\n <ConsoleHistoryItemResult>{resultElements}</ConsoleHistoryItemResult>\n );\n }\n\n return (\n <div\n className={classNames('console-command-result', {\n 'console-result-buttons': hasButtons,\n })}\n >\n {commandElement}\n {resultElement}\n </div>\n );\n }\n}\n\nexport default ConsoleHistoryItem;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleHistoryTypes.d.ts","sourceRoot":"","sources":["../../src/console-history/ConsoleHistoryTypes.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ConsoleHistoryTypes.d.ts","sourceRoot":"","sources":["../../src/console-history/ConsoleHistoryTypes.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,MAAM,mBAAmB,GAC3B,MAAM,GACN;IACE,OAAO,EAAE,MAAM,CAAC;CACjB,GACD,SAAS,CAAC;AAEd,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,eAAe,CAAC;KAC3B,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,aAAa,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;CAC5C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleHistoryTypes.js","names":[],"sources":["../../src/console-history/ConsoleHistoryTypes.tsx"],"sourcesContent":["import { CancelablePromise } from '@deephaven/utils';\nimport { VariableChanges } from '@deephaven/jsapi-
|
|
1
|
+
{"version":3,"file":"ConsoleHistoryTypes.js","names":[],"sources":["../../src/console-history/ConsoleHistoryTypes.tsx"],"sourcesContent":["import { CancelablePromise } from '@deephaven/utils';\nimport type { VariableChanges } from '@deephaven/jsapi-types';\n\nexport type ConsoleHistoryError =\n | string\n | {\n message: string;\n }\n | undefined;\n\nexport interface ConsoleHistoryActionItem {\n command?: string;\n result?: {\n message?: string;\n error?: unknown;\n changes?: VariableChanges;\n };\n disabledObjects?: string[];\n startTime?: number;\n endTime?: number;\n cancelResult?: () => void;\n wrappedResult?: CancelablePromise<unknown>;\n}\n"],"mappings":""}
|
package/dist/csv/CsvParser.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { ParseLocalConfig, Parser, ParseResult } from 'papaparse';
|
|
3
|
-
import { IdeSession, Table } from '@deephaven/jsapi-
|
|
3
|
+
import type { IdeSession, Table } from '@deephaven/jsapi-types';
|
|
4
4
|
import type { JSZipObject } from 'jszip';
|
|
5
5
|
import { CsvTypes } from './CsvFormats';
|
|
6
6
|
interface CsvParserConstructor {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CsvParser.d.ts","sourceRoot":"","sources":["../../src/csv/CsvParser.ts"],"names":[],"mappings":";AAAA,OAAa,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"CsvParser.d.ts","sourceRoot":"","sources":["../../src/csv/CsvParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CsvParser.js","names":["Papa","Log","assertNotNull","DbNameValidator","CsvTypeParser","log","module","ZIP_CONSOLIDATE_CHUNKS","CsvParser","generateHeaderRecursive","n","header","char","concat","Math","floor","String","fromCharCode","constructor","onFileCompleted","session","file","type","readHeaders","onProgress","onError","timeZone","isZip","tables","chunks","totalChunks","ceil","size","LocalChunkSize","isComplete","zipProgress","numConsolidated","isCancelled","handleChunk","bind","handleError","handleComplete","handleNodeUpdate","handleCreateTable","config","delimiter","newline","escapeChar","dynamicTyping","error","skipEmptyLines","chunk","complete","fastMode","cancel","transpose","numColumns","array","numRows","length","columns","Array","fill","map","r","row","Error","c","value","shouldTrim","trim","nullCheck","nullString","parse","handleParseDone","types","toParse","nodeStream","typeParser","result","parser","debug2","abort","forEach","t","close","data","headers","legalizeColumnNames","slice","generateHeaders","consolidateChunks","index","e","consolidatedChunks","i","uploadConsolidatedChunks","toUpload","undefined","pause","newTable","then","table","resume","progress","round","catch","results","meta","aborted","metadata","percent","push"],"sources":["../../src/csv/CsvParser.ts"],"sourcesContent":["import Papa, { ParseLocalConfig, Parser, ParseResult } from 'papaparse';\nimport Log from '@deephaven/log';\nimport { assertNotNull, DbNameValidator } from '@deephaven/utils';\nimport { IdeSession, Table } from '@deephaven/jsapi-shim';\nimport type { JSZipObject } from 'jszip';\nimport CsvTypeParser from './CsvTypeParser';\nimport { CsvTypes } from './CsvFormats';\n\nconst log = Log.module('CsvParser');\n\n// This is based on jszip streaming ~15 KB chunks to papa parse\n// Want to consolidate to ~10 MB chunks\nconst ZIP_CONSOLIDATE_CHUNKS = 650;\n\ninterface CsvParserConstructor {\n onFileCompleted: (tables: Table[]) => void;\n session: IdeSession;\n file: Blob | JSZipObject;\n type: CsvTypes;\n readHeaders: boolean;\n onProgress: (progressValue: number) => boolean;\n onError: (e: unknown) => void;\n timeZone: string;\n isZip: boolean;\n}\n\n/**\n * Parser a CSV file in chunks and returns a table handle for each chunk.\n */\nclass CsvParser {\n // Generates column names A-Z, AA-AZ, BA-BZ, etc...\n static generateHeaders = (numColumns: number): string[] => {\n const headers = [];\n for (let i = 0; i < numColumns; i += 1) {\n headers.push(CsvParser.generateHeaderRecursive(i));\n }\n return headers;\n };\n\n static generateHeaderRecursive(n: number): string {\n let header = '';\n let char = n;\n if (n >= 26) {\n header = header.concat(\n CsvParser.generateHeaderRecursive(Math.floor(n / 26) - 1)\n );\n char = n % 26;\n }\n return header.concat(String.fromCharCode(65 + char));\n }\n\n constructor({\n onFileCompleted,\n session,\n file,\n type,\n readHeaders = true,\n onProgress,\n onError,\n timeZone,\n isZip,\n }: CsvParserConstructor) {\n this.onFileCompleted = onFileCompleted;\n this.session = session;\n this.file = file;\n this.isZip = isZip;\n this.type = type;\n this.readHeaders = readHeaders;\n this.timeZone = timeZone;\n this.onProgress = onProgress;\n this.onError = onError;\n this.tables = [];\n this.chunks = 0;\n this.totalChunks = isZip\n ? 0\n : Math.ceil((file as Blob).size / Papa.LocalChunkSize);\n this.isComplete = false;\n this.zipProgress = 0;\n this.numConsolidated = 0;\n this.isCancelled = false;\n\n this.handleChunk = this.handleChunk.bind(this);\n this.handleError = this.handleError.bind(this);\n this.handleComplete = this.handleComplete.bind(this);\n this.handleNodeUpdate = this.handleNodeUpdate.bind(this);\n this.handleCreateTable = this.handleCreateTable.bind(this);\n\n this.config = {\n delimiter: type.delimiter,\n newline: type.newline as '\\r\\n' | '\\n' | '\\r' | undefined,\n escapeChar: type.escapeChar,\n dynamicTyping: false,\n error: this.handleError,\n skipEmptyLines: type.skipEmptyLines,\n chunk: this.handleChunk,\n complete: this.handleComplete,\n fastMode: false,\n };\n }\n\n onFileCompleted: (tables: Table[]) => void;\n\n session: IdeSession;\n\n file: Blob | JSZipObject;\n\n isZip: boolean;\n\n type: CsvTypes;\n\n readHeaders: boolean;\n\n timeZone: string;\n\n onProgress: (progressValue: number) => boolean;\n\n onError: (e: unknown) => void;\n\n tables: Table[];\n\n headers?: string[];\n\n types?: string[];\n\n chunks: number;\n\n totalChunks: number;\n\n isComplete: boolean;\n\n zipProgress: number;\n\n consolidatedChunks?: string[][];\n\n numConsolidated: number;\n\n isCancelled: boolean;\n\n config: ParseLocalConfig<unknown, Blob | NodeJS.ReadableStream>;\n\n cancel(): void {\n this.isCancelled = true;\n }\n\n transpose(numColumns: number, array: string[][]): string[][] {\n const numRows = array.length;\n const columns = new Array(numColumns)\n .fill(null)\n .map(() => new Array(numRows));\n for (let r = 0; r < numRows; r += 1) {\n const row = array[r];\n if (row.length < numColumns) {\n throw new Error(\n `Insufficient columns. Expected ${numColumns} but found ${row.length}\\n${row}`\n );\n }\n for (let c = 0; c < numColumns; c += 1) {\n const value = this.type.shouldTrim ? array[r][c].trim() : array[r][c];\n columns[c][r] = this.nullCheck(value);\n }\n }\n return columns as string[][];\n }\n\n nullCheck(value: string): string {\n return value === this.type.nullString ? '' : value;\n }\n\n parse(): void {\n const handleParseDone = (types: string[]) => {\n const toParse = this.isZip\n ? (this.file as JSZipObject).nodeStream(\n // JsZip types are incorrect, thus the funny casting\n // Actual parameter is 'nodebuffer'\n 'nodebuffer' as 'nodestream',\n this.handleNodeUpdate\n )\n : (this.file as Blob);\n this.types = types;\n Papa.parse(toParse, this.config);\n };\n const typeParser = new CsvTypeParser(\n handleParseDone,\n this.file,\n this.readHeaders,\n this.config,\n this.type.nullString,\n this.onProgress,\n this.onError,\n this.totalChunks,\n this.isZip,\n this.type.shouldTrim\n );\n typeParser.parse();\n }\n\n handleChunk(result: ParseResult<string[]>, parser: Parser): void {\n const { readHeaders, onError, handleCreateTable, isZip, tables } = this;\n if (this.isCancelled) {\n log.debug2('CSV parser cancelled.');\n parser.abort();\n tables.forEach(t => t.close());\n return;\n }\n let { data } = result;\n if (!this.headers) {\n if (readHeaders) {\n this.headers = DbNameValidator.legalizeColumnNames(data[0]);\n data = data.slice(1);\n } else {\n this.headers = CsvParser.generateHeaders(data[0].length);\n }\n }\n\n let columns: string[][] = [];\n try {\n columns = this.transpose(this.headers.length, data);\n if (isZip) {\n // Zip file chunks are tiny, so consolidate them to avoid create thousands of small tables\n this.consolidateChunks(columns, parser);\n } else {\n const index = this.chunks;\n this.chunks += 1;\n handleCreateTable(index, columns, parser);\n }\n } catch (e: unknown) {\n onError(e);\n }\n }\n\n consolidateChunks(columns: string[][], parser: Parser): void {\n if (!this.consolidatedChunks) {\n this.consolidatedChunks = columns.slice();\n } else {\n for (let i = 0; i < columns.length; i += 1) {\n this.consolidatedChunks[i] = this.consolidatedChunks[i].concat(\n columns[i]\n );\n }\n }\n this.numConsolidated += 1;\n if (this.numConsolidated >= ZIP_CONSOLIDATE_CHUNKS || this.isComplete) {\n this.uploadConsolidatedChunks(parser);\n }\n }\n\n uploadConsolidatedChunks(parser: Parser | null): void {\n const { handleCreateTable } = this;\n const index = this.chunks;\n this.chunks += 1;\n const toUpload = this.consolidatedChunks?.slice();\n this.consolidatedChunks = undefined;\n this.numConsolidated = 0;\n assertNotNull(toUpload);\n handleCreateTable(index, toUpload, parser);\n }\n\n handleCreateTable(\n index: number,\n columns: string[][],\n parser: Parser | null\n ): void {\n const {\n session,\n tables,\n onFileCompleted,\n totalChunks,\n types,\n onProgress,\n onError,\n } = this;\n if (parser) {\n parser.pause();\n }\n assertNotNull(this.headers);\n assertNotNull(types);\n session\n .newTable(this.headers, types, columns, this.timeZone)\n .then(table => {\n if (this.isCancelled) {\n log.debug2('CSV parser cancelled.');\n if (parser) {\n parser.abort();\n }\n tables.forEach(t => t.close());\n return;\n }\n if (parser) {\n parser.resume();\n }\n tables[index] = table;\n // This accounts for 50% of parsing plus 50% already done by the type parser\n let progress = 0;\n if (totalChunks > 0) {\n progress = Math.round((tables.length / totalChunks) * 50) + 50;\n } else {\n progress = Math.round(50 + this.zipProgress / 2);\n }\n log.debug2(`CSV parser progress ${progress}`);\n onProgress(progress);\n if (this.isComplete && tables.length === this.chunks) {\n log.debug2('CSV parser complete.');\n onFileCompleted(tables);\n }\n })\n .catch(e => {\n if (!this.isComplete && parser) {\n parser.abort();\n }\n onError(e);\n });\n }\n\n handleComplete(results: ParseResult<unknown>): void {\n // results is undefined for a succesful parse, but has meta data for an abort\n if (results == null || results.meta.aborted == null) {\n this.isComplete = true;\n // Check if there are any consolidated chunks left over from a zip file\n if (this.consolidatedChunks) {\n this.uploadConsolidatedChunks(null);\n }\n }\n }\n\n handleError(error: unknown): void {\n const { onError } = this;\n onError(error);\n }\n\n handleNodeUpdate(metadata: { percent: number }): void {\n this.zipProgress = metadata.percent;\n }\n}\n\nexport default CsvParser;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CsvParser.js","names":["Papa","Log","assertNotNull","DbNameValidator","CsvTypeParser","log","module","ZIP_CONSOLIDATE_CHUNKS","CsvParser","generateHeaderRecursive","n","header","char","concat","Math","floor","String","fromCharCode","constructor","onFileCompleted","session","file","type","readHeaders","onProgress","onError","timeZone","isZip","tables","chunks","totalChunks","ceil","size","LocalChunkSize","isComplete","zipProgress","numConsolidated","isCancelled","handleChunk","bind","handleError","handleComplete","handleNodeUpdate","handleCreateTable","config","delimiter","newline","escapeChar","dynamicTyping","error","skipEmptyLines","chunk","complete","fastMode","cancel","transpose","numColumns","array","numRows","length","columns","Array","fill","map","r","row","Error","c","value","shouldTrim","trim","nullCheck","nullString","parse","handleParseDone","types","toParse","nodeStream","typeParser","result","parser","debug2","abort","forEach","t","close","data","headers","legalizeColumnNames","slice","generateHeaders","consolidateChunks","index","e","consolidatedChunks","i","uploadConsolidatedChunks","toUpload","undefined","pause","newTable","then","table","resume","progress","round","catch","results","meta","aborted","metadata","percent","push"],"sources":["../../src/csv/CsvParser.ts"],"sourcesContent":["import Papa, { ParseLocalConfig, Parser, ParseResult } from 'papaparse';\nimport Log from '@deephaven/log';\nimport { assertNotNull, DbNameValidator } from '@deephaven/utils';\nimport type { IdeSession, Table } from '@deephaven/jsapi-types';\nimport type { JSZipObject } from 'jszip';\nimport CsvTypeParser from './CsvTypeParser';\nimport { CsvTypes } from './CsvFormats';\n\nconst log = Log.module('CsvParser');\n\n// This is based on jszip streaming ~15 KB chunks to papa parse\n// Want to consolidate to ~10 MB chunks\nconst ZIP_CONSOLIDATE_CHUNKS = 650;\n\ninterface CsvParserConstructor {\n onFileCompleted: (tables: Table[]) => void;\n session: IdeSession;\n file: Blob | JSZipObject;\n type: CsvTypes;\n readHeaders: boolean;\n onProgress: (progressValue: number) => boolean;\n onError: (e: unknown) => void;\n timeZone: string;\n isZip: boolean;\n}\n\n/**\n * Parser a CSV file in chunks and returns a table handle for each chunk.\n */\nclass CsvParser {\n // Generates column names A-Z, AA-AZ, BA-BZ, etc...\n static generateHeaders = (numColumns: number): string[] => {\n const headers = [];\n for (let i = 0; i < numColumns; i += 1) {\n headers.push(CsvParser.generateHeaderRecursive(i));\n }\n return headers;\n };\n\n static generateHeaderRecursive(n: number): string {\n let header = '';\n let char = n;\n if (n >= 26) {\n header = header.concat(\n CsvParser.generateHeaderRecursive(Math.floor(n / 26) - 1)\n );\n char = n % 26;\n }\n return header.concat(String.fromCharCode(65 + char));\n }\n\n constructor({\n onFileCompleted,\n session,\n file,\n type,\n readHeaders = true,\n onProgress,\n onError,\n timeZone,\n isZip,\n }: CsvParserConstructor) {\n this.onFileCompleted = onFileCompleted;\n this.session = session;\n this.file = file;\n this.isZip = isZip;\n this.type = type;\n this.readHeaders = readHeaders;\n this.timeZone = timeZone;\n this.onProgress = onProgress;\n this.onError = onError;\n this.tables = [];\n this.chunks = 0;\n this.totalChunks = isZip\n ? 0\n : Math.ceil((file as Blob).size / Papa.LocalChunkSize);\n this.isComplete = false;\n this.zipProgress = 0;\n this.numConsolidated = 0;\n this.isCancelled = false;\n\n this.handleChunk = this.handleChunk.bind(this);\n this.handleError = this.handleError.bind(this);\n this.handleComplete = this.handleComplete.bind(this);\n this.handleNodeUpdate = this.handleNodeUpdate.bind(this);\n this.handleCreateTable = this.handleCreateTable.bind(this);\n\n this.config = {\n delimiter: type.delimiter,\n newline: type.newline as '\\r\\n' | '\\n' | '\\r' | undefined,\n escapeChar: type.escapeChar,\n dynamicTyping: false,\n error: this.handleError,\n skipEmptyLines: type.skipEmptyLines,\n chunk: this.handleChunk,\n complete: this.handleComplete,\n fastMode: false,\n };\n }\n\n onFileCompleted: (tables: Table[]) => void;\n\n session: IdeSession;\n\n file: Blob | JSZipObject;\n\n isZip: boolean;\n\n type: CsvTypes;\n\n readHeaders: boolean;\n\n timeZone: string;\n\n onProgress: (progressValue: number) => boolean;\n\n onError: (e: unknown) => void;\n\n tables: Table[];\n\n headers?: string[];\n\n types?: string[];\n\n chunks: number;\n\n totalChunks: number;\n\n isComplete: boolean;\n\n zipProgress: number;\n\n consolidatedChunks?: string[][];\n\n numConsolidated: number;\n\n isCancelled: boolean;\n\n config: ParseLocalConfig<unknown, Blob | NodeJS.ReadableStream>;\n\n cancel(): void {\n this.isCancelled = true;\n }\n\n transpose(numColumns: number, array: string[][]): string[][] {\n const numRows = array.length;\n const columns = new Array(numColumns)\n .fill(null)\n .map(() => new Array(numRows));\n for (let r = 0; r < numRows; r += 1) {\n const row = array[r];\n if (row.length < numColumns) {\n throw new Error(\n `Insufficient columns. Expected ${numColumns} but found ${row.length}\\n${row}`\n );\n }\n for (let c = 0; c < numColumns; c += 1) {\n const value = this.type.shouldTrim ? array[r][c].trim() : array[r][c];\n columns[c][r] = this.nullCheck(value);\n }\n }\n return columns as string[][];\n }\n\n nullCheck(value: string): string {\n return value === this.type.nullString ? '' : value;\n }\n\n parse(): void {\n const handleParseDone = (types: string[]) => {\n const toParse = this.isZip\n ? (this.file as JSZipObject).nodeStream(\n // JsZip types are incorrect, thus the funny casting\n // Actual parameter is 'nodebuffer'\n 'nodebuffer' as 'nodestream',\n this.handleNodeUpdate\n )\n : (this.file as Blob);\n this.types = types;\n Papa.parse(toParse, this.config);\n };\n const typeParser = new CsvTypeParser(\n handleParseDone,\n this.file,\n this.readHeaders,\n this.config,\n this.type.nullString,\n this.onProgress,\n this.onError,\n this.totalChunks,\n this.isZip,\n this.type.shouldTrim\n );\n typeParser.parse();\n }\n\n handleChunk(result: ParseResult<string[]>, parser: Parser): void {\n const { readHeaders, onError, handleCreateTable, isZip, tables } = this;\n if (this.isCancelled) {\n log.debug2('CSV parser cancelled.');\n parser.abort();\n tables.forEach(t => t.close());\n return;\n }\n let { data } = result;\n if (!this.headers) {\n if (readHeaders) {\n this.headers = DbNameValidator.legalizeColumnNames(data[0]);\n data = data.slice(1);\n } else {\n this.headers = CsvParser.generateHeaders(data[0].length);\n }\n }\n\n let columns: string[][] = [];\n try {\n columns = this.transpose(this.headers.length, data);\n if (isZip) {\n // Zip file chunks are tiny, so consolidate them to avoid create thousands of small tables\n this.consolidateChunks(columns, parser);\n } else {\n const index = this.chunks;\n this.chunks += 1;\n handleCreateTable(index, columns, parser);\n }\n } catch (e: unknown) {\n onError(e);\n }\n }\n\n consolidateChunks(columns: string[][], parser: Parser): void {\n if (!this.consolidatedChunks) {\n this.consolidatedChunks = columns.slice();\n } else {\n for (let i = 0; i < columns.length; i += 1) {\n this.consolidatedChunks[i] = this.consolidatedChunks[i].concat(\n columns[i]\n );\n }\n }\n this.numConsolidated += 1;\n if (this.numConsolidated >= ZIP_CONSOLIDATE_CHUNKS || this.isComplete) {\n this.uploadConsolidatedChunks(parser);\n }\n }\n\n uploadConsolidatedChunks(parser: Parser | null): void {\n const { handleCreateTable } = this;\n const index = this.chunks;\n this.chunks += 1;\n const toUpload = this.consolidatedChunks?.slice();\n this.consolidatedChunks = undefined;\n this.numConsolidated = 0;\n assertNotNull(toUpload);\n handleCreateTable(index, toUpload, parser);\n }\n\n handleCreateTable(\n index: number,\n columns: string[][],\n parser: Parser | null\n ): void {\n const {\n session,\n tables,\n onFileCompleted,\n totalChunks,\n types,\n onProgress,\n onError,\n } = this;\n if (parser) {\n parser.pause();\n }\n assertNotNull(this.headers);\n assertNotNull(types);\n session\n .newTable(this.headers, types, columns, this.timeZone)\n .then(table => {\n if (this.isCancelled) {\n log.debug2('CSV parser cancelled.');\n if (parser) {\n parser.abort();\n }\n tables.forEach(t => t.close());\n return;\n }\n if (parser) {\n parser.resume();\n }\n tables[index] = table;\n // This accounts for 50% of parsing plus 50% already done by the type parser\n let progress = 0;\n if (totalChunks > 0) {\n progress = Math.round((tables.length / totalChunks) * 50) + 50;\n } else {\n progress = Math.round(50 + this.zipProgress / 2);\n }\n log.debug2(`CSV parser progress ${progress}`);\n onProgress(progress);\n if (this.isComplete && tables.length === this.chunks) {\n log.debug2('CSV parser complete.');\n onFileCompleted(tables);\n }\n })\n .catch(e => {\n if (!this.isComplete && parser) {\n parser.abort();\n }\n onError(e);\n });\n }\n\n handleComplete(results: ParseResult<unknown>): void {\n // results is undefined for a succesful parse, but has meta data for an abort\n if (results == null || results.meta.aborted == null) {\n this.isComplete = true;\n // Check if there are any consolidated chunks left over from a zip file\n if (this.consolidatedChunks) {\n this.uploadConsolidatedChunks(null);\n }\n }\n }\n\n handleError(error: unknown): void {\n const { onError } = this;\n onError(error);\n }\n\n handleNodeUpdate(metadata: { percent: number }): void {\n this.zipProgress = metadata.percent;\n }\n}\n\nexport default CsvParser;\n"],"mappings":"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"}
|
package/dist/log/LogView.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PureComponent, ReactElement } from 'react';
|
|
2
2
|
import { DropdownActions } from '@deephaven/components';
|
|
3
|
-
import { IdeSession, LogItem } from '@deephaven/jsapi-
|
|
3
|
+
import type { IdeSession, LogItem } from '@deephaven/jsapi-types';
|
|
4
4
|
import * as monaco from 'monaco-editor';
|
|
5
5
|
import './LogView.scss';
|
|
6
6
|
import LogLevelMenuItem from './LogLevelMenuItem';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogView.d.ts","sourceRoot":"","sources":["../../src/log/LogView.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAU,eAAe,EAAgB,MAAM,uBAAuB,CAAC;AAG9E,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"LogView.d.ts","sourceRoot":"","sources":["../../src/log/LogView.tsx"],"names":[],"mappings":"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"}
|