fix(build): add missing return types now enforced by linter
This commit is contained in:
@ -50,7 +50,7 @@ var _chromeNumKeyPadMap = {
|
||||
|
||||
export class BrowserDomAdapter extends GenericBrowserDomAdapter {
|
||||
static makeCurrent() { setRootDomAdapter(new BrowserDomAdapter()); }
|
||||
hasProperty(element, name: string) { return name in element; }
|
||||
hasProperty(element, name: string): boolean { return name in element; }
|
||||
setProperty(el: /*element*/ any, name: string, value: any) { el[name] = value; }
|
||||
getProperty(el: /*element*/ any, name: string): any { return el[name]; }
|
||||
invoke(el: /*element*/ any, methodName: string, args: List<any>): any {
|
||||
@ -87,8 +87,8 @@ export class BrowserDomAdapter extends GenericBrowserDomAdapter {
|
||||
evt.preventDefault();
|
||||
evt.returnValue = false;
|
||||
}
|
||||
getInnerHTML(el) { return el.innerHTML; }
|
||||
getOuterHTML(el) { return el.outerHTML; }
|
||||
getInnerHTML(el): string { return el.innerHTML; }
|
||||
getOuterHTML(el): string { return el.outerHTML; }
|
||||
nodeName(node: Node): string { return node.nodeName; }
|
||||
nodeValue(node: Node): string { return node.nodeValue; }
|
||||
type(node: HTMLInputElement): string { return node.type; }
|
||||
@ -101,7 +101,7 @@ export class BrowserDomAdapter extends GenericBrowserDomAdapter {
|
||||
}
|
||||
firstChild(el): Node { return el.firstChild; }
|
||||
nextSibling(el): Node { return el.nextSibling; }
|
||||
parentElement(el) { return el.parentElement; }
|
||||
parentElement(el): Node { return el.parentElement; }
|
||||
childNodes(el): List<Node> { return el.childNodes; }
|
||||
childNodesAsList(el): List<any> {
|
||||
var childNodes = el.childNodes;
|
||||
@ -119,7 +119,7 @@ export class BrowserDomAdapter extends GenericBrowserDomAdapter {
|
||||
appendChild(el, node) { el.appendChild(node); }
|
||||
removeChild(el, node) { el.removeChild(node); }
|
||||
replaceChild(el: Node, newChild, oldChild) { el.replaceChild(newChild, oldChild); }
|
||||
remove(el) {
|
||||
remove(el): Node {
|
||||
var parent = el.parentNode;
|
||||
parent.removeChild(el);
|
||||
return el;
|
||||
@ -130,12 +130,12 @@ export class BrowserDomAdapter extends GenericBrowserDomAdapter {
|
||||
}
|
||||
insertAfter(el, node) { el.parentNode.insertBefore(node, el.nextSibling); }
|
||||
setInnerHTML(el, value) { el.innerHTML = value; }
|
||||
getText(el) { return el.textContent; }
|
||||
getText(el): string { return el.textContent; }
|
||||
// TODO(vicb): removed Element type because it does not support StyleElement
|
||||
setText(el, value: string) { el.textContent = value; }
|
||||
getValue(el) { return el.value; }
|
||||
getValue(el): string { return el.value; }
|
||||
setValue(el, value: string) { el.value = value; }
|
||||
getChecked(el) { return el.checked; }
|
||||
getChecked(el): boolean { return el.checked; }
|
||||
setChecked(el, value: boolean) { el.checked = value; }
|
||||
createTemplate(html): HTMLElement {
|
||||
var t = document.createElement('template');
|
||||
@ -157,22 +157,26 @@ export class BrowserDomAdapter extends GenericBrowserDomAdapter {
|
||||
createShadowRoot(el: HTMLElement): DocumentFragment { return (<any>el).createShadowRoot(); }
|
||||
getShadowRoot(el: HTMLElement): DocumentFragment { return (<any>el).shadowRoot; }
|
||||
getHost(el: HTMLElement): HTMLElement { return (<any>el).host; }
|
||||
clone(node: Node) { return node.cloneNode(true); }
|
||||
getElementsByClassName(element, name: string) { return element.getElementsByClassName(name); }
|
||||
getElementsByTagName(element, name: string) { return element.getElementsByTagName(name); }
|
||||
clone(node: Node): Node { return node.cloneNode(true); }
|
||||
getElementsByClassName(element, name: string): List<HTMLElement> {
|
||||
return element.getElementsByClassName(name);
|
||||
}
|
||||
getElementsByTagName(element, name: string): List<HTMLElement> {
|
||||
return element.getElementsByTagName(name);
|
||||
}
|
||||
classList(element): List<any> {
|
||||
return <List<any>>Array.prototype.slice.call(element.classList, 0);
|
||||
}
|
||||
addClass(element, classname: string) { element.classList.add(classname); }
|
||||
removeClass(element, classname: string) { element.classList.remove(classname); }
|
||||
hasClass(element, classname: string) { return element.classList.contains(classname); }
|
||||
hasClass(element, classname: string): boolean { return element.classList.contains(classname); }
|
||||
setStyle(element, stylename: string, stylevalue: string) {
|
||||
element.style[stylename] = stylevalue;
|
||||
}
|
||||
removeStyle(element, stylename: string) { element.style[stylename] = null; }
|
||||
getStyle(element, stylename: string) { return element.style[stylename]; }
|
||||
getStyle(element, stylename: string): string { return element.style[stylename]; }
|
||||
tagName(element): string { return element.tagName; }
|
||||
attributeMap(element) {
|
||||
attributeMap(element): Map<string, string> {
|
||||
var res = new Map();
|
||||
var elAttrs = element.attributes;
|
||||
for (var i = 0; i < elAttrs.length; i++) {
|
||||
@ -181,14 +185,16 @@ export class BrowserDomAdapter extends GenericBrowserDomAdapter {
|
||||
}
|
||||
return res;
|
||||
}
|
||||
hasAttribute(element, attribute: string) { return element.hasAttribute(attribute); }
|
||||
getAttribute(element, attribute: string) { return element.getAttribute(attribute); }
|
||||
hasAttribute(element, attribute: string): boolean { return element.hasAttribute(attribute); }
|
||||
getAttribute(element, attribute: string): string { return element.getAttribute(attribute); }
|
||||
setAttribute(element, name: string, value: string) { element.setAttribute(name, value); }
|
||||
removeAttribute(element, attribute: string) { return element.removeAttribute(attribute); }
|
||||
templateAwareRoot(el) { return this.isTemplateElement(el) ? this.content(el) : el; }
|
||||
createHtmlDocument() { return document.implementation.createHTMLDocument('fakeTitle'); }
|
||||
defaultDoc() { return document; }
|
||||
getBoundingClientRect(el) {
|
||||
removeAttribute(element, attribute: string) { element.removeAttribute(attribute); }
|
||||
templateAwareRoot(el): any { return this.isTemplateElement(el) ? this.content(el) : el; }
|
||||
createHtmlDocument(): HTMLDocument {
|
||||
return document.implementation.createHTMLDocument('fakeTitle');
|
||||
}
|
||||
defaultDoc(): HTMLDocument { return document; }
|
||||
getBoundingClientRect(el): any {
|
||||
try {
|
||||
return el.getBoundingClientRect();
|
||||
} catch (e) {
|
||||
@ -209,7 +215,7 @@ export class BrowserDomAdapter extends GenericBrowserDomAdapter {
|
||||
isElementNode(node: Node): boolean { return node.nodeType === Node.ELEMENT_NODE; }
|
||||
hasShadowRoot(node): boolean { return node instanceof HTMLElement && isPresent(node.shadowRoot); }
|
||||
isShadowRoot(node): boolean { return node instanceof DocumentFragment; }
|
||||
importIntoDoc(node: Node) {
|
||||
importIntoDoc(node: Node): any {
|
||||
var toImport = node;
|
||||
if (this.isTemplateElement(node)) {
|
||||
toImport = this.content(node);
|
||||
@ -256,9 +262,9 @@ export class BrowserDomAdapter extends GenericBrowserDomAdapter {
|
||||
return document.body;
|
||||
}
|
||||
}
|
||||
getHistory() { return window.history; }
|
||||
getLocation() { return window.location; }
|
||||
getBaseHref() { return relativePath(document.baseURI); }
|
||||
getHistory(): History { return window.history; }
|
||||
getLocation(): Location { return window.location; }
|
||||
getBaseHref(): string { return relativePath(document.baseURI); }
|
||||
getUserAgent(): string { return window.navigator.userAgent; }
|
||||
setData(element, name: string, value: string) { element.dataset[name] = value; }
|
||||
getData(element, name: string): string { return element.dataset[name]; }
|
||||
@ -268,7 +274,7 @@ export class BrowserDomAdapter extends GenericBrowserDomAdapter {
|
||||
|
||||
// based on urlUtils.js in AngularJS 1
|
||||
var urlParsingNode = null;
|
||||
function relativePath(url) {
|
||||
function relativePath(url): string {
|
||||
if (isBlank(urlParsingNode)) {
|
||||
urlParsingNode = document.createElement("a");
|
||||
}
|
||||
|
@ -17,9 +17,11 @@ function _abstract() {
|
||||
*/
|
||||
export class DomAdapter {
|
||||
hasProperty(element, name: string): boolean { throw _abstract(); }
|
||||
setProperty(el: /*element*/ any, name: string, value: any) { throw _abstract(); }
|
||||
getProperty(el: /*element*/ any, name: string): any { throw _abstract(); }
|
||||
invoke(el: /*element*/ any, methodName: string, args: List<any>): any { throw _abstract(); }
|
||||
setProperty(el: /*(#2770) Element*/ any, name: string, value: any) { throw _abstract(); }
|
||||
getProperty(el: /*(#2770) Element*/ any, name: string): any { throw _abstract(); }
|
||||
invoke(el: /*(#2770) Element*/ any, methodName: string, args: List<any>): any {
|
||||
throw _abstract();
|
||||
}
|
||||
|
||||
logError(error) { throw _abstract(); }
|
||||
|
||||
@ -45,45 +47,53 @@ export class DomAdapter {
|
||||
nodeValue(node): string { throw _abstract(); }
|
||||
type(node): string { throw _abstract(); }
|
||||
content(node): any { throw _abstract(); }
|
||||
firstChild(el): any { throw _abstract(); }
|
||||
nextSibling(el): any { throw _abstract(); }
|
||||
parentElement(el): any { throw _abstract(); }
|
||||
childNodes(el): List<any> { throw _abstract(); }
|
||||
childNodesAsList(el): List<any> { throw _abstract(); }
|
||||
firstChild(el): /*(#2770) Node*/ any { throw _abstract(); }
|
||||
nextSibling(el): /*(#2770) Node*/ any { throw _abstract(); }
|
||||
parentElement(el): /*(#2770) Node*/ any { throw _abstract(); }
|
||||
childNodes(el): List</*(#2770) Node*/ any> { throw _abstract(); }
|
||||
childNodesAsList(el): List</*(#2770) Node*/ any> { throw _abstract(); }
|
||||
clearNodes(el) { throw _abstract(); }
|
||||
appendChild(el, node) { throw _abstract(); }
|
||||
removeChild(el, node) { throw _abstract(); }
|
||||
replaceChild(el, newNode, oldNode) { throw _abstract(); }
|
||||
remove(el) { throw _abstract(); }
|
||||
remove(el): /*(#2770) Node*/ any { throw _abstract(); }
|
||||
insertBefore(el, node) { throw _abstract(); }
|
||||
insertAllBefore(el, nodes) { throw _abstract(); }
|
||||
insertAfter(el, node) { throw _abstract(); }
|
||||
setInnerHTML(el, value) { throw _abstract(); }
|
||||
getText(el): any { throw _abstract(); }
|
||||
getText(el): string { throw _abstract(); }
|
||||
setText(el, value: string) { throw _abstract(); }
|
||||
getValue(el): any { throw _abstract(); }
|
||||
getValue(el): string { throw _abstract(); }
|
||||
setValue(el, value: string) { throw _abstract(); }
|
||||
getChecked(el): any { throw _abstract(); }
|
||||
getChecked(el): boolean { throw _abstract(); }
|
||||
setChecked(el, value: boolean) { throw _abstract(); }
|
||||
createTemplate(html): any { throw _abstract(); }
|
||||
createElement(tagName, doc = null): any { throw _abstract(); }
|
||||
createTextNode(text: string, doc = null): any { throw _abstract(); }
|
||||
createScriptTag(attrName: string, attrValue: string, doc = null): any { throw _abstract(); }
|
||||
createStyleElement(css: string, doc = null): any { throw _abstract(); }
|
||||
createTemplate(html): /*(#2770) HTMLElement*/ any { throw _abstract(); }
|
||||
createElement(tagName, doc = null): /*(#2770) HTMLElement*/ any { throw _abstract(); }
|
||||
createTextNode(text: string, doc = null): /*(#2770) Text*/ any { throw _abstract(); }
|
||||
createScriptTag(attrName: string, attrValue: string, doc = null): /*(#2770) HTMLElement*/ any {
|
||||
throw _abstract();
|
||||
}
|
||||
createStyleElement(css: string, doc = null): /*(#2770) HTMLStyleElement*/ any {
|
||||
throw _abstract();
|
||||
}
|
||||
createShadowRoot(el): any { throw _abstract(); }
|
||||
getShadowRoot(el): any { throw _abstract(); }
|
||||
getHost(el): any { throw _abstract(); }
|
||||
getDistributedNodes(el): List<any> { throw _abstract(); }
|
||||
clone(node): any { throw _abstract(); }
|
||||
getElementsByClassName(element, name: string): List<any> { throw _abstract(); }
|
||||
getElementsByTagName(element, name: string): List<any> { throw _abstract(); }
|
||||
getDistributedNodes(el): List</*(#2770) Node*/ any> { throw _abstract(); }
|
||||
clone(node: /*(#2770) Node*/ any): /*(#2770) Node*/ any { throw _abstract(); }
|
||||
getElementsByClassName(element, name: string): List</*(#2770) HTMLElement*/ any> {
|
||||
throw _abstract();
|
||||
}
|
||||
getElementsByTagName(element, name: string): List</*(#2770) HTMLElement*/ any> {
|
||||
throw _abstract();
|
||||
}
|
||||
classList(element): List<any> { throw _abstract(); }
|
||||
addClass(element, classname: string) { throw _abstract(); }
|
||||
removeClass(element, classname: string) { throw _abstract(); }
|
||||
hasClass(element, classname: string) { throw _abstract(); }
|
||||
hasClass(element, classname: string): boolean { throw _abstract(); }
|
||||
setStyle(element, stylename: string, stylevalue: string) { throw _abstract(); }
|
||||
removeStyle(element, stylename: string) { throw _abstract(); }
|
||||
getStyle(element, stylename: string) { throw _abstract(); }
|
||||
getStyle(element, stylename: string): string { throw _abstract(); }
|
||||
tagName(element): string { throw _abstract(); }
|
||||
attributeMap(element): Map<string, string> { throw _abstract(); }
|
||||
hasAttribute(element, attribute: string): boolean { throw _abstract(); }
|
||||
@ -91,8 +101,8 @@ export class DomAdapter {
|
||||
setAttribute(element, name: string, value: string) { throw _abstract(); }
|
||||
removeAttribute(element, attribute: string) { throw _abstract(); }
|
||||
templateAwareRoot(el) { throw _abstract(); }
|
||||
createHtmlDocument() { throw _abstract(); }
|
||||
defaultDoc(): any { throw _abstract(); }
|
||||
createHtmlDocument(): /*(#2770) HTMLDocument*/ any { throw _abstract(); }
|
||||
defaultDoc(): /*(#2770) HTMLDocument*/ any { throw _abstract(); }
|
||||
getBoundingClientRect(el) { throw _abstract(); }
|
||||
getTitle(): string { throw _abstract(); }
|
||||
setTitle(newTitle: string) { throw _abstract(); }
|
||||
@ -115,8 +125,8 @@ export class DomAdapter {
|
||||
supportsDOMEvents(): boolean { throw _abstract(); }
|
||||
supportsNativeShadowDOM(): boolean { throw _abstract(); }
|
||||
getGlobalEventTarget(target: string): any { throw _abstract(); }
|
||||
getHistory(): any { throw _abstract(); }
|
||||
getLocation(): any { throw _abstract(); }
|
||||
getHistory(): /*(#2770) History*/ any { throw _abstract(); }
|
||||
getLocation(): /*(#2770) Location*/ any { throw _abstract(); }
|
||||
getBaseHref(): string { throw _abstract(); }
|
||||
getUserAgent(): string { throw _abstract(); }
|
||||
setData(element, name: string, value: string) { throw _abstract(); }
|
||||
|
@ -6,7 +6,7 @@ import {DomAdapter} from './dom_adapter';
|
||||
* Provides DOM operations in any browser environment.
|
||||
*/
|
||||
export class GenericBrowserDomAdapter extends DomAdapter {
|
||||
getDistributedNodes(el) { return el.getDistributedNodes(); }
|
||||
getDistributedNodes(el): List</*(#2770) Node*/ any> { return el.getDistributedNodes(); }
|
||||
resolveAndSetHref(el, baseUrl: string, href: string) {
|
||||
el.href = href == null ? baseUrl : baseUrl + '/../' + href;
|
||||
}
|
||||
@ -19,7 +19,7 @@ export class GenericBrowserDomAdapter extends DomAdapter {
|
||||
// with an @import
|
||||
// https://bugzilla.mozilla.org/show_bug.cgi?id=625013
|
||||
try {
|
||||
var rawRules = style.sheet.cssRules;
|
||||
var rawRules = (<any>style.sheet).cssRules;
|
||||
rules = ListWrapper.createFixedSize(rawRules.length);
|
||||
for (var i = 0; i < rawRules.length; i++) {
|
||||
rules[i] = rawRules[i];
|
||||
@ -34,5 +34,7 @@ export class GenericBrowserDomAdapter extends DomAdapter {
|
||||
return rules;
|
||||
}
|
||||
supportsDOMEvents(): boolean { return true; }
|
||||
supportsNativeShadowDOM(): boolean { return isFunction(this.defaultDoc().body.createShadowRoot); }
|
||||
supportsNativeShadowDOM(): boolean {
|
||||
return isFunction((<any>this.defaultDoc().body).createShadowRoot);
|
||||
}
|
||||
}
|
||||
|
@ -26,7 +26,9 @@ function _notImplemented(methodName) {
|
||||
export class Parse5DomAdapter extends DomAdapter {
|
||||
static makeCurrent() { setRootDomAdapter(new Parse5DomAdapter()); }
|
||||
|
||||
hasProperty(element, name: string) { return _HTMLElementPropertyList.indexOf(name) > -1; }
|
||||
hasProperty(element, name: string): boolean {
|
||||
return _HTMLElementPropertyList.indexOf(name) > -1;
|
||||
}
|
||||
// TODO(tbosch): don't even call this method when we run the tests on server side
|
||||
// by not using the DomRenderer in tests. Keeping this for now to make tests happy...
|
||||
setProperty(el: /*element*/ any, name: string, value: any) {
|
||||
@ -45,8 +47,8 @@ export class Parse5DomAdapter extends DomAdapter {
|
||||
get attrToPropMap() { return _attrToPropMap; }
|
||||
|
||||
query(selector) { throw _notImplemented('query'); }
|
||||
querySelector(el, selector: string) { return this.querySelectorAll(el, selector)[0]; }
|
||||
querySelectorAll(el, selector: string) {
|
||||
querySelector(el, selector: string): any { return this.querySelectorAll(el, selector)[0]; }
|
||||
querySelectorAll(el, selector: string): List<any> {
|
||||
var res = [];
|
||||
var _recursive = (result, node, selector, matcher) => {
|
||||
var cNodes = node.childNodes;
|
||||
@ -130,18 +132,18 @@ export class Parse5DomAdapter extends DomAdapter {
|
||||
this.dispatchEvent(el._window, evt);
|
||||
}
|
||||
}
|
||||
createMouseEvent(eventType) { return this.createEvent(eventType); }
|
||||
createEvent(eventType) {
|
||||
var evt = {
|
||||
createMouseEvent(eventType): Event { return this.createEvent(eventType); }
|
||||
createEvent(eventType: string): Event {
|
||||
var evt = <Event>{
|
||||
type: eventType,
|
||||
defaultPrevented: false,
|
||||
preventDefault: () => { evt.defaultPrevented = true }
|
||||
preventDefault: () => { evt.defaultPrevented = true; }
|
||||
};
|
||||
return evt;
|
||||
}
|
||||
preventDefault(evt) { evt.returnValue = false; }
|
||||
getInnerHTML(el) { return serializer.serialize(this.templateAwareRoot(el)); }
|
||||
getOuterHTML(el) {
|
||||
getInnerHTML(el): string { return serializer.serialize(this.templateAwareRoot(el)); }
|
||||
getOuterHTML(el): string {
|
||||
serializer.html = '';
|
||||
serializer._serializeElement(el);
|
||||
return serializer.html;
|
||||
@ -149,11 +151,11 @@ export class Parse5DomAdapter extends DomAdapter {
|
||||
nodeName(node): string { return node.tagName; }
|
||||
nodeValue(node): string { return node.nodeValue; }
|
||||
type(node: any): string { throw _notImplemented('type'); }
|
||||
content(node) { return node.childNodes[0]; }
|
||||
firstChild(el) { return el.firstChild; }
|
||||
nextSibling(el) { return el.nextSibling; }
|
||||
parentElement(el) { return el.parent; }
|
||||
childNodes(el) { return el.childNodes; }
|
||||
content(node): string { return node.childNodes[0]; }
|
||||
firstChild(el): Node { return el.firstChild; }
|
||||
nextSibling(el): Node { return el.nextSibling; }
|
||||
parentElement(el): Node { return el.parent; }
|
||||
childNodes(el): Node[] { return el.childNodes; }
|
||||
childNodesAsList(el): List<any> {
|
||||
var childNodes = el.childNodes;
|
||||
var res = ListWrapper.createFixedSize(childNodes.length);
|
||||
@ -176,7 +178,7 @@ export class Parse5DomAdapter extends DomAdapter {
|
||||
this.remove(node);
|
||||
}
|
||||
}
|
||||
remove(el) {
|
||||
remove(el): HTMLElement {
|
||||
var parent = el.parent;
|
||||
if (parent) {
|
||||
var index = parent.childNodes.indexOf(el);
|
||||
@ -216,7 +218,7 @@ export class Parse5DomAdapter extends DomAdapter {
|
||||
treeAdapter.appendChild(el, content.childNodes[i]);
|
||||
}
|
||||
}
|
||||
getText(el) {
|
||||
getText(el): string {
|
||||
if (this.isTextNode(el)) {
|
||||
return el.data;
|
||||
} else if (isBlank(el.childNodes) || el.childNodes.length == 0) {
|
||||
@ -237,40 +239,40 @@ export class Parse5DomAdapter extends DomAdapter {
|
||||
if (value !== '') treeAdapter.insertText(el, value);
|
||||
}
|
||||
}
|
||||
getValue(el) { return el.value; }
|
||||
getValue(el): string { return el.value; }
|
||||
setValue(el, value: string) { el.value = value; }
|
||||
getChecked(el) { return el.checked; }
|
||||
getChecked(el): boolean { return el.checked; }
|
||||
setChecked(el, value: boolean) { el.checked = value; }
|
||||
createTemplate(html) {
|
||||
createTemplate(html): HTMLElement {
|
||||
var template = treeAdapter.createElement("template", 'http://www.w3.org/1999/xhtml', []);
|
||||
var content = parser.parseFragment(html);
|
||||
treeAdapter.appendChild(template, content);
|
||||
return template;
|
||||
}
|
||||
createElement(tagName) {
|
||||
createElement(tagName): HTMLElement {
|
||||
return treeAdapter.createElement(tagName, 'http://www.w3.org/1999/xhtml', []);
|
||||
}
|
||||
createTextNode(text: string) { throw _notImplemented('createTextNode'); }
|
||||
createScriptTag(attrName: string, attrValue: string) {
|
||||
createTextNode(text: string): Text { throw _notImplemented('createTextNode'); }
|
||||
createScriptTag(attrName: string, attrValue: string): HTMLElement {
|
||||
return treeAdapter.createElement("script", 'http://www.w3.org/1999/xhtml',
|
||||
[{name: attrName, value: attrValue}]);
|
||||
}
|
||||
createStyleElement(css: string) {
|
||||
createStyleElement(css: string): HTMLStyleElement {
|
||||
var style = this.createElement('style');
|
||||
this.setText(style, css);
|
||||
return style;
|
||||
return <HTMLStyleElement>style;
|
||||
}
|
||||
createShadowRoot(el) {
|
||||
createShadowRoot(el): HTMLElement {
|
||||
el.shadowRoot = treeAdapter.createDocumentFragment();
|
||||
el.shadowRoot.parent = el;
|
||||
return el.shadowRoot;
|
||||
}
|
||||
getShadowRoot(el) { return el.shadowRoot; }
|
||||
getHost(el) { return el.host; }
|
||||
getDistributedNodes(el: any): List<any> { throw _notImplemented('getDistributedNodes'); }
|
||||
clone(node) {
|
||||
getShadowRoot(el): Element { return el.shadowRoot; }
|
||||
getHost(el): string { return el.host; }
|
||||
getDistributedNodes(el: any): List<Node> { throw _notImplemented('getDistributedNodes'); }
|
||||
clone(node: Node): Node {
|
||||
// e.g. document fragment
|
||||
if (node.type === 'root') {
|
||||
if ((<any>node).type === 'root') {
|
||||
var serialized = serializer.serialize(node);
|
||||
var newParser = new parse5.Parser(parse5.TreeAdapters.htmlparser2);
|
||||
return newParser.parseFragment(serialized);
|
||||
@ -282,10 +284,10 @@ export class Parse5DomAdapter extends DomAdapter {
|
||||
return newParser.parseFragment(serialized).childNodes[0];
|
||||
}
|
||||
}
|
||||
getElementsByClassName(element, name: string) {
|
||||
getElementsByClassName(element, name: string): List<HTMLElement> {
|
||||
return this.querySelectorAll(element, "." + name);
|
||||
}
|
||||
getElementsByTagName(element: any, name: string): List<any> {
|
||||
getElementsByTagName(element: any, name: string): List<HTMLElement> {
|
||||
throw _notImplemented('getElementsByTagName');
|
||||
}
|
||||
classList(element): List<string> {
|
||||
@ -312,7 +314,7 @@ export class Parse5DomAdapter extends DomAdapter {
|
||||
element.attribs["class"] = element.className = ListWrapper.join(classList, " ");
|
||||
}
|
||||
}
|
||||
hasClass(element, classname: string) {
|
||||
hasClass(element, classname: string): boolean {
|
||||
return ListWrapper.contains(this.classList(element), classname);
|
||||
}
|
||||
_readStyleAttribute(element) {
|
||||
@ -346,12 +348,12 @@ export class Parse5DomAdapter extends DomAdapter {
|
||||
this._writeStyleAttribute(element, styleMap);
|
||||
}
|
||||
removeStyle(element, stylename: string) { this.setStyle(element, stylename, null); }
|
||||
getStyle(element, stylename: string) {
|
||||
getStyle(element, stylename: string): string {
|
||||
var styleMap = this._readStyleAttribute(element);
|
||||
return styleMap.hasOwnProperty(stylename) ? styleMap[stylename] : "";
|
||||
}
|
||||
tagName(element): string { return element.tagName == "style" ? "STYLE" : element.tagName; }
|
||||
attributeMap(element) {
|
||||
attributeMap(element): Map<string, string> {
|
||||
var res = new Map();
|
||||
var elAttrs = treeAdapter.getAttrList(element);
|
||||
for (var i = 0; i < elAttrs.length; i++) {
|
||||
@ -360,10 +362,10 @@ export class Parse5DomAdapter extends DomAdapter {
|
||||
}
|
||||
return res;
|
||||
}
|
||||
hasAttribute(element, attribute: string) {
|
||||
hasAttribute(element, attribute: string): boolean {
|
||||
return element.attribs && element.attribs.hasOwnProperty(attribute);
|
||||
}
|
||||
getAttribute(element, attribute: string) {
|
||||
getAttribute(element, attribute: string): string {
|
||||
return element.attribs && element.attribs.hasOwnProperty(attribute) ?
|
||||
element.attribs[attribute] :
|
||||
null;
|
||||
@ -378,8 +380,8 @@ export class Parse5DomAdapter extends DomAdapter {
|
||||
StringMapWrapper.delete(element.attribs, attribute);
|
||||
}
|
||||
}
|
||||
templateAwareRoot(el) { return this.isTemplateElement(el) ? this.content(el) : el; }
|
||||
createHtmlDocument() {
|
||||
templateAwareRoot(el): any { return this.isTemplateElement(el) ? this.content(el) : el; }
|
||||
createHtmlDocument(): Document {
|
||||
var newDoc = treeAdapter.createDocument();
|
||||
newDoc.title = "fake title";
|
||||
var head = treeAdapter.createElement("head", null, []);
|
||||
@ -391,14 +393,14 @@ export class Parse5DomAdapter extends DomAdapter {
|
||||
StringMapWrapper.set(newDoc, "_window", StringMapWrapper.create());
|
||||
return newDoc;
|
||||
}
|
||||
defaultDoc() {
|
||||
defaultDoc(): Document {
|
||||
if (defDoc === null) {
|
||||
defDoc = this.createHtmlDocument();
|
||||
}
|
||||
return defDoc;
|
||||
}
|
||||
getBoundingClientRect(el) { return {left: 0, top: 0, width: 0, height: 0}; }
|
||||
getTitle() { return this.defaultDoc().title || ""; }
|
||||
getBoundingClientRect(el): any { return {left: 0, top: 0, width: 0, height: 0}; }
|
||||
getTitle(): string { return this.defaultDoc().title || ""; }
|
||||
setTitle(newTitle: string) { this.defaultDoc().title = newTitle; }
|
||||
isTemplateElement(el: any): boolean {
|
||||
return this.isElementNode(el) && this.tagName(el) === "template";
|
||||
@ -408,7 +410,7 @@ export class Parse5DomAdapter extends DomAdapter {
|
||||
isElementNode(node): boolean { return node ? treeAdapter.isElementNode(node) : false; }
|
||||
hasShadowRoot(node): boolean { return isPresent(node.shadowRoot); }
|
||||
isShadowRoot(node): boolean { return this.getShadowRoot(node) == node; }
|
||||
importIntoDoc(node) { return this.clone(node); }
|
||||
importIntoDoc(node): any { return this.clone(node); }
|
||||
isPageRule(rule): boolean {
|
||||
return rule.type === 6; // CSSRule.PAGE_RULE
|
||||
}
|
||||
@ -476,18 +478,18 @@ export class Parse5DomAdapter extends DomAdapter {
|
||||
}
|
||||
supportsDOMEvents(): boolean { return false; }
|
||||
supportsNativeShadowDOM(): boolean { return false; }
|
||||
getGlobalEventTarget(target: string) {
|
||||
getGlobalEventTarget(target: string): any {
|
||||
if (target == "window") {
|
||||
return this.defaultDoc()._window;
|
||||
return (<any>this.defaultDoc())._window;
|
||||
} else if (target == "document") {
|
||||
return this.defaultDoc();
|
||||
} else if (target == "body") {
|
||||
return this.defaultDoc().body;
|
||||
}
|
||||
}
|
||||
getHistory() { throw 'not implemented'; }
|
||||
getLocation() { throw 'not implemented'; }
|
||||
getUserAgent() { return "Fake user agent"; }
|
||||
getHistory(): History { throw 'not implemented'; }
|
||||
getLocation(): Location { throw 'not implemented'; }
|
||||
getUserAgent(): string { return "Fake user agent"; }
|
||||
getData(el, name: string): string { return this.getAttribute(el, 'data-' + name); }
|
||||
setData(el, name: string, value: string) { this.setAttribute(el, 'data-' + name, value); }
|
||||
// TODO(tbosch): move this into a separate environment class once we have it
|
||||
|
Reference in New Issue
Block a user