@ -1612,6 +1612,13 @@ function luckysheetDeleteCell(type, str, edr, stc, edc, order) {
else if ( str <= r && edr >= r + rs - 1 && edc < c ) {
merge_new [ r + "_" + ( c - clen ) ] = { "r" : r , "c" : c - clen , "rs" : rs , "cs" : cs } ;
}
else {
for ( let r_i = r ; r_i <= r + rs - 1 ; r_i ++ ) {
for ( let c_i = c ; c_i <= c + cs - 1 ; c_i ++ ) {
delete d [ r_i ] [ c_i ] . mc ;
}
}
}
}
else if ( type == "moveUp" ) {
if ( stc > c + cs - 1 || edc < c || str > r + rs - 1 ) {
@ -1620,6 +1627,13 @@ function luckysheetDeleteCell(type, str, edr, stc, edc, order) {
else if ( stc <= c && edc >= c + cs - 1 && edr < r ) {
merge_new [ ( r - rlen ) + "_" + c ] = { "r" : r - rlen , "c" : c , "rs" : rs , "cs" : cs } ;
}
else {
for ( let r_i = r ; r_i <= r + rs - 1 ; r_i ++ ) {
for ( let c_i = c ; c_i <= c + cs - 1 ; c_i ++ ) {
delete d [ r_i ] [ c_i ] . mc ;
}
}
}
}
}
cfg [ "merge" ] = merge_new ;
@ -1905,19 +1919,9 @@ function luckysheetDeleteCell(type, str, edr, stc, edc, order) {
CFr2 = cf_range [ j ] . row [ 1 ] ,
CFc1 = cf_range [ j ] . column [ 0 ] ,
CFc2 = cf_range [ j ] . column [ 1 ] ;
if ( ! ( str > CFr2 || edr < CFr1 ) || ! ( stc > CFc2 || edc < CFc1 ) ) {
let range = conditionformat . CFSplitRange (
cf_range [ j ] ,
{ "row" : [ str , edr ] , "column" : [ stc , edc ] } ,
{ "row" : [ str , edr ] , "column" : [ stc , edc ] } ,
"restPart"
) ;
cf_new_range . concat ( range ) ;
}
else {
cf_new_range . push ( cf_range [ j ] ) ;
if ( ! ( str <= CFr1 && edr >= CFr2 && stc <= CFc1 && edc >= CFc2 ) ) {
cf_new_range = getMoveRange ( type , str , edr , stc , edc , CFr1 , CFr2 , CFc1 , CFc2 , rlen , clen ) ;
}
}
@ -1978,18 +1982,8 @@ function luckysheetDeleteCell(type, str, edr, stc, edc, order) {
bd_c1 = borderRange [ j ] . column [ 0 ] ,
bd_c2 = borderRange [ j ] . column [ 1 ] ;
if ( ! ( str > bd_r2 || edr < bd_r1 ) || ! ( stc > bd_c2 || edc < bd_c1 ) ) {
let range = conditionformat . CFSplitRange (
borderRange [ j ] ,
{ "row" : [ str , edr ] , "column" : [ stc , edc ] } ,
{ "row" : [ str , edr ] , "column" : [ stc , edc ] } ,
"restPart"
) ;
emptyRange . concat ( range ) ;
}
else {
emptyRange . push ( borderRange [ j ] ) ;
if ( ! ( str <= bd_r1 && edr >= bd_r2 && stc <= bd_c1 && edc >= bd_c2 ) ) {
emptyRange = getMoveRange ( type , str , edr , stc , edc , bd_r1 , bd_r2 , bd_c1 , bd_c2 , rlen , clen ) ;
}
}
@ -2095,6 +2089,315 @@ function luckysheetDeleteCell(type, str, edr, stc, edc, order) {
}
}
function getMoveRange ( type , str , edr , stc , edc , r1 , r2 , c1 , c2 , rlen , clen ) {
let newRange = [ ] ;
if ( type == "moveLeft" ) {
if ( str > r2 || edr < r1 || stc > c2 ) {
newRange . push ( {
"row" : [ r1 , r2 ] ,
"column" : [ c1 , c2 ]
} ) ;
}
else if ( edc < c1 ) {
if ( str <= r1 && edr >= r2 ) {
newRange . push ( {
"row" : [ r1 , r2 ] ,
"column" : [ c1 - clen , c2 - clen ]
} ) ;
}
else if ( str > r1 && edr < r2 ) {
let range = [
{ "row" : [ r1 , str - 1 ] , "column" : [ c1 , c2 ] } ,
{ "row" : [ edr + 1 , r2 ] , "column" : [ c1 , c2 ] } ,
{ "row" : [ str , edr ] , "column" : [ c1 - clen , c2 - clen ] }
] ;
newRange = newRange . concat ( range ) ;
}
else if ( str > r1 ) {
let range = [
{ "row" : [ r1 , str - 1 ] , "column" : [ c1 , c2 ] } ,
{ "row" : [ str , r2 ] , "column" : [ c1 - clen , c2 - clen ] } ,
] ;
newRange = newRange . concat ( range ) ;
}
else if ( edr < r2 ) {
let range = [
{ "row" : [ r1 , edr ] , "column" : [ c1 - clen , c2 - clen ] } ,
{ "row" : [ edr + 1 , r2 ] , "column" : [ c1 , c2 ] } ,
] ;
newRange = newRange . concat ( range ) ;
}
}
else if ( edc >= c1 ) {
if ( stc <= c1 && edc >= c2 ) {
if ( str > r1 && edr < r2 ) {
let range = [
{ "row" : [ r1 , str - 1 ] , "column" : [ c1 , c2 ] } ,
{ "row" : [ edr + 1 , r2 ] , "column" : [ c1 , c2 ] } ,
] ;
newRange = newRange . concat ( range ) ;
}
else if ( str > r1 ) {
let range = [
{ "row" : [ r1 , str - 1 ] , "column" : [ c1 , c2 ] } ,
] ;
newRange = newRange . concat ( range ) ;
}
else if ( edr < r2 ) {
let range = [
{ "row" : [ edr + 1 , r2 ] , "column" : [ c1 , c2 ] } ,
] ;
newRange = newRange . concat ( range ) ;
}
}
else if ( stc > c1 && edc < c2 ) {
if ( str <= r1 && edr >= r2 ) {
newRange . push ( {
"row" : [ r1 , r2 ] ,
"column" : [ c1 , c2 - clen ]
} ) ;
}
else if ( str > r1 && edr < r2 ) {
let range = [
{ "row" : [ r1 , str - 1 ] , "column" : [ c1 , c2 ] } ,
{ "row" : [ edr + 1 , r2 ] , "column" : [ c1 , c2 ] } ,
{ "row" : [ str , edr ] , "column" : [ c1 , c2 - clen ] }
] ;
newRange = newRange . concat ( range ) ;
}
else if ( str > r1 ) {
let range = [
{ "row" : [ r1 , str - 1 ] , "column" : [ c1 , c2 ] } ,
{ "row" : [ str , r2 ] , "column" : [ c1 , c2 - clen ] } ,
] ;
newRange = newRange . concat ( range ) ;
}
else if ( edr < r2 ) {
let range = [
{ "row" : [ r1 , edr ] , "column" : [ c1 , c2 - clen ] } ,
{ "row" : [ edr + 1 , r2 ] , "column" : [ c1 , c2 ] } ,
] ;
newRange = newRange . concat ( range ) ;
}
}
else if ( stc > c1 ) {
if ( str <= r1 && edr >= r2 ) {
newRange . push ( {
"row" : [ r1 , r2 ] ,
"column" : [ c1 , stc - 1 ]
} ) ;
}
else if ( str > r1 && edr < r2 ) {
let range = [
{ "row" : [ r1 , str - 1 ] , "column" : [ c1 , c2 ] } ,
{ "row" : [ edr + 1 , r2 ] , "column" : [ c1 , c2 ] } ,
{ "row" : [ str , edr ] , "column" : [ c1 , stc - 1 ] }
] ;
newRange = newRange . concat ( range ) ;
}
else if ( str > r1 ) {
let range = [
{ "row" : [ r1 , str - 1 ] , "column" : [ c1 , c2 ] } ,
{ "row" : [ str , r2 ] , "column" : [ c1 , stc - 1 ] } ,
] ;
newRange = newRange . concat ( range ) ;
}
else if ( edr < r2 ) {
let range = [
{ "row" : [ r1 , edr ] , "column" : [ c1 , stc - 1 ] } ,
{ "row" : [ edr + 1 , r2 ] , "column" : [ c1 , c2 ] } ,
] ;
newRange = newRange . concat ( range ) ;
}
}
else if ( edc < c2 ) {
if ( str <= r1 && edr >= r2 ) {
newRange . push ( {
"row" : [ r1 , r2 ] ,
"column" : [ c1 - clen , c2 - clen ]
} ) ;
}
else if ( str > r1 && edr < r2 ) {
let range = [
{ "row" : [ r1 , str - 1 ] , "column" : [ c1 , c2 ] } ,
{ "row" : [ edr + 1 , r2 ] , "column" : [ c1 , c2 ] } ,
{ "row" : [ str , edr ] , "column" : [ c1 - clen , c2 - clen ] }
] ;
newRange = newRange . concat ( range ) ;
}
else if ( str > r1 ) {
let range = [
{ "row" : [ r1 , str - 1 ] , "column" : [ c1 , c2 ] } ,
{ "row" : [ str , r2 ] , "column" : [ c1 - clen , c2 - clen ] } ,
] ;
newRange = newRange . concat ( range ) ;
}
else if ( edr < r2 ) {
let range = [
{ "row" : [ r1 , edr ] , "column" : [ c1 - clen , c2 - clen ] } ,
{ "row" : [ edr + 1 , r2 ] , "column" : [ c1 , c2 ] } ,
] ;
newRange = newRange . concat ( range ) ;
}
}
}
}
else if ( type == "moveUp" ) {
if ( stc > c2 || edc < c1 || str > r2 ) {
newRange . push ( {
"row" : [ r1 , r2 ] ,
"column" : [ c1 , c2 ]
} ) ;
}
else if ( edr < r1 ) {
if ( stc <= c1 && edc >= c2 ) {
newRange . push ( {
"row" : [ r1 - rlen , r2 - rlen ] ,
"column" : [ c1 , c2 ]
} ) ;
}
else if ( stc > c1 && edc < c2 ) {
let range = [
{ "row" : [ r1 , r2 ] , "column" : [ c1 , stc - 1 ] } ,
{ "row" : [ r1 , r2 ] , "column" : [ edc + 1 , c2 ] } ,
{ "row" : [ r1 - rlen , r2 - rlen ] , "column" : [ stc , edc ] }
] ;
newRange = newRange . concat ( range ) ;
}
else if ( stc > c1 ) {
let range = [
{ "row" : [ r1 , r2 ] , "column" : [ c1 , stc - 1 ] } ,
{ "row" : [ r1 - rlen , r2 - rlen ] , "column" : [ stc , c2 ] } ,
] ;
newRange = newRange . concat ( range ) ;
}
else if ( edc < c2 ) {
let range = [
{ "row" : [ r1 - rlen , r2 - rlen ] , "column" : [ c1 , edc ] } ,
{ "row" : [ r1 , r2 ] , "column" : [ edc + 1 , c2 ] } ,
] ;
newRange = newRange . concat ( range ) ;
}
}
else if ( edr >= r1 ) {
if ( str <= r1 && edr >= r2 ) {
if ( stc > c1 && edc < c2 ) {
let range = [
{ "row" : [ r1 , r2 ] , "column" : [ c1 , stc - 1 ] } ,
{ "row" : [ r1 , r2 ] , "column" : [ edc + 1 , c2 ] } ,
] ;
newRange = newRange . concat ( range ) ;
}
else if ( stc > c1 ) {
let range = [
{ "row" : [ r1 , r2 ] , "column" : [ c1 , stc - 1 ] } ,
] ;
newRange = newRange . concat ( range ) ;
}
else if ( edc < c2 ) {
let range = [
{ "row" : [ r1 , r2 ] , "column" : [ edc + 1 , c2 ] } ,
] ;
newRange = newRange . concat ( range ) ;
}
}
else if ( str > r1 && edr < r2 ) {
if ( stc <= c1 && edc >= c2 ) {
newRange . push ( {
"row" : [ r1 , r2 - rlen ] ,
"column" : [ c1 , c2 ]
} ) ;
}
else if ( stc > c1 && edc < c2 ) {
let range = [
{ "row" : [ r1 , r2 ] , "column" : [ c1 , stc - 1 ] } ,
{ "row" : [ r1 , r2 ] , "column" : [ edc + 1 , c2 ] } ,
{ "row" : [ r1 , r2 - rlen ] , "column" : [ stc , edc ] }
] ;
newRange = newRange . concat ( range ) ;
}
else if ( stc > c1 ) {
let range = [
{ "row" : [ r1 , r2 ] , "column" : [ c1 , stc - 1 ] } ,
{ "row" : [ r1 , r2 - rlen ] , "column" : [ stc , c2 ] } ,
] ;
newRange = newRange . concat ( range ) ;
}
else if ( edc < c2 ) {
let range = [
{ "row" : [ r1 , r2 - rlen ] , "column" : [ c1 , edc ] } ,
{ "row" : [ r1 , r2 ] , "column" : [ edc + 1 , c2 ] } ,
] ;
newRange = newRange . concat ( range ) ;
}
}
else if ( str > r1 ) {
if ( stc <= c1 && edc >= c2 ) {
newRange . push ( {
"row" : [ r1 , str - 1 ] ,
"column" : [ c1 , c2 ]
} ) ;
}
else if ( stc > c1 && edc < c2 ) {
let range = [
{ "row" : [ r1 , r2 ] , "column" : [ c1 , stc - 1 ] } ,
{ "row" : [ r1 , r2 ] , "column" : [ edc + 1 , c2 ] } ,
{ "row" : [ r1 , str - 1 ] , "column" : [ stc , edc ] }
] ;
newRange = newRange . concat ( range ) ;
}
else if ( stc > c1 ) {
let range = [
{ "row" : [ r1 , r2 ] , "column" : [ c1 , stc - 1 ] } ,
{ "row" : [ r1 , str - 1 ] , "column" : [ stc , c2 ] } ,
] ;
newRange = newRange . concat ( range ) ;
}
else if ( edc < c2 ) {
let range = [
{ "row" : [ r1 , str - 1 ] , "column" : [ c1 , edc ] } ,
{ "row" : [ r1 , r2 ] , "column" : [ edc + 1 , c2 ] } ,
] ;
newRange = newRange . concat ( range ) ;
}
}
else if ( edr < r2 ) {
if ( stc <= c1 && edc >= c2 ) {
newRange . push ( {
"row" : [ r1 - rlen , r2 - rlen ] ,
"column" : [ c1 , c2 ]
} ) ;
}
else if ( stc > c1 && edc < c2 ) {
let range = [
{ "row" : [ r1 , r2 ] , "column" : [ c1 , stc - 1 ] } ,
{ "row" : [ r1 , r2 ] , "column" : [ edc + 1 , c2 ] } ,
{ "row" : [ r1 - rlen , r2 - rlen ] , "column" : [ stc , edc ] }
] ;
newRange = newRange . concat ( range ) ;
}
else if ( stc > c1 ) {
let range = [
{ "row" : [ r1 , r2 ] , "column" : [ c1 , stc - 1 ] } ,
{ "row" : [ r1 - rlen , r2 - rlen ] , "column" : [ stc , c2 ] } ,
] ;
newRange = newRange . concat ( range ) ;
}
else if ( edc < c2 ) {
let range = [
{ "row" : [ r1 - rlen , r2 - rlen ] , "column" : [ c1 , edc ] } ,
{ "row" : [ r1 , r2 ] , "column" : [ edc + 1 , c2 ] } ,
] ;
newRange = newRange . concat ( range ) ;
}
}
}
}
return newRange ;
}
export {
luckysheetextendtable ,
luckysheetextendData ,