@deephaven/console 0.22.3-beta.15 → 0.22.3-beta.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/Console.d.ts +3 -3
  2. package/dist/Console.d.ts.map +1 -1
  3. package/dist/Console.js +9 -114
  4. package/dist/Console.js.map +1 -1
  5. package/dist/ConsoleInput.js +14 -90
  6. package/dist/ConsoleInput.js.map +1 -1
  7. package/dist/ConsoleMenu.js +6 -25
  8. package/dist/ConsoleMenu.js.map +1 -1
  9. package/dist/ConsolePropTypes.js.map +1 -1
  10. package/dist/ConsoleShortcuts.js +1 -1
  11. package/dist/ConsoleShortcuts.js.map +1 -1
  12. package/dist/ConsoleStatusBar.js +0 -16
  13. package/dist/ConsoleStatusBar.js.map +1 -1
  14. package/dist/HeapUsage.d.ts +1 -1
  15. package/dist/HeapUsage.d.ts.map +1 -1
  16. package/dist/HeapUsage.js +2 -18
  17. package/dist/HeapUsage.js.map +1 -1
  18. package/dist/StoragePropTypes.js.map +1 -1
  19. package/dist/command-history/CommandHistory.js +1 -49
  20. package/dist/command-history/CommandHistory.js.map +1 -1
  21. package/dist/command-history/CommandHistoryActions.js +0 -6
  22. package/dist/command-history/CommandHistoryActions.js.map +1 -1
  23. package/dist/command-history/CommandHistoryItem.d.ts +4 -4
  24. package/dist/command-history/CommandHistoryItem.d.ts.map +1 -1
  25. package/dist/command-history/CommandHistoryItem.js +3 -6
  26. package/dist/command-history/CommandHistoryItem.js.map +1 -1
  27. package/dist/command-history/CommandHistoryItemTooltip.d.ts +1 -1
  28. package/dist/command-history/CommandHistoryItemTooltip.d.ts.map +1 -1
  29. package/dist/command-history/CommandHistoryItemTooltip.js +3 -28
  30. package/dist/command-history/CommandHistoryItemTooltip.js.map +1 -1
  31. package/dist/command-history/CommandHistoryViewportUpdater.js +0 -3
  32. package/dist/command-history/CommandHistoryViewportUpdater.js.map +1 -1
  33. package/dist/command-history/index.js.map +1 -1
  34. package/dist/common/Code.js +2 -11
  35. package/dist/common/Code.js.map +1 -1
  36. package/dist/common/ConsoleConstants.js +0 -2
  37. package/dist/common/ConsoleConstants.js.map +1 -1
  38. package/dist/common/ConsoleUtils.js +4 -19
  39. package/dist/common/ConsoleUtils.js.map +1 -1
  40. package/dist/common/ObjectIcon.d.ts +1 -1
  41. package/dist/common/ObjectIcon.d.ts.map +1 -1
  42. package/dist/common/ObjectIcon.js +2 -8
  43. package/dist/common/ObjectIcon.js.map +1 -1
  44. package/dist/common/index.js.map +1 -1
  45. package/dist/console-history/ConsoleHistory.js +0 -8
  46. package/dist/console-history/ConsoleHistory.js.map +1 -1
  47. package/dist/console-history/ConsoleHistoryItem.js +2 -25
  48. package/dist/console-history/ConsoleHistoryItem.js.map +1 -1
  49. package/dist/console-history/ConsoleHistoryItemResult.d.ts +6 -6
  50. package/dist/console-history/ConsoleHistoryItemResult.d.ts.map +1 -1
  51. package/dist/console-history/ConsoleHistoryItemResult.js +2 -4
  52. package/dist/console-history/ConsoleHistoryItemResult.js.map +1 -1
  53. package/dist/console-history/ConsoleHistoryResultErrorMessage.js +0 -22
  54. package/dist/console-history/ConsoleHistoryResultErrorMessage.js.map +1 -1
  55. package/dist/console-history/ConsoleHistoryResultInProgress.js +0 -13
  56. package/dist/console-history/ConsoleHistoryResultInProgress.js.map +1 -1
  57. package/dist/console-history/index.js.map +1 -1
  58. package/dist/csv/CsvFormats.js +0 -9
  59. package/dist/csv/CsvFormats.js.map +1 -1
  60. package/dist/csv/CsvInputBar.js +18 -51
  61. package/dist/csv/CsvInputBar.js.map +1 -1
  62. package/dist/csv/CsvOverlay.d.ts +2 -2
  63. package/dist/csv/CsvOverlay.d.ts.map +1 -1
  64. package/dist/csv/CsvOverlay.js +1 -41
  65. package/dist/csv/CsvOverlay.js.map +1 -1
  66. package/dist/csv/CsvParser.js +10 -73
  67. package/dist/csv/CsvParser.js.map +1 -1
  68. package/dist/csv/CsvTypeParser.js +15 -85
  69. package/dist/csv/CsvTypeParser.js.map +1 -1
  70. package/dist/csv/NewTableColumnTypes.js +0 -9
  71. package/dist/csv/NewTableColumnTypes.js.map +1 -1
  72. package/dist/index.d.ts +3 -2
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +3 -2
  75. package/dist/index.js.map +1 -1
  76. package/dist/log/LogLevel.js.map +1 -1
  77. package/dist/log/LogLevelMenuItem.js +0 -5
  78. package/dist/log/LogLevelMenuItem.js.map +1 -1
  79. package/dist/log/LogView.js +16 -106
  80. package/dist/log/LogView.js.map +1 -1
  81. package/dist/monaco/MonacoCompletionProvider.js +2 -14
  82. package/dist/monaco/MonacoCompletionProvider.js.map +1 -1
  83. package/dist/monaco/MonacoUtils.d.ts.map +1 -1
  84. package/dist/monaco/MonacoUtils.js +21 -49
  85. package/dist/monaco/MonacoUtils.js.map +1 -1
  86. package/dist/monaco/index.js.map +1 -1
  87. package/dist/monaco/lang/db.d.ts.map +1 -1
  88. package/dist/monaco/lang/db.js +22 -13
  89. package/dist/monaco/lang/db.js.map +1 -1
  90. package/dist/monaco/lang/groovy.d.ts.map +1 -1
  91. package/dist/monaco/lang/groovy.js +28 -15
  92. package/dist/monaco/lang/groovy.js.map +1 -1
  93. package/dist/monaco/lang/log.js +1 -0
  94. package/dist/monaco/lang/log.js.map +1 -1
  95. package/dist/monaco/lang/python.d.ts.map +1 -1
  96. package/dist/monaco/lang/python.js +30 -16
  97. package/dist/monaco/lang/python.js.map +1 -1
  98. package/dist/monaco/lang/scala.js +26 -13
  99. package/dist/monaco/lang/scala.js.map +1 -1
  100. package/dist/notebook/Editor.js +2 -21
  101. package/dist/notebook/Editor.js.map +1 -1
  102. package/dist/notebook/ScriptEditor.d.ts +1 -1
  103. package/dist/notebook/ScriptEditor.d.ts.map +1 -1
  104. package/dist/notebook/ScriptEditor.js +0 -57
  105. package/dist/notebook/ScriptEditor.js.map +1 -1
  106. package/dist/notebook/ScriptEditorUtils.js +1 -7
  107. package/dist/notebook/ScriptEditorUtils.js.map +1 -1
  108. package/package.json +11 -11
