@visactor/vtable 0.22.0 → 0.23.0-alpha.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/cjs/ListTable.js.map +1 -1
- package/cjs/core/BaseTable.d.ts +1 -0
- package/cjs/core/BaseTable.js +25 -7
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/core/TABLE_EVENT_TYPE.d.ts +3 -0
- package/cjs/core/TABLE_EVENT_TYPE.js +4 -1
- package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
- package/cjs/data/DataSource.js +5 -1
- package/cjs/data/DataSource.js.map +1 -1
- package/cjs/event/event.d.ts +2 -0
- package/cjs/event/event.js +30 -1
- package/cjs/event/event.js.map +1 -1
- package/cjs/event/listener/container-dom.js +78 -39
- package/cjs/event/listener/container-dom.js.map +1 -1
- package/cjs/event/listener/table-group.js +5 -4
- package/cjs/event/listener/table-group.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/layout/pivot-header-layout.js +1 -1
- package/cjs/layout/pivot-header-layout.js.map +1 -1
- package/cjs/scenegraph/component/custom.js +1 -1
- package/cjs/scenegraph/component/custom.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-helper.d.ts +1 -0
- package/cjs/scenegraph/group-creater/cell-helper.js +16 -26
- package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/cjs/scenegraph/group-creater/column-helper.js +3 -2
- package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/proxy.js +1 -1
- package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
- package/cjs/scenegraph/scenegraph.d.ts +3 -0
- package/cjs/scenegraph/scenegraph.js +3 -0
- package/cjs/scenegraph/scenegraph.js.map +1 -1
- package/cjs/scenegraph/select/create-select-border.d.ts +1 -1
- package/cjs/scenegraph/select/create-select-border.js +24 -5
- package/cjs/scenegraph/select/create-select-border.js.map +1 -1
- package/cjs/scenegraph/select/delete-select-border.d.ts +1 -0
- package/cjs/scenegraph/select/delete-select-border.js +15 -4
- package/cjs/scenegraph/select/delete-select-border.js.map +1 -1
- package/cjs/scenegraph/select/move-select-border.js +3 -1
- package/cjs/scenegraph/select/move-select-border.js.map +1 -1
- package/cjs/scenegraph/select/update-select-border.d.ts +2 -0
- package/cjs/scenegraph/select/update-select-border.js +28 -4
- package/cjs/scenegraph/select/update-select-border.js.map +1 -1
- package/cjs/state/state.d.ts +10 -0
- package/cjs/state/state.js +17 -0
- package/cjs/state/state.js.map +1 -1
- package/cjs/ts-types/base-table.d.ts +4 -0
- package/cjs/ts-types/base-table.js.map +1 -1
- package/cjs/ts-types/events.d.ts +8 -0
- package/cjs/ts-types/events.js.map +1 -1
- package/cjs/ts-types/new-data-set.d.ts +2 -1
- package/cjs/ts-types/new-data-set.js.map +1 -1
- package/cjs/ts-types/theme.js.map +1 -1
- package/cjs/vrender.js.map +1 -1
- package/dist/vtable.js +396 -129
- package/dist/vtable.min.js +2 -2
- package/es/ListTable.js.map +1 -1
- package/es/core/BaseTable.d.ts +1 -0
- package/es/core/BaseTable.js +25 -8
- package/es/core/BaseTable.js.map +1 -1
- package/es/core/TABLE_EVENT_TYPE.d.ts +3 -0
- package/es/core/TABLE_EVENT_TYPE.js +4 -1
- package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
- package/es/data/DataSource.js +5 -1
- package/es/data/DataSource.js.map +1 -1
- package/es/event/event.d.ts +2 -0
- package/es/event/event.js +30 -1
- package/es/event/event.js.map +1 -1
- package/es/event/listener/container-dom.js +78 -39
- package/es/event/listener/container-dom.js.map +1 -1
- package/es/event/listener/table-group.js +5 -4
- package/es/event/listener/table-group.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/layout/pivot-header-layout.js +1 -1
- package/es/layout/pivot-header-layout.js.map +1 -1
- package/es/scenegraph/component/custom.js +1 -1
- package/es/scenegraph/component/custom.js.map +1 -1
- package/es/scenegraph/group-creater/cell-helper.d.ts +1 -0
- package/es/scenegraph/group-creater/cell-helper.js +12 -24
- package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/es/scenegraph/group-creater/column-helper.js +5 -4
- package/es/scenegraph/group-creater/column-helper.js.map +1 -1
- package/es/scenegraph/group-creater/progress/proxy.js +1 -1
- package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
- package/es/scenegraph/scenegraph.d.ts +3 -0
- package/es/scenegraph/scenegraph.js +4 -1
- package/es/scenegraph/scenegraph.js.map +1 -1
- package/es/scenegraph/select/create-select-border.d.ts +1 -1
- package/es/scenegraph/select/create-select-border.js +24 -5
- package/es/scenegraph/select/create-select-border.js.map +1 -1
- package/es/scenegraph/select/delete-select-border.d.ts +1 -0
- package/es/scenegraph/select/delete-select-border.js +12 -2
- package/es/scenegraph/select/delete-select-border.js.map +1 -1
- package/es/scenegraph/select/move-select-border.js +3 -1
- package/es/scenegraph/select/move-select-border.js.map +1 -1
- package/es/scenegraph/select/update-select-border.d.ts +2 -0
- package/es/scenegraph/select/update-select-border.js +25 -2
- package/es/scenegraph/select/update-select-border.js.map +1 -1
- package/es/state/state.d.ts +10 -0
- package/es/state/state.js +17 -0
- package/es/state/state.js.map +1 -1
- package/es/ts-types/base-table.d.ts +4 -0
- package/es/ts-types/base-table.js.map +1 -1
- package/es/ts-types/events.d.ts +8 -0
- package/es/ts-types/events.js.map +1 -1
- package/es/ts-types/new-data-set.d.ts +2 -1
- package/es/ts-types/new-data-set.js.map +1 -1
- package/es/ts-types/theme.js.map +1 -1
- package/es/vrender.js.map +1 -1
- package/package.json +5 -5
package/dist/vtable.js
CHANGED
|
@@ -23050,7 +23050,10 @@
|
|
|
23050
23050
|
CHECKBOX_STATE_CHANGE: 'checkbox_state_change',
|
|
23051
23051
|
AFTER_RENDER: 'after_render',
|
|
23052
23052
|
INITIALIZED: 'initialized',
|
|
23053
|
-
CHANGE_CELL_VALUE: 'change_cell_value'
|
|
23053
|
+
CHANGE_CELL_VALUE: 'change_cell_value',
|
|
23054
|
+
DRAG_FILL_HANDLE_END: 'drag_fill_handle_end',
|
|
23055
|
+
MOUSEDOWN_FILL_HANDLE: 'mousedown_fill_handle',
|
|
23056
|
+
DBLCLICK_FILL_HANDLE: 'dblclick_fill_handle'
|
|
23054
23057
|
};
|
|
23055
23058
|
|
|
23056
23059
|
const judgeType = (value) => {
|
|
@@ -33851,11 +33854,20 @@
|
|
|
33851
33854
|
if (typeof field === 'string' || typeof field === 'number') {
|
|
33852
33855
|
const beforeChangedValue = this.beforeChangedRecordsMap[dataIndex][field];
|
|
33853
33856
|
const record = this.getOriginalRecord(dataIndex);
|
|
33857
|
+
let formatValue = value;
|
|
33854
33858
|
if (typeof beforeChangedValue === 'number' && isAllDigits(value)) {
|
|
33855
|
-
|
|
33859
|
+
formatValue = parseFloat(value);
|
|
33860
|
+
}
|
|
33861
|
+
if (isPromise(record)) {
|
|
33862
|
+
record
|
|
33863
|
+
.then(record => {
|
|
33864
|
+
record[field] = formatValue;
|
|
33865
|
+
})
|
|
33866
|
+
.catch((err) => {
|
|
33867
|
+
});
|
|
33856
33868
|
}
|
|
33857
33869
|
else {
|
|
33858
|
-
record[field] =
|
|
33870
|
+
record[field] = formatValue;
|
|
33859
33871
|
}
|
|
33860
33872
|
}
|
|
33861
33873
|
}
|
|
@@ -35475,7 +35487,9 @@
|
|
|
35475
35487
|
});
|
|
35476
35488
|
}
|
|
35477
35489
|
function decodeReactDom(dom) {
|
|
35478
|
-
if (!dom ||
|
|
35490
|
+
if (!dom ||
|
|
35491
|
+
(!isValid$3(dom.$$typeof) &&
|
|
35492
|
+
!isValid$3(dom.vtype))) {
|
|
35479
35493
|
return dom;
|
|
35480
35494
|
}
|
|
35481
35495
|
const type = dom.type;
|
|
@@ -38347,16 +38361,6 @@
|
|
|
38347
38361
|
if (isPromise(value)) {
|
|
38348
38362
|
value = table.getCellValue(col, row);
|
|
38349
38363
|
}
|
|
38350
|
-
let bgColorFunc;
|
|
38351
|
-
if (table.internalProps?.dataConfig?.mappingRules && !table.isHeader(col, row)) {
|
|
38352
|
-
table.internalProps?.dataConfig?.mappingRules?.forEach((mappingRule, i) => {
|
|
38353
|
-
if (mappingRule.bgColor &&
|
|
38354
|
-
table.internalProps.layoutMap.getIndicatorKey(col, row) ===
|
|
38355
|
-
mappingRule.bgColor.indicatorKey) {
|
|
38356
|
-
bgColorFunc = mappingRule.bgColor.mapping;
|
|
38357
|
-
}
|
|
38358
|
-
});
|
|
38359
|
-
}
|
|
38360
38364
|
let cellGroup;
|
|
38361
38365
|
if (type === 'text' || type === 'link') {
|
|
38362
38366
|
if (type === 'link') {
|
|
@@ -38382,22 +38386,6 @@
|
|
|
38382
38386
|
}
|
|
38383
38387
|
}
|
|
38384
38388
|
}
|
|
38385
|
-
if (bgColorFunc) {
|
|
38386
|
-
const cellValue = table.getCellOriginValue(col, row);
|
|
38387
|
-
const bgColor = bgColorFunc(table, cellValue);
|
|
38388
|
-
if (bgColor) {
|
|
38389
|
-
if (cellTheme) {
|
|
38390
|
-
cellTheme.group.fill = bgColor;
|
|
38391
|
-
}
|
|
38392
|
-
else {
|
|
38393
|
-
cellTheme = {
|
|
38394
|
-
group: {
|
|
38395
|
-
fill: bgColor
|
|
38396
|
-
}
|
|
38397
|
-
};
|
|
38398
|
-
}
|
|
38399
|
-
}
|
|
38400
|
-
}
|
|
38401
38389
|
let customElementsGroup;
|
|
38402
38390
|
let renderDefault = true;
|
|
38403
38391
|
if (customResult) {
|
|
@@ -38601,16 +38589,6 @@
|
|
|
38601
38589
|
const textAlign = cellTheme.text.textAlign;
|
|
38602
38590
|
const textBaseline = cellTheme.text.textBaseline;
|
|
38603
38591
|
let newCellGroup;
|
|
38604
|
-
let bgColorFunc;
|
|
38605
|
-
if (table.internalProps?.dataConfig?.mappingRules && !table.isHeader(col, row)) {
|
|
38606
|
-
table.internalProps?.dataConfig?.mappingRules?.forEach((mappingRule, i) => {
|
|
38607
|
-
if (mappingRule.bgColor &&
|
|
38608
|
-
table.internalProps.layoutMap.getIndicatorKey(col, row) ===
|
|
38609
|
-
mappingRule.bgColor.indicatorKey) {
|
|
38610
|
-
bgColorFunc = mappingRule.bgColor.mapping;
|
|
38611
|
-
}
|
|
38612
|
-
});
|
|
38613
|
-
}
|
|
38614
38592
|
let cellWidth;
|
|
38615
38593
|
let cellHeight;
|
|
38616
38594
|
if (range) {
|
|
@@ -38623,10 +38601,10 @@
|
|
|
38623
38601
|
}
|
|
38624
38602
|
if (isPromise(value)) {
|
|
38625
38603
|
oldCellGroup.removeAllChild();
|
|
38626
|
-
dealPromiseData(value, table, updateCellContent.bind(null, type, value, define, table, col, row,
|
|
38604
|
+
dealPromiseData(value, table, updateCellContent.bind(null, type, value, define, table, col, row, cellWidth, cellHeight, oldCellGroup, padding, textAlign, textBaseline, mayHaveIcon, addNew, cellTheme, range, customResult));
|
|
38627
38605
|
}
|
|
38628
38606
|
else {
|
|
38629
|
-
newCellGroup = updateCellContent(type, value, define, table, col, row,
|
|
38607
|
+
newCellGroup = updateCellContent(type, value, define, table, col, row, cellWidth, cellHeight, oldCellGroup, padding, textAlign, textBaseline, mayHaveIcon, addNew, cellTheme, range, customResult);
|
|
38630
38608
|
}
|
|
38631
38609
|
if (isMerge) {
|
|
38632
38610
|
const { width: contentWidth } = newCellGroup.attribute;
|
|
@@ -38637,7 +38615,7 @@
|
|
|
38637
38615
|
}
|
|
38638
38616
|
return newCellGroup;
|
|
38639
38617
|
}
|
|
38640
|
-
function updateCellContent(type, value, define, table, col, row,
|
|
38618
|
+
function updateCellContent(type, value, define, table, col, row, cellWidth, cellHeight, oldCellGroup, padding, textAlign, textBaseline, mayHaveIcon, addNew, cellTheme, range, customResult) {
|
|
38641
38619
|
if (isPromise(value)) {
|
|
38642
38620
|
value = table.getCellValue(col, row);
|
|
38643
38621
|
}
|
|
@@ -38676,10 +38654,10 @@
|
|
|
38676
38654
|
for (let col = range.start.col; col <= range.end.col; col++) {
|
|
38677
38655
|
for (let row = range.start.row; row <= range.end.row; row++) {
|
|
38678
38656
|
const cellGroup = table.scenegraph.getCell(col, row, true);
|
|
38679
|
-
if (range.start.row !== range.end.row) {
|
|
38657
|
+
if (cellGroup.role === 'cell' && range.start.row !== range.end.row && cellGroup.contentWidth !== cellWidth) {
|
|
38680
38658
|
updateCellContentHeight(cellGroup, cellHeight, cellHeight, table.heightMode === 'autoHeight', padding, textAlign, textBaseline);
|
|
38681
38659
|
}
|
|
38682
|
-
if (range.start.col !== range.end.col) {
|
|
38660
|
+
if (cellGroup.role === 'cell' && range.start.col !== range.end.col && cellGroup.contentHeight !== cellHeight) {
|
|
38683
38661
|
updateCellContentWidth(cellGroup, cellWidth, cellHeight, 0, table.heightMode === 'autoHeight', padding, textAlign, textBaseline, table.scenegraph);
|
|
38684
38662
|
}
|
|
38685
38663
|
cellGroup.contentWidth = cellWidth;
|
|
@@ -43836,12 +43814,12 @@
|
|
|
43836
43814
|
columnGroup.updateColumnRowNumber(row);
|
|
43837
43815
|
if (isMerge) {
|
|
43838
43816
|
const rangeHeight = table.getRowHeight(row);
|
|
43839
|
-
|
|
43817
|
+
table.getColWidth(col);
|
|
43840
43818
|
const { width: contentWidth } = cellGroup.attribute;
|
|
43841
43819
|
const { height: contentHeight } = cellGroup.attribute;
|
|
43842
43820
|
cellGroup.contentWidth = contentWidth;
|
|
43843
43821
|
cellGroup.contentHeight = contentHeight;
|
|
43844
|
-
|
|
43822
|
+
dealWithMergeCellSize(range, contentWidth, contentHeight, padding, textAlign, textBaseline, table);
|
|
43845
43823
|
columnGroup.updateColumnHeight(rangeHeight);
|
|
43846
43824
|
y += rangeHeight;
|
|
43847
43825
|
}
|
|
@@ -44877,7 +44855,7 @@
|
|
|
44877
44855
|
computeColsWidth(this.table, this.currentCol + 1, endCol);
|
|
44878
44856
|
for (let row = 0; row < this.table.rowCount; row++) {
|
|
44879
44857
|
const cellGroup = this.highPerformanceGetCell(this.currentCol, row);
|
|
44880
|
-
if (isNumber$4(cellGroup.mergeStartCol) && cellGroup.mergeStartCol > this.currentCol) {
|
|
44858
|
+
if (cellGroup.role === 'cell' && isNumber$4(cellGroup.mergeStartCol) && cellGroup.mergeStartCol > this.currentCol) {
|
|
44881
44859
|
this.table.scenegraph.updateCellContent(cellGroup.col, cellGroup.row);
|
|
44882
44860
|
}
|
|
44883
44861
|
}
|
|
@@ -45294,6 +45272,7 @@
|
|
|
45294
45272
|
const colsWidth = scene.table.getColsWidth(computeRectCellRangeStartCol, computeRectCellRangeEndCol);
|
|
45295
45273
|
const rowsHeight = scene.table.getRowsHeight(computeRectCellRangeStartRow, computeRectCellRangeEndRow);
|
|
45296
45274
|
const firstCellBound = scene.highPerformanceGetCell(computeRectCellRangeStartCol, computeRectCellRangeStartRow).globalAABBBounds;
|
|
45275
|
+
const lastCellBound = scene.highPerformanceGetCell(computeRectCellRangeEndCol, computeRectCellRangeEndRow).globalAABBBounds;
|
|
45297
45276
|
selectComp.rect.setAttributes({
|
|
45298
45277
|
x: firstCellBound.x1 - scene.tableGroup.attribute.x,
|
|
45299
45278
|
y: firstCellBound.y1 - scene.tableGroup.attribute.y,
|
|
@@ -45301,6 +45280,15 @@
|
|
|
45301
45280
|
height: rowsHeight,
|
|
45302
45281
|
visible: true
|
|
45303
45282
|
});
|
|
45283
|
+
if (selectComp.fillhandle) {
|
|
45284
|
+
selectComp.fillhandle.setAttributes({
|
|
45285
|
+
x: lastCellBound.x2 - scene.tableGroup.attribute.x - 3,
|
|
45286
|
+
y: lastCellBound.y2 - scene.tableGroup.attribute.y - 3,
|
|
45287
|
+
width: 6,
|
|
45288
|
+
height: 6,
|
|
45289
|
+
visible: true
|
|
45290
|
+
});
|
|
45291
|
+
}
|
|
45304
45292
|
const isNearRowHeader = scene.table.frozenColCount ? startCol === scene.table.frozenColCount : false;
|
|
45305
45293
|
const isNearRightRowHeader = scene.table.rightFrozenColCount
|
|
45306
45294
|
? scene.table.rightFrozenColCount > 0 && endCol === scene.table.colCount - scene.table.rightFrozenColCount - 1
|
|
@@ -45504,6 +45492,7 @@
|
|
|
45504
45492
|
ifExtendSelectRange && extendSelectRange();
|
|
45505
45493
|
scene.selectingRangeComponents.forEach((selectComp, key) => {
|
|
45506
45494
|
selectComp.rect.delete();
|
|
45495
|
+
selectComp.fillhandle?.delete();
|
|
45507
45496
|
});
|
|
45508
45497
|
scene.selectingRangeComponents = new Map();
|
|
45509
45498
|
let needRowHeader = false;
|
|
@@ -45615,13 +45604,45 @@
|
|
|
45615
45604
|
scene.createCellSelectBorder(columnHeaderStartCol, columnHeaderStartRow, columnHeaderEndCol, columnHeaderEndRow, 'body', `${startCol}${startRow}${endCol}${endRow}`, strokeArray);
|
|
45616
45605
|
}
|
|
45617
45606
|
}
|
|
45607
|
+
function hideCellSelectBorder(scene) {
|
|
45608
|
+
scene.selectingRangeComponents.forEach((selectComp, key) => {
|
|
45609
|
+
selectComp.rect.setAttribute('visible', false);
|
|
45610
|
+
});
|
|
45611
|
+
scene.selectedRangeComponents.forEach((selectComp, key) => {
|
|
45612
|
+
selectComp.rect.setAttribute('visible', false);
|
|
45613
|
+
});
|
|
45614
|
+
}
|
|
45615
|
+
function restoreCellSelectBorder(scene) {
|
|
45616
|
+
scene.selectingRangeComponents.forEach((selectComp, key) => {
|
|
45617
|
+
selectComp.rect.setAttribute('visible', false);
|
|
45618
|
+
});
|
|
45619
|
+
scene.selectedRangeComponents.forEach((selectComp, key) => {
|
|
45620
|
+
selectComp.rect.setAttribute('visible', false);
|
|
45621
|
+
});
|
|
45622
|
+
}
|
|
45618
45623
|
|
|
45619
45624
|
function createCellSelectBorder(scene, start_Col, start_Row, end_Col, end_Row, selectRangeType, selectId, strokes) {
|
|
45625
|
+
let isHasFillHandleRect = !!scene.table.options.excelOptions?.fillHandle;
|
|
45626
|
+
if (scene.table.stateManager.select.ranges?.length > 1) {
|
|
45627
|
+
isHasFillHandleRect = false;
|
|
45628
|
+
scene.removeFillHandleFromSelectComponents();
|
|
45629
|
+
}
|
|
45630
|
+
else if (scene.table.stateManager.select.ranges?.length === 1) {
|
|
45631
|
+
const maxRow = Math.max(scene.table.stateManager.select.ranges[0].start.row, scene.table.stateManager.select.ranges[0].end.row);
|
|
45632
|
+
const maxCol = Math.max(scene.table.stateManager.select.ranges[0].start.col, scene.table.stateManager.select.ranges[0].end.col);
|
|
45633
|
+
if (scene.table.isHeader(maxCol, maxRow)) {
|
|
45634
|
+
isHasFillHandleRect = false;
|
|
45635
|
+
}
|
|
45636
|
+
}
|
|
45637
|
+
if (Array.isArray(strokes) && (strokes[1] === false || strokes[2] === false)) {
|
|
45638
|
+
isHasFillHandleRect = false;
|
|
45639
|
+
}
|
|
45620
45640
|
const startCol = Math.min(start_Col, end_Col);
|
|
45621
45641
|
const startRow = Math.min(start_Row, end_Row);
|
|
45622
45642
|
const endCol = Math.max(start_Col, end_Col);
|
|
45623
45643
|
const endRow = Math.max(start_Row, end_Row);
|
|
45624
45644
|
const firstCellBound = scene.highPerformanceGetCell(startCol, startRow).globalAABBBounds;
|
|
45645
|
+
const lastCellBound = scene.highPerformanceGetCell(endCol, endRow).globalAABBBounds;
|
|
45625
45646
|
const theme = scene.table.theme;
|
|
45626
45647
|
const bodyClickBorderColor = theme.selectionStyle?.cellBorderColor;
|
|
45627
45648
|
const bodyClickLineWidth = theme.selectionStyle?.cellBorderLineWidth;
|
|
@@ -45641,9 +45662,23 @@
|
|
|
45641
45662
|
height: 0,
|
|
45642
45663
|
visible: true
|
|
45643
45664
|
});
|
|
45665
|
+
let fillhandle;
|
|
45666
|
+
if (isHasFillHandleRect) {
|
|
45667
|
+
fillhandle = createRect({
|
|
45668
|
+
pickable: false,
|
|
45669
|
+
fill: bodyClickBorderColor,
|
|
45670
|
+
stroke: bodyClickBorderColor,
|
|
45671
|
+
x: lastCellBound.x2 - 3,
|
|
45672
|
+
y: lastCellBound.y2 - 3,
|
|
45673
|
+
width: 6,
|
|
45674
|
+
height: 6,
|
|
45675
|
+
visible: true
|
|
45676
|
+
});
|
|
45677
|
+
}
|
|
45644
45678
|
scene.lastSelectId = selectId;
|
|
45645
45679
|
scene.selectingRangeComponents.set(`${startCol}-${startRow}-${endCol}-${endRow}-${selectId}`, {
|
|
45646
45680
|
rect,
|
|
45681
|
+
fillhandle,
|
|
45647
45682
|
role: selectRangeType
|
|
45648
45683
|
});
|
|
45649
45684
|
scene.tableGroup.insertAfter(rect, selectRangeType === 'body'
|
|
@@ -45663,12 +45698,31 @@
|
|
|
45663
45698
|
: selectRangeType === 'bottomFrozen'
|
|
45664
45699
|
? scene.bottomFrozenGroup
|
|
45665
45700
|
: scene.rightBottomCornerGroup);
|
|
45701
|
+
isHasFillHandleRect &&
|
|
45702
|
+
scene.tableGroup.insertAfter(fillhandle, selectRangeType === 'body'
|
|
45703
|
+
? scene.bodyGroup
|
|
45704
|
+
: selectRangeType === 'columnHeader'
|
|
45705
|
+
? scene.colHeaderGroup
|
|
45706
|
+
: selectRangeType === 'rowHeader'
|
|
45707
|
+
? scene.rowHeaderGroup
|
|
45708
|
+
: selectRangeType === 'cornerHeader'
|
|
45709
|
+
? scene.cornerHeaderGroup
|
|
45710
|
+
: selectRangeType === 'rightTopCorner'
|
|
45711
|
+
? scene.rightTopCornerGroup
|
|
45712
|
+
: selectRangeType === 'rightFrozen'
|
|
45713
|
+
? scene.rightFrozenGroup
|
|
45714
|
+
: selectRangeType === 'leftBottomCorner'
|
|
45715
|
+
? scene.leftBottomCornerGroup
|
|
45716
|
+
: selectRangeType === 'bottomFrozen'
|
|
45717
|
+
? scene.bottomFrozenGroup
|
|
45718
|
+
: scene.rightBottomCornerGroup);
|
|
45666
45719
|
}
|
|
45667
45720
|
|
|
45668
45721
|
function moveSelectingRangeComponentsToSelectedRangeComponents(scene) {
|
|
45669
45722
|
scene.selectingRangeComponents.forEach((rangeComponent, key) => {
|
|
45670
45723
|
if (scene.selectedRangeComponents.get(key)) {
|
|
45671
|
-
scene.
|
|
45724
|
+
scene.selectingRangeComponents.get(key).rect.delete();
|
|
45725
|
+
scene.selectingRangeComponents.get(key).fillhandle?.delete();
|
|
45672
45726
|
}
|
|
45673
45727
|
scene.selectedRangeComponents.set(key, rangeComponent);
|
|
45674
45728
|
});
|
|
@@ -45681,6 +45735,7 @@
|
|
|
45681
45735
|
const lastSelectId = key.split('-')[4];
|
|
45682
45736
|
if (lastSelectId === scene.lastSelectId) {
|
|
45683
45737
|
selectComp.rect.delete();
|
|
45738
|
+
selectComp.fillhandle?.delete();
|
|
45684
45739
|
scene.selectedRangeComponents.delete(key);
|
|
45685
45740
|
}
|
|
45686
45741
|
});
|
|
@@ -45688,9 +45743,16 @@
|
|
|
45688
45743
|
function deleteAllSelectBorder(scene) {
|
|
45689
45744
|
scene.selectedRangeComponents.forEach((selectComp, key) => {
|
|
45690
45745
|
selectComp.rect.delete();
|
|
45746
|
+
selectComp.fillhandle?.delete();
|
|
45691
45747
|
});
|
|
45692
45748
|
scene.selectedRangeComponents = new Map();
|
|
45693
45749
|
}
|
|
45750
|
+
function removeFillHandleFromSelectComponents(scene) {
|
|
45751
|
+
scene.selectedRangeComponents.forEach((selectComp, key) => {
|
|
45752
|
+
selectComp.fillhandle?.delete();
|
|
45753
|
+
selectComp.fillhandle = undefined;
|
|
45754
|
+
});
|
|
45755
|
+
}
|
|
45694
45756
|
|
|
45695
45757
|
function updateRow(removeCells, addCells, updateCells, table) {
|
|
45696
45758
|
const scene = table.scenegraph;
|
|
@@ -47863,6 +47925,9 @@
|
|
|
47863
47925
|
updateCellSelectBorder(newStartCol, newStartRow, newEndCol, newEndRow, extendSelectRange = true) {
|
|
47864
47926
|
updateCellSelectBorder(this, newStartCol, newStartRow, newEndCol, newEndRow, extendSelectRange);
|
|
47865
47927
|
}
|
|
47928
|
+
removeFillHandleFromSelectComponents() {
|
|
47929
|
+
removeFillHandleFromSelectComponents(this);
|
|
47930
|
+
}
|
|
47866
47931
|
recreateAllSelectRangeComponents() {
|
|
47867
47932
|
deleteAllSelectBorder(this);
|
|
47868
47933
|
this.table.stateManager.select.ranges.forEach((cellRange) => {
|
|
@@ -49657,6 +49722,7 @@
|
|
|
49657
49722
|
table;
|
|
49658
49723
|
interactionState;
|
|
49659
49724
|
select;
|
|
49725
|
+
fillHandle;
|
|
49660
49726
|
hover;
|
|
49661
49727
|
hoverIcon;
|
|
49662
49728
|
residentHoverIcon;
|
|
@@ -49759,6 +49825,11 @@
|
|
|
49759
49825
|
},
|
|
49760
49826
|
selecting: false
|
|
49761
49827
|
};
|
|
49828
|
+
this.fillHandle = {
|
|
49829
|
+
isFilling: false,
|
|
49830
|
+
startX: undefined,
|
|
49831
|
+
startY: undefined
|
|
49832
|
+
};
|
|
49762
49833
|
this.hover = {
|
|
49763
49834
|
highlightScope: HighlightScope.single,
|
|
49764
49835
|
cellPos: {
|
|
@@ -49962,6 +50033,9 @@
|
|
|
49962
50033
|
isResizeCol() {
|
|
49963
50034
|
return this.columnResize.resizing;
|
|
49964
50035
|
}
|
|
50036
|
+
isFillHandle() {
|
|
50037
|
+
return this.fillHandle.isFilling;
|
|
50038
|
+
}
|
|
49965
50039
|
isSelecting() {
|
|
49966
50040
|
return this.select.selecting;
|
|
49967
50041
|
}
|
|
@@ -49998,6 +50072,21 @@
|
|
|
49998
50072
|
this.table.stateManager.updateSelectPos(-1, -1);
|
|
49999
50073
|
this.table.scenegraph.updateNextFrame();
|
|
50000
50074
|
}
|
|
50075
|
+
startFillSelect(x, y) {
|
|
50076
|
+
this.fillHandle.isFilling = true;
|
|
50077
|
+
this.fillHandle.startX = x;
|
|
50078
|
+
this.fillHandle.startY = y;
|
|
50079
|
+
this.table.scenegraph.updateNextFrame();
|
|
50080
|
+
this.table.fireListeners(TABLE_EVENT_TYPE.MOUSEDOWN_FILL_HANDLE, {});
|
|
50081
|
+
}
|
|
50082
|
+
endFillSelect() {
|
|
50083
|
+
this.fillHandle.isFilling = false;
|
|
50084
|
+
this.fillHandle.startX = undefined;
|
|
50085
|
+
this.fillHandle.startY = undefined;
|
|
50086
|
+
this.table.stateManager.fillHandle.directionRow = undefined;
|
|
50087
|
+
this.table.eventManager.isDraging &&
|
|
50088
|
+
this.table.fireListeners(TABLE_EVENT_TYPE.DRAG_FILL_HANDLE_END, { direction: this.fillHandle.direction });
|
|
50089
|
+
}
|
|
50001
50090
|
updateResizeCol(xInTable, yInTable) {
|
|
50002
50091
|
updateResizeColumn(xInTable, yInTable, this);
|
|
50003
50092
|
}
|
|
@@ -50741,6 +50830,9 @@
|
|
|
50741
50830
|
else if (stateManager.isMoveCol()) {
|
|
50742
50831
|
eventManager.dealColumnMover(eventArgsSet);
|
|
50743
50832
|
}
|
|
50833
|
+
else if (stateManager.isFillHandle()) {
|
|
50834
|
+
eventManager.dealFillSelect(eventArgsSet, true);
|
|
50835
|
+
}
|
|
50744
50836
|
else {
|
|
50745
50837
|
eventManager.dealTableSelect(eventArgsSet, true);
|
|
50746
50838
|
}
|
|
@@ -50748,7 +50840,12 @@
|
|
|
50748
50840
|
return;
|
|
50749
50841
|
}
|
|
50750
50842
|
if (stateManager.isResizeCol() || eventManager.checkColumnResize(eventArgsSet)) {
|
|
50751
|
-
stateManager.
|
|
50843
|
+
if (table.stateManager.select && eventManager.checkCellFillhandle(eventArgsSet)) {
|
|
50844
|
+
stateManager.updateCursor('crosshair');
|
|
50845
|
+
}
|
|
50846
|
+
else {
|
|
50847
|
+
stateManager.updateCursor('col-resize');
|
|
50848
|
+
}
|
|
50752
50849
|
}
|
|
50753
50850
|
else {
|
|
50754
50851
|
stateManager.updateCursor();
|
|
@@ -50983,7 +51080,7 @@
|
|
|
50983
51080
|
eventManager.dealTableHover(eventArgsSet);
|
|
50984
51081
|
}
|
|
50985
51082
|
else {
|
|
50986
|
-
if (eventManager.checkColumnResize(eventArgsSet, true)) {
|
|
51083
|
+
if (!eventManager.checkCellFillhandle(eventArgsSet) && eventManager.checkColumnResize(eventArgsSet, true)) {
|
|
50987
51084
|
table.scenegraph.updateChartState(null);
|
|
50988
51085
|
stateManager.updateInteractionState(InteractionState.grabing);
|
|
50989
51086
|
return;
|
|
@@ -50992,6 +51089,10 @@
|
|
|
50992
51089
|
stateManager.updateInteractionState(InteractionState.grabing);
|
|
50993
51090
|
return;
|
|
50994
51091
|
}
|
|
51092
|
+
if (eventManager.checkCellFillhandle(eventArgsSet, true) && eventManager.dealFillSelect(eventArgsSet)) {
|
|
51093
|
+
stateManager.updateInteractionState(InteractionState.grabing);
|
|
51094
|
+
return;
|
|
51095
|
+
}
|
|
50995
51096
|
if (eventManager.dealTableSelect(eventArgsSet)) {
|
|
50996
51097
|
stateManager.updateInteractionState(InteractionState.grabing);
|
|
50997
51098
|
}
|
|
@@ -51037,6 +51138,9 @@
|
|
|
51037
51138
|
}
|
|
51038
51139
|
else if (stateManager.isSelecting()) {
|
|
51039
51140
|
table.stateManager.endSelectCells();
|
|
51141
|
+
if (table.stateManager.isFillHandle()) {
|
|
51142
|
+
table.stateManager.endFillSelect();
|
|
51143
|
+
}
|
|
51040
51144
|
const eventArgsSet = getCellEventArgsSet(e);
|
|
51041
51145
|
if (eventArgsSet.eventArgs && table.hasListeners(TABLE_EVENT_TYPE.DRAG_SELECT_END)) {
|
|
51042
51146
|
const cellsEvent = {
|
|
@@ -51634,84 +51738,13 @@
|
|
|
51634
51738
|
return;
|
|
51635
51739
|
}
|
|
51636
51740
|
if (table.stateManager.select.ranges?.length > 0) {
|
|
51637
|
-
const ranges = table.stateManager.select.ranges;
|
|
51638
|
-
const col = Math.min(ranges[0].start.col, ranges[0].end.col);
|
|
51639
|
-
const row = Math.min(ranges[0].start.row, ranges[0].end.row);
|
|
51640
|
-
const values = [];
|
|
51641
51741
|
navigator.clipboard.read().then(clipboardItems => {
|
|
51642
51742
|
for (const item of clipboardItems) {
|
|
51643
51743
|
if (item.types.includes('text/html')) {
|
|
51644
|
-
item
|
|
51645
|
-
blob.text().then(pastedData => {
|
|
51646
|
-
if (pastedData && /(<table)|(<TABLE)/g.test(pastedData)) {
|
|
51647
|
-
const regex = /<tr[^>]*>(.*?)<\/tr>/gs;
|
|
51648
|
-
const matches = Array.from(pastedData.matchAll(regex));
|
|
51649
|
-
for (const match of matches) {
|
|
51650
|
-
const rowContent = match[1];
|
|
51651
|
-
const cellRegex = /<td[^>]*>(.*?)<\/td>/gs;
|
|
51652
|
-
const cellMatches = Array.from(rowContent.matchAll(cellRegex));
|
|
51653
|
-
const rowValues = cellMatches.map(cellMatch => {
|
|
51654
|
-
return (cellMatch[1]
|
|
51655
|
-
.replace(/(<(?!br)([^>]+)>)/gi, '')
|
|
51656
|
-
.replace(/<br(\s*|\/)>[\r\n]?/gim, '\n')
|
|
51657
|
-
.replace(/&/g, '&')
|
|
51658
|
-
.replace(/</g, '<')
|
|
51659
|
-
.replace(/>/g, '>')
|
|
51660
|
-
.replace(/	/gi, '\t')
|
|
51661
|
-
.replace(/ /g, ' '));
|
|
51662
|
-
});
|
|
51663
|
-
values.push(rowValues);
|
|
51664
|
-
}
|
|
51665
|
-
table.changeCellValues(col, row, values, true);
|
|
51666
|
-
}
|
|
51667
|
-
else {
|
|
51668
|
-
navigator.clipboard.read().then(clipboardItems => {
|
|
51669
|
-
for (const item of clipboardItems) {
|
|
51670
|
-
if (item.types.includes('text/plain')) {
|
|
51671
|
-
item.getType('text/plain').then(blob => {
|
|
51672
|
-
blob.text().then(pastedData => {
|
|
51673
|
-
const rows = pastedData.split('\n');
|
|
51674
|
-
rows.forEach(function (rowCells, rowIndex) {
|
|
51675
|
-
const cells = rowCells.split('\t');
|
|
51676
|
-
const rowValues = [];
|
|
51677
|
-
values.push(rowValues);
|
|
51678
|
-
cells.forEach(function (cell, cellIndex) {
|
|
51679
|
-
if (cellIndex === cells.length - 1) {
|
|
51680
|
-
cell = cell.trim();
|
|
51681
|
-
}
|
|
51682
|
-
rowValues.push(cell);
|
|
51683
|
-
});
|
|
51684
|
-
});
|
|
51685
|
-
table.changeCellValues(col, row, values, true);
|
|
51686
|
-
});
|
|
51687
|
-
});
|
|
51688
|
-
}
|
|
51689
|
-
}
|
|
51690
|
-
});
|
|
51691
|
-
}
|
|
51692
|
-
});
|
|
51693
|
-
});
|
|
51744
|
+
pasteHtmlToTable(item);
|
|
51694
51745
|
}
|
|
51695
51746
|
else if (item.types.length === 1 && item.types[0] === 'text/plain') {
|
|
51696
|
-
item
|
|
51697
|
-
blob.text().then(pastedData => {
|
|
51698
|
-
const rows = pastedData.replace(/\r(?!\n)/g, '\r\n').split('\r\n');
|
|
51699
|
-
if (rows.length > 1 && rows[rows.length - 1] === '') {
|
|
51700
|
-
rows.pop();
|
|
51701
|
-
}
|
|
51702
|
-
rows.forEach(function (rowCells, rowIndex) {
|
|
51703
|
-
const cells = rowCells.split('\t');
|
|
51704
|
-
cells.forEach(function (cell, cellIndex) {
|
|
51705
|
-
if (cell.includes('\n')) {
|
|
51706
|
-
cell = cell
|
|
51707
|
-
.replace(/^"(.*)"$/, '$1')
|
|
51708
|
-
.replace(/["]*/g, match => new Array(Math.floor(match.length / 2)).fill('"').join(''));
|
|
51709
|
-
}
|
|
51710
|
-
});
|
|
51711
|
-
});
|
|
51712
|
-
});
|
|
51713
|
-
});
|
|
51714
|
-
table.changeCellValues(col, row, values, true);
|
|
51747
|
+
pasteTextToTable(item);
|
|
51715
51748
|
}
|
|
51716
51749
|
else ;
|
|
51717
51750
|
}
|
|
@@ -51730,6 +51763,138 @@
|
|
|
51730
51763
|
}
|
|
51731
51764
|
table.resize();
|
|
51732
51765
|
});
|
|
51766
|
+
function pasteHtmlToTable(item) {
|
|
51767
|
+
const ranges = table.stateManager.select.ranges;
|
|
51768
|
+
const selectRangeLength = ranges.length;
|
|
51769
|
+
const col = Math.min(ranges[selectRangeLength - 1].start.col, ranges[selectRangeLength - 1].end.col);
|
|
51770
|
+
const row = Math.min(ranges[selectRangeLength - 1].start.row, ranges[selectRangeLength - 1].end.row);
|
|
51771
|
+
const maxCol = Math.max(ranges[selectRangeLength - 1].start.col, ranges[selectRangeLength - 1].end.col);
|
|
51772
|
+
const maxRow = Math.max(ranges[selectRangeLength - 1].start.row, ranges[selectRangeLength - 1].end.row);
|
|
51773
|
+
let pasteValuesColCount = 0;
|
|
51774
|
+
let pasteValuesRowCount = 0;
|
|
51775
|
+
let values = [];
|
|
51776
|
+
item.getType('text/html').then((blob) => {
|
|
51777
|
+
blob.text().then((pastedData) => {
|
|
51778
|
+
if (pastedData && /(<table)|(<TABLE)/g.test(pastedData)) {
|
|
51779
|
+
const regex = /<tr[^>]*>(.*?)<\/tr>/gs;
|
|
51780
|
+
const matches = Array.from(pastedData.matchAll(regex));
|
|
51781
|
+
for (const match of matches) {
|
|
51782
|
+
const rowContent = match[1];
|
|
51783
|
+
const cellRegex = /<td[^>]*>(.*?)<\/td>/gs;
|
|
51784
|
+
const cellMatches = Array.from(rowContent.matchAll(cellRegex));
|
|
51785
|
+
const rowValues = cellMatches.map(cellMatch => {
|
|
51786
|
+
return (cellMatch[1]
|
|
51787
|
+
.replace(/(<(?!br)([^>]+)>)/gi, '')
|
|
51788
|
+
.replace(/<br(\s*|\/)>[\r\n]?/gim, '\n')
|
|
51789
|
+
.replace(/&/g, '&')
|
|
51790
|
+
.replace(/</g, '<')
|
|
51791
|
+
.replace(/>/g, '>')
|
|
51792
|
+
.replace(/	/gi, '\t')
|
|
51793
|
+
.replace(/ /g, ' '));
|
|
51794
|
+
});
|
|
51795
|
+
values.push(rowValues);
|
|
51796
|
+
pasteValuesColCount = Math.max(pasteValuesColCount, rowValues?.length ?? 0);
|
|
51797
|
+
}
|
|
51798
|
+
pasteValuesRowCount = values.length ?? 0;
|
|
51799
|
+
values = handlePasteValues(values, pasteValuesRowCount, pasteValuesColCount, maxRow - row + 1, maxCol - col + 1);
|
|
51800
|
+
table.changeCellValues(col, row, values, true);
|
|
51801
|
+
}
|
|
51802
|
+
else {
|
|
51803
|
+
navigator.clipboard.read().then(clipboardItems => {
|
|
51804
|
+
for (const item of clipboardItems) {
|
|
51805
|
+
if (item.types.includes('text/plain')) {
|
|
51806
|
+
item.getType('text/plain').then((blob) => {
|
|
51807
|
+
blob.text().then(_pasteValue);
|
|
51808
|
+
});
|
|
51809
|
+
}
|
|
51810
|
+
}
|
|
51811
|
+
});
|
|
51812
|
+
}
|
|
51813
|
+
});
|
|
51814
|
+
});
|
|
51815
|
+
}
|
|
51816
|
+
function _pasteValue(pastedData) {
|
|
51817
|
+
const ranges = table.stateManager.select.ranges;
|
|
51818
|
+
const selectRangeLength = ranges.length;
|
|
51819
|
+
const col = Math.min(ranges[selectRangeLength - 1].start.col, ranges[selectRangeLength - 1].end.col);
|
|
51820
|
+
const row = Math.min(ranges[selectRangeLength - 1].start.row, ranges[selectRangeLength - 1].end.row);
|
|
51821
|
+
const maxCol = Math.max(ranges[selectRangeLength - 1].start.col, ranges[selectRangeLength - 1].end.col);
|
|
51822
|
+
const maxRow = Math.max(ranges[selectRangeLength - 1].start.row, ranges[selectRangeLength - 1].end.row);
|
|
51823
|
+
let pasteValuesColCount = 0;
|
|
51824
|
+
let pasteValuesRowCount = 0;
|
|
51825
|
+
let values = [];
|
|
51826
|
+
const rows = pastedData.split('\n');
|
|
51827
|
+
rows.forEach(function (rowCells, rowIndex) {
|
|
51828
|
+
const cells = rowCells.split('\t');
|
|
51829
|
+
const rowValues = [];
|
|
51830
|
+
values.push(rowValues);
|
|
51831
|
+
cells.forEach(function (cell, cellIndex) {
|
|
51832
|
+
if (cellIndex === cells.length - 1) {
|
|
51833
|
+
cell = cell.trim();
|
|
51834
|
+
}
|
|
51835
|
+
rowValues.push(cell);
|
|
51836
|
+
});
|
|
51837
|
+
pasteValuesColCount = Math.max(pasteValuesColCount, rowValues?.length ?? 0);
|
|
51838
|
+
});
|
|
51839
|
+
pasteValuesRowCount = values.length ?? 0;
|
|
51840
|
+
values = handlePasteValues(values, pasteValuesRowCount, pasteValuesColCount, maxRow - row + 1, maxCol - col + 1);
|
|
51841
|
+
table.changeCellValues(col, row, values, true);
|
|
51842
|
+
}
|
|
51843
|
+
function pasteTextToTable(item) {
|
|
51844
|
+
const ranges = table.stateManager.select.ranges;
|
|
51845
|
+
const selectRangeLength = ranges.length;
|
|
51846
|
+
const col = Math.min(ranges[selectRangeLength - 1].start.col, ranges[selectRangeLength - 1].end.col);
|
|
51847
|
+
const row = Math.min(ranges[selectRangeLength - 1].start.row, ranges[selectRangeLength - 1].end.row);
|
|
51848
|
+
const maxCol = Math.max(ranges[selectRangeLength - 1].start.col, ranges[selectRangeLength - 1].end.col);
|
|
51849
|
+
const maxRow = Math.max(ranges[selectRangeLength - 1].start.row, ranges[selectRangeLength - 1].end.row);
|
|
51850
|
+
let pasteValuesColCount = 0;
|
|
51851
|
+
let pasteValuesRowCount = 0;
|
|
51852
|
+
item.getType('text/plain').then((blob) => {
|
|
51853
|
+
blob.text().then((pastedData) => {
|
|
51854
|
+
const rows = pastedData.replace(/\r(?!\n)/g, '\r\n').split('\r\n');
|
|
51855
|
+
let values = [];
|
|
51856
|
+
if (rows.length > 1 && rows[rows.length - 1] === '') {
|
|
51857
|
+
rows.pop();
|
|
51858
|
+
}
|
|
51859
|
+
rows.forEach(function (rowCells, rowIndex) {
|
|
51860
|
+
const cells = rowCells.split('\t');
|
|
51861
|
+
const rowValues = [];
|
|
51862
|
+
values.push(rowValues);
|
|
51863
|
+
cells.forEach(function (cell, cellIndex) {
|
|
51864
|
+
if (cell.includes('\n')) {
|
|
51865
|
+
cell = cell
|
|
51866
|
+
.replace(/^"(.*)"$/, '$1')
|
|
51867
|
+
.replace(/["]*/g, match => new Array(Math.floor(match.length / 2)).fill('"').join(''));
|
|
51868
|
+
}
|
|
51869
|
+
rowValues.push(cell);
|
|
51870
|
+
});
|
|
51871
|
+
pasteValuesColCount = Math.max(pasteValuesColCount, rowValues?.length ?? 0);
|
|
51872
|
+
});
|
|
51873
|
+
pasteValuesRowCount = values.length ?? 0;
|
|
51874
|
+
values = handlePasteValues(values, pasteValuesRowCount, pasteValuesColCount, maxRow - row + 1, maxCol - col + 1);
|
|
51875
|
+
table.changeCellValues(col, row, values, true);
|
|
51876
|
+
});
|
|
51877
|
+
});
|
|
51878
|
+
}
|
|
51879
|
+
function handlePasteValues(values, rowCount, colCount, selectedRowCount, selectedColCount) {
|
|
51880
|
+
if (selectedColCount > colCount || selectedRowCount > rowCount) {
|
|
51881
|
+
if (selectedColCount % colCount === 0 && selectedRowCount % rowCount === 0) {
|
|
51882
|
+
const toPasteValues = [];
|
|
51883
|
+
for (let i = 0; i < selectedRowCount; i++) {
|
|
51884
|
+
const rowPasteValue = [];
|
|
51885
|
+
toPasteValues.push(rowPasteValue);
|
|
51886
|
+
for (let j = 0; j < selectedColCount; j++) {
|
|
51887
|
+
const copiedRow = i % rowCount;
|
|
51888
|
+
const copiedCol = j % colCount;
|
|
51889
|
+
rowPasteValue.push(values[copiedRow][copiedCol]);
|
|
51890
|
+
}
|
|
51891
|
+
}
|
|
51892
|
+
return toPasteValues;
|
|
51893
|
+
}
|
|
51894
|
+
return values;
|
|
51895
|
+
}
|
|
51896
|
+
return values;
|
|
51897
|
+
}
|
|
51733
51898
|
const globalPointerdownCallback = (e) => {
|
|
51734
51899
|
table.eventManager.LastBodyPointerXY = { x: e.x, y: e.y };
|
|
51735
51900
|
table.eventManager.isDown = true;
|
|
@@ -52119,7 +52284,10 @@
|
|
|
52119
52284
|
if (e.federatedEvent) {
|
|
52120
52285
|
const eventArgsSet = getCellEventArgsSet(e.federatedEvent);
|
|
52121
52286
|
const resizeCol = this.table.scenegraph.getResizeColAt(eventArgsSet.abstractPos.x, eventArgsSet.abstractPos.y, eventArgsSet.eventArgs?.targetCell);
|
|
52122
|
-
if (this.table.
|
|
52287
|
+
if (this.table.eventManager.checkCellFillhandle(eventArgsSet)) {
|
|
52288
|
+
this.table.fireListeners(TABLE_EVENT_TYPE.DBLCLICK_FILL_HANDLE, {});
|
|
52289
|
+
}
|
|
52290
|
+
else if (this.table._canResizeColumn(resizeCol.col, resizeCol.row) && resizeCol.col >= 0) {
|
|
52123
52291
|
this.table.scenegraph.updateAutoColWidth(resizeCol.col);
|
|
52124
52292
|
this.table.scenegraph.updateChartSize(resizeCol.col);
|
|
52125
52293
|
const state = this.table.stateManager;
|
|
@@ -52196,6 +52364,53 @@
|
|
|
52196
52364
|
}
|
|
52197
52365
|
return false;
|
|
52198
52366
|
}
|
|
52367
|
+
dealFillSelect(eventArgsSet, isSelectMoving) {
|
|
52368
|
+
const { eventArgs } = eventArgsSet;
|
|
52369
|
+
if (eventArgs) {
|
|
52370
|
+
if (this.table.stateManager.select?.ranges?.length && this.table.stateManager.isFillHandle()) {
|
|
52371
|
+
let updateRow;
|
|
52372
|
+
let updateCol;
|
|
52373
|
+
const currentRange = this.table.stateManager.select.ranges[this.table.stateManager.select.ranges.length - 1];
|
|
52374
|
+
if (isSelectMoving) {
|
|
52375
|
+
if (!isValid$3(this.table.stateManager.fillHandle.directionRow)) {
|
|
52376
|
+
if (Math.abs(this.table.stateManager.fillHandle.startY - eventArgsSet.abstractPos.y) >=
|
|
52377
|
+
Math.abs(this.table.stateManager.fillHandle.startX - eventArgsSet.abstractPos.x)) {
|
|
52378
|
+
this.table.stateManager.fillHandle.directionRow = true;
|
|
52379
|
+
if (this.table.stateManager.fillHandle.startY - eventArgsSet.abstractPos.y > 0) {
|
|
52380
|
+
this.table.stateManager.fillHandle.direction = 'top';
|
|
52381
|
+
}
|
|
52382
|
+
else {
|
|
52383
|
+
this.table.stateManager.fillHandle.direction = 'bottom';
|
|
52384
|
+
}
|
|
52385
|
+
}
|
|
52386
|
+
else {
|
|
52387
|
+
this.table.stateManager.fillHandle.directionRow = false;
|
|
52388
|
+
if (this.table.stateManager.fillHandle.startX - eventArgsSet.abstractPos.x > 0) {
|
|
52389
|
+
this.table.stateManager.fillHandle.direction = 'left';
|
|
52390
|
+
}
|
|
52391
|
+
else {
|
|
52392
|
+
this.table.stateManager.fillHandle.direction = 'right';
|
|
52393
|
+
}
|
|
52394
|
+
}
|
|
52395
|
+
}
|
|
52396
|
+
if (this.table.stateManager.fillHandle.directionRow) {
|
|
52397
|
+
updateRow = eventArgs.row;
|
|
52398
|
+
updateCol = currentRange.end.col;
|
|
52399
|
+
}
|
|
52400
|
+
else {
|
|
52401
|
+
updateRow = currentRange.end.row;
|
|
52402
|
+
updateCol = eventArgs.col;
|
|
52403
|
+
}
|
|
52404
|
+
}
|
|
52405
|
+
this.table.stateManager.updateSelectPos(isSelectMoving ? updateCol : currentRange.end.col, isSelectMoving ? updateRow : currentRange.end.row, true, eventArgs.event.ctrlKey || eventArgs.event.metaKey);
|
|
52406
|
+
}
|
|
52407
|
+
else {
|
|
52408
|
+
this.table.stateManager.updateSelectPos(eventArgs.col, eventArgs.row, eventArgs.event.shiftKey, eventArgs.event.ctrlKey || eventArgs.event.metaKey);
|
|
52409
|
+
}
|
|
52410
|
+
return true;
|
|
52411
|
+
}
|
|
52412
|
+
return false;
|
|
52413
|
+
}
|
|
52199
52414
|
deelTableSelectAll() {
|
|
52200
52415
|
this.table.stateManager.updateSelectPos(-1, -1, false, false, true);
|
|
52201
52416
|
}
|
|
@@ -52214,6 +52429,29 @@
|
|
|
52214
52429
|
}
|
|
52215
52430
|
return false;
|
|
52216
52431
|
}
|
|
52432
|
+
checkCellFillhandle(eventArgsSet, update) {
|
|
52433
|
+
if (this.table.options.excelOptions?.fillHandle) {
|
|
52434
|
+
const { eventArgs } = eventArgsSet;
|
|
52435
|
+
if (eventArgs) {
|
|
52436
|
+
if (this.table.stateManager.select?.ranges?.length) {
|
|
52437
|
+
const lastCol = this.table.stateManager.select.ranges[this.table.stateManager.select.ranges.length - 1].end.col;
|
|
52438
|
+
const lastRow = this.table.stateManager.select.ranges[this.table.stateManager.select.ranges.length - 1].end.row;
|
|
52439
|
+
const lastCellBound = this.table.scenegraph.highPerformanceGetCell(lastCol, lastRow).globalAABBBounds;
|
|
52440
|
+
const distanceX = Math.abs(eventArgsSet.abstractPos.x - lastCellBound.x2);
|
|
52441
|
+
const distanceY = Math.abs(eventArgsSet.abstractPos.y - lastCellBound.y2);
|
|
52442
|
+
const squareSize = 6 * 3;
|
|
52443
|
+
if (this.table.stateManager.fillHandle?.isFilling ||
|
|
52444
|
+
(distanceX <= squareSize / 2 && distanceY <= squareSize / 2)) {
|
|
52445
|
+
if (update) {
|
|
52446
|
+
this.table.stateManager.startFillSelect(eventArgsSet.abstractPos.x, eventArgsSet.abstractPos.y);
|
|
52447
|
+
}
|
|
52448
|
+
return true;
|
|
52449
|
+
}
|
|
52450
|
+
}
|
|
52451
|
+
}
|
|
52452
|
+
}
|
|
52453
|
+
return false;
|
|
52454
|
+
}
|
|
52217
52455
|
dealColumnResize(xInTable, yInTable) {
|
|
52218
52456
|
this.table.stateManager.updateResizeCol(xInTable, yInTable);
|
|
52219
52457
|
}
|
|
@@ -55504,7 +55742,7 @@
|
|
|
55504
55742
|
return TABLE_EVENT_TYPE;
|
|
55505
55743
|
}
|
|
55506
55744
|
options;
|
|
55507
|
-
version = "0.
|
|
55745
|
+
version = "0.23.0-alpha.0";
|
|
55508
55746
|
pagination;
|
|
55509
55747
|
id = `VTable${Date.now()}`;
|
|
55510
55748
|
headerStyleCache;
|
|
@@ -57281,6 +57519,16 @@
|
|
|
57281
57519
|
}
|
|
57282
57520
|
return cacheStyle;
|
|
57283
57521
|
}
|
|
57522
|
+
let bgColorFunc;
|
|
57523
|
+
if (this.internalProps?.dataConfig?.mappingRules && !this.isHeader(col, row)) {
|
|
57524
|
+
this.internalProps?.dataConfig?.mappingRules?.forEach((mappingRule, i) => {
|
|
57525
|
+
if (mappingRule.bgColor &&
|
|
57526
|
+
this.internalProps.layoutMap.getIndicatorKey(col, row) ===
|
|
57527
|
+
mappingRule.bgColor.indicatorKey) {
|
|
57528
|
+
bgColorFunc = mappingRule.bgColor.mapping;
|
|
57529
|
+
}
|
|
57530
|
+
});
|
|
57531
|
+
}
|
|
57284
57532
|
let cacheKey;
|
|
57285
57533
|
const cellType = this.getCellType(col, row);
|
|
57286
57534
|
if (this.isSeriesNumberInBody(col, row)) {
|
|
@@ -57321,6 +57569,9 @@
|
|
|
57321
57569
|
dataValue: this.getCellOriginValue(col, row),
|
|
57322
57570
|
cellHeaderPaths: this.getCellHeaderPaths(col, row)
|
|
57323
57571
|
}, styleClass, this.options.autoWrapText, this.theme);
|
|
57572
|
+
if (bgColorFunc) {
|
|
57573
|
+
cacheStyle = mergeStyle(cacheStyle, { bgColor: bgColorFunc });
|
|
57574
|
+
}
|
|
57324
57575
|
if (!isFunction$3(style)) {
|
|
57325
57576
|
if (layoutMap.isBottomFrozenRow(row)) {
|
|
57326
57577
|
this.bodyBottomStyleCache.set(cacheKey, cacheStyle);
|
|
@@ -57625,7 +57876,7 @@
|
|
|
57625
57876
|
const copyCellValue = getCopyCellValue(c, r, range);
|
|
57626
57877
|
if (typeof Promise !== 'undefined' && copyCellValue instanceof Promise) ;
|
|
57627
57878
|
else {
|
|
57628
|
-
const strCellValue = `${copyCellValue}
|
|
57879
|
+
const strCellValue = isValid$3(copyCellValue) ? `${copyCellValue}` : '';
|
|
57629
57880
|
if (/^\[object .*\]$/.exec(strCellValue)) ;
|
|
57630
57881
|
else {
|
|
57631
57882
|
copyValue += strCellValue;
|
|
@@ -57722,6 +57973,13 @@
|
|
|
57722
57973
|
}
|
|
57723
57974
|
return cellInfoArray;
|
|
57724
57975
|
}
|
|
57976
|
+
getSelectedCellRanges() {
|
|
57977
|
+
const ranges = this.stateManager.select.ranges;
|
|
57978
|
+
if (!ranges.length) {
|
|
57979
|
+
return [];
|
|
57980
|
+
}
|
|
57981
|
+
return cloneDeep(ranges);
|
|
57982
|
+
}
|
|
57725
57983
|
measureText(text, font) {
|
|
57726
57984
|
return textMeasure.measureText(text, font);
|
|
57727
57985
|
}
|
|
@@ -57799,11 +58057,20 @@
|
|
|
57799
58057
|
this.scrollToCell({ col, row });
|
|
57800
58058
|
}
|
|
57801
58059
|
const cellRect = this.getCellRelativeRect(col, row);
|
|
58060
|
+
if (this.stateManager.select?.ranges?.length > 0) {
|
|
58061
|
+
hideCellSelectBorder(this.scenegraph);
|
|
58062
|
+
}
|
|
58063
|
+
const { col: hoverCol, row: hoverRow } = this.stateManager.hover.cellPos;
|
|
58064
|
+
this.stateManager.updateHoverPos(-1, -1);
|
|
57802
58065
|
const c = this.scenegraph.stage.toCanvas(false, new AABBBounds$1().set(cellRect.left + this.tableX + 1, cellRect.top + this.tableY + 1, cellRect.right + this.tableX, cellRect.bottom + this.tableY));
|
|
57803
58066
|
if (!isInView) {
|
|
57804
58067
|
this.setScrollTop(scrollTop);
|
|
57805
58068
|
this.setScrollLeft(scrollLeft);
|
|
57806
58069
|
}
|
|
58070
|
+
if (this.stateManager.select?.ranges?.length > 0) {
|
|
58071
|
+
restoreCellSelectBorder(this.scenegraph);
|
|
58072
|
+
}
|
|
58073
|
+
this.stateManager.updateHoverPos(hoverCol, hoverRow);
|
|
57807
58074
|
return c.toDataURL();
|
|
57808
58075
|
}
|
|
57809
58076
|
exportCellRangeImg(cellRange) {
|
|
@@ -63362,7 +63629,7 @@
|
|
|
63362
63629
|
dimension.indicatorKey === rowDimension.indicatorKey &&
|
|
63363
63630
|
(!rowDimension.value || dimension.value === rowDimension.value))) {
|
|
63364
63631
|
rowArr = dimension.children;
|
|
63365
|
-
if (needLowestLevel && !rowArr) {
|
|
63632
|
+
if (needLowestLevel && (!rowArr || rowArr.some(row => row.dimensionKey === 'axis'))) {
|
|
63366
63633
|
rowDimensionFinded = dimension;
|
|
63367
63634
|
}
|
|
63368
63635
|
else if (!needLowestLevel) {
|
|
@@ -67563,7 +67830,7 @@
|
|
|
67563
67830
|
}
|
|
67564
67831
|
|
|
67565
67832
|
registerForVrender();
|
|
67566
|
-
const version = "0.
|
|
67833
|
+
const version = "0.23.0-alpha.0";
|
|
67567
67834
|
function getIcons() {
|
|
67568
67835
|
return get$2();
|
|
67569
67836
|
}
|