mirror of
https://github.com/dream-num/univer.git
synced 2026-10-02 04:24:34 +08:00
fix(ref-range): regional changes need to be fully contained within the line (#1137)
* fix(ref-range): regional changes need to be fully contained within the line * docs(ref-range): doc
This commit is contained in:
@@ -8,9 +8,9 @@
|
||||
"version": 1,
|
||||
"subTypeKey": "type",
|
||||
"subTypeVersions": {
|
||||
"image": 2,
|
||||
"video": 2,
|
||||
"bookmark": 0
|
||||
"image": 3,
|
||||
"video": 3,
|
||||
"bookmark": 1
|
||||
}
|
||||
},
|
||||
"camera": {
|
||||
@@ -34,17 +34,17 @@
|
||||
"subTypeVersions": {
|
||||
"group": 0,
|
||||
"text": 1,
|
||||
"bookmark": 1,
|
||||
"bookmark": 2,
|
||||
"draw": 1,
|
||||
"geo": 7,
|
||||
"note": 4,
|
||||
"geo": 8,
|
||||
"note": 5,
|
||||
"line": 1,
|
||||
"frame": 0,
|
||||
"arrow": 2,
|
||||
"highlight": 0,
|
||||
"embed": 4,
|
||||
"image": 2,
|
||||
"video": 1
|
||||
"image": 3,
|
||||
"video": 2
|
||||
}
|
||||
},
|
||||
"instance_presence": {
|
||||
@@ -66,9 +66,9 @@
|
||||
{
|
||||
"id": "pointer:pointer",
|
||||
"typeName": "pointer",
|
||||
"x": 1612.998880263944,
|
||||
"y": 347.3408281592515,
|
||||
"lastActivityTimestamp": 1704866955718,
|
||||
"x": 1284.651115464451,
|
||||
"y": 1103.7717774000166,
|
||||
"lastActivityTimestamp": 1705137252973,
|
||||
"meta": {}
|
||||
},
|
||||
{
|
||||
@@ -79,9 +79,9 @@
|
||||
"typeName": "page"
|
||||
},
|
||||
{
|
||||
"x": -292.4424917164073,
|
||||
"y": 160.35701328752248,
|
||||
"z": 0.43819124652182156,
|
||||
"x": 42.323994221064424,
|
||||
"y": 459.3820565153594,
|
||||
"z": 0.35291732043940677,
|
||||
"meta": {},
|
||||
"id": "camera:page:page",
|
||||
"typeName": "camera"
|
||||
@@ -90,7 +90,7 @@
|
||||
"editingShapeId": null,
|
||||
"croppingShapeId": null,
|
||||
"selectedShapeIds": [],
|
||||
"hoveredShapeId": "shape:dFeveS-GehMaRYzINPKui",
|
||||
"hoveredShapeId": null,
|
||||
"erasingShapeIds": [],
|
||||
"hintingShapeIds": [],
|
||||
"focusedGroupId": null,
|
||||
@@ -119,8 +119,8 @@
|
||||
"screenBounds": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 1399,
|
||||
"h": 966
|
||||
"w": 1502,
|
||||
"h": 686
|
||||
},
|
||||
"zoomBrush": null,
|
||||
"isGridMode": false,
|
||||
@@ -623,8 +623,8 @@
|
||||
"typeName": "shape"
|
||||
},
|
||||
{
|
||||
"x": 515.6821636368934,
|
||||
"y": 809.8912193648168,
|
||||
"x": 515.6932320933668,
|
||||
"y": 850.4239069704852,
|
||||
"rotation": 0,
|
||||
"isLocked": false,
|
||||
"opacity": 1,
|
||||
@@ -634,7 +634,7 @@
|
||||
"color": "violet",
|
||||
"size": "m",
|
||||
"w": 413.828125,
|
||||
"text": "1,3,13 unchnged\n2 move forward fromRamge step\n4,5,6,7,8,9,10,14,15 unhandle \n12 move to mirror position",
|
||||
"text": "1,3,13 unchnged\n2 move forward fromRamge step\n6,7,10 unhandle \n12 move to mirror position\n4,5,8,9,11,14,15 reduce",
|
||||
"font": "draw",
|
||||
"align": "middle",
|
||||
"autoSize": true,
|
||||
@@ -1127,8 +1127,8 @@
|
||||
"typeName": "shape"
|
||||
},
|
||||
{
|
||||
"x": 1466.9183002479476,
|
||||
"y": 823.113365068284,
|
||||
"x": 1455.8719806874733,
|
||||
"y": 836.7164980741185,
|
||||
"rotation": 0,
|
||||
"isLocked": false,
|
||||
"opacity": 1,
|
||||
@@ -1138,7 +1138,7 @@
|
||||
"color": "violet",
|
||||
"size": "m",
|
||||
"w": 363.140625,
|
||||
"text": "1,3 unchanged\n2 move back fromRange step\n4,5,6,7,8,9,10,11,14,15 unhandle\n13 move to mirror position\n12 move right",
|
||||
"text": "1,3 unchanged\n2 move back fromRange step\n4,5,9 unhandle\n13 move to mirror position\n12 move right\n6,8,10,11,14,15 reduce\n7 reduce and move left",
|
||||
"font": "draw",
|
||||
"align": "middle",
|
||||
"autoSize": true,
|
||||
|
||||
@@ -207,7 +207,7 @@ describe('test ref-range move', () => {
|
||||
expect(result).toEqual({ startRow: 16, endRow: 17, startColumn: 5, endColumn: 6 });
|
||||
});
|
||||
it('the targetRange is overlap with range ', () => {
|
||||
const targetRange = { startRow: 12, endRow: 13, startColumn: 3, endColumn: 6 };
|
||||
const targetRange = { startRow: 12, endRow: 13, startColumn: 4, endColumn: 6 };
|
||||
const operators = handleInsertRangeMoveDown(
|
||||
{
|
||||
params: { range },
|
||||
|
||||
@@ -230,16 +230,14 @@ export const handleMoveRange = (param: IMoveRangeCommand, targetRange: IRange) =
|
||||
const handleBaseRemoveRange = (removeRange: IRange, targetRange: IRange) => {
|
||||
const getLength = (range: IRange): number => range.endColumn - range.startColumn + 1;
|
||||
const getRowLength = (range: IRange): number => range.endRow - range.startRow + 1;
|
||||
if (removeRange.startRow <= targetRange.endRow && removeRange.endRow >= targetRange.endRow) {
|
||||
if (removeRange.startRow <= targetRange.startRow && removeRange.endRow >= targetRange.endRow) {
|
||||
if (
|
||||
// 2
|
||||
(targetRange.startColumn < removeRange.startColumn &&
|
||||
targetRange.endColumn >= removeRange.startColumn &&
|
||||
targetRange.endColumn <= removeRange.endColumn) ||
|
||||
// 6
|
||||
(targetRange.startColumn < removeRange.startColumn &&
|
||||
targetRange.endColumn >= removeRange.endColumn &&
|
||||
getRowLength(removeRange) >= getRowLength(targetRange))
|
||||
(targetRange.startColumn < removeRange.startColumn && targetRange.endColumn >= removeRange.endColumn)
|
||||
) {
|
||||
const intersectedRange = Rectangle.getIntersects(targetRange, removeRange);
|
||||
if (intersectedRange) {
|
||||
@@ -319,18 +317,14 @@ export const handleIRemoveRow = (param: IRemoveRowColCommand, targetRange: IRang
|
||||
// see docs/tldr/ref-range/insert-rows-cols.tldr
|
||||
const handleBaseInsertRange = (insertRange: IRange, targetRange: IRange) => {
|
||||
const getLength = (range: IRange): number => range.endColumn - range.startColumn + 1;
|
||||
const getRowLength = (range: IRange): number => range.endRow - range.startRow + 1;
|
||||
|
||||
if (insertRange.startRow <= targetRange.endRow && insertRange.endRow >= targetRange.endRow) {
|
||||
if (insertRange.startRow <= targetRange.startRow && insertRange.endRow >= targetRange.endRow) {
|
||||
if (
|
||||
// 2
|
||||
(targetRange.startColumn < insertRange.startColumn &&
|
||||
targetRange.endColumn >= insertRange.startColumn &&
|
||||
targetRange.endColumn <= insertRange.endColumn) ||
|
||||
// 6
|
||||
(targetRange.startColumn < insertRange.startColumn &&
|
||||
targetRange.endColumn >= insertRange.endColumn &&
|
||||
getRowLength(insertRange) >= getRowLength(targetRange))
|
||||
(targetRange.startColumn < insertRange.startColumn && targetRange.endColumn >= insertRange.endColumn)
|
||||
) {
|
||||
const length = getLength(insertRange);
|
||||
return { step: 0, length };
|
||||
|
||||
Reference in New Issue
Block a user