@@ -1,198 +1,143 @@
1
1
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
-
3
2
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
-
5
3
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
-
7
4
  import { assertNotNull } from '@deephaven/utils';
8
- import Papa from 'papaparse'; // Intentionally using isNaN rather than Number.isNaN
9
-
5
+ import Papa from 'papaparse';
6
+ // Intentionally using isNaN rather than Number.isNaN
10
7
  /* eslint-disable no-restricted-globals */
11
-
12
8
  import NewTableColumnTypes from "./NewTableColumnTypes.js"; // Initially column types start al unknown
13
-
14
9
  var UNKNOWN = 'unknown';
15
10
  var MAX_INT = 2147483647;
16
11
  var MIN_INT = -2147483648;
17
12
  var 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]+)?$/;
18
13
  var LOCAL_TIME_REGEX = /^([0-9]+T)?([0-9]+):([0-9]+)(:[0-9]+)?(?:\.[0-9]{1,9})?$/;
14
+
19
15
  /**
20
16
  * Determines the type of each column in a CSV file by parsing it and looking at every value.
21
17
  */
22
-
23
18
  class CsvTypeParser {
24
19
  static determineType(value, type, nullString) {
25
20
  if (!value || value === nullString) {
26
21
  // A null tells us nothing about the type
27
22
  return type;
28
23
  }
29
-
30
24
  switch (type) {
31
25
  case NewTableColumnTypes.STRING:
32
26
  // Strings never get promoted
33
27
  return NewTableColumnTypes.STRING;
34
-
35
28
  case NewTableColumnTypes.INTEGER:
36
29
  return CsvTypeParser.checkInteger(value);
37
-
38
30
  case NewTableColumnTypes.LONG:
39
31
  return CsvTypeParser.checkLong(value);
40
-
41
32
  case NewTableColumnTypes.DOUBLE:
42
33
  return CsvTypeParser.checkDouble(value);
43
-
44
34
  case NewTableColumnTypes.BOOLEAN:
45
35
  return CsvTypeParser.checkBoolean(value);
46
-
47
36
  case NewTableColumnTypes.DATE_TIME:
48
37
  return CsvTypeParser.checkDateTime(value);
49
-
50
38
  case NewTableColumnTypes.LOCAL_TIME:
51
39
  return CsvTypeParser.checkLocalTime(value);
52
-
53
40
  default:
54
41
  return CsvTypeParser.getTypeFromUnknown(value);
55
42
  }
56
- } // Allows for cusomt rules in addition to isNaN
57
-
43
+ }
58
44
 
