11class Demo {
22 constructor ( ) {
3- this . handleDataSourceChange = this . handleDataSourceChange . bind ( this )
3+ // Remove handleDataSourceChange since DatasetSelector handles this
44 this . handleCellClick = this . handleCellClick . bind ( this )
55 this . handleDataChanged = this . handleDataChanged . bind ( this )
66
@@ -9,41 +9,28 @@ class Demo {
99
1010 // MARK: setup
1111 setupEventListeners ( ) {
12- this . setupControlEvents ( )
13- this . setupViewerEvents ( )
14- }
15-
16- setupControlEvents ( ) {
17- document . getElementById ( "src" ) . addEventListener ( "change" , this . handleDataSourceChange )
12+ // Don't need to set up source change event anymore
1813 document . getElementById ( "n" ) . addEventListener ( "change" , event => {
1914 this . updateTable ( event . target . value )
2015 } )
16+
17+ // Set up event listeners for the DataViewer events
18+ this . setupViewerEvents ( )
2119 }
2220
2321 setupViewerEvents ( ) {
24- if ( ! this . dataViewer ) return
22+ if ( ! this . datasetSelector ) return
2523
26- this . dataViewer . addEventListener ( "cell-click" , this . handleCellClick )
27- this . dataViewer . addEventListener ( "data-changed" , this . handleDataChanged )
24+ this . datasetSelector . addEventListener ( "cell-click" , this . handleCellClick )
25+ this . datasetSelector . addEventListener ( "data-changed" , this . handleDataChanged )
2826 }
2927
3028 // MARK: get/set
31- get wrapper ( ) { return document . getElementById ( "data-viewer -wrapper" ) }
32- get dataViewer ( ) { return this . wrapper . querySelector ( "data-viewer " ) }
29+ get wrapper ( ) { return document . getElementById ( "flatbread-table -wrapper" ) }
30+ get datasetSelector ( ) { return this . wrapper . querySelector ( "dataset-selector " ) }
3331 get eventDisplay ( ) { return document . getElementById ( "event-display" ) }
3432
3533 // MARK: handlers
36- handleDataSourceChange ( ) {
37- this . dataViewer ?. remove ( )
38-
39- const viewer = document . createElement ( "data-viewer" )
40- viewer . setAttribute ( "src" , event . target . value )
41- viewer . setAttribute ( "margin-labels" , "Total;Totaal;Subtotal" )
42-
43- this . wrapper . appendChild ( viewer )
44- this . addDataViewerEventListeners ( )
45- }
46-
4734 handleCellClick ( event ) {
4835 this . eventDisplay . querySelector ( "code" ) . innerText = JSON . stringify ( event . detail )
4936 }
@@ -55,11 +42,6 @@ class Demo {
5542 }
5643
5744 // MARK: helpers
58- addDataViewerEventListeners ( ) {
59- this . dataViewer . addEventListener ( "cell-click" , this . handleCellClick )
60- this . dataViewer . addEventListener ( "data-changed" , this . handleDataChanged )
61- }
62-
6345 truncateJSONString ( JSONString , maxLength = 1500 ) {
6446 if ( JSONString . length <= maxLength ) return JSONString
6547 return JSONString . slice ( 0 , maxLength ) + "[...]"
@@ -79,18 +61,12 @@ class Demo {
7961
8062 updateTable ( n ) {
8163 const op = this . getCalculation ( n )
82- const newValues = this . dataViewer . data . values . map ( row => row . map ( op ) )
83- this . dataViewer . data . values = newValues
84- }
64+ const viewer = this . datasetSelector . getViewer ( )
8565
86- resetAttributes ( element , attributesToKeep ) {
87- const attributes = [ ...element . attributes ]
88- attributes . forEach ( attr => {
89- if ( ! attributesToKeep . includes ( attr . name ) ) {
90- element . removeAttribute ( attr . name )
91- }
92- } )
93- return element
66+ if ( viewer && viewer . data && viewer . data . values ) {
67+ const newValues = viewer . data . values . map ( row => row . map ( op ) )
68+ viewer . data . values = newValues
69+ }
9470 }
9571}
9672
0 commit comments