blob: d05a4c1f1795b2abe2f95c5d37e3ec6741e1fca1 [file] [log] [blame]
"use strict";
/**
* @license
* Copyright Google LLC 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
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.removeElementFromHtml = void 0;
/**
* Removes the specified element. Additionally, preceding whitespace will be removed
* to not leave empty lines in the resulting HTML.
*/
function removeElementFromHtml(element, recorder) {
// sourceCodeLocation is always set since we parse with location info enabled.
const { startOffset, endOffset } = element.sourceCodeLocation;
const parentIndex = element.parentNode.childNodes.indexOf(element);
const precedingTextSibling = element.parentNode.childNodes.find((f, i) => f.nodeName === '#text' && i === parentIndex - 1);
recorder.remove(startOffset, endOffset - startOffset);
// If we found a preceding text node which just consists of whitespace, remove it.
if (precedingTextSibling && /^\s+$/.test(precedingTextSibling.value)) {
const textSiblingLocation = precedingTextSibling.sourceCodeLocation;
recorder.remove(textSiblingLocation.startOffset, textSiblingLocation.endOffset - textSiblingLocation.startOffset);
}
}
exports.removeElementFromHtml = removeElementFromHtml;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLWVsZW1lbnQtZnJvbS1odG1sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsL3NjaGVtYXRpY3MvbmctdXBkYXRlL21pZ3JhdGlvbnMvaGFtbWVyLWdlc3R1cmVzLXY5L3JlbW92ZS1lbGVtZW50LWZyb20taHRtbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFLSDs7O0dBR0c7QUFDSCxTQUFnQixxQkFBcUIsQ0FDakMsT0FBa0MsRUFBRSxRQUF3QjtJQUM5RCw4RUFBOEU7SUFDOUUsTUFBTSxFQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUMsR0FBRyxPQUFPLENBQUMsa0JBQW1CLENBQUM7SUFDN0QsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25FLE1BQU0sb0JBQW9CLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUMzRCxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQW1DLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLE9BQU8sSUFBSSxDQUFDLEtBQUssV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRWhHLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLFNBQVMsR0FBRyxXQUFXLENBQUMsQ0FBQztJQUV0RCxrRkFBa0Y7SUFDbEYsSUFBSSxvQkFBb0IsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3BFLE1BQU0sbUJBQW1CLEdBQUcsb0JBQW9CLENBQUMsa0JBQW1CLENBQUM7UUFDckUsUUFBUSxDQUFDLE1BQU0sQ0FDWCxtQkFBbUIsQ0FBQyxXQUFXLEVBQy9CLG1CQUFtQixDQUFDLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztLQUN0RTtBQUNILENBQUM7QUFqQkQsc0RBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7VXBkYXRlUmVjb3JkZXJ9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzJztcbmltcG9ydCB7cGFyc2U1fSBmcm9tICdAYW5ndWxhci9jZGsvc2NoZW1hdGljcyc7XG5cbi8qKlxuICogUmVtb3ZlcyB0aGUgc3BlY2lmaWVkIGVsZW1lbnQuIEFkZGl0aW9uYWxseSwgcHJlY2VkaW5nIHdoaXRlc3BhY2Ugd2lsbCBiZSByZW1vdmVkXG4gKiB0byBub3QgbGVhdmUgZW1wdHkgbGluZXMgaW4gdGhlIHJlc3VsdGluZyBIVE1MLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlRWxlbWVudEZyb21IdG1sKFxuICAgIGVsZW1lbnQ6IHBhcnNlNS5EZWZhdWx0VHJlZUVsZW1lbnQsIHJlY29yZGVyOiBVcGRhdGVSZWNvcmRlcikge1xuICAvLyBzb3VyY2VDb2RlTG9jYXRpb24gaXMgYWx3YXlzIHNldCBzaW5jZSB3ZSBwYXJzZSB3aXRoIGxvY2F0aW9uIGluZm8gZW5hYmxlZC5cbiAgY29uc3Qge3N0YXJ0T2Zmc2V0LCBlbmRPZmZzZXR9ID0gZWxlbWVudC5zb3VyY2VDb2RlTG9jYXRpb24hO1xuICBjb25zdCBwYXJlbnRJbmRleCA9IGVsZW1lbnQucGFyZW50Tm9kZS5jaGlsZE5vZGVzLmluZGV4T2YoZWxlbWVudCk7XG4gIGNvbnN0IHByZWNlZGluZ1RleHRTaWJsaW5nID0gZWxlbWVudC5wYXJlbnROb2RlLmNoaWxkTm9kZXMuZmluZChcbiAgICAgIChmLCBpKTogZiBpcyBwYXJzZTUuRGVmYXVsdFRyZWVUZXh0Tm9kZSA9PiBmLm5vZGVOYW1lID09PSAnI3RleHQnICYmIGkgPT09IHBhcmVudEluZGV4IC0gMSk7XG5cbiAgcmVjb3JkZXIucmVtb3ZlKHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQgLSBzdGFydE9mZnNldCk7XG5cbiAgLy8gSWYgd2UgZm91bmQgYSBwcmVjZWRpbmcgdGV4dCBub2RlIHdoaWNoIGp1c3QgY29uc2lzdHMgb2Ygd2hpdGVzcGFjZSwgcmVtb3ZlIGl0LlxuICBpZiAocHJlY2VkaW5nVGV4dFNpYmxpbmcgJiYgL15cXHMrJC8udGVzdChwcmVjZWRpbmdUZXh0U2libGluZy52YWx1ZSkpIHtcbiAgICBjb25zdCB0ZXh0U2libGluZ0xvY2F0aW9uID0gcHJlY2VkaW5nVGV4dFNpYmxpbmcuc291cmNlQ29kZUxvY2F0aW9uITtcbiAgICByZWNvcmRlci5yZW1vdmUoXG4gICAgICAgIHRleHRTaWJsaW5nTG9jYXRpb24uc3RhcnRPZmZzZXQsXG4gICAgICAgIHRleHRTaWJsaW5nTG9jYXRpb24uZW5kT2Zmc2V0IC0gdGV4dFNpYmxpbmdMb2NhdGlvbi5zdGFydE9mZnNldCk7XG4gIH1cbn1cbiJdfQ==