@lightningtv/solid 3.0.0-25 → 3.0.0-27

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.
Files changed (59) hide show
  1. package/dist/jsx-runtime.d.ts +14 -0
  2. package/dist/src/core/config.d.ts +2 -2
  3. package/dist/tsconfig.tsbuildinfo +1 -1
  4. package/package.json +6 -3
  5. package/src/core/config.ts +2 -2
  6. package/dist/src/client.d.ts +0 -1
  7. package/dist/src/client.js +0 -2
  8. package/dist/src/client.js.map +0 -1
  9. package/dist/src/core/dom-renderer/domRenderer.d.ts +0 -137
  10. package/dist/src/core/dom-renderer/domRenderer.js +0 -1545
  11. package/dist/src/core/dom-renderer/domRenderer.js.map +0 -1
  12. package/dist/src/core/dom-renderer/domRendererTypes.d.ts +0 -117
  13. package/dist/src/core/dom-renderer/domRendererTypes.js +0 -2
  14. package/dist/src/core/dom-renderer/domRendererTypes.js.map +0 -1
  15. package/dist/src/core/dom-renderer/domRendererUtils.d.ts +0 -16
  16. package/dist/src/core/dom-renderer/domRendererUtils.js +0 -132
  17. package/dist/src/core/dom-renderer/domRendererUtils.js.map +0 -1
  18. package/dist/src/core/timings.d.ts +0 -36
  19. package/dist/src/core/timings.js +0 -199
  20. package/dist/src/core/timings.js.map +0 -1
  21. package/dist/src/core.d.ts +0 -1
  22. package/dist/src/core.js +0 -3
  23. package/dist/src/core.js.map +0 -1
  24. package/dist/src/jsx-runtime.d.ts +0 -10
  25. package/dist/src/jsx-runtime.js +0 -2
  26. package/dist/src/jsx-runtime.js.map +0 -1
  27. package/dist/src/primitives/Infinite.d.ts +0 -15
  28. package/dist/src/primitives/Infinite.jsx +0 -59
  29. package/dist/src/primitives/Infinite.jsx.map +0 -1
  30. package/dist/src/primitives/LazyUp.d.ts +0 -11
  31. package/dist/src/primitives/LazyUp.jsx +0 -38
  32. package/dist/src/primitives/LazyUp.jsx.map +0 -1
  33. package/dist/src/primitives/VirtualList.d.ts +0 -11
  34. package/dist/src/primitives/VirtualList.jsx +0 -96
  35. package/dist/src/primitives/VirtualList.jsx.map +0 -1
  36. package/dist/src/primitives/VirtualRow.d.ts +0 -13
  37. package/dist/src/primitives/VirtualRow.jsx +0 -97
  38. package/dist/src/primitives/VirtualRow.jsx.map +0 -1
  39. package/dist/src/primitives/sprite.d.ts +0 -9
  40. package/dist/src/primitives/sprite.js +0 -18
  41. package/dist/src/primitives/sprite.js.map +0 -1
  42. package/dist/src/primitives/utils/createFocusStack.d.ts +0 -24
  43. package/dist/src/primitives/utils/createFocusStack.js +0 -59
  44. package/dist/src/primitives/utils/createFocusStack.js.map +0 -1
  45. package/dist/src/primitives/utils/scrollToIndex.d.ts +0 -2
  46. package/dist/src/primitives/utils/scrollToIndex.js +0 -33
  47. package/dist/src/primitives/utils/scrollToIndex.js.map +0 -1
  48. package/dist/src/renderClient.d.ts +0 -21
  49. package/dist/src/renderClient.js +0 -64
  50. package/dist/src/renderClient.js.map +0 -1
  51. package/dist/src/shaders/LinearGradient.d.ts +0 -3
  52. package/dist/src/shaders/LinearGradient.js +0 -108
  53. package/dist/src/shaders/LinearGradient.js.map +0 -1
  54. package/dist/src/shaders/templates/LinearGradientTemplate.d.ts +0 -9
  55. package/dist/src/shaders/templates/LinearGradientTemplate.js +0 -23
  56. package/dist/src/shaders/templates/LinearGradientTemplate.js.map +0 -1
  57. package/dist/src/universal.d.ts +0 -25
  58. package/dist/src/universal.js +0 -232
  59. package/dist/src/universal.js.map +0 -1
