diff --git a/src/managers/selectorManager.ts b/src/managers/selectorManager.ts index 7e5e950..63c019e 100644 --- a/src/managers/selectorManager.ts +++ b/src/managers/selectorManager.ts @@ -60,52 +60,56 @@ abstract class Selector implements ISelector{ this.manager=manager; this.createView(); } - protected view:Selection; protected abstract createView(); - public dispose(){ - this.view?.remove(); - } + public abstract dispose(); protected readonly manager:ISelectorManager; public abstract update(categories: powerbi.DataViewCategoryColumn, defaultSelect: powerbi.DataViewValueColumn, defaultStart: powerbi.DataViewValueColumn, defaultEnd: powerbi.DataViewValueColumn); } class DropDownSelector extends Selector{ + private dropDown:Selection; protected createView() { console.debug('dropDownViewManager','createView start'); - this.view=this.manager.selectorContainer.append("select").classed("dropDown-selector",true).classed("selector",true); + this.dropDown=this.manager.selectorContainer.append("select").classed("dropDown-selector",true).classed("selector",true).attr("multiple",true); console.debug('dropDownViewManager','createView end'); } + public dispose(){ + this.dropDown.remove(); + } public update(categories: powerbi.DataViewCategoryColumn, defaultSelect: powerbi.DataViewValueColumn, defaultStart: powerbi.DataViewValueColumn, defaultEnd: powerbi.DataViewValueColumn) { console.debug('dropDownViewManager','update start'); - let appending=this.view.selectAll("option").data(categories.values); - appending.enter().append("option").text(function(d){return d.toString();}); - appending.exit().remove(); - console.debug("appending:",appending); + let options=this.dropDown.selectAll("option").data(categories.values,function(d){return d.toString();});//map data + options.enter().append("option").text(function(d){return d.toString();});//add + options.exit().remove();//delete + console.debug("dropDown:",this.dropDown); let filterManager:IFilterManager=this.manager.filterManager; - (>this.view).on("input change",function(){ + this.dropDown.on("input change",function(){ console.debug('DropDownSelector:',"input change"); console.debug('this',this); console.debug('filterManager:',filterManager); - let selection:string[]=[]; + let selectedValues:string[]=[]; for(let i=0;i - Webpack Bundle Analyzer [27 Apr 2020 at 23:07] + Webpack Bundle Analyzer [28 Apr 2020 at 21:26]