| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- /**
- * @license
- * Copyright 2020 Google LLC
- * SPDX-License-Identifier: BSD-3-Clause
- */
- import { html as coreHtml, svg as coreSvg, mathml as coreMathml, TemplateResult } from './lit-html.js';
- export interface StaticValue {
- /** The value to interpolate as-is into the template. */
- _$litStatic$: string;
- /**
- * A value that can't be decoded from ordinary JSON, make it harder for
- * an attacker-controlled data that goes through JSON.parse to produce a valid
- * StaticValue.
- */
- r: typeof brand;
- }
- /**
- * Prevents JSON injection attacks.
- *
- * The goals of this brand:
- * 1) fast to check
- * 2) code is small on the wire
- * 3) multiple versions of Lit in a single page will all produce mutually
- * interoperable StaticValues
- * 4) normal JSON.parse (without an unusual reviver) can not produce a
- * StaticValue
- *
- * Symbols satisfy (1), (2), and (4). We use Symbol.for to satisfy (3), but
- * we don't care about the key, so we break ties via (2) and use the empty
- * string.
- */
- declare const brand: unique symbol;
- /**
- * Wraps a string so that it behaves like part of the static template
- * strings instead of a dynamic value.
- *
- * Users must take care to ensure that adding the static string to the template
- * results in well-formed HTML, or else templates may break unexpectedly.
- *
- * Note that this function is unsafe to use on untrusted content, as it will be
- * directly parsed into HTML. Do not pass user input to this function
- * without sanitizing it.
- *
- * Static values can be changed, but they will cause a complete re-render
- * since they effectively create a new template.
- */
- export declare const unsafeStatic: (value: string) => StaticValue;
- /**
- * Tags a string literal so that it behaves like part of the static template
- * strings instead of a dynamic value.
- *
- * The only values that may be used in template expressions are other tagged
- * `literal` results or `unsafeStatic` values (note that untrusted content
- * should never be passed to `unsafeStatic`).
- *
- * Users must take care to ensure that adding the static string to the template
- * results in well-formed HTML, or else templates may break unexpectedly.
- *
- * Static values can be changed, but they will cause a complete re-render since
- * they effectively create a new template.
- */
- export declare const literal: (strings: TemplateStringsArray, ...values: unknown[]) => StaticValue;
- /**
- * Wraps a lit-html template tag (`html` or `svg`) to add static value support.
- */
- export declare const withStatic: (coreTag: typeof coreHtml | typeof coreSvg | typeof coreMathml) => (strings: TemplateStringsArray, ...values: unknown[]) => TemplateResult;
- /**
- * Interprets a template literal as an HTML template that can efficiently
- * render to and update a container.
- *
- * Includes static value support from `lit-html/static.js`.
- */
- export declare const html: (strings: TemplateStringsArray, ...values: unknown[]) => TemplateResult;
- /**
- * Interprets a template literal as an SVG template that can efficiently
- * render to and update a container.
- *
- * Includes static value support from `lit-html/static.js`.
- */
- export declare const svg: (strings: TemplateStringsArray, ...values: unknown[]) => TemplateResult;
- /**
- * Interprets a template literal as MathML fragment that can efficiently render
- * to and update a container.
- *
- * Includes static value support from `lit-html/static.js`.
- */
- export declare const mathml: (strings: TemplateStringsArray, ...values: unknown[]) => TemplateResult;
- export {};
- //# sourceMappingURL=static.d.ts.map
|