juxscript 1.1.190 → 1.1.192
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataframe.d.ts","sourceRoot":"","sources":["dataframe.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"dataframe.d.ts","sourceRoot":"","sources":["dataframe.ts"],"names":[],"mappings":"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"}
|
|
@@ -430,8 +430,9 @@ export class DataFrameComponent extends BaseComponent {
|
|
|
430
430
|
return isNaN(Number(str)) && str !== '';
|
|
431
431
|
}).length;
|
|
432
432
|
if (nonNumericCount >= nonEmpty.length * 0.7 && i > 0) {
|
|
433
|
-
// i is index in toRows()
|
|
434
|
-
//
|
|
433
|
+
// i is the index in toRows(). Row 0 of the file was already consumed
|
|
434
|
+
// as the header during the initial parse, so the actual 0-based file
|
|
435
|
+
// row index is i + 1.
|
|
435
436
|
return i + 1;
|
|
436
437
|
}
|
|
437
438
|
}
|
|
@@ -473,7 +474,7 @@ export class DataFrameComponent extends BaseComponent {
|
|
|
473
474
|
const modalContentHTML = `
|
|
474
475
|
<div style="margin-bottom: 1rem;">
|
|
475
476
|
<label style="display: block; font-weight: 600; margin-bottom: 0.5rem; color: hsl(var(--foreground));">
|
|
476
|
-
Header Row
|
|
477
|
+
Header Row
|
|
477
478
|
</label>
|
|
478
479
|
<input
|
|
479
480
|
type="number"
|
|
@@ -487,7 +488,7 @@ export class DataFrameComponent extends BaseComponent {
|
|
|
487
488
|
<div class="jux-reshape-hint">
|
|
488
489
|
<strong>Detected issue:</strong> The current header row appears to contain metadata or empty values.
|
|
489
490
|
Row ${suggestedRow} looks like it contains the actual column headers.
|
|
490
|
-
Adjust the value above and check the preview below.
|
|
491
|
+
Adjust the value above and check the preview below. The Row column shows the index for each row.
|
|
491
492
|
</div>
|
|
492
493
|
</div>
|
|
493
494
|
<div class="jux-reshape-preview-container">
|
|
@@ -554,12 +555,16 @@ export class DataFrameComponent extends BaseComponent {
|
|
|
554
555
|
previewDiv.textContent = 'No data found';
|
|
555
556
|
return;
|
|
556
557
|
}
|
|
557
|
-
const
|
|
558
|
+
const dataRows = firstSheet.toRows().slice(0, 10);
|
|
559
|
+
const colHeader = 'Row'.padEnd(6) + firstSheet.columns.map(c => String(c).padEnd(20)).join(' | ');
|
|
560
|
+
const separator = '─'.repeat(Math.min(colHeader.length, 120));
|
|
561
|
+
const preview = dataRows.map((row, i) => {
|
|
562
|
+
const rowIdx = String(headerRow + 1 + i).padEnd(6);
|
|
558
563
|
const cols = Object.values(row).map(v => String(v ?? '').padEnd(20)).join(' | ');
|
|
559
|
-
return `${
|
|
564
|
+
return `${rowIdx}${cols}`;
|
|
560
565
|
}).join('\n');
|
|
561
566
|
if (previewDiv) {
|
|
562
|
-
previewDiv.textContent =
|
|
567
|
+
previewDiv.textContent = `${'Row'.padEnd(6)}Columns: ${firstSheet.columns.join(' | ')}\n${separator}\n${preview}`;
|
|
563
568
|
}
|
|
564
569
|
}
|
|
565
570
|
catch (err) {
|
|
@@ -593,7 +598,7 @@ export class DataFrameComponent extends BaseComponent {
|
|
|
593
598
|
</select>
|
|
594
599
|
</div>
|
|
595
600
|
<div style="margin-bottom: 1rem;">
|
|
596
|
-
<label style="display: block; font-weight: 600; margin-bottom: 0.5rem;">Header Row
|
|
601
|
+
<label style="display: block; font-weight: 600; margin-bottom: 0.5rem;">Header Row</label>
|
|
597
602
|
<input type="number" id="${this._id}-header-row" class="jux-input-element" value="0" min="0" max="50" style="width: 100%;" />
|
|
598
603
|
</div>
|
|
599
604
|
<div style="margin-bottom: 1rem;">
|
|
@@ -674,12 +679,16 @@ export class DataFrameComponent extends BaseComponent {
|
|
|
674
679
|
hasHeader: true,
|
|
675
680
|
maxRows: 10
|
|
676
681
|
});
|
|
677
|
-
const
|
|
682
|
+
const dataRows = df.toRows();
|
|
683
|
+
const colHeader = 'Row'.padEnd(6) + df.columns.map(c => String(c).padEnd(20)).join(' | ');
|
|
684
|
+
const separator = '─'.repeat(Math.min(colHeader.length, 120));
|
|
685
|
+
const preview = dataRows.map((row, i) => {
|
|
686
|
+
const rowIdx = String(headerRow + skipRows + 1 + i).padEnd(6);
|
|
678
687
|
const cols = Object.values(row).map(v => String(v ?? '').padEnd(20)).join(' | ');
|
|
679
|
-
return `${
|
|
688
|
+
return `${rowIdx}${cols}`;
|
|
680
689
|
}).join('\n');
|
|
681
690
|
if (previewDiv) {
|
|
682
|
-
previewDiv.textContent =
|
|
691
|
+
previewDiv.textContent = `${'Row'.padEnd(6)}Columns: ${df.columns.join(' | ')}\n${separator}\n${preview}`;
|
|
683
692
|
}
|
|
684
693
|
}
|
|
685
694
|
catch (err) {
|
|
@@ -542,8 +542,9 @@ export class DataFrameComponent extends BaseComponent<DataFrameState> {
|
|
|
542
542
|
}).length;
|
|
543
543
|
|
|
544
544
|
if (nonNumericCount >= nonEmpty.length * 0.7 && i > 0) {
|
|
545
|
-
// i is index in toRows()
|
|
546
|
-
//
|
|
545
|
+
// i is the index in toRows(). Row 0 of the file was already consumed
|
|
546
|
+
// as the header during the initial parse, so the actual 0-based file
|
|
547
|
+
// row index is i + 1.
|
|
547
548
|
return i + 1;
|
|
548
549
|
}
|
|
549
550
|
}
|
|
@@ -591,7 +592,7 @@ export class DataFrameComponent extends BaseComponent<DataFrameState> {
|
|
|
591
592
|
const modalContentHTML = `
|
|
592
593
|
<div style="margin-bottom: 1rem;">
|
|
593
594
|
<label style="display: block; font-weight: 600; margin-bottom: 0.5rem; color: hsl(var(--foreground));">
|
|
594
|
-
Header Row
|
|
595
|
+
Header Row
|
|
595
596
|
</label>
|
|
596
597
|
<input
|
|
597
598
|
type="number"
|
|
@@ -605,7 +606,7 @@ export class DataFrameComponent extends BaseComponent<DataFrameState> {
|
|
|
605
606
|
<div class="jux-reshape-hint">
|
|
606
607
|
<strong>Detected issue:</strong> The current header row appears to contain metadata or empty values.
|
|
607
608
|
Row ${suggestedRow} looks like it contains the actual column headers.
|
|
608
|
-
Adjust the value above and check the preview below.
|
|
609
|
+
Adjust the value above and check the preview below. The Row column shows the index for each row.
|
|
609
610
|
</div>
|
|
610
611
|
</div>
|
|
611
612
|
<div class="jux-reshape-preview-container">
|
|
@@ -681,13 +682,17 @@ export class DataFrameComponent extends BaseComponent<DataFrameState> {
|
|
|
681
682
|
return;
|
|
682
683
|
}
|
|
683
684
|
|
|
684
|
-
const
|
|
685
|
+
const dataRows = firstSheet.toRows().slice(0, 10);
|
|
686
|
+
const colHeader = 'Row'.padEnd(6) + firstSheet.columns.map(c => String(c).padEnd(20)).join(' | ');
|
|
687
|
+
const separator = '─'.repeat(Math.min(colHeader.length, 120));
|
|
688
|
+
const preview = dataRows.map((row, i) => {
|
|
689
|
+
const rowIdx = String(headerRow + 1 + i).padEnd(6);
|
|
685
690
|
const cols = Object.values(row).map(v => String(v ?? '').padEnd(20)).join(' | ');
|
|
686
|
-
return `${
|
|
691
|
+
return `${rowIdx}${cols}`;
|
|
687
692
|
}).join('\n');
|
|
688
693
|
|
|
689
694
|
if (previewDiv) {
|
|
690
|
-
previewDiv.textContent =
|
|
695
|
+
previewDiv.textContent = `${'Row'.padEnd(6)}Columns: ${firstSheet.columns.join(' | ')}\n${separator}\n${preview}`;
|
|
691
696
|
}
|
|
692
697
|
} catch (err: any) {
|
|
693
698
|
if (previewDiv) previewDiv.textContent = `Error: ${err.message}`;
|
|
@@ -723,7 +728,7 @@ export class DataFrameComponent extends BaseComponent<DataFrameState> {
|
|
|
723
728
|
</select>
|
|
724
729
|
</div>
|
|
725
730
|
<div style="margin-bottom: 1rem;">
|
|
726
|
-
<label style="display: block; font-weight: 600; margin-bottom: 0.5rem;">Header Row
|
|
731
|
+
<label style="display: block; font-weight: 600; margin-bottom: 0.5rem;">Header Row</label>
|
|
727
732
|
<input type="number" id="${this._id}-header-row" class="jux-input-element" value="0" min="0" max="50" style="width: 100%;" />
|
|
728
733
|
</div>
|
|
729
734
|
<div style="margin-bottom: 1rem;">
|
|
@@ -814,13 +819,17 @@ export class DataFrameComponent extends BaseComponent<DataFrameState> {
|
|
|
814
819
|
maxRows: 10
|
|
815
820
|
});
|
|
816
821
|
|
|
817
|
-
const
|
|
822
|
+
const dataRows = df.toRows();
|
|
823
|
+
const colHeader = 'Row'.padEnd(6) + df.columns.map(c => String(c).padEnd(20)).join(' | ');
|
|
824
|
+
const separator = '─'.repeat(Math.min(colHeader.length, 120));
|
|
825
|
+
const preview = dataRows.map((row, i) => {
|
|
826
|
+
const rowIdx = String(headerRow + skipRows + 1 + i).padEnd(6);
|
|
818
827
|
const cols = Object.values(row).map(v => String(v ?? '').padEnd(20)).join(' | ');
|
|
819
|
-
return `${
|
|
828
|
+
return `${rowIdx}${cols}`;
|
|
820
829
|
}).join('\n');
|
|
821
830
|
|
|
822
831
|
if (previewDiv) {
|
|
823
|
-
previewDiv.textContent =
|
|
832
|
+
previewDiv.textContent = `${'Row'.padEnd(6)}Columns: ${df.columns.join(' | ')}\n${separator}\n${preview}`;
|
|
824
833
|
}
|
|
825
834
|
} catch (err: any) {
|
|
826
835
|
if (previewDiv) previewDiv.textContent = `Error: ${err.message}`;
|