@vaadin/lit-renderer 24.2.0-alpha4 → 24.2.0-alpha5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/src/lit-renderer.d.ts +8 -2
- package/src/lit-renderer.js +4 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vaadin/lit-renderer",
|
|
3
|
-
"version": "24.2.0-
|
|
3
|
+
"version": "24.2.0-alpha5",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@esm-bundle/chai": "^4.3.4",
|
|
37
|
-
"@vaadin/testing-helpers": "^0.4.
|
|
37
|
+
"@vaadin/testing-helpers": "^0.4.3",
|
|
38
38
|
"sinon": "^13.0.2"
|
|
39
39
|
},
|
|
40
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "73db22a5e8993e3ce48d1e6540d30eff9cb5c257"
|
|
41
41
|
}
|
package/src/lit-renderer.d.ts
CHANGED
|
@@ -3,10 +3,16 @@
|
|
|
3
3
|
* Copyright (c) 2016 - 2023 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
|
-
import type { ElementPart, nothing, RenderOptions, TemplateResult } from 'lit';
|
|
6
|
+
import type { ElementPart, noChange, nothing, RenderOptions, TemplateResult } from 'lit';
|
|
7
7
|
import { AsyncDirective } from 'lit/async-directive.js';
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
// Opinionated union of types allowed to be returned from Lit renderers.
|
|
10
|
+
// Theoretically Lit allows to render pretty much everything, but in practice
|
|
11
|
+
// these seem the mose useful ones, without allowing developers to return things
|
|
12
|
+
// like objects or dates that probably don't render the way they expect.
|
|
13
|
+
export type LitRendererResult = TemplateResult | string | typeof noChange | typeof nothing | null;
|
|
14
|
+
|
|
15
|
+
export type LitRenderer = (...args: any[]) => LitRendererResult;
|
|
10
16
|
|
|
11
17
|
export abstract class LitRendererDirective<E extends Element, R extends LitRenderer> extends AsyncDirective {
|
|
12
18
|
protected host: RenderOptions['host'];
|
package/src/lit-renderer.js
CHANGED
|
@@ -77,6 +77,10 @@ export class LitRendererDirective extends AsyncDirective {
|
|
|
77
77
|
|
|
78
78
|
/** @protected */
|
|
79
79
|
renderRenderer(container, ...args) {
|
|
80
|
+
// Note that a renderer result is not necessarily a `TemplateResult`
|
|
81
|
+
// instance, as Lit allows returning any value from a renderer. The concrete
|
|
82
|
+
// list of types we allow as render results is defined in the Typescript
|
|
83
|
+
// `LitRendererResult` type.
|
|
80
84
|
const templateResult = this.renderer.call(this.host, ...args);
|
|
81
85
|
render(templateResult, container, { host: this.host });
|
|
82
86
|
}
|