Filtro de texto personalizado para DC.js dataTable

Estoy construyendo un tablero para mostrar algunos datos. Tengo varios gráficos y una tabla que enumera todos los datos. Estoy tratando de agregar funcionalidad de búsqueda para filtrar el gráfico. Tengo un montón de empresas y algunos datos sobre cada una. Entonces, si busco "Appl", solo las compañías que comienzan con "Appl" aparecerán en la tabla de datos y los gráficos reflejarán esto.

El único problema que tengo con la implementación actual es cuando cambio este filtro o lo borro. Los datos parecen estar bien, pero los gráficos se muestran incorrectamente. No vuelven a sus posiciones originales cuando se borran, o agregan datos adicionales de alguna manera. Cualquier consejo sería apreciado.

 $("#table-search").on('input',function(){
   text_filter(companyDimension,this.value);//companyDimension is the dimension for the data table

function text_filter(dim,q){
 dashTable.filterAll();
 var re = new RegExp(q,"i")
 if (q!='')
 {
    dim.filter(function(d){
        if (d.search(re)==0)
            return d;
    });
}
dc.redrawAll();
graphCustomizations();  }});

código dc.js

var ndx = crossfilter(resource_data);
//Dimensions 
companyDimension = ndx.dimension(function(d){
    return d["Company Name"]
});
dashTable.width(800).height(800)
    .dimension(companyDimension)
    .group(function(d){
        return "List of all Selected Companies";
    })
    .size(1774)
    .columns([
            function(d){return d["Company Name"]; },
            function(d){return d["Revenue Source"];},
            function(d){return d["Commodity"];},
            function(d){return "$"+parseFloat(d["Revenue"]).formatMoney(0,'.',',');}
        ])
    .sortBy(function(d){return d["Company Name"]})
    .order(d3.ascending);

Eso es todo, los gráficos solo se filtran con diferentes dimensiones en el mismo objeto de filtro cruzado.

He intentado hacer varias cosas en la función text_filter, como,dim.filterAll(), dim.filter(null), dc.renderAll(). Cuando inspecciono los datos en la dimensión, son correctos antes y después de cada filtro, los otros gráficos simplemente no parecen manejarlos correctamente.

Intenté agregar un filtro básico a la tabla de datos de CC directamente, pero no puedo hacer que funcione con una función de filtro personalizada. Entonces puedo hacer algo comodashTable.filter(q) y funcionará, pero tengo que darle el nombre completo de la compañía para que muestre cualquier cosa, pero los gráficos se representan correctamente cuando lo aplico y lo elimino. He intentado usardashTable.filterHandler() pero siempre devuelve un error, pero si sabes cómo hacer que eso funcione, sería curioso, porque no pude hacerlo funcionar incluso con el ejemplo en la documentación de dc.js.

Cualquier ayuda sería muy apreciada.

EDITAR:

Aquí hay un violín del código mayormente completo, mezclé un poco de código para que funcione.http://jsfiddle.net/rbristow/HW52d/1/

Para reproducir el error, ingrese una letra en el cuadro de búsqueda, luego bórrelo e ingrese otra letra, puede ver que el total no se restablece correctamente.

Respuestas a la pregunta(1)

Su respuesta a la pregunta