office-viewer 0.3.5 → 0.3.7

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 (101) hide show
  1. package/esm/common/autoParse.js +7 -1
  2. package/esm/excel/edit/ui/CellEditor.d.ts +1 -0
  3. package/esm/excel/edit/ui/CellEditor.js +18 -5
  4. package/esm/excel/io/excel/util/Range.d.ts +1 -1
  5. package/esm/excel/render/autoFilter/AutoFilterIconUI.d.ts +2 -0
  6. package/esm/excel/render/autoFilter/AutoFilterIconUI.js +5 -1
  7. package/esm/excel/render/autoFilter/filterColumn/CustomFiltersUI.js +9 -3
  8. package/esm/excel/render/cell/drawCells.js +1 -1
  9. package/esm/excel/render/cell/frozen/drawFrozen.d.ts +1 -1
  10. package/esm/excel/render/cell/frozen/getFrozenLeftViewPointRange.d.ts +1 -1
  11. package/esm/excel/render/cell/frozen/getFrozenTopLeftViewPointRange.d.ts +1 -1
  12. package/esm/excel/render/cell/frozen/getFrozenTopViewPointRange.d.ts +1 -1
  13. package/esm/excel/render/dnd/DragState.d.ts +1 -1
  14. package/esm/excel/render/drawing/drawDrawing.d.ts +1 -1
  15. package/esm/excel/render/drawing/findPositionInViewRange.d.ts +1 -1
  16. package/esm/excel/render/drawing/getRectFromAnchorPoint.d.ts +1 -1
  17. package/esm/excel/render/formulaBar/FormulaBar.js +7 -3
  18. package/esm/excel/render/grid/drawGridLines.d.ts +1 -1
  19. package/esm/excel/render/header/drawRowColHeaders.d.ts +1 -1
  20. package/esm/excel/render/header/drawRowColHeaders.js +3 -0
  21. package/esm/excel/render/selection/SheetSelection.d.ts +1 -1
  22. package/esm/excel/render/selection/binarySearchSize.d.ts +1 -1
  23. package/esm/excel/render/selection/findCell.d.ts +1 -1
  24. package/esm/excel/render/selection/findInViewRange.d.ts +1 -1
  25. package/esm/excel/render/selection/findInViewRangeX.d.ts +1 -1
  26. package/esm/excel/render/selection/findInViewRangeY.d.ts +1 -1
  27. package/esm/excel/render/selection/getCellPosition.d.ts +1 -1
  28. package/esm/excel/render/selection/getRangePosition.d.ts +1 -1
  29. package/esm/excel/render/selection/hitTest.d.ts +1 -1
  30. package/esm/excel/render/selection/hitTestInRange.d.ts +1 -1
  31. package/esm/excel/render/sparkline/drawSparkline.d.ts +1 -1
  32. package/esm/excel/render/ui/CheckBoxList.js +6 -2
  33. package/esm/excel/render/ui/Input.d.ts +9 -1
  34. package/esm/excel/render/ui/Input.js +15 -11
  35. package/esm/excel/types/X14Sparkline/X14SparklineGroup.d.ts +1 -1
  36. package/esm/excel/types/X14Sparkline/X14SparklineGroup.js +1 -1
  37. package/esm/excel/types/worksheet/CellData.js +10 -0
  38. package/esm/util/__tests__/replaceVar.test.d.ts +1 -1
  39. package/esm/util/__tests__/xmlToNode.test.d.ts +1 -0
  40. package/esm/util/onClickOutside.d.ts +2 -2
  41. package/esm/util/onClickOutside.js +4 -1
  42. package/esm/util/onClickOutsideOnce.d.ts +4 -0
  43. package/esm/util/onClickOutsideOnce.js +14 -0
  44. package/esm/util/xmlToNode.d.ts +5 -0
  45. package/lib/common/autoParse.js +7 -1
  46. package/lib/excel/edit/ui/CellEditor.d.ts +1 -0
  47. package/lib/excel/edit/ui/CellEditor.js +18 -5
  48. package/lib/excel/io/excel/util/Range.d.ts +1 -1
  49. package/lib/excel/lang/lang.d.ts +1 -1
  50. package/lib/excel/render/autoFilter/AutoFilterIconUI.d.ts +2 -0
  51. package/lib/excel/render/autoFilter/AutoFilterIconUI.js +5 -1
  52. package/lib/excel/render/autoFilter/filterColumn/CustomFiltersUI.js +9 -3
  53. package/lib/excel/render/autoFilter/sortState/getColumnSortOrder.d.ts +1 -1
  54. package/lib/excel/render/cell/drawCells.js +1 -1
  55. package/lib/excel/render/cell/frozen/drawFrozen.d.ts +1 -1
  56. package/lib/excel/render/cell/frozen/getFrozenLeftViewPointRange.d.ts +1 -1
  57. package/lib/excel/render/cell/frozen/getFrozenTopLeftViewPointRange.d.ts +1 -1
  58. package/lib/excel/render/cell/frozen/getFrozenTopViewPointRange.d.ts +1 -1
  59. package/lib/excel/render/dnd/DragState.d.ts +1 -1
  60. package/lib/excel/render/dnd/mousedownColHeader.d.ts +1 -1
  61. package/lib/excel/render/dnd/mousedownRowHeader.d.ts +1 -1
  62. package/lib/excel/render/drawing/drawDrawing.d.ts +1 -1
  63. package/lib/excel/render/drawing/findPositionInViewRange.d.ts +1 -1
  64. package/lib/excel/render/drawing/getRectFromAnchorPoint.d.ts +1 -1
  65. package/lib/excel/render/formulaBar/FormulaBar.js +7 -3
  66. package/lib/excel/render/grid/drawGridLines.d.ts +1 -1
  67. package/lib/excel/render/header/drawRowColHeaders.d.ts +1 -1
  68. package/lib/excel/render/header/drawRowColHeaders.js +3 -0
  69. package/lib/excel/render/selection/SheetSelection.d.ts +1 -1
  70. package/lib/excel/render/selection/binarySearchSize.d.ts +1 -1
  71. package/lib/excel/render/selection/findCell.d.ts +1 -1
  72. package/lib/excel/render/selection/findInViewRange.d.ts +1 -1
  73. package/lib/excel/render/selection/findInViewRangeX.d.ts +1 -1
  74. package/lib/excel/render/selection/findInViewRangeY.d.ts +1 -1
  75. package/lib/excel/render/selection/getCellPosition.d.ts +1 -1
  76. package/lib/excel/render/selection/getRangePosition.d.ts +1 -1
  77. package/lib/excel/render/selection/hitTest.d.ts +1 -1
  78. package/lib/excel/render/selection/hitTestInRange.d.ts +1 -1
  79. package/lib/excel/render/sparkline/drawSparkline.d.ts +1 -1
  80. package/lib/excel/render/ui/CheckBoxList.js +6 -2
  81. package/lib/excel/render/ui/Input.d.ts +9 -1
  82. package/lib/excel/render/ui/Input.js +15 -11
  83. package/lib/excel/types/X14Sparkline/X14SparklineGroup.d.ts +1 -1
  84. package/lib/excel/types/X14Sparkline/X14SparklineGroup.js +2 -2
  85. package/lib/excel/types/worksheet/CellData.js +10 -0
  86. package/lib/package/XMLPackageParser.d.ts +1 -1
  87. package/lib/package/ZipPackageParser.d.ts +1 -1
  88. package/lib/util/__tests__/replaceVar.test.d.ts +1 -1
  89. package/lib/util/__tests__/xmlToNode.test.d.ts +1 -0
  90. package/lib/util/onClickOutside.d.ts +2 -2
  91. package/lib/util/onClickOutside.js +4 -1
  92. package/lib/util/onClickOutsideOnce.d.ts +4 -0
  93. package/lib/util/onClickOutsideOnce.js +18 -0
  94. package/lib/util/xmlToNode.d.ts +5 -0
  95. package/package.json +5 -3
  96. package/esm/util/runWorker.d.ts +0 -6
  97. package/lib/util/runWorker.d.ts +0 -6
  98. /package/esm/excel/types/X14Sparkline/{x14:sparklines.d.ts → x14Sparklines.d.ts} +0 -0
  99. /package/esm/excel/types/X14Sparkline/{x14_sparklines.js → x14Sparklines.js} +0 -0
  100. /package/lib/excel/types/X14Sparkline/{x14:sparklines.d.ts → x14Sparklines.d.ts} +0 -0
  101. /package/lib/excel/types/X14Sparkline/{x14_sparklines.js → x14Sparklines.js} +0 -0
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * 处理选区相关的工具函数
3
3
  */
