whole_func_string: function smRangePicker (picker){
      return{
          restrict : 'E',
          require : ['^?ngModel', 'smRangePicker'],
          scope:{
              format:'@',
              divider: '@',
              weekStartDay :'@',
              customToHome: '@',
              closeOnSelect: '@',
              mode: '@',
              showCustom:'@',
              customList: '=',
              minDate : '@',
              maxDate : '@',
              allowClear: '@',
              allowEmpty: '@',
              rangeSelectCall : '&'
          },
          terminal:true,
          controller: ['$scope', 'picker', RangePickerCtrl],
          controllerAs : 'vm',
          bindToController:true,
          templateUrl : 'picker/range-picker.html',
          link : function(scope, element, att, ctrls){
              var ngModelCtrl = ctrls[0];
              var calCtrl = ctrls[1];
              calCtrl.configureNgModel(ngModelCtrl);
          }
      };
  }
func_code_string: function smRangePicker (picker){
      return{
          restrict : 'E',
          require : ['^?ngModel', 'smRangePicker'],
          scope:{
              format:'@',
              divider: '@',
              weekStartDay :'@',
              customToHome: '@',
              closeOnSelect: '@',
              mode: '@',
              showCustom:'@',
              customList: '=',
              minDate : '@',
              maxDate : '@',
              allowClear: '@',
              allowEmpty: '@',
              rangeSelectCall : '&'
          },
          terminal:true,
          controller: ['$scope', 'picker', RangePickerCtrl],
          controllerAs : 'vm',
          bindToController:true,
          templateUrl : 'picker/range-picker.html',
          link : function(scope, element, att, ctrls){
              var ngModelCtrl = ctrls[0];
              var calCtrl = ctrls[1];
              calCtrl.configureNgModel(ngModelCtrl);
          }
      };
  }
func_documentation_string: /* global moment