@@ -89,8 +89,6 @@ export function generateTargetSelector(annotation) {
8989 }
9090 } else if ( selector . type === 'CssSelector' ) {
9191 result = handleCssSelector ( selector ) ;
92- } else if ( selector . type === 'RangeSelector' ) {
93- result = handleRangeSelector ( selector ) ;
9492 }
9593
9694 const isValid = Utils . isSelectorValid ( result ) ;
@@ -102,48 +100,6 @@ export function handleCssSelector(selector) {
102100 return selector . value ?? null ;
103101}
104102
105- export function handleRangeSelector ( selector ) {
106- const { startSelector, endSelector } = selector ;
107- if ( startSelector && endSelector ) {
108- if ( startSelector . type === 'CssSelector' ) {
109- const start = document . querySelector ( handleCssSelector ( startSelector ) . replaceAll ( '\'' , '' ) ) ;
110- const end = document . querySelector ( handleCssSelector ( endSelector ) . replaceAll ( '\'' , '' ) ) ;
111-
112- const elementsInRange = [ ] ;
113-
114- let started = false ;
115- let ended = false ;
116-
117- // eslint-disable-next-line no-inner-declarations
118- function findElementsInRangeRecursive ( element ) {
119- if ( element === start ) started = true ;
120- if ( element === end ) {
121- ended = true ;
122- return ;
123- }
124-
125- if ( started && element . nodeValue !== ' ' && element . nodeName === '#text' ) {
126- elementsInRange . push ( element . parentElement ) ;
127- return ;
128- }
129-
130- [ ...element . childNodes ]
131- . filter ( ( childNode ) => childNode . nodeName !== 'STYLE' && childNode . nodeName !== 'SCRIPT' && childNode . nodeName !== 'svg' )
132- . forEach ( ( childNode ) => {
133- if ( ! ended ) {
134- findElementsInRangeRecursive ( childNode ) ;
135- }
136- } ) ;
137- }
138-
139- findElementsInRangeRecursive ( document . getElementById ( 'text-content' ) ) ;
140-
141- return elementsInRange . map ( ( el ) => Utils . elemToSelector ( el ) ) . join ( ',' ) ;
142- }
143- }
144- return null ;
145- }
146-
147103export function addIcon ( element , annotation , iconName ) {
148104 let foundSvg = false ;
149105
@@ -231,8 +187,8 @@ function createWitnessEl(witness, witnessColor) {
231187
232188export function removeWitnessesWrappers ( ) {
233189 // remove witnesses in text Panel - it is used when switch off the variants tab
234- const textPanelEl = document . querySelector ( '#text- content')
235- const wrappers = textPanelEl . getElementsByClassName ( ' witnesses')
190+ const textPanelEls = document . querySelectorAll ( '. content-view ')
191+ const wrappers = textPanelEls . querySelectorAll ( '. witnesses')
236192 if ( ! wrappers ) return ;
237193 if ( Array . from ( wrappers ) . length === 0 ) return ;
238194
@@ -245,8 +201,13 @@ export function removeWitnessesWrappers() {
245201export function removeWitness ( selector , idno ) {
246202 // find the witnesses span which contains each 'witness' span child element
247203 // find this witness inside the 'witnesses' html span and remove it
248- const textPanel = document . querySelector ( '#text-content' )
249- if ( ! textPanel . querySelector ( '.witnesses' ) ) return ;
204+ const textPanels = document . querySelectorAll ( '.content-view' )
205+ if ( textPanels . length === 0 ) return ;
206+
207+ let hasWitnesses = false ;
208+ textPanels . forEach ( textPanel => hasWitnesses = textPanel . querySelectorAll ( '.witnesses' ) . length > 0 )
209+
210+ if ( ! hasWitnesses ) return ;
250211
251212 const wrapper = getWitnessesWrapper ( selector )
252213 if ( ! wrapper ) return ;
0 commit comments