45
+ // Allows for cusomt rules in addition to isNaN
59
46
  static isNotParsableNumber(s) {
60
47
  return isNaN(s) || s === 'Infinity' || s === '-Infinity';
61
48
  }
62
-
63
49
  static checkInteger(value) {
64
50
  var noCommas = value.replace(/,/g, '');
65
-
66
51
  if (CsvTypeParser.isNotParsableNumber(noCommas)) {
67
52
  return NewTableColumnTypes.STRING;
68
53
  }
69
-
70
54
  return CsvTypeParser.getNumberType(noCommas);
71
55
  }
72
-
73
56
  static checkLong(value) {
74
57
  var noCommas = value.replace(/,/g, '');
75
-
76
58
  if (CsvTypeParser.isNotParsableNumber(noCommas)) {
77
59
  return NewTableColumnTypes.STRING;
78
60
  }
79
-
80
61
  if (noCommas.includes('.')) {
81
62
  return NewTableColumnTypes.DOUBLE;
82
63
  }
83
-
84
64
  return NewTableColumnTypes.LONG;
85
65
  }
86
-
87
66
  static checkDouble(value) {
88
67
  var noCommas = value.replace(/,/g, '');
89
-
90
68
  if (CsvTypeParser.isNotParsableNumber(noCommas)) {
91
69
  return NewTableColumnTypes.STRING;
92
70
  }
93
-
94
71
  return NewTableColumnTypes.DOUBLE;
95
72
  }
96
-
97
73
  static checkBoolean(value) {
98
74
  var lower = value.toLowerCase();
99
-
100
75
  if (lower === 'true' || lower === 'false') {
101
76
  return NewTableColumnTypes.BOOLEAN;
102
77
  }
103
-
104
78
  return NewTableColumnTypes.STRING;
105
79
  }