@@ -1,64 +0,0 @@
1
- import { render as solidRenderer, spread } from 'solid-js/web';
2
- export * from 'solid-js/web';
3
- import { Config, startLightningRenderer, } from '@lightningtv/core';
4
- import nodeOpts from './solidOpts.js';
5
- import { splitProps, createMemo, untrack, } from 'solid-js';
6
- import { setActiveElement } from './activeElement.js';
7
- let renderer;
8
- export const rootNode = nodeOpts.createElement('App');
9
- const render = function (code) {
10
- // @ts-expect-error - code is jsx element and not SolidElement yet
11
- return solidRenderer(code, rootNode);
12
- };
13
- export function createRenderer(rendererOptions, node) {
14
- const options = rendererOptions || Config.rendererOptions;
15
- renderer = startLightningRenderer(options, node || 'app');
16
- //Prevent this from happening automatically
17
- Config.setActiveElement = setActiveElement;
18
- rootNode.lng = renderer.root;
19
- rootNode.rendered = true;
20
- return {
21
- renderer,
22
- rootNode,
23
- render,
24
- };
25
- }
26
- /**
27
- * renders an arbitrary custom or native component and passes the other props
28
- * ```typescript
29
- * <Dynamic component={multiline() ? 'textarea' : 'input'} value={value()} />
30
- * ```
31
- * @description https://www.solidjs.com/docs/latest/api#dynamic
32
- */
33
- export function Dynamic(props) {
34
- const [p, others] = splitProps(props, ['component']);
35
- const cached = createMemo(() => p.component);
36
- return createMemo(() => {
37
- const component = cached();
38
- switch (typeof component) {
39
- case 'function':
40
- return untrack(() => component(others));
41
- case 'string': {
42
- const el = nodeOpts.createElement(component);
43
- spread(el, others);
44
- return el;
45
- }
46
- default:
47
- break;
48
- }
49
- });
50
- }
51
- // Dont use JSX as it creates circular dependencies and causes trouble with the playground.
52
- export const View = (props) => {
53
- const el = nodeOpts.createElement('node');
54
- el.nodeName = 'node';
55
- spread(el, props, false);
56
- return el;
57
- };
58
- export const Text = (props) => {
59
- const el = nodeOpts.createElement('text');
60
- el.nodeName = 'text';
61
- spread(el, props, false);
62
- return el;
63
- };
64
- //# sourceMappingURL=renderClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"renderClient.js","sourceRoot":"","sources":["../../src/renderClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC/D,cAAc,cAAc,CAAC;AAE7B,OAAO,EACL,MAAM,EAGN,sBAAsB,GAGvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EACL,UAAU,EACV,UAAU,EACV,OAAO,GAGR,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,IAAI,QAAsB,CAAC;AAC3B,MAAM,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAEtD,MAAM,MAAM,GAAG,UAAU,IAAsB;IAC7C,kEAAkE;IAClE,OAAO,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,UAAU,cAAc,CAC5B,eAAsC,EACtC,IAA2B;IAE3B,MAAM,OAAO,GACX,eAAe,IAAK,MAAM,CAAC,eAAwC,CAAC;IAEtE,QAAQ,GAAG,sBAAsB,CAAC,OAAO,EAAE,IAAI,IAAI,KAAK,CAAC,CAAC;IAC1D,2CAA2C;IAC3C,MAAM,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,IAAK,CAAC;IAC9B,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,OAAO;QACL,QAAQ;QACR,QAAQ;QACR,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CACrB,KAEC;IAED,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAE7C,OAAO,UAAU,CAAC,GAAG,EAAE;QACrB,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC;QAC3B,QAAQ,OAAO,SAAS,EAAE,CAAC;YACzB,KAAK,UAAU;gBACb,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YAE1C,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBAC7C,MAAM,CAAC,EAAwB,EAAE,MAAM,CAAC,CAAC;gBACzC,OAAO,EAAE,CAAC;YACZ,CAAC;YAED;gBACE,MAAM;QACV,CAAC;IACH,CAAC,CAA0B,CAAC;AAC9B,CAAC;AAED,2FAA2F;AAC3F,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,KAAgB,EAAE,EAAE;IACvC,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,EAAE,CAAC,QAAQ,GAAG,MAAM,CAAC;IACrB,MAAM,CAAC,EAAwB,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC/C,OAAO,EAA2B,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,KAAgB,EAAE,EAAE;IACvC,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,EAAE,CAAC,QAAQ,GAAG,MAAM,CAAC;IACrB,MAAM,CAAC,EAAwB,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC/C,OAAO,EAA2B,CAAC;AACrC,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- import { type LinearGradientProps } from './templates/LinearGradientTemplate.js';
2
- import type { WebGlShaderType } from '@lightningjs/renderer/webgl';
3
- export declare const LinearGradient: WebGlShaderType<LinearGradientProps>;
@@ -1,108 +0,0 @@
1
- import { getNormalizedRgbaComponents } from './utils.js';
2
- import { LinearGradientTemplate, } from './templates/LinearGradientTemplate.js';
3
- export const LinearGradient = {
4
- props: LinearGradientTemplate.props,
5
- update(node) {
6
- const props = this.props;
7
- const angle = props.angle - (Math.PI / 180) * 90;
8
- this.uniform1fv('u_stops', new Float32Array(props.stops));
9
- const colors = [];
10
- for (let i = 0; i < props.colors.length; i++) {
11
- const c = props.colors[i];
12
- if (c !== undefined) {
13
- const norm = getNormalizedRgbaComponents(c);
14
- colors.push(norm[0], norm[1], norm[2], norm[3]);
15
- }
16
- }
17
- this.uniform4fv('u_colors', new Float32Array(colors));
18
- const w = node.w;
19
- const h = node.h;
20
- const cosA = Math.cos(angle);
21
- const sinA = Math.sin(angle);
22
- // Calculate line distance (length of gradient line to cover the rectangle)
23
- const lineDist = Math.abs(w * cosA) + Math.abs(h * sinA);
24
- const cx = w * 0.5;
25
- const cy = h * 0.5;
26
- // Calculate Start Point (f)
27
- // calcPoint(lineDist * 0.5, angle)
28
- const fx = lineDist * 0.5 * cosA + cx;
29
- const fy = lineDist * 0.5 * sinA + cy;
30
- // Calculate End Point (t)
31
- // calcPoint(lineDist * 0.5, angle + PI) => -cos, -sin
32
- const tx = lineDist * 0.5 * -cosA + cx;
33
- const ty = lineDist * 0.5 * -sinA + cy;
34
- // Gradient Vector
35
- const gx = tx - fx;
36
- const gy = ty - fy;
37
- // Magnitude Squared
38
- const magSq = gx * gx + gy * gy;
39
- this.uniform2f('u_gradStart', fx, fy);
40
- this.uniform2f('u_gradVec', gx, gy);
41
- this.uniform1f('u_magSq', magSq);
42
- },
43
- getCacheMarkers(props) {
44
- return `colors:${props.colors.length}`;
45
- },
46
- fragment(renderer, props) {
47
- return `
48
- # ifdef GL_FRAGMENT_PRECISION_HIGH
49
- precision highp float;
50
- # else
51
- precision mediump float;
52
- # endif
53
-
54
- #define MAX_STOPS ${props.colors.length}
55
- #define LAST_STOP ${props.colors.length - 1}
56
-
57
- uniform float u_alpha;
58
- uniform vec2 u_dimensions;
59
-
60
- uniform sampler2D u_texture;
61
-
62
- // Pre-calculated Geometry
63
- uniform vec2 u_gradStart;
64
- uniform vec2 u_gradVec;
65
- uniform float u_magSq;
66
-
67
- uniform float u_stops[MAX_STOPS];
68
- uniform vec4 u_colors[MAX_STOPS];
69
-
70
- varying vec4 v_color;
71
- varying vec2 v_textureCoords;
72
-
73
- vec4 getGradientColor(float dist) {
74
- dist = clamp(dist, 0.0, 1.0);
75
-
76
- if(dist <= u_stops[0]) {
77
- return u_colors[0];
78
- }
79
-
80
- if(dist >= u_stops[LAST_STOP]) {
81
- return u_colors[LAST_STOP];
82
- }
83
-
84
- for(int i = 0; i < LAST_STOP; i++) {
85
- float left = u_stops[i];
86
- float right = u_stops[i + 1];
87
- if(dist >= left && dist <= right) {
88
- float lDist = smoothstep(left, right, dist);
89
- return mix(u_colors[i], u_colors[i + 1], lDist);
90
- }
91
- }
92
- return u_colors[LAST_STOP];
93
- }
94
-
95
- void main() {
96
- vec4 color = texture2D(u_texture, v_textureCoords) * v_color;
97
-
98
- vec2 pixelPos = v_textureCoords * u_dimensions;
99
- float dist = dot(pixelPos - u_gradStart, u_gradVec) / u_magSq;
100
-
101
- vec4 colorOut = getGradientColor(dist);
102
- vec3 blendedRGB = mix(color.rgb, colorOut.rgb, clamp(colorOut.a, 0.0, 1.0));
103
- gl_FragColor = vec4(blendedRGB, color.a);
104
- }
105
- `;
106
- },
107
- };
108
- //# sourceMappingURL=LinearGradient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LinearGradient.js","sourceRoot":"","sources":["../../../src/shaders/LinearGradient.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { ShaderProps } from '@lightningjs/renderer';
2
- export interface LinearGradientProps {
3
- angle: number;
4
- stops: number[];
5
- colors: number[];
6
- }
7
- export declare const LinearGradientTemplate: {
8
- props: ShaderProps<LinearGradientProps>;
9
- };
@@ -1,23 +0,0 @@
1
- export const LinearGradientTemplate = {
2
- props: {
3
- angle: {
4
- default: 0,
5
- resolve(value) {
6
- return value;
7
- },
8
- },
9
- stops: {
10
- default: [0, 1],
11
- resolve(value) {
12
- return value;
13
- },
14
- },
15
- colors: {
16
- default: [0xff0000ff, 0x00ff00ff],
17
- resolve(value) {
18
- return value;
19
- },
20
- },
21
- },
22
- };
23
- //# sourceMappingURL=LinearGradientTemplate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LinearGradientTemplate.js","sourceRoot":"","sources":["../../../../src/shaders/templates/LinearGradientTemplate.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,KAAK,EAAE;QACL,KAAK,EAAE;YACL,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,KAAa;gBACnB,OAAO,KAAK,CAAC;YACf,CAAC;SACF;QACD,KAAK,EAAE;YACL,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACf,OAAO,CAAC,KAAe;gBACrB,OAAO,KAAK,CAAC;YACf,CAAC;SACF;QACD,MAAM,EAAE;YACN,OAAO,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;YACjC,OAAO,CAAC,KAAe;gBACrB,OAAO,KAAK,CAAC;YACf,CAAC;SACF;KACkC;CACtC,CAAC"}
@@ -1,25 +0,0 @@
1
- import type * as su from 'solid-js/universal/types/universal.js';
2
- import * as lng from '@lightningtv/core';
3
- import { SolidNode } from './types.js';
4
- declare module '@lightningtv/core' {
5
- interface ElementNode {
6
- /** @internal for managing series of insertions and deletions */
7
- _queueDelete?: number;
8
- preserve?: boolean;
9
- _childrenChunks?: NodeChildren[] | string[][];
10
- }
11
- }
12
- type NodeChildren = (lng.ElementNode | lng.ElementText)[];
13
- export declare const insert: su.Renderer<SolidNode>['insert'];
14
- export declare const insertNode: su.Renderer<SolidNode>['insertNode'];
15
- export declare const spread: su.Renderer<SolidNode>['spread'];
16
- export declare const setProp: su.Renderer<SolidNode>['setProp'];
17
- export declare const createElement: su.Renderer<SolidNode>['createElement'];
18
- export declare const createTextNode: su.Renderer<SolidNode>['createTextNode'];
19
- export declare const render: su.Renderer<SolidNode>['render'];
20
- export declare const mergeProps: su.Renderer<SolidNode>['mergeProps'];
21
- export declare const effect: su.Renderer<SolidNode>['effect'];
22
- export declare const memo: su.Renderer<SolidNode>['memo'];
23
- export declare const createComponent: su.Renderer<SolidNode>['createComponent'];
24
- export declare const use: su.Renderer<SolidNode>['use'];
25
- export {};
@@ -1,232 +0,0 @@
1
- import * as s from 'solid-js';
2
- import * as lng from '@lightningtv/core';
3
- Object.defineProperty(lng.ElementNode.prototype, 'preserve', {
4
- get() {
5
- return this._queueDelete === 0;
6
- },
7
- set(v) {
8
- this._queueDelete = v ? 0 : undefined;
9
- },
10
- });
11
- let elementDeleteQueue = [];
12
- function flushDeleteQueue() {
13
- for (let el of elementDeleteQueue) {
14
- if (Number(el._queueDelete) < 0) {
15
- el.destroy();
16
- }
17
- el._queueDelete = undefined;
18
- }
19
- elementDeleteQueue.length = 0;
20
- }
21
- function pushDeleteQueue(node, n) {
22
- if (node._queueDelete === undefined) {
23
- node._queueDelete = n;
24
- if (elementDeleteQueue.push(node) === 1) {
25
- queueMicrotask(flushDeleteQueue);
26
- }
27
- }
28
- else {
29
- node._queueDelete += n;
30
- }
31
- }
32
- function resolveNodeJSXChildren(jsx, out = []) {
33
- while (typeof jsx === 'function')
34
- jsx = jsx();
35
- if (Array.isArray(jsx)) {
36
- for (let i = 0; i < jsx.length; i++) {
37
- resolveNodeJSXChildren(jsx[i], out);
38
- }
39
- }
40
- else if (jsx instanceof lng.ElementNode) {
41
- out.push(jsx);
42
- }
43
- return out;
44
- }
45
- function resolveTextJSXChildren(jsx, out = []) {
46
- while (typeof jsx === 'function')
47
- jsx = jsx();
48
- if (Array.isArray(jsx)) {
49
- for (let i = 0; i < jsx.length; i++) {
50
- resolveTextJSXChildren(jsx[i], out);
51
- }
52
- }
53
- else if (typeof jsx === 'string' || typeof jsx === 'number') {
54
- out.push(jsx.toString());
55
- }
56
- return out;
57
- }
58
- function commitChunks(el) {
59
- if (lng.isElementText(el)) {
60
- let text = '';
61
- for (let chunk of el._childrenChunks) {
62
- text += chunk.join('');
63
- }
64
- el.text = text;
65
- }
66
- else {
67
- el.children = el._childrenChunks.flat();
68
- }
69
- }
70
- function commitChild(parent, child) {
71
- let prevParent = child.parent;
72
- child.parent = parent;
73
- if (parent.rendered)
74
- child.render(true);
75
- if (prevParent)
76
- pushDeleteQueue(child, 1);
77
- }
78
- function insertChunk(el, before) {
79
- let chunks = (el._childrenChunks ??= []);
80
- let chunk = [];
81
- if (before != null) {
82
- for (let i = 0; i < chunks.length; i++) {
83
- if (before === chunks[i][0]) {
84
- chunks.splice(i, 0, chunk);
85
- return chunk;
86
- }
87
- }
88
- }
89
- chunks.push(chunk);
90
- return chunk;
91
- }
92
- // Core renderer functions - adapted from solid-js/universal
93
- export const insert = (parent, accessor, before) => {
94
- /* <text> */
95
- if (lng.isElementText(parent)) {
96
- let chunk = insertChunk(parent, before);
97
- /* dynamic chunk */
98
- if (typeof accessor === 'function') {
99
- s.createRenderEffect(() => {
100
- chunk.length = 0;
101
- resolveTextJSXChildren(accessor(), chunk);
102
- commitChunks(parent);
103
- });
104
- }
105
- else {
106
- /* constant chunk */
107
- resolveTextJSXChildren(accessor, chunk);
108
- commitChunks(parent);
109
- }
110
- return chunk[0] || '';
111
- }
112
- // <view>
113
- else {
114
- let el = parent;
115
- let chunk = insertChunk(el, before);
116
- /* dynamic chunk */
117
- if (typeof accessor === 'function') {
118
- s.createRenderEffect(() => {
119
- let prev = chunk.slice();
120
- for (let i = 0; i < prev.length; i++) {
121
- prev[i].parent = undefined; // commitChild will set the parent again
122
- }
123
- chunk.length = 0;
124
- resolveNodeJSXChildren(accessor(), chunk);
125
- commitChunks(el);
126
- for (let i = 0; i < chunk.length; i++) {
127
- commitChild(el, chunk[i]);
128
- }
129
- /* Handle removed children */
130
- for (let i = 0; i < prev.length; i++) {
131
- let c = prev[i];
132
- if (c.parent !== el) {
133
- c.onRemove?.(c);
134
- if (el.requiresLayout()) {
135
- lng.addToLayoutQueue(el);
136
- }
137
- pushDeleteQueue(c, -1);
138
- }
139
- }
140
- });
141
- }
142
- else {
143
- /* constant chunk */
144
- resolveNodeJSXChildren(accessor, chunk);
145
- commitChunks(el);
146
- for (let i = 0; i < chunk.length; i++) {
147
- commitChild(el, chunk[i]);
148
- }
149
- }
150
- return chunk[0];
151
- }
152
- };
153
- export const insertNode = (parent, node, before) => {
154
- // <text>
155
- if (lng.isElementText(parent)) {
156
- let chunk = insertChunk(parent, before);
157
- resolveTextJSXChildren(node, chunk);
158
- commitChunks(parent);
159
- }
160
- // <view>
161
- else {
162
- let el = parent;
163
- let chunk = insertChunk(el, before);
164
- chunk.push(node);
165
- commitChunks(el);
166
- commitChild(el, node);
167
- }
168
- };
169
- export const spread = (node, accessor, skipChildren) => {
170
- /* Ref */
171
- if (typeof accessor === 'function') {
172
- s.createRenderEffect(() => {
173
- let { ref } = accessor();
174
- if (ref)
175
- ref(node);
176
- });
177
- }
178
- else if (typeof accessor.ref === 'function') {
179
- accessor.ref(node);
180
- }
181
- /* Children */
182
- if (!skipChildren) {
183
- if (typeof accessor === 'function') {
184
- insert(node, () => accessor().children);
185
- }
186
- else if ('children' in accessor) {
187
- insert(node, () => accessor.children);
188
- }
189
- }
190
- /* Rest */
191
- let prevProps = {};
192
- s.createRenderEffect(() => {
193
- let props = typeof accessor === 'function' ? accessor() : accessor;
194
- for (let prop in props) {
195
- if (prop === 'children' || prop === 'ref')
196
- continue;
197
- let value = props[prop];
198
- if (value === prevProps[prop])
199
- continue;
200
- node[prop] = value;
201
- prevProps[prop] = value;
202
- }
203
- });
204
- };
205
- export const setProp = (node, name, value) => {
206
- return (node[name] = value);
207
- };
208
- // Lightning TV specific renderer functions
209
- export const createElement = (name) => {
210
- return new lng.ElementNode(name);
211
- };
212
- export const createTextNode = (text) => {
213
- // A text node is just a string - not the <text> node
214
- // return { _type: lng.NodeType.Text, text };
215
- return text;
216
- };
217
- export const render = (code, element) => {
218
- let disposer;
219
- s.createRoot((dispose) => {
220
- disposer = dispose;
221
- insert(element, code());
222
- });
223
- return disposer;
224
- };
225
- export const mergeProps = s.mergeProps;
226
- export const effect = s.createRenderEffect;
227
- export const memo = s.createMemo;
228
- export const createComponent = s.createComponent;
229
- export const use = (fn, element, arg) => {
230
- return s.untrack(() => fn(element, arg));
231
- };
232
- //# sourceMappingURL=universal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"universal.js","sourceRoot":"","sources":["../../src/universal.ts"],"names":[],"mappings":"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"}