4
- import { ViewRange } from 'src/excel/sheet/ViewRange';
4
+ import { ViewRange } from '../../../sheet/ViewRange';
5
5
  import { RangeRef } from '../../../types/RangeRef';
6
6
  /**
7
7
  * 解析选区字符串,比如 A1:B2
@@ -23,7 +23,7 @@ declare const languages: {
23
23
  count: string;
24
24
  sum: string;
25
25
  };
26
- zh_CN: Record<"autoFilter.sortAscending" | "autoFilter.sortDescending" | "checkBox.selectAll" | "checkBox.search" | "customFilter.equal" | "customFilter.notEqual" | "customFilter.greaterThan" | "customFilter.greaterThanOrEqual" | "customFilter.lessThan" | "customFilter.lessThanOrEqual" | "customFilter.beginsWith" | "customFilter.notBeginsWith" | "customFilter.endsWith" | "customFilter.notEndsWith" | "customFilter.contains" | "customFilter.notContains" | "customFilter.and" | "customFilter.or" | "average" | "count" | "sum", string>;
26
+ zh_CN: Record<"count" | "sum" | "average" | "customFilter.equal" | "customFilter.notEqual" | "customFilter.beginsWith" | "customFilter.notBeginsWith" | "customFilter.endsWith" | "customFilter.notEndsWith" | "customFilter.contains" | "customFilter.notContains" | "customFilter.greaterThan" | "customFilter.greaterThanOrEqual" | "customFilter.lessThan" | "customFilter.lessThanOrEqual" | "autoFilter.sortAscending" | "autoFilter.sortDescending" | "checkBox.selectAll" | "checkBox.search" | "customFilter.and" | "customFilter.or", string>;
27
27
  };
28
28
  export type Language = keyof typeof languages;
29
29
  export declare function getTranslate(language: string): (key: EnKeys) => string;
@@ -19,6 +19,7 @@ export declare class AutoFilterIconUI {
19
19
  rangeRef: RangeRef;
20
20
  colIndex: number;
21
21
  autoFilter: CT_AutoFilter;
22
+ removeClickOutsideEvent: () => void;
22
23
  constructor(sheet: Sheet, dataContainer: HTMLElement, autoFilter: CT_AutoFilter, rangeRef: RangeRef, colIndex: number, fid: string, headerRowCount?: number);
23
24
  /**
24
25
  * 更新过滤图标
@@ -30,4 +31,5 @@ export declare class AutoFilterIconUI {
30
31
  showMenu(): void;
31
32
  hideMenu(): void;
32
33
  hide(): void;
34
+ destroy(): void;
33
35
  }
@@ -33,7 +33,7 @@ var AutoFilterIconUI = /** @class */ (function () {
33
33
  this.filterIcon = filterIcon;
34
34
  this.filterMenu = new AutoFilterMenuUI.AutoFilterMenuUI(this, filterIconContainer, sheet, autoFilter, rangeRef, colIndex, headerRowCount);
35
35
  filterIcon.addEventListener('click', this.handleClick.bind(this));
36
- onClickOutside.onClickOutside(filterIconContainer, function () {
36
+ this.removeClickOutsideEvent = onClickOutside.onClickOutside(filterIconContainer, function () {
37
37
  _this.hideMenu();
38
38
  });
39
39
  }
@@ -83,6 +83,10 @@ var AutoFilterIconUI = /** @class */ (function () {
83
83
  AutoFilterIconUI.prototype.hide = function () {
84
84
  this.filterIconContainer.style.display = 'none';
85
85
  };
86
+ AutoFilterIconUI.prototype.destroy = function () {
87
+ this.filterIconContainer.remove();
88
+ this.removeClickOutsideEvent();
89
+ };
86
90
  return AutoFilterIconUI;
87
91
  }());
88
92
 
@@ -120,9 +120,15 @@ var CustomFiltersUI = /** @class */ (function () {
120
120
  var select = new Select.Select(customFilterItemInput, this.operatorOptions, toOperatorUI.toOperatorUI(operator, value), function () {
121
121
  _this.syncCustomFilters();
122
122
  });
123
- var input = new Input.Input(customFilterItemInput, '', value, function () {
124
- _this.syncCustomFilters();
125
- }, 'normal', this.texts);
123
+ var input = new Input.Input({
124
+ container: customFilterItemInput,
125
+ value: value,
126
+ onChange: function () {
127
+ _this.syncCustomFilters();
128
+ },
129
+ style: 'normal',
130
+ options: this.texts
131
+ });
126
132
  this.customFilterItems.push({ input: input, select: select });
127
133
  };
128
134
  /**
@@ -3,4 +3,4 @@
3
3
  */
4
4
  import { CT_SortState } from '../../../../openxml/ExcelTypes';
5
5
  import { RangeRef } from '../../../types/RangeRef';
6
- export declare function getColumnSortOrder(colIndex: number, rangeRef: RangeRef, sortState?: CT_SortState): "none" | "desc" | "asc";
6
+ export declare function getColumnSortOrder(colIndex: number, rangeRef: RangeRef, sortState?: CT_SortState): "desc" | "none" | "asc";
@@ -20,7 +20,7 @@ function drawCells(excelRender, currentSheet, excelRenderOptions, canvas, displa
20
20
  }
21
21
  var cellInfo = currentSheet.getCellInfo(row, col);
22
22
  if (cellInfo) {
23
- cellInfoMap.set("".concat(row, ",").concat(col), tslib.__assign(tslib.__assign({}, cellInfo), { width: width, height: height }));
23
+ cellInfoMap.set("".concat(row, ",").concat(col), tslib.__assign(tslib.__assign({}, JSON.parse(JSON.stringify(cellInfo))), { width: width, height: height }));
24
24
  }
25
25
  }
26
26
  }
@@ -1,10 +1,10 @@
1
1
  import { ExcelRenderOptions } from '../../../sheet/ExcelRenderOptions';
2
2
  import { Sheet } from '../../../sheet/Sheet';
3
3
  import { SheetCanvas } from '../../SheetCanvas';
4
- import { ViewRange } from 'src/excel/sheet/ViewRange';
5
4
  import { IDataProvider } from '../../../types/IDataProvider';
6
5
  import { LinkPosition } from '../LinkPosition';
7
6
  import { ExcelRender } from '../../ExcelRender';
7
+ import { ViewRange } from '../../../sheet/ViewRange';
8
8
  export type FrozenViewRange = {
9
9
  topViewRange: ViewRange | null;
10
10
  leftViewRange: ViewRange | null;
@@ -1,5 +1,5 @@
1
+ import { ViewRange } from '../../../sheet/ViewRange';
1
2
  import { IndexInfo } from '../../../sheet/getViewRange';
2
- import { ViewRange } from 'src/excel/sheet/ViewRange';
3
3
  /**
4
4
  * 获取左边冻结的范围
5
5
  * @param xSplit
@@ -1,4 +1,4 @@
1
- import { ViewRange } from 'src/excel/sheet/ViewRange';
1
+ import { ViewRange } from '../../../sheet/ViewRange';
2
2
  /**
3
3
  * 获取左上角冻结区域的访问
4
4
  */
@@ -1,5 +1,5 @@
1
+ import { ViewRange } from '../../../sheet/ViewRange';
1
2
  import { HiddenRange, IndexInfo } from '../../../sheet/getViewRange';
2
- import { ViewRange } from 'src/excel/sheet/ViewRange';
3
3
  /**
4
4
  * 获取顶部冻结的范围
5
5
  * @param ySplit
@@ -1,5 +1,5 @@
1
1
  import type { Workbook } from '../../Workbook';
2
- import { Region } from 'src/excel/sheet/ViewRange';
2
+ import { Region } from '../../sheet/ViewRange';
3
3
  import { SheetSelection } from '../selection/SheetSelection';
4
4
  import { HitTestResult } from '../selection/hitTest';
5
5
  export interface DragState {
@@ -10,7 +10,7 @@ import { HitTestResult } from '../selection/hitTest';
10
10
  export declare function mousedownColHeader(workbook: Workbook, hitTestResult: HitTestResult): {
11
11
  user: string;
12
12
  region: import("../../sheet/ViewRange").Region;
13
- selectType: "corner" | "drawing" | "cell" | "row-header" | "col-header" | "row-grid" | "col-grid";
13
+ selectType: "cell" | "corner" | "drawing" | "row-header" | "col-header" | "row-grid" | "col-grid";
14
14
  activeCell: RangeRef;
15
15
  sheetIndex: number;
16
16
  cellRanges: {
@@ -10,7 +10,7 @@ import { HitTestResult } from '../selection/hitTest';
10
10
  export declare function mousedownRowHeader(workbook: Workbook, hitTestResult: HitTestResult): {
11
11
  user: string;
12
12
  region: import("../../sheet/ViewRange").Region;
13
- selectType: "corner" | "drawing" | "cell" | "row-header" | "col-header" | "row-grid" | "col-grid";
13
+ selectType: "cell" | "corner" | "drawing" | "row-header" | "col-header" | "row-grid" | "col-grid";
14
14
  activeCell: RangeRef;
15
15
  sheetIndex: number;
16
16
  cellRanges: {
@@ -1,7 +1,7 @@
1
1
  import { Sheet } from '../../sheet/Sheet';
2
2
  import { SheetCanvas } from '../SheetCanvas';
3
- import { ViewRange } from 'src/excel/sheet/ViewRange';
4
3
  import { ExcelRender } from '../ExcelRender';
4
+ import { ViewRange } from '../../sheet/ViewRange';
5
5
  /**
6
6
  * 绘制 sheet 里的图片及文本框
7
7
  */
@@ -1,5 +1,5 @@
1
1
  import { Sheet } from '../../sheet/Sheet';
2
- import { ViewRange } from 'src/excel/sheet/ViewRange';
2
+ import { ViewRange } from '../../sheet/ViewRange';
3
3
  import { Rect } from '../Rect';
4
4
  /**
5
5
  * 在 viewRange 中找到 row 和 col 的位置
@@ -1,6 +1,6 @@
1
1
  import { CT_Marker } from '../../../openxml/ExcelTypes';
2
2
  import { Sheet } from '../../sheet/Sheet';
3
- import { ViewRange } from 'src/excel/sheet/ViewRange';
3
+ import { ViewRange } from '../../sheet/ViewRange';
4
4
  export declare function getRectFromOneAnchorPoint(currentSheet: Sheet, cell: CT_Marker, viewRange: ViewRange): {
5
5
  x: number;
6
6
  y: number;
@@ -39,9 +39,13 @@ var FormulaBar = /** @class */ (function () {
39
39
  parent: this.dom
40
40
  });
41
41
  this.textBox = textBox;
42
- var textInput = new Input.Input(textBox, '', '', function (value) {
43
- _this.changeCellValue(value);
44
- }, 'borderLess');
42
+ var textInput = new Input.Input({
43
+ container: textBox,
44
+ onChange: function (value) {
45
+ _this.changeCellValue(value);
46
+ },
47
+ style: 'borderLess'
48
+ });
45
49
  this.textInput = textInput;
46
50
  };
47
51
  FormulaBar.prototype.getActiveCell = function () {
@@ -1,6 +1,6 @@
1
1
  import { GridLineOptions } from '../../sheet/ExcelRenderOptions';
2
2
  import { Sheet } from '../../sheet/Sheet';
3
- import { ViewRange } from 'src/excel/sheet/ViewRange';
3
+ import { ViewRange } from '../../sheet/ViewRange';
4
4
  import { SheetCanvas, Line } from '../SheetCanvas';
5
5
  /**
6
6
  * 生成网格线
@@ -1,6 +1,6 @@
1
1
  import { ExcelRenderOptions } from '../../sheet/ExcelRenderOptions';
2
2
  import { Sheet } from '../../sheet/Sheet';
3
- import { ViewRange } from 'src/excel/sheet/ViewRange';
3
+ import { ViewRange } from '../../sheet/ViewRange';
4
4
  import { FontSize } from '../../types/FontSize';
5
5
  import { FontStyle } from '../../types/FontStyle';
6
6
  import { SheetCanvas } from '../SheetCanvas';
@@ -11,6 +11,9 @@ var genFontStr = require('../cell/genFontStr.js');
11
11
  */
12
12
  function drawRowColHeaders(currentSheet, viewRange, sheetCanvas, renderOptions, defaultFontSize, defaultFontStyle) {
13
13
  var e_1, _a, e_2, _b;
14
+ if (currentSheet.showRowColHeaders() === false) {
15
+ return;
16
+ }
14
17
  var rows = viewRange.rows, startRowOffset = viewRange.startRowOffset, height = viewRange.height, width = viewRange.width, cols = viewRange.cols, startColOffset = viewRange.startColOffset;
15
18
  var _c = currentSheet.getRowColSize(), rowHeaderWidth = _c.rowHeaderWidth, colHeaderHeight = _c.colHeaderHeight;
16
19
  var gridLineColor = renderOptions.gridLineColor, rowColHeadersBgColor = renderOptions.rowColHeadersBackgroundColor, hiddenRowColHeadersLineColor = renderOptions.hiddenRowColHeadersLineColor;
@@ -1,4 +1,4 @@
1
- import { Region } from 'src/excel/sheet/ViewRange';
1
+ import { Region } from '../../sheet/ViewRange';
2
2
  import { RangeRef } from '../../types/RangeRef';
3
3
  import { HitTestResult } from './hitTest';
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { Size } from 'src/excel/sheet/ViewRange';
1
+ import { Size } from '../../sheet/ViewRange';
2
2
  /**
3
3
  * 二分查找到到 hitTest 的位置
4
4
  * @param sizes 位置信息
@@ -1,4 +1,4 @@
1
- import { Region, ViewRange } from 'src/excel/sheet/ViewRange';
1
+ import { Region, ViewRange } from '../../sheet/ViewRange';
2
2
  import { RangeRef } from '../../types/RangeRef';
3
3
  import { HitTestResult } from './hitTest';
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { ViewRange } from 'src/excel/sheet/ViewRange';
1
+ import { ViewRange } from '../../sheet/ViewRange';
2
2
  /**
3
3
  * 在视图范围内查找
4
4
  */
@@ -1,4 +1,4 @@
1
- import { ViewRange } from 'src/excel/sheet/ViewRange';
1
+ import { ViewRange } from '../../sheet/ViewRange';
2
2
  /**
3
3
  * 在视图范围水平方向内查找
4
4
  */
@@ -1,4 +1,4 @@
1
- import { ViewRange } from 'src/excel/sheet/ViewRange';
1
+ import { ViewRange } from '../../sheet/ViewRange';
2
2
  /**
3
3
  * 在视图范围垂直方向内查找
4
4
  */
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * 获取单元格的位置信息
3
3
  */
4
- import { Region } from 'src/excel/sheet/ViewRange';
5
4
  import { Position } from './Position';
6
5
  import { Sheet } from '../../sheet/Sheet';
6
+ import { Region } from '../../sheet/ViewRange';
7
7
  /**
8
8
  * 获取单元格的行位置
9
9
  */
@@ -1,5 +1,5 @@
1
1
  import { Workbook } from '../../Workbook';
2
- import { Region } from 'src/excel/sheet/ViewRange';
2
+ import { Region } from '../../sheet/ViewRange';
3
3
  import { RangeRef } from '../../types/RangeRef';
4
4
  /**
5
5
  * 算出选中区域的位置信息
@@ -1,8 +1,8 @@
1
- import { Region, ViewRange } from 'src/excel/sheet/ViewRange';
2
1
  import { RangeRef } from '../../types/RangeRef';
3
2
  import { FrozenViewRange } from '../cell/frozen/drawFrozen';
4
3
  import { Position } from './Position';
5
4
  import { IAbsoluteAnchor, IOneCellAnchor, ITwoCellAnchor } from '../../types/IDrawing';
5
+ import { Region, ViewRange } from '../../sheet/ViewRange';
6
6
  export type HitTestCommon = Position & RangeRef;
7
7
  /**
8
8
  * 点击到表头的最左上角
@@ -1,4 +1,4 @@
1
- import { Region, ViewRange } from 'src/excel/sheet/ViewRange';
1
+ import { Region, ViewRange } from '../../sheet/ViewRange';
2
2
  import { RangeRef } from '../../types/RangeRef';
3
3
  import { HitTestResult } from './hitTest';
4
4
  /**
@@ -2,6 +2,6 @@
2
2
  * 绘制 sparkline
3
3
  */
4
4
  import { Sheet } from '../../sheet/Sheet';
5
- import { ViewRange } from 'src/excel/sheet/ViewRange';
6
5
  import { SheetCanvas } from '../SheetCanvas';
6
+ import { ViewRange } from '../../sheet/ViewRange';
7
7
  export declare function drawSparkline(currentSheet: Sheet, viewRange: ViewRange, canvas: SheetCanvas): void;
@@ -21,8 +21,12 @@ var CheckBoxList = /** @class */ (function () {
21
21
  className: 'excel-checkbox-list-wrapper',
22
22
  parent: container
23
23
  });
24
- var searchInput = new Input.Input(wrapper, searchPlaceholder, '', function (text) {
25
- _this.handleSearch(text);
24
+ var searchInput = new Input.Input({
25
+ container: wrapper,
26
+ placeholder: searchPlaceholder,
27
+ onChange: function (text) {
28
+ _this.handleSearch(text);
29
+ }
26
30
  });
27
31
  this.searchInput = searchInput;
28
32
  var listContainer = H.H('div', {
@@ -3,7 +3,15 @@
3
3
  */
4
4
  export declare class Input {
5
5
  input: HTMLInputElement;
6
- constructor(container: HTMLElement, placeholder: string, value: string, onChange: (value: string) => void, style?: 'normal' | 'borderLess', options?: string[]);
6
+ constructor(args: {
7
+ container: HTMLElement;
8
+ placeholder?: string;
9
+ value?: string;
10
+ onChange: (value: string) => void;
11
+ onEnter?: (value: string) => void;
12
+ style?: 'normal' | 'borderLess';
13
+ options?: string[];
14
+ });
7
15
  getElement(): HTMLInputElement;
8
16
  getValue(): string;
9
17
  setValue(text: string): void;
@@ -7,26 +7,30 @@ Object.defineProperty(exports, '__esModule', { value: true });
7
7
  */
8
8
  var inputId = 0;
9
9
  var Input = /** @class */ (function () {
10
- function Input(container, placeholder, value, onChange, style, options) {
11
- if (style === void 0) { style = 'normal'; }
12
- if (options === void 0) { options = []; }
10
+ function Input(args) {
13
11
  var _this = this;
14
12
  this.input = document.createElement('input');
15
- this.input.value = value;
16
- this.input.placeholder = placeholder;
17
- container.appendChild(this.input);
13
+ this.input.value = args.value || '';
14
+ this.input.placeholder = args.placeholder || '';
15
+ args.container.appendChild(this.input);
18
16
  this.input.className = 'excel-input';
19
- if (style === 'borderLess') {
17
+ if (args.style === 'borderLess') {
20
18
  this.input.classList.add('excel-input-border-less');
21
19
  }
22
20
  this.input.oninput = function () {
23
- onChange(_this.input.value);
21
+ args.onChange(_this.input.value);
24
22
  };
25
- if (options.length) {
23
+ this.input.onkeydown = function (e) {
24
+ var _a;
25
+ if (e.key === 'Enter') {
26
+ (_a = args.onEnter) === null || _a === void 0 ? void 0 : _a.call(args, _this.input.value);
27
+ }
28
+ };
29
+ if (args.options && args.options.length) {
26
30
  var datalist_1 = document.createElement('datalist');
27
31
  datalist_1.id = "".concat(inputId++, "-list");
28
- container.appendChild(datalist_1);
29
- options.forEach(function (option) {
32
+ args.container.appendChild(datalist_1);
33
+ args.options.forEach(function (option) {
30
34
  var optionElement = document.createElement('option');
31
35
  optionElement.value = option;
32
36
  datalist_1.appendChild(optionElement);
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { Attributes } from '../../../openxml/Attributes';
5
5
  import { CT_Color } from '../CT_Color';
6
- import { X14Sparklines } from './x14:sparklines';
6
+ import { X14Sparklines } from './x14Sparklines';
7
7
  export type ST_SparklineAxisMinMax = 'individual' | 'groupMax' | 'group';
8
8
  export type X14SparklineGroup = {
9
9
  'displayEmptyCellsAs'?: 'gap' | 'zero' | 'span';
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var CT_Color = require('../CT_Color.js');
6
- var x14_sparklines = require('./x14_sparklines.js');
6
+ var x14Sparklines = require('./x14Sparklines.js');
7
7
 
8
8
  /**
9
9
  * 目前先简单实现,后面再改成自动解析
@@ -105,7 +105,7 @@ var X14SparklineGroup_Attributes = {
105
105
  },
106
106
  'x14:sparklines': {
107
107
  type: 'child',
108
- childAttributes: x14_sparklines.X14Sparklines_Attributes
108
+ childAttributes: x14Sparklines.X14Sparklines_Attributes
109
109
  }
110
110
  };
111
111
 
@@ -33,6 +33,16 @@ function updateValue(value, cellData) {
33
33
  if (typeof cellData === 'string') {
34
34
  return value;
35
35
  }
36
+ if ('type' in cellData && cellData.type === 'blank') {
37
+ if (cellData.s !== undefined) {
38
+ return {
39
+ type: 'style',
40
+ value: value,
41
+ s: cellData.s
42
+ };
43
+ }
44
+ return value;
45
+ }
36
46
  if ('value' in cellData) {
37
47
  return tslib.__assign(tslib.__assign({}, cellData), { value: value });
38
48
  }
@@ -19,7 +19,7 @@ export default class XMLPackageParser implements PackageParser {
19
19
  /**
20
20
  * 在 xml 下基本不用这个
21
21
  */
22
- getFileByType(filePath: string, type: 'string' | 'blob'): string | Uint8Array | Blob | null;
22
+ getFileByType(filePath: string, type: 'string' | 'blob'): string | Blob | Uint8Array | null;
23
23
  /**
24
24
  * 读取文本内容
25
25
  */
@@ -17,7 +17,7 @@ export default class ZipPackageParser implements PackageParser {
17
17
  /**
18
18
  * 根据类型读取文件
19
19
  */
20
- getFileByType(filePath: string, type?: 'string' | 'blob' | 'uint8array'): string | Uint8Array | Blob | null;
20
+ getFileByType(filePath: string, type?: 'string' | 'blob' | 'uint8array'): string | Blob | Uint8Array | null;
21
21
  /**
22
22
  * 读取文本内容
23
23
  */
@@ -1,2 +1,2 @@
1
- import Word from '../../Word';
1
+ import { Word } from '../../index';
2
2
  export declare function createWord(fileName: string, data: any): Word;
@@ -0,0 +1 @@
1
+ export {};
@@ -1,4 +1,4 @@
1
1
  /**
2
- * 点击元素外部时触发回调
2
+ * 点击元素外部时触发回调,用于一直存在的对象,需要手动调用删除监听器
3
3
  */
4
- export declare function onClickOutside(element: HTMLElement, onClickOutside: () => void): void;
4
+ export declare function onClickOutside(element: HTMLElement, onClickOutside: () => void): () => void;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  /**
6
- * 点击元素外部时触发回调
6
+ * 点击元素外部时触发回调,用于一直存在的对象,需要手动调用删除监听器
7
7
  */
8
8
  function onClickOutside(element, onClickOutside) {
9
9
  var outsideClickListener = function (event) {
@@ -12,6 +12,9 @@ function onClickOutside(element, onClickOutside) {
12
12
  }
13
13
  };
14
14
  document.addEventListener('mousedown', outsideClickListener);
15
+ return function () {
16
+ document.removeEventListener('mousedown', outsideClickListener);
17
+ };
15
18
  }
16
19
 
17
20
  exports.onClickOutside = onClickOutside;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * 点击元素外部时触发回调,只触发一次,用于临时对象
3
+ */
4
+ export declare function onClickOutsideOnce(element: HTMLElement, onClickOutside: () => void): void;
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ /**
6
+ * 点击元素外部时触发回调,只触发一次,用于临时对象
7
+ */
8
+ function onClickOutsideOnce(element, onClickOutside) {
9
+ var outsideClickListener = function (event) {
10
+ if (event.target instanceof Node && !element.contains(event.target)) {
11
+ onClickOutside();
12
+ document.removeEventListener('mousedown', outsideClickListener);
13
+ }
14
+ };
15
+ document.addEventListener('mousedown', outsideClickListener);
16
+ }
17
+
18
+ exports.onClickOutsideOnce = onClickOutsideOnce;
@@ -0,0 +1,5 @@
1
+ import { XMLNode } from './xml';
2
+ /**
3
+ * 简单 XML 解析,目前看和 SaxesParser 比快不了多少,10 万行快了 1 秒,因为实现可能不完全准确,目前先不用
4
+ */
5
+ export declare function xmlToNode(xml: string): XMLNode;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "office-viewer",
3
- "version": "0.3.5",
3
+ "version": "0.3.7",
4
4
  "description": "office 文档在线预览",
5
5
  "main": "lib/index.js",
6
6
  "module": "esm/index.js",
@@ -27,7 +27,8 @@
27
27
  "genPresetIcons": "cd tools && ts-node --transpileOnly genPresetIcons.ts",
28
28
  "genIcons": "ts-node --transpileOnly tools/genIcons.ts",
29
29
  "emptyExcel": "ts-node --transpileOnly tools/convertFileToBase64.ts src/excel/io/csv/empty.xlsx src/excel/io/csv/emptyXLSX.ts",
30
- "genExampleFileList": "ts-node --transpileOnly tools/genExampleFileList.ts"
30
+ "genExampleFileList": "ts-node --transpileOnly tools/genExampleFileList.ts",
31
+ "typecheck": "tsc --noEmit"
31
32
  },
32
33
  "exports": {
33
34
  ".": {
@@ -64,6 +65,7 @@
64
65
  "tslib": "^2.3.1"
65
66
  },
66
67
  "devDependencies": {
68
+ "@happy-dom/global-registrator": "^14.2.0",
67
69
  "@rollup/plugin-commonjs": "^22.0.2",
68
70
  "@rollup/plugin-json": "^4.1.0",
69
71
  "@rollup/plugin-node-resolve": "^14.1.0",
@@ -114,4 +116,4 @@
114
116
  "printBasicPrototype": false
115
117
  }
116
118
  }
117
- }
119
+ }
@@ -1,6 +0,0 @@
1
- /**
2
- * 异步运行 Web Worker 的辅助函数
3
- * @param url web worker 的 url
4
- * @param input 输入
5
- */
6
- export declare function runWorker(url: string, input: any): Promise<any>;
@@ -1,6 +0,0 @@
1
- /**
2
- * 异步运行 Web Worker 的辅助函数
3
- * @param url web worker 的 url
4
- * @param input 输入
5
- */
6
- export declare function runWorker(url: string, input: any): Promise<any>;