36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright Google Inc. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by an MIT-style license that can be
|
|
* found in the LICENSE file at https://angular.io/license
|
|
*/
|
|
|
|
export function html(html: string): Element {
|
|
// Don't return `body` itself, because using it as a `$rootElement` for ng1
|
|
// will attach `$injector` to it and that will affect subsequent tests.
|
|
const body = document.body;
|
|
body.innerHTML = `<div>${html.trim()}</div>`;
|
|
const div = document.body.firstChild as Element;
|
|
|
|
if (div.childNodes.length === 1 && div.firstChild instanceof HTMLElement) {
|
|
return div.firstChild;
|
|
}
|
|
|
|
return div;
|
|
}
|
|
|
|
export function multiTrim(text: string | null | undefined, allSpace = false): string {
|
|
if (typeof text == 'string') {
|
|
const repl = allSpace ? '' : ' ';
|
|
return text.replace(/\n/g, '').replace(/\s+/g, repl).trim();
|
|
}
|
|
throw new Error('Argument can not be undefined.');
|
|
}
|
|
|
|
export function nodes(html: string) {
|
|
const div = document.createElement('div');
|
|
div.innerHTML = html.trim();
|
|
return Array.prototype.slice.call(div.childNodes);
|
|
}
|