106
-
107
80
  static checkDateTime(value) {
108
81
  if (DATE_TIME_REGEX.test(value)) {
109
82
  return NewTableColumnTypes.DATE_TIME;
110
83
  }
111
-
112
84
  return NewTableColumnTypes.STRING;
113
85
  }
114
-
115
86
  static checkLocalTime(value) {
116
87
  if (LOCAL_TIME_REGEX.test(value)) {
117
88
  return NewTableColumnTypes.LOCAL_TIME;
118
89
  }
119
-
120
90
  return NewTableColumnTypes.STRING;
121
91
  }
122
-
123
92
  static getTypeFromUnknown(value) {
124
93
  var noCommas = value.replace(/,/g, '');
125
-
126
94
  if (CsvTypeParser.isNotParsableNumber(noCommas)) {
127
95
  var lower = value.toLowerCase();
128
-
129
96
  if (lower === 'true' || lower === 'false') {
130
97
  return NewTableColumnTypes.BOOLEAN;
131
98
  }
132
-
133
99
  if (DATE_TIME_REGEX.test(value) && value.includes(':')) {
134
100
  return NewTableColumnTypes.DATE_TIME;
135
101
  }
136
-
137
102
  if (LOCAL_TIME_REGEX.test(value)) {
138
103
  return NewTableColumnTypes.LOCAL_TIME;
139
104
  }
140
-
141
105
  return NewTableColumnTypes.STRING;
142
106
  }
143
-
144
107
  return CsvTypeParser.getNumberType(noCommas);
145
108
  }
146
-
147
109
  static getNumberType(value) {
148
110
  if (value.includes('.')) {
149
111
  return NewTableColumnTypes.DOUBLE;
150
- } // Fast length check
151
-
112
+ }
152
113
 
114
+ // Fast length check
153
115
  var maxIntLength = value.startsWith('-') ? 11 : 10;
154
-
155
116
  if (value.length > maxIntLength) {
156
117
  return NewTableColumnTypes.LONG;
157
- } // Slower parseInt check
158
-
118
+ }
159
119
 
120
+ // Slower parseInt check
160
121
  var intValue = parseInt(value, 10);
161
-
162
122
  if (intValue > MAX_INT || intValue < MIN_INT) {
163
123
  return NewTableColumnTypes.LONG;
164
124
  }
165
-
166
125
  return NewTableColumnTypes.INTEGER;
167
126
  }
168
-
169
127
  constructor(onFileCompleted, file, readHeaders, parentConfig, nullString, onProgress, onError, totalChunks, isZip, shouldTrim) {
170
128
  _defineProperty(this, "onFileCompleted", void 0);
171
-
172
129
  _defineProperty(this, "file", void 0);
173
-
174
130
  _defineProperty(this, "readHeaders", void 0);
175
-
176
131
  _defineProperty(this, "nullString", void 0);
177
-
178
132
  _defineProperty(this, "onProgress", void 0);
179
-
180
133
  _defineProperty(this, "onError", void 0);
181
-
182
134
  _defineProperty(this, "types", void 0);
183
-
184
135
  _defineProperty(this, "chunks", void 0);
185
-
186
136
  _defineProperty(this, "totalChunks", void 0);
187
-
188
137
  _defineProperty(this, "isZip", void 0);
189
-
190
138
  _defineProperty(this, "shouldTrim", void 0);
191
-
192
139
  _defineProperty(this, "zipProgress", void 0);
193
-
194
140
  _defineProperty(this, "config", void 0);
195
-
196
141
  this.onFileCompleted = onFileCompleted;
197
142
  this.file = file;
198
143
  this.readHeaders = readHeaders;
@@ -214,34 +159,29 @@ class CsvTypeParser {
214
159
  complete: this.handleComplete
215
160
  });
