@@ -5,6 +5,8 @@ import template from './basic.html';
55import PgTreeButtonIcon from '../../../treeButtonIcon/treeButtonIcon' ;
66
77const IconAccount = 'M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z' ;
8+ const IconFile = 'M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z' ;
9+ const IconFolder = 'M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z' ;
810const IconEye = 'M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z' ;
911const IconEyeOff = 'M2,5.27L3.28,4L20,20.72L18.73,22L15.65,18.92C14.5,19.3 13.28,19.5 12,19.5C7,19.5 2.73,16.39 1,12C1.69,10.24 2.79,8.69 4.19,7.46L2,5.27M12,9A3,3 0 0,1 15,12C15,12.35 14.94,12.69 14.83,13L11,9.17C11.31,9.06 11.65,9 12,9M12,4.5C17,4.5 21.27,7.61 23,12C22.18,14.08 20.79,15.88 19,17.19L17.58,15.76C18.94,14.82 20.06,13.54 20.82,12C19.17,8.64 15.76,6.5 12,6.5C10.91,6.5 9.84,6.68 8.84,7L7.3,5.47C8.74,4.85 10.33,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C12.69,17.5 13.37,17.43 14,17.29L11.72,15C10.29,14.85 9.15,13.71 9,12.28L5.6,8.87C4.61,9.72 3.78,10.78 3.18,12Z' ;
1012const IconLock = 'M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z' ;
@@ -29,14 +31,18 @@ function createItem(label, expanded = false) {
2931 enabled : false
3032 } ] ,
3133 items : [ {
32- label : 'Sub Item 1'
34+ label : 'Sub Item 1' ,
35+ icon : { path : IconFile } ,
3336 } , {
3437 label : 'Sub Item 2' ,
38+ icon : { path : IconFolder } ,
3539 items : [ {
3640 label : 'Sub Item ?' ,
41+ icon : { path : IconFile } ,
3742 } ]
3843 } , {
39- label : 'Sub Item 3'
44+ label : 'Sub Item 3' ,
45+ icon : { path : IconFile } ,
4046 } ]
4147 } ;
4248}
@@ -51,6 +57,8 @@ export default class XPgTreeBasic extends HTMLElement {
5157 @Part ( ) $removeItem : HTMLButtonElement ;
5258 @Part ( ) $updateItem : HTMLButtonElement ;
5359
60+ #selectedItems = [ ] ;
61+
5462 connectedCallback ( ) {
5563 this . $tree . addEventListener ( 'action' , ( e : any ) => {
5664 // action clicked
@@ -77,20 +85,13 @@ export default class XPgTreeBasic extends HTMLElement {
7785 const item = this . #getItem( indexes ) ;
7886 item . label = label ;
7987 } ) ;
80- let previousIndexes = null ;
81- this . $tree . addEventListener ( 'select' , ( e : any ) => {
82- const { indexes } = e . detail ;
83- const item = this . #getItem( indexes ) ;
84- item . selected = true ;
85- if ( previousIndexes ) {
86- const previousItem = this . #getItem( previousIndexes ) ;
87- previousItem . selected = false ;
88- }
89- previousIndexes = indexes ;
90- } ) ;
9188 this . $tree . addEventListener ( 'menu' , ( e : any ) => {
9289 // action clicked
9390 } ) ;
91+ this . $tree . addEventListener ( 'select' , ( e : any ) => {
92+ console . log ( e . detail . items . size ) ;
93+ this . #selectedItems = Array . from ( e . detail . items ) ;
94+ } ) ;
9495 this . $tree . items = [
9596 createItem ( 'Item 1' , true ) ,
9697 createItem ( 'Item 2' )
@@ -108,7 +109,10 @@ export default class XPgTreeBasic extends HTMLElement {
108109
109110 let updatedTimes = 0 ;
110111 this . $updateItem . addEventListener ( 'click' , ( ) => {
111- this . $tree . items [ 1 ] . label = `Updated ${ updatedTimes ++ } ` ;
112+ this . #selectedItems. forEach ( ( selected ) => {
113+ const item = this . #getItem( selected ) ;
114+ item . label = `Updated ${ updatedTimes ++ } ` ;
115+ } ) ;
112116 } ) ;
113117 }
114118
0 commit comments