/** * @license * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. * This code may only be used under the BSD style license found at * http://polymer.github.io/LICENSE.txt * The complete set of authors may be found at * http://polymer.github.io/AUTHORS.txt * The complete set of contributors may be found at * http://polymer.github.io/CONTRIBUTORS.txt * Code distributed by Google as part of the polymer project is also * subject to an additional IP rights grant found at * http://polymer.github.io/PATENTS.txt */ /** * @module lit-html */ import {reparentNodes} from './dom.js'; import {TemplateProcessor} from './template-processor.js'; import {boundAttributeSuffix, lastAttributeNameRegex, marker, nodeMarker,} from './template.js'; declare const trustedTypes: typeof window.trustedTypes; /** * Our TrustedTypePolicy for HTML which is declared using the html template * tag function. * * That HTML is a developer-authored constant, and is parsed with innerHTML * before any untrusted expressions have been mixed in. Therefor it is * considered safe by construction. */ const policy = window.trustedTypes && trustedTypes!.createPolicy('lit-html', {createHTML: (s) => s}); const commentMarker = ` ${marker} `; /** * Used to clone existing node instead of each time creating new one which is * slower */ const emptyTemplateNode = document.createElement('template'); /** * The return type of `html`, which holds a Template and the values from * interpolated expressions. */ export class TemplateResult { readonly strings: TemplateStringsArray; readonly values: readonly unknown[]; readonly type: string; readonly processor: TemplateProcessor; constructor( strings: TemplateStringsArray, values: readonly unknown[], type: string, processor: TemplateProcessor) { this.strings = strings; this.values = values; this.type = type; this.processor = processor; } /** * Returns a string of HTML used to create a `