jsx-view
Version:
Minimal JSX for HTML DOM tightly integrated with RxJS. TypeScript definitions, and attributes can be assigned to observables.
27 lines • 929 B
JavaScript
import { flattenChildren, DOMSpecElement } from "./jsxSpec";
export function jsxDEV(elemName, props, key, isStaticChildren, source,
// `this`
self) {
const dev = { key, isStaticChildren, source, self };
if (typeof elemName === "string") {
// intrinsic elements like <div/> or <p/>
if (!props)
props = {};
const { children, ...givenProps } = props;
const fixChildren = flattenChildren(Array.isArray(children) ? children : [children]);
return new DOMDevSpecElement([elemName, givenProps, ...fixChildren], dev);
}
// custom elements like <MyComponent/>
return new DOMDevSpecElement([elemName, props], dev);
}
export class DOMDevSpecElement extends DOMSpecElement {
spec;
constructor(spec, dev) {
super(spec);
this.spec = spec;
if (dev != null) {
this._dev = dev;
}
}
}
//# sourceMappingURL=jsxDEV.js.map