@@ -293,34 +293,22 @@ const Selection = Module({
293293 endContainer,
294294 endOffset
295295 } = this . getCurrentRange ( ) ;
296+
296297 let startCoordinates = [ ] ;
297298 let endCoordinates = [ ] ;
298-
299- const startTrimmablePrefix = startContainer . textContent . match ( / ^ ( \r ? \n | \r ) ? ( \s + ) ? / ) ;
300- const endTrimmablePrefix = endContainer . textContent . match ( / ^ ( \r ? \n | \r ) ? ( \s + ) ? / ) ;
301- const endTrimmableSuffix = endContainer . textContent . match ( / ( \r ? \n | \r ) ? ( \s + ) ? $ / ) ;
302- const startElement = DOM . closestElement ( startContainer ) ;
303- const endElement = DOM . closestElement ( endContainer ) ;
304299 let startPrefixTrimLength = 0 ;
305300 let endPrefixTrimLength = 0 ;
306301 let endSuffixTrimLength = 0 ;
307302
308- console . log ( {
309- startTrimmablePrefix,
310- endTrimmablePrefix,
311- endTrimmableSuffix,
312- startPrefixLength : startTrimmablePrefix && startTrimmablePrefix [ 0 ] . length ,
313- endPrefixLength : endTrimmablePrefix && endTrimmablePrefix [ 0 ] . length ,
314- startContent : startContainer . textContent ,
315- endContent : endContainer . textContent ,
316- endSuffix : endContainer . textContent . match ( / ( \r ? \n | \r ) ? ( \s + ) ? $ / ) ,
317- startOffset,
318- endOffset
319- } ) ;
303+ const startTrimmablePrefix = startContainer . textContent . match ( / ^ ( \r ? \n | \r ) ? ( \s + ) ? / ) ;
304+ const endTrimmablePrefix = endContainer . textContent . match ( / ^ ( \r ? \n | \r ) ? ( \s + ) ? / ) ;
305+ const endTrimmableSuffix = endContainer . textContent . match ( / ( \r ? \n | \r ) ? ( \s + ) ? $ / ) ;
306+ const startTrimmableSides = DOM . trimmableSides ( startContainer . firstChild ? startContainer . firstChild : startContainer ) ;
307+ const endTrimmableSides = DOM . trimmableSides ( endContainer . lastChild ? endContainer . lastChild : endContainer ) ;
320308
321309 if ( startTrimmablePrefix && startTrimmablePrefix [ 0 ] . length ) {
322310 startPrefixTrimLength += startTrimmablePrefix [ 0 ] . length ;
323- if ( DOM . nodeIsInline ( startElement ) ) {
311+ if ( ! startTrimmableSides . left ) {
324312 startPrefixTrimLength -= startTrimmablePrefix [ 0 ] . match ( / \s / ) ? 1 : 0 ;
325313 }
326314 startOffset -= startPrefixTrimLength ;
@@ -331,27 +319,21 @@ const Selection = Module({
331319
332320 if ( endTrimmablePrefix && endTrimmablePrefix [ 0 ] . length && endContainer !== startContainer ) {
333321 endPrefixTrimLength += endTrimmablePrefix [ 0 ] . length ;
334- if ( DOM . nodeIsInline ( endElement ) ) {
322+ if ( ! endTrimmableSides . left ) {
335323 endPrefixTrimLength -= endTrimmablePrefix [ 0 ] . match ( / \s / ) ? 1 : 0 ;
336324 }
337325 endOffset -= endPrefixTrimLength ;
338326 }
339327
340328 if ( endTrimmableSuffix && endTrimmableSuffix [ 0 ] . length ) {
341329 endSuffixTrimLength += endTrimmableSuffix [ 0 ] . length ;
342- if ( DOM . nodeIsInline ( endElement ) ) {
330+ if ( ! endTrimmableSides . right ) {
343331 endSuffixTrimLength -= endTrimmableSuffix [ 0 ] . match ( / \s / ) ? 1 : 0 ;
344332 }
345333 let trimmedTextLength = endContainer . textContent . length - endPrefixTrimLength - endSuffixTrimLength ;
346- console . log ( '>>' , { endOffset, trimmedTextLength, textLength : endContainer . textContent . length , endPrefixTrimLength, endSuffixTrimLength } ) ;
347334 endOffset = Math . min ( trimmedTextLength , endOffset ) ;
348335 }
349336
350- console . log ( {
351- startOffset,
352- endOffset
353- } ) ;
354-
355337 startOffset = Math . max ( 0 , startOffset ) ;
356338 endOffset = Math . min ( endContainer . textContent . length , endOffset ) ;
357339
@@ -687,8 +669,6 @@ const Selection = Module({
687669 const startOffset = startCoordinates . pop ( ) ;
688670 const endOffset = endCoordinates . pop ( ) ;
689671
690- console . log ( 'selectByCoordinates' , { rangeCoordinates } ) ;
691-
692672 let startContainer = dom . el [ 0 ] ;
693673 let endContainer = dom . el [ 0 ] ;
694674
@@ -702,8 +682,6 @@ const Selection = Module({
702682 endContainer = endContainer . childNodes [ endIndex ] ;
703683 }
704684
705- console . log ( { startContainer, endContainer, startLength : startContainer . length , endLength : endContainer . length , startOffset, endOffset } ) ;
706-
707685 newRange . setStart ( startContainer , startOffset ) ;
708686 newRange . setEnd ( endContainer , endOffset ) ;
709687
0 commit comments