@deephaven/console 0.85.19 → 0.85.22
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-history/ConsoleHistoryResultErrorMessage.d.ts.map +1 -1
- package/dist/console-history/ConsoleHistoryResultErrorMessage.js +6 -4
- package/dist/console-history/ConsoleHistoryResultErrorMessage.js.map +1 -1
- package/dist/csv/CsvInputBar.js +1 -1
- package/dist/csv/CsvInputBar.js.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleHistoryResultErrorMessage.d.ts","sourceRoot":"","sources":["../../src/console-history/ConsoleHistoryResultErrorMessage.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAc,EACZ,aAAa,EACb,UAAU,EACV,aAAa,EACb,YAAY,EACb,MAAM,OAAO,CAAC;AAMf,UAAU,qCAAqC;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,qCAAqC;IAC7C,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,cAAM,gCAAiC,SAAQ,aAAa,CAC1D,qCAAqC,EACrC,qCAAqC,CACtC;IACC,MAAM,CAAC,YAAY;;MAEjB;IAEF,MAAM,CAAC,kBAAkB,SAAK;gBAElB,KAAK,EAAE,qCAAqC;IAqBxD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB,UAAU,EAAE,OAAO,CAAC;IAEpB,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,IAAI;IAc1D,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI;IAMxD,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI;IAgBxD,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI;IAWtD,iBAAiB,IAAI,IAAI;IAIzB,gBAAgB,IAAI,IAAI;IAIxB,gBAAgB,IAAI,IAAI;IAIxB,MAAM,IAAI,YAAY;
|
|
1
|
+
{"version":3,"file":"ConsoleHistoryResultErrorMessage.d.ts","sourceRoot":"","sources":["../../src/console-history/ConsoleHistoryResultErrorMessage.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAc,EACZ,aAAa,EACb,UAAU,EACV,aAAa,EACb,YAAY,EACb,MAAM,OAAO,CAAC;AAMf,UAAU,qCAAqC;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,qCAAqC;IAC7C,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,cAAM,gCAAiC,SAAQ,aAAa,CAC1D,qCAAqC,EACrC,qCAAqC,CACtC;IACC,MAAM,CAAC,YAAY;;MAEjB;IAEF,MAAM,CAAC,kBAAkB,SAAK;gBAElB,KAAK,EAAE,qCAAqC;IAqBxD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB,UAAU,EAAE,OAAO,CAAC;IAEpB,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,IAAI;IAc1D,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI;IAMxD,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI;IAgBxD,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI;IAWtD,iBAAiB,IAAI,IAAI;IAIzB,gBAAgB,IAAI,IAAI;IAIxB,gBAAgB,IAAI,IAAI;IAIxB,MAAM,IAAI,YAAY;CAiEvB;AAED,eAAe,gCAAgC,CAAC"}
|
|
@@ -95,13 +95,15 @@ class ConsoleHistoryResultErrorMessage extends PureComponent {
|
|
|
95
95
|
message: messageProp
|
|
96
96
|
} = this.props;
|
|
97
97
|
assertNotNull(messageProp);
|
|
98
|
-
|
|
98
|
+
// Trim trailing whitespace to avoid unnecessary empty lines
|
|
99
|
+
var message = messageProp.trimEnd();
|
|
100
|
+
var lineBreakIndex = message.indexOf('\n');
|
|
99
101
|
var isMultiline = lineBreakIndex > -1;
|
|
100
|
-
var topLineOfMessage =
|
|
102
|
+
var topLineOfMessage = message;
|
|
101
103
|
if (isMultiline) {
|
|
102
|
-
topLineOfMessage =
|
|
104
|
+
topLineOfMessage = message.slice(0, lineBreakIndex);
|
|
103
105
|
}
|
|
104
|
-
var remainderOfMessage =
|
|
106
|
+
var remainderOfMessage = message.slice(lineBreakIndex);
|
|
105
107
|
var arrowBtnClasses = isTriggerHovered ? 'error-btn-link error-btn-link--active' : 'error-btn-link';
|
|
106
108
|
return /*#__PURE__*/_jsxs("div", {
|
|
107
109
|
className: classNames('error-message', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleHistoryResultErrorMessage.js","names":["React","PureComponent","classNames","FontAwesomeIcon","vsTriangleRight","vsTriangleDown","assertNotNull","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ConsoleHistoryResultErrorMessage","constructor","props","_defineProperty","handleKeyPress","bind","handleMouseDown","handleMouseMove","handleMouseUp","handleToggleError","handleMouseEnter","handleMouseLeave","mouseX","mouseY","isClicking","state","isExpanded","isTriggerHovered","event","key","stopPropagation","preventDefault","clientX","clientY","Math","abs","mouseDragThreshold","shiftKey","metaKey","altKey","setState","render","message","messageProp","lineBreakIndex","indexOf","isMultiline","topLineOfMessage","slice","remainderOfMessage","arrowBtnClasses","className","expanded","children","type","onClick","tabIndex","icon","transform","role","onKeyPress","onMouseDown","onMouseMove","onMouseEnter","onMouseLeave","onMouseUp"],"sources":["../../src/console-history/ConsoleHistoryResultErrorMessage.tsx"],"sourcesContent":["/**\n * Error message that can be expanded\n */\nimport React, {\n KeyboardEvent,\n MouseEvent,\n PureComponent,\n ReactElement,\n} from 'react';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsTriangleRight, vsTriangleDown } from '@deephaven/icons';\nimport { assertNotNull } from '@deephaven/utils';\n\ninterface ConsoleHistoryResultErrorMessageProps {\n message?: string;\n}\n\ninterface ConsoleHistoryResultErrorMessageState {\n isExpanded: boolean;\n isTriggerHovered: boolean;\n}\n\nclass ConsoleHistoryResultErrorMessage extends PureComponent<\n ConsoleHistoryResultErrorMessageProps,\n ConsoleHistoryResultErrorMessageState\n> {\n static defaultProps = {\n message: '',\n };\n\n static mouseDragThreshold = 5;\n\n constructor(props: ConsoleHistoryResultErrorMessageProps) {\n super(props);\n\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.handleMouseDown = this.handleMouseDown.bind(this);\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handleMouseUp = this.handleMouseUp.bind(this);\n this.handleToggleError = this.handleToggleError.bind(this);\n this.handleMouseEnter = this.handleMouseEnter.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n\n this.mouseX = null;\n this.mouseY = null;\n this.isClicking = false;\n\n this.state = {\n isExpanded: false,\n isTriggerHovered: false,\n };\n }\n\n mouseX: number | null;\n\n mouseY: number | null;\n\n isClicking: boolean;\n\n handleKeyPress(event: KeyboardEvent<HTMLDivElement>): void {\n switch (event.key) {\n case 'Enter':\n case ' ':\n // Toggle the error open/closed\n this.handleToggleError();\n event.stopPropagation();\n event.preventDefault();\n break;\n default:\n break;\n }\n }\n\n handleMouseDown(event: MouseEvent<HTMLDivElement>): void {\n this.mouseX = event.clientX;\n this.mouseY = event.clientY;\n this.isClicking = true;\n }\n\n handleMouseMove(event: MouseEvent<HTMLDivElement>): void {\n if (this.mouseX != null && this.mouseY != null) {\n if (\n Math.abs(event.clientX - this.mouseX) >=\n ConsoleHistoryResultErrorMessage.mouseDragThreshold ||\n Math.abs(event.clientY - this.mouseY) >=\n ConsoleHistoryResultErrorMessage.mouseDragThreshold\n ) {\n this.isClicking = false;\n }\n } else if (this.isClicking) {\n // Rare case - could happen if you mouse down, switch window focus, release the mouse, then come back, mouse down outside of the error, drag into the error, then release the mouse\n this.isClicking = false;\n }\n }\n\n handleMouseUp(event: MouseEvent<HTMLDivElement>): void {\n // We don't want to expand/collapse the error if user is holding shift or an alt key\n // They may be trying to adjust their selection\n if (this.isClicking && !event.shiftKey && !event.metaKey && !event.altKey) {\n this.handleToggleError();\n }\n this.mouseX = null;\n this.mouseY = null;\n this.isClicking = false;\n }\n\n handleToggleError(): void {\n this.setState(state => ({ isExpanded: !state.isExpanded }));\n }\n\n handleMouseEnter(): void {\n this.setState({ isTriggerHovered: true });\n }\n\n handleMouseLeave(): void {\n this.setState({ isTriggerHovered: false });\n }\n\n render(): ReactElement {\n const { isExpanded, isTriggerHovered } = this.state;\n const { message: messageProp } = this.props;\n assertNotNull(messageProp);\n const lineBreakIndex = messageProp.indexOf('\\n');\n const isMultiline = lineBreakIndex > -1;\n let topLineOfMessage = messageProp;\n if (isMultiline) {\n topLineOfMessage = messageProp.slice(0, lineBreakIndex);\n }\n const remainderOfMessage = messageProp.slice(lineBreakIndex);\n const arrowBtnClasses = isTriggerHovered\n ? 'error-btn-link error-btn-link--active'\n : 'error-btn-link';\n\n return (\n <div\n key=\"error\"\n className={classNames('error-message', {\n expanded: isExpanded,\n })}\n >\n {isMultiline && (\n <>\n <div className=\"error-gutter\">\n <button\n type=\"button\"\n onClick={this.handleToggleError}\n className={arrowBtnClasses}\n tabIndex={-1}\n >\n <FontAwesomeIcon\n icon={isExpanded ? vsTriangleDown : vsTriangleRight}\n transform=\"left-3\"\n />\n </button>\n </div>\n <div className=\"error-content\">\n <div\n className=\"console-error-text-trigger\"\n role=\"button\"\n tabIndex={0}\n onKeyPress={this.handleKeyPress}\n onMouseDown={this.handleMouseDown}\n onMouseMove={this.handleMouseMove}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n onMouseUp={this.handleMouseUp}\n >\n {topLineOfMessage}\n </div>\n {isExpanded ? remainderOfMessage : ''}\n </div>\n </>\n )}\n {!isMultiline && (\n <div className=\"error-content\">\n <div className=\"console-error-text\">{topLineOfMessage}</div>\n </div>\n )}\n </div>\n );\n }\n}\n\nexport default ConsoleHistoryResultErrorMessage;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConsoleHistoryResultErrorMessage.js","names":["React","PureComponent","classNames","FontAwesomeIcon","vsTriangleRight","vsTriangleDown","assertNotNull","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ConsoleHistoryResultErrorMessage","constructor","props","_defineProperty","handleKeyPress","bind","handleMouseDown","handleMouseMove","handleMouseUp","handleToggleError","handleMouseEnter","handleMouseLeave","mouseX","mouseY","isClicking","state","isExpanded","isTriggerHovered","event","key","stopPropagation","preventDefault","clientX","clientY","Math","abs","mouseDragThreshold","shiftKey","metaKey","altKey","setState","render","message","messageProp","trimEnd","lineBreakIndex","indexOf","isMultiline","topLineOfMessage","slice","remainderOfMessage","arrowBtnClasses","className","expanded","children","type","onClick","tabIndex","icon","transform","role","onKeyPress","onMouseDown","onMouseMove","onMouseEnter","onMouseLeave","onMouseUp"],"sources":["../../src/console-history/ConsoleHistoryResultErrorMessage.tsx"],"sourcesContent":["/**\n * Error message that can be expanded\n */\nimport React, {\n KeyboardEvent,\n MouseEvent,\n PureComponent,\n ReactElement,\n} from 'react';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsTriangleRight, vsTriangleDown } from '@deephaven/icons';\nimport { assertNotNull } from '@deephaven/utils';\n\ninterface ConsoleHistoryResultErrorMessageProps {\n message?: string;\n}\n\ninterface ConsoleHistoryResultErrorMessageState {\n isExpanded: boolean;\n isTriggerHovered: boolean;\n}\n\nclass ConsoleHistoryResultErrorMessage extends PureComponent<\n ConsoleHistoryResultErrorMessageProps,\n ConsoleHistoryResultErrorMessageState\n> {\n static defaultProps = {\n message: '',\n };\n\n static mouseDragThreshold = 5;\n\n constructor(props: ConsoleHistoryResultErrorMessageProps) {\n super(props);\n\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.handleMouseDown = this.handleMouseDown.bind(this);\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handleMouseUp = this.handleMouseUp.bind(this);\n this.handleToggleError = this.handleToggleError.bind(this);\n this.handleMouseEnter = this.handleMouseEnter.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n\n this.mouseX = null;\n this.mouseY = null;\n this.isClicking = false;\n\n this.state = {\n isExpanded: false,\n isTriggerHovered: false,\n };\n }\n\n mouseX: number | null;\n\n mouseY: number | null;\n\n isClicking: boolean;\n\n handleKeyPress(event: KeyboardEvent<HTMLDivElement>): void {\n switch (event.key) {\n case 'Enter':\n case ' ':\n // Toggle the error open/closed\n this.handleToggleError();\n event.stopPropagation();\n event.preventDefault();\n break;\n default:\n break;\n }\n }\n\n handleMouseDown(event: MouseEvent<HTMLDivElement>): void {\n this.mouseX = event.clientX;\n this.mouseY = event.clientY;\n this.isClicking = true;\n }\n\n handleMouseMove(event: MouseEvent<HTMLDivElement>): void {\n if (this.mouseX != null && this.mouseY != null) {\n if (\n Math.abs(event.clientX - this.mouseX) >=\n ConsoleHistoryResultErrorMessage.mouseDragThreshold ||\n Math.abs(event.clientY - this.mouseY) >=\n ConsoleHistoryResultErrorMessage.mouseDragThreshold\n ) {\n this.isClicking = false;\n }\n } else if (this.isClicking) {\n // Rare case - could happen if you mouse down, switch window focus, release the mouse, then come back, mouse down outside of the error, drag into the error, then release the mouse\n this.isClicking = false;\n }\n }\n\n handleMouseUp(event: MouseEvent<HTMLDivElement>): void {\n // We don't want to expand/collapse the error if user is holding shift or an alt key\n // They may be trying to adjust their selection\n if (this.isClicking && !event.shiftKey && !event.metaKey && !event.altKey) {\n this.handleToggleError();\n }\n this.mouseX = null;\n this.mouseY = null;\n this.isClicking = false;\n }\n\n handleToggleError(): void {\n this.setState(state => ({ isExpanded: !state.isExpanded }));\n }\n\n handleMouseEnter(): void {\n this.setState({ isTriggerHovered: true });\n }\n\n handleMouseLeave(): void {\n this.setState({ isTriggerHovered: false });\n }\n\n render(): ReactElement {\n const { isExpanded, isTriggerHovered } = this.state;\n const { message: messageProp } = this.props;\n assertNotNull(messageProp);\n // Trim trailing whitespace to avoid unnecessary empty lines\n const message = messageProp.trimEnd();\n const lineBreakIndex = message.indexOf('\\n');\n const isMultiline = lineBreakIndex > -1;\n let topLineOfMessage = message;\n if (isMultiline) {\n topLineOfMessage = message.slice(0, lineBreakIndex);\n }\n const remainderOfMessage = message.slice(lineBreakIndex);\n const arrowBtnClasses = isTriggerHovered\n ? 'error-btn-link error-btn-link--active'\n : 'error-btn-link';\n\n return (\n <div\n key=\"error\"\n className={classNames('error-message', {\n expanded: isExpanded,\n })}\n >\n {isMultiline && (\n <>\n <div className=\"error-gutter\">\n <button\n type=\"button\"\n onClick={this.handleToggleError}\n className={arrowBtnClasses}\n tabIndex={-1}\n >\n <FontAwesomeIcon\n icon={isExpanded ? vsTriangleDown : vsTriangleRight}\n transform=\"left-3\"\n />\n </button>\n </div>\n <div className=\"error-content\">\n <div\n className=\"console-error-text-trigger\"\n role=\"button\"\n tabIndex={0}\n onKeyPress={this.handleKeyPress}\n onMouseDown={this.handleMouseDown}\n onMouseMove={this.handleMouseMove}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n onMouseUp={this.handleMouseUp}\n >\n {topLineOfMessage}\n </div>\n {isExpanded ? remainderOfMessage : ''}\n </div>\n </>\n )}\n {!isMultiline && (\n <div className=\"error-content\">\n <div className=\"console-error-text\">{topLineOfMessage}</div>\n </div>\n )}\n </div>\n );\n }\n}\n\nexport default ConsoleHistoryResultErrorMessage;\n"],"mappings":"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"}
|
package/dist/csv/CsvInputBar.js
CHANGED
|
@@ -62,7 +62,7 @@ class CsvInputBar extends Component {
|
|
|
62
62
|
if (!tableNameSet && file != null && !tableName) {
|
|
63
63
|
var _this$inputRef$curren;
|
|
64
64
|
var dotIndex = file.name.lastIndexOf('.');
|
|
65
|
-
var fileTableName = DbNameValidator.
|
|
65
|
+
var fileTableName = DbNameValidator.makeVariableName(file.name.substring(0, dotIndex));
|
|
66
66
|
this.setState({
|
|
67
67
|
tableName: fileTableName,
|
|
68
68
|
tableNameSet: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CsvInputBar.js","names":["React","Component","classNames","Button","Checkbox","Select","Log","DbNameValidator","CsvOverlay","CsvParser","CsvFormats","jsx","_jsx","jsxs","_jsxs","log","module","TYPE_OPTIONS","Object","entries","TYPES","map","_ref","key","value","children","name","CsvInputBar","constructor","props","_defineProperty","handleUpload","bind","handleCancel","handleError","handleTableName","toggleFirstRowHeaders","handleProgress","handleCancelInProgress","handleQueryTypeChange","inputRef","createRef","state","tableName","tableNameSet","isFirstRowHeaders","showProgress","progressValue","type","DEFAULT_TYPE","parser","componentDidUpdate","prevProps","file","paste","_this$inputRef$curren","dotIndex","lastIndexOf","fileTableName","legalizeTableName","substring","setState","current","focus","fromExtension","undefined","AUTO","componentWillUnmount","cancel","onClose","e","onError","error","event","target","stopPropagation","preventDefault","endsWith","handleZipFile","handleFile","Blob","isZip","arguments","length","info","concat","File","size","session","timeZone","onInProgress","handleParseDone","tables","bindTableToVariable","then","openTable","catch","mergeTables","table","forEach","t","close","onFileCompleted","readHeaders","onProgress","parse","zipFile","onUpdate","unzip","Error","files","csvFound","i","f","isValidExtension","onOpenTable","eventTargetValue","render","isNameInvalid","Boolean","className","onSubmit","htmlFor","ref","id","onChange","checked","kind","onClick","disabled","style","width"],"sources":["../../src/csv/CsvInputBar.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n Component,\n FormEvent,\n ReactElement,\n RefObject,\n} from 'react';\nimport classNames from 'classnames';\nimport type { JSZipObject } from 'jszip';\nimport { Button, Checkbox, Select } from '@deephaven/components';\nimport type { dh } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\nimport { DbNameValidator } from '@deephaven/utils';\nimport CsvOverlay from './CsvOverlay';\nimport CsvParser from './CsvParser';\nimport CsvFormats from './CsvFormats';\nimport './CsvInputBar.scss';\n\nconst log = Log.module('CsvInputBar');\n\nconst TYPE_OPTIONS = Object.entries(CsvFormats.TYPES).map(([key, value]) => (\n <option key={key} value={key}>\n {value.name}\n </option>\n));\n\ninterface CsvInputBarProps {\n session: dh.IdeSession;\n onOpenTable: (name: string) => void;\n onClose: () => void;\n onUpdate: (update: string) => void;\n onError: (e: unknown) => void;\n file: File;\n paste?: string;\n onInProgress: (boolean: boolean) => void;\n timeZone: string;\n unzip?: (zipFile: File) => Promise<JSZipObject[]>;\n}\n\ninterface CsvInputBarState {\n tableName: string;\n tableNameSet: boolean;\n isFirstRowHeaders: boolean;\n showProgress: boolean;\n progressValue: number;\n type: keyof typeof CsvFormats.TYPES;\n parser: CsvParser | null;\n}\n/**\n * Input controls for CSV upload.\n */\nclass CsvInputBar extends Component<CsvInputBarProps, CsvInputBarState> {\n static defaultProps = {\n file: null,\n paste: null,\n unzip: null,\n };\n\n constructor(props: CsvInputBarProps) {\n super(props);\n\n this.handleUpload = this.handleUpload.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n this.handleError = this.handleError.bind(this);\n this.handleTableName = this.handleTableName.bind(this);\n this.toggleFirstRowHeaders = this.toggleFirstRowHeaders.bind(this);\n this.handleProgress = this.handleProgress.bind(this);\n this.handleCancelInProgress = this.handleCancelInProgress.bind(this);\n this.handleQueryTypeChange = this.handleQueryTypeChange.bind(this);\n\n this.inputRef = React.createRef();\n\n this.state = {\n tableName: '',\n tableNameSet: false,\n isFirstRowHeaders: true,\n showProgress: false,\n progressValue: 0,\n type: CsvFormats.DEFAULT_TYPE,\n parser: null,\n };\n }\n\n // React documentation says it is fine to update state inside an if statment\n /* eslint-disable react/no-did-update-set-state */\n componentDidUpdate(prevProps: CsvInputBarProps): void {\n const { file, paste } = this.props;\n const { tableName, tableNameSet } = this.state;\n // Set the table name from a file\n if (!tableNameSet && file != null && !tableName) {\n const dotIndex = file.name.lastIndexOf('.');\n const fileTableName = DbNameValidator.legalizeTableName(\n file.name.substring(0, dotIndex)\n );\n this.setState({\n tableName: fileTableName,\n tableNameSet: true,\n });\n this.inputRef.current?.focus();\n } else if (\n (file == null && prevProps.file != null) ||\n (paste == null && prevProps.paste != null)\n ) {\n // The file or paste was unstaged\n this.setState({\n tableName: '',\n tableNameSet: false,\n });\n }\n\n // Focus the name input field on paste\n if (paste != null && paste !== '' && !tableName && this.inputRef.current) {\n this.inputRef.current.focus();\n }\n\n // Determine parser type by file extension\n if (file != null && file !== prevProps.file) {\n this.setState({\n type: CsvFormats.fromExtension(file.name),\n });\n } else if (\n paste != null &&\n paste !== '' &&\n (prevProps.paste === undefined || prevProps.paste === '')\n ) {\n this.setState({\n type: CsvFormats.AUTO,\n });\n }\n }\n\n componentWillUnmount(): void {\n const { parser } = this.state;\n if (parser) {\n parser.cancel();\n }\n }\n\n inputRef: RefObject<HTMLInputElement>;\n\n handleCancel(): void {\n const { onClose } = this.props;\n onClose();\n }\n\n handleError(e: unknown): void {\n const { onClose, onError } = this.props;\n log.error(e);\n onError(e);\n onClose();\n }\n\n handleTableName(event: ChangeEvent<HTMLInputElement>): void {\n this.setState({ tableName: event.target.value, tableNameSet: true });\n }\n\n toggleFirstRowHeaders(): void {\n const { isFirstRowHeaders } = this.state;\n this.setState({ isFirstRowHeaders: !isFirstRowHeaders });\n }\n\n handleUpload(event: FormEvent<HTMLFormElement>): void {\n event.stopPropagation();\n event.preventDefault();\n const { file, paste } = this.props;\n if (file != null) {\n if (file.name.endsWith('.zip')) {\n this.handleZipFile(file);\n } else {\n this.handleFile(file);\n }\n } else if (paste !== undefined && paste !== '') {\n this.handleFile(\n new Blob([paste], {\n type: 'text/plain',\n })\n );\n }\n }\n\n handleFile(file: File | Blob | JSZipObject, isZip = false): void {\n log.info(\n `Starting CSV parser for ${\n file instanceof File ? file.name : 'pasted values'\n } ${isZip ? '' : (file as Blob).size} bytes`\n );\n const { session, timeZone, onInProgress } = this.props;\n const { tableName, isFirstRowHeaders, type } = this.state;\n const handleParseDone = (tables: dh.Table[]): void => {\n // Do not bother merging just one table\n if (tables.length === 1) {\n session\n .bindTableToVariable(tables[0], tableName)\n .then(() => this.openTable())\n .catch(e => this.handleError(e));\n } else {\n session\n .mergeTables(tables)\n .then(table => {\n session\n .bindTableToVariable(table, tableName)\n .then(() => this.openTable())\n .catch(e => this.handleError(e));\n tables.forEach(t => t.close());\n })\n .catch(e => this.handleError(e));\n }\n };\n const parser = new CsvParser({\n onFileCompleted: handleParseDone,\n session,\n file,\n type: CsvFormats.TYPES[type],\n readHeaders: isFirstRowHeaders,\n onProgress: this.handleProgress,\n onError: this.handleError,\n timeZone,\n isZip,\n });\n parser.parse();\n this.setState({\n showProgress: true,\n parser,\n });\n // Note that calling onClose will set in progress to false\n onInProgress(true);\n }\n\n handleZipFile(zipFile: File): void {\n const { onUpdate, unzip } = this.props;\n if (unzip == null) {\n this.handleError(new Error('No support for zip files available.'));\n return;\n }\n\n unzip(zipFile)\n .then(files => {\n let csvFound = false;\n // Find the first Csv file in the zip and use that\n for (let i = 0; i < files.length; i += 1) {\n const f = files[i];\n if (CsvOverlay.isValidExtension(f.name)) {\n onUpdate(`Loading ${f.name} as csv from ${zipFile.name}`);\n csvFound = true;\n this.handleFile(f, true);\n break;\n }\n }\n if (!csvFound) {\n throw new Error(`No csv file found in ${zipFile.name}`);\n }\n })\n .catch(e => this.handleError(e));\n }\n\n handleProgress(progressValue: number): boolean {\n const { showProgress } = this.state;\n if (showProgress) {\n this.setState({\n progressValue,\n });\n }\n // Indicates to the caller that the upload has been cancelled\n return !showProgress;\n }\n\n // Cancels an in progress upload\n handleCancelInProgress(): void {\n const { onInProgress } = this.props;\n const { parser } = this.state;\n if (parser) {\n parser.cancel();\n }\n this.setState({\n showProgress: false,\n progressValue: 0,\n });\n onInProgress(false);\n }\n\n openTable(): void {\n const { onOpenTable, onClose } = this.props;\n const { tableName } = this.state;\n onOpenTable(tableName);\n onClose();\n }\n\n handleQueryTypeChange(eventTargetValue: string): void {\n this.setState({\n type: eventTargetValue as keyof typeof CsvFormats.TYPES,\n });\n }\n\n render(): ReactElement {\n const { file, paste } = this.props;\n const { tableName, isFirstRowHeaders, showProgress, progressValue, type } =\n this.state;\n // A blank table name is invalid for pasted values\n const isNameInvalid = Boolean(paste) && !tableName;\n return (\n <div className=\"csv-input-bar\">\n {!showProgress && (\n <form\n onSubmit={this.handleUpload}\n className=\"csv-input-bar-container form-inline\"\n >\n <div className=\"form-group\">\n <label htmlFor=\"tableNameInput\">Table name</label>\n <input\n ref={this.inputRef}\n id=\"tableNameInput\"\n type=\"text\"\n className={classNames('form-control', {\n 'is-invalid': isNameInvalid,\n })}\n value={tableName}\n onChange={this.handleTableName}\n />\n </div>\n <div className=\"form-group\">\n <label htmlFor=\"formatSelect\">File format</label>\n <Select\n id=\"formatSelect\"\n className=\"custom-select\"\n value={type}\n onChange={this.handleQueryTypeChange}\n >\n {TYPE_OPTIONS}\n </Select>\n </div>\n <Checkbox\n className=\"firstRowHeaders\"\n checked={isFirstRowHeaders}\n onChange={this.toggleFirstRowHeaders}\n >\n First row is column headers\n </Checkbox>\n <div className=\"csv-input-buttons form-group\">\n <Button kind=\"secondary\" onClick={this.handleCancel}>\n Cancel\n </Button>\n <Button\n kind=\"primary\"\n type=\"submit\"\n disabled={\n !(file !== null || (paste !== undefined && paste !== '')) ||\n !tableName\n }\n >\n Upload\n </Button>\n </div>\n </form>\n )}\n {showProgress && (\n <div className=\"csv-progress-container\">\n <label>Uploading Table</label>\n <div className=\"progress\">\n <div\n className=\"progress-bar bg-primary\"\n style={{ width: `${progressValue}%` }}\n aria-valuenow={progressValue}\n aria-valuemin={0}\n aria-valuemax={100}\n />\n </div>\n <label>{progressValue}%</label>\n <Button kind=\"primary\" onClick={this.handleCancelInProgress}>\n Cancel\n </Button>\n </div>\n )}\n </div>\n );\n }\n}\n\nexport default CsvInputBar;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CsvInputBar.js","names":["React","Component","classNames","Button","Checkbox","Select","Log","DbNameValidator","CsvOverlay","CsvParser","CsvFormats","jsx","_jsx","jsxs","_jsxs","log","module","TYPE_OPTIONS","Object","entries","TYPES","map","_ref","key","value","children","name","CsvInputBar","constructor","props","_defineProperty","handleUpload","bind","handleCancel","handleError","handleTableName","toggleFirstRowHeaders","handleProgress","handleCancelInProgress","handleQueryTypeChange","inputRef","createRef","state","tableName","tableNameSet","isFirstRowHeaders","showProgress","progressValue","type","DEFAULT_TYPE","parser","componentDidUpdate","prevProps","file","paste","_this$inputRef$curren","dotIndex","lastIndexOf","fileTableName","makeVariableName","substring","setState","current","focus","fromExtension","undefined","AUTO","componentWillUnmount","cancel","onClose","e","onError","error","event","target","stopPropagation","preventDefault","endsWith","handleZipFile","handleFile","Blob","isZip","arguments","length","info","concat","File","size","session","timeZone","onInProgress","handleParseDone","tables","bindTableToVariable","then","openTable","catch","mergeTables","table","forEach","t","close","onFileCompleted","readHeaders","onProgress","parse","zipFile","onUpdate","unzip","Error","files","csvFound","i","f","isValidExtension","onOpenTable","eventTargetValue","render","isNameInvalid","Boolean","className","onSubmit","htmlFor","ref","id","onChange","checked","kind","onClick","disabled","style","width"],"sources":["../../src/csv/CsvInputBar.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n Component,\n FormEvent,\n ReactElement,\n RefObject,\n} from 'react';\nimport classNames from 'classnames';\nimport type { JSZipObject } from 'jszip';\nimport { Button, Checkbox, Select } from '@deephaven/components';\nimport type { dh } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\nimport { DbNameValidator } from '@deephaven/utils';\nimport CsvOverlay from './CsvOverlay';\nimport CsvParser from './CsvParser';\nimport CsvFormats from './CsvFormats';\nimport './CsvInputBar.scss';\n\nconst log = Log.module('CsvInputBar');\n\nconst TYPE_OPTIONS = Object.entries(CsvFormats.TYPES).map(([key, value]) => (\n <option key={key} value={key}>\n {value.name}\n </option>\n));\n\ninterface CsvInputBarProps {\n session: dh.IdeSession;\n onOpenTable: (name: string) => void;\n onClose: () => void;\n onUpdate: (update: string) => void;\n onError: (e: unknown) => void;\n file: File;\n paste?: string;\n onInProgress: (boolean: boolean) => void;\n timeZone: string;\n unzip?: (zipFile: File) => Promise<JSZipObject[]>;\n}\n\ninterface CsvInputBarState {\n tableName: string;\n tableNameSet: boolean;\n isFirstRowHeaders: boolean;\n showProgress: boolean;\n progressValue: number;\n type: keyof typeof CsvFormats.TYPES;\n parser: CsvParser | null;\n}\n/**\n * Input controls for CSV upload.\n */\nclass CsvInputBar extends Component<CsvInputBarProps, CsvInputBarState> {\n static defaultProps = {\n file: null,\n paste: null,\n unzip: null,\n };\n\n constructor(props: CsvInputBarProps) {\n super(props);\n\n this.handleUpload = this.handleUpload.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n this.handleError = this.handleError.bind(this);\n this.handleTableName = this.handleTableName.bind(this);\n this.toggleFirstRowHeaders = this.toggleFirstRowHeaders.bind(this);\n this.handleProgress = this.handleProgress.bind(this);\n this.handleCancelInProgress = this.handleCancelInProgress.bind(this);\n this.handleQueryTypeChange = this.handleQueryTypeChange.bind(this);\n\n this.inputRef = React.createRef();\n\n this.state = {\n tableName: '',\n tableNameSet: false,\n isFirstRowHeaders: true,\n showProgress: false,\n progressValue: 0,\n type: CsvFormats.DEFAULT_TYPE,\n parser: null,\n };\n }\n\n // React documentation says it is fine to update state inside an if statment\n /* eslint-disable react/no-did-update-set-state */\n componentDidUpdate(prevProps: CsvInputBarProps): void {\n const { file, paste } = this.props;\n const { tableName, tableNameSet } = this.state;\n // Set the table name from a file\n if (!tableNameSet && file != null && !tableName) {\n const dotIndex = file.name.lastIndexOf('.');\n const fileTableName = DbNameValidator.makeVariableName(\n file.name.substring(0, dotIndex)\n );\n this.setState({\n tableName: fileTableName,\n tableNameSet: true,\n });\n this.inputRef.current?.focus();\n } else if (\n (file == null && prevProps.file != null) ||\n (paste == null && prevProps.paste != null)\n ) {\n // The file or paste was unstaged\n this.setState({\n tableName: '',\n tableNameSet: false,\n });\n }\n\n // Focus the name input field on paste\n if (paste != null && paste !== '' && !tableName && this.inputRef.current) {\n this.inputRef.current.focus();\n }\n\n // Determine parser type by file extension\n if (file != null && file !== prevProps.file) {\n this.setState({\n type: CsvFormats.fromExtension(file.name),\n });\n } else if (\n paste != null &&\n paste !== '' &&\n (prevProps.paste === undefined || prevProps.paste === '')\n ) {\n this.setState({\n type: CsvFormats.AUTO,\n });\n }\n }\n\n componentWillUnmount(): void {\n const { parser } = this.state;\n if (parser) {\n parser.cancel();\n }\n }\n\n inputRef: RefObject<HTMLInputElement>;\n\n handleCancel(): void {\n const { onClose } = this.props;\n onClose();\n }\n\n handleError(e: unknown): void {\n const { onClose, onError } = this.props;\n log.error(e);\n onError(e);\n onClose();\n }\n\n handleTableName(event: ChangeEvent<HTMLInputElement>): void {\n this.setState({ tableName: event.target.value, tableNameSet: true });\n }\n\n toggleFirstRowHeaders(): void {\n const { isFirstRowHeaders } = this.state;\n this.setState({ isFirstRowHeaders: !isFirstRowHeaders });\n }\n\n handleUpload(event: FormEvent<HTMLFormElement>): void {\n event.stopPropagation();\n event.preventDefault();\n const { file, paste } = this.props;\n if (file != null) {\n if (file.name.endsWith('.zip')) {\n this.handleZipFile(file);\n } else {\n this.handleFile(file);\n }\n } else if (paste !== undefined && paste !== '') {\n this.handleFile(\n new Blob([paste], {\n type: 'text/plain',\n })\n );\n }\n }\n\n handleFile(file: File | Blob | JSZipObject, isZip = false): void {\n log.info(\n `Starting CSV parser for ${\n file instanceof File ? file.name : 'pasted values'\n } ${isZip ? '' : (file as Blob).size} bytes`\n );\n const { session, timeZone, onInProgress } = this.props;\n const { tableName, isFirstRowHeaders, type } = this.state;\n const handleParseDone = (tables: dh.Table[]): void => {\n // Do not bother merging just one table\n if (tables.length === 1) {\n session\n .bindTableToVariable(tables[0], tableName)\n .then(() => this.openTable())\n .catch(e => this.handleError(e));\n } else {\n session\n .mergeTables(tables)\n .then(table => {\n session\n .bindTableToVariable(table, tableName)\n .then(() => this.openTable())\n .catch(e => this.handleError(e));\n tables.forEach(t => t.close());\n })\n .catch(e => this.handleError(e));\n }\n };\n const parser = new CsvParser({\n onFileCompleted: handleParseDone,\n session,\n file,\n type: CsvFormats.TYPES[type],\n readHeaders: isFirstRowHeaders,\n onProgress: this.handleProgress,\n onError: this.handleError,\n timeZone,\n isZip,\n });\n parser.parse();\n this.setState({\n showProgress: true,\n parser,\n });\n // Note that calling onClose will set in progress to false\n onInProgress(true);\n }\n\n handleZipFile(zipFile: File): void {\n const { onUpdate, unzip } = this.props;\n if (unzip == null) {\n this.handleError(new Error('No support for zip files available.'));\n return;\n }\n\n unzip(zipFile)\n .then(files => {\n let csvFound = false;\n // Find the first Csv file in the zip and use that\n for (let i = 0; i < files.length; i += 1) {\n const f = files[i];\n if (CsvOverlay.isValidExtension(f.name)) {\n onUpdate(`Loading ${f.name} as csv from ${zipFile.name}`);\n csvFound = true;\n this.handleFile(f, true);\n break;\n }\n }\n if (!csvFound) {\n throw new Error(`No csv file found in ${zipFile.name}`);\n }\n })\n .catch(e => this.handleError(e));\n }\n\n handleProgress(progressValue: number): boolean {\n const { showProgress } = this.state;\n if (showProgress) {\n this.setState({\n progressValue,\n });\n }\n // Indicates to the caller that the upload has been cancelled\n return !showProgress;\n }\n\n // Cancels an in progress upload\n handleCancelInProgress(): void {\n const { onInProgress } = this.props;\n const { parser } = this.state;\n if (parser) {\n parser.cancel();\n }\n this.setState({\n showProgress: false,\n progressValue: 0,\n });\n onInProgress(false);\n }\n\n openTable(): void {\n const { onOpenTable, onClose } = this.props;\n const { tableName } = this.state;\n onOpenTable(tableName);\n onClose();\n }\n\n handleQueryTypeChange(eventTargetValue: string): void {\n this.setState({\n type: eventTargetValue as keyof typeof CsvFormats.TYPES,\n });\n }\n\n render(): ReactElement {\n const { file, paste } = this.props;\n const { tableName, isFirstRowHeaders, showProgress, progressValue, type } =\n this.state;\n // A blank table name is invalid for pasted values\n const isNameInvalid = Boolean(paste) && !tableName;\n return (\n <div className=\"csv-input-bar\">\n {!showProgress && (\n <form\n onSubmit={this.handleUpload}\n className=\"csv-input-bar-container form-inline\"\n >\n <div className=\"form-group\">\n <label htmlFor=\"tableNameInput\">Table name</label>\n <input\n ref={this.inputRef}\n id=\"tableNameInput\"\n type=\"text\"\n className={classNames('form-control', {\n 'is-invalid': isNameInvalid,\n })}\n value={tableName}\n onChange={this.handleTableName}\n />\n </div>\n <div className=\"form-group\">\n <label htmlFor=\"formatSelect\">File format</label>\n <Select\n id=\"formatSelect\"\n className=\"custom-select\"\n value={type}\n onChange={this.handleQueryTypeChange}\n >\n {TYPE_OPTIONS}\n </Select>\n </div>\n <Checkbox\n className=\"firstRowHeaders\"\n checked={isFirstRowHeaders}\n onChange={this.toggleFirstRowHeaders}\n >\n First row is column headers\n </Checkbox>\n <div className=\"csv-input-buttons form-group\">\n <Button kind=\"secondary\" onClick={this.handleCancel}>\n Cancel\n </Button>\n <Button\n kind=\"primary\"\n type=\"submit\"\n disabled={\n !(file !== null || (paste !== undefined && paste !== '')) ||\n !tableName\n }\n >\n Upload\n </Button>\n </div>\n </form>\n )}\n {showProgress && (\n <div className=\"csv-progress-container\">\n <label>Uploading Table</label>\n <div className=\"progress\">\n <div\n className=\"progress-bar bg-primary\"\n style={{ width: `${progressValue}%` }}\n aria-valuenow={progressValue}\n aria-valuemin={0}\n aria-valuemax={100}\n />\n </div>\n <label>{progressValue}%</label>\n <Button kind=\"primary\" onClick={this.handleCancelInProgress}>\n Cancel\n </Button>\n </div>\n )}\n </div>\n );\n }\n}\n\nexport default CsvInputBar;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/console",
|
|
3
|
-
"version": "0.85.
|
|
3
|
+
"version": "0.85.22",
|
|
4
4
|
"description": "Deephaven Console",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -23,15 +23,15 @@
|
|
|
23
23
|
"build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@deephaven/chart": "^0.85.
|
|
27
|
-
"@deephaven/components": "^0.85.
|
|
26
|
+
"@deephaven/chart": "^0.85.20",
|
|
27
|
+
"@deephaven/components": "^0.85.20",
|
|
28
28
|
"@deephaven/icons": "^0.85.0",
|
|
29
|
-
"@deephaven/jsapi-bootstrap": "^0.85.
|
|
29
|
+
"@deephaven/jsapi-bootstrap": "^0.85.20",
|
|
30
30
|
"@deephaven/jsapi-types": "^1.0.0-dev0.34.0",
|
|
31
31
|
"@deephaven/log": "^0.85.19",
|
|
32
|
-
"@deephaven/react-hooks": "^0.85.
|
|
32
|
+
"@deephaven/react-hooks": "^0.85.20",
|
|
33
33
|
"@deephaven/storage": "^0.85.19",
|
|
34
|
-
"@deephaven/utils": "^0.85.
|
|
34
|
+
"@deephaven/utils": "^0.85.20",
|
|
35
35
|
"@fortawesome/react-fontawesome": "^0.2.0",
|
|
36
36
|
"classnames": "^2.3.1",
|
|
37
37
|
"linkifyjs": "^4.1.0",
|
|
@@ -63,5 +63,5 @@
|
|
|
63
63
|
"publishConfig": {
|
|
64
64
|
"access": "public"
|
|
65
65
|
},
|
|
66
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "b5a0a9d53f6c15e4edc097918401d6f23435a938"
|
|
67
67
|
}
|