@@ -16,7 +16,7 @@ import {
1616 metaKey , htmlStringToDom , createClassname , camelToDash ,
1717 isOffBounds , getStyle , getStyles , deepElementFromPoint , getShadowValues ,
1818 isSelectorValid , findNearestChildElement , findNearestParentElement ,
19- getTextShadowValues , isFixed , onRemove
19+ getTextShadowValues , isFixed , onRemove , animateViewTransition
2020} from '../utilities/'
2121
2222export function Selectable ( visbug ) {
@@ -159,8 +159,8 @@ export function Selectable(visbug) {
159159 e . preventDefault ( )
160160 }
161161
162- const on_delete = e =>
163- selected . length && delete_all ( )
162+ const on_delete = async e =>
163+ selected . length && await delete_all ( )
164164
165165 const on_clearstyles = e =>
166166 selected . forEach ( el =>
@@ -497,29 +497,41 @@ export function Selectable(visbug) {
497497 ! silent && tellWatchers ( )
498498 }
499499
500- const delete_all = ( ) => {
500+ const delete_all = async ( ) => {
501501 const selected_after_delete = selected . map ( el => {
502502 if ( canMoveRight ( el ) ) return canMoveRight ( el )
503503 else if ( canMoveLeft ( el ) ) return canMoveLeft ( el )
504504 else if ( el . parentNode ) return el . parentNode
505505 } )
506506
507+ const elements = [
508+ ...selected ,
509+ ...labels ,
510+ ...handles ,
511+ rotationBtn ,
512+ deleteBtn
513+ ] . filter ( Boolean )
514+
515+ await animateViewTransition ( elements , ( ) => performDeletion ( ) )
516+
517+ selected_after_delete . forEach ( el =>
518+ select ( el ) )
519+ }
520+
521+ const performDeletion = ( ) => {
507522 Array . from ( [
508523 ...selected ,
509524 ...labels ,
510525 ...handles ,
511526 rotationBtn ,
512527 deleteBtn
513528 ] ) . forEach ( el => el . remove ( ) )
514-
529+
515530 labels = [ ]
516531 handles = [ ]
517532 selected = [ ]
518533 rotationBtn = null
519534 deleteBtn = null
520-
521- selected_after_delete . forEach ( el =>
522- select ( el ) )
523535 }
524536
525537 const expandSelection = ( { query, all = false } ) => {
0 commit comments