whole_func_string: function getMailtoUrl(to, fields){
      this.form.action.match(/mailto:([^\?&]+)/);
  
      to = to || RegExp.$1 || '';
      fields = fields || {
        subject: this.form.getAttribute('data-subject') || '',
        body: this.getBody()
      };
  
      if (!to && !fields.to){
        throw new Error('Could not find any person to send an email to.');
      }
  
      return 'mailto:'+to+'?'+Object.keys(fields).reduce(function(a, b, i){
        return a +
          (i > 0 ? '&' : '') +
          encodeURIComponent(b) + '=' +
          encodeURIComponent(fields[b]).replace(/%0A(?!%)/g, '%0D%0A') +    // fixing *nix line break encoding to follow RFC spec
          (b === 'body' ? '%0D%0A' : '')
      }, '');
    }
func_code_string: function getMailtoUrl(to, fields){
      this.form.action.match(/mailto:([^\?&]+)/);
  
      to = to || RegExp.$1 || '';
      fields = fields || {
        subject: this.form.getAttribute('data-subject') || '',
        body: this.getBody()
      };
  
      if (!to && !fields.to){
        throw new Error('Could not find any person to send an email to.');
      }
  
      return 'mailto:'+to+'?'+Object.keys(fields).reduce(function(a, b, i){
        return a +
          (i > 0 ? '&' : '') +
          encodeURIComponent(b) + '=' +
          encodeURIComponent(fields[b]).replace(/%0A(?!%)/g, '%0D%0A') +    // fixing *nix line break encoding to follow RFC spec
          (b === 'body' ? '%0D%0A' : '')
      }, '');
    }
func_documentation_string: Returns an hyperlinkable representation of the form values.
  
  @api
  @return {String}