docs: function createEl() {
    var tagName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'div';
    var properties = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    var attributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
  
    var el = _document2['default'].createElement(tagName);
  
    Object.getOwnPropertyNames(properties).forEach(function (propName) {
      var val = properties[propName];
  
      // See #2176
      // We originally were accepting both properties and attributes in the
      // same object, but that doesn't work so well.
      if (propName.indexOf('aria-') !== -1 || propName === 'role' || propName === 'type') {
        _log2['default'].warn((0, _tsml2['default'])(_templateObject, propName, val));
        el.setAttribute(propName, val);
      } else {
        el[propName] = val;
      }
    });
  
    Object.getOwnPropertyNames(attributes).forEach(function (attrName) {
      el.setAttribute(attrName, attributes[attrName]);
    });
  
    return el;
  }