valyrian.js 8.0.4 → 8.0.6

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;
@@ -488,15 +487,12 @@ function patchKeyed(newVnode, children) {
488
487
  const oldTree = [...Array.from(newVnode.dom.childNodes)];
489
488
  const childNodes = newVnode.dom.childNodes;
490
489
  const oldKeyedList = {};
491
- const newKeyedList = {};
492
490
  for (let i = 0, l = oldTree.length; i < l; i++) {
493
- const oldProps = oldTree[i].props;
494
- if (oldProps) {
495
- oldKeyedList[oldProps.key] = i;
496
- }
497
- if (i < children.length && children[i] instanceof Vnode) {
498
- newKeyedList[children[i].props.key] = i;
491
+ const oldVnode = oldTree[i].vnode;
492
+ if (!oldVnode || "key" in oldVnode.props === false) {
493
+ continue;
499
494
  }
495
+ oldKeyedList[oldVnode.props.key] = i;
500
496
  }
501
497
  for (let i = 0, l = children.length; i < l; i++) {
502
498
  const newChild = children[i];
@@ -512,9 +508,8 @@ function patchKeyed(newVnode, children) {
512
508
  } else if (currentChild !== oldChild) {
513
509
  newVnode.dom.replaceChild(oldChild, currentChild);
514
510
  }
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;
511
+ if ("v-keep" in newChild.props === false || !oldChild.vnode || oldChild.props["v-keep"] !== newChild.props["v-keep"]) {
512
+ updateAttributes(newChild, oldChild.vnode.props);
518
513
  if ("v-text" in newChild.props) {
519
514
  if (oldChild.textContent != newChild.props["v-text"]) {
520
515
  oldChild.textContent = newChild.props["v-text"];
@@ -525,7 +520,7 @@ function patchKeyed(newVnode, children) {
525
520
  }
526
521
  }
527
522
  for (let i = children.length, l = childNodes.length; i < l; i++) {
528
- childNodes[i]?.remove();
523
+ childNodes[childNodes.length - 1]?.remove();
529
524
  }
530
525
  }
531
526
  function patch(newVnode) {
@@ -539,14 +534,6 @@ function patch(newVnode) {
539
534
  }
540
535
  const oldDomChildren = dom.childNodes;
541
536
  const oldChildrenLength = oldDomChildren.length;
542
- if (oldChildrenLength > 0) {
543
- const firstOldProps = oldDomChildren[0].props;
544
- const firstVnode = children[0];
545
- if (firstOldProps && firstVnode instanceof Vnode && "key" in firstVnode.props && "key" in firstOldProps) {
546
- patchKeyed(newVnode, children);
547
- return;
548
- }
549
- }
550
537
  const childrenLength = children.length;
551
538
  if (oldChildrenLength === 0) {
552
539
  for (let i = 0; i < childrenLength; i++) {
@@ -558,6 +545,17 @@ function patch(newVnode) {
558
545
  }
559
546
  return;
560
547
  }
548
+ let shouldPatchKeyed = true;
549
+ for (let i = 0; i < childrenLength; i++) {
550
+ if (children[i] instanceof Vnode === false || !("key" in children[i].props)) {
551
+ shouldPatchKeyed = false;
552
+ break;
553
+ }
554
+ }
555
+ if (shouldPatchKeyed) {
556
+ patchKeyed(newVnode, children);
557
+ return;
558
+ }
561
559
  for (let i = 0; i < childrenLength; i++) {
562
560
  const newChild = children[i];
563
561
  const isText = newChild instanceof Vnode === false;
@@ -581,11 +579,11 @@ function patch(newVnode) {
581
579
  continue;
582
580
  }
583
581
  if ("v-keep" in newChild.props) {
584
- if (oldChild.props && oldChild.props["v-keep"] === newChild.props["v-keep"]) {
582
+ if (oldChild.vnode && oldChild.vnode.props["v-keep"] === newChild.props["v-keep"]) {
585
583
  continue;
586
584
  }
587
585
  const nextOldChild = oldDomChildren[i + 1];
588
- if (nextOldChild && nextOldChild.props && nextOldChild.props["v-keep"] === newChild.props["v-keep"]) {
586
+ if (nextOldChild && nextOldChild.vnode && nextOldChild.vnode.props["v-keep"] === newChild.props["v-keep"]) {
589
587
  oldChild.remove();
590
588
  continue;
591
589
  }
@@ -595,8 +593,7 @@ function patch(newVnode) {
595
593
  continue;
596
594
  }
597
595
  newChild.dom = oldChild;
598
- updateAttributes(newChild, oldChild.props || null);
599
- oldChild.props = newChild.props;
596
+ updateAttributes(newChild, oldChild.vnode ? oldChild.vnode.props : null);
600
597
  if ("v-text" in newChild.props) {
601
598
  if (newChild.dom.textContent != newChild.props["v-text"]) {
602
599
  newChild.dom.textContent = newChild.props["v-text"];
@@ -629,11 +626,13 @@ function update() {
629
626
  return "";
630
627
  }
631
628
  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();
629
+ var debouncedUpdateMethod = isNodeJs ? update : () => requestAnimationFrame(update);
630
+ function debouncedUpdate(timeout = 42) {
631
+ if (current.event) {
632
+ current.event.preventDefault();
633
+ }
634
+ clearTimeout(debouncedUpdateTimeout);
635
+ debouncedUpdateTimeout = setTimeout(debouncedUpdateMethod, timeout);
637
636
  }
638
637
  function unmount() {
639
638
  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": "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",
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\n for (let i = 0, l = oldTree.length; i < l; i++) {\n const oldVnode = oldTree[i].vnode as VnodeWithDom;\n if (!oldVnode || \"key\" in oldVnode.props === false) {\n continue;\n }\n oldKeyedList[oldVnode.props.key as string] = i;\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 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 let shouldPatchKeyed = true;\n for (let i = 0; i < childrenLength; i++) {\n if (children[i] instanceof Vnode === false || !(\"key\" in children[i].props)) {\n shouldPatchKeyed = false;\n break;\n }\n }\n if (shouldPatchKeyed) {\n patchKeyed(newVnode, children);\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,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 l(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=l(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,e.vnode=i,i.isSVG="svg"===o,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 o=Boolean(e);t.dom.style.display=o?"":"none"},"v-html":(e,t)=>{t.children=d(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]),b("checked",o,t);break;case"radio":b("checked",e[n]===t.dom.value,t);break;default:b("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];b(s,e=>{r(e),i&&i(e)},t)},"v-create":(e,t,o)=>{if(!o){const o=e(t);"function"==typeof o&&g(o)}},"v-update":(e,t,o)=>{if(o){const n=e(t,o);"function"==typeof n&&g(n)}},"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 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 k,C=new Set;function V(e){u.event=e;let t=e.target;const o=`on${e.type}`;for(;t;){const n=t.vnode;if(n&&n.props[o])return n.props[o](e,n),void(e.defaultPrevented||L());t=t.parentNode}u.event=null}function b(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)||(p.dom.addEventListener(e.slice(2),V),C.add(e))}function w(e,t){const o=e.dom,n=e.props;if(o.vnode=e,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)||b(o,n[o],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 n=0;const s=e.children;let r=s;if("v-for"in e.props){r=[];const t=e.props["v-for"],o=t.length,n=e.children[0];if("function"!=typeof n)return console.warn("v-for directive must have a callback function as children"),r;for(let e=0;e<o;e++)r[e]=n(t[e],e)}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=S(e.tag,e.isSVG);if(n?o.dom.replaceChild(s,n):o.dom.appendChild(s),e.dom=s,w(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 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,i=o.length;if(0===r){for(let s=0;s<i;s++)o[s]instanceof t!=!1?T(o[s],e,null):n.appendChild(document.createTextNode(o[s]));return}let l=!0;for(let e=0;e<i;e++)if(o[e]instanceof t==!1||!("key"in o[e].props)){l=!1;break}if(l)!function(e,t){const o=[...Array.from(e.dom.childNodes)],n=e.dom.childNodes,s={};for(let e=0,t=o.length;e<t;e++){const t=o[e].vnode;t&&"key"in t.props!=0&&(s[t.props.key]=e)}for(let r=0,i=t.length;r<i;r++){const i=t[r],l=o[s[i.props.key]];if(!l){T(i,e,n[r]);continue}i.dom=l;const d=n[r];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(w(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=t.length,o=n.length;e<o;e++)n[n.length-1]?.remove()}(e,o);else{for(let n=0;n<i;n++){const r=o[n],i=r instanceof t==!1,l=s[n];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[n+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,w(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()}}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 o=`v-${e}`;N[o]=t,f.add(o)},directives:N,hidrateDomToVnode:l,isComponent:n,isNodeJs:e,isPOJOComponent:o,isVnode:s,isVnodeComponent:r,mount:function(t,o){const s="string"==typeof t?e?S(t,"svg"===t):document.querySelector(t):t;return c=n(o)?i(o,{},[]):r(o)?o:i(()=>o,{},[]),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,o){f.has(e)||(o.props[e]=t,b(e,t,o))},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:w,updateVnode:E,v:i};"undefined"!=typeof module?module.exports=O:self.Valyrian=O})();//# sourceMappingURL=index.min.js.map