216
161
  }
217
-
218
162
  parse() {
219
- var toParse = this.isZip ? this.file.nodeStream( // JsZip types are incorrect, thus the funny casting
163
+ var toParse = this.isZip ? this.file.nodeStream(
164
+ // JsZip types are incorrect, thus the funny casting
220
165
  // Actual parameter is 'nodebuffer'
221
166
  'nodebuffer', this.handleNodeUpdate) : this.file;
222
167
  Papa.parse(toParse, this.config);
223
168
  }
224
-
225
169
  handleChunk(result, parser) {
226
170
  var {
227
171
  data
228
172
  } = result;
229
-
230
173
  if (!this.types) {
231
174
  if (data == null || data.length === 0) {
232
175
  parser.abort();
233
176
  this.onError('Error parsing CSV: no data in file.');
234
177
  return;
235
178
  }
236
-
237
179
  this.types = new Array(data[0].length).fill(UNKNOWN);
238
-
239
180
  if (this.readHeaders) {
240
181
  // If headers are being read from the file, remove them from type analysis
241
182
  data = data.slice(1);
242
183
  }
243
184
  }
244
-
245
185
  assertNotNull(this.types);
246
186
  var cloneTypes = [...this.types];
247
187
  data.forEach(row => {
@@ -249,55 +189,45 @@ class CsvTypeParser {
249
189
  for (var i = 0; i < cloneTypes.length; i += 1) {
250
190
  cloneTypes[i] = CsvTypeParser.determineType(this.shouldTrim ? row[i].trim() : row[i], cloneTypes[i], this.nullString);
251
191
  }
252
-
253
192
  this.types = cloneTypes;
254
193
  } else {
255
194
  parser.abort();
256
195
  this.onError("Error parsing CSV: Insufficient data in row.\nExpected length ".concat(cloneTypes.length, " but found ").concat(row.length, ".\nRow = ").concat(row));
257
196
  }
258
197
  });
259
- this.chunks += 1; // 50 because the type parsing accounts for 50% of the parsing
260
-
198
+ this.chunks += 1;
199
+ // 50 because the type parsing accounts for 50% of the parsing
261
200
  var progress = 0;
262
-
263
201
  if (this.totalChunks > 0) {
264
202
  progress = Math.round(this.chunks / this.totalChunks * 50);
265
203
  } else {
266
204
  progress = Math.round(this.zipProgress / 2);
267
205
  }
268
-
269
206
  var isCancelled = this.onProgress(progress);
270
-
271
207
  if (isCancelled) {
272
208
  parser.abort();
273
209
  }
274
210
  }
275
-
276
211
  handleComplete(results) {
277
212
  var {
278
213
  types,
279
214
  onFileCompleted
280
- } = this; // results is undefined for a succesful parse, but has meta data for an abort
281
-
215
+ } = this;
216
+ // results is undefined for a succesful parse, but has meta data for an abort
282
217
  assertNotNull(types);
283
-
284
218
  if (results == null || !results.meta.aborted) {
285
219
  onFileCompleted(types.map(type => type === UNKNOWN ? NewTableColumnTypes.STRING : type));
286
220
  }
287
221
  }
288
-
289
222
  handleError(error) {
290
223
  var {
291
224
  onError
292
225
  } = this;
293
226
  onError(error);
294
227
  }
295
-
296
228
  handleNodeUpdate(metadata) {
297
229
  this.zipProgress = metadata.percent;
298
230
  }
299
-
300
231
  }
301
-
302
232
  export default CsvTypeParser;
303
233
  //# sourceMappingURL=CsvTypeParser.js.map
@@ -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 == null || 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 == null || !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,"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 == null || 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 == null || !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,23 +1,14 @@
1
1
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
2
  /**
4
3
  * Valid column types to be used for a call to newTable.
5
4
  */
6
5
  class NewTableColumnTypes {}
