@deephaven/console 0.15.6-vite.21 → 0.15.7-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/Console.js.map +1 -1
  2. package/dist/ConsoleInput.js.map +1 -1
  3. package/dist/ConsoleMenu.js.map +1 -1
  4. package/dist/ConsolePropTypes.js.map +1 -1
  5. package/dist/ConsoleShortcuts.js.map +1 -1
  6. package/dist/ConsoleStatusBar.js.map +1 -1
  7. package/dist/HeapUsage.css +60 -0
  8. package/dist/HeapUsage.css.map +1 -0
  9. package/dist/HeapUsage.d.ts +13 -0
  10. package/dist/HeapUsage.d.ts.map +1 -0
  11. package/dist/HeapUsage.js +179 -0
  12. package/dist/HeapUsage.js.map +1 -0
  13. package/dist/StoragePropTypes.js.map +1 -1
  14. package/dist/command-history/CommandHistory.js.map +1 -1
  15. package/dist/command-history/CommandHistoryActions.js.map +1 -1
  16. package/dist/command-history/CommandHistoryItem.js.map +1 -1
  17. package/dist/command-history/CommandHistoryItemTooltip.js.map +1 -1
  18. package/dist/command-history/CommandHistoryStorage.js.map +1 -1
  19. package/dist/command-history/CommandHistoryTypes.js.map +1 -1
  20. package/dist/command-history/CommandHistoryViewportUpdater.js.map +1 -1
  21. package/dist/command-history/index.js.map +1 -1
  22. package/dist/common/Code.js.map +1 -1
  23. package/dist/common/ConsoleConstants.js.map +1 -1
  24. package/dist/common/ConsoleUtils.js.map +1 -1
  25. package/dist/common/ObjectIcon.js.map +1 -1
  26. package/dist/common/index.d.js.map +1 -1
  27. package/dist/common/index.js.map +1 -1
  28. package/dist/console-history/ConsoleHistory.js.map +1 -1
  29. package/dist/console-history/ConsoleHistoryItem.js.map +1 -1
  30. package/dist/console-history/ConsoleHistoryItemResult.js.map +1 -1
  31. package/dist/console-history/ConsoleHistoryResultErrorMessage.js.map +1 -1
  32. package/dist/console-history/ConsoleHistoryResultInProgress.js.map +1 -1
  33. package/dist/console-history/ConsoleHistoryTypes.js.map +1 -1
  34. package/dist/console-history/index.js.map +1 -1
  35. package/dist/csv/CsvFormats.js.map +1 -1
  36. package/dist/csv/CsvInputBar.js.map +1 -1
  37. package/dist/csv/CsvOverlay.js.map +1 -1
  38. package/dist/csv/CsvParser.js.map +1 -1
  39. package/dist/csv/CsvTypeParser.js.map +1 -1
  40. package/dist/csv/NewTableColumnTypes.js.map +1 -1
  41. package/dist/declaration.d.js.map +1 -1
  42. package/dist/index.d.ts +1 -0
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +1 -0
  45. package/dist/index.js.map +1 -1
  46. package/dist/log/LogLevel.js.map +1 -1
  47. package/dist/log/LogLevelMenuItem.js.map +1 -1
  48. package/dist/log/LogView.js.map +1 -1
  49. package/dist/monaco/MonacoCompletionProvider.js.map +1 -1
  50. package/dist/monaco/MonacoUtils.d.ts +1 -6
  51. package/dist/monaco/MonacoUtils.d.ts.map +1 -1
  52. package/dist/monaco/MonacoUtils.js +1 -14
  53. package/dist/monaco/MonacoUtils.js.map +1 -1
  54. package/dist/monaco/index.js.map +1 -1
  55. package/dist/monaco/lang/Language.js.map +1 -1
  56. package/dist/monaco/lang/db.js.map +1 -1
  57. package/dist/monaco/lang/groovy.js.map +1 -1
  58. package/dist/monaco/lang/log.js.map +1 -1
  59. package/dist/monaco/lang/python.js.map +1 -1
  60. package/dist/monaco/lang/scala.js.map +1 -1
  61. package/dist/notebook/Editor.js.map +1 -1
  62. package/dist/notebook/ScriptEditor.js.map +1 -1
  63. package/dist/notebook/ScriptEditorUtils.js.map +1 -1
  64. package/package.json +11 -11
