@@ -22,7 +22,7 @@ type="rotate"from="0 20 20"to="360 20 20"dur="0.5s"repeatCount="indefinite"/></p
22
22
'check' : `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-check-circle-fill" viewBox="0 0 16 16">
23
23
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z"/>
24
24
</svg>` ,
25
- 'check_circle' :`<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-check-circle" viewBox="0 0 16 16">
25
+ 'check_circle' : `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-check-circle" viewBox="0 0 16 16">
26
26
<path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/>
27
27
<path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/>
28
28
</svg>`
@@ -260,9 +260,18 @@ class ComponentCascadeDot {
260
260
if ( ( index !== - 1 ) && allowSelect == false ) {
261
261
this . selected_data . splice ( index , 1 ) ;
262
262
this . select_data = this . selected_data . slice ( 0 ) ;
263
- } else if ( ( index !== - 1 ) && allowSelect == true ) {
264
- this . selectToSelected ( div , stack ) ;
265
- div . insertAdjacentHTML ( 'beforeend' , `<i>${ _componentSvg . check } </i>` ) ;
263
+ } else if ( ( index !== - 1 ) && allowSelect == true ) {
264
+ this . selectToSelected ( div , stack ) ;
265
+ div . insertAdjacentHTML ( 'beforeend' , `<i>${ _componentSvg . check } </i>` ) ;
266
+ /*parent nodes*/
267
+ setTimeout ( ( ) => {
268
+ let parent_nodes = v . parentNodes ;
269
+ if ( Array . isArray ( parent_nodes ) ) {
270
+ parent_nodes . forEach ( ( node , stack ) => {
271
+ this . selectToParent ( 'false' , node , stack , parent_nodes [ stack - 1 ] , parent_nodes [ stack + 1 ] ) ;
272
+ } ) ;
273
+ }
274
+ } ) ;
266
275
}
267
276
} ) ;
268
277
this . CONTENT_DOM . append ( stackDom ) ;
@@ -303,24 +312,24 @@ class ComponentCascadeDot {
303
312
this . selectToChildren ( stack + 1 , nodes ) ;
304
313
/*current stack*/
305
314
let checked = element . getAttribute ( 'checked' ) ;
306
- if ( checked == 'false' ) {
315
+ if ( checked == 'false' ) {
307
316
this . selectActive ( stack , element ) ;
308
- } else {
317
+ } else {
309
318
this . selectInactive ( stack , element ) ;
310
319
}
311
320
/*parent nodes*/
312
321
let parent_nodes = JSON . parse ( element . getAttribute ( 'data-parent-nodes-id' ) ) ;
313
322
if ( Array . isArray ( parent_nodes ) ) {
314
323
for ( let stack in parent_nodes ) {
315
- this . selectToParent ( checked , parent_nodes [ stack ] , parseInt ( stack ) , parent_nodes [ stack - 1 ] , parent_nodes [ stack + 1 ] ) ;
324
+ this . selectToParent ( checked , parent_nodes [ stack ] , parseInt ( stack ) , parent_nodes [ stack - 1 ] , parent_nodes [ stack + 1 ] ) ;
316
325
}
317
326
}
318
327
}
319
328
320
329
selectActive ( stack , element ) {
321
- if ( element . getAttribute ( 'allow-select' ) == 'false' ) return ;
322
- if ( element . getAttribute ( 'checked' ) == 'true' ) return ;
323
- this . selectToSelected ( element , stack ) ;
330
+ if ( element . getAttribute ( 'allow-select' ) == 'false' ) return ;
331
+ if ( element . getAttribute ( 'checked' ) == 'true' ) return ;
332
+ this . selectToSelected ( element , stack ) ;
324
333
this . tagCal ( parseInt ( element . getAttribute ( 'data-id' ) ) , this . MODE . insert ) ;
325
334
let currentStackDocuments = this . STACKS [ stack ] . childNodes ;
326
335
let parentNode = JSON . parse ( element . getAttribute ( 'data-parent-nodes-id' ) ) . pop ( ) ;
@@ -332,27 +341,27 @@ class ComponentCascadeDot {
332
341
}
333
342
} ) ;
334
343
element . querySelector ( 'i' ) && element . removeChild ( element . querySelector ( 'i' ) ) ;
335
- element . insertAdjacentHTML ( 'beforeend' , `<i>${ _componentSvg . check } </i>` ) ;
344
+ element . insertAdjacentHTML ( 'beforeend' , `<i>${ _componentSvg . check } </i>` ) ;
336
345
}
337
346
338
- selectInactive ( stack , element ) {
339
- if ( element . getAttribute ( 'allow-select' ) == 'false' ) return ;
340
- if ( element . getAttribute ( 'checked' ) == 'false' ) return ;
347
+ selectInactive ( stack , element ) {
348
+ if ( element . getAttribute ( 'allow-select' ) == 'false' ) return ;
349
+ if ( element . getAttribute ( 'checked' ) == 'false' ) return ;
341
350
element . setAttribute ( 'checked' , 'false' ) ;
342
351
let id = element . getAttribute ( 'data-id' ) ;
343
352
this . tagCal ( parseInt ( id ) , this . MODE . delete ) ;
344
353
element . removeChild ( element . querySelector ( 'i' ) ) ;
345
- for ( let index in this . SELECTED_DOM . childNodes ) {
354
+ for ( let index in this . SELECTED_DOM . childNodes ) {
346
355
let D = this . SELECTED_DOM . childNodes [ index ] ;
347
- if ( ( D instanceof HTMLElement ) && ( D . getAttribute ( 'data-id' ) == id ) ) {
356
+ if ( ( D instanceof HTMLElement ) && ( D . getAttribute ( 'data-id' ) == id ) ) {
348
357
this . tagCal ( parseInt ( id ) , this . MODE . delete ) ;
349
358
D . remove ( ) ;
350
359
break ;
351
360
}
352
361
}
353
362
}
354
363
355
- selectToSelected ( element , stack ) {
364
+ selectToSelected ( element , stack ) {
356
365
element . setAttribute ( 'checked' , 'true' ) ;
357
366
let div = document . createElement ( 'div' ) ;
358
367
div . className = 'dlp dlp-text dlp-label' ;
@@ -367,15 +376,14 @@ class ComponentCascadeDot {
367
376
this . SELECTED_DOM . append ( div ) ;
368
377
}
369
378
370
- selectToParent ( checked , node , stack , parent_node , child_nodes ) {
379
+ selectToParent ( checked , node , stack , parent_node , child_nodes ) {
371
380
let currentStackDocuments = this . STACKS [ stack ] . childNodes ;
372
381
currentStackDocuments . forEach ( ( D , index ) => {
373
- if ( checked == 'true' ) {
382
+ if ( checked == 'true' ) {
374
383
if ( node == parseInt ( D . getAttribute ( 'data-id' ) ) ) {
375
384
let check = false ;
376
- console . log ( stack )
377
- this . STACKS [ stack + 1 ] . childNodes . forEach ( ( D ) => {
378
- if ( D . getAttribute ( 'checked' ) == 'true' ) {
385
+ this . STACKS [ stack + 1 ] . childNodes . forEach ( ( D ) => {
386
+ if ( D . querySelector ( 'i' ) ) {
379
387
check = true ;
380
388
}
381
389
} ) ;
@@ -390,8 +398,8 @@ class ComponentCascadeDot {
390
398
D . classList . add ( 'dlp-label-silence' ) ;
391
399
}
392
400
if ( node == parseInt ( D . getAttribute ( 'data-id' ) ) ) {
393
- if ( D . getAttribute ( 'checked' ) == 'true' || ( D . querySelector ( 'i' ) instanceof HTMLElement ) ) return ;
394
- D . insertAdjacentHTML ( 'beforeend' , `<i>${ _componentSvg . check_circle } </i>` ) ;
401
+ if ( D . getAttribute ( 'checked' ) == 'true' || ( D . querySelector ( 'i' ) instanceof HTMLElement ) ) return ;
402
+ D . insertAdjacentHTML ( 'beforeend' , `<i>${ _componentSvg . check_circle } </i>` ) ;
395
403
}
396
404
} ) ;
397
405
}
0 commit comments