valyrian.js 8.0.4 → 8.0.5

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/dist/index.js CHANGED
@@ -92,6 +92,7 @@ function hidrateDomToVnode(dom) {
92
92
  }
93
93
  const vnode = new Vnode(tag, props, children);
94
94
  vnode.dom = dom;
95
+ dom.vnode = vnode;
95
96
  vnode.isSVG = tag === "svg";
96
97
  return vnode;
97
98
  }
@@ -336,9 +337,9 @@ function eventListener(e) {
336
337
  let dom = e.target;
337
338
  const name = `on${e.type}`;
338
339
  while (dom) {
339
- const oldProps = dom.props;
340
- if (oldProps && oldProps[name]) {
341
- oldProps[name](e, dom);
340
+ const oldVnode = dom.vnode;
341
+ if (oldVnode && oldVnode.props[name]) {
342
+ oldVnode.props[name](e, oldVnode);
342
343
  if (!e.defaultPrevented) {
343
344
  update();
344
345
  }
@@ -376,6 +377,7 @@ function setAttribute(name, value, newVnode) {
376
377
  function updateAttributes(newVnode, oldProps) {
377
378
  const vnodeDom = newVnode.dom;
378
379
  const vnodeProps = newVnode.props;
380
+ vnodeDom.vnode = newVnode;
379
381
  if (oldProps) {
380
382
  for (const name in oldProps) {
381
383
  if (name in vnodeProps === false && !eventListenerNames.has(name) && !reservedProps.has(name)) {
@@ -404,24 +406,22 @@ function createElement(tag, isSVG) {
404
406
  }
405
407
  function flatTree(newVnode) {
406
408
  current.vnode = newVnode;
409
+ let i = 0;
410
+ const originalChildren = newVnode.children;
411
+ let children = originalChildren;
407
412
  if ("v-for" in newVnode.props) {
408
- const children2 = [];
413
+ children = [];
409
414
  const set = newVnode.props["v-for"];
410
415
  const l = set.length;
411
416
  const callback = newVnode.children[0];
417
+ if (typeof callback !== "function") {
418
+ console.warn("v-for directive must have a callback function as children");
419
+ return children;
420
+ }
412
421
  for (let i2 = 0; i2 < l; i2++) {
413
- const newChild = callback(set[i2], i2);
414
- if (newChild instanceof Vnode) {
415
- newChild.props = newChild.props || {};
416
- newChild.isSVG = newVnode.isSVG || newChild.tag === "svg";
417
- }
418
- children2[i2] = newChild;
422
+ children[i2] = callback(set[i2], i2);
419
423
  }
420
- return children2;
421
424
  }
422
- let i = 0;
423
- const originalChildren = newVnode.children;
424
- let children = originalChildren;
425
425
  while (i < children.length) {
426
426
  const newChild = children[i];
427
427
  if (newChild == null) {
@@ -466,7 +466,6 @@ function createNewElement(newChild, newVnode, oldChild) {
466
466
  }
467
467
  newChild.dom = dom;
468
468
  updateAttributes(newChild, null);
469
- newChild.dom.props = newChild.props;
470
469
  if ("v-text" in newChild.props) {
471
470
  newChild.dom.textContent = newChild.props["v-text"];
472
471
  return;
@@ -490,9 +489,8 @@ function patchKeyed(newVnode, children) {
490
489
  const oldKeyedList = {};
491
490
  const newKeyedList = {};
492
491
  for (let i = 0, l = oldTree.length; i < l; i++) {
493
- const oldProps = oldTree[i].props;
494
- if (oldProps) {
495
- oldKeyedList[oldProps.key] = i;
492
+ if ("vnode" in oldTree[i]) {
493
+ oldKeyedList[oldTree[i].vnode.props.key] = i;
496
494
  }
497
495
  if (i < children.length && children[i] instanceof Vnode) {
498
496
  newKeyedList[children[i].props.key] = i;
@@ -512,9 +510,8 @@ function patchKeyed(newVnode, children) {
512
510
  } else if (currentChild !== oldChild) {
513
511
  newVnode.dom.replaceChild(oldChild, currentChild);
514
512
  }
515
- if ("v-keep" in newChild.props === false || oldChild.props["v-keep"] !== newChild.props["v-keep"]) {
516
- updateAttributes(newChild, oldChild.props);
517
- oldChild.props = newChild.props;
513
+ if ("v-keep" in newChild.props === false || !oldChild.vnode || oldChild.props["v-keep"] !== newChild.props["v-keep"]) {
514
+ updateAttributes(newChild, oldChild.vnode.props);
518
515
  if ("v-text" in newChild.props) {
519
516
  if (oldChild.textContent != newChild.props["v-text"]) {
520
517
  oldChild.textContent = newChild.props["v-text"];
@@ -525,7 +522,7 @@ function patchKeyed(newVnode, children) {
525
522
  }
526
523
  }
527
524
  for (let i = children.length, l = childNodes.length; i < l; i++) {
528
- childNodes[i]?.remove();
525
+ childNodes[childNodes.length - 1]?.remove();
529
526
  }
530
527
  }
531
528
  function patch(newVnode) {
@@ -540,9 +537,9 @@ function patch(newVnode) {
540
537
  const oldDomChildren = dom.childNodes;
541
538
  const oldChildrenLength = oldDomChildren.length;
542
539
  if (oldChildrenLength > 0) {
543
- const firstOldProps = oldDomChildren[0].props;
540
+ const firstOldVnode = oldDomChildren[0].vnode;
544
541
  const firstVnode = children[0];
545
- if (firstOldProps && firstVnode instanceof Vnode && "key" in firstVnode.props && "key" in firstOldProps) {
542
+ if (firstOldVnode && firstVnode instanceof Vnode && "key" in firstVnode.props && "key" in firstOldVnode.props) {
546
543
  patchKeyed(newVnode, children);
547
544
  return;
548
545
  }
@@ -581,11 +578,11 @@ function patch(newVnode) {
581
578
  continue;
582
579
  }
583
580
  if ("v-keep" in newChild.props) {
584
- if (oldChild.props && oldChild.props["v-keep"] === newChild.props["v-keep"]) {
581
+ if (oldChild.vnode && oldChild.vnode.props["v-keep"] === newChild.props["v-keep"]) {
585
582
  continue;
586
583
  }
587
584
  const nextOldChild = oldDomChildren[i + 1];
588
- if (nextOldChild && nextOldChild.props && nextOldChild.props["v-keep"] === newChild.props["v-keep"]) {
585
+ if (nextOldChild && nextOldChild.vnode && nextOldChild.vnode.props["v-keep"] === newChild.props["v-keep"]) {
589
586
  oldChild.remove();
590
587
  continue;
591
588
  }
@@ -595,8 +592,7 @@ function patch(newVnode) {
595
592
  continue;
596
593
  }
597
594
  newChild.dom = oldChild;
598
- updateAttributes(newChild, oldChild.props || null);
599
- oldChild.props = newChild.props;
595
+ updateAttributes(newChild, oldChild.vnode ? oldChild.vnode.props : null);
600
596
  if ("v-text" in newChild.props) {
601
597
  if (newChild.dom.textContent != newChild.props["v-text"]) {
602
598
  newChild.dom.textContent = newChild.props["v-text"];
@@ -629,11 +625,13 @@ function update() {
629
625
  return "";
630
626
  }
631
627
  var debouncedUpdateTimeout;
632
- var clearDebouncedUpdateMethod = isNodeJs ? clearTimeout : cancelAnimationFrame;
633
- var setDebouncedUpdateMethod = isNodeJs ? () => setTimeout(update, 5) : () => requestAnimationFrame(update);
634
- function debouncedUpdate() {
635
- clearDebouncedUpdateMethod(debouncedUpdateTimeout);
636
- debouncedUpdateTimeout = setDebouncedUpdateMethod();
628
+ var debouncedUpdateMethod = isNodeJs ? update : () => requestAnimationFrame(update);
629
+ function debouncedUpdate(timeout = 42) {
630
+ if (current.event) {
631
+ current.event.preventDefault();
632
+ }
633
+ clearTimeout(debouncedUpdateTimeout);
634
+ debouncedUpdateTimeout = setTimeout(debouncedUpdateMethod, timeout);
637
635
  }
638
636
  function unmount() {
639
637
  if (mainVnode) {
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../lib/index.ts"],
4
- "sourcesContent": ["/* eslint-disable */\ndeclare global {\n var document: Document;\n namespace JSX {\n interface IntrinsicElements extends DefaultRecord {}\n type Element = ReturnType<\n typeof v | ((...args: any) => string | number | null | undefined | boolean | Promise<any>)\n >;\n type ComponentReturnType = string | number | null | undefined | boolean | Element | Element[];\n }\n}\n\ninterface DefaultRecord extends Record<string | number | symbol, any> {}\n\nexport interface Properties extends DefaultRecord {\n key?: string | number;\n}\n\nexport interface DomElement extends Element, DefaultRecord {}\n\nexport interface Component extends DefaultRecord {\n (props: Properties, children: any[]): Vnode | any;\n}\n\nexport interface POJOComponent extends DefaultRecord {\n view: Component;\n}\n\nexport type ValyrianComponent = Component | POJOComponent;\n\nexport interface VnodeComponentInterface extends Vnode {\n tag: ValyrianComponent;\n}\n\nexport interface Children extends Array<Vnode | VnodeComponentInterface | ValyrianComponent | any> {}\n\nexport interface Directive {\n (value: any, vnode: VnodeWithDom, oldProps: Properties | null): false | void | any;\n}\n\nexport const isNodeJs = Boolean(typeof process !== \"undefined\" && process.versions && process.versions.node);\n\nexport class Vnode {\n constructor(\n public tag: string | Component | POJOComponent,\n public props: null | Properties,\n public children: Children,\n public dom?: DomElement,\n public isSVG?: boolean\n ) {}\n}\n\nexport interface VnodeWithDom extends Vnode {\n tag: string;\n dom: DomElement;\n props: Properties;\n}\n\nexport const isPOJOComponent = (component: unknown): component is POJOComponent =>\n Boolean(component && typeof component === \"object\" && \"view\" in component);\n\nexport const isComponent = (component: unknown): component is Component =>\n Boolean(typeof component === \"function\" || isPOJOComponent(component));\nexport const isVnode = (object?: unknown): object is Vnode => object instanceof Vnode;\n\nexport const isVnodeComponent = (object?: unknown): object is VnodeComponentInterface => {\n return isVnode(object) && isComponent(object.tag);\n};\n\nexport function v(tagOrComponent: string | ValyrianComponent, props: Properties | null, ...children: Children) {\n return new Vnode(tagOrComponent, props, children);\n}\n\nv.fragment = (_: Properties, ...children: Children) => children;\n\nexport function hidrateDomToVnode(dom: any): VnodeWithDom | void {\n if (dom.nodeType === 3) {\n return dom.nodeValue;\n }\n\n if (dom.nodeType === 1) {\n const tag = dom.nodeName.toLowerCase();\n const props = {} as Properties;\n const children = [] as Children;\n\n for (let i = 0, l = dom.childNodes.length; i < l; i++) {\n const childDom = dom.childNodes[i];\n if (childDom.nodeType === 3) {\n children.push(childDom.nodeValue);\n } else if (childDom.nodeType === 1) {\n const childVnode = hidrateDomToVnode(childDom);\n children.push(childVnode);\n }\n }\n\n const attributes = dom.attributes;\n for (let i = 0, l = attributes.length; i < l; i++) {\n const attr = attributes[i];\n props[attr.nodeName] = attr.nodeValue;\n }\n\n const vnode = new Vnode(tag, props, children);\n vnode.dom = dom;\n vnode.isSVG = tag === \"svg\";\n return vnode as VnodeWithDom;\n }\n}\n\nexport function trust(htmlString: string) {\n const div = document.createElement(\"div\");\n div.innerHTML = htmlString.trim();\n return Array.from(div.childNodes).map(hidrateDomToVnode);\n}\n\nlet mainComponent: VnodeComponentInterface | null = null;\nlet mainVnode: VnodeWithDom | null = null;\nlet isMounted = false;\n\nexport const current = {\n vnode: null as Vnode | null,\n component: null as ValyrianComponent | null,\n event: null as Event | null\n};\n\nexport const reservedProps = new Set<string>([\n \"key\",\n \"state\",\n \"v-keep\",\n \"v-text\",\n \"v-if\",\n \"v-for\",\n \"v-show\",\n \"v-class\",\n \"v-html\",\n \"v-model\",\n \"v-create\",\n \"v-update\",\n \"v-cleanup\"\n]);\n\nconst onCleanupSet = new Set<Function>();\nconst onMountSet = new Set<Function>();\nconst onUpdateSet = new Set<Function>();\nconst onUnmountSet = new Set<Function>();\nexport const onMount = (callback: Function) => !isMounted && onMountSet.add(callback);\nexport const onUpdate = (callback: Function) => onUpdateSet.add(callback);\nexport const onCleanup = (callback: Function) => onCleanupSet.add(callback);\nexport const onUnmount = (callback: Function) => !isMounted && onUnmountSet.add(callback);\nconst callSet = (set: Set<Function>) => {\n for (const callback of set) {\n callback();\n }\n set.clear();\n};\n\nexport const directives: Record<string, Directive> = {\n \"v-if\": (value, vnode) => {\n if (!Boolean(value)) {\n const parentNode = vnode.dom?.parentNode;\n if (parentNode) {\n parentNode.replaceChild(document.createTextNode(\"\"), vnode.dom);\n }\n\n return false;\n }\n },\n\n \"v-show\": (value, vnode) => {\n const bool = Boolean(value);\n (\n vnode.dom as unknown as {\n style: { display: string };\n }\n ).style.display = bool ? \"\" : \"none\";\n },\n\n \"v-html\": (value, vnode) => {\n vnode.children = trust(value as string);\n },\n\n // The \"v-model\" directive binds the value of an input element to a model property\n \"v-model\": (model, vnode) => {\n // eslint-disable-next-line prefer-const\n if (\"name\" in vnode.props === false) {\n return;\n }\n\n let value;\n const property = vnode.props.name;\n let event = \"oninput\";\n\n // This function updates the model property when the input element's value changes\n let handler = (e: Event) => (model[property] = (e.target as DomElement & Record<string, any>).value);\n if (vnode.tag === \"input\") {\n // Depending on the type of input element, use a different handler function\n switch (vnode.props.type) {\n case \"checkbox\": {\n if (Array.isArray(model[property])) {\n // If the model property is an array, add or remove the value from the array when the checkbox is checked or unchecked\n handler = (e: Event) => {\n const val = (e.target as DomElement & Record<string, any>).value;\n const idx = model[property].indexOf(val);\n if (idx === -1) {\n model[property].push(val);\n } else {\n model[property].splice(idx, 1);\n }\n };\n // If the value is in the array, set the checkbox to be checked\n value = model[property].indexOf(vnode.dom.value) !== -1;\n } else if (\"value\" in vnode.props) {\n // If the input element has a \"value\" attribute, use it to determine the checked state\n handler = () => {\n if (model[property] === vnode.props.value) {\n model[property] = null;\n } else {\n model[property] = vnode.props.value;\n }\n };\n value = model[property] === vnode.props.value;\n } else {\n // If there is no \"value\" attribute, use a boolean value for the model property\n handler = () => (model[property] = !model[property]);\n value = model[property];\n }\n // Set the \"checked\" attribute on the input element\n // eslint-disable-next-line no-use-before-define\n sharedSetAttribute(\"checked\", value, vnode);\n break;\n }\n case \"radio\": {\n // If the element is a radio button, set the \"checked\" attribute based on the value of the model property\n // eslint-disable-next-line no-use-before-define\n sharedSetAttribute(\"checked\", model[property] === vnode.dom.value, vnode);\n break;\n }\n default: {\n // For all other input types, set the \"value\" attribute based on the value of the model property\n // eslint-disable-next-line no-use-before-define\n sharedSetAttribute(\"value\", model[property], vnode);\n }\n }\n } else if (vnode.tag === \"select\") {\n // If the element is a select element, use the \"click\" event by default\n event = \"onclick\";\n if (vnode.props.multiple) {\n // If the select element allows multiple selections, update the model property with an array of selected values\n handler = (e: Event & Record<string, any>) => {\n const val = (e.target as DomElement & Record<string, any>).value;\n if (e.ctrlKey) {\n // If the Ctrl key is pressed, add or remove the value from the array\n const idx = model[property].indexOf(val);\n if (idx === -1) {\n model[property].push(val);\n } else {\n model[property].splice(idx, 1);\n }\n } else {\n // If the Ctrl key is not pressed, set the model property to an array with the selected value\n model[property].splice(0, model[property].length);\n model[property].push(val);\n }\n };\n // Set the \"selected\" attribute on the options based on whether they are in the model property array\n vnode.children.forEach((child: VnodeWithDom) => {\n if (child.tag === \"option\") {\n const value = \"value\" in child.props ? child.props.value : child.children.join(\"\").trim();\n child.props.selected = model[property].indexOf(value) !== -1;\n }\n });\n } else {\n // If the select element does not allow multiple selections, set the \"selected\" attribute on the options based on the value of the model property\n vnode.children.forEach((child: VnodeWithDom) => {\n if (child.tag === \"option\") {\n const value = \"value\" in child.props ? child.props.value : child.children.join(\"\").trim();\n child.props.selected = value === model[property];\n }\n });\n }\n } else if (vnode.tag === \"textarea\") {\n // Set the textarea's content to the value of the model property\n vnode.children = [model[property]];\n }\n\n // We assume that the prev handler if any will not be changed by the user across patchs\n const prevHandler = vnode.props[event];\n\n // Set the event handler on the element\n // eslint-disable-next-line no-use-before-define\n sharedSetAttribute(\n event,\n (e: Event) => {\n handler(e);\n\n // If the previous handler is defined, call it after the model has been updated\n if (prevHandler) {\n prevHandler(e);\n }\n },\n vnode\n );\n },\n\n \"v-create\": (callback, vnode, oldProps) => {\n if (!oldProps) {\n const cleanup = callback(vnode);\n\n if (typeof cleanup === \"function\") {\n onCleanup(cleanup);\n }\n }\n },\n\n \"v-update\": (callback, vnode, oldProps) => {\n if (oldProps) {\n const cleanup = callback(vnode, oldProps);\n\n if (typeof cleanup === \"function\") {\n onCleanup(cleanup);\n }\n }\n },\n\n \"v-cleanup\": (callback, vnode) => {\n onCleanup(() => callback(vnode));\n },\n\n \"v-class\": (value, vnode) => {\n if (typeof value === \"string\") {\n vnode.dom.className = value;\n } else if (Array.isArray(value)) {\n vnode.dom.className = value.join(\" \");\n } else if (typeof value === \"object\") {\n const classList = vnode.dom.classList;\n for (const name in value) {\n const val = typeof value[name] === \"function\" ? (value[name] as Function)() : value[name];\n classList.toggle(name, val);\n }\n }\n },\n\n // Frequent used properties\n class(value, vnode) {\n if (vnode.dom.className !== value) {\n if (vnode.isSVG) {\n vnode.dom.setAttribute(\"class\", value);\n return;\n }\n vnode.dom.className = value;\n }\n },\n\n className(value, vnode) {\n directives.class(value, vnode, null);\n },\n\n id: (value, vnode) => {\n if (vnode.dom.id !== value) {\n if (vnode.isSVG) {\n vnode.dom.setAttribute(\"id\", value);\n return;\n }\n vnode.dom.id = value;\n }\n },\n\n style: (value, vnode) => {\n if (typeof value === \"string\") {\n if (vnode.isSVG) {\n vnode.dom.setAttribute(\"style\", value);\n return;\n }\n vnode.dom.style = value;\n } else if (typeof value === \"object\") {\n if (vnode.isSVG) {\n vnode.dom.setAttribute(\"style\", \"\");\n } else {\n vnode.dom.style = \"\";\n }\n const domStyle = vnode.dom.style;\n for (const name in value) {\n domStyle[name] = value[name];\n }\n }\n }\n};\n\nexport function directive(name: string, directive: Directive) {\n const directiveName = `v-${name}`;\n directives[directiveName] = directive;\n reservedProps.add(directiveName);\n}\n\nexport function setPropNameReserved(name: string) {\n reservedProps.add(name);\n}\n\nconst eventListenerNames = new Set<string>();\n\nfunction eventListener(e: Event) {\n current.event = e;\n let dom = e.target as DomElement;\n const name = `on${e.type}`;\n\n while (dom) {\n const oldProps = dom.props;\n if (oldProps && oldProps[name]) {\n oldProps[name](e, dom);\n\n if (!e.defaultPrevented) {\n // eslint-disable-next-line no-use-before-define\n update();\n }\n return;\n }\n dom = dom.parentNode as DomElement;\n }\n\n current.event = null;\n}\n\nfunction sharedSetAttribute(name: string, value: any, newVnode: VnodeWithDom): void | boolean {\n const newVnodeDom = newVnode.dom;\n if (typeof value === \"function\") {\n if (!eventListenerNames.has(name)) {\n // We attach the delegated event listener to the main vnode dom element, which is the root of the component\n (mainVnode as VnodeWithDom).dom.addEventListener(name.slice(2), eventListener);\n eventListenerNames.add(name);\n }\n return;\n }\n\n if (!newVnode.isSVG && name in newVnodeDom) {\n newVnodeDom[name] = value;\n return;\n }\n\n if (value === false) {\n newVnodeDom.removeAttribute(name);\n } else {\n newVnodeDom.setAttribute(name, value);\n }\n}\n\nexport function setAttribute(name: string, value: any, newVnode: VnodeWithDom): void {\n if (!reservedProps.has(name)) {\n newVnode.props[name] = value;\n sharedSetAttribute(name, value, newVnode);\n }\n}\n\nexport function updateAttributes(newVnode: VnodeWithDom, oldProps: Properties | null): void {\n const vnodeDom = newVnode.dom;\n const vnodeProps = newVnode.props;\n\n if (oldProps) {\n for (const name in oldProps) {\n if (name in vnodeProps === false && !eventListenerNames.has(name) && !reservedProps.has(name)) {\n if (!newVnode.isSVG && name in vnodeDom) {\n vnodeDom[name] = null;\n } else {\n vnodeDom.removeAttribute(name);\n }\n }\n }\n }\n\n for (const name in vnodeProps) {\n if (directives[name]) {\n if (directives[name](vnodeProps[name], newVnode, oldProps) === false) {\n break;\n }\n continue;\n }\n\n if (!reservedProps.has(name)) {\n sharedSetAttribute(name, vnodeProps[name], newVnode);\n }\n }\n}\n\nexport function createElement(tag: string, isSVG: boolean): DomElement {\n return isSVG\n ? document.createElementNS(\"http://www.w3.org/2000/svg\", tag)\n : (document.createElement(tag) as DomElement);\n}\n\nfunction flatTree(newVnode: VnodeWithDom) {\n current.vnode = newVnode;\n\n if (\"v-for\" in newVnode.props) {\n const children = [];\n const set = newVnode.props[\"v-for\"];\n const l = set.length;\n const callback = newVnode.children[0];\n\n for (let i = 0; i < l; i++) {\n const newChild = callback(set[i], i);\n if (newChild instanceof Vnode) {\n newChild.props = newChild.props || {};\n newChild.isSVG = newVnode.isSVG || newChild.tag === \"svg\";\n }\n children[i] = newChild;\n }\n\n return children;\n }\n\n let i = 0;\n const originalChildren = newVnode.children;\n let children = originalChildren;\n\n while (i < children.length) {\n const newChild = children[i];\n\n if (newChild == null) {\n if (children === originalChildren) {\n children = [...originalChildren];\n }\n children.splice(i, 1);\n continue;\n }\n\n if (Array.isArray(newChild)) {\n if (children === originalChildren) {\n children = [...originalChildren];\n }\n children.splice(i, 1, ...newChild);\n continue;\n }\n\n if (newChild instanceof Vnode) {\n newChild.props = newChild.props || {};\n newChild.isSVG = newVnode.isSVG || newChild.tag === \"svg\";\n\n if (typeof newChild.tag !== \"string\") {\n if (children === originalChildren) {\n children = [...originalChildren];\n }\n\n const component = (current.component = newChild.tag);\n\n children[i] = (isPOJOComponent(component) ? component.view : component).bind(component)(\n newChild.props,\n newChild.children\n );\n\n continue;\n }\n }\n\n i++;\n }\n\n return children;\n}\n\nfunction createNewElement(newChild: VnodeWithDom, newVnode: VnodeWithDom, oldChild: DomElement | null) {\n const dom = createElement(newChild.tag, newChild.isSVG as boolean);\n if (oldChild) {\n newVnode.dom.replaceChild(dom, oldChild);\n } else {\n newVnode.dom.appendChild(dom);\n }\n newChild.dom = dom;\n updateAttributes(newChild, null);\n newChild.dom.props = newChild.props;\n if (\"v-text\" in newChild.props) {\n newChild.dom.textContent = newChild.props[\"v-text\"];\n return;\n }\n\n const children = flatTree(newChild);\n if (children.length === 0) {\n newChild.dom.textContent = \"\";\n return;\n }\n\n for (let i = 0, l = children.length; i < l; i++) {\n if (children[i] instanceof Vnode === false) {\n newChild.dom.appendChild(document.createTextNode(children[i]));\n continue;\n }\n createNewElement(children[i], newChild, null);\n }\n}\n\nfunction patchKeyed(newVnode: VnodeWithDom, children: Children) {\n const oldTree = [...Array.from(newVnode.dom.childNodes)] as unknown as DomElement[];\n const childNodes = newVnode.dom.childNodes;\n const oldKeyedList: Record<string, number> = {};\n const newKeyedList: Record<string, number> = {};\n\n for (let i = 0, l = oldTree.length; i < l; i++) {\n const oldProps = oldTree[i].props;\n if (oldProps) {\n oldKeyedList[oldProps.key as string] = i;\n }\n\n if (i < children.length && children[i] instanceof Vnode) {\n newKeyedList[children[i].props.key as string] = i;\n }\n }\n\n for (let i = 0, l = children.length; i < l; i++) {\n const newChild = children[i];\n const oldChild = oldTree[oldKeyedList[newChild.props.key as string]];\n\n if (!oldChild) {\n createNewElement(newChild, newVnode, childNodes[i] as DomElement | null);\n continue;\n }\n\n newChild.dom = oldChild;\n const currentChild = childNodes[i];\n if (!currentChild) {\n newVnode.dom.appendChild(oldChild);\n } else if (currentChild !== oldChild) {\n newVnode.dom.replaceChild(oldChild, currentChild);\n }\n\n if (\"v-keep\" in newChild.props === false || oldChild.props[\"v-keep\"] !== newChild.props[\"v-keep\"]) {\n updateAttributes(newChild as VnodeWithDom, oldChild.props);\n oldChild.props = newChild.props;\n\n if (\"v-text\" in newChild.props) {\n // eslint-disable-next-line eqeqeq\n if (oldChild.textContent != newChild.props[\"v-text\"]) {\n oldChild.textContent = newChild.props[\"v-text\"];\n }\n continue;\n }\n // eslint-disable-next-line no-use-before-define\n patch(newChild as VnodeWithDom);\n }\n }\n\n for (let i = children.length, l = childNodes.length; i < l; i++) {\n childNodes[i]?.remove();\n }\n}\n\n// eslint-disable-next-line complexity\nfunction patch(newVnode: VnodeWithDom): void {\n const children = flatTree(newVnode);\n\n const dom = newVnode.dom;\n\n if (children.length === 0) {\n if (dom.childNodes.length) {\n dom.textContent = \"\";\n }\n return;\n }\n\n const oldDomChildren = dom.childNodes as unknown as DomElement[];\n const oldChildrenLength = oldDomChildren.length;\n if (oldChildrenLength > 0) {\n const firstOldProps = oldDomChildren[0].props;\n const firstVnode = children[0] as VnodeWithDom;\n if (firstOldProps && firstVnode instanceof Vnode && \"key\" in firstVnode.props && \"key\" in firstOldProps) {\n patchKeyed(newVnode, children);\n return;\n }\n }\n\n const childrenLength = children.length;\n if (oldChildrenLength === 0) {\n for (let i = 0; i < childrenLength; i++) {\n if (children[i] instanceof Vnode === false) {\n dom.appendChild(document.createTextNode(children[i]));\n continue;\n }\n createNewElement(children[i], newVnode, null);\n }\n return;\n }\n\n for (let i = 0; i < childrenLength; i++) {\n const newChild = children[i] as VnodeWithDom;\n const isText = newChild instanceof Vnode === false;\n const oldChild = oldDomChildren[i];\n\n if (!oldChild) {\n if (isText) {\n newVnode.dom.appendChild(document.createTextNode(newChild as unknown as string));\n continue;\n }\n\n createNewElement(newChild as VnodeWithDom, newVnode, null);\n continue;\n }\n\n if (isText) {\n if (oldChild.nodeType !== 3) {\n newVnode.dom.replaceChild(document.createTextNode(newChild as unknown as string), oldChild);\n continue;\n }\n\n // eslint-disable-next-line eqeqeq\n if (oldChild.nodeValue != (newChild as unknown as string)) {\n oldChild.nodeValue = newChild as unknown as string;\n }\n continue;\n }\n\n if (\"v-keep\" in newChild.props) {\n if (oldChild.props && oldChild.props[\"v-keep\"] === newChild.props[\"v-keep\"]) {\n continue;\n }\n\n const nextOldChild = oldDomChildren[i + 1];\n if (nextOldChild && nextOldChild.props && nextOldChild.props[\"v-keep\"] === newChild.props[\"v-keep\"]) {\n oldChild.remove();\n continue;\n }\n }\n\n if (newChild.tag !== oldChild.nodeName.toLowerCase()) {\n createNewElement(newChild, newVnode, oldChild);\n continue;\n }\n\n newChild.dom = oldChild;\n updateAttributes(newChild, oldChild.props || null);\n oldChild.props = newChild.props;\n if (\"v-text\" in newChild.props) {\n // eslint-disable-next-line eqeqeq\n if (newChild.dom.textContent != newChild.props[\"v-text\"]) {\n newChild.dom.textContent = newChild.props[\"v-text\"];\n }\n continue;\n }\n patch(newChild);\n }\n\n for (let i = childrenLength, l = oldDomChildren.length; i < l; i++) {\n oldDomChildren[i]?.remove();\n }\n}\n\nexport function updateVnode(vnode: VnodeWithDom): string | void {\n callSet(onCleanupSet);\n vnode.props = vnode.props || {};\n patch(vnode);\n callSet(isMounted ? onUpdateSet : onMountSet);\n isMounted = true;\n current.vnode = null;\n current.component = null;\n}\n\nexport function update(): string {\n if (mainVnode) {\n mainVnode.children = [mainComponent];\n updateVnode(mainVnode as VnodeWithDom);\n if (isNodeJs) {\n return mainVnode.dom.innerHTML;\n }\n }\n return \"\";\n}\n\nlet debouncedUpdateTimeout: any;\n\nconst clearDebouncedUpdateMethod = isNodeJs ? clearTimeout : cancelAnimationFrame;\nconst setDebouncedUpdateMethod = isNodeJs ? () => setTimeout(update, 5) : () => requestAnimationFrame(update);\n\nexport function debouncedUpdate() {\n clearDebouncedUpdateMethod(debouncedUpdateTimeout);\n debouncedUpdateTimeout = setDebouncedUpdateMethod();\n}\n\nexport function unmount() {\n if (mainVnode) {\n mainComponent = v(() => null, {}) as VnodeComponentInterface;\n const result = update();\n callSet(onUnmountSet);\n for (const name in eventListenerNames) {\n mainVnode.dom.removeEventListener(name.slice(2).toLowerCase(), eventListener);\n Reflect.deleteProperty(eventListenerNames, name);\n }\n\n mainComponent = null;\n mainVnode = null;\n isMounted = false;\n current.vnode = null;\n current.component = null;\n current.event = null;\n return result;\n }\n\n return \"\";\n}\n\nexport function mount(dom: string | DomElement, component: ValyrianComponent | VnodeComponentInterface | any) {\n const container =\n typeof dom === \"string\" ? (isNodeJs ? createElement(dom, dom === \"svg\") : document.querySelector(dom)) : dom;\n\n if (isComponent(component)) {\n mainComponent = v(component, {}, []) as VnodeComponentInterface;\n } else if (isVnodeComponent(component)) {\n mainComponent = component;\n } else {\n mainComponent = v(() => component, {}, []) as VnodeComponentInterface;\n }\n\n mainVnode = hidrateDomToVnode(container) as VnodeWithDom;\n return update();\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAwCO,IAAM,WAAW,QAAQ,OAAO,YAAY,eAAe,QAAQ,YAAY,QAAQ,SAAS,IAAI;AAEpG,IAAM,QAAN,MAAY;AAAA,EACjB,YACS,KACA,OACA,UACA,KACA,OACP;AALO;AACA;AACA;AACA;AACA;AAAA,EACN;AACL;AAQO,IAAM,kBAAkB,CAAC,cAC9B,QAAQ,aAAa,OAAO,cAAc,YAAY,UAAU,SAAS;AAEpE,IAAM,cAAc,CAAC,cAC1B,QAAQ,OAAO,cAAc,cAAc,gBAAgB,SAAS,CAAC;AAChE,IAAM,UAAU,CAAC,WAAsC,kBAAkB;AAEzE,IAAM,mBAAmB,CAAC,WAAwD;AACvF,SAAO,QAAQ,MAAM,KAAK,YAAY,OAAO,GAAG;AAClD;AAEO,SAAS,EAAE,gBAA4C,UAA6B,UAAoB;AAC7G,SAAO,IAAI,MAAM,gBAAgB,OAAO,QAAQ;AAClD;AAEA,EAAE,WAAW,CAAC,MAAkB,aAAuB;AAEhD,SAAS,kBAAkB,KAA+B;AAC/D,MAAI,IAAI,aAAa,GAAG;AACtB,WAAO,IAAI;AAAA,EACb;AAEA,MAAI,IAAI,aAAa,GAAG;AACtB,UAAM,MAAM,IAAI,SAAS,YAAY;AACrC,UAAM,QAAQ,CAAC;AACf,UAAM,WAAW,CAAC;AAElB,aAAS,IAAI,GAAG,IAAI,IAAI,WAAW,QAAQ,IAAI,GAAG,KAAK;AACrD,YAAM,WAAW,IAAI,WAAW,CAAC;AACjC,UAAI,SAAS,aAAa,GAAG;AAC3B,iBAAS,KAAK,SAAS,SAAS;AAAA,MAClC,WAAW,SAAS,aAAa,GAAG;AAClC,cAAM,aAAa,kBAAkB,QAAQ;AAC7C,iBAAS,KAAK,UAAU;AAAA,MAC1B;AAAA,IACF;AAEA,UAAM,aAAa,IAAI;AACvB,aAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,IAAI,GAAG,KAAK;AACjD,YAAM,OAAO,WAAW,CAAC;AACzB,YAAM,KAAK,QAAQ,IAAI,KAAK;AAAA,IAC9B;AAEA,UAAM,QAAQ,IAAI,MAAM,KAAK,OAAO,QAAQ;AAC5C,UAAM,MAAM;AACZ,UAAM,QAAQ,QAAQ;AACtB,WAAO;AAAA,EACT;AACF;AAEO,SAAS,MAAM,YAAoB;AACxC,QAAM,MAAM,SAAS,cAAc,KAAK;AACxC,MAAI,YAAY,WAAW,KAAK;AAChC,SAAO,MAAM,KAAK,IAAI,UAAU,EAAE,IAAI,iBAAiB;AACzD;AAEA,IAAI,gBAAgD;AACpD,IAAI,YAAiC;AACrC,IAAI,YAAY;AAET,IAAM,UAAU;AAAA,EACrB,OAAO;AAAA,EACP,WAAW;AAAA,EACX,OAAO;AACT;AAEO,IAAM,gBAAgB,oBAAI,IAAY;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAED,IAAM,eAAe,oBAAI,IAAc;AACvC,IAAM,aAAa,oBAAI,IAAc;AACrC,IAAM,cAAc,oBAAI,IAAc;AACtC,IAAM,eAAe,oBAAI,IAAc;AAChC,IAAM,UAAU,CAAC,aAAuB,CAAC,aAAa,WAAW,IAAI,QAAQ;AAC7E,IAAM,WAAW,CAAC,aAAuB,YAAY,IAAI,QAAQ;AACjE,IAAM,YAAY,CAAC,aAAuB,aAAa,IAAI,QAAQ;AACnE,IAAM,YAAY,CAAC,aAAuB,CAAC,aAAa,aAAa,IAAI,QAAQ;AACxF,IAAM,UAAU,CAAC,QAAuB;AACtC,aAAW,YAAY,KAAK;AAC1B,aAAS;AAAA,EACX;AACA,MAAI,MAAM;AACZ;AAEO,IAAM,aAAwC;AAAA,EACnD,QAAQ,CAAC,OAAO,UAAU;AACxB,QAAI,CAAC,QAAQ,KAAK,GAAG;AACnB,YAAM,aAAa,MAAM,KAAK;AAC9B,UAAI,YAAY;AACd,mBAAW,aAAa,SAAS,eAAe,EAAE,GAAG,MAAM,GAAG;AAAA,MAChE;AAEA,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,UAAU,CAAC,OAAO,UAAU;AAC1B,UAAM,OAAO,QAAQ,KAAK;AAC1B,IACE,MAAM,IAGN,MAAM,UAAU,OAAO,KAAK;AAAA,EAChC;AAAA,EAEA,UAAU,CAAC,OAAO,UAAU;AAC1B,UAAM,WAAW,MAAM,KAAe;AAAA,EACxC;AAAA;AAAA,EAGA,WAAW,CAAC,OAAO,UAAU;AAE3B,QAAI,UAAU,MAAM,UAAU,OAAO;AACnC;AAAA,IACF;AAEA,QAAI;AACJ,UAAM,WAAW,MAAM,MAAM;AAC7B,QAAI,QAAQ;AAGZ,QAAI,UAAU,CAAC,MAAc,MAAM,QAAQ,IAAK,EAAE,OAA4C;AAC9F,QAAI,MAAM,QAAQ,SAAS;AAEzB,cAAQ,MAAM,MAAM,MAAM;AAAA,QACxB,KAAK,YAAY;AACf,cAAI,MAAM,QAAQ,MAAM,QAAQ,CAAC,GAAG;AAElC,sBAAU,CAAC,MAAa;AACtB,oBAAM,MAAO,EAAE,OAA4C;AAC3D,oBAAM,MAAM,MAAM,QAAQ,EAAE,QAAQ,GAAG;AACvC,kBAAI,QAAQ,IAAI;AACd,sBAAM,QAAQ,EAAE,KAAK,GAAG;AAAA,cAC1B,OAAO;AACL,sBAAM,QAAQ,EAAE,OAAO,KAAK,CAAC;AAAA,cAC/B;AAAA,YACF;AAEA,oBAAQ,MAAM,QAAQ,EAAE,QAAQ,MAAM,IAAI,KAAK,MAAM;AAAA,UACvD,WAAW,WAAW,MAAM,OAAO;AAEjC,sBAAU,MAAM;AACd,kBAAI,MAAM,QAAQ,MAAM,MAAM,MAAM,OAAO;AACzC,sBAAM,QAAQ,IAAI;AAAA,cACpB,OAAO;AACL,sBAAM,QAAQ,IAAI,MAAM,MAAM;AAAA,cAChC;AAAA,YACF;AACA,oBAAQ,MAAM,QAAQ,MAAM,MAAM,MAAM;AAAA,UAC1C,OAAO;AAEL,sBAAU,MAAO,MAAM,QAAQ,IAAI,CAAC,MAAM,QAAQ;AAClD,oBAAQ,MAAM,QAAQ;AAAA,UACxB;AAGA,6BAAmB,WAAW,OAAO,KAAK;AAC1C;AAAA,QACF;AAAA,QACA,KAAK,SAAS;AAGZ,6BAAmB,WAAW,MAAM,QAAQ,MAAM,MAAM,IAAI,OAAO,KAAK;AACxE;AAAA,QACF;AAAA,QACA,SAAS;AAGP,6BAAmB,SAAS,MAAM,QAAQ,GAAG,KAAK;AAAA,QACpD;AAAA,MACF;AAAA,IACF,WAAW,MAAM,QAAQ,UAAU;AAEjC,cAAQ;AACR,UAAI,MAAM,MAAM,UAAU;AAExB,kBAAU,CAAC,MAAmC;AAC5C,gBAAM,MAAO,EAAE,OAA4C;AAC3D,cAAI,EAAE,SAAS;AAEb,kBAAM,MAAM,MAAM,QAAQ,EAAE,QAAQ,GAAG;AACvC,gBAAI,QAAQ,IAAI;AACd,oBAAM,QAAQ,EAAE,KAAK,GAAG;AAAA,YAC1B,OAAO;AACL,oBAAM,QAAQ,EAAE,OAAO,KAAK,CAAC;AAAA,YAC/B;AAAA,UACF,OAAO;AAEL,kBAAM,QAAQ,EAAE,OAAO,GAAG,MAAM,QAAQ,EAAE,MAAM;AAChD,kBAAM,QAAQ,EAAE,KAAK,GAAG;AAAA,UAC1B;AAAA,QACF;AAEA,cAAM,SAAS,QAAQ,CAAC,UAAwB;AAC9C,cAAI,MAAM,QAAQ,UAAU;AAC1B,kBAAMA,SAAQ,WAAW,MAAM,QAAQ,MAAM,MAAM,QAAQ,MAAM,SAAS,KAAK,EAAE,EAAE,KAAK;AACxF,kBAAM,MAAM,WAAW,MAAM,QAAQ,EAAE,QAAQA,MAAK,MAAM;AAAA,UAC5D;AAAA,QACF,CAAC;AAAA,MACH,OAAO;AAEL,cAAM,SAAS,QAAQ,CAAC,UAAwB;AAC9C,cAAI,MAAM,QAAQ,UAAU;AAC1B,kBAAMA,SAAQ,WAAW,MAAM,QAAQ,MAAM,MAAM,QAAQ,MAAM,SAAS,KAAK,EAAE,EAAE,KAAK;AACxF,kBAAM,MAAM,WAAWA,WAAU,MAAM,QAAQ;AAAA,UACjD;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF,WAAW,MAAM,QAAQ,YAAY;AAEnC,YAAM,WAAW,CAAC,MAAM,QAAQ,CAAC;AAAA,IACnC;AAGA,UAAM,cAAc,MAAM,MAAM,KAAK;AAIrC;AAAA,MACE;AAAA,MACA,CAAC,MAAa;AACZ,gBAAQ,CAAC;AAGT,YAAI,aAAa;AACf,sBAAY,CAAC;AAAA,QACf;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,YAAY,CAAC,UAAU,OAAO,aAAa;AACzC,QAAI,CAAC,UAAU;AACb,YAAM,UAAU,SAAS,KAAK;AAE9B,UAAI,OAAO,YAAY,YAAY;AACjC,kBAAU,OAAO;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AAAA,EAEA,YAAY,CAAC,UAAU,OAAO,aAAa;AACzC,QAAI,UAAU;AACZ,YAAM,UAAU,SAAS,OAAO,QAAQ;AAExC,UAAI,OAAO,YAAY,YAAY;AACjC,kBAAU,OAAO;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AAAA,EAEA,aAAa,CAAC,UAAU,UAAU;AAChC,cAAU,MAAM,SAAS,KAAK,CAAC;AAAA,EACjC;AAAA,EAEA,WAAW,CAAC,OAAO,UAAU;AAC3B,QAAI,OAAO,UAAU,UAAU;AAC7B,YAAM,IAAI,YAAY;AAAA,IACxB,WAAW,MAAM,QAAQ,KAAK,GAAG;AAC/B,YAAM,IAAI,YAAY,MAAM,KAAK,GAAG;AAAA,IACtC,WAAW,OAAO,UAAU,UAAU;AACpC,YAAM,YAAY,MAAM,IAAI;AAC5B,iBAAW,QAAQ,OAAO;AACxB,cAAM,MAAM,OAAO,MAAM,IAAI,MAAM,aAAc,MAAM,IAAI,EAAe,IAAI,MAAM,IAAI;AACxF,kBAAU,OAAO,MAAM,GAAG;AAAA,MAC5B;AAAA,IACF;AAAA,EACF;AAAA;AAAA,EAGA,MAAM,OAAO,OAAO;AAClB,QAAI,MAAM,IAAI,cAAc,OAAO;AACjC,UAAI,MAAM,OAAO;AACf,cAAM,IAAI,aAAa,SAAS,KAAK;AACrC;AAAA,MACF;AACA,YAAM,IAAI,YAAY;AAAA,IACxB;AAAA,EACF;AAAA,EAEA,UAAU,OAAO,OAAO;AACtB,eAAW,MAAM,OAAO,OAAO,IAAI;AAAA,EACrC;AAAA,EAEA,IAAI,CAAC,OAAO,UAAU;AACpB,QAAI,MAAM,IAAI,OAAO,OAAO;AAC1B,UAAI,MAAM,OAAO;AACf,cAAM,IAAI,aAAa,MAAM,KAAK;AAClC;AAAA,MACF;AACA,YAAM,IAAI,KAAK;AAAA,IACjB;AAAA,EACF;AAAA,EAEA,OAAO,CAAC,OAAO,UAAU;AACvB,QAAI,OAAO,UAAU,UAAU;AAC7B,UAAI,MAAM,OAAO;AACf,cAAM,IAAI,aAAa,SAAS,KAAK;AACrC;AAAA,MACF;AACA,YAAM,IAAI,QAAQ;AAAA,IACpB,WAAW,OAAO,UAAU,UAAU;AACpC,UAAI,MAAM,OAAO;AACf,cAAM,IAAI,aAAa,SAAS,EAAE;AAAA,MACpC,OAAO;AACL,cAAM,IAAI,QAAQ;AAAA,MACpB;AACA,YAAM,WAAW,MAAM,IAAI;AAC3B,iBAAW,QAAQ,OAAO;AACxB,iBAAS,IAAI,IAAI,MAAM,IAAI;AAAA,MAC7B;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,UAAU,MAAcC,YAAsB;AAC5D,QAAM,gBAAgB,KAAK,IAAI;AAC/B,aAAW,aAAa,IAAIA;AAC5B,gBAAc,IAAI,aAAa;AACjC;AAEO,SAAS,oBAAoB,MAAc;AAChD,gBAAc,IAAI,IAAI;AACxB;AAEA,IAAM,qBAAqB,oBAAI,IAAY;AAE3C,SAAS,cAAc,GAAU;AAC/B,UAAQ,QAAQ;AAChB,MAAI,MAAM,EAAE;AACZ,QAAM,OAAO,KAAK,EAAE,IAAI;AAExB,SAAO,KAAK;AACV,UAAM,WAAW,IAAI;AACrB,QAAI,YAAY,SAAS,IAAI,GAAG;AAC9B,eAAS,IAAI,EAAE,GAAG,GAAG;AAErB,UAAI,CAAC,EAAE,kBAAkB;AAEvB,eAAO;AAAA,MACT;AACA;AAAA,IACF;AACA,UAAM,IAAI;AAAA,EACZ;AAEA,UAAQ,QAAQ;AAClB;AAEA,SAAS,mBAAmB,MAAc,OAAY,UAAwC;AAC5F,QAAM,cAAc,SAAS;AAC7B,MAAI,OAAO,UAAU,YAAY;AAC/B,QAAI,CAAC,mBAAmB,IAAI,IAAI,GAAG;AAEjC,MAAC,UAA2B,IAAI,iBAAiB,KAAK,MAAM,CAAC,GAAG,aAAa;AAC7E,yBAAmB,IAAI,IAAI;AAAA,IAC7B;AACA;AAAA,EACF;AAEA,MAAI,CAAC,SAAS,SAAS,QAAQ,aAAa;AAC1C,gBAAY,IAAI,IAAI;AACpB;AAAA,EACF;AAEA,MAAI,UAAU,OAAO;AACnB,gBAAY,gBAAgB,IAAI;AAAA,EAClC,OAAO;AACL,gBAAY,aAAa,MAAM,KAAK;AAAA,EACtC;AACF;AAEO,SAAS,aAAa,MAAc,OAAY,UAA8B;AACnF,MAAI,CAAC,cAAc,IAAI,IAAI,GAAG;AAC5B,aAAS,MAAM,IAAI,IAAI;AACvB,uBAAmB,MAAM,OAAO,QAAQ;AAAA,EAC1C;AACF;AAEO,SAAS,iBAAiB,UAAwB,UAAmC;AAC1F,QAAM,WAAW,SAAS;AAC1B,QAAM,aAAa,SAAS;AAE5B,MAAI,UAAU;AACZ,eAAW,QAAQ,UAAU;AAC3B,UAAI,QAAQ,eAAe,SAAS,CAAC,mBAAmB,IAAI,IAAI,KAAK,CAAC,cAAc,IAAI,IAAI,GAAG;AAC7F,YAAI,CAAC,SAAS,SAAS,QAAQ,UAAU;AACvC,mBAAS,IAAI,IAAI;AAAA,QACnB,OAAO;AACL,mBAAS,gBAAgB,IAAI;AAAA,QAC/B;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,aAAW,QAAQ,YAAY;AAC7B,QAAI,WAAW,IAAI,GAAG;AACpB,UAAI,WAAW,IAAI,EAAE,WAAW,IAAI,GAAG,UAAU,QAAQ,MAAM,OAAO;AACpE;AAAA,MACF;AACA;AAAA,IACF;AAEA,QAAI,CAAC,cAAc,IAAI,IAAI,GAAG;AAC5B,yBAAmB,MAAM,WAAW,IAAI,GAAG,QAAQ;AAAA,IACrD;AAAA,EACF;AACF;AAEO,SAAS,cAAc,KAAa,OAA4B;AACrE,SAAO,QACH,SAAS,gBAAgB,8BAA8B,GAAG,IACzD,SAAS,cAAc,GAAG;AACjC;AAEA,SAAS,SAAS,UAAwB;AACxC,UAAQ,QAAQ;AAEhB,MAAI,WAAW,SAAS,OAAO;AAC7B,UAAMC,YAAW,CAAC;AAClB,UAAM,MAAM,SAAS,MAAM,OAAO;AAClC,UAAM,IAAI,IAAI;AACd,UAAM,WAAW,SAAS,SAAS,CAAC;AAEpC,aAASC,KAAI,GAAGA,KAAI,GAAGA,MAAK;AAC1B,YAAM,WAAW,SAAS,IAAIA,EAAC,GAAGA,EAAC;AACnC,UAAI,oBAAoB,OAAO;AAC7B,iBAAS,QAAQ,SAAS,SAAS,CAAC;AACpC,iBAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ;AAAA,MACtD;AACA,MAAAD,UAASC,EAAC,IAAI;AAAA,IAChB;AAEA,WAAOD;AAAA,EACT;AAEA,MAAI,IAAI;AACR,QAAM,mBAAmB,SAAS;AAClC,MAAI,WAAW;AAEf,SAAO,IAAI,SAAS,QAAQ;AAC1B,UAAM,WAAW,SAAS,CAAC;AAE3B,QAAI,YAAY,MAAM;AACpB,UAAI,aAAa,kBAAkB;AACjC,mBAAW,CAAC,GAAG,gBAAgB;AAAA,MACjC;AACA,eAAS,OAAO,GAAG,CAAC;AACpB;AAAA,IACF;AAEA,QAAI,MAAM,QAAQ,QAAQ,GAAG;AAC3B,UAAI,aAAa,kBAAkB;AACjC,mBAAW,CAAC,GAAG,gBAAgB;AAAA,MACjC;AACA,eAAS,OAAO,GAAG,GAAG,GAAG,QAAQ;AACjC;AAAA,IACF;AAEA,QAAI,oBAAoB,OAAO;AAC7B,eAAS,QAAQ,SAAS,SAAS,CAAC;AACpC,eAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ;AAEpD,UAAI,OAAO,SAAS,QAAQ,UAAU;AACpC,YAAI,aAAa,kBAAkB;AACjC,qBAAW,CAAC,GAAG,gBAAgB;AAAA,QACjC;AAEA,cAAM,YAAa,QAAQ,YAAY,SAAS;AAEhD,iBAAS,CAAC,KAAK,gBAAgB,SAAS,IAAI,UAAU,OAAO,WAAW,KAAK,SAAS;AAAA,UACpF,SAAS;AAAA,UACT,SAAS;AAAA,QACX;AAEA;AAAA,MACF;AAAA,IACF;AAEA;AAAA,EACF;AAEA,SAAO;AACT;AAEA,SAAS,iBAAiB,UAAwB,UAAwB,UAA6B;AACrG,QAAM,MAAM,cAAc,SAAS,KAAK,SAAS,KAAgB;AACjE,MAAI,UAAU;AACZ,aAAS,IAAI,aAAa,KAAK,QAAQ;AAAA,EACzC,OAAO;AACL,aAAS,IAAI,YAAY,GAAG;AAAA,EAC9B;AACA,WAAS,MAAM;AACf,mBAAiB,UAAU,IAAI;AAC/B,WAAS,IAAI,QAAQ,SAAS;AAC9B,MAAI,YAAY,SAAS,OAAO;AAC9B,aAAS,IAAI,cAAc,SAAS,MAAM,QAAQ;AAClD;AAAA,EACF;AAEA,QAAM,WAAW,SAAS,QAAQ;AAClC,MAAI,SAAS,WAAW,GAAG;AACzB,aAAS,IAAI,cAAc;AAC3B;AAAA,EACF;AAEA,WAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,IAAI,GAAG,KAAK;AAC/C,QAAI,SAAS,CAAC,aAAa,UAAU,OAAO;AAC1C,eAAS,IAAI,YAAY,SAAS,eAAe,SAAS,CAAC,CAAC,CAAC;AAC7D;AAAA,IACF;AACA,qBAAiB,SAAS,CAAC,GAAG,UAAU,IAAI;AAAA,EAC9C;AACF;AAEA,SAAS,WAAW,UAAwB,UAAoB;AAC9D,QAAM,UAAU,CAAC,GAAG,MAAM,KAAK,SAAS,IAAI,UAAU,CAAC;AACvD,QAAM,aAAa,SAAS,IAAI;AAChC,QAAM,eAAuC,CAAC;AAC9C,QAAM,eAAuC,CAAC;AAE9C,WAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,IAAI,GAAG,KAAK;AAC9C,UAAM,WAAW,QAAQ,CAAC,EAAE;AAC5B,QAAI,UAAU;AACZ,mBAAa,SAAS,GAAa,IAAI;AAAA,IACzC;AAEA,QAAI,IAAI,SAAS,UAAU,SAAS,CAAC,aAAa,OAAO;AACvD,mBAAa,SAAS,CAAC,EAAE,MAAM,GAAa,IAAI;AAAA,IAClD;AAAA,EACF;AAEA,WAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,IAAI,GAAG,KAAK;AAC/C,UAAM,WAAW,SAAS,CAAC;AAC3B,UAAM,WAAW,QAAQ,aAAa,SAAS,MAAM,GAAa,CAAC;AAEnE,QAAI,CAAC,UAAU;AACb,uBAAiB,UAAU,UAAU,WAAW,CAAC,CAAsB;AACvE;AAAA,IACF;AAEA,aAAS,MAAM;AACf,UAAM,eAAe,WAAW,CAAC;AACjC,QAAI,CAAC,cAAc;AACjB,eAAS,IAAI,YAAY,QAAQ;AAAA,IACnC,WAAW,iBAAiB,UAAU;AACpC,eAAS,IAAI,aAAa,UAAU,YAAY;AAAA,IAClD;AAEA,QAAI,YAAY,SAAS,UAAU,SAAS,SAAS,MAAM,QAAQ,MAAM,SAAS,MAAM,QAAQ,GAAG;AACjG,uBAAiB,UAA0B,SAAS,KAAK;AACzD,eAAS,QAAQ,SAAS;AAE1B,UAAI,YAAY,SAAS,OAAO;AAE9B,YAAI,SAAS,eAAe,SAAS,MAAM,QAAQ,GAAG;AACpD,mBAAS,cAAc,SAAS,MAAM,QAAQ;AAAA,QAChD;AACA;AAAA,MACF;AAEA,YAAM,QAAwB;AAAA,IAChC;AAAA,EACF;AAEA,WAAS,IAAI,SAAS,QAAQ,IAAI,WAAW,QAAQ,IAAI,GAAG,KAAK;AAC/D,eAAW,CAAC,GAAG,OAAO;AAAA,EACxB;AACF;AAGA,SAAS,MAAM,UAA8B;AAC3C,QAAM,WAAW,SAAS,QAAQ;AAElC,QAAM,MAAM,SAAS;AAErB,MAAI,SAAS,WAAW,GAAG;AACzB,QAAI,IAAI,WAAW,QAAQ;AACzB,UAAI,cAAc;AAAA,IACpB;AACA;AAAA,EACF;AAEA,QAAM,iBAAiB,IAAI;AAC3B,QAAM,oBAAoB,eAAe;AACzC,MAAI,oBAAoB,GAAG;AACzB,UAAM,gBAAgB,eAAe,CAAC,EAAE;AACxC,UAAM,aAAa,SAAS,CAAC;AAC7B,QAAI,iBAAiB,sBAAsB,SAAS,SAAS,WAAW,SAAS,SAAS,eAAe;AACvG,iBAAW,UAAU,QAAQ;AAC7B;AAAA,IACF;AAAA,EACF;AAEA,QAAM,iBAAiB,SAAS;AAChC,MAAI,sBAAsB,GAAG;AAC3B,aAAS,IAAI,GAAG,IAAI,gBAAgB,KAAK;AACvC,UAAI,SAAS,CAAC,aAAa,UAAU,OAAO;AAC1C,YAAI,YAAY,SAAS,eAAe,SAAS,CAAC,CAAC,CAAC;AACpD;AAAA,MACF;AACA,uBAAiB,SAAS,CAAC,GAAG,UAAU,IAAI;AAAA,IAC9C;AACA;AAAA,EACF;AAEA,WAAS,IAAI,GAAG,IAAI,gBAAgB,KAAK;AACvC,UAAM,WAAW,SAAS,CAAC;AAC3B,UAAM,SAAS,oBAAoB,UAAU;AAC7C,UAAM,WAAW,eAAe,CAAC;AAEjC,QAAI,CAAC,UAAU;AACb,UAAI,QAAQ;AACV,iBAAS,IAAI,YAAY,SAAS,eAAe,QAA6B,CAAC;AAC/E;AAAA,MACF;AAEA,uBAAiB,UAA0B,UAAU,IAAI;AACzD;AAAA,IACF;AAEA,QAAI,QAAQ;AACV,UAAI,SAAS,aAAa,GAAG;AAC3B,iBAAS,IAAI,aAAa,SAAS,eAAe,QAA6B,GAAG,QAAQ;AAC1F;AAAA,MACF;AAGA,UAAI,SAAS,aAAc,UAAgC;AACzD,iBAAS,YAAY;AAAA,MACvB;AACA;AAAA,IACF;AAEA,QAAI,YAAY,SAAS,OAAO;AAC9B,UAAI,SAAS,SAAS,SAAS,MAAM,QAAQ,MAAM,SAAS,MAAM,QAAQ,GAAG;AAC3E;AAAA,MACF;AAEA,YAAM,eAAe,eAAe,IAAI,CAAC;AACzC,UAAI,gBAAgB,aAAa,SAAS,aAAa,MAAM,QAAQ,MAAM,SAAS,MAAM,QAAQ,GAAG;AACnG,iBAAS,OAAO;AAChB;AAAA,MACF;AAAA,IACF;AAEA,QAAI,SAAS,QAAQ,SAAS,SAAS,YAAY,GAAG;AACpD,uBAAiB,UAAU,UAAU,QAAQ;AAC7C;AAAA,IACF;AAEA,aAAS,MAAM;AACf,qBAAiB,UAAU,SAAS,SAAS,IAAI;AACjD,aAAS,QAAQ,SAAS;AAC1B,QAAI,YAAY,SAAS,OAAO;AAE9B,UAAI,SAAS,IAAI,eAAe,SAAS,MAAM,QAAQ,GAAG;AACxD,iBAAS,IAAI,cAAc,SAAS,MAAM,QAAQ;AAAA,MACpD;AACA;AAAA,IACF;AACA,UAAM,QAAQ;AAAA,EAChB;AAEA,WAAS,IAAI,gBAAgB,IAAI,eAAe,QAAQ,IAAI,GAAG,KAAK;AAClE,mBAAe,CAAC,GAAG,OAAO;AAAA,EAC5B;AACF;AAEO,SAAS,YAAY,OAAoC;AAC9D,UAAQ,YAAY;AACpB,QAAM,QAAQ,MAAM,SAAS,CAAC;AAC9B,QAAM,KAAK;AACX,UAAQ,YAAY,cAAc,UAAU;AAC5C,cAAY;AACZ,UAAQ,QAAQ;AAChB,UAAQ,YAAY;AACtB;AAEO,SAAS,SAAiB;AAC/B,MAAI,WAAW;AACb,cAAU,WAAW,CAAC,aAAa;AACnC,gBAAY,SAAyB;AACrC,QAAI,UAAU;AACZ,aAAO,UAAU,IAAI;AAAA,IACvB;AAAA,EACF;AACA,SAAO;AACT;AAEA,IAAI;AAEJ,IAAM,6BAA6B,WAAW,eAAe;AAC7D,IAAM,2BAA2B,WAAW,MAAM,WAAW,QAAQ,CAAC,IAAI,MAAM,sBAAsB,MAAM;AAErG,SAAS,kBAAkB;AAChC,6BAA2B,sBAAsB;AACjD,2BAAyB,yBAAyB;AACpD;AAEO,SAAS,UAAU;AACxB,MAAI,WAAW;AACb,oBAAgB,EAAE,MAAM,MAAM,CAAC,CAAC;AAChC,UAAM,SAAS,OAAO;AACtB,YAAQ,YAAY;AACpB,eAAW,QAAQ,oBAAoB;AACrC,gBAAU,IAAI,oBAAoB,KAAK,MAAM,CAAC,EAAE,YAAY,GAAG,aAAa;AAC5E,cAAQ,eAAe,oBAAoB,IAAI;AAAA,IACjD;AAEA,oBAAgB;AAChB,gBAAY;AACZ,gBAAY;AACZ,YAAQ,QAAQ;AAChB,YAAQ,YAAY;AACpB,YAAQ,QAAQ;AAChB,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEO,SAAS,MAAM,KAA0B,WAA8D;AAC5G,QAAM,YACJ,OAAO,QAAQ,WAAY,WAAW,cAAc,KAAK,QAAQ,KAAK,IAAI,SAAS,cAAc,GAAG,IAAK;AAE3G,MAAI,YAAY,SAAS,GAAG;AAC1B,oBAAgB,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;AAAA,EACrC,WAAW,iBAAiB,SAAS,GAAG;AACtC,oBAAgB;AAAA,EAClB,OAAO;AACL,oBAAgB,EAAE,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;AAAA,EAC3C;AAEA,cAAY,kBAAkB,SAAS;AACvC,SAAO,OAAO;AAChB;",
6
- "names": ["value", "directive", "children", "i"]
4
+ "sourcesContent": ["/* eslint-disable */\ndeclare global {\n var document: Document;\n namespace JSX {\n interface IntrinsicElements extends DefaultRecord {}\n type Element = ReturnType<\n typeof v | ((...args: any) => string | number | null | undefined | boolean | Promise<any>)\n >;\n type ComponentReturnType = string | number | null | undefined | boolean | Element | Element[];\n }\n}\n\ninterface DefaultRecord extends Record<string | number | symbol, any> {}\n\nexport interface Properties extends DefaultRecord {\n key?: string | number;\n}\n\nexport interface DomElement extends Element, DefaultRecord {}\n\nexport interface Component extends DefaultRecord {\n (props: Properties, children: any[]): Vnode | any;\n}\n\nexport interface POJOComponent extends DefaultRecord {\n view: Component;\n}\n\nexport type ValyrianComponent = Component | POJOComponent;\n\nexport interface VnodeComponentInterface extends Vnode {\n tag: ValyrianComponent;\n}\n\nexport interface Children extends Array<Vnode | VnodeComponentInterface | ValyrianComponent | any> {}\n\nexport interface Directive {\n (value: any, vnode: VnodeWithDom, oldProps: Properties | null): false | void | any;\n}\n\nexport const isNodeJs = Boolean(typeof process !== \"undefined\" && process.versions && process.versions.node);\n\nexport class Vnode {\n constructor(\n public tag: string | Component | POJOComponent,\n public props: null | Properties,\n public children: Children,\n public dom?: DomElement,\n public isSVG?: boolean\n ) {}\n}\n\nexport interface VnodeWithDom extends Vnode {\n tag: string;\n dom: DomElement;\n props: Properties;\n}\n\nexport const isPOJOComponent = (component: unknown): component is POJOComponent =>\n Boolean(component && typeof component === \"object\" && \"view\" in component);\n\nexport const isComponent = (component: unknown): component is Component =>\n Boolean(typeof component === \"function\" || isPOJOComponent(component));\nexport const isVnode = (object?: unknown): object is Vnode => object instanceof Vnode;\n\nexport const isVnodeComponent = (object?: unknown): object is VnodeComponentInterface => {\n return isVnode(object) && isComponent(object.tag);\n};\n\nexport function v(tagOrComponent: string | ValyrianComponent, props: Properties | null, ...children: Children) {\n return new Vnode(tagOrComponent, props, children);\n}\n\nv.fragment = (_: Properties, ...children: Children) => children;\n\nexport function hidrateDomToVnode(dom: any): VnodeWithDom | void {\n if (dom.nodeType === 3) {\n return dom.nodeValue;\n }\n\n if (dom.nodeType === 1) {\n const tag = dom.nodeName.toLowerCase();\n const props = {} as Properties;\n const children = [] as Children;\n\n for (let i = 0, l = dom.childNodes.length; i < l; i++) {\n const childDom = dom.childNodes[i];\n if (childDom.nodeType === 3) {\n children.push(childDom.nodeValue);\n } else if (childDom.nodeType === 1) {\n const childVnode = hidrateDomToVnode(childDom);\n children.push(childVnode);\n }\n }\n\n const attributes = dom.attributes;\n for (let i = 0, l = attributes.length; i < l; i++) {\n const attr = attributes[i];\n props[attr.nodeName] = attr.nodeValue;\n }\n\n const vnode = new Vnode(tag, props, children);\n vnode.dom = dom;\n dom.vnode = vnode;\n vnode.isSVG = tag === \"svg\";\n return vnode as VnodeWithDom;\n }\n}\n\nexport function trust(htmlString: string) {\n const div = document.createElement(\"div\");\n div.innerHTML = htmlString.trim();\n return Array.from(div.childNodes).map(hidrateDomToVnode);\n}\n\nlet mainComponent: VnodeComponentInterface | null = null;\nlet mainVnode: VnodeWithDom | null = null;\nlet isMounted = false;\n\nexport const current = {\n vnode: null as Vnode | null,\n component: null as ValyrianComponent | null,\n event: null as Event | null\n};\n\nexport const reservedProps = new Set<string>([\n \"key\",\n \"state\",\n \"v-keep\",\n \"v-text\",\n \"v-if\",\n \"v-for\",\n \"v-show\",\n \"v-class\",\n \"v-html\",\n \"v-model\",\n \"v-create\",\n \"v-update\",\n \"v-cleanup\"\n]);\n\nconst onCleanupSet = new Set<Function>();\nconst onMountSet = new Set<Function>();\nconst onUpdateSet = new Set<Function>();\nconst onUnmountSet = new Set<Function>();\nexport const onMount = (callback: Function) => !isMounted && onMountSet.add(callback);\nexport const onUpdate = (callback: Function) => onUpdateSet.add(callback);\nexport const onCleanup = (callback: Function) => onCleanupSet.add(callback);\nexport const onUnmount = (callback: Function) => !isMounted && onUnmountSet.add(callback);\nconst callSet = (set: Set<Function>) => {\n for (const callback of set) {\n callback();\n }\n set.clear();\n};\n\nexport const directives: Record<string, Directive> = {\n \"v-if\": (value, vnode) => {\n if (!Boolean(value)) {\n const parentNode = vnode.dom?.parentNode;\n if (parentNode) {\n parentNode.replaceChild(document.createTextNode(\"\"), vnode.dom);\n }\n\n return false;\n }\n },\n\n \"v-show\": (value, vnode) => {\n const bool = Boolean(value);\n (\n vnode.dom as unknown as {\n style: { display: string };\n }\n ).style.display = bool ? \"\" : \"none\";\n },\n\n \"v-html\": (value, vnode) => {\n vnode.children = trust(value as string);\n },\n\n // The \"v-model\" directive binds the value of an input element to a model property\n \"v-model\": (model, vnode) => {\n // eslint-disable-next-line prefer-const\n if (\"name\" in vnode.props === false) {\n return;\n }\n\n let value;\n const property = vnode.props.name;\n let event = \"oninput\";\n\n // This function updates the model property when the input element's value changes\n let handler = (e: Event) => (model[property] = (e.target as DomElement & Record<string, any>).value);\n if (vnode.tag === \"input\") {\n // Depending on the type of input element, use a different handler function\n switch (vnode.props.type) {\n case \"checkbox\": {\n if (Array.isArray(model[property])) {\n // If the model property is an array, add or remove the value from the array when the checkbox is checked or unchecked\n handler = (e: Event) => {\n const val = (e.target as DomElement & Record<string, any>).value;\n const idx = model[property].indexOf(val);\n if (idx === -1) {\n model[property].push(val);\n } else {\n model[property].splice(idx, 1);\n }\n };\n // If the value is in the array, set the checkbox to be checked\n value = model[property].indexOf(vnode.dom.value) !== -1;\n } else if (\"value\" in vnode.props) {\n // If the input element has a \"value\" attribute, use it to determine the checked state\n handler = () => {\n if (model[property] === vnode.props.value) {\n model[property] = null;\n } else {\n model[property] = vnode.props.value;\n }\n };\n value = model[property] === vnode.props.value;\n } else {\n // If there is no \"value\" attribute, use a boolean value for the model property\n handler = () => (model[property] = !model[property]);\n value = model[property];\n }\n // Set the \"checked\" attribute on the input element\n // eslint-disable-next-line no-use-before-define\n sharedSetAttribute(\"checked\", value, vnode);\n break;\n }\n case \"radio\": {\n // If the element is a radio button, set the \"checked\" attribute based on the value of the model property\n // eslint-disable-next-line no-use-before-define\n sharedSetAttribute(\"checked\", model[property] === vnode.dom.value, vnode);\n break;\n }\n default: {\n // For all other input types, set the \"value\" attribute based on the value of the model property\n // eslint-disable-next-line no-use-before-define\n sharedSetAttribute(\"value\", model[property], vnode);\n }\n }\n } else if (vnode.tag === \"select\") {\n // If the element is a select element, use the \"click\" event by default\n event = \"onclick\";\n if (vnode.props.multiple) {\n // If the select element allows multiple selections, update the model property with an array of selected values\n handler = (e: Event & Record<string, any>) => {\n const val = (e.target as DomElement & Record<string, any>).value;\n if (e.ctrlKey) {\n // If the Ctrl key is pressed, add or remove the value from the array\n const idx = model[property].indexOf(val);\n if (idx === -1) {\n model[property].push(val);\n } else {\n model[property].splice(idx, 1);\n }\n } else {\n // If the Ctrl key is not pressed, set the model property to an array with the selected value\n model[property].splice(0, model[property].length);\n model[property].push(val);\n }\n };\n // Set the \"selected\" attribute on the options based on whether they are in the model property array\n vnode.children.forEach((child: VnodeWithDom) => {\n if (child.tag === \"option\") {\n const value = \"value\" in child.props ? child.props.value : child.children.join(\"\").trim();\n child.props.selected = model[property].indexOf(value) !== -1;\n }\n });\n } else {\n // If the select element does not allow multiple selections, set the \"selected\" attribute on the options based on the value of the model property\n vnode.children.forEach((child: VnodeWithDom) => {\n if (child.tag === \"option\") {\n const value = \"value\" in child.props ? child.props.value : child.children.join(\"\").trim();\n child.props.selected = value === model[property];\n }\n });\n }\n } else if (vnode.tag === \"textarea\") {\n // Set the textarea's content to the value of the model property\n vnode.children = [model[property]];\n }\n\n // We assume that the prev handler if any will not be changed by the user across patchs\n const prevHandler = vnode.props[event];\n\n // Set the event handler on the element\n // eslint-disable-next-line no-use-before-define\n sharedSetAttribute(\n event,\n (e: Event) => {\n handler(e);\n\n // If the previous handler is defined, call it after the model has been updated\n if (prevHandler) {\n prevHandler(e);\n }\n },\n vnode\n );\n },\n\n \"v-create\": (callback, vnode, oldProps) => {\n if (!oldProps) {\n const cleanup = callback(vnode);\n\n if (typeof cleanup === \"function\") {\n onCleanup(cleanup);\n }\n }\n },\n\n \"v-update\": (callback, vnode, oldProps) => {\n if (oldProps) {\n const cleanup = callback(vnode, oldProps);\n\n if (typeof cleanup === \"function\") {\n onCleanup(cleanup);\n }\n }\n },\n\n \"v-cleanup\": (callback, vnode) => {\n onCleanup(() => callback(vnode));\n },\n\n \"v-class\": (value, vnode) => {\n if (typeof value === \"string\") {\n vnode.dom.className = value;\n } else if (Array.isArray(value)) {\n vnode.dom.className = value.join(\" \");\n } else if (typeof value === \"object\") {\n const classList = vnode.dom.classList;\n for (const name in value) {\n const val = typeof value[name] === \"function\" ? (value[name] as Function)() : value[name];\n classList.toggle(name, val);\n }\n }\n },\n\n // Frequent used properties\n class(value, vnode) {\n if (vnode.dom.className !== value) {\n if (vnode.isSVG) {\n vnode.dom.setAttribute(\"class\", value);\n return;\n }\n vnode.dom.className = value;\n }\n },\n\n className(value, vnode) {\n directives.class(value, vnode, null);\n },\n\n id: (value, vnode) => {\n if (vnode.dom.id !== value) {\n if (vnode.isSVG) {\n vnode.dom.setAttribute(\"id\", value);\n return;\n }\n vnode.dom.id = value;\n }\n },\n\n style: (value, vnode) => {\n if (typeof value === \"string\") {\n if (vnode.isSVG) {\n vnode.dom.setAttribute(\"style\", value);\n return;\n }\n vnode.dom.style = value;\n } else if (typeof value === \"object\") {\n if (vnode.isSVG) {\n vnode.dom.setAttribute(\"style\", \"\");\n } else {\n vnode.dom.style = \"\";\n }\n const domStyle = vnode.dom.style;\n for (const name in value) {\n domStyle[name] = value[name];\n }\n }\n }\n};\n\nexport function directive(name: string, directive: Directive) {\n const directiveName = `v-${name}`;\n directives[directiveName] = directive;\n reservedProps.add(directiveName);\n}\n\nexport function setPropNameReserved(name: string) {\n reservedProps.add(name);\n}\n\nconst eventListenerNames = new Set<string>();\n\nfunction eventListener(e: Event) {\n current.event = e;\n let dom = e.target as DomElement;\n const name = `on${e.type}`;\n\n while (dom) {\n const oldVnode = dom.vnode as VnodeWithDom;\n if (oldVnode && oldVnode.props[name]) {\n oldVnode.props[name](e, oldVnode);\n\n if (!e.defaultPrevented) {\n // eslint-disable-next-line no-use-before-define\n update();\n }\n return;\n }\n dom = dom.parentNode as DomElement;\n }\n\n current.event = null;\n}\n\nfunction sharedSetAttribute(name: string, value: any, newVnode: VnodeWithDom): void | boolean {\n const newVnodeDom = newVnode.dom;\n if (typeof value === \"function\") {\n if (!eventListenerNames.has(name)) {\n // We attach the delegated event listener to the main vnode dom element, which is the root of the component\n (mainVnode as VnodeWithDom).dom.addEventListener(name.slice(2), eventListener);\n eventListenerNames.add(name);\n }\n return;\n }\n\n if (!newVnode.isSVG && name in newVnodeDom) {\n newVnodeDom[name] = value;\n return;\n }\n\n if (value === false) {\n newVnodeDom.removeAttribute(name);\n } else {\n newVnodeDom.setAttribute(name, value);\n }\n}\n\nexport function setAttribute(name: string, value: any, newVnode: VnodeWithDom): void {\n if (!reservedProps.has(name)) {\n newVnode.props[name] = value;\n sharedSetAttribute(name, value, newVnode);\n }\n}\n\nexport function updateAttributes(newVnode: VnodeWithDom, oldProps: Properties | null): void {\n const vnodeDom = newVnode.dom;\n const vnodeProps = newVnode.props;\n vnodeDom.vnode = newVnode;\n\n if (oldProps) {\n for (const name in oldProps) {\n if (name in vnodeProps === false && !eventListenerNames.has(name) && !reservedProps.has(name)) {\n if (!newVnode.isSVG && name in vnodeDom) {\n vnodeDom[name] = null;\n } else {\n vnodeDom.removeAttribute(name);\n }\n }\n }\n }\n\n for (const name in vnodeProps) {\n if (directives[name]) {\n if (directives[name](vnodeProps[name], newVnode, oldProps) === false) {\n break;\n }\n continue;\n }\n\n if (!reservedProps.has(name)) {\n sharedSetAttribute(name, vnodeProps[name], newVnode);\n }\n }\n}\n\nexport function createElement(tag: string, isSVG: boolean): DomElement {\n return isSVG\n ? document.createElementNS(\"http://www.w3.org/2000/svg\", tag)\n : (document.createElement(tag) as DomElement);\n}\n\nfunction flatTree(newVnode: VnodeWithDom) {\n current.vnode = newVnode;\n\n let i = 0;\n const originalChildren = newVnode.children;\n let children = originalChildren;\n\n if (\"v-for\" in newVnode.props) {\n children = [];\n const set = newVnode.props[\"v-for\"];\n const l = set.length;\n const callback = newVnode.children[0];\n\n if (typeof callback !== \"function\") {\n console.warn(\"v-for directive must have a callback function as children\");\n return children;\n }\n\n for (let i = 0; i < l; i++) {\n children[i] = callback(set[i], i);\n }\n }\n\n while (i < children.length) {\n const newChild = children[i];\n\n if (newChild == null) {\n if (children === originalChildren) {\n children = [...originalChildren];\n }\n children.splice(i, 1);\n continue;\n }\n\n if (Array.isArray(newChild)) {\n if (children === originalChildren) {\n children = [...originalChildren];\n }\n children.splice(i, 1, ...newChild);\n continue;\n }\n\n if (newChild instanceof Vnode) {\n newChild.props = newChild.props || {};\n newChild.isSVG = newVnode.isSVG || newChild.tag === \"svg\";\n\n if (typeof newChild.tag !== \"string\") {\n if (children === originalChildren) {\n children = [...originalChildren];\n }\n\n const component = (current.component = newChild.tag);\n\n children[i] = (isPOJOComponent(component) ? component.view : component).bind(component)(\n newChild.props,\n newChild.children\n );\n\n continue;\n }\n }\n\n i++;\n }\n\n return children;\n}\n\nfunction createNewElement(newChild: VnodeWithDom, newVnode: VnodeWithDom, oldChild: DomElement | null) {\n const dom = createElement(newChild.tag, newChild.isSVG as boolean);\n if (oldChild) {\n newVnode.dom.replaceChild(dom, oldChild);\n } else {\n newVnode.dom.appendChild(dom);\n }\n newChild.dom = dom;\n updateAttributes(newChild, null);\n if (\"v-text\" in newChild.props) {\n newChild.dom.textContent = newChild.props[\"v-text\"];\n return;\n }\n\n const children = flatTree(newChild);\n if (children.length === 0) {\n newChild.dom.textContent = \"\";\n return;\n }\n\n for (let i = 0, l = children.length; i < l; i++) {\n if (children[i] instanceof Vnode === false) {\n newChild.dom.appendChild(document.createTextNode(children[i]));\n continue;\n }\n createNewElement(children[i], newChild, null);\n }\n}\n\nfunction patchKeyed(newVnode: VnodeWithDom, children: Children) {\n const oldTree = [...Array.from(newVnode.dom.childNodes)] as unknown as DomElement[];\n const childNodes = newVnode.dom.childNodes;\n const oldKeyedList: Record<string, number> = {};\n const newKeyedList: Record<string, number> = {};\n\n for (let i = 0, l = oldTree.length; i < l; i++) {\n if (\"vnode\" in oldTree[i]) {\n oldKeyedList[oldTree[i].vnode.props.key as string] = i;\n }\n\n if (i < children.length && children[i] instanceof Vnode) {\n newKeyedList[children[i].props.key as string] = i;\n }\n }\n\n for (let i = 0, l = children.length; i < l; i++) {\n const newChild = children[i];\n const oldChild = oldTree[oldKeyedList[newChild.props.key as string]];\n\n if (!oldChild) {\n createNewElement(newChild, newVnode, childNodes[i] as DomElement | null);\n continue;\n }\n\n newChild.dom = oldChild;\n const currentChild = childNodes[i];\n if (!currentChild) {\n newVnode.dom.appendChild(oldChild);\n } else if (currentChild !== oldChild) {\n newVnode.dom.replaceChild(oldChild, currentChild);\n }\n\n if (\n \"v-keep\" in newChild.props === false ||\n !oldChild.vnode ||\n oldChild.props[\"v-keep\"] !== newChild.props[\"v-keep\"]\n ) {\n updateAttributes(newChild as VnodeWithDom, oldChild.vnode.props);\n\n if (\"v-text\" in newChild.props) {\n // eslint-disable-next-line eqeqeq\n if (oldChild.textContent != newChild.props[\"v-text\"]) {\n oldChild.textContent = newChild.props[\"v-text\"];\n }\n continue;\n }\n // eslint-disable-next-line no-use-before-define\n patch(newChild as VnodeWithDom);\n }\n }\n\n for (let i = children.length, l = childNodes.length; i < l; i++) {\n childNodes[childNodes.length - 1]?.remove();\n }\n}\n\n// eslint-disable-next-line complexity\nfunction patch(newVnode: VnodeWithDom): void {\n const children = flatTree(newVnode);\n\n const dom = newVnode.dom;\n\n if (children.length === 0) {\n if (dom.childNodes.length) {\n dom.textContent = \"\";\n }\n return;\n }\n\n const oldDomChildren = dom.childNodes as unknown as DomElement[];\n const oldChildrenLength = oldDomChildren.length;\n if (oldChildrenLength > 0) {\n const firstOldVnode = oldDomChildren[0].vnode;\n const firstVnode = children[0] as VnodeWithDom;\n if (firstOldVnode && firstVnode instanceof Vnode && \"key\" in firstVnode.props && \"key\" in firstOldVnode.props) {\n patchKeyed(newVnode, children);\n return;\n }\n }\n\n const childrenLength = children.length;\n if (oldChildrenLength === 0) {\n for (let i = 0; i < childrenLength; i++) {\n if (children[i] instanceof Vnode === false) {\n dom.appendChild(document.createTextNode(children[i]));\n continue;\n }\n createNewElement(children[i], newVnode, null);\n }\n return;\n }\n\n for (let i = 0; i < childrenLength; i++) {\n const newChild = children[i] as VnodeWithDom;\n const isText = newChild instanceof Vnode === false;\n const oldChild = oldDomChildren[i];\n\n if (!oldChild) {\n if (isText) {\n newVnode.dom.appendChild(document.createTextNode(newChild as unknown as string));\n continue;\n }\n\n createNewElement(newChild as VnodeWithDom, newVnode, null);\n continue;\n }\n\n if (isText) {\n if (oldChild.nodeType !== 3) {\n newVnode.dom.replaceChild(document.createTextNode(newChild as unknown as string), oldChild);\n continue;\n }\n\n // eslint-disable-next-line eqeqeq\n if (oldChild.nodeValue != (newChild as unknown as string)) {\n oldChild.nodeValue = newChild as unknown as string;\n }\n continue;\n }\n\n if (\"v-keep\" in newChild.props) {\n if (oldChild.vnode && oldChild.vnode.props[\"v-keep\"] === newChild.props[\"v-keep\"]) {\n continue;\n }\n\n const nextOldChild = oldDomChildren[i + 1];\n if (nextOldChild && nextOldChild.vnode && nextOldChild.vnode.props[\"v-keep\"] === newChild.props[\"v-keep\"]) {\n oldChild.remove();\n continue;\n }\n }\n\n if (newChild.tag !== oldChild.nodeName.toLowerCase()) {\n createNewElement(newChild, newVnode, oldChild);\n continue;\n }\n\n newChild.dom = oldChild;\n updateAttributes(newChild, oldChild.vnode ? oldChild.vnode.props : null);\n if (\"v-text\" in newChild.props) {\n // eslint-disable-next-line eqeqeq\n if (newChild.dom.textContent != newChild.props[\"v-text\"]) {\n newChild.dom.textContent = newChild.props[\"v-text\"];\n }\n continue;\n }\n patch(newChild);\n }\n\n for (let i = childrenLength, l = oldDomChildren.length; i < l; i++) {\n oldDomChildren[i]?.remove();\n }\n}\n\nexport function updateVnode(vnode: VnodeWithDom): string | void {\n callSet(onCleanupSet);\n vnode.props = vnode.props || {};\n patch(vnode);\n callSet(isMounted ? onUpdateSet : onMountSet);\n isMounted = true;\n current.vnode = null;\n current.component = null;\n}\n\nexport function update(): string {\n if (mainVnode) {\n mainVnode.children = [mainComponent];\n updateVnode(mainVnode as VnodeWithDom);\n if (isNodeJs) {\n return mainVnode.dom.innerHTML;\n }\n }\n return \"\";\n}\n\nlet debouncedUpdateTimeout: any;\nconst debouncedUpdateMethod = isNodeJs ? update : () => requestAnimationFrame(update);\n\nexport function debouncedUpdate(timeout = 42) {\n if (current.event) {\n current.event.preventDefault();\n }\n clearTimeout(debouncedUpdateTimeout);\n debouncedUpdateTimeout = setTimeout(debouncedUpdateMethod, timeout);\n}\n\nexport function unmount() {\n if (mainVnode) {\n mainComponent = v(() => null, {}) as VnodeComponentInterface;\n const result = update();\n callSet(onUnmountSet);\n for (const name in eventListenerNames) {\n mainVnode.dom.removeEventListener(name.slice(2).toLowerCase(), eventListener);\n Reflect.deleteProperty(eventListenerNames, name);\n }\n\n mainComponent = null;\n mainVnode = null;\n isMounted = false;\n current.vnode = null;\n current.component = null;\n current.event = null;\n return result;\n }\n\n return \"\";\n}\n\nexport function mount(dom: string | DomElement, component: ValyrianComponent | VnodeComponentInterface | any) {\n const container =\n typeof dom === \"string\" ? (isNodeJs ? createElement(dom, dom === \"svg\") : document.querySelector(dom)) : dom;\n\n if (isComponent(component)) {\n mainComponent = v(component, {}, []) as VnodeComponentInterface;\n } else if (isVnodeComponent(component)) {\n mainComponent = component;\n } else {\n mainComponent = v(() => component, {}, []) as VnodeComponentInterface;\n }\n\n mainVnode = hidrateDomToVnode(container) as VnodeWithDom;\n return update();\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["value", "directive", "i"]
7
7
  }
package/dist/index.min.js CHANGED
@@ -1 +1 @@
1
- (()=>{var e=Boolean("undefined"!=typeof process&&process.versions&&process.versions.node),t=class{constructor(e,t,o,n,s){this.tag=e,this.props=t,this.children=o,this.dom=n,this.isSVG=s}},o=e=>Boolean(e&&"object"==typeof e&&"view"in e),n=e=>Boolean("function"==typeof e||o(e)),s=e=>e instanceof t,r=e=>s(e)&&n(e.tag);function i(e,o,...n){return new t(e,o,n)}function p(e){if(3===e.nodeType)return e.nodeValue;if(1===e.nodeType){const o=e.nodeName.toLowerCase(),n={},s=[];for(let t=0,o=e.childNodes.length;t<o;t++){const o=e.childNodes[t];if(3===o.nodeType)s.push(o.nodeValue);else if(1===o.nodeType){const e=p(o);s.push(e)}}const r=e.attributes;for(let e=0,t=r.length;e<t;e++){const t=r[e];n[t.nodeName]=t.nodeValue}const i=new t(o,n,s);return i.dom=e,i.isSVG="svg"===o,i}}function l(e){const t=document.createElement("div");return t.innerHTML=e.trim(),Array.from(t.childNodes).map(p)}i.fragment=(e,...t)=>t;var c=null,d=null,a=!1,u={vnode:null,component:null,event:null},f=new Set(["key","state","v-keep","v-text","v-if","v-for","v-show","v-class","v-html","v-model","v-create","v-update","v-cleanup"]),m=new Set,v=new Set,h=new Set,g=new Set,y=e=>m.add(e),x=e=>{for(const t of e)t();e.clear()},N={"v-if":(e,t)=>{if(!Boolean(e)){const e=t.dom?.parentNode;return e&&e.replaceChild(document.createTextNode(""),t.dom),!1}},"v-show":(e,t)=>{const o=Boolean(e);t.dom.style.display=o?"":"none"},"v-html":(e,t)=>{t.children=l(e)},"v-model":(e,t)=>{if("name"in t.props==!1)return;let o;const n=t.props.name;let s="oninput",r=t=>e[n]=t.target.value;if("input"===t.tag)switch(t.props.type){case"checkbox":Array.isArray(e[n])?(r=t=>{const o=t.target.value,s=e[n].indexOf(o);-1===s?e[n].push(o):e[n].splice(s,1)},o=-1!==e[n].indexOf(t.dom.value)):"value"in t.props?(r=()=>{e[n]===t.props.value?e[n]=null:e[n]=t.props.value},o=e[n]===t.props.value):(r=()=>e[n]=!e[n],o=e[n]),S("checked",o,t);break;case"radio":S("checked",e[n]===t.dom.value,t);break;default:S("value",e[n],t)}else"select"===t.tag?(s="onclick",t.props.multiple?(r=t=>{const o=t.target.value;if(t.ctrlKey){const t=e[n].indexOf(o);-1===t?e[n].push(o):e[n].splice(t,1)}else e[n].splice(0,e[n].length),e[n].push(o)},t.children.forEach(t=>{if("option"===t.tag){const o="value"in t.props?t.props.value:t.children.join("").trim();t.props.selected=-1!==e[n].indexOf(o)}})):t.children.forEach(t=>{if("option"===t.tag){const o="value"in t.props?t.props.value:t.children.join("").trim();t.props.selected=o===e[n]}})):"textarea"===t.tag&&(t.children=[e[n]]);const i=t.props[s];S(s,e=>{r(e),i&&i(e)},t)},"v-create":(e,t,o)=>{if(!o){const o=e(t);"function"==typeof o&&y(o)}},"v-update":(e,t,o)=>{if(o){const n=e(t,o);"function"==typeof n&&y(n)}},"v-cleanup":(e,t)=>{y(()=>e(t))},"v-class":(e,t)=>{if("string"==typeof e)t.dom.className=e;else if(Array.isArray(e))t.dom.className=e.join(" ");else if("object"==typeof e){const o=t.dom.classList;for(const t in e){const n="function"==typeof e[t]?e[t]():e[t];o.toggle(t,n)}}},class(e,t){if(t.dom.className!==e){if(t.isSVG)return void t.dom.setAttribute("class",e);t.dom.className=e}},className(e,t){N.class(e,t,null)},id:(e,t)=>{if(t.dom.id!==e){if(t.isSVG)return void t.dom.setAttribute("id",e);t.dom.id=e}},style:(e,t)=>{if("string"==typeof e){if(t.isSVG)return void t.dom.setAttribute("style",e);t.dom.style=e}else if("object"==typeof e){t.isSVG?t.dom.setAttribute("style",""):t.dom.style="";const o=t.dom.style;for(const t in e)o[t]=e[t]}}};var V,C=new Set;function k(e){u.event=e;let t=e.target;const o=`on${e.type}`;for(;t;){const n=t.props;if(n&&n[o])return n[o](e,t),void(e.defaultPrevented||L());t=t.parentNode}u.event=null}function S(e,t,o){const n=o.dom;"function"!=typeof t?o.isSVG||!(e in n)?!1===t?n.removeAttribute(e):n.setAttribute(e,t):n[e]=t:C.has(e)||(d.dom.addEventListener(e.slice(2),k),C.add(e))}function w(e,t){const o=e.dom,n=e.props;if(t)for(const s in t)s in n!=!1||C.has(s)||f.has(s)||(!e.isSVG&&s in o?o[s]=null:o.removeAttribute(s));for(const o in n)if(N[o]){if(!1===N[o](n[o],e,t))break}else f.has(o)||S(o,n[o],e)}function b(e,t){return t?document.createElementNS("http://www.w3.org/2000/svg",e):document.createElement(e)}function A(e){if(u.vnode=e,"v-for"in e.props){const o=[],n=e.props["v-for"],s=n.length,r=e.children[0];for(let i=0;i<s;i++){const s=r(n[i],i);s instanceof t&&(s.props=s.props||{},s.isSVG=e.isSVG||"svg"===s.tag),o[i]=s}return o}let n=0;const s=e.children;let r=s;for(;n<r.length;){const i=r[n];if(null!=i)if(Array.isArray(i))r===s&&(r=[...s]),r.splice(n,1,...i);else if(i instanceof t&&(i.props=i.props||{},i.isSVG=e.isSVG||"svg"===i.tag,"string"!=typeof i.tag)){r===s&&(r=[...s]);const e=u.component=i.tag;r[n]=(o(e)?e.view:e).bind(e)(i.props,i.children)}else n++;else r===s&&(r=[...s]),r.splice(n,1)}return r}function T(e,o,n){const s=b(e.tag,e.isSVG);if(n?o.dom.replaceChild(s,n):o.dom.appendChild(s),e.dom=s,w(e,null),e.dom.props=e.props,"v-text"in e.props)return void(e.dom.textContent=e.props["v-text"]);const r=A(e);if(0!==r.length)for(let o=0,n=r.length;o<n;o++)r[o]instanceof t!=!1?T(r[o],e,null):e.dom.appendChild(document.createTextNode(r[o]));else e.dom.textContent=""}function G(e){const o=A(e),n=e.dom;if(0===o.length)return void(n.childNodes.length&&(n.textContent=""));const s=n.childNodes,r=s.length;if(r>0){const n=s[0].props,r=o[0];if(n&&r instanceof t&&"key"in r.props&&"key"in n)return void function(e,o){const n=[...Array.from(e.dom.childNodes)],s=e.dom.childNodes,r={},i={};for(let e=0,s=n.length;e<s;e++){const s=n[e].props;s&&(r[s.key]=e),e<o.length&&o[e]instanceof t&&(i[o[e].props.key]=e)}for(let t=0,i=o.length;t<i;t++){const i=o[t],p=n[r[i.props.key]];if(!p){T(i,e,s[t]);continue}i.dom=p;const l=s[t];if(l?l!==p&&e.dom.replaceChild(p,l):e.dom.appendChild(p),"v-keep"in i.props==0||p.props["v-keep"]!==i.props["v-keep"]){if(w(i,p.props),p.props=i.props,"v-text"in i.props){p.textContent!=i.props["v-text"]&&(p.textContent=i.props["v-text"]);continue}G(i)}}for(let e=o.length,t=s.length;e<t;e++)s[e]?.remove()}(e,o)}const i=o.length;if(0!==r){for(let n=0;n<i;n++){const r=o[n],i=r instanceof t==!1,p=s[n];if(p)if(i){if(3!==p.nodeType){e.dom.replaceChild(document.createTextNode(r),p);continue}p.nodeValue!=r&&(p.nodeValue=r)}else{if("v-keep"in r.props){if(p.props&&p.props["v-keep"]===r.props["v-keep"])continue;const e=s[n+1];if(e&&e.props&&e.props["v-keep"]===r.props["v-keep"]){p.remove();continue}}r.tag===p.nodeName.toLowerCase()?(r.dom=p,w(r,p.props||null),p.props=r.props,"v-text"in r.props?r.dom.textContent!=r.props["v-text"]&&(r.dom.textContent=r.props["v-text"]):G(r)):T(r,e,p)}else{if(i){e.dom.appendChild(document.createTextNode(r));continue}T(r,e,null)}}for(let e=i,t=s.length;e<t;e++)s[e]?.remove()}else for(let s=0;s<i;s++)o[s]instanceof t!=!1?T(o[s],e,null):n.appendChild(document.createTextNode(o[s]))}function E(e){x(m),e.props=e.props||{},G(e),x(a?h:v),a=!0,u.vnode=null,u.component=null}function L(){return d&&(d.children=[c],E(d),e)?d.dom.innerHTML:""}var j=e?clearTimeout:cancelAnimationFrame,O=e?()=>setTimeout(L,5):()=>requestAnimationFrame(L);var B={Vnode:t,createElement:b,current:u,debouncedUpdate:function(){j(V),V=O()},directive:function(e,t){const o=`v-${e}`;N[o]=t,f.add(o)},directives:N,hidrateDomToVnode:p,isComponent:n,isNodeJs:e,isPOJOComponent:o,isVnode:s,isVnodeComponent:r,mount:function(t,o){const s="string"==typeof t?e?b(t,"svg"===t):document.querySelector(t):t;return c=n(o)?i(o,{},[]):r(o)?o:i(()=>o,{},[]),d=p(s),L()},onCleanup:y,onMount:e=>!a&&v.add(e),onUnmount:e=>!a&&g.add(e),onUpdate:e=>h.add(e),reservedProps:f,setAttribute:function(e,t,o){f.has(e)||(o.props[e]=t,S(e,t,o))},setPropNameReserved:function(e){f.add(e)},trust:l,unmount:function(){if(d){c=i(()=>null,{});const e=L();x(g);for(const e in C)d.dom.removeEventListener(e.slice(2).toLowerCase(),k),Reflect.deleteProperty(C,e);return c=null,d=null,a=!1,u.vnode=null,u.component=null,u.event=null,e}return""},update:L,updateAttributes:w,updateVnode:E,v:i};"undefined"!=typeof module?module.exports=B:self.Valyrian=B})();//# sourceMappingURL=index.min.js.map
1
+ (()=>{var e=Boolean("undefined"!=typeof process&&process.versions&&process.versions.node),t=class{constructor(e,t,n,o,s){this.tag=e,this.props=t,this.children=n,this.dom=o,this.isSVG=s}},n=e=>Boolean(e&&"object"==typeof e&&"view"in e),o=e=>Boolean("function"==typeof e||n(e)),s=e=>e instanceof t,r=e=>s(e)&&o(e.tag);function i(e,n,...o){return new t(e,n,o)}function l(e){if(3===e.nodeType)return e.nodeValue;if(1===e.nodeType){const n=e.nodeName.toLowerCase(),o={},s=[];for(let t=0,n=e.childNodes.length;t<n;t++){const n=e.childNodes[t];if(3===n.nodeType)s.push(n.nodeValue);else if(1===n.nodeType){const e=l(n);s.push(e)}}const r=e.attributes;for(let e=0,t=r.length;e<t;e++){const t=r[e];o[t.nodeName]=t.nodeValue}const i=new t(n,o,s);return i.dom=e,e.vnode=i,i.isSVG="svg"===n,i}}function d(e){const t=document.createElement("div");return t.innerHTML=e.trim(),Array.from(t.childNodes).map(l)}i.fragment=(e,...t)=>t;var c=null,p=null,a=!1,u={vnode:null,component:null,event:null},f=new Set(["key","state","v-keep","v-text","v-if","v-for","v-show","v-class","v-html","v-model","v-create","v-update","v-cleanup"]),v=new Set,m=new Set,h=new Set,y=new Set,g=e=>v.add(e),x=e=>{for(const t of e)t();e.clear()},N={"v-if":(e,t)=>{if(!Boolean(e)){const e=t.dom?.parentNode;return e&&e.replaceChild(document.createTextNode(""),t.dom),!1}},"v-show":(e,t)=>{const n=Boolean(e);t.dom.style.display=n?"":"none"},"v-html":(e,t)=>{t.children=d(e)},"v-model":(e,t)=>{if("name"in t.props==!1)return;let n;const o=t.props.name;let s="oninput",r=t=>e[o]=t.target.value;if("input"===t.tag)switch(t.props.type){case"checkbox":Array.isArray(e[o])?(r=t=>{const n=t.target.value,s=e[o].indexOf(n);-1===s?e[o].push(n):e[o].splice(s,1)},n=-1!==e[o].indexOf(t.dom.value)):"value"in t.props?(r=()=>{e[o]===t.props.value?e[o]=null:e[o]=t.props.value},n=e[o]===t.props.value):(r=()=>e[o]=!e[o],n=e[o]),w("checked",n,t);break;case"radio":w("checked",e[o]===t.dom.value,t);break;default:w("value",e[o],t)}else"select"===t.tag?(s="onclick",t.props.multiple?(r=t=>{const n=t.target.value;if(t.ctrlKey){const t=e[o].indexOf(n);-1===t?e[o].push(n):e[o].splice(t,1)}else e[o].splice(0,e[o].length),e[o].push(n)},t.children.forEach(t=>{if("option"===t.tag){const n="value"in t.props?t.props.value:t.children.join("").trim();t.props.selected=-1!==e[o].indexOf(n)}})):t.children.forEach(t=>{if("option"===t.tag){const n="value"in t.props?t.props.value:t.children.join("").trim();t.props.selected=n===e[o]}})):"textarea"===t.tag&&(t.children=[e[o]]);const i=t.props[s];w(s,e=>{r(e),i&&i(e)},t)},"v-create":(e,t,n)=>{if(!n){const n=e(t);"function"==typeof n&&g(n)}},"v-update":(e,t,n)=>{if(n){const o=e(t,n);"function"==typeof o&&g(o)}},"v-cleanup":(e,t)=>{g(()=>e(t))},"v-class":(e,t)=>{if("string"==typeof e)t.dom.className=e;else if(Array.isArray(e))t.dom.className=e.join(" ");else if("object"==typeof e){const n=t.dom.classList;for(const t in e){const o="function"==typeof e[t]?e[t]():e[t];n.toggle(t,o)}}},class(e,t){if(t.dom.className!==e){if(t.isSVG)return void t.dom.setAttribute("class",e);t.dom.className=e}},className(e,t){N.class(e,t,null)},id:(e,t)=>{if(t.dom.id!==e){if(t.isSVG)return void t.dom.setAttribute("id",e);t.dom.id=e}},style:(e,t)=>{if("string"==typeof e){if(t.isSVG)return void t.dom.setAttribute("style",e);t.dom.style=e}else if("object"==typeof e){t.isSVG?t.dom.setAttribute("style",""):t.dom.style="";const n=t.dom.style;for(const t in e)n[t]=e[t]}}};var k,C=new Set;function V(e){u.event=e;let t=e.target;const n=`on${e.type}`;for(;t;){const o=t.vnode;if(o&&o.props[n])return o.props[n](e,o),void(e.defaultPrevented||L());t=t.parentNode}u.event=null}function w(e,t,n){const o=n.dom;"function"!=typeof t?n.isSVG||!(e in o)?!1===t?o.removeAttribute(e):o.setAttribute(e,t):o[e]=t:C.has(e)||(p.dom.addEventListener(e.slice(2),V),C.add(e))}function b(e,t){const n=e.dom,o=e.props;if(n.vnode=e,t)for(const s in t)s in o!=!1||C.has(s)||f.has(s)||(!e.isSVG&&s in n?n[s]=null:n.removeAttribute(s));for(const n in o)if(N[n]){if(!1===N[n](o[n],e,t))break}else f.has(n)||w(n,o[n],e)}function S(e,t){return t?document.createElementNS("http://www.w3.org/2000/svg",e):document.createElement(e)}function A(e){u.vnode=e;let o=0;const s=e.children;let r=s;if("v-for"in e.props){r=[];const t=e.props["v-for"],n=t.length,o=e.children[0];if("function"!=typeof o)return console.warn("v-for directive must have a callback function as children"),r;for(let e=0;e<n;e++)r[e]=o(t[e],e)}for(;o<r.length;){const i=r[o];if(null!=i)if(Array.isArray(i))r===s&&(r=[...s]),r.splice(o,1,...i);else if(i instanceof t&&(i.props=i.props||{},i.isSVG=e.isSVG||"svg"===i.tag,"string"!=typeof i.tag)){r===s&&(r=[...s]);const e=u.component=i.tag;r[o]=(n(e)?e.view:e).bind(e)(i.props,i.children)}else o++;else r===s&&(r=[...s]),r.splice(o,1)}return r}function T(e,n,o){const s=S(e.tag,e.isSVG);if(o?n.dom.replaceChild(s,o):n.dom.appendChild(s),e.dom=s,b(e,null),"v-text"in e.props)return void(e.dom.textContent=e.props["v-text"]);const r=A(e);if(0!==r.length)for(let n=0,o=r.length;n<o;n++)r[n]instanceof t!=!1?T(r[n],e,null):e.dom.appendChild(document.createTextNode(r[n]));else e.dom.textContent=""}function G(e){const n=A(e),o=e.dom;if(0===n.length)return void(o.childNodes.length&&(o.textContent=""));const s=o.childNodes,r=s.length;if(r>0){const o=s[0].vnode,r=n[0];if(o&&r instanceof t&&"key"in r.props&&"key"in o.props)return void function(e,n){const o=[...Array.from(e.dom.childNodes)],s=e.dom.childNodes,r={},i={};for(let e=0,s=o.length;e<s;e++)"vnode"in o[e]&&(r[o[e].vnode.props.key]=e),e<n.length&&n[e]instanceof t&&(i[n[e].props.key]=e);for(let t=0,i=n.length;t<i;t++){const i=n[t],l=o[r[i.props.key]];if(!l){T(i,e,s[t]);continue}i.dom=l;const d=s[t];if(d?d!==l&&e.dom.replaceChild(l,d):e.dom.appendChild(l),"v-keep"in i.props==0||!l.vnode||l.props["v-keep"]!==i.props["v-keep"]){if(b(i,l.vnode.props),"v-text"in i.props){l.textContent!=i.props["v-text"]&&(l.textContent=i.props["v-text"]);continue}G(i)}}for(let e=n.length,t=s.length;e<t;e++)s[s.length-1]?.remove()}(e,n)}const i=n.length;if(0!==r){for(let o=0;o<i;o++){const r=n[o],i=r instanceof t==!1,l=s[o];if(l)if(i){if(3!==l.nodeType){e.dom.replaceChild(document.createTextNode(r),l);continue}l.nodeValue!=r&&(l.nodeValue=r)}else{if("v-keep"in r.props){if(l.vnode&&l.vnode.props["v-keep"]===r.props["v-keep"])continue;const e=s[o+1];if(e&&e.vnode&&e.vnode.props["v-keep"]===r.props["v-keep"]){l.remove();continue}}r.tag===l.nodeName.toLowerCase()?(r.dom=l,b(r,l.vnode?l.vnode.props:null),"v-text"in r.props?r.dom.textContent!=r.props["v-text"]&&(r.dom.textContent=r.props["v-text"]):G(r)):T(r,e,l)}else{if(i){e.dom.appendChild(document.createTextNode(r));continue}T(r,e,null)}}for(let e=i,t=s.length;e<t;e++)s[e]?.remove()}else for(let s=0;s<i;s++)n[s]instanceof t!=!1?T(n[s],e,null):o.appendChild(document.createTextNode(n[s]))}function E(e){x(v),e.props=e.props||{},G(e),x(a?h:m),a=!0,u.vnode=null,u.component=null}function L(){return p&&(p.children=[c],E(p),e)?p.dom.innerHTML:""}var j=e?L:()=>requestAnimationFrame(L);var O={Vnode:t,createElement:S,current:u,debouncedUpdate:function(e=42){u.event&&u.event.preventDefault(),clearTimeout(k),k=setTimeout(j,e)},directive:function(e,t){const n=`v-${e}`;N[n]=t,f.add(n)},directives:N,hidrateDomToVnode:l,isComponent:o,isNodeJs:e,isPOJOComponent:n,isVnode:s,isVnodeComponent:r,mount:function(t,n){const s="string"==typeof t?e?S(t,"svg"===t):document.querySelector(t):t;return c=o(n)?i(n,{},[]):r(n)?n:i(()=>n,{},[]),p=l(s),L()},onCleanup:g,onMount:e=>!a&&m.add(e),onUnmount:e=>!a&&y.add(e),onUpdate:e=>h.add(e),reservedProps:f,setAttribute:function(e,t,n){f.has(e)||(n.props[e]=t,w(e,t,n))},setPropNameReserved:function(e){f.add(e)},trust:d,unmount:function(){if(p){c=i(()=>null,{});const e=L();x(y);for(const e in C)p.dom.removeEventListener(e.slice(2).toLowerCase(),V),Reflect.deleteProperty(C,e);return c=null,p=null,a=!1,u.vnode=null,u.component=null,u.event=null,e}return""},update:L,updateAttributes:b,updateVnode:E,v:i};"undefined"!=typeof module?module.exports=O:self.Valyrian=O})();//# sourceMappingURL=index.min.js.map