7
-
8
6
  _defineProperty(NewTableColumnTypes, "INTEGER", 'int');
9
-
10
7
  _defineProperty(NewTableColumnTypes, "LONG", 'long');
11
-
12
8
  _defineProperty(NewTableColumnTypes, "DOUBLE", 'double');
13
-
14
9
  _defineProperty(NewTableColumnTypes, "BOOLEAN", 'bool');
15
-
16
10
  _defineProperty(NewTableColumnTypes, "STRING", 'string');
17
-
18
11
  _defineProperty(NewTableColumnTypes, "DATE_TIME", 'datetime');
19
-
20
12
  _defineProperty(NewTableColumnTypes, "LOCAL_TIME", 'localtime');
21
-
22
13
  export default NewTableColumnTypes;
23
14
  //# sourceMappingURL=NewTableColumnTypes.js.map
@@ -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,"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,mBAAmB,CAAC;AAczB,gBAdKA,mBAAmB,aACN,KAAK;AAAA,gBADlBA,mBAAmB,UAGT,MAAM;AAAA,gBAHhBA,mBAAmB,YAKP,QAAQ;AAAA,gBALpBA,mBAAmB,aAON,MAAM;AAAA,gBAPnBA,mBAAmB,YASP,QAAQ;AAAA,gBATpBA,mBAAmB,eAWJ,UAAU;AAAA,gBAXzBA,mBAAmB,gBAaH,WAAW;AAGjC,eAAeA,mBAAmB"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
- export { default as Console } from './Console';
1
+ import Console from './Console';
2
+ export default Console;
3
+ export { Console };
2
4
  export { default as ConsoleInput } from './ConsoleInput';
3
5
  export { default as ConsoleMenu } from './ConsoleMenu';
4
6
  export { default as SHORTCUTS } from './ConsoleShortcuts';
@@ -13,5 +15,4 @@ export * from './console-history';
13
15
  export { default as LogView } from './log/LogView';
14
16
  export { default as HeapUsage } from './HeapUsage';
15
17
  export { default as NewTableColumnTypes } from './csv/NewTableColumnTypes';
16
- export { default } from './Console';
17
18
  //# 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;AACnD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAE3E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC,eAAe,OAAO,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,CAAC;AACnB,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;AACnD,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,6 @@
1
- export { default as Console } from "./Console.js";
1
+ import Console from "./Console.js";
2
+ export default Console;
3
+ export { Console };
2
4
  export { default as ConsoleInput } from "./ConsoleInput.js";
3
5
  export { default as ConsoleMenu } from "./ConsoleMenu.js";
4
6
  export { default as SHORTCUTS } from "./ConsoleShortcuts.js";
@@ -13,5 +15,4 @@ export * from "./console-history/index.js";
13
15
  export { default as LogView } from "./log/LogView.js";
14
16
  export { default as HeapUsage } from "./HeapUsage.js";
15
17
  export { default as NewTableColumnTypes } from "./csv/NewTableColumnTypes.js";
16
- export { default } from "./Console.js";
17
18
  //# 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","HeapUsage","NewTableColumnTypes"],"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';\nexport { default as HeapUsage } from './HeapUsage';\nexport { default as NewTableColumnTypes } from './csv/NewTableColumnTypes';\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;SACXV,OAAO,IAAIW,S;SACXX,OAAO,IAAIY,mB;SAEXZ,O"}
