function synchronizeZoom(options, configuration, watcher) {
      if (angular.isObject(options.chart) && angular.isObject(options.chart.zoom) && options.chart.zoom.enabled === true) {

        // setup onzoomend listener
        configuration.zoom.onzoomend = function (domain) {

          // update state
          AngularChartWatcher.updateState(watcher, function () {
            createZoomRangePath(options);
            options.state.range = domain;
          });

          // call user defined callback
          if (angular.isFunction(options.chart.zoom.onzoomend)) {
            AngularChartWatcher.applyFunction(watcher, function () {
              options.chart.zoom.onzoomend(domain);
            });
          }
        };
      }

      if (angular.isObject(options.chart) && angular.isObject(options.chart.subchart) && options.chart.subchart.show === true) {
        // setup onbrush listener
        configuration.subchart.onbrush = function (domain) {

          // update state
          AngularChartWatcher.updateState(watcher, function () {
            createZoomRangePath(options);
            options.state.range = domain;
          });

          // call user defined callback
          if (angular.isFunction(options.chart.subchart.onbrush)) {
            AngularChartWatcher.applyFunction(watcher, function () {
              options.chart.subchart.onbrush(domain);
            });
          }
        };
      }
    }
function synchronizeZoom(options, configuration, watcher) {
      if (angular.isObject(options.chart) && angular.isObject(options.chart.zoom) && options.chart.zoom.enabled === true) {

        // setup onzoomend listener
        configuration.zoom.onzoomend = function (domain) {

          // update state
          AngularChartWatcher.updateState(watcher, function () {
            createZoomRangePath(options);
            options.state.range = domain;
          });

          // call user defined callback
          if (angular.isFunction(options.chart.zoom.onzoomend)) {
            AngularChartWatcher.applyFunction(watcher, function () {
              options.chart.zoom.onzoomend(domain);
            });
          }
        };
      }

      if (angular.isObject(options.chart) && angular.isObject(options.chart.subchart) && options.chart.subchart.show === true) {
        // setup onbrush listener
        configuration.subchart.onbrush = function (domain) {

          // update state
          AngularChartWatcher.updateState(watcher, function () {
            createZoomRangePath(options);
            options.state.range = domain;
          });

          // call user defined callback
          if (angular.isFunction(options.chart.subchart.onbrush)) {
            AngularChartWatcher.applyFunction(watcher, function () {
              options.chart.subchart.onbrush(domain);
            });
          }
        };
      }
    }
function synchronizeZoom ( options , configuration , watcher ) { if ( angular . isObject ( options . chart ) && angular . isObject ( options . chart . zoom ) && options . chart . zoom . enabled === true ) { // setup onzoomend listener configuration . zoom . onzoomend = function ( domain ) { // update state AngularChartWatcher . updateState ( watcher , function ( ) { createZoomRangePath ( options ) ; options . state . range = domain ; } ) ; // call user defined callback if ( angular . isFunction ( options . chart . zoom . onzoomend ) ) { AngularChartWatcher . applyFunction ( watcher , function ( ) { options . chart . zoom . onzoomend ( domain ) ; } ) ; } } ; } if ( angular . isObject ( options . chart ) && angular . isObject ( options . chart . subchart ) && options . chart . subchart . show === true ) { // setup onbrush listener configuration . subchart . onbrush = function ( domain ) { // update state AngularChartWatcher . updateState ( watcher , function ( ) { createZoomRangePath ( options ) ; options . state . range = domain ; } ) ; // call user defined callback if ( angular . isFunction ( options . chart . subchart . onbrush ) ) { AngularChartWatcher . applyFunction ( watcher , function ( ) { options . chart . subchart . onbrush ( domain ) ; } ) ; } } ; } }
Setup zoom event listeners which update the state
Setup zoom event listeners which update the state