@@ -239,13 +239,13 @@ class ComponentCascadeDot {
239
239
div . className = 'dlp dlp-text dlp-label' ;
240
240
div . textContent = v . val ;
241
241
div . setAttribute ( 'data-id' , v . key ) ;
242
- div . setAttribute ( 'checked' , 'false' ) ;
243
242
div . setAttribute ( 'data-parent-nodes-id' , JSON . stringify ( v . parentNodes ) ) ;
244
243
let allow_select = false ;
245
244
if ( v . hasOwnProperty ( 'nodes' ) ) {
246
245
let nodes = v . nodes . map ( ( n ) => n . key ) ;
247
246
div . setAttribute ( 'data-nodes-id' , JSON . stringify ( nodes ) ) ;
248
247
} else {
248
+ div . setAttribute ( 'checked' , 'false' ) ;
249
249
allow_select = true ;
250
250
}
251
251
div . addEventListener ( 'click' , this . select . bind ( this , div , stack ) ) ;
@@ -312,32 +312,30 @@ class ComponentCascadeDot {
312
312
end_node = true ;
313
313
}
314
314
let parent_nodes = JSON . parse ( element . getAttribute ( 'data-parent-nodes-id' ) ) ;
315
- if ( checked == 'false' ) {
315
+ if ( checked == 'false' || checked == null ) {
316
+ this . selectActive ( stack , element , end_node , checked ) ;
316
317
/*nodes*/
317
318
this . selectToChildren ( stack + 1 , nodes , end_node ) ;
318
- /*current stack*/
319
- this . selectActive ( stack , element , end_node ) ;
320
319
/*parent nodes*/
321
320
if ( Array . isArray ( parent_nodes ) ) {
322
321
for ( let stack in parent_nodes ) {
323
- this . selectToParent ( checked , parent_nodes [ stack ] , parseInt ( stack ) , parent_nodes [ stack - 1 ] , parent_nodes [ stack + 1 ] ) ;
322
+ this . selectToParent ( checked , parent_nodes [ stack ] , parseInt ( stack ) , parent_nodes [ stack - 1 ] ) ;
324
323
}
325
324
}
326
325
return ;
327
326
}
328
327
/*current stack*/
329
- this . selectInactive ( stack , element , end_node ) ;
328
+ this . selectInactive ( stack , element , end_node , checked ) ;
330
329
/*parent nodes*/
331
330
if ( Array . isArray ( parent_nodes ) ) {
332
331
for ( let stack in parent_nodes ) {
333
- this . selectToParent ( checked , parent_nodes [ stack ] , parseInt ( stack ) , parent_nodes [ stack - 1 ] , parent_nodes [ stack + 1 ] ) ;
332
+ this . selectToParent ( checked , parent_nodes [ stack ] , parseInt ( stack ) , parent_nodes [ stack - 1 ] ) ;
334
333
}
335
334
}
336
335
}
337
336
338
- selectActive ( stack , element , end_node ) {
339
- if ( element . getAttribute ( 'checked' ) == 'true' ) return ;
340
- element . setAttribute ( 'checked' , 'true' ) ;
337
+ selectActive ( stack , element , end_node , checked ) {
338
+ checked != null && element . setAttribute ( 'checked' , 'true' ) ;
341
339
let currentStackDocuments = this . STACKS [ stack ] . childNodes ;
342
340
let parentNode = JSON . parse ( element . getAttribute ( 'data-parent-nodes-id' ) ) . pop ( ) ;
343
341
currentStackDocuments . forEach ( ( D , index ) => {
@@ -355,9 +353,8 @@ class ComponentCascadeDot {
355
353
}
356
354
}
357
355
358
- selectInactive ( stack , element , end_node ) {
359
- if ( element . getAttribute ( 'checked' ) == 'false' ) return ;
360
- element . setAttribute ( 'checked' , 'false' ) ;
356
+ selectInactive ( stack , element , end_node , checked ) {
357
+ checked != null && element . setAttribute ( 'checked' , 'false' ) ;
361
358
let id = element . getAttribute ( 'data-id' ) ;
362
359
this . tagCal ( parseInt ( id ) , this . MODE . delete ) ;
363
360
element . querySelector ( 'i' ) != null && element . removeChild ( element . querySelector ( 'i' ) ) ;
@@ -389,12 +386,12 @@ class ComponentCascadeDot {
389
386
div . textContent = element . textContent ;
390
387
var object = this ;
391
388
div . addEventListener ( 'click' , function ( ) {
392
- object . selectInactive ( stack , element ) ;
389
+ object . selectInactive ( stack , element , 'true' , 'true' ) ;
393
390
} ) ;
394
391
this . SELECTED_DOM . append ( div ) ;
395
392
}
396
393
397
- selectToParent ( checked , node , stack , parent_node , child_nodes ) {
394
+ selectToParent ( checked , node , stack , parent_node ) {
398
395
let currentStackDocuments = this . STACKS [ stack ] . childNodes ;
399
396
currentStackDocuments . forEach ( ( D , index ) => {
400
397
if ( checked == 'true' ) {
0 commit comments