@extend-ai/react-xlsx 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -78,6 +78,7 @@ interface XlsxFreezePanes {
78
78
  col: number;
79
79
  row: number;
80
80
  }
81
+ type XlsxSheetVisibility = "hidden" | "veryHidden" | "visible";
81
82
  interface XlsxSheetData {
82
83
  cachedFormulaValues: Record<string, string>;
83
84
  colWidthOverridesPx: Record<number, number>;
@@ -87,6 +88,7 @@ interface XlsxSheetData {
87
88
  conditionalFormatRules: XlsxConditionalFormatRule[];
88
89
  dataValidations: XlsxDataValidation[];
89
90
  name: string;
91
+ visibility: XlsxSheetVisibility;
90
92
  columnWidthCharacterWidthPx?: number;
91
93
  defaultColWidthPx: number;
92
94
  defaultRowHeightPx: number;
@@ -95,6 +97,8 @@ interface XlsxSheetData {
95
97
  hasVerticalMerges: boolean;
96
98
  maxHorizontalMergeEndCol: number;
97
99
  maxVerticalMergeEndRow: number;
100
+ minUsedCol: number;
101
+ minUsedRow: number;
98
102
  maxUsedCol: number;
99
103
  maxUsedRow: number;
100
104
  rowCount: number;
@@ -260,6 +264,7 @@ interface XlsxShape {
260
264
  flipV?: boolean;
261
265
  geometry: string;
262
266
  geometryAdjustments?: Record<string, number>;
267
+ hidden?: boolean;
263
268
  hyperlink?: string;
264
269
  id: string;
265
270
  name?: string;
@@ -278,6 +283,24 @@ interface XlsxShape {
278
283
  workbookSheetIndex: number;
279
284
  zIndex: number;
280
285
  }
286
+ type XlsxFormControlKind = "button" | "checkbox" | "dropdown" | "editbox" | "group-box" | "label" | "listbox" | "radio" | "scrollbar" | "spinner" | "unknown";
287
+ interface XlsxFormControl {
288
+ anchor: XlsxImageAnchor;
289
+ checked?: boolean;
290
+ fontFamily?: string;
291
+ fontSizePt?: number;
292
+ hidden?: boolean;
293
+ id: string;
294
+ kind: XlsxFormControlKind;
295
+ label?: string;
296
+ linkedCell?: string;
297
+ name?: string;
298
+ sheetIndex: number;
299
+ textAlign?: "center" | "left" | "right";
300
+ textColor?: string;
301
+ workbookSheetIndex: number;
302
+ zIndex: number;
303
+ }
281
304
  interface XlsxChartReference {
282
305
  formula?: string;
283
306
  refType?: string;
@@ -465,6 +488,7 @@ interface XlsxWorkbookTab {
465
488
  kind: "chartsheet" | "sheet";
466
489
  name: string;
467
490
  sheetIndex?: number;
491
+ visibility?: XlsxSheetVisibility;
468
492
  workbookSheetIndex?: number;
469
493
  }
470
494
  interface XlsxImageRect {
@@ -507,6 +531,7 @@ interface UseXlsxViewerControllerOptions {
507
531
  maxFileSizeBytes?: number;
508
532
  readOnly?: boolean;
509
533
  readOnlyAboveBytes?: number;
534
+ showHiddenSheets?: boolean;
510
535
  skipXmlParsing?: boolean;
511
536
  src?: string;
512
537
  useWorker?: boolean;
@@ -545,7 +570,9 @@ interface XlsxViewerController {
545
570
  clearSelectedImage: () => void;
546
571
  getChartById: (id: string) => XlsxChart | null;
547
572
  getChartsheetById: (id: string) => XlsxChartsheet | null;
573
+ formControls: XlsxFormControl[];
548
574
  getSheetCharts: (sheetIndex?: number) => XlsxChart[];
575
+ getSheetFormControls: (sheetIndex?: number) => XlsxFormControl[];
549
576
  getImageById: (id: string) => XlsxImage | null;
550
577
  getSheetImages: (sheetIndex?: number) => XlsxImage[];
551
578
  getSheetShapes: (sheetIndex?: number) => XlsxShape[];
@@ -721,13 +748,39 @@ interface XlsxViewerCharts {
721
748
  tabs: XlsxWorkbookTab[];
722
749
  updateChart: (id: string, patch: Partial<XlsxChart>) => void;
723
750
  }
751
+ type XlsxSheetThumbnailResolution = number | {
752
+ maxHeight?: number;
753
+ maxWidth?: number;
754
+ };
755
+ interface UseXlsxViewerThumbnailsOptions {
756
+ includeHeaders?: boolean;
757
+ resolution?: XlsxSheetThumbnailResolution;
758
+ }
759
+ interface XlsxSheetThumbnail {
760
+ aspectRatio: number;
761
+ contentHeight: number;
762
+ contentWidth: number;
763
+ height: number;
764
+ paint: (canvas: HTMLCanvasElement | null) => boolean;
765
+ sheet: XlsxSheetData;
766
+ sheetIndex: number;
767
+ sourceRange: XlsxCellRange;
768
+ width: number;
769
+ workbookSheetIndex: number;
770
+ }
771
+ interface XlsxViewerThumbnails {
772
+ paintThumbnail: (sheetIndex: number, canvas: HTMLCanvasElement | null) => boolean;
773
+ thumbnails: XlsxSheetThumbnail[];
774
+ }
724
775
  interface XlsxTableHeaderMenuRenderProps {
725
- close: () => void;
776
+ cell: XlsxCellAddress;
726
777
  column: XlsxTableColumn;
727
778
  direction: XlsxTableSortDirection | null;
728
779
  sortAscending: () => void;
729
780
  sortDescending: () => void;
730
781
  table: XlsxTable;
782
+ triggerIcon: string;
783
+ triggerProps: React.ButtonHTMLAttributes<HTMLButtonElement>;
731
784
  }
732
785
  interface XlsxViewerProviderProps extends UseXlsxViewerControllerOptions {
733
786
  children: React.ReactNode;
@@ -735,9 +788,13 @@ interface XlsxViewerProviderProps extends UseXlsxViewerControllerOptions {
735
788
  isDark?: boolean;
736
789
  }
737
790
  interface XlsxViewerProps extends UseXlsxViewerControllerOptions {
791
+ allowResizeInReadOnly?: boolean;
738
792
  className?: string;
739
793
  controller?: XlsxViewerController;
740
794
  emptyState?: React.ReactNode;
795
+ enableCanvasSelectionAnimation?: boolean;
796
+ enableGestureZoom?: boolean;
797
+ experimentalCanvas?: boolean;
741
798
  errorState?: React.ReactNode | ((error: Error) => React.ReactNode);
742
799
  fileTooLargeState?: React.ReactNode | ((props: XlsxFileTooLargeRenderProps) => React.ReactNode);
743
800
  height?: React.CSSProperties["height"];
@@ -773,7 +830,8 @@ declare function useXlsxViewerEditing(): XlsxViewerEditing;
773
830
  declare function useXlsxViewerTables(): XlsxViewerTables;
774
831
  declare function useXlsxViewerImages(): XlsxViewerImages;
775
832
  declare function useXlsxViewerCharts(): XlsxViewerCharts;
833
+ declare function useXlsxViewerThumbnails(options?: UseXlsxViewerThumbnailsOptions): XlsxViewerThumbnails;
776
834
  declare function XlsxViewer(props: XlsxViewerProps): react_jsx_runtime.JSX.Element;
777
835
  declare function DefaultXlsxToolbar(): react_jsx_runtime.JSX.Element;
778
836
 
779
- export { DefaultXlsxToolbar, type UseXlsxViewerControllerOptions, type XlsxCellAddress, type XlsxCellRange, type XlsxChart, type XlsxChartAxis, type XlsxChartDataLabels, type XlsxChartLoadingRenderProps, type XlsxChartReference, type XlsxChartSeries, type XlsxChartsheet, XlsxFileSizeLimitExceededError, type XlsxFileTooLargeRenderProps, type XlsxImage, type XlsxImageAnchor, type XlsxImageRect, type XlsxImageRenderProps, type XlsxImageResizeHandlePosition, type XlsxImageSelectionRenderProps, type XlsxShape, type XlsxShapeFill, type XlsxShapeParagraph, type XlsxShapeStroke, type XlsxShapeTextBox, type XlsxShapeTextRun, type XlsxSheetData, type XlsxTable, type XlsxTableColumn, type XlsxTableHeaderMenuRenderProps, type XlsxTableSortDirection, type XlsxTableSortState, type XlsxThemePalette, XlsxViewer, type XlsxViewerCharts, type XlsxViewerController, type XlsxViewerEditing, type XlsxViewerImages, type XlsxViewerProps, XlsxViewerProvider, type XlsxViewerProviderProps, type XlsxViewerSelection, type XlsxViewerTables, type XlsxViewerZoom, type XlsxWorkbookTab, useXlsxViewer, useXlsxViewerCharts, useXlsxViewerController, useXlsxViewerEditing, useXlsxViewerImages, useXlsxViewerSelection, useXlsxViewerTables, useXlsxViewerZoom };
837
+ export { DefaultXlsxToolbar, type UseXlsxViewerControllerOptions, type UseXlsxViewerThumbnailsOptions, type XlsxCellAddress, type XlsxCellRange, type XlsxChart, type XlsxChartAxis, type XlsxChartDataLabels, type XlsxChartLoadingRenderProps, type XlsxChartReference, type XlsxChartSeries, type XlsxChartsheet, XlsxFileSizeLimitExceededError, type XlsxFileTooLargeRenderProps, type XlsxImage, type XlsxImageAnchor, type XlsxImageRect, type XlsxImageRenderProps, type XlsxImageResizeHandlePosition, type XlsxImageSelectionRenderProps, type XlsxShape, type XlsxShapeFill, type XlsxShapeParagraph, type XlsxShapeStroke, type XlsxShapeTextBox, type XlsxShapeTextRun, type XlsxSheetData, type XlsxSheetThumbnail, type XlsxSheetThumbnailResolution, type XlsxSheetVisibility, type XlsxTable, type XlsxTableColumn, type XlsxTableHeaderMenuRenderProps, type XlsxTableSortDirection, type XlsxTableSortState, type XlsxThemePalette, XlsxViewer, type XlsxViewerCharts, type XlsxViewerController, type XlsxViewerEditing, type XlsxViewerImages, type XlsxViewerProps, XlsxViewerProvider, type XlsxViewerProviderProps, type XlsxViewerSelection, type XlsxViewerTables, type XlsxViewerThumbnails, type XlsxViewerZoom, type XlsxWorkbookTab, useXlsxViewer, useXlsxViewerCharts, useXlsxViewerController, useXlsxViewerEditing, useXlsxViewerImages, useXlsxViewerSelection, useXlsxViewerTables, useXlsxViewerThumbnails, useXlsxViewerZoom };
package/dist/index.d.ts CHANGED
@@ -78,6 +78,7 @@ interface XlsxFreezePanes {
78
78
  col: number;
79
79
  row: number;
80
80
  }
81
+ type XlsxSheetVisibility = "hidden" | "veryHidden" | "visible";
81
82
  interface XlsxSheetData {
82
83
  cachedFormulaValues: Record<string, string>;
83
84
  colWidthOverridesPx: Record<number, number>;
@@ -87,6 +88,7 @@ interface XlsxSheetData {
87
88
  conditionalFormatRules: XlsxConditionalFormatRule[];
88
89
  dataValidations: XlsxDataValidation[];
89
90
  name: string;
91
+ visibility: XlsxSheetVisibility;
90
92
  columnWidthCharacterWidthPx?: number;
91
93
  defaultColWidthPx: number;
92
94
  defaultRowHeightPx: number;
@@ -95,6 +97,8 @@ interface XlsxSheetData {
95
97
  hasVerticalMerges: boolean;
96
98
  maxHorizontalMergeEndCol: number;
97
99
  maxVerticalMergeEndRow: number;
100
+ minUsedCol: number;
101
+ minUsedRow: number;
98
102
  maxUsedCol: number;
99
103
  maxUsedRow: number;
100
104
  rowCount: number;
@@ -260,6 +264,7 @@ interface XlsxShape {
260
264
  flipV?: boolean;
261
265
  geometry: string;
262
266
  geometryAdjustments?: Record<string, number>;
267
+ hidden?: boolean;
263
268
  hyperlink?: string;
264
269
  id: string;
265
270
  name?: string;
@@ -278,6 +283,24 @@ interface XlsxShape {
278
283
  workbookSheetIndex: number;
279
284
  zIndex: number;
280
285
  }
286
+ type XlsxFormControlKind = "button" | "checkbox" | "dropdown" | "editbox" | "group-box" | "label" | "listbox" | "radio" | "scrollbar" | "spinner" | "unknown";
287
+ interface XlsxFormControl {
288
+ anchor: XlsxImageAnchor;
289
+ checked?: boolean;
290
+ fontFamily?: string;
291
+ fontSizePt?: number;
292
+ hidden?: boolean;
293
+ id: string;
294
+ kind: XlsxFormControlKind;
295
+ label?: string;
296
+ linkedCell?: string;
297
+ name?: string;
298
+ sheetIndex: number;
299
+ textAlign?: "center" | "left" | "right";
300
+ textColor?: string;
301
+ workbookSheetIndex: number;
302
+ zIndex: number;
303
+ }
281
304
  interface XlsxChartReference {
282
305
  formula?: string;
283
306
  refType?: string;
@@ -465,6 +488,7 @@ interface XlsxWorkbookTab {
465
488
  kind: "chartsheet" | "sheet";
466
489
  name: string;
467
490
  sheetIndex?: number;
491
+ visibility?: XlsxSheetVisibility;
468
492
  workbookSheetIndex?: number;
469
493
  }
470
494
  interface XlsxImageRect {
@@ -507,6 +531,7 @@ interface UseXlsxViewerControllerOptions {
507
531
  maxFileSizeBytes?: number;
508
532
  readOnly?: boolean;
509
533
  readOnlyAboveBytes?: number;
534
+ showHiddenSheets?: boolean;
510
535
  skipXmlParsing?: boolean;
511
536
  src?: string;
512
537
  useWorker?: boolean;
@@ -545,7 +570,9 @@ interface XlsxViewerController {
545
570
  clearSelectedImage: () => void;
546
571
  getChartById: (id: string) => XlsxChart | null;
547
572
  getChartsheetById: (id: string) => XlsxChartsheet | null;
573
+ formControls: XlsxFormControl[];
548
574
  getSheetCharts: (sheetIndex?: number) => XlsxChart[];
575
+ getSheetFormControls: (sheetIndex?: number) => XlsxFormControl[];
549
576
  getImageById: (id: string) => XlsxImage | null;
550
577
  getSheetImages: (sheetIndex?: number) => XlsxImage[];
551
578
  getSheetShapes: (sheetIndex?: number) => XlsxShape[];
@@ -721,13 +748,39 @@ interface XlsxViewerCharts {
721
748
  tabs: XlsxWorkbookTab[];
722
749
  updateChart: (id: string, patch: Partial<XlsxChart>) => void;
723
750
  }
751
+ type XlsxSheetThumbnailResolution = number | {
752
+ maxHeight?: number;
753
+ maxWidth?: number;
754
+ };
755
+ interface UseXlsxViewerThumbnailsOptions {
756
+ includeHeaders?: boolean;
757
+ resolution?: XlsxSheetThumbnailResolution;
758
+ }
759
+ interface XlsxSheetThumbnail {
760
+ aspectRatio: number;
761
+ contentHeight: number;
762
+ contentWidth: number;
763
+ height: number;
764
+ paint: (canvas: HTMLCanvasElement | null) => boolean;
765
+ sheet: XlsxSheetData;
766
+ sheetIndex: number;
767
+ sourceRange: XlsxCellRange;
768
+ width: number;
769
+ workbookSheetIndex: number;
770
+ }
771
+ interface XlsxViewerThumbnails {
772
+ paintThumbnail: (sheetIndex: number, canvas: HTMLCanvasElement | null) => boolean;
773
+ thumbnails: XlsxSheetThumbnail[];
774
+ }
724
775
  interface XlsxTableHeaderMenuRenderProps {
725
- close: () => void;
776
+ cell: XlsxCellAddress;
726
777
  column: XlsxTableColumn;
727
778
  direction: XlsxTableSortDirection | null;
728
779
  sortAscending: () => void;
729
780
  sortDescending: () => void;
730
781
  table: XlsxTable;
782
+ triggerIcon: string;
783
+ triggerProps: React.ButtonHTMLAttributes<HTMLButtonElement>;
731
784
  }
732
785
  interface XlsxViewerProviderProps extends UseXlsxViewerControllerOptions {
733
786
  children: React.ReactNode;
@@ -735,9 +788,13 @@ interface XlsxViewerProviderProps extends UseXlsxViewerControllerOptions {
735
788
  isDark?: boolean;
736
789
  }
737
790
  interface XlsxViewerProps extends UseXlsxViewerControllerOptions {
791
+ allowResizeInReadOnly?: boolean;
738
792
  className?: string;
739
793
  controller?: XlsxViewerController;
740
794
  emptyState?: React.ReactNode;
795
+ enableCanvasSelectionAnimation?: boolean;
796
+ enableGestureZoom?: boolean;
797
+ experimentalCanvas?: boolean;
741
798
  errorState?: React.ReactNode | ((error: Error) => React.ReactNode);
742
799
  fileTooLargeState?: React.ReactNode | ((props: XlsxFileTooLargeRenderProps) => React.ReactNode);
743
800
  height?: React.CSSProperties["height"];
@@ -773,7 +830,8 @@ declare function useXlsxViewerEditing(): XlsxViewerEditing;
773
830
  declare function useXlsxViewerTables(): XlsxViewerTables;
774
831
  declare function useXlsxViewerImages(): XlsxViewerImages;
775
832
  declare function useXlsxViewerCharts(): XlsxViewerCharts;
833
+ declare function useXlsxViewerThumbnails(options?: UseXlsxViewerThumbnailsOptions): XlsxViewerThumbnails;
776
834
  declare function XlsxViewer(props: XlsxViewerProps): react_jsx_runtime.JSX.Element;
777
835
  declare function DefaultXlsxToolbar(): react_jsx_runtime.JSX.Element;
778
836
 
779
- export { DefaultXlsxToolbar, type UseXlsxViewerControllerOptions, type XlsxCellAddress, type XlsxCellRange, type XlsxChart, type XlsxChartAxis, type XlsxChartDataLabels, type XlsxChartLoadingRenderProps, type XlsxChartReference, type XlsxChartSeries, type XlsxChartsheet, XlsxFileSizeLimitExceededError, type XlsxFileTooLargeRenderProps, type XlsxImage, type XlsxImageAnchor, type XlsxImageRect, type XlsxImageRenderProps, type XlsxImageResizeHandlePosition, type XlsxImageSelectionRenderProps, type XlsxShape, type XlsxShapeFill, type XlsxShapeParagraph, type XlsxShapeStroke, type XlsxShapeTextBox, type XlsxShapeTextRun, type XlsxSheetData, type XlsxTable, type XlsxTableColumn, type XlsxTableHeaderMenuRenderProps, type XlsxTableSortDirection, type XlsxTableSortState, type XlsxThemePalette, XlsxViewer, type XlsxViewerCharts, type XlsxViewerController, type XlsxViewerEditing, type XlsxViewerImages, type XlsxViewerProps, XlsxViewerProvider, type XlsxViewerProviderProps, type XlsxViewerSelection, type XlsxViewerTables, type XlsxViewerZoom, type XlsxWorkbookTab, useXlsxViewer, useXlsxViewerCharts, useXlsxViewerController, useXlsxViewerEditing, useXlsxViewerImages, useXlsxViewerSelection, useXlsxViewerTables, useXlsxViewerZoom };
837
+ export { DefaultXlsxToolbar, type UseXlsxViewerControllerOptions, type UseXlsxViewerThumbnailsOptions, type XlsxCellAddress, type XlsxCellRange, type XlsxChart, type XlsxChartAxis, type XlsxChartDataLabels, type XlsxChartLoadingRenderProps, type XlsxChartReference, type XlsxChartSeries, type XlsxChartsheet, XlsxFileSizeLimitExceededError, type XlsxFileTooLargeRenderProps, type XlsxImage, type XlsxImageAnchor, type XlsxImageRect, type XlsxImageRenderProps, type XlsxImageResizeHandlePosition, type XlsxImageSelectionRenderProps, type XlsxShape, type XlsxShapeFill, type XlsxShapeParagraph, type XlsxShapeStroke, type XlsxShapeTextBox, type XlsxShapeTextRun, type XlsxSheetData, type XlsxSheetThumbnail, type XlsxSheetThumbnailResolution, type XlsxSheetVisibility, type XlsxTable, type XlsxTableColumn, type XlsxTableHeaderMenuRenderProps, type XlsxTableSortDirection, type XlsxTableSortState, type XlsxThemePalette, XlsxViewer, type XlsxViewerCharts, type XlsxViewerController, type XlsxViewerEditing, type XlsxViewerImages, type XlsxViewerProps, XlsxViewerProvider, type XlsxViewerProviderProps, type XlsxViewerSelection, type XlsxViewerTables, type XlsxViewerThumbnails, type XlsxViewerZoom, type XlsxWorkbookTab, useXlsxViewer, useXlsxViewerCharts, useXlsxViewerController, useXlsxViewerEditing, useXlsxViewerImages, useXlsxViewerSelection, useXlsxViewerTables, useXlsxViewerThumbnails, useXlsxViewerZoom };