1
+ {"version":3,"file":"index.js","names":["Console","default","ConsoleInput","ConsoleMenu","SHORTCUTS","ConsoleStatusBar","MonacoUtils","Editor","ScriptEditor","ScriptEditorUtils","LogView","HeapUsage","NewTableColumnTypes"],"sources":["../src/index.ts"],"sourcesContent":["import Console from './Console';\n\nexport default Console;\nexport { 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';\nexport { default as NewTableColumnTypes } from './csv/NewTableColumnTypes';\n"],"mappings":"OAAOA,OAAO;AAEd,eAAeA,OAAO;AACtB,SAASA,OAAO;AAAG,SACVC,OAAO,IAAIC,YAAY;AAAA,SACvBD,OAAO,IAAIE,WAAW;AAAA,SACtBF,OAAO,IAAIG,SAAS;AAAA,SACpBH,OAAO,IAAII,gBAAgB;AAAA,SAC3BJ,OAAO,IAAIK,WAAW;AAAA,SACtBL,OAAO,IAAIM,MAAM;AAAA,SACjBN,OAAO,IAAIO,YAAY;AAAA,SACvBP,OAAO,IAAIQ,iBAAiB;AAAA;AAAA;AAAA;AAAA,SAI5BR,OAAO,IAAIS,OAAO;AAAA,SAClBT,OAAO,IAAIU,SAAS;AAAA,SACpBV,OAAO,IAAIW,mBAAmB"}
@@ -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,"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,MAAM,CAAC;EAC3BC,KAAK,EAAE,OAAO;EACdC,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,MAAM,EAAE,QAAQ;EAChBC,IAAI,EAAE,MAAM;EACZC,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE;AACT,CAAC,CAAC"}
@@ -3,13 +3,11 @@ import React, { PureComponent } from 'react';
3
3
  import classNames from 'classnames';
4
4
  import { UISwitch } from '@deephaven/components';
5
5
  import "./LogLevelMenuItem.css";
6
-
7
6
  class LogLevelMenuItem extends PureComponent {
8
7
  constructor(props) {
9
8
  super(props);
10
9
  this.handleSwitchClick = this.handleSwitchClick.bind(this);
11
10
  }
12
-
13
11
  handleSwitchClick() {
14
12
  var {
15
13
  logLevel,
@@ -17,7 +15,6 @@ class LogLevelMenuItem extends PureComponent {
17
15
  } = this.props;
18
16
  onClick(logLevel);
19
17
  }
20
-
21
18
  render() {
22
19
  var {
23
20
  logLevel,
@@ -30,8 +27,6 @@ class LogLevelMenuItem extends PureComponent {
30
27
  onClick: this.handleSwitchClick
31
28
  }), logLevel);
32
29
  }
33
-
34
30
  }
35
-
36
31
  export default LogLevelMenuItem;
37
32
  //# sourceMappingURL=LogLevelMenuItem.js.map
@@ -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,"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,KAAK,IAAIC,aAAa,QAAsB,OAAO;AAC1D,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,QAAQ,QAAQ,uBAAuB;AAAC;AASjD,MAAMC,gBAAgB,SAASH,aAAa,CAG1C;EACAI,WAAW,CAACC,KAA4B,EAAE;IACxC,KAAK,CAACA,KAAK,CAAC;IAEZ,IAAI,CAACC,iBAAiB,GAAG,IAAI,CAACA,iBAAiB,CAACC,IAAI,CAAC,IAAI,CAAC;EAC5D;EAEAD,iBAAiB,GAAS;IACxB,IAAM;MAAEE,QAAQ;MAAEC;IAAQ,CAAC,GAAG,IAAI,CAACJ,KAAK;IACxCI,OAAO,CAACD,QAAQ,CAAC;EACnB;EAEAE,MAAM,GAAiB;IACrB,IAAM;MAAEF,QAAQ;MAAEG;IAAG,CAAC,GAAG,IAAI,CAACN,KAAK;IACnC,oBACE;MAAK,SAAS,EAAEJ,UAAU,CAAC,qBAAqB,EAAEO,QAAQ;IAAE,gBAC1D,oBAAC,QAAQ;MAAC,EAAE,EAAEG,EAAG;MAAC,OAAO,EAAE,IAAI,CAACL;IAAkB,EAAG,EACpDE,QAAQ,CACL;EAEV;AACF;AAEA,eAAeL,gBAAgB"}