@@ -1 +1 @@
1
- {"version":3,"file":"CsvTypeParser.js","names":["assertNotNull","Papa","NewTableColumnTypes","UNKNOWN","MAX_INT","MIN_INT","DATE_TIME_REGEX","LOCAL_TIME_REGEX","CsvTypeParser","determineType","value","type","nullString","STRING","INTEGER","checkInteger","LONG","checkLong","DOUBLE","checkDouble","BOOLEAN","checkBoolean","DATE_TIME","checkDateTime","LOCAL_TIME","checkLocalTime","getTypeFromUnknown","isNotParsableNumber","s","isNaN","noCommas","replace","getNumberType","includes","lower","toLowerCase","test","maxIntLength","startsWith","length","intValue","parseInt","constructor","onFileCompleted","file","readHeaders","parentConfig","onProgress","onError","totalChunks","isZip","shouldTrim","chunks","zipProgress","handleChunk","bind","handleComplete","handleError","handleNodeUpdate","config","error","chunk","complete","parse","toParse","nodeStream","result","parser","data","types","abort","Array","fill","slice","cloneTypes","forEach","row","i","trim","progress","Math","round","isCancelled","results","meta","aborted","map","metadata","percent"],"sources":["../../src/csv/CsvTypeParser.ts"],"sourcesContent":["import type { JSZipObject } from 'jszip';\nimport { assertNotNull } from '@deephaven/utils';\nimport Papa, { Parser, ParseResult, ParseLocalConfig } from 'papaparse';\n// Intentionally using isNaN rather than Number.isNaN\n/* eslint-disable no-restricted-globals */\nimport NewTableColumnTypes from './NewTableColumnTypes';\n\n// Initially column types start al unknown\nconst UNKNOWN = 'unknown';\n\nconst MAX_INT = 2147483647;\nconst MIN_INT = -2147483648;\n\nconst DATE_TIME_REGEX = /^[0-9]{4}-[0-1][0-9]-[0-3][0-9][ T][0-2][0-9]:[0-5][0-9]:[0-6][0-9](?:\\.[0-9]{1,9})?(?: [a-zA-Z]+)?$/;\nconst LOCAL_TIME_REGEX = /^([0-9]+T)?([0-9]+):([0-9]+)(:[0-9]+)?(?:\\.[0-9]{1,9})?$/;\n\n/**\n * Determines the type of each column in a CSV file by parsing it and looking at every value.\n */\nclass CsvTypeParser {\n static determineType(\n value: string,\n type: string,\n nullString: string | null\n ): string {\n if (!value || value === nullString) {\n // A null tells us nothing about the type\n return type;\n }\n\n switch (type) {\n case NewTableColumnTypes.STRING:\n // Strings never get promoted\n return NewTableColumnTypes.STRING;\n case NewTableColumnTypes.INTEGER:\n return CsvTypeParser.checkInteger(value);\n case NewTableColumnTypes.LONG:\n return CsvTypeParser.checkLong(value);\n case NewTableColumnTypes.DOUBLE:\n return CsvTypeParser.checkDouble(value);\n case NewTableColumnTypes.BOOLEAN:\n return CsvTypeParser.checkBoolean(value);\n case NewTableColumnTypes.DATE_TIME:\n return CsvTypeParser.checkDateTime(value);\n case NewTableColumnTypes.LOCAL_TIME:\n return CsvTypeParser.checkLocalTime(value);\n default:\n return CsvTypeParser.getTypeFromUnknown(value);\n }\n }\n\n // Allows for cusomt rules in addition to isNaN\n static isNotParsableNumber(s: string): boolean {\n return (\n isNaN((s as unknown) as number) || s === 'Infinity' || s === '-Infinity'\n );\n }\n\n static checkInteger(value: string): string {\n const noCommas = value.replace(/,/g, '');\n if (CsvTypeParser.isNotParsableNumber(noCommas)) {\n return NewTableColumnTypes.STRING;\n }\n\n return CsvTypeParser.getNumberType(noCommas);\n }\n\n static checkLong(value: string): string {\n const noCommas = value.replace(/,/g, '');\n if (CsvTypeParser.isNotParsableNumber(noCommas)) {\n return NewTableColumnTypes.STRING;\n }\n\n if (noCommas.includes('.')) {\n return NewTableColumnTypes.DOUBLE;\n }\n\n return NewTableColumnTypes.LONG;\n }\n\n static checkDouble(value: string): string {\n const noCommas = value.replace(/,/g, '');\n if (CsvTypeParser.isNotParsableNumber(noCommas)) {\n return NewTableColumnTypes.STRING;\n }\n\n return NewTableColumnTypes.DOUBLE;\n }\n\n static checkBoolean(value: string): string {\n const lower = value.toLowerCase();\n if (lower === 'true' || lower === 'false') {\n return NewTableColumnTypes.BOOLEAN;\n }\n return NewTableColumnTypes.STRING;\n }\n\n static checkDateTime(value: string): string {\n if (DATE_TIME_REGEX.test(value)) {\n return NewTableColumnTypes.DATE_TIME;\n }\n\n return NewTableColumnTypes.STRING;\n }\n\n static checkLocalTime(value: string): string {\n if (LOCAL_TIME_REGEX.test(value)) {\n return NewTableColumnTypes.LOCAL_TIME;\n }\n\n return NewTableColumnTypes.STRING;\n }\n\n static getTypeFromUnknown(value: string): string {\n const noCommas = value.replace(/,/g, '');\n if (CsvTypeParser.isNotParsableNumber(noCommas)) {\n const lower = value.toLowerCase();\n if (lower === 'true' || lower === 'false') {\n return NewTableColumnTypes.BOOLEAN;\n }\n\n if (DATE_TIME_REGEX.test(value) && value.includes(':')) {\n return NewTableColumnTypes.DATE_TIME;\n }\n\n if (LOCAL_TIME_REGEX.test(value)) {\n return NewTableColumnTypes.LOCAL_TIME;\n }\n\n return NewTableColumnTypes.STRING;\n }\n\n return CsvTypeParser.getNumberType(noCommas);\n }\n\n static getNumberType(value: string): string {\n if (value.includes('.')) {\n return NewTableColumnTypes.DOUBLE;\n }\n\n // Fast length check\n const maxIntLength = value.startsWith('-') ? 11 : 10;\n if (value.length > maxIntLength) {\n return NewTableColumnTypes.LONG;\n }\n\n // Slower parseInt check\n const intValue = parseInt(value, 10);\n if (intValue > MAX_INT || intValue < MIN_INT) {\n return NewTableColumnTypes.LONG;\n }\n\n return NewTableColumnTypes.INTEGER;\n }\n\n constructor(\n onFileCompleted: (types: string[]) => void,\n file: Blob | JSZipObject,\n readHeaders: boolean,\n parentConfig: ParseLocalConfig<unknown, Blob | NodeJS.ReadableStream>,\n nullString: string | null,\n onProgress: (progressValue: number) => boolean,\n onError: (e: unknown) => void,\n totalChunks: number,\n isZip: boolean,\n shouldTrim: boolean\n ) {\n this.onFileCompleted = onFileCompleted;\n this.file = file;\n this.readHeaders = readHeaders;\n this.nullString = nullString;\n this.onProgress = onProgress;\n this.onError = onError;\n this.chunks = 0;\n this.totalChunks = totalChunks;\n this.isZip = isZip;\n this.shouldTrim = shouldTrim;\n this.zipProgress = 0;\n\n this.handleChunk = this.handleChunk.bind(this);\n this.handleComplete = this.handleComplete.bind(this);\n this.handleError = this.handleError.bind(this);\n this.handleNodeUpdate = this.handleNodeUpdate.bind(this);\n\n this.config = {\n ...parentConfig,\n error: this.handleError,\n chunk: this.handleChunk,\n complete: this.handleComplete,\n };\n }\n\n onFileCompleted: (types: string[]) => void;\n\n file: Blob | JSZipObject;\n\n readHeaders: boolean;\n\n nullString: string | null;\n\n onProgress: (progressValue: number) => boolean;\n\n onError: (e: unknown) => void;\n\n types?: string[];\n\n chunks: number;\n\n totalChunks: number;\n\n isZip: boolean;\n\n shouldTrim: boolean;\n\n zipProgress: number;\n\n config: ParseLocalConfig<unknown, Blob | NodeJS.ReadableStream>;\n\n parse(): void {\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 Papa.parse(toParse, this.config);\n }\n\n handleChunk(result: ParseResult<string[]>, parser: Parser): void {\n let { data } = result;\n if (!this.types) {\n if (!data || data.length === 0) {\n parser.abort();\n this.onError('Error parsing CSV: no data in file.');\n return;\n }\n this.types = new Array(data[0].length).fill(UNKNOWN);\n if (this.readHeaders) {\n // If headers are being read from the file, remove them from type analysis\n data = data.slice(1);\n }\n }\n\n assertNotNull(this.types);\n\n const cloneTypes = [...this.types];\n\n data.forEach(row => {\n if (row.length >= cloneTypes.length) {\n for (let i = 0; i < cloneTypes.length; i += 1) {\n cloneTypes[i] = CsvTypeParser.determineType(\n this.shouldTrim ? row[i].trim() : row[i],\n cloneTypes[i],\n this.nullString\n );\n }\n this.types = cloneTypes;\n } else {\n parser.abort();\n this.onError(\n `Error parsing CSV: Insufficient data in row.\\nExpected length ${cloneTypes.length} but found ${row.length}.\\nRow = ${row}`\n );\n }\n });\n\n this.chunks += 1;\n // 50 because the type parsing accounts for 50% of the parsing\n let progress = 0;\n if (this.totalChunks > 0) {\n progress = Math.round((this.chunks / this.totalChunks) * 50);\n } else {\n progress = Math.round(this.zipProgress / 2);\n }\n const isCancelled = this.onProgress(progress);\n if (isCancelled) {\n parser.abort();\n }\n }\n\n handleComplete(results: ParseResult<unknown>): void {\n const { types, onFileCompleted } = this;\n // results is undefined for a succesful parse, but has meta data for an abort\n assertNotNull(types);\n if (!results || !results.meta.aborted) {\n onFileCompleted(\n types.map(type =>\n type === UNKNOWN ? NewTableColumnTypes.STRING : type\n )\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 CsvTypeParser;\n"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/csv/CsvTypeParser.ts"],"names":["assertNotNull","Papa","NewTableColumnTypes","UNKNOWN","MAX_INT","MIN_INT","DATE_TIME_REGEX","LOCAL_TIME_REGEX","CsvTypeParser","determineType","value","type","nullString","STRING","INTEGER","checkInteger","LONG","checkLong","DOUBLE","checkDouble","BOOLEAN","checkBoolean","DATE_TIME","checkDateTime","LOCAL_TIME","checkLocalTime","getTypeFromUnknown","isNotParsableNumber","s","isNaN","noCommas","replace","getNumberType","includes","lower","toLowerCase","test","maxIntLength","startsWith","length","intValue","parseInt","constructor","onFileCompleted","file","readHeaders","parentConfig","onProgress","onError","totalChunks","isZip","shouldTrim","chunks","zipProgress","handleChunk","bind","handleComplete","handleError","handleNodeUpdate","config","error","chunk","complete","parse","toParse","nodeStream","result","parser","data","types","abort","Array","fill","slice","cloneTypes","forEach","row","i","trim","progress","Math","round","isCancelled","results","meta","aborted","map","metadata","percent"],"mappings":"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","sourcesContent":["import type { JSZipObject } from 'jszip';\nimport { assertNotNull } from '@deephaven/utils';\nimport Papa, { Parser, ParseResult, ParseLocalConfig } from 'papaparse';\n// Intentionally using isNaN rather than Number.isNaN\n/* eslint-disable no-restricted-globals */\nimport NewTableColumnTypes from './NewTableColumnTypes';\n\n// Initially column types start al unknown\nconst UNKNOWN = 'unknown';\n\nconst MAX_INT = 2147483647;\nconst MIN_INT = -2147483648;\n\nconst DATE_TIME_REGEX = /^[0-9]{4}-[0-1][0-9]-[0-3][0-9][ T][0-2][0-9]:[0-5][0-9]:[0-6][0-9](?:\\.[0-9]{1,9})?(?: [a-zA-Z]+)?$/;\nconst LOCAL_TIME_REGEX = /^([0-9]+T)?([0-9]+):([0-9]+)(:[0-9]+)?(?:\\.[0-9]{1,9})?$/;\n\n/**\n * Determines the type of each column in a CSV file by parsing it and looking at every value.\n */\nclass CsvTypeParser {\n static determineType(\n value: string,\n type: string,\n nullString: string | null\n ): string {\n if (!value || value === nullString) {\n // A null tells us nothing about the type\n return type;\n }\n\n switch (type) {\n case NewTableColumnTypes.STRING:\n // Strings never get promoted\n return NewTableColumnTypes.STRING;\n case NewTableColumnTypes.INTEGER:\n return CsvTypeParser.checkInteger(value);\n case NewTableColumnTypes.LONG:\n return CsvTypeParser.checkLong(value);\n case NewTableColumnTypes.DOUBLE:\n return CsvTypeParser.checkDouble(value);\n case NewTableColumnTypes.BOOLEAN:\n return CsvTypeParser.checkBoolean(value);\n case NewTableColumnTypes.DATE_TIME:\n return CsvTypeParser.checkDateTime(value);\n case NewTableColumnTypes.LOCAL_TIME:\n return CsvTypeParser.checkLocalTime(value);\n default:\n return CsvTypeParser.getTypeFromUnknown(value);\n }\n }\n\n // Allows for cusomt rules in addition to isNaN\n static isNotParsableNumber(s: string): boolean {\n return (\n isNaN((s as unknown) as number) || s === 'Infinity' || s === '-Infinity'\n );\n }\n\n static checkInteger(value: string): string {\n const noCommas = value.replace(/,/g, '');\n if (CsvTypeParser.isNotParsableNumber(noCommas)) {\n return NewTableColumnTypes.STRING;\n }\n\n return CsvTypeParser.getNumberType(noCommas);\n }\n\n static checkLong(value: string): string {\n const noCommas = value.replace(/,/g, '');\n if (CsvTypeParser.isNotParsableNumber(noCommas)) {\n return NewTableColumnTypes.STRING;\n }\n\n if (noCommas.includes('.')) {\n return NewTableColumnTypes.DOUBLE;\n }\n\n return NewTableColumnTypes.LONG;\n }\n\n static checkDouble(value: string): string {\n const noCommas = value.replace(/,/g, '');\n if (CsvTypeParser.isNotParsableNumber(noCommas)) {\n return NewTableColumnTypes.STRING;\n }\n\n return NewTableColumnTypes.DOUBLE;\n }\n\n static checkBoolean(value: string): string {\n const lower = value.toLowerCase();\n if (lower === 'true' || lower === 'false') {\n return NewTableColumnTypes.BOOLEAN;\n }\n return NewTableColumnTypes.STRING;\n }\n\n static checkDateTime(value: string): string {\n if (DATE_TIME_REGEX.test(value)) {\n return NewTableColumnTypes.DATE_TIME;\n }\n\n return NewTableColumnTypes.STRING;\n }\n\n static checkLocalTime(value: string): string {\n if (LOCAL_TIME_REGEX.test(value)) {\n return NewTableColumnTypes.LOCAL_TIME;\n }\n\n return NewTableColumnTypes.STRING;\n }\n\n static getTypeFromUnknown(value: string): string {\n const noCommas = value.replace(/,/g, '');\n if (CsvTypeParser.isNotParsableNumber(noCommas)) {\n const lower = value.toLowerCase();\n if (lower === 'true' || lower === 'false') {\n return NewTableColumnTypes.BOOLEAN;\n }\n\n if (DATE_TIME_REGEX.test(value) && value.includes(':')) {\n return NewTableColumnTypes.DATE_TIME;\n }\n\n if (LOCAL_TIME_REGEX.test(value)) {\n return NewTableColumnTypes.LOCAL_TIME;\n }\n\n return NewTableColumnTypes.STRING;\n }\n\n return CsvTypeParser.getNumberType(noCommas);\n }\n\n static getNumberType(value: string): string {\n if (value.includes('.')) {\n return NewTableColumnTypes.DOUBLE;\n }\n\n // Fast length check\n const maxIntLength = value.startsWith('-') ? 11 : 10;\n if (value.length > maxIntLength) {\n return NewTableColumnTypes.LONG;\n }\n\n // Slower parseInt check\n const intValue = parseInt(value, 10);\n if (intValue > MAX_INT || intValue < MIN_INT) {\n return NewTableColumnTypes.LONG;\n }\n\n return NewTableColumnTypes.INTEGER;\n }\n\n constructor(\n onFileCompleted: (types: string[]) => void,\n file: Blob | JSZipObject,\n readHeaders: boolean,\n parentConfig: ParseLocalConfig<unknown, Blob | NodeJS.ReadableStream>,\n nullString: string | null,\n onProgress: (progressValue: number) => boolean,\n onError: (e: unknown) => void,\n totalChunks: number,\n isZip: boolean,\n shouldTrim: boolean\n ) {\n this.onFileCompleted = onFileCompleted;\n this.file = file;\n this.readHeaders = readHeaders;\n this.nullString = nullString;\n this.onProgress = onProgress;\n this.onError = onError;\n this.chunks = 0;\n this.totalChunks = totalChunks;\n this.isZip = isZip;\n this.shouldTrim = shouldTrim;\n this.zipProgress = 0;\n\n this.handleChunk = this.handleChunk.bind(this);\n this.handleComplete = this.handleComplete.bind(this);\n this.handleError = this.handleError.bind(this);\n this.handleNodeUpdate = this.handleNodeUpdate.bind(this);\n\n this.config = {\n ...parentConfig,\n error: this.handleError,\n chunk: this.handleChunk,\n complete: this.handleComplete,\n };\n }\n\n onFileCompleted: (types: string[]) => void;\n\n file: Blob | JSZipObject;\n\n readHeaders: boolean;\n\n nullString: string | null;\n\n onProgress: (progressValue: number) => boolean;\n\n onError: (e: unknown) => void;\n\n types?: string[];\n\n chunks: number;\n\n totalChunks: number;\n\n isZip: boolean;\n\n shouldTrim: boolean;\n\n zipProgress: number;\n\n config: ParseLocalConfig<unknown, Blob | NodeJS.ReadableStream>;\n\n parse(): void {\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 Papa.parse(toParse, this.config);\n }\n\n handleChunk(result: ParseResult<string[]>, parser: Parser): void {\n let { data } = result;\n if (!this.types) {\n if (!data || data.length === 0) {\n parser.abort();\n this.onError('Error parsing CSV: no data in file.');\n return;\n }\n this.types = new Array(data[0].length).fill(UNKNOWN);\n if (this.readHeaders) {\n // If headers are being read from the file, remove them from type analysis\n data = data.slice(1);\n }\n }\n\n assertNotNull(this.types);\n\n const cloneTypes = [...this.types];\n\n data.forEach(row => {\n if (row.length >= cloneTypes.length) {\n for (let i = 0; i < cloneTypes.length; i += 1) {\n cloneTypes[i] = CsvTypeParser.determineType(\n this.shouldTrim ? row[i].trim() : row[i],\n cloneTypes[i],\n this.nullString\n );\n }\n this.types = cloneTypes;\n } else {\n parser.abort();\n this.onError(\n `Error parsing CSV: Insufficient data in row.\\nExpected length ${cloneTypes.length} but found ${row.length}.\\nRow = ${row}`\n );\n }\n });\n\n this.chunks += 1;\n // 50 because the type parsing accounts for 50% of the parsing\n let progress = 0;\n if (this.totalChunks > 0) {\n progress = Math.round((this.chunks / this.totalChunks) * 50);\n } else {\n progress = Math.round(this.zipProgress / 2);\n }\n const isCancelled = this.onProgress(progress);\n if (isCancelled) {\n parser.abort();\n }\n }\n\n handleComplete(results: ParseResult<unknown>): void {\n const { types, onFileCompleted } = this;\n // results is undefined for a succesful parse, but has meta data for an abort\n assertNotNull(types);\n if (!results || !results.meta.aborted) {\n onFileCompleted(\n types.map(type =>\n type === UNKNOWN ? NewTableColumnTypes.STRING : type\n )\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 CsvTypeParser;\n"],"file":"CsvTypeParser.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"NewTableColumnTypes.js","names":["NewTableColumnTypes"],"sources":["../../src/csv/NewTableColumnTypes.ts"],"sourcesContent":["/**\n * Valid column types to be used for a call to newTable.\n */\nclass NewTableColumnTypes {\n static INTEGER = 'int';\n\n static LONG = 'long';\n\n static DOUBLE = 'double';\n\n static BOOLEAN = 'bool';\n\n static STRING = 'string';\n\n static DATE_TIME = 'datetime';\n\n static LOCAL_TIME = 'localtime';\n}\n\nexport default NewTableColumnTypes;\n"],"mappings":";;AAAA;AACA;AACA;AACA,MAAMA,mBAAN,CAA0B;;gBAApBA,mB,aACa,K;;gBADbA,mB,UAGU,M;;gBAHVA,mB,YAKY,Q;;gBALZA,mB,aAOa,M;;gBAPbA,mB,YASY,Q;;gBATZA,mB,eAWe,U;;gBAXfA,mB,gBAagB,W;;AAGtB,eAAeA,mBAAf"}
1
+ {"version":3,"sources":["../../src/csv/NewTableColumnTypes.ts"],"names":["NewTableColumnTypes"],"mappings":";;AAAA;AACA;AACA;AACA,MAAMA,mBAAN,CAA0B;;gBAApBA,mB,aACa,K;;gBADbA,mB,UAGU,M;;gBAHVA,mB,YAKY,Q;;gBALZA,mB,aAOa,M;;gBAPbA,mB,YASY,Q;;gBATZA,mB,eAWe,U;;gBAXfA,mB,gBAagB,W;;AAGtB,eAAeA,mBAAf","sourcesContent":["/**\n * Valid column types to be used for a call to newTable.\n */\nclass NewTableColumnTypes {\n static INTEGER = 'int';\n\n static LONG = 'long';\n\n static DOUBLE = 'double';\n\n static BOOLEAN = 'bool';\n\n static STRING = 'string';\n\n static DATE_TIME = 'datetime';\n\n static LOCAL_TIME = 'localtime';\n}\n\nexport default NewTableColumnTypes;\n"],"file":"NewTableColumnTypes.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"declaration.d.js","names":[],"sources":["../src/declaration.d.ts"],"sourcesContent":["declare module '*.module.scss' {\n const content: Record<string, string>;\n export default content;\n}\n\ndeclare module '*.scss';\n"],"mappings":""}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"declaration.d.js"}
package/dist/index.d.ts CHANGED
@@ -11,5 +11,6 @@ export * from './common';
11
11
  export * from './command-history';
12
12
  export * from './console-history';
13
13
  export { default as LogView } from './log/LogView';
14
+ export { default as HeapUsage } from './HeapUsage';
14
15
  export { default } from './Console';
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
package/dist/index.js CHANGED
@@ -11,5 +11,6 @@ export * from "./common/index.js";
11
11
  export * from "./command-history/index.js";
12
12
  export * from "./console-history/index.js";
13
13
  export { default as LogView } from "./log/LogView.js";
14
+ export { default as HeapUsage } from "./HeapUsage.js";
14
15
  export { default } from "./Console.js";
15
16
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","Console","ConsoleInput","ConsoleMenu","SHORTCUTS","ConsoleStatusBar","MonacoUtils","Editor","ScriptEditor","ScriptEditorUtils","LogView"],"sources":["../src/index.ts"],"sourcesContent":["export { default as Console } from './Console';\nexport { default as ConsoleInput } from './ConsoleInput';\nexport { default as ConsoleMenu } from './ConsoleMenu';\nexport { default as SHORTCUTS } from './ConsoleShortcuts';\nexport { default as ConsoleStatusBar } from './ConsoleStatusBar';\nexport { default as MonacoUtils } from './monaco/MonacoUtils';\nexport { default as Editor } from './notebook/Editor';\nexport { default as ScriptEditor } from './notebook/ScriptEditor';\nexport { default as ScriptEditorUtils } from './notebook/ScriptEditorUtils';\nexport * from './common';\nexport * from './command-history';\nexport * from './console-history';\nexport { default as LogView } from './log/LogView';\n\nexport { default } from './Console';\n"],"mappings":"SAASA,OAAO,IAAIC,O;SACXD,OAAO,IAAIE,Y;SACXF,OAAO,IAAIG,W;SACXH,OAAO,IAAII,S;SACXJ,OAAO,IAAIK,gB;SACXL,OAAO,IAAIM,W;SACXN,OAAO,IAAIO,M;SACXP,OAAO,IAAIQ,Y;SACXR,OAAO,IAAIS,iB;;;;SAIXT,OAAO,IAAIU,O;SAEXV,O"}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["default","Console","ConsoleInput","ConsoleMenu","SHORTCUTS","ConsoleStatusBar","MonacoUtils","Editor","ScriptEditor","ScriptEditorUtils","LogView","HeapUsage"],"mappings":"SAASA,OAAO,IAAIC,O;SACXD,OAAO,IAAIE,Y;SACXF,OAAO,IAAIG,W;SACXH,OAAO,IAAII,S;SACXJ,OAAO,IAAIK,gB;SACXL,OAAO,IAAIM,W;SACXN,OAAO,IAAIO,M;SACXP,OAAO,IAAIQ,Y;SACXR,OAAO,IAAIS,iB;;;;SAIXT,OAAO,IAAIU,O;SACXV,OAAO,IAAIW,S;SAEXX,O","sourcesContent":["export { default as Console } from './Console';\nexport { default as ConsoleInput } from './ConsoleInput';\nexport { default as ConsoleMenu } from './ConsoleMenu';\nexport { default as SHORTCUTS } from './ConsoleShortcuts';\nexport { default as ConsoleStatusBar } from './ConsoleStatusBar';\nexport { default as MonacoUtils } from './monaco/MonacoUtils';\nexport { default as Editor } from './notebook/Editor';\nexport { default as ScriptEditor } from './notebook/ScriptEditor';\nexport { default as ScriptEditorUtils } from './notebook/ScriptEditorUtils';\nexport * from './common';\nexport * from './command-history';\nexport * from './console-history';\nexport { default as LogView } from './log/LogView';\nexport { default as HeapUsage } from './HeapUsage';\n\nexport { default } from './Console';\n"],"file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"LogLevel.js","names":["Object","freeze","FATAL","STDERR","ERROR","WARN","STDOUT","INFO","DEBUG","TRACE"],"sources":["../../src/log/LogLevel.ts"],"sourcesContent":["export default Object.freeze({\n FATAL: 'FATAL',\n STDERR: 'STDERR',\n ERROR: 'ERROR',\n WARN: 'WARN',\n STDOUT: 'STDOUT',\n INFO: 'INFO',\n DEBUG: 'DEBUG',\n TRACE: 'TRACE',\n});\n"],"mappings":"AAAA,eAAeA,MAAM,CAACC,MAAP,CAAc;EAC3BC,KAAK,EAAE,OADoB;EAE3BC,MAAM,EAAE,QAFmB;EAG3BC,KAAK,EAAE,OAHoB;EAI3BC,IAAI,EAAE,MAJqB;EAK3BC,MAAM,EAAE,QALmB;EAM3BC,IAAI,EAAE,MANqB;EAO3BC,KAAK,EAAE,OAPoB;EAQ3BC,KAAK,EAAE;AARoB,CAAd,CAAf"}
1
+ {"version":3,"sources":["../../src/log/LogLevel.ts"],"names":["Object","freeze","FATAL","STDERR","ERROR","WARN","STDOUT","INFO","DEBUG","TRACE"],"mappings":"AAAA,eAAeA,MAAM,CAACC,MAAP,CAAc;AAC3BC,EAAAA,KAAK,EAAE,OADoB;AAE3BC,EAAAA,MAAM,EAAE,QAFmB;AAG3BC,EAAAA,KAAK,EAAE,OAHoB;AAI3BC,EAAAA,IAAI,EAAE,MAJqB;AAK3BC,EAAAA,MAAM,EAAE,QALmB;AAM3BC,EAAAA,IAAI,EAAE,MANqB;AAO3BC,EAAAA,KAAK,EAAE,OAPoB;AAQ3BC,EAAAA,KAAK,EAAE;AARoB,CAAd,CAAf","sourcesContent":["export default Object.freeze({\n FATAL: 'FATAL',\n STDERR: 'STDERR',\n ERROR: 'ERROR',\n WARN: 'WARN',\n STDOUT: 'STDOUT',\n INFO: 'INFO',\n DEBUG: 'DEBUG',\n TRACE: 'TRACE',\n});\n"],"file":"LogLevel.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"LogLevelMenuItem.js","names":["React","PureComponent","classNames","UISwitch","LogLevelMenuItem","constructor","props","handleSwitchClick","bind","logLevel","onClick","render","on"],"sources":["../../src/log/LogLevelMenuItem.tsx"],"sourcesContent":["// Port of https://github.com/react-bootstrap/react-bootstrap/blob/master/src/Collapse.js\nimport React, { PureComponent, ReactElement } from 'react';\nimport classNames from 'classnames';\nimport { UISwitch } from '@deephaven/components';\nimport './LogLevelMenuItem.scss';\n\ninterface LogLevelMenuItemProps {\n logLevel: string;\n on: boolean;\n onClick: (logLevel: string) => void;\n}\n\nclass LogLevelMenuItem extends PureComponent<\n LogLevelMenuItemProps,\n Record<string, never>\n> {\n constructor(props: LogLevelMenuItemProps) {\n super(props);\n\n this.handleSwitchClick = this.handleSwitchClick.bind(this);\n }\n\n handleSwitchClick(): void {\n const { logLevel, onClick } = this.props;\n onClick(logLevel);\n }\n\n render(): ReactElement {\n const { logLevel, on } = this.props;\n return (\n <div className={classNames('log-level-menu-item', logLevel)}>\n <UISwitch on={on} onClick={this.handleSwitchClick} />\n {logLevel}\n </div>\n );\n }\n}\n\nexport default LogLevelMenuItem;\n"],"mappings":"AAAA;AACA,OAAOA,KAAP,IAAgBC,aAAhB,QAAmD,OAAnD;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,QAAT,QAAyB,uBAAzB;;;AASA,MAAMC,gBAAN,SAA+BH,aAA/B,CAGE;EACAI,WAAW,CAACC,KAAD,EAA+B;IACxC,MAAMA,KAAN;IAEA,KAAKC,iBAAL,GAAyB,KAAKA,iBAAL,CAAuBC,IAAvB,CAA4B,IAA5B,CAAzB;EACD;;EAEDD,iBAAiB,GAAS;IACxB,IAAM;MAAEE,QAAF;MAAYC;IAAZ,IAAwB,KAAKJ,KAAnC;IACAI,OAAO,CAACD,QAAD,CAAP;EACD;;EAEDE,MAAM,GAAiB;IACrB,IAAM;MAAEF,QAAF;MAAYG;IAAZ,IAAmB,KAAKN,KAA9B;IACA,oBACE;MAAK,SAAS,EAAEJ,UAAU,CAAC,qBAAD,EAAwBO,QAAxB;IAA1B,gBACE,oBAAC,QAAD;MAAU,EAAE,EAAEG,EAAd;MAAkB,OAAO,EAAE,KAAKL;IAAhC,EADF,EAEGE,QAFH,CADF;EAMD;;AApBD;;AAuBF,eAAeL,gBAAf"}
1
+ {"version":3,"sources":["../../src/log/LogLevelMenuItem.tsx"],"names":["React","PureComponent","classNames","UISwitch","LogLevelMenuItem","constructor","props","handleSwitchClick","bind","logLevel","onClick","render","on"],"mappings":"AAAA;AACA,OAAOA,KAAP,IAAgBC,aAAhB,QAAmD,OAAnD;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,QAAT,QAAyB,uBAAzB;;;AASA,MAAMC,gBAAN,SAA+BH,aAA/B,CAGE;AACAI,EAAAA,WAAW,CAACC,KAAD,EAA+B;AACxC,UAAMA,KAAN;AAEA,SAAKC,iBAAL,GAAyB,KAAKA,iBAAL,CAAuBC,IAAvB,CAA4B,IAA5B,CAAzB;AACD;;AAEDD,EAAAA,iBAAiB,GAAS;AACxB,QAAM;AAAEE,MAAAA,QAAF;AAAYC,MAAAA;AAAZ,QAAwB,KAAKJ,KAAnC;AACAI,IAAAA,OAAO,CAACD,QAAD,CAAP;AACD;;AAEDE,EAAAA,MAAM,GAAiB;AACrB,QAAM;AAAEF,MAAAA,QAAF;AAAYG,MAAAA;AAAZ,QAAmB,KAAKN,KAA9B;AACA,wBACE;AAAK,MAAA,SAAS,EAAEJ,UAAU,CAAC,qBAAD,EAAwBO,QAAxB;AAA1B,oBACE,oBAAC,QAAD;AAAU,MAAA,EAAE,EAAEG,EAAd;AAAkB,MAAA,OAAO,EAAE,KAAKL;AAAhC,MADF,EAEGE,QAFH,CADF;AAMD;;AApBD;;AAuBF,eAAeL,gBAAf","sourcesContent":["// Port of https://github.com/react-bootstrap/react-bootstrap/blob/master/src/Collapse.js\nimport React, { PureComponent, ReactElement } from 'react';\nimport classNames from 'classnames';\nimport { UISwitch } from '@deephaven/components';\nimport './LogLevelMenuItem.scss';\n\ninterface LogLevelMenuItemProps {\n logLevel: string;\n on: boolean;\n onClick: (logLevel: string) => void;\n}\n\nclass LogLevelMenuItem extends PureComponent<\n LogLevelMenuItemProps,\n Record<string, never>\n> {\n constructor(props: LogLevelMenuItemProps) {\n super(props);\n\n this.handleSwitchClick = this.handleSwitchClick.bind(this);\n }\n\n handleSwitchClick(): void {\n const { logLevel, onClick } = this.props;\n onClick(logLevel);\n }\n\n render(): ReactElement {\n const { logLevel, on } = this.props;\n return (\n <div className={classNames('log-level-menu-item', logLevel)}>\n <UISwitch on={on} onClick={this.handleSwitchClick} />\n {logLevel}\n </div>\n );\n }\n}\n\nexport default LogLevelMenuItem;\n"],"file":"LogLevelMenuItem.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"LogView.js","names":["React","PureComponent","FontAwesomeIcon","DropdownMenu","Tooltip","vsGear","dhTrashUndo","assertNotNull","monaco","ConsoleUtils","LogLevel","LogLevelMenuItem","LogView","getLogText","logItem","date","Date","micros","timestamp","formatTimestamp","logLevel","message","constructor","props","handleClearClick","bind","handleFlushTimeout","handleLogMessage","handleMenuItemClick","handleResetClick","handleResize","handleToggleAllClick","logLevelMenuItems","editorContainer","bufferedMessages","messages","state","shownLogLevels","componentDidMount","resetLogLevels","initMonaco","startListening","window","addEventListener","componentDidUpdate","prevProps","prevState","updateDimensions","refreshLogText","session","stopListening","clearLogs","componentWillUnmount","stopFlushTimer","destroyMonaco","removeEventListener","getMenuActions","actions","push","menuElement","group","order","i","AllLogLevels","on","title","element","length","isEnabled","DefaultLogLevels","indexOf","setState","cancelListener","onLogMessage","undefined","editor","create","copyWithSyntaxHighlighting","fixedOverflowWidgets","folding","fontFamily","glyphMargin","language","lineDecorationsWidth","lineNumbersMinChars","minimap","enabled","readOnly","renderLineHighlight","scrollBeyondLastLine","value","wordWrap","addCommand","KeyCode","Escape","KeyMod","Shift","position","getPosition","setPosition","dispose","triggerFindWidget","focus","trigger","toggleAll","isAllEnabled","updatedLogLevels","toggleLogLevel","updateLogLevels","appendLogText","text","model","getModel","line","getLineCount","column","getLineLength","isBottomVisible","edits","range","startLineNumber","startColumn","endLineNumber","endColumn","forceMoveMarkers","applyEdits","lineCount","revealLine","truncateLogIfNecessary","logText","charAt","trimRight","setValue","maxLogSize","splice","truncateSize","scrollToBottom","isLineVisible","visibleRanges","getVisibleRanges","isLogItemVisible","flush","queue","flushTimer","setTimeout","bufferTimeout","clearTimeout","layout","render","popperOptions","placement","STDOUT","ERROR","FATAL","STDERR","WARN","INFO","DEBUG","TRACE"],"sources":["../../src/log/LogView.tsx"],"sourcesContent":["import React, { PureComponent, ReactElement } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { DropdownActions, DropdownMenu, Tooltip } from '@deephaven/components';\nimport { vsGear, dhTrashUndo } from '@deephaven/icons';\nimport { assertNotNull } from '@deephaven/utils';\nimport { IdeSession, LogItem } from '@deephaven/jsapi-shim';\nimport { Placement } from 'popper.js';\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';\nimport ConsoleUtils from '../common/ConsoleUtils';\nimport LogLevel from './LogLevel';\nimport './LogView.scss';\nimport LogLevelMenuItem from './LogLevelMenuItem';\n\ninterface LogViewProps {\n session: IdeSession;\n}\n\ninterface LogViewState {\n shownLogLevels: Record<string, boolean>;\n}\n/**\n * Log view contents. Uses a monaco editor to display/search the contents of the log.\n */\nclass LogView extends PureComponent<LogViewProps, LogViewState> {\n static DefaultLogLevels = [\n LogLevel.STDOUT,\n LogLevel.ERROR,\n LogLevel.FATAL,\n LogLevel.STDERR,\n LogLevel.WARN,\n ];\n\n static AllLogLevels = [\n LogLevel.INFO,\n LogLevel.STDOUT,\n LogLevel.ERROR,\n LogLevel.FATAL,\n LogLevel.STDERR,\n LogLevel.WARN,\n LogLevel.DEBUG,\n LogLevel.TRACE,\n ];\n\n /** ms to buffer log messages before processing them */\n static bufferTimeout = 16;\n\n /** Maximum number of messages to store in the log */\n static maxLogSize = 131072;\n\n static truncateSize = 65536;\n\n static getLogText(logItem: LogItem): string {\n const date = new Date(logItem.micros / 1000);\n const timestamp = ConsoleUtils.formatTimestamp(date);\n return `${timestamp} ${logItem.logLevel} ${logItem.message}`;\n }\n\n constructor(props: LogViewProps) {\n super(props);\n\n this.handleClearClick = this.handleClearClick.bind(this);\n this.handleFlushTimeout = this.handleFlushTimeout.bind(this);\n this.handleLogMessage = this.handleLogMessage.bind(this);\n this.handleMenuItemClick = this.handleMenuItemClick.bind(this);\n this.handleResetClick = this.handleResetClick.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.handleToggleAllClick = this.handleToggleAllClick.bind(this);\n\n this.logLevelMenuItems = {};\n\n this.editorContainer = null;\n\n this.bufferedMessages = [];\n this.messages = [];\n\n this.state = {\n shownLogLevels: {},\n };\n }\n\n componentDidMount(): void {\n this.resetLogLevels();\n this.initMonaco();\n this.startListening();\n\n window.addEventListener('resize', this.handleResize);\n }\n\n componentDidUpdate(prevProps: LogViewProps, prevState: LogViewState): void {\n this.updateDimensions();\n\n const { shownLogLevels } = this.state;\n if (prevState.shownLogLevels !== shownLogLevels) {\n this.refreshLogText();\n }\n\n const { session } = this.props;\n if (prevProps.session !== session) {\n this.stopListening();\n this.startListening();\n // clear logs when starting a new console\n this.clearLogs();\n }\n }\n\n componentWillUnmount(): void {\n this.stopFlushTimer();\n this.stopListening();\n this.destroyMonaco();\n\n window.removeEventListener('resize', this.handleResize);\n }\n\n cancelListener?: () => void | null;\n\n editor?: monaco.editor.IStandaloneCodeEditor;\n\n editorContainer: HTMLDivElement | null;\n\n logLevelMenuItems: Record<string, LogLevelMenuItem>;\n\n flushTimer?: ReturnType<typeof setTimeout>;\n\n bufferedMessages: LogItem[];\n\n messages: LogItem[];\n\n getMenuActions(shownLogLevels: Record<string, boolean>): DropdownActions {\n const actions = [];\n\n actions.push({\n menuElement: (\n <div className=\"log-level-menu-title\">Display Log Levels</div>\n ),\n group: 1,\n order: 10,\n });\n\n for (let i = 0; i < LogView.AllLogLevels.length; i += 1) {\n const logLevel = LogView.AllLogLevels[i];\n const on =\n shownLogLevels[logLevel] != null ? shownLogLevels[logLevel] : false;\n actions.push({\n title: logLevel,\n group: 1,\n order: i + 100,\n\n menuElement: (\n <LogLevelMenuItem\n logLevel={logLevel}\n on={on}\n onClick={this.handleMenuItemClick}\n ref={element => {\n if (element != null) {\n this.logLevelMenuItems[logLevel] = element;\n }\n }}\n />\n ),\n });\n }\n\n actions.push({\n group: 1,\n order: 1000,\n menuElement: (\n <div className=\"log-level-menu-controls\">\n <button\n type=\"button\"\n className=\"btn btn-link log-level-toggle-all\"\n onClick={this.handleToggleAllClick}\n >\n Toggle All\n </button>\n <button\n type=\"button\"\n className=\"btn btn-link\"\n onClick={this.handleResetClick}\n >\n Reset\n </button>\n </div>\n ),\n });\n\n return actions;\n }\n\n resetLogLevels(): void {\n const shownLogLevels: Record<string, boolean> = {};\n for (let i = 0; i < LogView.AllLogLevels.length; i += 1) {\n const logLevel = LogView.AllLogLevels[i];\n const isEnabled = LogView.DefaultLogLevels.indexOf(logLevel) >= 0;\n shownLogLevels[logLevel] = isEnabled;\n }\n\n this.setState({ shownLogLevels });\n }\n\n startListening(): void {\n const { session } = this.props;\n this.cancelListener = session.onLogMessage(this.handleLogMessage);\n }\n\n stopListening(): void {\n if (this.cancelListener != null) {\n this.cancelListener();\n this.cancelListener = undefined;\n }\n }\n\n initMonaco(): void {\n assertNotNull(this.editorContainer);\n this.editor = monaco.editor.create(this.editorContainer, {\n copyWithSyntaxHighlighting: false,\n fixedOverflowWidgets: true,\n folding: false,\n fontFamily: 'Fira Mono',\n glyphMargin: false,\n language: 'log',\n lineDecorationsWidth: 0,\n // I commented this out since '' is not a valid parameter for line Numbers\n // lineNumbers: '',\n lineNumbersMinChars: 0,\n minimap: { enabled: false },\n readOnly: true,\n renderLineHighlight: 'none',\n scrollBeyondLastLine: false,\n value: '',\n wordWrap: 'on',\n });\n\n // When find widget is open, escape key closes it.\n // Instead, capture it and do nothing. Same for shift-escape.\n this.editor.addCommand(monaco.KeyCode.Escape, () => undefined);\n this.editor.addCommand(\n // eslint-disable-next-line no-bitwise\n monaco.KeyMod.Shift | monaco.KeyCode.Escape,\n () => undefined\n );\n\n // Restore regular escape to clear selection, when editorText has focus.\n this.editor.addCommand(\n monaco.KeyCode.Escape,\n () => {\n const position = this.editor?.getPosition();\n assertNotNull(position);\n this.editor?.setPosition(position);\n },\n 'findWidgetVisible && editorTextFocus'\n );\n\n this.editor.addCommand(\n // eslint-disable-next-line no-bitwise\n monaco.KeyMod.Shift | monaco.KeyCode.Escape,\n () => {\n const position = this.editor?.getPosition();\n assertNotNull(position);\n this.editor?.setPosition(position);\n },\n 'findWidgetVisible && editorTextFocus'\n );\n }\n\n destroyMonaco(): void {\n if (this.editor) {\n this.editor.dispose();\n this.editor = undefined;\n }\n }\n\n triggerFindWidget(): void {\n // The actions.find action can no longer be triggered when the editor is not in focus, with monaco 0.22.x.\n // As a workaround, just focus the editor before triggering the action\n // https://github.com/microsoft/monaco-editor/issues/2355\n this.editor?.focus();\n this.editor?.trigger('keyboard', 'actions.find', undefined);\n }\n\n toggleAll(): void {\n const { shownLogLevels } = this.state;\n let isAllEnabled = true;\n for (let i = 0; i < LogView.AllLogLevels.length; i += 1) {\n const logLevel = LogView.AllLogLevels[i];\n if (!shownLogLevels[logLevel]) {\n isAllEnabled = false;\n break;\n }\n }\n\n if (isAllEnabled) {\n this.setState({ shownLogLevels: {} });\n } else {\n const updatedLogLevels: Record<string, boolean> = {};\n for (let i = 0; i < LogView.AllLogLevels.length; i += 1) {\n const logLevel = LogView.AllLogLevels[i];\n updatedLogLevels[logLevel] = true;\n }\n this.setState({ shownLogLevels: updatedLogLevels });\n }\n }\n\n toggleLogLevel(logLevel: string): void {\n const { shownLogLevels } = this.state;\n const isEnabled = shownLogLevels[logLevel];\n const updatedLogLevels: Record<string, boolean> = {};\n updatedLogLevels[logLevel] = !isEnabled;\n this.updateLogLevels(updatedLogLevels);\n }\n\n updateLogLevels(updatedLogLevels: Record<string, boolean>): void {\n let { shownLogLevels } = this.state;\n shownLogLevels = { ...shownLogLevels, ...updatedLogLevels };\n this.setState({ shownLogLevels });\n }\n\n appendLogText(text: string): void {\n if (!this.editor) {\n return;\n }\n\n const model = this.editor.getModel();\n let line = model?.getLineCount();\n assertNotNull(line);\n let column = model?.getLineLength(line);\n assertNotNull(column);\n const isBottomVisible = this.isBottomVisible();\n\n const edits = [];\n if (column > 0) {\n edits.push({\n range: {\n startLineNumber: line,\n startColumn: column + 1,\n endLineNumber: line,\n endColumn: column + 1,\n },\n text: '\\n',\n forceMoveMarkers: true,\n });\n line += 1;\n column = 0;\n }\n\n edits.push({\n range: {\n startLineNumber: line,\n startColumn: column,\n endLineNumber: line,\n endColumn: column,\n },\n text,\n forceMoveMarkers: true,\n });\n\n model?.applyEdits(edits);\n\n if (isBottomVisible) {\n const lineCount = model?.getLineCount();\n assertNotNull(lineCount);\n this.editor.revealLine(lineCount, 1);\n }\n }\n\n /**\n * Refresh the contents of the log component with the updated filter text\n */\n refreshLogText(): void {\n if (!this.editor) {\n return;\n }\n\n this.truncateLogIfNecessary();\n\n const { shownLogLevels } = this.state;\n const isBottomVisible = this.isBottomVisible();\n\n let text = '';\n for (let i = 0; i < this.messages.length; i += 1) {\n const message = this.messages[i];\n if (shownLogLevels[message.logLevel]) {\n const logText = LogView.getLogText(message);\n if (logText.length > 0) {\n text += logText;\n if (logText.charAt(logText.length - 1) !== '\\n') {\n text += '\\n';\n }\n }\n }\n }\n text = text.trimRight();\n\n this.editor.setValue(text);\n\n if (isBottomVisible) {\n const line = this.editor.getModel()?.getLineCount();\n assertNotNull(line);\n this.editor.revealLine(line, 1);\n }\n\n this.stopFlushTimer();\n this.bufferedMessages = [];\n }\n\n truncateLogIfNecessary(): void {\n if (this.messages.length > LogView.maxLogSize) {\n this.messages = this.messages.splice(\n this.messages.length - LogView.truncateSize\n );\n }\n }\n\n scrollToBottom(): void {\n if (!this.editor) {\n return;\n }\n\n const line = this.editor?.getModel?.()?.getLineCount();\n assertNotNull(line);\n this.editor.revealLine(line, 1);\n }\n\n isBottomVisible(): boolean {\n if (!this.editor) {\n return true;\n }\n\n const model = this.editor.getModel();\n const line = model?.getLineCount();\n\n assertNotNull(line);\n return this.isLineVisible(line);\n }\n\n isLineVisible(line: number): boolean {\n const visibleRanges = this.editor?.getVisibleRanges();\n if (visibleRanges == null || visibleRanges.length === 0) {\n return false;\n }\n\n for (let i = 0; i < visibleRanges.length; i += 1) {\n const range = visibleRanges[i];\n if (range.startLineNumber <= line && line <= range.endLineNumber) {\n return true;\n }\n }\n\n return false;\n }\n\n /** Checks if the given log message is visible with the current filters */\n isLogItemVisible(message: LogItem): boolean {\n const { shownLogLevels } = this.state;\n return shownLogLevels[message.logLevel];\n }\n\n flush(): void {\n let text = '';\n for (let i = 0; i < this.bufferedMessages.length; i += 1) {\n const message = this.bufferedMessages[i];\n const logText = LogView.getLogText(message);\n text += logText;\n if (logText.charAt(logText.length - 1) !== '\\n') {\n text += '\\n';\n }\n }\n\n this.bufferedMessages = [];\n\n this.appendLogText(text);\n }\n\n queue(message: LogItem): void {\n this.bufferedMessages.push(message);\n if (this.bufferedMessages.length === 1) {\n this.flushTimer = setTimeout(\n this.handleFlushTimeout,\n LogView.bufferTimeout\n );\n }\n }\n\n stopFlushTimer(): void {\n if (this.flushTimer) {\n clearTimeout(this.flushTimer);\n this.flushTimer = undefined;\n }\n }\n\n updateDimensions(): void {\n if (this.editor) {\n this.editor.layout();\n }\n }\n\n handleClearClick(): void {\n this.clearLogs();\n }\n\n clearLogs(): void {\n this.messages = [];\n this.refreshLogText();\n }\n\n handleFlushTimeout(): void {\n this.stopFlushTimer();\n this.flush();\n }\n\n handleLogMessage(message: LogItem): void {\n this.messages.push(message);\n\n if (this.editor && this.isLogItemVisible(message)) {\n this.queue(message);\n }\n }\n\n handleMenuItemClick(logLevel: string): void {\n this.toggleLogLevel(logLevel);\n }\n\n handleResetClick(): void {\n this.resetLogLevels();\n }\n\n handleResize(): void {\n this.updateDimensions();\n }\n\n handleToggleAllClick(): void {\n this.toggleAll();\n }\n\n render(): ReactElement {\n const popperOptions = { placement: 'bottom-end' as Placement };\n const { shownLogLevels } = this.state;\n const actions = this.getMenuActions(shownLogLevels);\n return (\n <div className=\"log-pane h-100 w-100\">\n <div className=\"log-pane-menu\">\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon btn-clear-logs\"\n onClick={this.handleClearClick}\n >\n <FontAwesomeIcon icon={dhTrashUndo} />\n <Tooltip>Clear log</Tooltip>\n </button>\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon btn-overflow\"\n >\n <FontAwesomeIcon icon={vsGear} />\n <Tooltip>Log Settings</Tooltip>\n <DropdownMenu\n actions={actions}\n popperClassName=\"log-level-menu-popper\"\n popperOptions={popperOptions}\n />\n </button>\n </div>\n <div\n className=\"log-pane-editor h-100 w-100\"\n ref={editorContainer => {\n this.editorContainer = editorContainer;\n }}\n />\n </div>\n );\n }\n}\n\nexport default LogView;\n"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/log/LogView.tsx"],"names":["React","PureComponent","FontAwesomeIcon","DropdownMenu","Tooltip","vsGear","dhTrashUndo","assertNotNull","monaco","ConsoleUtils","LogLevel","LogLevelMenuItem","LogView","getLogText","logItem","date","Date","micros","timestamp","formatTimestamp","logLevel","message","constructor","props","handleClearClick","bind","handleFlushTimeout","handleLogMessage","handleMenuItemClick","handleResetClick","handleResize","handleToggleAllClick","logLevelMenuItems","editorContainer","bufferedMessages","messages","state","shownLogLevels","componentDidMount","resetLogLevels","initMonaco","startListening","window","addEventListener","componentDidUpdate","prevProps","prevState","updateDimensions","refreshLogText","session","stopListening","clearLogs","componentWillUnmount","stopFlushTimer","destroyMonaco","removeEventListener","getMenuActions","actions","push","menuElement","group","order","i","AllLogLevels","on","title","element","length","isEnabled","DefaultLogLevels","indexOf","setState","cancelListener","onLogMessage","undefined","editor","create","copyWithSyntaxHighlighting","fixedOverflowWidgets","folding","fontFamily","glyphMargin","language","lineDecorationsWidth","lineNumbersMinChars","minimap","enabled","readOnly","renderLineHighlight","scrollBeyondLastLine","value","wordWrap","addCommand","KeyCode","Escape","KeyMod","Shift","position","getPosition","setPosition","dispose","triggerFindWidget","focus","trigger","toggleAll","isAllEnabled","updatedLogLevels","toggleLogLevel","updateLogLevels","appendLogText","text","model","getModel","line","getLineCount","column","getLineLength","isBottomVisible","edits","range","startLineNumber","startColumn","endLineNumber","endColumn","forceMoveMarkers","applyEdits","lineCount","revealLine","truncateLogIfNecessary","logText","charAt","trimRight","setValue","maxLogSize","splice","truncateSize","scrollToBottom","isLineVisible","visibleRanges","getVisibleRanges","isLogItemVisible","flush","queue","flushTimer","setTimeout","bufferTimeout","clearTimeout","layout","render","popperOptions","placement","STDOUT","ERROR","FATAL","STDERR","WARN","INFO","DEBUG","TRACE"],"mappings":"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","sourcesContent":["import React, { PureComponent, ReactElement } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { DropdownActions, DropdownMenu, Tooltip } from '@deephaven/components';\nimport { vsGear, dhTrashUndo } from '@deephaven/icons';\nimport { assertNotNull } from '@deephaven/utils';\nimport { IdeSession, LogItem } from '@deephaven/jsapi-shim';\nimport { Placement } from 'popper.js';\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';\nimport ConsoleUtils from '../common/ConsoleUtils';\nimport LogLevel from './LogLevel';\nimport './LogView.scss';\nimport LogLevelMenuItem from './LogLevelMenuItem';\n\ninterface LogViewProps {\n session: IdeSession;\n}\n\ninterface LogViewState {\n shownLogLevels: Record<string, boolean>;\n}\n/**\n * Log view contents. Uses a monaco editor to display/search the contents of the log.\n */\nclass LogView extends PureComponent<LogViewProps, LogViewState> {\n static DefaultLogLevels = [\n LogLevel.STDOUT,\n LogLevel.ERROR,\n LogLevel.FATAL,\n LogLevel.STDERR,\n LogLevel.WARN,\n ];\n\n static AllLogLevels = [\n LogLevel.INFO,\n LogLevel.STDOUT,\n LogLevel.ERROR,\n LogLevel.FATAL,\n LogLevel.STDERR,\n LogLevel.WARN,\n LogLevel.DEBUG,\n LogLevel.TRACE,\n ];\n\n /** ms to buffer log messages before processing them */\n static bufferTimeout = 16;\n\n /** Maximum number of messages to store in the log */\n static maxLogSize = 131072;\n\n static truncateSize = 65536;\n\n static getLogText(logItem: LogItem): string {\n const date = new Date(logItem.micros / 1000);\n const timestamp = ConsoleUtils.formatTimestamp(date);\n return `${timestamp} ${logItem.logLevel} ${logItem.message}`;\n }\n\n constructor(props: LogViewProps) {\n super(props);\n\n this.handleClearClick = this.handleClearClick.bind(this);\n this.handleFlushTimeout = this.handleFlushTimeout.bind(this);\n this.handleLogMessage = this.handleLogMessage.bind(this);\n this.handleMenuItemClick = this.handleMenuItemClick.bind(this);\n this.handleResetClick = this.handleResetClick.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.handleToggleAllClick = this.handleToggleAllClick.bind(this);\n\n this.logLevelMenuItems = {};\n\n this.editorContainer = null;\n\n this.bufferedMessages = [];\n this.messages = [];\n\n this.state = {\n shownLogLevels: {},\n };\n }\n\n componentDidMount(): void {\n this.resetLogLevels();\n this.initMonaco();\n this.startListening();\n\n window.addEventListener('resize', this.handleResize);\n }\n\n componentDidUpdate(prevProps: LogViewProps, prevState: LogViewState): void {\n this.updateDimensions();\n\n const { shownLogLevels } = this.state;\n if (prevState.shownLogLevels !== shownLogLevels) {\n this.refreshLogText();\n }\n\n const { session } = this.props;\n if (prevProps.session !== session) {\n this.stopListening();\n this.startListening();\n // clear logs when starting a new console\n this.clearLogs();\n }\n }\n\n componentWillUnmount(): void {\n this.stopFlushTimer();\n this.stopListening();\n this.destroyMonaco();\n\n window.removeEventListener('resize', this.handleResize);\n }\n\n cancelListener?: () => void | null;\n\n editor?: monaco.editor.IStandaloneCodeEditor;\n\n editorContainer: HTMLDivElement | null;\n\n logLevelMenuItems: Record<string, LogLevelMenuItem>;\n\n flushTimer?: ReturnType<typeof setTimeout>;\n\n bufferedMessages: LogItem[];\n\n messages: LogItem[];\n\n getMenuActions(shownLogLevels: Record<string, boolean>): DropdownActions {\n const actions = [];\n\n actions.push({\n menuElement: (\n <div className=\"log-level-menu-title\">Display Log Levels</div>\n ),\n group: 1,\n order: 10,\n });\n\n for (let i = 0; i < LogView.AllLogLevels.length; i += 1) {\n const logLevel = LogView.AllLogLevels[i];\n const on =\n shownLogLevels[logLevel] != null ? shownLogLevels[logLevel] : false;\n actions.push({\n title: logLevel,\n group: 1,\n order: i + 100,\n\n menuElement: (\n <LogLevelMenuItem\n logLevel={logLevel}\n on={on}\n onClick={this.handleMenuItemClick}\n ref={element => {\n if (element != null) {\n this.logLevelMenuItems[logLevel] = element;\n }\n }}\n />\n ),\n });\n }\n\n actions.push({\n group: 1,\n order: 1000,\n menuElement: (\n <div className=\"log-level-menu-controls\">\n <button\n type=\"button\"\n className=\"btn btn-link log-level-toggle-all\"\n onClick={this.handleToggleAllClick}\n >\n Toggle All\n </button>\n <button\n type=\"button\"\n className=\"btn btn-link\"\n onClick={this.handleResetClick}\n >\n Reset\n </button>\n </div>\n ),\n });\n\n return actions;\n }\n\n resetLogLevels(): void {\n const shownLogLevels: Record<string, boolean> = {};\n for (let i = 0; i < LogView.AllLogLevels.length; i += 1) {\n const logLevel = LogView.AllLogLevels[i];\n const isEnabled = LogView.DefaultLogLevels.indexOf(logLevel) >= 0;\n shownLogLevels[logLevel] = isEnabled;\n }\n\n this.setState({ shownLogLevels });\n }\n\n startListening(): void {\n const { session } = this.props;\n this.cancelListener = session.onLogMessage(this.handleLogMessage);\n }\n\n stopListening(): void {\n if (this.cancelListener != null) {\n this.cancelListener();\n this.cancelListener = undefined;\n }\n }\n\n initMonaco(): void {\n assertNotNull(this.editorContainer);\n this.editor = monaco.editor.create(this.editorContainer, {\n copyWithSyntaxHighlighting: false,\n fixedOverflowWidgets: true,\n folding: false,\n fontFamily: 'Fira Mono',\n glyphMargin: false,\n language: 'log',\n lineDecorationsWidth: 0,\n // I commented this out since '' is not a valid parameter for line Numbers\n // lineNumbers: '',\n lineNumbersMinChars: 0,\n minimap: { enabled: false },\n readOnly: true,\n renderLineHighlight: 'none',\n scrollBeyondLastLine: false,\n value: '',\n wordWrap: 'on',\n });\n\n // When find widget is open, escape key closes it.\n // Instead, capture it and do nothing. Same for shift-escape.\n this.editor.addCommand(monaco.KeyCode.Escape, () => undefined);\n this.editor.addCommand(\n // eslint-disable-next-line no-bitwise\n monaco.KeyMod.Shift | monaco.KeyCode.Escape,\n () => undefined\n );\n\n // Restore regular escape to clear selection, when editorText has focus.\n this.editor.addCommand(\n monaco.KeyCode.Escape,\n () => {\n const position = this.editor?.getPosition();\n assertNotNull(position);\n this.editor?.setPosition(position);\n },\n 'findWidgetVisible && editorTextFocus'\n );\n\n this.editor.addCommand(\n // eslint-disable-next-line no-bitwise\n monaco.KeyMod.Shift | monaco.KeyCode.Escape,\n () => {\n const position = this.editor?.getPosition();\n assertNotNull(position);\n this.editor?.setPosition(position);\n },\n 'findWidgetVisible && editorTextFocus'\n );\n }\n\n destroyMonaco(): void {\n if (this.editor) {\n this.editor.dispose();\n this.editor = undefined;\n }\n }\n\n triggerFindWidget(): void {\n // The actions.find action can no longer be triggered when the editor is not in focus, with monaco 0.22.x.\n // As a workaround, just focus the editor before triggering the action\n // https://github.com/microsoft/monaco-editor/issues/2355\n this.editor?.focus();\n this.editor?.trigger('keyboard', 'actions.find', undefined);\n }\n\n toggleAll(): void {\n const { shownLogLevels } = this.state;\n let isAllEnabled = true;\n for (let i = 0; i < LogView.AllLogLevels.length; i += 1) {\n const logLevel = LogView.AllLogLevels[i];\n if (!shownLogLevels[logLevel]) {\n isAllEnabled = false;\n break;\n }\n }\n\n if (isAllEnabled) {\n this.setState({ shownLogLevels: {} });\n } else {\n const updatedLogLevels: Record<string, boolean> = {};\n for (let i = 0; i < LogView.AllLogLevels.length; i += 1) {\n const logLevel = LogView.AllLogLevels[i];\n updatedLogLevels[logLevel] = true;\n }\n this.setState({ shownLogLevels: updatedLogLevels });\n }\n }\n\n toggleLogLevel(logLevel: string): void {\n const { shownLogLevels } = this.state;\n const isEnabled = shownLogLevels[logLevel];\n const updatedLogLevels: Record<string, boolean> = {};\n updatedLogLevels[logLevel] = !isEnabled;\n this.updateLogLevels(updatedLogLevels);\n }\n\n updateLogLevels(updatedLogLevels: Record<string, boolean>): void {\n let { shownLogLevels } = this.state;\n shownLogLevels = { ...shownLogLevels, ...updatedLogLevels };\n this.setState({ shownLogLevels });\n }\n\n appendLogText(text: string): void {\n if (!this.editor) {\n return;\n }\n\n const model = this.editor.getModel();\n let line = model?.getLineCount();\n assertNotNull(line);\n let column = model?.getLineLength(line);\n assertNotNull(column);\n const isBottomVisible = this.isBottomVisible();\n\n const edits = [];\n if (column > 0) {\n edits.push({\n range: {\n startLineNumber: line,\n startColumn: column + 1,\n endLineNumber: line,\n endColumn: column + 1,\n },\n text: '\\n',\n forceMoveMarkers: true,\n });\n line += 1;\n column = 0;\n }\n\n edits.push({\n range: {\n startLineNumber: line,\n startColumn: column,\n endLineNumber: line,\n endColumn: column,\n },\n text,\n forceMoveMarkers: true,\n });\n\n model?.applyEdits(edits);\n\n if (isBottomVisible) {\n const lineCount = model?.getLineCount();\n assertNotNull(lineCount);\n this.editor.revealLine(lineCount, 1);\n }\n }\n\n /**\n * Refresh the contents of the log component with the updated filter text\n */\n refreshLogText(): void {\n if (!this.editor) {\n return;\n }\n\n this.truncateLogIfNecessary();\n\n const { shownLogLevels } = this.state;\n const isBottomVisible = this.isBottomVisible();\n\n let text = '';\n for (let i = 0; i < this.messages.length; i += 1) {\n const message = this.messages[i];\n if (shownLogLevels[message.logLevel]) {\n const logText = LogView.getLogText(message);\n if (logText.length > 0) {\n text += logText;\n if (logText.charAt(logText.length - 1) !== '\\n') {\n text += '\\n';\n }\n }\n }\n }\n text = text.trimRight();\n\n this.editor.setValue(text);\n\n if (isBottomVisible) {\n const line = this.editor.getModel()?.getLineCount();\n assertNotNull(line);\n this.editor.revealLine(line, 1);\n }\n\n this.stopFlushTimer();\n this.bufferedMessages = [];\n }\n\n truncateLogIfNecessary(): void {\n if (this.messages.length > LogView.maxLogSize) {\n this.messages = this.messages.splice(\n this.messages.length - LogView.truncateSize\n );\n }\n }\n\n scrollToBottom(): void {\n if (!this.editor) {\n return;\n }\n\n const line = this.editor?.getModel?.()?.getLineCount();\n assertNotNull(line);\n this.editor.revealLine(line, 1);\n }\n\n isBottomVisible(): boolean {\n if (!this.editor) {\n return true;\n }\n\n const model = this.editor.getModel();\n const line = model?.getLineCount();\n\n assertNotNull(line);\n return this.isLineVisible(line);\n }\n\n isLineVisible(line: number): boolean {\n const visibleRanges = this.editor?.getVisibleRanges();\n if (visibleRanges == null || visibleRanges.length === 0) {\n return false;\n }\n\n for (let i = 0; i < visibleRanges.length; i += 1) {\n const range = visibleRanges[i];\n if (range.startLineNumber <= line && line <= range.endLineNumber) {\n return true;\n }\n }\n\n return false;\n }\n\n /** Checks if the given log message is visible with the current filters */\n isLogItemVisible(message: LogItem): boolean {\n const { shownLogLevels } = this.state;\n return shownLogLevels[message.logLevel];\n }\n\n flush(): void {\n let text = '';\n for (let i = 0; i < this.bufferedMessages.length; i += 1) {\n const message = this.bufferedMessages[i];\n const logText = LogView.getLogText(message);\n text += logText;\n if (logText.charAt(logText.length - 1) !== '\\n') {\n text += '\\n';\n }\n }\n\n this.bufferedMessages = [];\n\n this.appendLogText(text);\n }\n\n queue(message: LogItem): void {\n this.bufferedMessages.push(message);\n if (this.bufferedMessages.length === 1) {\n this.flushTimer = setTimeout(\n this.handleFlushTimeout,\n LogView.bufferTimeout\n );\n }\n }\n\n stopFlushTimer(): void {\n if (this.flushTimer) {\n clearTimeout(this.flushTimer);\n this.flushTimer = undefined;\n }\n }\n\n updateDimensions(): void {\n if (this.editor) {\n this.editor.layout();\n }\n }\n\n handleClearClick(): void {\n this.clearLogs();\n }\n\n clearLogs(): void {\n this.messages = [];\n this.refreshLogText();\n }\n\n handleFlushTimeout(): void {\n this.stopFlushTimer();\n this.flush();\n }\n\n handleLogMessage(message: LogItem): void {\n this.messages.push(message);\n\n if (this.editor && this.isLogItemVisible(message)) {\n this.queue(message);\n }\n }\n\n handleMenuItemClick(logLevel: string): void {\n this.toggleLogLevel(logLevel);\n }\n\n handleResetClick(): void {\n this.resetLogLevels();\n }\n\n handleResize(): void {\n this.updateDimensions();\n }\n\n handleToggleAllClick(): void {\n this.toggleAll();\n }\n\n render(): ReactElement {\n const popperOptions = { placement: 'bottom-end' as Placement };\n const { shownLogLevels } = this.state;\n const actions = this.getMenuActions(shownLogLevels);\n return (\n <div className=\"log-pane h-100 w-100\">\n <div className=\"log-pane-menu\">\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon btn-clear-logs\"\n onClick={this.handleClearClick}\n >\n <FontAwesomeIcon icon={dhTrashUndo} />\n <Tooltip>Clear log</Tooltip>\n </button>\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon btn-overflow\"\n >\n <FontAwesomeIcon icon={vsGear} />\n <Tooltip>Log Settings</Tooltip>\n <DropdownMenu\n actions={actions}\n popperClassName=\"log-level-menu-popper\"\n popperOptions={popperOptions}\n />\n </button>\n </div>\n <div\n className=\"log-pane-editor h-100 w-100\"\n ref={editorContainer => {\n this.editorContainer = editorContainer;\n }}\n />\n </div>\n );\n }\n}\n\nexport default LogView;\n"],"file":"LogView.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"MonacoCompletionProvider.js","names":["PureComponent","monaco","Log","log","module","MonacoCompletionProvider","constructor","props","handleCompletionRequest","bind","componentDidMount","language","registeredCompletionProvider","languages","registerCompletionItemProvider","provideCompletionItems","triggerCharacters","componentWillUnmount","dispose","model","position","context","propModel","session","params","textDocument","uri","line","lineNumber","character","column","completionItems","getCompletionItems","debug","monacoCompletionItems","then","items","suggestions","map","item","label","kind","detail","documentation","sortText","filterText","textEdit","insertTextFormat","start","end","range","startLineNumber","startColumn","endLineNumber","endColumn","insertText","text","insertTextRules","incomplete","catch","error","render"],"sources":["../../src/monaco/MonacoCompletionProvider.tsx"],"sourcesContent":["/**\n * Completion provider for a code session\n */\nimport { PureComponent } from 'react';\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';\nimport Log from '@deephaven/log';\nimport { IdeSession } from '@deephaven/jsapi-shim';\n\nconst log = Log.module('MonacoCompletionProvider');\n\ninterface MonacoCompletionProviderProps {\n model: monaco.editor.ITextModel;\n session: IdeSession;\n language: string;\n}\n\n/**\n * Registers a completion provider with monaco for the language and session provided.\n */\nclass MonacoCompletionProvider extends PureComponent<\n MonacoCompletionProviderProps,\n Record<string, never>\n> {\n constructor(props: MonacoCompletionProviderProps) {\n super(props);\n\n this.handleCompletionRequest = this.handleCompletionRequest.bind(this);\n }\n\n componentDidMount(): void {\n const { language } = this.props;\n this.registeredCompletionProvider = monaco.languages.registerCompletionItemProvider(\n language ?? '',\n {\n provideCompletionItems: this.handleCompletionRequest,\n triggerCharacters: ['\"', '.', \"'\", '(', '[', '{', ','],\n }\n );\n }\n\n componentWillUnmount(): void {\n this.registeredCompletionProvider?.dispose();\n }\n\n registeredCompletionProvider?: monaco.IDisposable;\n\n handleCompletionRequest(\n model: monaco.editor.ITextModel,\n position: monaco.Position,\n context: monaco.languages.CompletionContext\n ): monaco.languages.ProviderResult<monaco.languages.CompletionList> {\n const { model: propModel, session } = this.props;\n if (model !== propModel) {\n return null;\n }\n\n const params = {\n textDocument: {\n uri: `${model.uri}`,\n },\n // Yes, the Monaco API Position is different than the Position received by the LSP\n // Why? I do not know.\n position: {\n line: position.lineNumber - 1,\n character: position.column - 1,\n },\n context,\n };\n\n const completionItems = session.getCompletionItems(params);\n\n log.debug('Completion items received: ', params, completionItems);\n\n const monacoCompletionItems = completionItems\n .then(items => {\n // Annoying that the LSP protocol returns completion items with a range that's slightly different than what Monaco expects\n // Need to remap the items here\n const suggestions = items.map(item => {\n const {\n label,\n kind,\n detail,\n documentation,\n sortText,\n filterText,\n textEdit,\n insertTextFormat,\n } = item;\n\n const { start, end } = textEdit.range;\n\n // Monaco expects the columns/ranges to start at 1.\n const range = {\n startLineNumber: start.line + 1,\n startColumn: start.character + 1,\n endLineNumber: end.line + 1,\n endColumn: end.character + 1,\n };\n return {\n label,\n kind,\n detail,\n documentation,\n sortText,\n filterText,\n insertText: textEdit.text,\n // We are basically guessing that LSP's insertTextFormat===2 is\n // semantically equivalent to monaco's insertTextRules===4.\n // Why microsoft is using almost-but-not-LSP apis is beyond me....\n insertTextRules: insertTextFormat === 2 ? 4 : insertTextFormat,\n range,\n };\n });\n\n return {\n incomplete: true,\n suggestions,\n };\n })\n .catch((error: unknown) => {\n log.error('There was an error retrieving completion items', error);\n return { suggestions: [] };\n });\n\n return monacoCompletionItems;\n }\n\n render(): null {\n return null;\n }\n}\n\nexport default MonacoCompletionProvider;\n"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/monaco/MonacoCompletionProvider.tsx"],"names":["PureComponent","monaco","Log","log","module","MonacoCompletionProvider","constructor","props","handleCompletionRequest","bind","componentDidMount","language","registeredCompletionProvider","languages","registerCompletionItemProvider","provideCompletionItems","triggerCharacters","componentWillUnmount","dispose","model","position","context","propModel","session","params","textDocument","uri","line","lineNumber","character","column","completionItems","getCompletionItems","debug","monacoCompletionItems","then","items","suggestions","map","item","label","kind","detail","documentation","sortText","filterText","textEdit","insertTextFormat","start","end","range","startLineNumber","startColumn","endLineNumber","endColumn","insertText","text","insertTextRules","incomplete","catch","error","render"],"mappings":"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","sourcesContent":["/**\n * Completion provider for a code session\n */\nimport { PureComponent } from 'react';\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';\nimport Log from '@deephaven/log';\nimport { IdeSession } from '@deephaven/jsapi-shim';\n\nconst log = Log.module('MonacoCompletionProvider');\n\ninterface MonacoCompletionProviderProps {\n model: monaco.editor.ITextModel;\n session: IdeSession;\n language: string;\n}\n\n/**\n * Registers a completion provider with monaco for the language and session provided.\n */\nclass MonacoCompletionProvider extends PureComponent<\n MonacoCompletionProviderProps,\n Record<string, never>\n> {\n constructor(props: MonacoCompletionProviderProps) {\n super(props);\n\n this.handleCompletionRequest = this.handleCompletionRequest.bind(this);\n }\n\n componentDidMount(): void {\n const { language } = this.props;\n this.registeredCompletionProvider = monaco.languages.registerCompletionItemProvider(\n language ?? '',\n {\n provideCompletionItems: this.handleCompletionRequest,\n triggerCharacters: ['\"', '.', \"'\", '(', '[', '{', ','],\n }\n );\n }\n\n componentWillUnmount(): void {\n this.registeredCompletionProvider?.dispose();\n }\n\n registeredCompletionProvider?: monaco.IDisposable;\n\n handleCompletionRequest(\n model: monaco.editor.ITextModel,\n position: monaco.Position,\n context: monaco.languages.CompletionContext\n ): monaco.languages.ProviderResult<monaco.languages.CompletionList> {\n const { model: propModel, session } = this.props;\n if (model !== propModel) {\n return null;\n }\n\n const params = {\n textDocument: {\n uri: `${model.uri}`,\n },\n // Yes, the Monaco API Position is different than the Position received by the LSP\n // Why? I do not know.\n position: {\n line: position.lineNumber - 1,\n character: position.column - 1,\n },\n context,\n };\n\n const completionItems = session.getCompletionItems(params);\n\n log.debug('Completion items received: ', params, completionItems);\n\n const monacoCompletionItems = completionItems\n .then(items => {\n // Annoying that the LSP protocol returns completion items with a range that's slightly different than what Monaco expects\n // Need to remap the items here\n const suggestions = items.map(item => {\n const {\n label,\n kind,\n detail,\n documentation,\n sortText,\n filterText,\n textEdit,\n insertTextFormat,\n } = item;\n\n const { start, end } = textEdit.range;\n\n // Monaco expects the columns/ranges to start at 1.\n const range = {\n startLineNumber: start.line + 1,\n startColumn: start.character + 1,\n endLineNumber: end.line + 1,\n endColumn: end.character + 1,\n };\n return {\n label,\n kind,\n detail,\n documentation,\n sortText,\n filterText,\n insertText: textEdit.text,\n // We are basically guessing that LSP's insertTextFormat===2 is\n // semantically equivalent to monaco's insertTextRules===4.\n // Why microsoft is using almost-but-not-LSP apis is beyond me....\n insertTextRules: insertTextFormat === 2 ? 4 : insertTextFormat,\n range,\n };\n });\n\n return {\n incomplete: true,\n suggestions,\n };\n })\n .catch((error: unknown) => {\n log.error('There was an error retrieving completion items', error);\n return { suggestions: [] };\n });\n\n return monacoCompletionItems;\n }\n\n render(): null {\n return null;\n }\n}\n\nexport default MonacoCompletionProvider;\n"],"file":"MonacoCompletionProvider.js"}
@@ -56,11 +56,6 @@ import 'monaco-editor/esm/vs/editor/contrib/wordOperations/wordOperations.js';
56
56
  import 'monaco-editor/esm/vs/editor/contrib/wordPartOperations/wordPartOperations.js';
57
57
  import 'monaco-editor/esm/vs/basic-languages/typescript/typescript.contribution.js';
58
58
  import { Language } from './lang/Language';
59
- declare global {
60
- interface Window {
61
- MonacoEnvironment: monaco.Environment;
62
- }
63
- }
64
59
  declare class MonacoUtils {
65
60
  static init(): void;
66
61
  /**
@@ -111,7 +106,7 @@ declare class MonacoUtils {
111
106
  * @param editor The editor to remove the keybinding from
112
107
  * @param keybinding The key string to remove. E.g. 'ctrl+C' for copy on Windows
113
108
  */
114
- static removeKeybinding(editor: monaco.editor.IStandaloneCodeEditor, keybinding: string | undefined): void;
109
+ static removeKeybinding(editor: monaco.editor.IStandaloneCodeEditor, keybinding: string): void;
115
110
  static getMonacoKeyCodeFromShortcut(shortcut: Shortcut): number;
116
111
  }
117
112
  export default MonacoUtils;
@@ -1 +1 @@
1
- {"version":3,"file":"MonacoUtils.d.ts","sourceRoot":"","sources":["../../src/monaco/MonacoUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MonacoUtils.d.ts","sourceRoot":"","sources":["../../src/monaco/MonacoUtils.ts"],"names":[],"mappings":"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"}
@@ -63,9 +63,7 @@ import 'monaco-editor/esm/vs/basic-languages/typescript/typescript.contribution.
63
63
 
64
64
  import { KeyCodeUtils } from 'monaco-editor/esm/vs/base/common/keyCodes.js'; // @ts-ignore
65
65
 
66
- import { KeyMod } from 'monaco-editor/esm/vs/editor/common/standalone/standaloneBase.js'; // @ts-ignore
67
-
68
- import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker';
66
+ import { KeyMod } from 'monaco-editor/esm/vs/editor/common/standalone/standaloneBase.js';
69
67
  import Log from '@deephaven/log';
70
68
  import MonacoTheme from "./MonacoTheme.module.css";
71
69
  import PyLang from "./lang/python.js";
@@ -74,12 +72,6 @@ import ScalaLang from "./lang/scala.js";
74
72
  import DbLang from "./lang/db.js";
75
73
  import LogLang from "./lang/log.js";
76
74
  var log = Log.module('MonacoUtils');
77
- window.MonacoEnvironment = {
78
- getWorker(workerId, label) {
79
- return editorWorker();
80
- }
81
-
82
- };
83
75
 
84
76
  class MonacoUtils {
85
77
  static init() {
@@ -400,14 +392,9 @@ class MonacoUtils {
400
392
 
401
393
 
402
394
  static removeKeybinding(editor, keybinding) {
403
- if (!keybinding) {
404
- return;
405
- }
406
395
  /* eslint-disable no-underscore-dangle */
407
396
  // It's possible a single keybinding has multiple commands depending on context
408
397
  // @ts-ignore
409
-
410
-
411
398
  var keybindings = editor._standaloneKeybindingService._getResolver()._map.get(keybinding);
412
399
 
413
400
  if (keybindings) {