| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- import { vnode } from "./vnode";
- import * as is from "./is";
- export function addNS(data, children, sel) {
- data.ns = "http://www.w3.org/2000/svg";
- if (sel !== "foreignObject" && children !== undefined) {
- for (let i = 0; i < children.length; ++i) {
- const child = children[i];
- if (typeof child === "string")
- continue;
- const childData = child.data;
- if (childData !== undefined) {
- addNS(childData, child.children, child.sel);
- }
- }
- }
- }
- export function h(sel, b, c) {
- let data = {};
- let children;
- let text;
- let i;
- if (c !== undefined) {
- if (b !== null) {
- data = b;
- }
- if (is.array(c)) {
- children = c;
- }
- else if (is.primitive(c)) {
- text = c.toString();
- }
- else if (c && c.sel) {
- children = [c];
- }
- }
- else if (b !== undefined && b !== null) {
- if (is.array(b)) {
- children = b;
- }
- else if (is.primitive(b)) {
- text = b.toString();
- }
- else if (b && b.sel) {
- children = [b];
- }
- else {
- data = b;
- }
- }
- if (children !== undefined) {
- for (i = 0; i < children.length; ++i) {
- if (is.primitive(children[i]))
- children[i] = vnode(undefined, undefined, undefined, children[i], undefined);
- }
- }
- if (sel[0] === "s" &&
- sel[1] === "v" &&
- sel[2] === "g" &&
- (sel.length === 3 || sel[3] === "." || sel[3] === "#")) {
- addNS(data, children, sel);
- }
- return vnode(sel, data, children, text, undefined);
- }
- /**
- * @experimental
- */
- export function fragment(children) {
- let c;
- let text;
- if (is.array(children)) {
- c = children;
- }
- else if (is.primitive(c)) {
- text = children;
- }
- else if (c && c.sel) {
- c = [children];
- }
- if (c !== undefined) {
- for (let i = 0; i < c.length; ++i) {
- if (is.primitive(c[i]))
- c[i] = vnode(undefined, undefined, undefined, c[i], undefined);
- }
- }
- return vnode(undefined, {}, c, text, undefined);
- }
- //# sourceMappingURL=h.js.map
|