diff --git a/dist/README.md b/dist/README.md index cdc5e468..2a0398d4 100644 --- a/dist/README.md +++ b/dist/README.md @@ -5,7 +5,7 @@ | [micro][3] | 14.2k / 5.7k | + `emit`
+ `body`
+ `autoPx`
+ `defineElementSpread`
+ `defineSvgElementSpread`
| `vm.emit('myNotif', arg1, arg2...)`
`vm.body()`
`{style: {width: 20}}` | | [mini][4] | 14.6k / 5.9k | + `stream`
+ `prop`
| view reactivity (reduce need for explicit `redraw()`) | | [client][5] | 15.1k / 6.0k | `mini`
+ `attach`
| SSR hydration | -| [server][6] | 16.0k / 6.4k | `mini`
+ `html`
| SSR rendering | +| [server][6] | 16.1k / 6.5k | `mini`
+ `html`
| SSR rendering | | [full][7] | 16.6k / 6.6k | `mini`
+ `attach`
+ `html`
| everything (for tests) | | [dev][8] | 21.8k / 8.5k | `full`
+ warnings
| use this build for development; it contains detection of some
anti-patterns that may cause slowness, confusion, errors or
undesirable behavior | diff --git a/dist/client/domvm.client.js b/dist/client/domvm.client.js index 72cf4c8b..c7194e7c 100644 --- a/dist/client/domvm.client.js +++ b/dist/client/domvm.client.js @@ -1633,7 +1633,7 @@ function redrawSync(newParent, newIdx, withDOM) { if (withDOM !== false) { if (vold) { // root node replacement - if (vold.tag !== vnew.tag) { + if (vold.tag !== vnew.tag || vold.key !== vnew.key) { // hack to prevent the replacement from triggering mount/unmount vold.vm = vnew.vm = null; diff --git a/dist/client/domvm.client.js.map b/dist/client/domvm.client.js.map index ba22da3d..777b0b6e 100644 --- a/dist/client/domvm.client.js.map +++ b/dist/client/domvm.client.js.map @@ -1 +1 @@ -{"version":3,"file":"domvm.client.js","sources":["../../src/view/VTYPES.js","../../src/utils.js","../../src/view/VNode.js","../../src/view/defineText.js","../../src/view/utils.js","../../src/view/addons/stream.js","../../src/view/addons/cssTag.js","../../src/view/initElementNode.js","../../src/view/preProc.js","../../src/view/addons/autoPx.js","../../src/view/patchStyle.js","../../src/view/hooks.js","../../src/view/dom.js","../../src/view/addons/emit.js","../../src/view/config.js","../../src/view/patchEvent.js","../../src/view/defineElement.js","../../src/view/defineSvgElement.js","../../src/view/patchAttrs.js","../../src/view/createView.js","../../src/view/hydrate.js","../../src/view/syncChildren.js","../../src/view/patch.js","../../src/view/ViewModel.js","../../src/view/defineComment.js","../../src/view/VView.js","../../src/view/defineView.js","../../src/view/VModel.js","../../src/view/injectView.js","../../src/view/injectElement.js","../../src/view/lazyList.js","../../src/builds/pico.js","../../src/view/addons/patch.js","../../src/builds/nano.js","../../src/view/addons/vmBody.js","../../src/view/addons/defineElementSpread.js","../../src/view/addons/defineSvgElementSpread.js","../../src/builds/micro.js","../../src/builds/mini.js","../../src/view/addons/attach.js","../../src/builds/client.js"],"sourcesContent":["// NOTE: if adding a new *VNode* type, make it < COMMENT and renumber rest.\n// There are some places that test <= COMMENT to assert if node is a VNode\n\n// VNode types\nexport const ELEMENT\t= 1;\nexport const TEXT\t\t= 2;\nexport const COMMENT\t= 3;\n\n// placeholder types\nexport const VVIEW\t\t= 4;\nexport const VMODEL\t\t= 5;","export const ENV_DOM = typeof window !== \"undefined\";\nconst win = ENV_DOM ? window : {};\nconst rAF = win.requestAnimationFrame;\n\nexport const emptyObj = {};\n\nexport function noop() {};\n\nexport const isArr = Array.isArray;\n\nexport function isSet(val) {\n\treturn val != null;\n}\n\nexport function isPlainObj(val) {\n\treturn val != null && val.constructor === Object;\t\t// && typeof val === \"object\"\n}\n\nexport function insertArr(targ, arr, pos, rem) {\n\ttarg.splice.apply(targ, [pos, rem].concat(arr));\n}\n\nexport function isVal(val) {\n\tvar t = typeof val;\n\treturn t === \"string\" || t === \"number\";\n}\n\nexport function isFunc(val) {\n\treturn typeof val === \"function\";\n}\n\nexport function isProm(val) {\n\treturn typeof val === \"object\" && isFunc(val.then);\n}\n\nexport function isElem(val) {\n\treturn ENV_DOM && val instanceof HTMLElement;\n}\n\nexport function assignObj(targ) {\n\tvar args = arguments;\n\n\tfor (var i = 1; i < args.length; i++)\n\t\tfor (var k in args[i])\n\t\t\ttarg[k] = args[i][k];\n\n\treturn targ;\n}\n\n// export const defProp = Object.defineProperty;\n\nexport function deepSet(targ, path, val) {\n\tvar seg;\n\n\twhile (seg = path.shift()) {\n\t\tif (path.length === 0)\n\t\t\ttarg[seg] = val;\n\t\telse\n\t\t\ttarg[seg] = targ = targ[seg] || {};\n\t}\n}\n\n/*\nexport function deepUnset(targ, path) {\n\tvar seg;\n\n\twhile (seg = path.shift()) {\n\t\tif (path.length === 0)\n\t\t\ttarg[seg] = val;\n\t\telse\n\t\t\ttarg[seg] = targ = targ[seg] || {};\n\t}\n}\n*/\n\nexport function sliceArgs(args, offs) {\n\tvar arr = [];\n\tfor (var i = offs; i < args.length; i++)\n\t\tarr.push(args[i]);\n\treturn arr;\n}\n\nexport function cmpObj(a, b) {\n\tfor (var i in a)\n\t\tif (a[i] !== b[i])\n\t\t\treturn false;\n\n\treturn true;\n}\n\nexport function cmpArr(a, b) {\n\tconst alen = a.length;\n\n\tif (b.length !== alen)\n\t\treturn false;\n\n\tfor (var i = 0; i < alen; i++)\n\t\tif (a[i] !== b[i])\n\t\t\treturn false;\n\n\treturn true;\n}\n\n// https://github.com/darsain/raft\n// rAF throttler, aggregates multiple repeated redraw calls within single animframe\nexport function raft(fn) {\n\tif (!rAF)\n\t\treturn fn;\n\n\tvar id, ctx, args;\n\n\tfunction call() {\n\t\tid = 0;\n\t\tfn.apply(ctx, args);\n\t}\n\n\treturn function() {\n\t\tctx = this;\n\t\targs = arguments;\n\t\tif (!id) id = rAF(call);\n\t};\n}\n\nexport function curry(fn, args, ctx) {\n\treturn function() {\n\t\treturn fn.apply(ctx, args);\n\t};\n}\n\nexport function prop(val, cb, ctx, args) {\n\treturn function(newVal, execCb) {\n\t\tif (newVal !== undefined && newVal !== val) {\n\t\t\tval = newVal;\n\t\t\texecCb !== false && isFunc(cb) && cb.apply(ctx, args);\n\t\t}\n\n\t\treturn val;\n\t};\n}\n\n// adapted from https://github.com/Olical/binary-search\nexport function binaryKeySearch(list, item) {\n var min = 0;\n var max = list.length - 1;\n var guess;\n\n\tvar bitwise = (max <= 2147483647) ? true : false;\n\tif (bitwise) {\n\t\twhile (min <= max) {\n\t\t\tguess = (min + max) >> 1;\n\t\t\tif (list[guess].key === item) { return guess; }\n\t\t\telse {\n\t\t\t\tif (list[guess].key < item) { min = guess + 1; }\n\t\t\t\telse { max = guess - 1; }\n\t\t\t}\n\t\t}\n\t} else {\n\t\twhile (min <= max) {\n\t\t\tguess = Math.floor((min + max) / 2);\n\t\t\tif (list[guess].key === item) { return guess; }\n\t\t\telse {\n\t\t\t\tif (list[guess].key < item) { min = guess + 1; }\n\t\t\t\telse { max = guess - 1; }\n\t\t\t}\n\t\t}\n\t}\n\n return -1;\n}","export function VNode() {}\n\nexport const VNodeProto = VNode.prototype = {\n\tconstructor: VNode,\n\n\ttype:\tnull,\n\n\tvm:\t\tnull,\n\n\t// all this stuff can just live in attrs (as defined) just have getters here for it\n\tkey:\tnull,\n\tref:\tnull,\n\tdata:\tnull,\n\thooks:\tnull,\n\traw:\tfalse,\n\tns:\t\tnull,\n\n\tel:\t\tnull,\n\n\ttag:\tnull,\n\tattrs:\tnull,\n\tbody:\tnull,\n\n\tflags:\t0,\n\n\t_class:\tnull,\n\t_diff:\tnull,\n\n\t// pending removal on promise resolution\n\t_dead:\tfalse,\n\n\tidx:\tnull,\n\tparent:\tnull,\n\n\t/*\n\t// break out into optional fluent module\n\tkey:\tfunction(val) { this.key\t= val; return this; },\n\tref:\tfunction(val) { this.ref\t= val; return this; },\t\t// deep refs\n\tdata:\tfunction(val) { this.data\t= val; return this; },\n\thooks:\tfunction(val) { this.hooks\t= val; return this; },\t\t// h(\"div\").hooks()\n\thtml:\tfunction(val) { this.html\t= true; return this.body(val); },\n\n\tbody:\tfunction(val) { this.body\t= val; return this; },\n\t*/\n};","import { TEXT } from './VTYPES';\nimport { VNode } from './VNode';\n\nexport function defineText(body) {\n\tlet node = new VNode;\n\tnode.type = TEXT;\n\tnode.body = body;\n\treturn node;\n}","import { emptyObj } from '../utils';\n\nexport function isEvProp(name) {\n\treturn name[0] === \"o\" && name[1] === \"n\";\n}\n\nexport function isSplProp(name) {\n\treturn name[0] === \"_\";\n}\n\nexport function isStyleProp(name) {\n\treturn name === \"style\";\n}\n\nexport function repaint(node) {\n\tnode && node.el && node.el.offsetHeight;\n}\n\n// tests interactive props where real val should be compared\nexport function isDynProp(tag, attr) {\n//\tswitch (tag) {\n//\t\tcase \"input\":\n//\t\tcase \"textarea\":\n//\t\tcase \"select\":\n//\t\tcase \"option\":\n\t\t\tswitch (attr) {\n\t\t\t\tcase \"value\":\n\t\t\t\tcase \"checked\":\n\t\t\t\tcase \"selected\":\n//\t\t\t\tcase \"selectedIndex\":\n\t\t\t\t\treturn true;\n\t\t\t}\n//\t}\n\n\treturn false;\n}\n\nexport function getVm(n) {\n\tn = n || emptyObj;\n\twhile (n.vm == null && n.parent)\n\t\tn = n.parent;\n\treturn n.vm;\n}","export let isStream = function() { return false };\n\nlet streamVal = null;\nlet subStream = null;\nlet unsubStream = null;\n\nexport function streamCfg(cfg) {\n\tisStream\t= cfg.is;\n\tstreamVal\t= cfg.val;\n\tsubStream\t= cfg.sub;\n\tunsubStream\t= cfg.unsub;\n}\n\n// creates a one-shot self-ending stream that redraws target vm\n// TODO: if it's already registered by any parent vm, then ignore to avoid simultaneous parent & child refresh\nexport function hookStream(s, vm) {\n\tif (FEAT_STREAM) {\n\t\tvar redrawStream = subStream(s, val => {\n\t\t\t// this \"if\" ignores the initial firing during subscription (there's no redrawable vm yet)\n\t\t\tif (redrawStream) {\n\t\t\t\t// if vm fully is formed (or mounted vm.node.el?)\n\t\t\t\tif (vm.node != null)\n\t\t\t\t\tvm.redraw();\n\t\t\t\tunsubStream(redrawStream);\n\t\t\t}\n\t\t});\n\n\t\treturn streamVal(s);\n\t}\n}","const tagCache = {};\n\nconst RE_ATTRS = /\\[(\\w+)(?:=(\\w+))?\\]/g;\n\nconst tagObj = {};\n\nexport function cssTag(raw) {\n\tif (FEAT_CSSTAG) {\n\t\tvar cached = tagCache[raw];\n\n\t\tif (cached == null) {\n\t\t\tvar tag, id, cls, attr;\n\n\t\t\ttagCache[raw] = cached = {\n\t\t\t\ttag:\t(tag\t= raw.match( /^[-\\w]+/))\t\t?\ttag[0]\t\t\t\t\t\t: \"div\",\n\t\t\t\tid:\t\t(id\t\t= raw.match( /#([-\\w]+)/))\t\t? \tid[1]\t\t\t\t\t\t: null,\n\t\t\t\tclass:\t(cls\t= raw.match(/\\.([-\\w.]+)/))\t\t?\tcls[1].replace(/\\./g, \" \")\t: null,\n\t\t\t\tattrs:\tnull,\n\t\t\t};\n\n\t\t\twhile (attr = RE_ATTRS.exec(raw)) {\n\t\t\t\tif (cached.attrs == null)\n\t\t\t\t\tcached.attrs = {};\n\t\t\t\tcached.attrs[attr[1]] = attr[2] || \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn cached;\n\t}\n\telse {\n\t\ttagObj.tag = raw;\n\t\treturn tagObj;\n\t}\n}","import { ELEMENT } from './VTYPES';\nimport { VNode } from './VNode';\nimport { cssTag } from './addons/cssTag';\nimport { isSet, isPlainObj } from '../utils';\nimport { devNotify } from \"./addons/devmode\";\n\n// (de)optimization flags\n\n// prevents inserting/removing/reordering of children\nexport const FIXED_BODY = 1;\n// forces slow bottom-up removeChild to fire deep willRemove/willUnmount hooks,\nexport const DEEP_REMOVE = 2;\n// enables fast keyed lookup of children via binary search, expects homogeneous keyed body\nexport const KEYED_LIST = 4;\n// indicates an vnode match/diff/recycler function for body\nexport const LAZY_LIST = 8;\n\nexport function initElementNode(tag, attrs, body, flags) {\n\tlet node = new VNode;\n\n\tnode.type = ELEMENT;\n\n\tif (isSet(flags))\n\t\tnode.flags = flags;\n\n\tnode.attrs = attrs;\n\n\tvar parsed = cssTag(tag);\n\n\tnode.tag = parsed.tag;\n\n\t// meh, weak assertion, will fail for id=0, etc.\n\tif (parsed.id || parsed.class || parsed.attrs) {\n\t\tvar p = node.attrs || {};\n\n\t\tif (parsed.id && !isSet(p.id))\n\t\t\tp.id = parsed.id;\n\n\t\tif (parsed.class) {\n\t\t\tnode._class = parsed.class;\t\t// static class\n\t\t\tp.class = parsed.class + (isSet(p.class) ? (\" \" + p.class) : \"\");\n\t\t}\n\t\tif (parsed.attrs) {\n\t\t\tfor (var key in parsed.attrs)\n\t\t\t\tif (!isSet(p[key]))\n\t\t\t\t\tp[key] = parsed.attrs[key];\n\t\t}\n\n//\t\tif (node.attrs !== p)\n\t\t\tnode.attrs = p;\n\t}\n\n\tvar mergedAttrs = node.attrs;\n\n\tif (isSet(mergedAttrs)) {\n\t\tif (isSet(mergedAttrs._key))\n\t\t\tnode.key = mergedAttrs._key;\n\n\t\tif (isSet(mergedAttrs._ref))\n\t\t\tnode.ref = mergedAttrs._ref;\n\n\t\tif (isSet(mergedAttrs._hooks))\n\t\t\tnode.hooks = mergedAttrs._hooks;\n\n\t\tif (isSet(mergedAttrs._raw))\n\t\t\tnode.raw = mergedAttrs._raw;\n\n\t\tif (isSet(mergedAttrs._data))\n\t\t\tnode.data = mergedAttrs._data;\n\n\t\tif (isSet(mergedAttrs._flags))\n\t\t\tnode.flags = mergedAttrs._flags;\n\n\t\tif (!isSet(node.key)) {\n\t\t\tif (isSet(node.ref))\n\t\t\t\tnode.key = node.ref;\n\t\t\telse if (isSet(mergedAttrs.id))\n\t\t\t\tnode.key = mergedAttrs.id;\n\t\t\telse if (isSet(mergedAttrs.name))\n\t\t\t\tnode.key = mergedAttrs.name + (mergedAttrs.type == \"radio\" ? mergedAttrs.value : \"\");\n\t\t}\n\t}\n\n\tif (body != null)\n\t\tnode.body = body;\n\n\tif (_DEVMODE) {\n\t\tif (node.tag === \"svg\") {\n\t\t\tsetTimeout(function() {\n\t\t\t\tnode.ns == null && devNotify(\"SVG_WRONG_FACTORY\", [node]);\n\t\t\t}, 16);\n\t\t}\n\t\telse if (node.tag === \"input\" && node.key == null)\n\t\t\tdevNotify(\"UNKEYED_INPUT\", [node]);\n\t}\n\n\treturn node;\n}","import { TEXT, VVIEW, VMODEL } from './VTYPES';\nimport { defineText } from './defineText';\nimport { isVal, isArr, isFunc, insertArr, deepSet } from '../utils';\nimport { getVm } from './utils';\nimport { isStream, hookStream } from './addons/stream';\nimport { DEEP_REMOVE } from './initElementNode';\nimport { devNotify } from \"./addons/devmode\";\n\nfunction setRef(vm, name, node) {\n\tvar path = [\"refs\"].concat(name.split(\".\"));\n\tdeepSet(vm, path, node);\n}\n\nfunction setDeepRemove(node) {\n\twhile (node = node.parent)\n\t\tnode.flags |= DEEP_REMOVE;\n}\n\n// vnew, vold\nexport function preProc(vnew, parent, idx, ownVm) {\n\tif (vnew.type === VMODEL || vnew.type === VVIEW)\n\t\treturn;\n\n\tvnew.parent = parent;\n\tvnew.idx = idx;\n\tvnew.vm = ownVm;\n\n\tif (vnew.ref != null)\n\t\tsetRef(getVm(vnew), vnew.ref, vnew);\n\n\tvar nh = vnew.hooks,\n\t\tvh = ownVm && ownVm.hooks;\n\n\tif (nh && (nh.willRemove || nh.didRemove) ||\n\t\tvh && (vh.willUnmount || vh.didUnmount))\n\t\tsetDeepRemove(vnew);\n\n\tif (isArr(vnew.body))\n\t\tpreProcBody(vnew);\n\telse if (isStream(vnew.body))\n\t\tvnew.body = hookStream(vnew.body, getVm(vnew));\n}\n\nexport function preProcBody(vnew) {\n\tvar body = vnew.body;\n\n\tfor (var i = 0; i < body.length; i++) {\n\t\tvar node2 = body[i];\n\n\t\t// remove false/null/undefined\n\t\tif (node2 === false || node2 == null)\n\t\t\tbody.splice(i--, 1);\n\t\t// flatten arrays\n\t\telse if (isArr(node2)) {\n\t\t\tif (_DEVMODE) {\n\t\t\t\tif (i === 0 || i === body.length - 1)\n\t\t\t\t\tdevNotify(\"ARRAY_FLATTENED\", [vnew, node2]);\n\t\t\t}\n\t\t\tinsertArr(body, node2, i--, 1);\n\t\t}\n\t\telse {\n\t\t\tif (node2.type == null)\n\t\t\t\tbody[i] = node2 = defineText(\"\"+node2);\n\n\t\t\tif (node2.type === TEXT) {\n\t\t\t\t// remove empty text nodes\n\t\t\t\tif (node2.body == null || node2.body === \"\")\n\t\t\t\t\tbody.splice(i--, 1);\n\t\t\t\t// merge with previous text node\n\t\t\t\telse if (i > 0 && body[i-1].type === TEXT) {\n\t\t\t\t\tif (_DEVMODE) {\n\t\t\t\t\t\tdevNotify(\"ADJACENT_TEXT\", [vnew, body[i-1].body, node2.body]);\n\t\t\t\t\t}\n\t\t\t\t\tbody[i-1].body += node2.body;\n\t\t\t\t\tbody.splice(i--, 1);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t\tpreProc(node2, vnew, i, null);\n\t\t\t}\n\t\t\telse\n\t\t\t\tpreProc(node2, vnew, i, null);\n\t\t}\n\t}\n}","const unitlessProps = {\n\tanimationIterationCount: true,\n\tboxFlex: true,\n\tboxFlexGroup: true,\n\tboxOrdinalGroup: true,\n\tcolumnCount: true,\n\tflex: true,\n\tflexGrow: true,\n\tflexPositive: true,\n\tflexShrink: true,\n\tflexNegative: true,\n\tflexOrder: true,\n\tgridRow: true,\n\tgridColumn: true,\n\torder: true,\n\tlineClamp: true,\n\n\tborderImageOutset: true,\n\tborderImageSlice: true,\n\tborderImageWidth: true,\n\tfontWeight: true,\n\tlineHeight: true,\n\topacity: true,\n\torphans: true,\n\ttabSize: true,\n\twidows: true,\n\tzIndex: true,\n\tzoom: true,\n\n\tfillOpacity: true,\n\tfloodOpacity: true,\n\tstopOpacity: true,\n\tstrokeDasharray: true,\n\tstrokeDashoffset: true,\n\tstrokeMiterlimit: true,\n\tstrokeOpacity: true,\n\tstrokeWidth: true\n};\n\nexport function autoPx(name, val) {\n\tif (FEAT_AUTOPX) {\n\t\t// typeof val === 'number' is faster but fails for numeric strings\n\t\treturn !isNaN(val) && !unitlessProps[name] ? (val + \"px\") : val;\n\t}\n\telse\n\t\treturn val;\n}","import { isVal, emptyObj } from '../utils';\nimport { getVm } from './utils';\nimport { autoPx } from './addons/autoPx';\nimport { isStream, hookStream } from './addons/stream';\n\n// assumes if styles exist both are objects or both are strings\nexport function patchStyle(n, o) {\n\tvar ns = (n.attrs || emptyObj).style;\n\tvar os = o ? (o.attrs || emptyObj).style : null;\n\n\t// replace or remove in full\n\tif (ns == null || isVal(ns))\n\t\tn.el.style.cssText = ns;\n\telse {\n\t\tfor (var nn in ns) {\n\t\t\tvar nv = ns[nn];\n\n\t\t\tif (isStream(nv))\n\t\t\t\tnv = hookStream(nv, getVm(n));\n\n\t\t\tif (os == null || nv != null && nv !== os[nn])\n\t\t\t\tn.el.style[nn] = autoPx(nn, nv);\n\t\t}\n\n\t\t// clean old\n\t\tif (os) {\n\t\t\tfor (var on in os) {\n\t\t\t\tif (ns[on] == null)\n\t\t\t\t\tn.el.style[on] = \"\";\n\t\t\t}\n\t\t}\n\t}\n}","import { isArr } from '../utils';\nimport { repaint } from './utils';\n\nexport const didQueue = [];\n\nexport function fireHook(name, o, n, immediate) {\n\tvar fn = o.hooks[name];\n\n\tif (fn) {\n\t\tif (name[0] === \"d\" && name[1] === \"i\" && name[2] === \"d\") {\t// did*\n\t\t\t//\tconsole.log(name + \" should queue till repaint\", o, n);\n\t\t\timmediate ? repaint(o.parent) && fn(o, n) : didQueue.push([fn, o, n]);\n\t\t}\n\t\telse {\t\t// will*\n\t\t\t//\tconsole.log(name + \" may delay by promise\", o, n);\n\t\t\treturn fn(o, n);\t\t// or pass done() resolver\n\t\t}\n\t}\n}\n\nexport function drainDidHooks(vm) {\n\tif (didQueue.length) {\n\t\trepaint(vm.node);\n\n\t\tvar item;\n\t\twhile (item = didQueue.shift())\n\t\t\titem[0](item[1], item[2]);\n\t}\n}","import { ENV_DOM, isArr, isProm, curry } from '../utils';\nimport { fireHook } from './hooks';\nimport { FIXED_BODY, DEEP_REMOVE } from './initElementNode';\n\nconst doc = ENV_DOM ? document : null;\n\nexport function closestVNode(el) {\n\twhile (el._node == null)\n\t\tel = el.parentNode;\n\treturn el._node;\n}\n\nexport function createElement(tag, ns) {\n\tif (ns != null)\n\t\treturn doc.createElementNS(ns, tag);\n\treturn doc.createElement(tag);\n}\n\nexport function createTextNode(body) {\n\treturn doc.createTextNode(body);\n}\n\nexport function createComment(body) {\n\treturn doc.createComment(body);\n}\n\n// ? removes if !recycled\nexport function nextSib(sib) {\n\treturn sib.nextSibling;\n}\n\n// ? removes if !recycled\nexport function prevSib(sib) {\n\treturn sib.previousSibling;\n}\n\n// TODO: this should collect all deep proms from all hooks and return Promise.all()\nfunction deepNotifyRemove(node) {\n\tvar hooks = node.hooks, vm = node.vm;\n\n\tvar wuRes = vm && vm.hooks && fireHook(\"willUnmount\", vm, vm.data);\n\n\tvar wrRes = hooks && fireHook(\"willRemove\", node);\n\n\tif ((node.flags & DEEP_REMOVE) === DEEP_REMOVE && isArr(node.body)) {\n\t\tfor (var i = 0; i < node.body.length; i++)\n\t\t\tdeepNotifyRemove(node.body[i]);\n\t}\n\n\treturn wuRes || wrRes;\n}\n\nfunction _removeChild(parEl, el, immediate) {\n\tvar node = el._node, hooks = node.hooks, vm = node.vm;\n\n\tif ((node.flags & DEEP_REMOVE) === DEEP_REMOVE && isArr(node.body)) {\n\t//\tvar parEl = node.el;\n\t\tfor (var i = 0; i < node.body.length; i++)\n\t\t\t_removeChild(el, node.body[i].el);\n\t}\n\n\tparEl.removeChild(el);\n\n\thooks && fireHook(\"didRemove\", node, null, immediate);\n\n\tvm && vm.hooks && fireHook(\"didUnmount\", vm, vm.data, immediate);\n}\n\n// todo: should delay parent unmount() by returning res prom?\nexport function removeChild(parEl, el) {\n\tvar node = el._node, hooks = node.hooks;\n\n\t// already marked for removal\n\tif (node._dead) return;\n\n\tvar res = deepNotifyRemove(node);\n\n\tif (res != null && isProm(res)) {\n\t\tnode._dead = true;\n\t\tres.then(curry(_removeChild, [parEl, el, true]));\n\t}\n\telse\n\t\t_removeChild(parEl, el);\n}\n\nexport function clearChildren(parent) {\n\tvar parEl = parent.el;\n\n\tif ((parent.flags & DEEP_REMOVE) === 0)\n\t\tparEl.textContent = null;\n\telse {\n\t\tvar el = parEl.firstChild;\n\n\t\tdo {\n\t\t\tvar next = nextSib(el);\n\t\t\tremoveChild(parEl, el);\n\t\t} while (el = next);\n\t}\n}\n\n// todo: hooks\nexport function insertBefore(parEl, el, refEl) {\n\tvar node = el._node, hooks = node.hooks, inDom = el.parentNode != null;\n\n\t// el === refEl is asserted as a no-op insert called to fire hooks\n\tvar vm = (el === refEl || !inDom) && node.vm;\n\n\tvm && vm.hooks && fireHook(\"willMount\", vm, vm.data);\n\n\thooks && fireHook(inDom ? \"willReinsert\" : \"willInsert\", node);\n\tparEl.insertBefore(el, refEl);\n\thooks && fireHook(inDom ? \"didReinsert\" : \"didInsert\", node);\n\n\tvm && vm.hooks && fireHook(\"didMount\", vm, vm.data);\n}\n\nexport function insertAfter(parEl, el, refEl) {\n\tinsertBefore(parEl, el, refEl ? nextSib(refEl) : null);\n}","import { isVal, sliceArgs, assignObj } from '../../utils';\n\nvar onemit = {};\n\nexport function emitCfg(cfg) {\n\tassignObj(onemit, cfg);\n}\n\nexport function emit(evName) {\n\tvar targ = this,\n\t\tsrc = targ;\n\n\tvar args = sliceArgs(arguments, 1).concat(src, src.data);\n\n\tdo {\n\t\tvar evs = targ.onemit;\n\t\tvar fn = evs ? evs[evName] : null;\n\n\t\tif (fn) {\n\t\t\tfn.apply(targ, args);\n\t\t\tbreak;\n\t\t}\n\t} while (targ = targ.parent());\n\n\tif (onemit[evName])\n\t\tonemit[evName].apply(targ, args);\n}","import { noop } from '../utils';\nimport { streamCfg } from './addons/stream';\nimport { emitCfg } from './addons/emit';\n\nexport let onevent = noop;\n\nexport function config(newCfg) {\n\tonevent = newCfg.onevent || onevent;\n\n\tif (FEAT_EMIT) {\n\t\tif (newCfg.onemit)\n\t\t\temitCfg(newCfg.onemit);\n\t}\n\n\tif (FEAT_STREAM) {\n\t\tif (newCfg.stream)\n\t\t\tstreamCfg(newCfg.stream);\n\t}\n}","import { isArr, isFunc, cmpArr } from '../utils';\nimport { closestVNode } from './dom';\nimport { getVm } from './utils';\nimport { onevent } from './config';\nimport { devNotify } from \"./addons/devmode\";\n\nfunction bindEv(el, type, fn) {\n//\tDEBUG && console.log(\"addEventListener\");\n\tel[type] = fn;\n}\n\nfunction handle(e, fn, args) {\n\tvar node = closestVNode(e.target);\n\tvar vm = getVm(node);\n\tvar out = fn.apply(null, args.concat([e, node, vm, vm.data]));\n\n\t// should these respect out === false?\n\tvm.onevent(e, node, vm, vm.data, args);\n\tonevent.call(null, e, node, vm, vm.data, args);\n\n\tif (out === false) {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t}\n}\n\nfunction wrapHandler(fn, args) {\n//\tconsole.log(\"wrapHandler\");\n\n\treturn function wrap(e) {\n\t\thandle(e, fn, args);\n\t};\n}\n\n// delagated handlers {\".moo\": [fn, a, b]}, {\".moo\": fn}\nfunction wrapHandlers(hash) {\n//\tconsole.log(\"wrapHandlers\");\n\n\treturn function wrap(e) {\n\t\tfor (var sel in hash) {\n\t\t\tif (e.target.matches(sel)) {\n\t\t\t\tvar hnd = hash[sel];\n\t\t\t\tvar isarr = isArr(hnd);\n\t\t\t\tvar fn = isarr ? hnd[0] : hnd;\n\t\t\t\tvar args = isarr ? hnd.slice(1) : [];\n\n\t\t\t\thandle(e, fn, args);\n\t\t\t}\n\t\t}\n\t}\n}\n\n// could merge with on*\n\nexport function patchEvent(node, name, nval, oval) {\n\tif (nval === oval)\n\t\treturn;\n\n\tvar el = node.el;\n\n\tif (nval._raw) {\n\t\tbindEv(el, name, nval);\n\t\treturn;\n\t}\n\n\tif (_DEVMODE) {\n\t\tif (isFunc(nval) && isFunc(oval) && oval.name == nval.name)\n\t\t\tdevNotify(\"INLINE_HANDLER\", [node, oval, nval]);\n\t}\n\n\t// param'd eg onclick: [myFn, 1, 2, 3...]\n\tif (isArr(nval)) {\n\t\tif (_DEVMODE) {\n\t\t\tif (oval != null && !isArr(oval))\n\t\t\t\tdevNotify(\"MISMATCHED_HANDLER\", [node, oval, nval]);\n\t\t}\n\t\tvar diff = oval == null || !cmpArr(nval, oval);\n\t\tdiff && bindEv(el, name, wrapHandler(nval[0], nval.slice(1)));\n\t}\n\t// basic onclick: myFn (or extracted)\n\telse if (isFunc(nval)) {\n\t\tif (_DEVMODE) {\n\t\t\tif (oval != null && !isFunc(oval))\n\t\t\t\tdevNotify(\"MISMATCHED_HANDLER\", [node, oval, nval]);\n\t\t}\n\t\tbindEv(el, name, wrapHandler(nval, []));\n\t}\n\t// delegated onclick: {\".sel\": myFn} & onclick: {\".sel\": [myFn, 1, 2, 3]}\n\telse\t\t// isPlainObj, TODO:, diff with old/clean\n\t\tbindEv(el, name, wrapHandlers(nval));\n}","import { isPlainObj } from '../utils';\nimport { initElementNode } from './initElementNode';\n\nexport function defineElement(tag, arg1, arg2, flags) {\n\tvar attrs, body;\n\n\tif (arg2 == null) {\n\t\tif (isPlainObj(arg1))\n\t\t\tattrs = arg1;\n\t\telse\n\t\t\tbody = arg1;\n\t}\n\telse {\n\t\tattrs = arg1;\n\t\tbody = arg2;\n\t}\n\n\treturn initElementNode(tag, attrs, body, flags);\n}","import { defineElement } from \"./defineElement\";\n\n//export const XML_NS = \"http://www.w3.org/2000/xmlns/\";\nexport const SVG_NS = \"http://www.w3.org/2000/svg\";\nexport const XLINK_NS = \"http://www.w3.org/1999/xlink\";\n\nexport function defineSvgElement(tag, arg1, arg2, flags) {\n\tvar n = defineElement(tag, arg1, arg2, flags);\n\tn.ns = SVG_NS;\n\treturn n;\n}","import { isStyleProp, isSplProp, isEvProp, isDynProp, getVm } from './utils';\nimport { isFunc, emptyObj } from '../utils';\nimport { patchStyle } from './patchStyle';\nimport { patchEvent } from './patchEvent';\nimport { isStream, hookStream } from './addons/stream';\nimport { devNotify } from \"./addons/devmode\";\nimport { XLINK_NS } from './defineSvgElement';\n\nconst XLINKHREF = \"xlink:href\";\n\nexport function remAttr(node, name, asProp) {\n\tif (asProp)\n\t\tnode.el[name] = \"\";\n\telse {\n\t\tif (name === XLINKHREF)\n\t\t\tnode.el.removeAttributeNS(XLINK_NS, \"href\");\n\t\telse\n\t\t\tnode.el.removeAttribute(name);\n\t}\n}\n\n// setAttr\n// diff, \".\", \"on*\", bool vals, skip _*, value/checked/selected selectedIndex\nexport function setAttr(node, name, val, asProp, initial) {\n\tvar el = node.el;\n\n\tif (val == null)\n\t\t!initial && remAttr(node, name, false);\t\t//, asProp? // will also removeAttr of style: null\n\telse if (node.ns != null) {\n\t\tif (name === XLINKHREF)\n\t\t\tel.setAttributeNS(XLINK_NS, \"href\", val);\n\t\telse\n\t\t\tel.setAttribute(name, val);\n\t}\n\telse if (name === \"class\")\n\t\tel.className = val;\n\telse if (name === \"id\" || typeof val === \"boolean\" || asProp)\n\t\tel[name] = val;\n\telse if (name[0] === \".\")\n\t\tel[name.substr(1)] = val;\n\telse\n\t\tel.setAttribute(name, val);\n}\n\nexport function patchAttrs(vnode, donor, initial) {\n\tconst nattrs = vnode.attrs || emptyObj;\n\tconst oattrs = donor.attrs || emptyObj;\n\n\tif (nattrs === oattrs) {\n\t\tif (_DEVMODE)\n\t\t\tdevNotify(\"REUSED_ATTRS\", [vnode]);\n\t}\n\telse {\n\t\tfor (var key in nattrs) {\n\t\t\tvar nval = nattrs[key];\n\t\t\tvar isDyn = isDynProp(vnode.tag, key);\n\t\t\tvar oval = isDyn ? vnode.el[key] : oattrs[key];\n\n\t\t\tif (isStream(nval))\n\t\t\t\tnattrs[key] = nval = hookStream(nval, getVm(vnode));\n\n\t\t\tif (nval === oval) {}\n\t\t\telse if (isStyleProp(key))\n\t\t\t\tpatchStyle(vnode, donor);\n\t\t\telse if (isSplProp(key)) {}\n\t\t\telse if (isEvProp(key))\n\t\t\t\tpatchEvent(vnode, key, nval, oval);\n\t\t\telse\n\t\t\t\tsetAttr(vnode, key, nval, isDyn, initial);\n\t\t}\n\n\t\t// TODO: handle key[0] === \".\"\n\t\t// should bench style.cssText = \"\" vs removeAttribute(\"style\")\n\t\tfor (var key in oattrs) {\n\t\t\t!(key in nattrs) &&\n\t\t\t!isSplProp(key) &&\n\t\t\tremAttr(vnode, key, isDynProp(vnode.tag, key) || isEvProp(key));\n\t\t}\n\t}\n}","import { ELEMENT, TEXT, COMMENT, VVIEW, VMODEL } from './VTYPES';\nimport { ViewModel } from './ViewModel';\n\nexport function createView(view, data, key, opts) {\n\tif (view.type === VVIEW) {\n\t\tdata\t= view.data;\n\t\tkey\t\t= view.key;\n\t\topts\t= view.opts;\n\t\tview\t= view.view;\n\t}\n\n\treturn new ViewModel(view, data, key, opts);\n}","import { ELEMENT, TEXT, COMMENT, VVIEW, VMODEL } from './VTYPES';\nimport { isArr, emptyObj } from '../utils';\nimport { patchAttrs } from './patchAttrs';\nimport { createView } from './createView';\nimport { LAZY_LIST } from './initElementNode';\n//import { XML_NS, XLINK_NS } from './defineSvgElement';\nimport { createElement, createTextNode, createComment, insertBefore } from './dom';\n\nexport function hydrateBody(vnode) {\n\tfor (var i = 0; i < vnode.body.length; i++) {\n\t\tvar vnode2 = vnode.body[i];\n\t\tvar type2 = vnode2.type;\n\n\t\t// ELEMENT,TEXT,COMMENT\n\t\tif (type2 <= COMMENT)\n\t\t\tinsertBefore(vnode.el, hydrate(vnode2));\t\t// vnode.el.appendChild(hydrate(vnode2))\n\t\telse if (type2 === VVIEW) {\n\t\t\tvar vm = createView(vnode2.view, vnode2.data, vnode2.key, vnode2.opts)._redraw(vnode, i, false);\t\t// todo: handle new data updates\n\t\t\ttype2 = vm.node.type;\n\t\t\tinsertBefore(vnode.el, hydrate(vm.node));\n\t\t}\n\t\telse if (type2 === VMODEL) {\n\t\t\tvar vm = vnode2.vm;\n\t\t\tvm._redraw(vnode, i);\t\t\t\t\t// , false\n\t\t\ttype2 = vm.node.type;\n\t\t\tinsertBefore(vnode.el, vm.node.el);\t\t// , hydrate(vm.node)\n\t\t}\n\t}\n}\n\n// TODO: DRY this out. reusing normal patch here negatively affects V8's JIT\nexport function hydrate(vnode, withEl) {\n\tif (vnode.el == null) {\n\t\tif (vnode.type === ELEMENT) {\n\t\t\tvnode.el = withEl || createElement(vnode.tag, vnode.ns);\n\n\t\t//\tif (vnode.tag === \"svg\")\n\t\t//\t\tvnode.el.setAttributeNS(XML_NS, 'xmlns:xlink', XLINK_NS);\n\n\t\t\tif (vnode.attrs != null)\n\t\t\t\tpatchAttrs(vnode, emptyObj, true);\n\n\t\t\tif ((vnode.flags & LAZY_LIST) === LAZY_LIST)\t// vnode.body instanceof LazyList\n\t\t\t\tvnode.body.body(vnode);\n\n\t\t\tif (isArr(vnode.body))\n\t\t\t\thydrateBody(vnode);\n\t\t\telse if (vnode.body != null && vnode.body !== \"\") {\n\t\t\t\tif (vnode.raw)\n\t\t\t\t\tvnode.el.innerHTML = vnode.body;\n\t\t\t\telse\n\t\t\t\t\tvnode.el.textContent = vnode.body;\n\t\t\t}\n\t\t}\n\t\telse if (vnode.type === TEXT)\n\t\t\tvnode.el = withEl || createTextNode(vnode.body);\n\t\telse if (vnode.type === COMMENT)\n\t\t\tvnode.el = withEl || createComment(vnode.body);\n\t}\n\n\tvnode.el._node = vnode;\n\n\treturn vnode.el;\n}","import { emptyObj } from '../utils';\nimport { hydrate } from './hydrate';\nimport { prevSib, nextSib, insertBefore, insertAfter, removeChild } from './dom';\nimport { devNotify } from \"./addons/devmode\";\n\nfunction nextNode(node, body) {\n\treturn body[node.idx + 1];\n}\n\nfunction prevNode(node, body) {\n\treturn body[node.idx - 1];\n}\n\nfunction parentNode(node) {\n\treturn node.parent;\n}\n\nfunction cmpElNodeIdx(a, b) {\n\treturn a._node.idx - b._node.idx;\n}\n\nfunction tmpEdges(fn, parEl, lftSib, rgtSib) {\n\t// get outer immute edges\n\tvar lftLft = prevSib(lftSib);\n\tvar rgtRgt = nextSib(rgtSib);\n\n\tfn(lftLft, rgtRgt);\n\n\treturn {\n\t\tlftSib: lftLft ? nextSib(lftLft) : parEl.firstChild,\n\t\trgtSib: rgtRgt ? prevSib(rgtRgt) : parEl.lastChild,\n\t};\n}\n\nfunction headTailTry(parEl, lftSib, lftNode, rgtSib, rgtNode) {\n\tvar areAdjacent\t= rgtNode.idx === lftNode.idx + 1;\n\tvar headToTail = areAdjacent ? false : lftSib._node === rgtNode;\n\tvar tailToHead = areAdjacent ? true : rgtSib._node === lftNode;\n\n\tif (headToTail || tailToHead) {\n\t\treturn tmpEdges(function(lftLft, rgtRgt) {\n\t\t\tif (tailToHead)\n\t\t\t\tinsertBefore(parEl, rgtSib, lftSib);\n\n\t\t\tif (headToTail)\n\t\t\t\tinsertBefore(parEl, lftSib, rgtRgt);\n\t\t}, parEl, lftSib, rgtSib);\n\t}\n\n\treturn null;\n}\n\n// init vm,\n\n// selection sort of DOM (cause move cost >> cmp cost)\n// todo: skip removed\nfunction sortDOM(parEl, lftSib, rgtSib, cmpFn) {\n//\tDEBUG && console.log(\"selection sort!\");\n\n\treturn tmpEdges(function(lftLft, rgtRgt) {\n\t\tvar min;\n\n\t\tfor (var i = lftSib; i !== rgtRgt; i = nextSib(i)) {\n\t\t\tlftSib = min = i;\n\n\t\t\tfor (var j = nextSib(i); j !== rgtRgt; j = nextSib(j)) {\n\t\t\t\tif (cmpFn(min, j) > 0)\n\t\t\t\t\tmin = j;\n\t\t\t}\n\n\t\t\tif (min === i)\n\t\t\t\tcontinue;\n\n\t\t\tinsertBefore(parEl, min, lftSib);\n\n\t\t\ti = min;\n\t\t}\n\t}, parEl, lftSib, rgtSib);\n}\n\nfunction cmpElNodeIdx(a, b) {\n\treturn a._node.idx - b._node.idx;\n}\n\nexport function syncChildren(node, donor) {\n\tvar parEl\t\t= node.el,\n\t\tbody\t\t= node.body,\n\t\tobody\t\t= donor.body,\n\t\tlftNode\t\t= body[0],\n\t\trgtNode\t\t= body[body.length - 1],\n\t\tlftSib\t\t= ((obody)[0] || emptyObj).el,\n\t//\tlftEnd\t\t= prevSib(lftSib),\n\t\trgtSib\t\t= (obody[obody.length - 1] || emptyObj).el,\n\t//\trgtEnd\t\t= nextSib(rgtSib),\n\t\tnewSibs,\n\t\ttmpSib,\n\t\tlsNode,\n\t\trsNode;\n\n\tconverge:\n\twhile (1) {\n//\t\tfrom_left:\n\t\twhile (1) {\n\t\t\t// remove any non-recycled sibs whose el.node has the old parent\n\t\t\tif (lftSib) {\n\t\t\t\t// skip dom elements not created by domvm\n\t\t\t\tif ((lsNode = lftSib._node) == null) {\n\t\t\t\t\tif (_DEVMODE)\n\t\t\t\t\t\tdevNotify(\"FOREIGN_ELEMENT\", [lftSib]);\n\n\t\t\t\t\tlftSib = nextSib(lftSib);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (parentNode(lsNode) !== node) {\n\t\t\t\t\ttmpSib = nextSib(lftSib);\n\t\t\t\t\tlsNode.vm != null ? lsNode.vm.unmount(true) : removeChild(parEl, lftSib);\n\t\t\t\t\tlftSib = tmpSib;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (lftNode == null)\t\t// reached end\n\t\t\t\tbreak converge;\n\t\t\telse if (lftNode.el == null) {\n\t\t\t\tinsertBefore(parEl, hydrate(lftNode), lftSib);\t\t// lftNode.vm != null ? lftNode.vm.mount(parEl, false, true, lftSib) :\n\t\t\t\tlftNode = nextNode(lftNode, body);\n\t\t\t}\n\t\t\telse if (lftNode.el === lftSib) {\n\t\t\t\tlftNode = nextNode(lftNode, body);\n\t\t\t\tlftSib = nextSib(lftSib);\n\t\t\t}\n\t\t\telse\n\t\t\t\tbreak;\n\t\t}\n\n//\t\tfrom_right:\n\t\twhile (1) {\n\t\t//\tif (rgtSib === lftEnd)\n\t\t//\t\tbreak converge;\n\n\t\t\tif (rgtSib) {\n\t\t\t\tif ((rsNode = rgtSib._node) == null) {\n\t\t\t\t\tif (_DEVMODE)\n\t\t\t\t\t\tdevNotify(\"FOREIGN_ELEMENT\", [rgtSib]);\n\n\t\t\t\t\trgtSib = prevSib(rgtSib);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (parentNode(rsNode) !== node) {\n\t\t\t\t\ttmpSib = prevSib(rgtSib);\n\t\t\t\t\trsNode.vm != null ? rsNode.vm.unmount(true) : removeChild(parEl, rgtSib);\n\t\t\t\t\trgtSib = tmpSib;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (rgtNode === lftNode)\t\t// converged\n\t\t\t\tbreak converge;\n\t\t\telse if (rgtNode.el == null) {\n\t\t\t\tinsertAfter(parEl, hydrate(rgtNode), rgtSib);\t\t// rgtNode.vm != null ? rgtNode.vm.mount(parEl, false, true, nextSib(rgtSib) :\n\t\t\t\trgtNode = prevNode(rgtNode, body);\n\t\t\t}\n\t\t\telse if (rgtNode.el === rgtSib) {\n\t\t\t\trgtNode = prevNode(rgtNode, body);\n\t\t\t\trgtSib = prevSib(rgtSib);\n\t\t\t}\n\t\t\telse\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif (newSibs = headTailTry(parEl, lftSib, lftNode, rgtSib, rgtNode)) {\n\t\t\tlftSib = newSibs.lftSib;\n\t\t\trgtSib = newSibs.rgtSib;\n\t\t\tcontinue;\n\t\t}\n\n\t\tnewSibs = sortDOM(parEl, lftSib, rgtSib, cmpElNodeIdx);\n\t\tlftSib = newSibs.lftSib;\n\t\trgtSib = newSibs.rgtSib;\n\t}\n}","import { ELEMENT, TEXT, COMMENT, VVIEW, VMODEL } from './VTYPES';\nimport { isArr, binaryKeySearch } from '../utils';\nimport { preProc } from './preProc';\nimport { hydrateBody } from './hydrate';\nimport { clearChildren } from './dom';\nimport { syncChildren } from './syncChildren';\nimport { fireHook } from './hooks';\nimport { patchAttrs } from './patchAttrs';\nimport { createView } from './createView';\nimport { FIXED_BODY, DEEP_REMOVE, KEYED_LIST, LAZY_LIST } from './initElementNode';\n\nfunction findSequential(n, obody, fromIdx, toIdx) {\t\t// pre-tested isView?\n\tfor (; fromIdx < obody.length; fromIdx++) {\n\t\tvar o = obody[fromIdx];\n\n\t\tif (n.type === VVIEW && o.vm != null) {\t\t\t// also ignore recycled/moved?\n\t\t\tvar ov = o.vm;\n\n\t\t\t// match by key & viewFn\n\t\t\tif (ov.view === n.view && ov.key === n.key)\n\t\t\t\treturn o;\n\t\t}\n\n\t\tif (o.el._node !== o || n.tag !== o.tag || n.type !== o.type || n.vm !== o.vm)\n\t\t\tcontinue;\n\n\t\t// if n.view\n\n\t\tif (n.key === o.key)\t\t// accounts for matching & both null\n\t\t\treturn o;\n\t\telse {\n\t\t\t//\n\t\t\tif (o.key == null) {\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t// n.key && o.key, ident?\n\t\t\telse {\n\t\t\t//\tconsole.log(n.key, o.key);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn null;\n}\n\nfunction findKeyedSequential(n, obody, fromIdx) {\n\tfor (; fromIdx < obody.length; fromIdx++) {\n\t\tvar o = obody[fromIdx];\n\n\t\tif (o.key === n.key)\n\t\t\treturn o;\n\t}\n\n\treturn null;\n}\n\n// list must be a sorted list of vnodes by key\nfunction findKeyedBinary(n, list) {\n\tvar idx = binaryKeySearch(list, n.key);\n\treturn idx > -1 ? list[idx] : null;\n}\n\n// have it handle initial hydrate? !donor?\n// types (and tags if ELEM) are assumed the same, and donor exists\nexport function patch(vnode, donor) {\n\tdonor.hooks && fireHook(\"willRecycle\", donor, vnode);\n\n\tvar el = vnode.el = donor.el;\n\n\tvar obody = donor.body;\n\tvar nbody = vnode.body;\n\n\tel._node = vnode;\n\n\t// \"\" => \"\"\n\tif (vnode.type === TEXT && nbody !== obody) {\n\t\tel.nodeValue = nbody;\n\t\treturn;\n\t}\n\n\tif (vnode.attrs != null || donor.attrs != null)\n\t\tpatchAttrs(vnode, donor, false);\n\n\t// patch events\n\n\tvar oldIsArr = isArr(obody);\n\tvar newIsArr = isArr(nbody);\n\tvar newIsLazy = (vnode.flags & LAZY_LIST) === LAZY_LIST;\n\n//\tvar nonEqNewBody = nbody != null && nbody !== obody;\n\n\tif (oldIsArr) {\n\t\t// [] => []\n\t\tif (newIsArr || newIsLazy) {\n\t\t//\tconsole.log('[] => []', obody, nbody);\n\t\t\t// graft children\n\t\t\tpatchChildren(vnode, donor, newIsLazy);\n\t\t}\n\t\t// [] => \"\" | null\n\t\telse if (nbody !== obody) {\n\t\t\t// needs cleanup pass?\n\t\t//\tconsole.log('[] => \"\"', obody, nbody);\n\n\t\t\tif (nbody != null) {\n\t\t\t\tif (vnode.raw)\n\t\t\t\t\tel.innerHTML = nbody;\n\t\t\t\telse\n\t\t\t\t\tel.textContent = nbody;\n\t\t\t}\n\t\t\telse\n\t\t\t\tclearChildren(donor);\n\t\t}\n\t}\n\telse {\n\t\t// \"\" | null => []\n\t\tif (newIsArr || newIsLazy) {\n\t\t//\tconsole.log('\"\" => []', obody, nbody);\t// hydrate new here?\n\t\t\tclearChildren(donor);\n\t\t\tnewIsLazy && nbody.body(vnode);\n\t\t\thydrateBody(vnode);\n\t\t}\n\t\t// \"\" | null => \"\" | null\n\t\telse if (nbody !== obody) {\n\t\t//\tconsole.log('\"\" => \"\"', donor, vnode);\n\n\t\t\tif (vnode.raw)\n\t\t\t\tel.innerHTML = nbody;\n\t\t\telse if (donor.raw)\n\t\t\t\tel.textContent = nbody;\n\t\t\telse if (el.firstChild)\n\t\t\t\tel.firstChild.nodeValue = nbody;\n\t\t\telse\n\t\t\t\tel.textContent = nbody;\n\t\t}\n\t}\n\n\tdonor.hooks && fireHook(\"didRecycle\", donor, vnode);\n}\n\nfunction sortByKey(a, b) {\n\treturn a.key > b.key ? 1 : a.key < b.key ? -1 : 0;\n}\n\n// larger qtys of KEYED_LIST children will use binary search\nconst SEQ_SEARCH_MAX = 100;\n\n// [] => []\nfunction patchChildren(vnode, donor, newIsLazy) {\n\tvar nbody\t\t= vnode.body,\n\t\tnlen\t\t= nbody.length,\n\t\tobody\t\t= donor.body,\n\t\tolen\t\t= obody.length,\n\t\toldIsFixed\t= (donor.flags & FIXED_BODY) === FIXED_BODY,\n\t\toldIsKeyed\t= (donor.flags & KEYED_LIST) === KEYED_LIST,\n\t\tdomSync\t\t= !oldIsFixed && donor.type === ELEMENT,\n\t\tfind\t\t= findSequential,\t// default\n\t\tlist\t\t= obody;\t\t\t// default\n\n\tif (domSync && nlen === 0) {\n\t\tclearChildren(donor);\n\t\tif (newIsLazy)\n\t\t\tvnode.body = []; // nbody.tpl(all);\n\t\treturn;\n\t}\n\n\t// use binary search for non-static keyed lists of large length\n\tif (oldIsKeyed) {\n\t\tif (olen > SEQ_SEARCH_MAX && !oldIsFixed) {\n\t\t\tfind = findKeyedBinary;\n\t\t\tlist = obody.slice();\n\t\t\tlist.sort(sortByKey);\n\t\t}\n\t\telse\n\t\t\tfind = findKeyedSequential;\n\t}\n\n\tvar donor2,\n\t\tnode2,\n\t\tdiffRes,\n\t\tremake,\n\t\ttype2,\n\t\tfromIdx = 0;\t\t\t\t// first unrecycled node (search head)\n\n\t// list should always be keyed, but FIXED_BODY prevents binary search sorting\n\tif (newIsLazy) {\n\t\tfind = findKeyedSequential\n\n\t\tvar fnode2 = {key: null};\n\n\t\tvar nbodyNew = Array(nlen);\n\n\t\tfor (var i = 0; i < nlen; i++) {\n\t\t\tremake = false;\n\t\t\tdiffRes = null;\n\n\t\t\tif (oldIsKeyed)\n\t\t\t\tfnode2.key = nbody.key(i);\n\n\t\t\tdonor2 = find(fnode2, list, fromIdx);\n\n\t\t\tif (donor2 != null) {\n\t\t\t\tdiffRes = nbody.diff(i, donor2);\n\n\t\t\t\t// diff returns same, so cheaply adopt vnode without patching\n\t\t\t\tif (diffRes === true) {\n\t\t\t\t\tnode2 = donor2;\n\t\t\t\t\tnode2.parent = vnode;\n\t\t\t\t\tnode2.idx = i;\n\t\t\t\t}\n\t\t\t\t// diff returns new diffVals, so generate new vnode & patch\n\t\t\t\telse\n\t\t\t\t\tremake = true;\n\t\t\t}\n\t\t\telse\n\t\t\t\tremake = true;\n\n\t\t\tif (remake) {\n\t\t\t\tnode2 = nbody.tpl(i);\n\t\t\t\tpreProc(node2, vnode, i);\n\n\t\t\t\tnode2._diff = diffRes != null ? diffRes : nbody.diff(i);\n\n\t\t\t\tif (donor2 != null)\n\t\t\t\t\tpatch(node2, donor2);\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// TODO: flag tmp FIXED_BODY on unchanged nodes?\n\n\t\t\t\t// domSync = true;\t\tif any idx changes or new nodes added/removed\n\t\t\t}\n\n\t\t\tnbodyNew[i] = node2;\n\n\t\t\t// to keep search space small, if donation is non-contig, move node fwd?\n\t\t\t// re-establish contigindex\n\t\t\tif (find !== findKeyedBinary && donor2 != null && donor2.idx === fromIdx)\n\t\t\t\tfromIdx++;\n\t\t}\n\n\t\t// replace List w/ new body\n\t\tvnode.body = nbodyNew;\n\t}\n\telse {\n\t\tfor (var i = 0; i < nlen; i++) {\n\t\t\tvar node2 = nbody[i];\n\t\t\tvar type2 = node2.type;\n\n\t\t\t// ELEMENT,TEXT,COMMENT\n\t\t\tif (type2 <= COMMENT) {\n\t\t\t\tif (donor2 = find(node2, list, fromIdx))\n\t\t\t\t\tpatch(node2, donor2);\n\t\t\t}\n\t\t\telse if (type2 === VVIEW) {\n\t\t\t\tif (donor2 = find(node2, list, fromIdx))\t\t// update/moveTo\n\t\t\t\t\tvar vm = donor2.vm._update(node2.data, vnode, i);\t\t// withDOM\n\t\t\t\telse\n\t\t\t\t\tvar vm = createView(node2.view, node2.data, node2.key, node2.opts)._redraw(vnode, i, false);\t// createView, no dom (will be handled by sync below)\n\n\t\t\t\ttype2 = vm.node.type;\n\t\t\t}\n\t\t\telse if (type2 === VMODEL) {\n\t\t\t\tvar vm = node2.vm._update(node2.data, vnode, i);\n\t\t\t\ttype2 = vm.node.type;\n\t\t\t}\n\n\t\t\t// to keep search space small, if donation is non-contig, move node fwd?\n\t\t\t// re-establish contigindex\n\t\t\tif (find !== findKeyedBinary && donor2 != null && donor2.idx === fromIdx)\n\t\t\t\tfromIdx++;\n\t\t}\n\t}\n\n\tdomSync && syncChildren(vnode, donor);\n}","import { patch } from \"./patch\";\nimport { hydrate } from \"./hydrate\";\nimport { preProc } from \"./preProc\";\nimport { isArr, isPlainObj, isFunc, isProm, cmpArr, cmpObj, assignObj, curry, raft, noop } from \"../utils\";\nimport { repaint, getVm } from \"./utils\";\nimport { insertBefore, removeChild, nextSib, clearChildren } from \"./dom\";\nimport { drainDidHooks, fireHook } from \"./hooks\";\nimport { devNotify, DEVMODE } from \"./addons/devmode\";\nimport { DOMInstr } from \"./addons/dominstr\";\n\nvar instr = null;\n\nif (_DEVMODE) {\n\tif (DEVMODE.mutations) {\n\t\tinstr = new DOMInstr(true);\n\t}\n}\n\n// view + key serve as the vm's unique identity\nexport function ViewModel(view, data, key, opts) {\n\tvar vm = this;\n\n\tvm.view = view;\n\tvm.data = data;\n\tvm.key = key;\n\n\tif (opts) {\n\t\tvm.opts = opts;\n\t\tvm.config(opts);\n\t}\n\n\tvar out = isPlainObj(view) ? view : view.call(vm, vm, data, key, opts);\n\n\tif (isFunc(out))\n\t\tvm.render = out;\n\telse {\n\t\tvm.render = out.render;\n\t\tvm.config(out);\n\t}\n\n\t// these must be wrapped here since they're debounced per view\n\tvm._redrawAsync = raft(_ => vm._redraw());\n\tvm._updateAsync = raft(newData => vm._update(newData));\n\n\tvm.init && vm.init.call(vm, vm, vm.data, vm.key, opts);\n}\n\nexport const ViewModelProto = ViewModel.prototype = {\n\tconstructor: ViewModel,\n\n\t_diff:\tnull,\t// diff cache\n\n\tinit:\tnull,\n\tview:\tnull,\n\tkey:\tnull,\n\tdata:\tnull,\n\tstate:\tnull,\n\tapi:\tnull,\n\topts:\tnull,\n\tnode:\tnull,\n\thooks:\tnull,\n\tonevent: noop,\n\trefs:\tnull,\n\trender:\tnull,\n\n\tmount: mount,\n\tunmount: unmount,\n\tconfig: function(opts) {\n\t\tvar t = this;\n\n\t\tif (opts.init)\n\t\t\tt.init = opts.init;\n\t\tif (opts.diff)\n\t\t\tt.diff = opts.diff;\n\t\tif (opts.onevent)\n\t\t\tt.onevent = opts.onevent;\n\n\t\t// maybe invert assignment order?\n\t\tif (opts.hooks)\n\t\t\tt.hooks = assignObj(t.hooks || {}, opts.hooks);\n\n\t\tif (FEAT_EMIT) {\n\t\t\tif (opts.onemit)\n\t\t\t\tt.onemit = assignObj(t.onemit || {}, opts.onemit);\n\t\t}\n\t},\n\tparent: function() {\n\t\treturn getVm(this.node.parent);\n\t},\n\troot: function() {\n\t\tvar p = this.node;\n\n\t\twhile (p.parent)\n\t\t\tp = p.parent;\n\n\t\treturn p.vm;\n\t},\n\tredraw: function(sync) {\n\t\tvar vm = this;\n\t\tsync ? vm._redraw() : vm._redrawAsync();\n\t\treturn vm;\n\t},\n\tupdate: function(newData, sync) {\n\t\tvar vm = this;\n\t\tsync ? vm._update(newData) : vm._updateAsync(newData);\n\t\treturn vm;\n\t},\n\n\t_update: updateSync,\n\t_redraw: redrawSync,\n\t_redrawAsync: null,\n\t_updateAsync: null,\n};\n\nfunction mount(el, isRoot) {\n\tvar vm = this;\n\n\tif (_DEVMODE) {\n\t\tif (DEVMODE.mutations)\n\t\t\tinstr.start();\n\t}\n\n\tif (isRoot) {\n\t\tclearChildren({el: el, flags: 0});\n\n\t\tvm._redraw(null, null, false);\n\n\t\t// if placeholder node doesnt match root tag\n\t\tif (el.nodeName.toLowerCase() !== vm.node.tag) {\n\t\t\thydrate(vm.node);\n\t\t\tinsertBefore(el.parentNode, vm.node.el, el);\n\t\t\tel.parentNode.removeChild(el);\n\t\t}\n\t\telse\n\t\t\tinsertBefore(el.parentNode, hydrate(vm.node, el), el);\n\t}\n\telse {\n\t\tvm._redraw(null, null);\n\n\t\tif (el)\n\t\t\tinsertBefore(el, vm.node.el);\n\t}\n\n\tif (el)\n\t\tdrainDidHooks(vm);\n\n\tif (_DEVMODE) {\n\t\tif (DEVMODE.mutations)\n\t\t\tconsole.log(instr.end());\n\t}\n\n\treturn vm;\n}\n\n// asSub means this was called from a sub-routine, so don't drain did* hook queue\nfunction unmount(asSub) {\n\tvar vm = this;\n\n\tvar node = vm.node;\n\tvar parEl = node.el.parentNode;\n\n\t// edge bug: this could also be willRemove promise-delayed; should .then() or something to make sure hooks fire in order\n\tremoveChild(parEl, node.el);\n\n\tif (!asSub)\n\t\tdrainDidHooks(vm);\n}\n\nfunction reParent(vm, vold, newParent, newIdx) {\n\tif (newParent != null) {\n\t\tnewParent.body[newIdx] = vold;\n\t\tvold.idx = newIdx;\n\t\tvold.parent = newParent;\n\t}\n\treturn vm;\n}\n\nfunction redrawSync(newParent, newIdx, withDOM) {\n\tconst isRedrawRoot = newParent == null;\n\tvar vm = this;\n\tvar isMounted = vm.node && vm.node.el && vm.node.el.parentNode;\n\n\tif (_DEVMODE) {\n\t\t// was mounted (has node and el), but el no longer has parent (unmounted)\n\t\tif (isRedrawRoot && vm.node && vm.node.el && !vm.node.el.parentNode)\n\t\t\tdevNotify(\"UNMOUNTED_REDRAW\", [vm]);\n\n\t\tif (isRedrawRoot && DEVMODE.mutations && isMounted)\n\t\t\tinstr.start();\n\t}\n\n\tvar vold = vm.node, oldDiff, newDiff;\n\n\tif (vm.diff != null) {\n\t\toldDiff = vm._diff;\n\t\tvm._diff = newDiff = vm.diff(vm, vm.data);\n\n\t\tif (vold != null) {\n\t\t\tvar cmpFn = isArr(oldDiff) ? cmpArr : cmpObj;\n\t\t\tvar isSame = oldDiff === newDiff || cmpFn(oldDiff, newDiff);\n\n\t\t\tif (isSame)\n\t\t\t\treturn reParent(vm, vold, newParent, newIdx);\n\t\t}\n\t}\n\n\tisMounted && vm.hooks && fireHook(\"willRedraw\", vm, vm.data);\n\n\tvar vnew = vm.render.call(vm, vm, vm.data, oldDiff, newDiff);\n\n\tif (vnew === vold)\n\t\treturn reParent(vm, vold, newParent, newIdx);\n\n\t// todo: test result of willRedraw hooks before clearing refs\n\tvm.refs = null;\n\n\t// always assign vm key to root vnode (this is a de-opt)\n\tif (vm.key != null && vnew.key !== vm.key)\n\t\tvnew.key = vm.key;\n\n\tvm.node = vnew;\n\n\tif (newParent) {\n\t\tpreProc(vnew, newParent, newIdx, vm);\n\t\tnewParent.body[newIdx] = vnew;\n\t}\n\telse if (vold && vold.parent) {\n\t\tpreProc(vnew, vold.parent, vold.idx, vm);\n\t\tvold.parent.body[vold.idx] = vnew;\n\t}\n\telse\n\t\tpreProc(vnew, null, null, vm);\n\n\tif (withDOM !== false) {\n\t\tif (vold) {\n\t\t\t// root node replacement\n\t\t\tif (vold.tag !== vnew.tag) {\n\t\t\t\t// hack to prevent the replacement from triggering mount/unmount\n\t\t\t\tvold.vm = vnew.vm = null;\n\n\t\t\t\tvar parEl = vold.el.parentNode;\n\t\t\t\tvar refEl = nextSib(vold.el);\n\t\t\t\tremoveChild(parEl, vold.el);\n\t\t\t\tinsertBefore(parEl, hydrate(vnew), refEl);\n\n\t\t\t\t// another hack that allows any higher-level syncChildren to set\n\t\t\t\t// reconciliation bounds using a live node\n\t\t\t\tvold.el = vnew.el;\n\n\t\t\t\t// restore\n\t\t\t\tvnew.vm = vm;\n\t\t\t}\n\t\t\telse\n\t\t\t\tpatch(vnew, vold);\n\t\t}\n\t\telse\n\t\t\thydrate(vnew);\n\t}\n\n\tisMounted && vm.hooks && fireHook(\"didRedraw\", vm, vm.data);\n\n\tif (isRedrawRoot && isMounted)\n\t\tdrainDidHooks(vm);\n\n\tif (_DEVMODE) {\n\t\tif (isRedrawRoot && DEVMODE.mutations && isMounted)\n\t\t\tconsole.log(instr.end());\n\t}\n\n\treturn vm;\n}\n\n// this also doubles as moveTo\n// TODO? @withRedraw (prevent redraw from firing)\nfunction updateSync(newData, newParent, newIdx, withDOM) {\n\tvar vm = this;\n\n\tif (newData != null) {\n\t\tif (vm.data !== newData) {\n\t\t\tif (_DEVMODE) {\n\t\t\t\tdevNotify(\"DATA_REPLACED\", [vm, vm.data, newData]);\n\t\t\t}\n\t\t\tvm.hooks && fireHook(\"willUpdate\", vm, newData);\n\t\t\tvm.data = newData;\n\t\t}\n\t}\n\n\treturn vm._redraw(newParent, newIdx, withDOM);\n}","import { COMMENT } from './VTYPES';\nimport { VNode } from './VNode';\n\nexport function defineComment(body) {\n\tlet node = new VNode;\n\tnode.type = COMMENT;\n\tnode.body = body;\n\treturn node;\n}","import { VVIEW } from './VTYPES';\n\n// placeholder for declared views\nexport function VView(view, data, key, opts) {\n\tthis.view = view;\n\tthis.data = data;\n\tthis.key = key;\n\tthis.opts = opts;\n}\n\nVView.prototype = {\n\tconstructor: VView,\n\n\ttype: VVIEW,\n\tview: null,\n\tdata: null,\n\tkey: null,\n\topts: null,\n};","import { VView } from './VView';\n\nexport function defineView(view, data, key, opts) {\n\treturn new VView(view, data, key, opts);\n}","import { VMODEL } from './VTYPES';\n\n// placeholder for injected ViewModels\nexport function VModel(vm) {\n\tthis.vm = vm;\n}\n\nVModel.prototype = {\n\tconstructor: VModel,\n\n\ttype: VMODEL,\n\tvm: null,\n};","import { VModel } from './VModel';\n\n\nexport function injectView(vm) {\n//\tif (vm.node == null)\n//\t\tvm._redraw(null, null, false);\n\n//\treturn vm.node;\n\n\treturn new VModel(vm);\n}","import { ELEMENT } from './VTYPES';\nimport { VNode } from './VNode';\n\nexport function injectElement(el) {\n\tlet node = new VNode;\n\tnode.type = ELEMENT;\n\tnode.el = node.key = el;\n\treturn node;\n}","import { noop, isArr, cmpArr, cmpObj } from '../utils';\nimport { preProc } from './preProc';\n\nexport function lazyList(items, cfg) {\n\tvar len = items.length;\n\n\tvar self = {\n\t\titems: items,\n\t\tlength: len,\n\t\t// defaults to returning item identity (or position?)\n\t\tkey: function(i) {\n\t\t\treturn cfg.key(items[i], i);\n\t\t},\n\t\t// default returns 0?\n\t\tdiff: function(i, donor) {\n\t\t\tvar newVals = cfg.diff(items[i], i);\n\t\t\tif (donor == null)\n\t\t\t\treturn newVals;\n\t\t\tvar oldVals = donor._diff;\n\t\t\tvar same = newVals === oldVals || isArr(oldVals) ? cmpArr(newVals, oldVals) : cmpObj(newVals, oldVals);\n\t\t\treturn same || newVals;\n\t\t},\n\t\ttpl: function(i) {\n\t\t\treturn cfg.tpl(items[i], i);\n\t\t},\n\t\tmap: function(tpl) {\n\t\t\tcfg.tpl = tpl;\n\t\t\treturn self;\n\t\t},\n\t\tbody: function(vnode) {\n\t\t\tvar nbody = Array(len);\n\n\t\t\tfor (var i = 0; i < len; i++) {\n\t\t\t\tvar vnode2 = self.tpl(i);\n\n\t\t\t//\tif ((vnode.flags & KEYED_LIST) === KEYED_LIST && self. != null)\n\t\t\t//\t\tvnode2.key = getKey(item);\n\n\t\t\t\tvnode2._diff = self.diff(i);\t\t\t// holds oldVals for cmp\n\n\t\t\t\tnbody[i] = vnode2;\n\n\t\t\t\t// run preproc pass (should this be just preProc in above loop?) bench\n\t\t\t\tpreProc(vnode2, vnode, i);\n\t\t\t}\n\n\t\t\t// replace List with generated body\n\t\t\tvnode.body = nbody;\n\t\t}\n\t};\n\n\treturn self;\n}","import { ViewModel } from \"../view/ViewModel\";\nimport { VNode } from \"../view/VNode\";\n\nimport { createView } from \"../view/createView\";\n\nimport { defineElement } from \"../view/defineElement\";\nimport { defineSvgElement } from \"../view/defineSvgElement\";\nimport { defineText } from \"../view/defineText\";\nimport { defineComment } from \"../view/defineComment\";\nimport { defineView } from \"../view/defineView\";\n\nimport { injectView } from \"../view/injectView\";\nimport { injectElement } from \"../view/injectElement\";\n\nimport { lazyList } from '../view/lazyList';\n\nimport { FIXED_BODY, DEEP_REMOVE, KEYED_LIST, LAZY_LIST } from \"../view/initElementNode\";\n\nimport { config } from '../view/config';\n\n// prevent GCC from inlining some large funcs (which negatively affects Chrome's JIT)\nimport { syncChildren } from \"../view/syncChildren\";\nwindow.syncChildren = syncChildren;\n\nexport default {\n\tconfig,\n\n\tViewModel,\n\tVNode,\n\n\tcreateView,\n\n\tdefineElement,\n\tdefineSvgElement,\n\tdefineText,\n\tdefineComment,\n\tdefineView,\n\n\tinjectView,\n\tinjectElement,\n\n\tlazyList,\n\n\tFIXED_BODY,\n\tDEEP_REMOVE,\n\tKEYED_LIST,\n\tLAZY_LIST,\n}","import { assignObj } from '../../utils';\nimport { getVm } from '../utils';\nimport { patchAttrs } from '../patchAttrs';\nimport { preProc } from '../preProc';\nimport { patch as fullPatch } from '../patch';\nimport { drainDidHooks } from '../hooks';\n\nexport function protoPatch(n) {\n\treturn patch(this, n);\n}\n\n// newNode can be either {class: style: } or full new VNode\n// will/didPatch hooks?\nexport function patch(o, n) {\n\tif (n.type != null) {\n\t\t// no full patching of view roots, just use redraw!\n\t\tif (o.vm != null)\n\t\t\treturn;\n\n\t\tpreProc(n, o.parent, o.idx, null);\n\t\to.parent.body[o.idx] = n;\n\t\tfullPatch(n, o);\n\t\tdrainDidHooks(getVm(n));\n\t}\n\telse {\n\t\t// TODO: re-establish refs\n\n\t\t// shallow-clone target\n\t\tvar donor = Object.create(o);\n\t\t// fixate orig attrs\n\t\tdonor.attrs = assignObj({}, o.attrs);\n\t\t// assign new attrs into live targ node\n\t\tvar oattrs = assignObj(o.attrs, n);\n\t\t// prepend any fixed shorthand class\n\t\tif (o._class != null) {\n\t\t\tvar aclass = oattrs.class;\n\t\t\toattrs.class = aclass != null && aclass !== \"\" ? o._class + \" \" + aclass : o._class;\n\t\t}\n\n\t\tpatchAttrs(o, donor);\n\t}\n}","import { default as nano } from \"./pico\";\n\nimport { VNodeProto } from '../view/VNode';\nimport { protoPatch } from \"../view/addons/patch\";\nVNodeProto.patch = protoPatch;\n\n/*\nimport { h } from \"../view/addons/h\";\n\nnano.h = h;\n\nimport { defineElementSpread } from \"../view/addons/defineElementSpread\";\n\nnano.defineElementSpread = defineElementSpread;\n*/\n\nexport default nano;","import { ViewModelProto } from '../ViewModel';\nimport { isArr } from '../../utils';\n\nexport function nextSubVms(n, accum) {\n\tvar body = n.body;\n\n\tif (isArr(body)) {\n\t\tfor (var i = 0; i < body.length; i++) {\n\t\t\tvar n2 = body[i];\n\n\t\t\tif (n2.vm != null)\n\t\t\t\taccum.push(n2.vm);\n\t\t\telse\n\t\t\t\tnextSubVms(n2, accum);\n\t\t}\n\t}\n\n\treturn accum;\n}","import { isPlainObj, isArr, isVal, sliceArgs } from '../../utils';\nimport { initElementNode, LAZY_LIST } from '../initElementNode';\n\nexport function defineElementSpread(tag) {\n\tvar args = arguments;\n\tvar len = args.length;\n\tvar body, attrs;\n\n\tif (len > 1) {\n\t\tvar bodyIdx = 1;\n\n\t\tif (isPlainObj(args[1])) {\n\t\t\tattrs = args[1];\n\t\t\tbodyIdx = 2;\n\t\t}\n\n\t\tif (len === bodyIdx + 1 && (isVal(args[bodyIdx]) || isArr(args[bodyIdx]) || attrs && (attrs._flags & LAZY_LIST) === LAZY_LIST))\n\t\t\tbody = args[bodyIdx];\n\t\telse\n\t\t\tbody = sliceArgs(args, bodyIdx);\n\t}\n\n\treturn initElementNode(tag, attrs, body);\n}","import { defineElementSpread } from \"./defineElementSpread\";\nimport { SVG_NS } from \"../defineSvgElement\";\n\nexport function defineSvgElementSpread() {\n\tvar n = defineElementSpread.apply(null, arguments);\n\tn.ns = SVG_NS;\n\treturn n;\n}","import { ViewModelProto } from '../view/ViewModel';\nimport { default as micro } from \"./nano\";\n\nimport { emit } from \"../view/addons/emit\";\nViewModelProto.emit = emit;\nViewModelProto.onemit = null;\n\nimport { nextSubVms } from \"../view/addons/vmBody\";\n\nViewModelProto.body = function() {\n\treturn nextSubVms(this.node, []);\n};\n\nimport { defineElementSpread } from \"../view/addons/defineElementSpread\";\nimport { defineSvgElementSpread } from \"../view/addons/defineSvgElementSpread\";\n\nmicro.defineElementSpread = defineElementSpread;\nmicro.defineSvgElementSpread = defineSvgElementSpread;\n\nexport default micro;","import { default as mini } from \"./micro\";\n\nimport { prop } from \"../utils\";\n\nmini.prop = prop;\n\nexport default mini;","import { VVIEW, VMODEL } from '../VTYPES';\nimport { createView } from '../createView';\nimport { isArr } from '../../utils';\nimport { isStyleProp, isSplProp, isEvProp, isDynProp } from '../utils';\nimport { patchEvent } from '../patchEvent';\nimport { setAttr } from '../patchAttrs';\nimport { LAZY_LIST } from '../initElementNode';\n\nexport function protoAttach(el) {\n\tvar vm = this;\n\tif (vm.node == null)\n\t\tvm._redraw(null, null, false)\n\n\tattach(vm.node, el);\n\n\treturn vm;\n};\n\n// very similar to hydrate, TODO: dry\nfunction attach(vnode, withEl) {\n\tvnode.el = withEl;\n\twithEl._node = vnode;\n\n\tvar nattrs = vnode.attrs;\n\n\tfor (var key in nattrs) {\n\t\tvar nval = nattrs[key];\n\t\tvar isDyn = isDynProp(vnode.tag, key);\n\n\t\tif (isStyleProp(key) || isSplProp(key)) {}\n\t\telse if (isEvProp(key))\n\t\t\tpatchEvent(vnode, key, nval);\n\t\telse if (nval != null && isDyn)\n\t\t\tsetAttr(vnode, key, nval, isDyn);\n\t}\n\n\tif ((vnode.flags & LAZY_LIST) === LAZY_LIST)\n\t\tvnode.body.body(vnode);\n\n\tif (isArr(vnode.body)) {\n\t\tvar c = withEl.firstChild;\n\t\tvar i = 0;\n\t\tvar v = vnode.body[i];\n\t\tdo {\n\t\t\tif (v.type === VVIEW)\n\t\t\t\tv = createView(v.view, v.data, v.key, v.opts)._redraw(vnode, i, false).node;\n\t\t\telse if (v.type === VMODEL)\n\t\t\t\tv = v.node || v._redraw(vnode, i, false).node;\n\n\t\t\tattach(v, c);\n\t\t} while ((c = c.nextSibling) && (v = vnode.body[++i]))\n\t}\n}","import { default as client } from \"./mini\";\n\nimport { ViewModelProto } from '../view/ViewModel';\nimport { protoAttach } from \"../view/addons/attach\";\nViewModelProto.attach = protoAttach;\n\nexport default client;"],"names":["const","let","patch","fullPatch","micro","mini"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"domvm.client.js","sources":["../../src/view/VTYPES.js","../../src/utils.js","../../src/view/VNode.js","../../src/view/defineText.js","../../src/view/utils.js","../../src/view/addons/stream.js","../../src/view/addons/cssTag.js","../../src/view/initElementNode.js","../../src/view/preProc.js","../../src/view/addons/autoPx.js","../../src/view/patchStyle.js","../../src/view/hooks.js","../../src/view/dom.js","../../src/view/addons/emit.js","../../src/view/config.js","../../src/view/patchEvent.js","../../src/view/defineElement.js","../../src/view/defineSvgElement.js","../../src/view/patchAttrs.js","../../src/view/createView.js","../../src/view/hydrate.js","../../src/view/syncChildren.js","../../src/view/patch.js","../../src/view/ViewModel.js","../../src/view/defineComment.js","../../src/view/VView.js","../../src/view/defineView.js","../../src/view/VModel.js","../../src/view/injectView.js","../../src/view/injectElement.js","../../src/view/lazyList.js","../../src/builds/pico.js","../../src/view/addons/patch.js","../../src/builds/nano.js","../../src/view/addons/vmBody.js","../../src/view/addons/defineElementSpread.js","../../src/view/addons/defineSvgElementSpread.js","../../src/builds/micro.js","../../src/builds/mini.js","../../src/view/addons/attach.js","../../src/builds/client.js"],"sourcesContent":["// NOTE: if adding a new *VNode* type, make it < COMMENT and renumber rest.\n// There are some places that test <= COMMENT to assert if node is a VNode\n\n// VNode types\nexport const ELEMENT\t= 1;\nexport const TEXT\t\t= 2;\nexport const COMMENT\t= 3;\n\n// placeholder types\nexport const VVIEW\t\t= 4;\nexport const VMODEL\t\t= 5;","export const ENV_DOM = typeof window !== \"undefined\";\nconst win = ENV_DOM ? window : {};\nconst rAF = win.requestAnimationFrame;\n\nexport const emptyObj = {};\n\nexport function noop() {};\n\nexport const isArr = Array.isArray;\n\nexport function isSet(val) {\n\treturn val != null;\n}\n\nexport function isPlainObj(val) {\n\treturn val != null && val.constructor === Object;\t\t// && typeof val === \"object\"\n}\n\nexport function insertArr(targ, arr, pos, rem) {\n\ttarg.splice.apply(targ, [pos, rem].concat(arr));\n}\n\nexport function isVal(val) {\n\tvar t = typeof val;\n\treturn t === \"string\" || t === \"number\";\n}\n\nexport function isFunc(val) {\n\treturn typeof val === \"function\";\n}\n\nexport function isProm(val) {\n\treturn typeof val === \"object\" && isFunc(val.then);\n}\n\nexport function isElem(val) {\n\treturn ENV_DOM && val instanceof HTMLElement;\n}\n\nexport function assignObj(targ) {\n\tvar args = arguments;\n\n\tfor (var i = 1; i < args.length; i++)\n\t\tfor (var k in args[i])\n\t\t\ttarg[k] = args[i][k];\n\n\treturn targ;\n}\n\n// export const defProp = Object.defineProperty;\n\nexport function deepSet(targ, path, val) {\n\tvar seg;\n\n\twhile (seg = path.shift()) {\n\t\tif (path.length === 0)\n\t\t\ttarg[seg] = val;\n\t\telse\n\t\t\ttarg[seg] = targ = targ[seg] || {};\n\t}\n}\n\n/*\nexport function deepUnset(targ, path) {\n\tvar seg;\n\n\twhile (seg = path.shift()) {\n\t\tif (path.length === 0)\n\t\t\ttarg[seg] = val;\n\t\telse\n\t\t\ttarg[seg] = targ = targ[seg] || {};\n\t}\n}\n*/\n\nexport function sliceArgs(args, offs) {\n\tvar arr = [];\n\tfor (var i = offs; i < args.length; i++)\n\t\tarr.push(args[i]);\n\treturn arr;\n}\n\nexport function cmpObj(a, b) {\n\tfor (var i in a)\n\t\tif (a[i] !== b[i])\n\t\t\treturn false;\n\n\treturn true;\n}\n\nexport function cmpArr(a, b) {\n\tconst alen = a.length;\n\n\tif (b.length !== alen)\n\t\treturn false;\n\n\tfor (var i = 0; i < alen; i++)\n\t\tif (a[i] !== b[i])\n\t\t\treturn false;\n\n\treturn true;\n}\n\n// https://github.com/darsain/raft\n// rAF throttler, aggregates multiple repeated redraw calls within single animframe\nexport function raft(fn) {\n\tif (!rAF)\n\t\treturn fn;\n\n\tvar id, ctx, args;\n\n\tfunction call() {\n\t\tid = 0;\n\t\tfn.apply(ctx, args);\n\t}\n\n\treturn function() {\n\t\tctx = this;\n\t\targs = arguments;\n\t\tif (!id) id = rAF(call);\n\t};\n}\n\nexport function curry(fn, args, ctx) {\n\treturn function() {\n\t\treturn fn.apply(ctx, args);\n\t};\n}\n\nexport function prop(val, cb, ctx, args) {\n\treturn function(newVal, execCb) {\n\t\tif (newVal !== undefined && newVal !== val) {\n\t\t\tval = newVal;\n\t\t\texecCb !== false && isFunc(cb) && cb.apply(ctx, args);\n\t\t}\n\n\t\treturn val;\n\t};\n}\n\n// adapted from https://github.com/Olical/binary-search\nexport function binaryKeySearch(list, item) {\n var min = 0;\n var max = list.length - 1;\n var guess;\n\n\tvar bitwise = (max <= 2147483647) ? true : false;\n\tif (bitwise) {\n\t\twhile (min <= max) {\n\t\t\tguess = (min + max) >> 1;\n\t\t\tif (list[guess].key === item) { return guess; }\n\t\t\telse {\n\t\t\t\tif (list[guess].key < item) { min = guess + 1; }\n\t\t\t\telse { max = guess - 1; }\n\t\t\t}\n\t\t}\n\t} else {\n\t\twhile (min <= max) {\n\t\t\tguess = Math.floor((min + max) / 2);\n\t\t\tif (list[guess].key === item) { return guess; }\n\t\t\telse {\n\t\t\t\tif (list[guess].key < item) { min = guess + 1; }\n\t\t\t\telse { max = guess - 1; }\n\t\t\t}\n\t\t}\n\t}\n\n return -1;\n}","export function VNode() {}\n\nexport const VNodeProto = VNode.prototype = {\n\tconstructor: VNode,\n\n\ttype:\tnull,\n\n\tvm:\t\tnull,\n\n\t// all this stuff can just live in attrs (as defined) just have getters here for it\n\tkey:\tnull,\n\tref:\tnull,\n\tdata:\tnull,\n\thooks:\tnull,\n\traw:\tfalse,\n\tns:\t\tnull,\n\n\tel:\t\tnull,\n\n\ttag:\tnull,\n\tattrs:\tnull,\n\tbody:\tnull,\n\n\tflags:\t0,\n\n\t_class:\tnull,\n\t_diff:\tnull,\n\n\t// pending removal on promise resolution\n\t_dead:\tfalse,\n\n\tidx:\tnull,\n\tparent:\tnull,\n\n\t/*\n\t// break out into optional fluent module\n\tkey:\tfunction(val) { this.key\t= val; return this; },\n\tref:\tfunction(val) { this.ref\t= val; return this; },\t\t// deep refs\n\tdata:\tfunction(val) { this.data\t= val; return this; },\n\thooks:\tfunction(val) { this.hooks\t= val; return this; },\t\t// h(\"div\").hooks()\n\thtml:\tfunction(val) { this.html\t= true; return this.body(val); },\n\n\tbody:\tfunction(val) { this.body\t= val; return this; },\n\t*/\n};","import { TEXT } from './VTYPES';\nimport { VNode } from './VNode';\n\nexport function defineText(body) {\n\tlet node = new VNode;\n\tnode.type = TEXT;\n\tnode.body = body;\n\treturn node;\n}","import { emptyObj } from '../utils';\n\nexport function isEvProp(name) {\n\treturn name[0] === \"o\" && name[1] === \"n\";\n}\n\nexport function isSplProp(name) {\n\treturn name[0] === \"_\";\n}\n\nexport function isStyleProp(name) {\n\treturn name === \"style\";\n}\n\nexport function repaint(node) {\n\tnode && node.el && node.el.offsetHeight;\n}\n\n// tests interactive props where real val should be compared\nexport function isDynProp(tag, attr) {\n//\tswitch (tag) {\n//\t\tcase \"input\":\n//\t\tcase \"textarea\":\n//\t\tcase \"select\":\n//\t\tcase \"option\":\n\t\t\tswitch (attr) {\n\t\t\t\tcase \"value\":\n\t\t\t\tcase \"checked\":\n\t\t\t\tcase \"selected\":\n//\t\t\t\tcase \"selectedIndex\":\n\t\t\t\t\treturn true;\n\t\t\t}\n//\t}\n\n\treturn false;\n}\n\nexport function getVm(n) {\n\tn = n || emptyObj;\n\twhile (n.vm == null && n.parent)\n\t\tn = n.parent;\n\treturn n.vm;\n}","export let isStream = function() { return false };\n\nlet streamVal = null;\nlet subStream = null;\nlet unsubStream = null;\n\nexport function streamCfg(cfg) {\n\tisStream\t= cfg.is;\n\tstreamVal\t= cfg.val;\n\tsubStream\t= cfg.sub;\n\tunsubStream\t= cfg.unsub;\n}\n\n// creates a one-shot self-ending stream that redraws target vm\n// TODO: if it's already registered by any parent vm, then ignore to avoid simultaneous parent & child refresh\nexport function hookStream(s, vm) {\n\tif (FEAT_STREAM) {\n\t\tvar redrawStream = subStream(s, val => {\n\t\t\t// this \"if\" ignores the initial firing during subscription (there's no redrawable vm yet)\n\t\t\tif (redrawStream) {\n\t\t\t\t// if vm fully is formed (or mounted vm.node.el?)\n\t\t\t\tif (vm.node != null)\n\t\t\t\t\tvm.redraw();\n\t\t\t\tunsubStream(redrawStream);\n\t\t\t}\n\t\t});\n\n\t\treturn streamVal(s);\n\t}\n}","const tagCache = {};\n\nconst RE_ATTRS = /\\[(\\w+)(?:=(\\w+))?\\]/g;\n\nconst tagObj = {};\n\nexport function cssTag(raw) {\n\tif (FEAT_CSSTAG) {\n\t\tvar cached = tagCache[raw];\n\n\t\tif (cached == null) {\n\t\t\tvar tag, id, cls, attr;\n\n\t\t\ttagCache[raw] = cached = {\n\t\t\t\ttag:\t(tag\t= raw.match( /^[-\\w]+/))\t\t?\ttag[0]\t\t\t\t\t\t: \"div\",\n\t\t\t\tid:\t\t(id\t\t= raw.match( /#([-\\w]+)/))\t\t? \tid[1]\t\t\t\t\t\t: null,\n\t\t\t\tclass:\t(cls\t= raw.match(/\\.([-\\w.]+)/))\t\t?\tcls[1].replace(/\\./g, \" \")\t: null,\n\t\t\t\tattrs:\tnull,\n\t\t\t};\n\n\t\t\twhile (attr = RE_ATTRS.exec(raw)) {\n\t\t\t\tif (cached.attrs == null)\n\t\t\t\t\tcached.attrs = {};\n\t\t\t\tcached.attrs[attr[1]] = attr[2] || \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn cached;\n\t}\n\telse {\n\t\ttagObj.tag = raw;\n\t\treturn tagObj;\n\t}\n}","import { ELEMENT } from './VTYPES';\nimport { VNode } from './VNode';\nimport { cssTag } from './addons/cssTag';\nimport { isSet, isPlainObj } from '../utils';\nimport { devNotify } from \"./addons/devmode\";\n\n// (de)optimization flags\n\n// prevents inserting/removing/reordering of children\nexport const FIXED_BODY = 1;\n// forces slow bottom-up removeChild to fire deep willRemove/willUnmount hooks,\nexport const DEEP_REMOVE = 2;\n// enables fast keyed lookup of children via binary search, expects homogeneous keyed body\nexport const KEYED_LIST = 4;\n// indicates an vnode match/diff/recycler function for body\nexport const LAZY_LIST = 8;\n\nexport function initElementNode(tag, attrs, body, flags) {\n\tlet node = new VNode;\n\n\tnode.type = ELEMENT;\n\n\tif (isSet(flags))\n\t\tnode.flags = flags;\n\n\tnode.attrs = attrs;\n\n\tvar parsed = cssTag(tag);\n\n\tnode.tag = parsed.tag;\n\n\t// meh, weak assertion, will fail for id=0, etc.\n\tif (parsed.id || parsed.class || parsed.attrs) {\n\t\tvar p = node.attrs || {};\n\n\t\tif (parsed.id && !isSet(p.id))\n\t\t\tp.id = parsed.id;\n\n\t\tif (parsed.class) {\n\t\t\tnode._class = parsed.class;\t\t// static class\n\t\t\tp.class = parsed.class + (isSet(p.class) ? (\" \" + p.class) : \"\");\n\t\t}\n\t\tif (parsed.attrs) {\n\t\t\tfor (var key in parsed.attrs)\n\t\t\t\tif (!isSet(p[key]))\n\t\t\t\t\tp[key] = parsed.attrs[key];\n\t\t}\n\n//\t\tif (node.attrs !== p)\n\t\t\tnode.attrs = p;\n\t}\n\n\tvar mergedAttrs = node.attrs;\n\n\tif (isSet(mergedAttrs)) {\n\t\tif (isSet(mergedAttrs._key))\n\t\t\tnode.key = mergedAttrs._key;\n\n\t\tif (isSet(mergedAttrs._ref))\n\t\t\tnode.ref = mergedAttrs._ref;\n\n\t\tif (isSet(mergedAttrs._hooks))\n\t\t\tnode.hooks = mergedAttrs._hooks;\n\n\t\tif (isSet(mergedAttrs._raw))\n\t\t\tnode.raw = mergedAttrs._raw;\n\n\t\tif (isSet(mergedAttrs._data))\n\t\t\tnode.data = mergedAttrs._data;\n\n\t\tif (isSet(mergedAttrs._flags))\n\t\t\tnode.flags = mergedAttrs._flags;\n\n\t\tif (!isSet(node.key)) {\n\t\t\tif (isSet(node.ref))\n\t\t\t\tnode.key = node.ref;\n\t\t\telse if (isSet(mergedAttrs.id))\n\t\t\t\tnode.key = mergedAttrs.id;\n\t\t\telse if (isSet(mergedAttrs.name))\n\t\t\t\tnode.key = mergedAttrs.name + (mergedAttrs.type == \"radio\" ? mergedAttrs.value : \"\");\n\t\t}\n\t}\n\n\tif (body != null)\n\t\tnode.body = body;\n\n\tif (_DEVMODE) {\n\t\tif (node.tag === \"svg\") {\n\t\t\tsetTimeout(function() {\n\t\t\t\tnode.ns == null && devNotify(\"SVG_WRONG_FACTORY\", [node]);\n\t\t\t}, 16);\n\t\t}\n\t\telse if (node.tag === \"input\" && node.key == null)\n\t\t\tdevNotify(\"UNKEYED_INPUT\", [node]);\n\t}\n\n\treturn node;\n}","import { TEXT, VVIEW, VMODEL } from './VTYPES';\nimport { defineText } from './defineText';\nimport { isVal, isArr, isFunc, insertArr, deepSet } from '../utils';\nimport { getVm } from './utils';\nimport { isStream, hookStream } from './addons/stream';\nimport { DEEP_REMOVE } from './initElementNode';\nimport { devNotify } from \"./addons/devmode\";\n\nfunction setRef(vm, name, node) {\n\tvar path = [\"refs\"].concat(name.split(\".\"));\n\tdeepSet(vm, path, node);\n}\n\nfunction setDeepRemove(node) {\n\twhile (node = node.parent)\n\t\tnode.flags |= DEEP_REMOVE;\n}\n\n// vnew, vold\nexport function preProc(vnew, parent, idx, ownVm) {\n\tif (vnew.type === VMODEL || vnew.type === VVIEW)\n\t\treturn;\n\n\tvnew.parent = parent;\n\tvnew.idx = idx;\n\tvnew.vm = ownVm;\n\n\tif (vnew.ref != null)\n\t\tsetRef(getVm(vnew), vnew.ref, vnew);\n\n\tvar nh = vnew.hooks,\n\t\tvh = ownVm && ownVm.hooks;\n\n\tif (nh && (nh.willRemove || nh.didRemove) ||\n\t\tvh && (vh.willUnmount || vh.didUnmount))\n\t\tsetDeepRemove(vnew);\n\n\tif (isArr(vnew.body))\n\t\tpreProcBody(vnew);\n\telse if (isStream(vnew.body))\n\t\tvnew.body = hookStream(vnew.body, getVm(vnew));\n}\n\nexport function preProcBody(vnew) {\n\tvar body = vnew.body;\n\n\tfor (var i = 0; i < body.length; i++) {\n\t\tvar node2 = body[i];\n\n\t\t// remove false/null/undefined\n\t\tif (node2 === false || node2 == null)\n\t\t\tbody.splice(i--, 1);\n\t\t// flatten arrays\n\t\telse if (isArr(node2)) {\n\t\t\tif (_DEVMODE) {\n\t\t\t\tif (i === 0 || i === body.length - 1)\n\t\t\t\t\tdevNotify(\"ARRAY_FLATTENED\", [vnew, node2]);\n\t\t\t}\n\t\t\tinsertArr(body, node2, i--, 1);\n\t\t}\n\t\telse {\n\t\t\tif (node2.type == null)\n\t\t\t\tbody[i] = node2 = defineText(\"\"+node2);\n\n\t\t\tif (node2.type === TEXT) {\n\t\t\t\t// remove empty text nodes\n\t\t\t\tif (node2.body == null || node2.body === \"\")\n\t\t\t\t\tbody.splice(i--, 1);\n\t\t\t\t// merge with previous text node\n\t\t\t\telse if (i > 0 && body[i-1].type === TEXT) {\n\t\t\t\t\tif (_DEVMODE) {\n\t\t\t\t\t\tdevNotify(\"ADJACENT_TEXT\", [vnew, body[i-1].body, node2.body]);\n\t\t\t\t\t}\n\t\t\t\t\tbody[i-1].body += node2.body;\n\t\t\t\t\tbody.splice(i--, 1);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t\tpreProc(node2, vnew, i, null);\n\t\t\t}\n\t\t\telse\n\t\t\t\tpreProc(node2, vnew, i, null);\n\t\t}\n\t}\n}","const unitlessProps = {\n\tanimationIterationCount: true,\n\tboxFlex: true,\n\tboxFlexGroup: true,\n\tboxOrdinalGroup: true,\n\tcolumnCount: true,\n\tflex: true,\n\tflexGrow: true,\n\tflexPositive: true,\n\tflexShrink: true,\n\tflexNegative: true,\n\tflexOrder: true,\n\tgridRow: true,\n\tgridColumn: true,\n\torder: true,\n\tlineClamp: true,\n\n\tborderImageOutset: true,\n\tborderImageSlice: true,\n\tborderImageWidth: true,\n\tfontWeight: true,\n\tlineHeight: true,\n\topacity: true,\n\torphans: true,\n\ttabSize: true,\n\twidows: true,\n\tzIndex: true,\n\tzoom: true,\n\n\tfillOpacity: true,\n\tfloodOpacity: true,\n\tstopOpacity: true,\n\tstrokeDasharray: true,\n\tstrokeDashoffset: true,\n\tstrokeMiterlimit: true,\n\tstrokeOpacity: true,\n\tstrokeWidth: true\n};\n\nexport function autoPx(name, val) {\n\tif (FEAT_AUTOPX) {\n\t\t// typeof val === 'number' is faster but fails for numeric strings\n\t\treturn !isNaN(val) && !unitlessProps[name] ? (val + \"px\") : val;\n\t}\n\telse\n\t\treturn val;\n}","import { isVal, emptyObj } from '../utils';\nimport { getVm } from './utils';\nimport { autoPx } from './addons/autoPx';\nimport { isStream, hookStream } from './addons/stream';\n\n// assumes if styles exist both are objects or both are strings\nexport function patchStyle(n, o) {\n\tvar ns = (n.attrs || emptyObj).style;\n\tvar os = o ? (o.attrs || emptyObj).style : null;\n\n\t// replace or remove in full\n\tif (ns == null || isVal(ns))\n\t\tn.el.style.cssText = ns;\n\telse {\n\t\tfor (var nn in ns) {\n\t\t\tvar nv = ns[nn];\n\n\t\t\tif (isStream(nv))\n\t\t\t\tnv = hookStream(nv, getVm(n));\n\n\t\t\tif (os == null || nv != null && nv !== os[nn])\n\t\t\t\tn.el.style[nn] = autoPx(nn, nv);\n\t\t}\n\n\t\t// clean old\n\t\tif (os) {\n\t\t\tfor (var on in os) {\n\t\t\t\tif (ns[on] == null)\n\t\t\t\t\tn.el.style[on] = \"\";\n\t\t\t}\n\t\t}\n\t}\n}","import { isArr } from '../utils';\nimport { repaint } from './utils';\n\nexport const didQueue = [];\n\nexport function fireHook(name, o, n, immediate) {\n\tvar fn = o.hooks[name];\n\n\tif (fn) {\n\t\tif (name[0] === \"d\" && name[1] === \"i\" && name[2] === \"d\") {\t// did*\n\t\t\t//\tconsole.log(name + \" should queue till repaint\", o, n);\n\t\t\timmediate ? repaint(o.parent) && fn(o, n) : didQueue.push([fn, o, n]);\n\t\t}\n\t\telse {\t\t// will*\n\t\t\t//\tconsole.log(name + \" may delay by promise\", o, n);\n\t\t\treturn fn(o, n);\t\t// or pass done() resolver\n\t\t}\n\t}\n}\n\nexport function drainDidHooks(vm) {\n\tif (didQueue.length) {\n\t\trepaint(vm.node);\n\n\t\tvar item;\n\t\twhile (item = didQueue.shift())\n\t\t\titem[0](item[1], item[2]);\n\t}\n}","import { ENV_DOM, isArr, isProm, curry } from '../utils';\nimport { fireHook } from './hooks';\nimport { FIXED_BODY, DEEP_REMOVE } from './initElementNode';\n\nconst doc = ENV_DOM ? document : null;\n\nexport function closestVNode(el) {\n\twhile (el._node == null)\n\t\tel = el.parentNode;\n\treturn el._node;\n}\n\nexport function createElement(tag, ns) {\n\tif (ns != null)\n\t\treturn doc.createElementNS(ns, tag);\n\treturn doc.createElement(tag);\n}\n\nexport function createTextNode(body) {\n\treturn doc.createTextNode(body);\n}\n\nexport function createComment(body) {\n\treturn doc.createComment(body);\n}\n\n// ? removes if !recycled\nexport function nextSib(sib) {\n\treturn sib.nextSibling;\n}\n\n// ? removes if !recycled\nexport function prevSib(sib) {\n\treturn sib.previousSibling;\n}\n\n// TODO: this should collect all deep proms from all hooks and return Promise.all()\nfunction deepNotifyRemove(node) {\n\tvar hooks = node.hooks, vm = node.vm;\n\n\tvar wuRes = vm && vm.hooks && fireHook(\"willUnmount\", vm, vm.data);\n\n\tvar wrRes = hooks && fireHook(\"willRemove\", node);\n\n\tif ((node.flags & DEEP_REMOVE) === DEEP_REMOVE && isArr(node.body)) {\n\t\tfor (var i = 0; i < node.body.length; i++)\n\t\t\tdeepNotifyRemove(node.body[i]);\n\t}\n\n\treturn wuRes || wrRes;\n}\n\nfunction _removeChild(parEl, el, immediate) {\n\tvar node = el._node, hooks = node.hooks, vm = node.vm;\n\n\tif ((node.flags & DEEP_REMOVE) === DEEP_REMOVE && isArr(node.body)) {\n\t//\tvar parEl = node.el;\n\t\tfor (var i = 0; i < node.body.length; i++)\n\t\t\t_removeChild(el, node.body[i].el);\n\t}\n\n\tparEl.removeChild(el);\n\n\thooks && fireHook(\"didRemove\", node, null, immediate);\n\n\tvm && vm.hooks && fireHook(\"didUnmount\", vm, vm.data, immediate);\n}\n\n// todo: should delay parent unmount() by returning res prom?\nexport function removeChild(parEl, el) {\n\tvar node = el._node, hooks = node.hooks;\n\n\t// already marked for removal\n\tif (node._dead) return;\n\n\tvar res = deepNotifyRemove(node);\n\n\tif (res != null && isProm(res)) {\n\t\tnode._dead = true;\n\t\tres.then(curry(_removeChild, [parEl, el, true]));\n\t}\n\telse\n\t\t_removeChild(parEl, el);\n}\n\nexport function clearChildren(parent) {\n\tvar parEl = parent.el;\n\n\tif ((parent.flags & DEEP_REMOVE) === 0)\n\t\tparEl.textContent = null;\n\telse {\n\t\tvar el = parEl.firstChild;\n\n\t\tdo {\n\t\t\tvar next = nextSib(el);\n\t\t\tremoveChild(parEl, el);\n\t\t} while (el = next);\n\t}\n}\n\n// todo: hooks\nexport function insertBefore(parEl, el, refEl) {\n\tvar node = el._node, hooks = node.hooks, inDom = el.parentNode != null;\n\n\t// el === refEl is asserted as a no-op insert called to fire hooks\n\tvar vm = (el === refEl || !inDom) && node.vm;\n\n\tvm && vm.hooks && fireHook(\"willMount\", vm, vm.data);\n\n\thooks && fireHook(inDom ? \"willReinsert\" : \"willInsert\", node);\n\tparEl.insertBefore(el, refEl);\n\thooks && fireHook(inDom ? \"didReinsert\" : \"didInsert\", node);\n\n\tvm && vm.hooks && fireHook(\"didMount\", vm, vm.data);\n}\n\nexport function insertAfter(parEl, el, refEl) {\n\tinsertBefore(parEl, el, refEl ? nextSib(refEl) : null);\n}","import { isVal, sliceArgs, assignObj } from '../../utils';\n\nvar onemit = {};\n\nexport function emitCfg(cfg) {\n\tassignObj(onemit, cfg);\n}\n\nexport function emit(evName) {\n\tvar targ = this,\n\t\tsrc = targ;\n\n\tvar args = sliceArgs(arguments, 1).concat(src, src.data);\n\n\tdo {\n\t\tvar evs = targ.onemit;\n\t\tvar fn = evs ? evs[evName] : null;\n\n\t\tif (fn) {\n\t\t\tfn.apply(targ, args);\n\t\t\tbreak;\n\t\t}\n\t} while (targ = targ.parent());\n\n\tif (onemit[evName])\n\t\tonemit[evName].apply(targ, args);\n}","import { noop } from '../utils';\nimport { streamCfg } from './addons/stream';\nimport { emitCfg } from './addons/emit';\n\nexport let onevent = noop;\n\nexport function config(newCfg) {\n\tonevent = newCfg.onevent || onevent;\n\n\tif (FEAT_EMIT) {\n\t\tif (newCfg.onemit)\n\t\t\temitCfg(newCfg.onemit);\n\t}\n\n\tif (FEAT_STREAM) {\n\t\tif (newCfg.stream)\n\t\t\tstreamCfg(newCfg.stream);\n\t}\n}","import { isArr, isFunc, cmpArr } from '../utils';\nimport { closestVNode } from './dom';\nimport { getVm } from './utils';\nimport { onevent } from './config';\nimport { devNotify } from \"./addons/devmode\";\n\nfunction bindEv(el, type, fn) {\n//\tDEBUG && console.log(\"addEventListener\");\n\tel[type] = fn;\n}\n\nfunction handle(e, fn, args) {\n\tvar node = closestVNode(e.target);\n\tvar vm = getVm(node);\n\tvar out = fn.apply(null, args.concat([e, node, vm, vm.data]));\n\n\t// should these respect out === false?\n\tvm.onevent(e, node, vm, vm.data, args);\n\tonevent.call(null, e, node, vm, vm.data, args);\n\n\tif (out === false) {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t}\n}\n\nfunction wrapHandler(fn, args) {\n//\tconsole.log(\"wrapHandler\");\n\n\treturn function wrap(e) {\n\t\thandle(e, fn, args);\n\t};\n}\n\n// delagated handlers {\".moo\": [fn, a, b]}, {\".moo\": fn}\nfunction wrapHandlers(hash) {\n//\tconsole.log(\"wrapHandlers\");\n\n\treturn function wrap(e) {\n\t\tfor (var sel in hash) {\n\t\t\tif (e.target.matches(sel)) {\n\t\t\t\tvar hnd = hash[sel];\n\t\t\t\tvar isarr = isArr(hnd);\n\t\t\t\tvar fn = isarr ? hnd[0] : hnd;\n\t\t\t\tvar args = isarr ? hnd.slice(1) : [];\n\n\t\t\t\thandle(e, fn, args);\n\t\t\t}\n\t\t}\n\t}\n}\n\n// could merge with on*\n\nexport function patchEvent(node, name, nval, oval) {\n\tif (nval === oval)\n\t\treturn;\n\n\tvar el = node.el;\n\n\tif (nval._raw) {\n\t\tbindEv(el, name, nval);\n\t\treturn;\n\t}\n\n\tif (_DEVMODE) {\n\t\tif (isFunc(nval) && isFunc(oval) && oval.name == nval.name)\n\t\t\tdevNotify(\"INLINE_HANDLER\", [node, oval, nval]);\n\t}\n\n\t// param'd eg onclick: [myFn, 1, 2, 3...]\n\tif (isArr(nval)) {\n\t\tif (_DEVMODE) {\n\t\t\tif (oval != null && !isArr(oval))\n\t\t\t\tdevNotify(\"MISMATCHED_HANDLER\", [node, oval, nval]);\n\t\t}\n\t\tvar diff = oval == null || !cmpArr(nval, oval);\n\t\tdiff && bindEv(el, name, wrapHandler(nval[0], nval.slice(1)));\n\t}\n\t// basic onclick: myFn (or extracted)\n\telse if (isFunc(nval)) {\n\t\tif (_DEVMODE) {\n\t\t\tif (oval != null && !isFunc(oval))\n\t\t\t\tdevNotify(\"MISMATCHED_HANDLER\", [node, oval, nval]);\n\t\t}\n\t\tbindEv(el, name, wrapHandler(nval, []));\n\t}\n\t// delegated onclick: {\".sel\": myFn} & onclick: {\".sel\": [myFn, 1, 2, 3]}\n\telse\t\t// isPlainObj, TODO:, diff with old/clean\n\t\tbindEv(el, name, wrapHandlers(nval));\n}","import { isPlainObj } from '../utils';\nimport { initElementNode } from './initElementNode';\n\nexport function defineElement(tag, arg1, arg2, flags) {\n\tvar attrs, body;\n\n\tif (arg2 == null) {\n\t\tif (isPlainObj(arg1))\n\t\t\tattrs = arg1;\n\t\telse\n\t\t\tbody = arg1;\n\t}\n\telse {\n\t\tattrs = arg1;\n\t\tbody = arg2;\n\t}\n\n\treturn initElementNode(tag, attrs, body, flags);\n}","import { defineElement } from \"./defineElement\";\n\n//export const XML_NS = \"http://www.w3.org/2000/xmlns/\";\nexport const SVG_NS = \"http://www.w3.org/2000/svg\";\nexport const XLINK_NS = \"http://www.w3.org/1999/xlink\";\n\nexport function defineSvgElement(tag, arg1, arg2, flags) {\n\tvar n = defineElement(tag, arg1, arg2, flags);\n\tn.ns = SVG_NS;\n\treturn n;\n}","import { isStyleProp, isSplProp, isEvProp, isDynProp, getVm } from './utils';\nimport { isFunc, emptyObj } from '../utils';\nimport { patchStyle } from './patchStyle';\nimport { patchEvent } from './patchEvent';\nimport { isStream, hookStream } from './addons/stream';\nimport { devNotify } from \"./addons/devmode\";\nimport { XLINK_NS } from './defineSvgElement';\n\nconst XLINKHREF = \"xlink:href\";\n\nexport function remAttr(node, name, asProp) {\n\tif (asProp)\n\t\tnode.el[name] = \"\";\n\telse {\n\t\tif (name === XLINKHREF)\n\t\t\tnode.el.removeAttributeNS(XLINK_NS, \"href\");\n\t\telse\n\t\t\tnode.el.removeAttribute(name);\n\t}\n}\n\n// setAttr\n// diff, \".\", \"on*\", bool vals, skip _*, value/checked/selected selectedIndex\nexport function setAttr(node, name, val, asProp, initial) {\n\tvar el = node.el;\n\n\tif (val == null)\n\t\t!initial && remAttr(node, name, false);\t\t//, asProp? // will also removeAttr of style: null\n\telse if (node.ns != null) {\n\t\tif (name === XLINKHREF)\n\t\t\tel.setAttributeNS(XLINK_NS, \"href\", val);\n\t\telse\n\t\t\tel.setAttribute(name, val);\n\t}\n\telse if (name === \"class\")\n\t\tel.className = val;\n\telse if (name === \"id\" || typeof val === \"boolean\" || asProp)\n\t\tel[name] = val;\n\telse if (name[0] === \".\")\n\t\tel[name.substr(1)] = val;\n\telse\n\t\tel.setAttribute(name, val);\n}\n\nexport function patchAttrs(vnode, donor, initial) {\n\tconst nattrs = vnode.attrs || emptyObj;\n\tconst oattrs = donor.attrs || emptyObj;\n\n\tif (nattrs === oattrs) {\n\t\tif (_DEVMODE)\n\t\t\tdevNotify(\"REUSED_ATTRS\", [vnode]);\n\t}\n\telse {\n\t\tfor (var key in nattrs) {\n\t\t\tvar nval = nattrs[key];\n\t\t\tvar isDyn = isDynProp(vnode.tag, key);\n\t\t\tvar oval = isDyn ? vnode.el[key] : oattrs[key];\n\n\t\t\tif (isStream(nval))\n\t\t\t\tnattrs[key] = nval = hookStream(nval, getVm(vnode));\n\n\t\t\tif (nval === oval) {}\n\t\t\telse if (isStyleProp(key))\n\t\t\t\tpatchStyle(vnode, donor);\n\t\t\telse if (isSplProp(key)) {}\n\t\t\telse if (isEvProp(key))\n\t\t\t\tpatchEvent(vnode, key, nval, oval);\n\t\t\telse\n\t\t\t\tsetAttr(vnode, key, nval, isDyn, initial);\n\t\t}\n\n\t\t// TODO: handle key[0] === \".\"\n\t\t// should bench style.cssText = \"\" vs removeAttribute(\"style\")\n\t\tfor (var key in oattrs) {\n\t\t\t!(key in nattrs) &&\n\t\t\t!isSplProp(key) &&\n\t\t\tremAttr(vnode, key, isDynProp(vnode.tag, key) || isEvProp(key));\n\t\t}\n\t}\n}","import { ELEMENT, TEXT, COMMENT, VVIEW, VMODEL } from './VTYPES';\nimport { ViewModel } from './ViewModel';\n\nexport function createView(view, data, key, opts) {\n\tif (view.type === VVIEW) {\n\t\tdata\t= view.data;\n\t\tkey\t\t= view.key;\n\t\topts\t= view.opts;\n\t\tview\t= view.view;\n\t}\n\n\treturn new ViewModel(view, data, key, opts);\n}","import { ELEMENT, TEXT, COMMENT, VVIEW, VMODEL } from './VTYPES';\nimport { isArr, emptyObj } from '../utils';\nimport { patchAttrs } from './patchAttrs';\nimport { createView } from './createView';\nimport { LAZY_LIST } from './initElementNode';\n//import { XML_NS, XLINK_NS } from './defineSvgElement';\nimport { createElement, createTextNode, createComment, insertBefore } from './dom';\n\nexport function hydrateBody(vnode) {\n\tfor (var i = 0; i < vnode.body.length; i++) {\n\t\tvar vnode2 = vnode.body[i];\n\t\tvar type2 = vnode2.type;\n\n\t\t// ELEMENT,TEXT,COMMENT\n\t\tif (type2 <= COMMENT)\n\t\t\tinsertBefore(vnode.el, hydrate(vnode2));\t\t// vnode.el.appendChild(hydrate(vnode2))\n\t\telse if (type2 === VVIEW) {\n\t\t\tvar vm = createView(vnode2.view, vnode2.data, vnode2.key, vnode2.opts)._redraw(vnode, i, false);\t\t// todo: handle new data updates\n\t\t\ttype2 = vm.node.type;\n\t\t\tinsertBefore(vnode.el, hydrate(vm.node));\n\t\t}\n\t\telse if (type2 === VMODEL) {\n\t\t\tvar vm = vnode2.vm;\n\t\t\tvm._redraw(vnode, i);\t\t\t\t\t// , false\n\t\t\ttype2 = vm.node.type;\n\t\t\tinsertBefore(vnode.el, vm.node.el);\t\t// , hydrate(vm.node)\n\t\t}\n\t}\n}\n\n// TODO: DRY this out. reusing normal patch here negatively affects V8's JIT\nexport function hydrate(vnode, withEl) {\n\tif (vnode.el == null) {\n\t\tif (vnode.type === ELEMENT) {\n\t\t\tvnode.el = withEl || createElement(vnode.tag, vnode.ns);\n\n\t\t//\tif (vnode.tag === \"svg\")\n\t\t//\t\tvnode.el.setAttributeNS(XML_NS, 'xmlns:xlink', XLINK_NS);\n\n\t\t\tif (vnode.attrs != null)\n\t\t\t\tpatchAttrs(vnode, emptyObj, true);\n\n\t\t\tif ((vnode.flags & LAZY_LIST) === LAZY_LIST)\t// vnode.body instanceof LazyList\n\t\t\t\tvnode.body.body(vnode);\n\n\t\t\tif (isArr(vnode.body))\n\t\t\t\thydrateBody(vnode);\n\t\t\telse if (vnode.body != null && vnode.body !== \"\") {\n\t\t\t\tif (vnode.raw)\n\t\t\t\t\tvnode.el.innerHTML = vnode.body;\n\t\t\t\telse\n\t\t\t\t\tvnode.el.textContent = vnode.body;\n\t\t\t}\n\t\t}\n\t\telse if (vnode.type === TEXT)\n\t\t\tvnode.el = withEl || createTextNode(vnode.body);\n\t\telse if (vnode.type === COMMENT)\n\t\t\tvnode.el = withEl || createComment(vnode.body);\n\t}\n\n\tvnode.el._node = vnode;\n\n\treturn vnode.el;\n}","import { emptyObj } from '../utils';\nimport { hydrate } from './hydrate';\nimport { prevSib, nextSib, insertBefore, insertAfter, removeChild } from './dom';\nimport { devNotify } from \"./addons/devmode\";\n\nfunction nextNode(node, body) {\n\treturn body[node.idx + 1];\n}\n\nfunction prevNode(node, body) {\n\treturn body[node.idx - 1];\n}\n\nfunction parentNode(node) {\n\treturn node.parent;\n}\n\nfunction cmpElNodeIdx(a, b) {\n\treturn a._node.idx - b._node.idx;\n}\n\nfunction tmpEdges(fn, parEl, lftSib, rgtSib) {\n\t// get outer immute edges\n\tvar lftLft = prevSib(lftSib);\n\tvar rgtRgt = nextSib(rgtSib);\n\n\tfn(lftLft, rgtRgt);\n\n\treturn {\n\t\tlftSib: lftLft ? nextSib(lftLft) : parEl.firstChild,\n\t\trgtSib: rgtRgt ? prevSib(rgtRgt) : parEl.lastChild,\n\t};\n}\n\nfunction headTailTry(parEl, lftSib, lftNode, rgtSib, rgtNode) {\n\tvar areAdjacent\t= rgtNode.idx === lftNode.idx + 1;\n\tvar headToTail = areAdjacent ? false : lftSib._node === rgtNode;\n\tvar tailToHead = areAdjacent ? true : rgtSib._node === lftNode;\n\n\tif (headToTail || tailToHead) {\n\t\treturn tmpEdges(function(lftLft, rgtRgt) {\n\t\t\tif (tailToHead)\n\t\t\t\tinsertBefore(parEl, rgtSib, lftSib);\n\n\t\t\tif (headToTail)\n\t\t\t\tinsertBefore(parEl, lftSib, rgtRgt);\n\t\t}, parEl, lftSib, rgtSib);\n\t}\n\n\treturn null;\n}\n\n// init vm,\n\n// selection sort of DOM (cause move cost >> cmp cost)\n// todo: skip removed\nfunction sortDOM(parEl, lftSib, rgtSib, cmpFn) {\n//\tDEBUG && console.log(\"selection sort!\");\n\n\treturn tmpEdges(function(lftLft, rgtRgt) {\n\t\tvar min;\n\n\t\tfor (var i = lftSib; i !== rgtRgt; i = nextSib(i)) {\n\t\t\tlftSib = min = i;\n\n\t\t\tfor (var j = nextSib(i); j !== rgtRgt; j = nextSib(j)) {\n\t\t\t\tif (cmpFn(min, j) > 0)\n\t\t\t\t\tmin = j;\n\t\t\t}\n\n\t\t\tif (min === i)\n\t\t\t\tcontinue;\n\n\t\t\tinsertBefore(parEl, min, lftSib);\n\n\t\t\ti = min;\n\t\t}\n\t}, parEl, lftSib, rgtSib);\n}\n\nfunction cmpElNodeIdx(a, b) {\n\treturn a._node.idx - b._node.idx;\n}\n\nexport function syncChildren(node, donor) {\n\tvar parEl\t\t= node.el,\n\t\tbody\t\t= node.body,\n\t\tobody\t\t= donor.body,\n\t\tlftNode\t\t= body[0],\n\t\trgtNode\t\t= body[body.length - 1],\n\t\tlftSib\t\t= ((obody)[0] || emptyObj).el,\n\t//\tlftEnd\t\t= prevSib(lftSib),\n\t\trgtSib\t\t= (obody[obody.length - 1] || emptyObj).el,\n\t//\trgtEnd\t\t= nextSib(rgtSib),\n\t\tnewSibs,\n\t\ttmpSib,\n\t\tlsNode,\n\t\trsNode;\n\n\tconverge:\n\twhile (1) {\n//\t\tfrom_left:\n\t\twhile (1) {\n\t\t\t// remove any non-recycled sibs whose el.node has the old parent\n\t\t\tif (lftSib) {\n\t\t\t\t// skip dom elements not created by domvm\n\t\t\t\tif ((lsNode = lftSib._node) == null) {\n\t\t\t\t\tif (_DEVMODE)\n\t\t\t\t\t\tdevNotify(\"FOREIGN_ELEMENT\", [lftSib]);\n\n\t\t\t\t\tlftSib = nextSib(lftSib);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (parentNode(lsNode) !== node) {\n\t\t\t\t\ttmpSib = nextSib(lftSib);\n\t\t\t\t\tlsNode.vm != null ? lsNode.vm.unmount(true) : removeChild(parEl, lftSib);\n\t\t\t\t\tlftSib = tmpSib;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (lftNode == null)\t\t// reached end\n\t\t\t\tbreak converge;\n\t\t\telse if (lftNode.el == null) {\n\t\t\t\tinsertBefore(parEl, hydrate(lftNode), lftSib);\t\t// lftNode.vm != null ? lftNode.vm.mount(parEl, false, true, lftSib) :\n\t\t\t\tlftNode = nextNode(lftNode, body);\n\t\t\t}\n\t\t\telse if (lftNode.el === lftSib) {\n\t\t\t\tlftNode = nextNode(lftNode, body);\n\t\t\t\tlftSib = nextSib(lftSib);\n\t\t\t}\n\t\t\telse\n\t\t\t\tbreak;\n\t\t}\n\n//\t\tfrom_right:\n\t\twhile (1) {\n\t\t//\tif (rgtSib === lftEnd)\n\t\t//\t\tbreak converge;\n\n\t\t\tif (rgtSib) {\n\t\t\t\tif ((rsNode = rgtSib._node) == null) {\n\t\t\t\t\tif (_DEVMODE)\n\t\t\t\t\t\tdevNotify(\"FOREIGN_ELEMENT\", [rgtSib]);\n\n\t\t\t\t\trgtSib = prevSib(rgtSib);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (parentNode(rsNode) !== node) {\n\t\t\t\t\ttmpSib = prevSib(rgtSib);\n\t\t\t\t\trsNode.vm != null ? rsNode.vm.unmount(true) : removeChild(parEl, rgtSib);\n\t\t\t\t\trgtSib = tmpSib;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (rgtNode === lftNode)\t\t// converged\n\t\t\t\tbreak converge;\n\t\t\telse if (rgtNode.el == null) {\n\t\t\t\tinsertAfter(parEl, hydrate(rgtNode), rgtSib);\t\t// rgtNode.vm != null ? rgtNode.vm.mount(parEl, false, true, nextSib(rgtSib) :\n\t\t\t\trgtNode = prevNode(rgtNode, body);\n\t\t\t}\n\t\t\telse if (rgtNode.el === rgtSib) {\n\t\t\t\trgtNode = prevNode(rgtNode, body);\n\t\t\t\trgtSib = prevSib(rgtSib);\n\t\t\t}\n\t\t\telse\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif (newSibs = headTailTry(parEl, lftSib, lftNode, rgtSib, rgtNode)) {\n\t\t\tlftSib = newSibs.lftSib;\n\t\t\trgtSib = newSibs.rgtSib;\n\t\t\tcontinue;\n\t\t}\n\n\t\tnewSibs = sortDOM(parEl, lftSib, rgtSib, cmpElNodeIdx);\n\t\tlftSib = newSibs.lftSib;\n\t\trgtSib = newSibs.rgtSib;\n\t}\n}","import { ELEMENT, TEXT, COMMENT, VVIEW, VMODEL } from './VTYPES';\nimport { isArr, binaryKeySearch } from '../utils';\nimport { preProc } from './preProc';\nimport { hydrateBody } from './hydrate';\nimport { clearChildren } from './dom';\nimport { syncChildren } from './syncChildren';\nimport { fireHook } from './hooks';\nimport { patchAttrs } from './patchAttrs';\nimport { createView } from './createView';\nimport { FIXED_BODY, DEEP_REMOVE, KEYED_LIST, LAZY_LIST } from './initElementNode';\n\nfunction findSequential(n, obody, fromIdx, toIdx) {\t\t// pre-tested isView?\n\tfor (; fromIdx < obody.length; fromIdx++) {\n\t\tvar o = obody[fromIdx];\n\n\t\tif (n.type === VVIEW && o.vm != null) {\t\t\t// also ignore recycled/moved?\n\t\t\tvar ov = o.vm;\n\n\t\t\t// match by key & viewFn\n\t\t\tif (ov.view === n.view && ov.key === n.key)\n\t\t\t\treturn o;\n\t\t}\n\n\t\tif (o.el._node !== o || n.tag !== o.tag || n.type !== o.type || n.vm !== o.vm)\n\t\t\tcontinue;\n\n\t\t// if n.view\n\n\t\tif (n.key === o.key)\t\t// accounts for matching & both null\n\t\t\treturn o;\n\t\telse {\n\t\t\t//\n\t\t\tif (o.key == null) {\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t// n.key && o.key, ident?\n\t\t\telse {\n\t\t\t//\tconsole.log(n.key, o.key);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn null;\n}\n\nfunction findKeyedSequential(n, obody, fromIdx) {\n\tfor (; fromIdx < obody.length; fromIdx++) {\n\t\tvar o = obody[fromIdx];\n\n\t\tif (o.key === n.key)\n\t\t\treturn o;\n\t}\n\n\treturn null;\n}\n\n// list must be a sorted list of vnodes by key\nfunction findKeyedBinary(n, list) {\n\tvar idx = binaryKeySearch(list, n.key);\n\treturn idx > -1 ? list[idx] : null;\n}\n\n// have it handle initial hydrate? !donor?\n// types (and tags if ELEM) are assumed the same, and donor exists\nexport function patch(vnode, donor) {\n\tdonor.hooks && fireHook(\"willRecycle\", donor, vnode);\n\n\tvar el = vnode.el = donor.el;\n\n\tvar obody = donor.body;\n\tvar nbody = vnode.body;\n\n\tel._node = vnode;\n\n\t// \"\" => \"\"\n\tif (vnode.type === TEXT && nbody !== obody) {\n\t\tel.nodeValue = nbody;\n\t\treturn;\n\t}\n\n\tif (vnode.attrs != null || donor.attrs != null)\n\t\tpatchAttrs(vnode, donor, false);\n\n\t// patch events\n\n\tvar oldIsArr = isArr(obody);\n\tvar newIsArr = isArr(nbody);\n\tvar newIsLazy = (vnode.flags & LAZY_LIST) === LAZY_LIST;\n\n//\tvar nonEqNewBody = nbody != null && nbody !== obody;\n\n\tif (oldIsArr) {\n\t\t// [] => []\n\t\tif (newIsArr || newIsLazy) {\n\t\t//\tconsole.log('[] => []', obody, nbody);\n\t\t\t// graft children\n\t\t\tpatchChildren(vnode, donor, newIsLazy);\n\t\t}\n\t\t// [] => \"\" | null\n\t\telse if (nbody !== obody) {\n\t\t\t// needs cleanup pass?\n\t\t//\tconsole.log('[] => \"\"', obody, nbody);\n\n\t\t\tif (nbody != null) {\n\t\t\t\tif (vnode.raw)\n\t\t\t\t\tel.innerHTML = nbody;\n\t\t\t\telse\n\t\t\t\t\tel.textContent = nbody;\n\t\t\t}\n\t\t\telse\n\t\t\t\tclearChildren(donor);\n\t\t}\n\t}\n\telse {\n\t\t// \"\" | null => []\n\t\tif (newIsArr || newIsLazy) {\n\t\t//\tconsole.log('\"\" => []', obody, nbody);\t// hydrate new here?\n\t\t\tclearChildren(donor);\n\t\t\tnewIsLazy && nbody.body(vnode);\n\t\t\thydrateBody(vnode);\n\t\t}\n\t\t// \"\" | null => \"\" | null\n\t\telse if (nbody !== obody) {\n\t\t//\tconsole.log('\"\" => \"\"', donor, vnode);\n\n\t\t\tif (vnode.raw)\n\t\t\t\tel.innerHTML = nbody;\n\t\t\telse if (donor.raw)\n\t\t\t\tel.textContent = nbody;\n\t\t\telse if (el.firstChild)\n\t\t\t\tel.firstChild.nodeValue = nbody;\n\t\t\telse\n\t\t\t\tel.textContent = nbody;\n\t\t}\n\t}\n\n\tdonor.hooks && fireHook(\"didRecycle\", donor, vnode);\n}\n\nfunction sortByKey(a, b) {\n\treturn a.key > b.key ? 1 : a.key < b.key ? -1 : 0;\n}\n\n// larger qtys of KEYED_LIST children will use binary search\nconst SEQ_SEARCH_MAX = 100;\n\n// [] => []\nfunction patchChildren(vnode, donor, newIsLazy) {\n\tvar nbody\t\t= vnode.body,\n\t\tnlen\t\t= nbody.length,\n\t\tobody\t\t= donor.body,\n\t\tolen\t\t= obody.length,\n\t\toldIsFixed\t= (donor.flags & FIXED_BODY) === FIXED_BODY,\n\t\toldIsKeyed\t= (donor.flags & KEYED_LIST) === KEYED_LIST,\n\t\tdomSync\t\t= !oldIsFixed && donor.type === ELEMENT,\n\t\tfind\t\t= findSequential,\t// default\n\t\tlist\t\t= obody;\t\t\t// default\n\n\tif (domSync && nlen === 0) {\n\t\tclearChildren(donor);\n\t\tif (newIsLazy)\n\t\t\tvnode.body = []; // nbody.tpl(all);\n\t\treturn;\n\t}\n\n\t// use binary search for non-static keyed lists of large length\n\tif (oldIsKeyed) {\n\t\tif (olen > SEQ_SEARCH_MAX && !oldIsFixed) {\n\t\t\tfind = findKeyedBinary;\n\t\t\tlist = obody.slice();\n\t\t\tlist.sort(sortByKey);\n\t\t}\n\t\telse\n\t\t\tfind = findKeyedSequential;\n\t}\n\n\tvar donor2,\n\t\tnode2,\n\t\tdiffRes,\n\t\tremake,\n\t\ttype2,\n\t\tfromIdx = 0;\t\t\t\t// first unrecycled node (search head)\n\n\t// list should always be keyed, but FIXED_BODY prevents binary search sorting\n\tif (newIsLazy) {\n\t\tfind = findKeyedSequential\n\n\t\tvar fnode2 = {key: null};\n\n\t\tvar nbodyNew = Array(nlen);\n\n\t\tfor (var i = 0; i < nlen; i++) {\n\t\t\tremake = false;\n\t\t\tdiffRes = null;\n\n\t\t\tif (oldIsKeyed)\n\t\t\t\tfnode2.key = nbody.key(i);\n\n\t\t\tdonor2 = find(fnode2, list, fromIdx);\n\n\t\t\tif (donor2 != null) {\n\t\t\t\tdiffRes = nbody.diff(i, donor2);\n\n\t\t\t\t// diff returns same, so cheaply adopt vnode without patching\n\t\t\t\tif (diffRes === true) {\n\t\t\t\t\tnode2 = donor2;\n\t\t\t\t\tnode2.parent = vnode;\n\t\t\t\t\tnode2.idx = i;\n\t\t\t\t}\n\t\t\t\t// diff returns new diffVals, so generate new vnode & patch\n\t\t\t\telse\n\t\t\t\t\tremake = true;\n\t\t\t}\n\t\t\telse\n\t\t\t\tremake = true;\n\n\t\t\tif (remake) {\n\t\t\t\tnode2 = nbody.tpl(i);\n\t\t\t\tpreProc(node2, vnode, i);\n\n\t\t\t\tnode2._diff = diffRes != null ? diffRes : nbody.diff(i);\n\n\t\t\t\tif (donor2 != null)\n\t\t\t\t\tpatch(node2, donor2);\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// TODO: flag tmp FIXED_BODY on unchanged nodes?\n\n\t\t\t\t// domSync = true;\t\tif any idx changes or new nodes added/removed\n\t\t\t}\n\n\t\t\tnbodyNew[i] = node2;\n\n\t\t\t// to keep search space small, if donation is non-contig, move node fwd?\n\t\t\t// re-establish contigindex\n\t\t\tif (find !== findKeyedBinary && donor2 != null && donor2.idx === fromIdx)\n\t\t\t\tfromIdx++;\n\t\t}\n\n\t\t// replace List w/ new body\n\t\tvnode.body = nbodyNew;\n\t}\n\telse {\n\t\tfor (var i = 0; i < nlen; i++) {\n\t\t\tvar node2 = nbody[i];\n\t\t\tvar type2 = node2.type;\n\n\t\t\t// ELEMENT,TEXT,COMMENT\n\t\t\tif (type2 <= COMMENT) {\n\t\t\t\tif (donor2 = find(node2, list, fromIdx))\n\t\t\t\t\tpatch(node2, donor2);\n\t\t\t}\n\t\t\telse if (type2 === VVIEW) {\n\t\t\t\tif (donor2 = find(node2, list, fromIdx))\t\t// update/moveTo\n\t\t\t\t\tvar vm = donor2.vm._update(node2.data, vnode, i);\t\t// withDOM\n\t\t\t\telse\n\t\t\t\t\tvar vm = createView(node2.view, node2.data, node2.key, node2.opts)._redraw(vnode, i, false);\t// createView, no dom (will be handled by sync below)\n\n\t\t\t\ttype2 = vm.node.type;\n\t\t\t}\n\t\t\telse if (type2 === VMODEL) {\n\t\t\t\tvar vm = node2.vm._update(node2.data, vnode, i);\n\t\t\t\ttype2 = vm.node.type;\n\t\t\t}\n\n\t\t\t// to keep search space small, if donation is non-contig, move node fwd?\n\t\t\t// re-establish contigindex\n\t\t\tif (find !== findKeyedBinary && donor2 != null && donor2.idx === fromIdx)\n\t\t\t\tfromIdx++;\n\t\t}\n\t}\n\n\tdomSync && syncChildren(vnode, donor);\n}","import { patch } from \"./patch\";\nimport { hydrate } from \"./hydrate\";\nimport { preProc } from \"./preProc\";\nimport { isArr, isPlainObj, isFunc, isProm, cmpArr, cmpObj, assignObj, curry, raft, noop } from \"../utils\";\nimport { repaint, getVm } from \"./utils\";\nimport { insertBefore, removeChild, nextSib, clearChildren } from \"./dom\";\nimport { drainDidHooks, fireHook } from \"./hooks\";\nimport { devNotify, DEVMODE } from \"./addons/devmode\";\nimport { DOMInstr } from \"./addons/dominstr\";\n\nvar instr = null;\n\nif (_DEVMODE) {\n\tif (DEVMODE.mutations) {\n\t\tinstr = new DOMInstr(true);\n\t}\n}\n\n// view + key serve as the vm's unique identity\nexport function ViewModel(view, data, key, opts) {\n\tvar vm = this;\n\n\tvm.view = view;\n\tvm.data = data;\n\tvm.key = key;\n\n\tif (opts) {\n\t\tvm.opts = opts;\n\t\tvm.config(opts);\n\t}\n\n\tvar out = isPlainObj(view) ? view : view.call(vm, vm, data, key, opts);\n\n\tif (isFunc(out))\n\t\tvm.render = out;\n\telse {\n\t\tvm.render = out.render;\n\t\tvm.config(out);\n\t}\n\n\t// these must be wrapped here since they're debounced per view\n\tvm._redrawAsync = raft(_ => vm._redraw());\n\tvm._updateAsync = raft(newData => vm._update(newData));\n\n\tvm.init && vm.init.call(vm, vm, vm.data, vm.key, opts);\n}\n\nexport const ViewModelProto = ViewModel.prototype = {\n\tconstructor: ViewModel,\n\n\t_diff:\tnull,\t// diff cache\n\n\tinit:\tnull,\n\tview:\tnull,\n\tkey:\tnull,\n\tdata:\tnull,\n\tstate:\tnull,\n\tapi:\tnull,\n\topts:\tnull,\n\tnode:\tnull,\n\thooks:\tnull,\n\tonevent: noop,\n\trefs:\tnull,\n\trender:\tnull,\n\n\tmount: mount,\n\tunmount: unmount,\n\tconfig: function(opts) {\n\t\tvar t = this;\n\n\t\tif (opts.init)\n\t\t\tt.init = opts.init;\n\t\tif (opts.diff)\n\t\t\tt.diff = opts.diff;\n\t\tif (opts.onevent)\n\t\t\tt.onevent = opts.onevent;\n\n\t\t// maybe invert assignment order?\n\t\tif (opts.hooks)\n\t\t\tt.hooks = assignObj(t.hooks || {}, opts.hooks);\n\n\t\tif (FEAT_EMIT) {\n\t\t\tif (opts.onemit)\n\t\t\t\tt.onemit = assignObj(t.onemit || {}, opts.onemit);\n\t\t}\n\t},\n\tparent: function() {\n\t\treturn getVm(this.node.parent);\n\t},\n\troot: function() {\n\t\tvar p = this.node;\n\n\t\twhile (p.parent)\n\t\t\tp = p.parent;\n\n\t\treturn p.vm;\n\t},\n\tredraw: function(sync) {\n\t\tvar vm = this;\n\t\tsync ? vm._redraw() : vm._redrawAsync();\n\t\treturn vm;\n\t},\n\tupdate: function(newData, sync) {\n\t\tvar vm = this;\n\t\tsync ? vm._update(newData) : vm._updateAsync(newData);\n\t\treturn vm;\n\t},\n\n\t_update: updateSync,\n\t_redraw: redrawSync,\n\t_redrawAsync: null,\n\t_updateAsync: null,\n};\n\nfunction mount(el, isRoot) {\n\tvar vm = this;\n\n\tif (_DEVMODE) {\n\t\tif (DEVMODE.mutations)\n\t\t\tinstr.start();\n\t}\n\n\tif (isRoot) {\n\t\tclearChildren({el: el, flags: 0});\n\n\t\tvm._redraw(null, null, false);\n\n\t\t// if placeholder node doesnt match root tag\n\t\tif (el.nodeName.toLowerCase() !== vm.node.tag) {\n\t\t\thydrate(vm.node);\n\t\t\tinsertBefore(el.parentNode, vm.node.el, el);\n\t\t\tel.parentNode.removeChild(el);\n\t\t}\n\t\telse\n\t\t\tinsertBefore(el.parentNode, hydrate(vm.node, el), el);\n\t}\n\telse {\n\t\tvm._redraw(null, null);\n\n\t\tif (el)\n\t\t\tinsertBefore(el, vm.node.el);\n\t}\n\n\tif (el)\n\t\tdrainDidHooks(vm);\n\n\tif (_DEVMODE) {\n\t\tif (DEVMODE.mutations)\n\t\t\tconsole.log(instr.end());\n\t}\n\n\treturn vm;\n}\n\n// asSub means this was called from a sub-routine, so don't drain did* hook queue\nfunction unmount(asSub) {\n\tvar vm = this;\n\n\tvar node = vm.node;\n\tvar parEl = node.el.parentNode;\n\n\t// edge bug: this could also be willRemove promise-delayed; should .then() or something to make sure hooks fire in order\n\tremoveChild(parEl, node.el);\n\n\tif (!asSub)\n\t\tdrainDidHooks(vm);\n}\n\nfunction reParent(vm, vold, newParent, newIdx) {\n\tif (newParent != null) {\n\t\tnewParent.body[newIdx] = vold;\n\t\tvold.idx = newIdx;\n\t\tvold.parent = newParent;\n\t}\n\treturn vm;\n}\n\nfunction redrawSync(newParent, newIdx, withDOM) {\n\tconst isRedrawRoot = newParent == null;\n\tvar vm = this;\n\tvar isMounted = vm.node && vm.node.el && vm.node.el.parentNode;\n\n\tif (_DEVMODE) {\n\t\t// was mounted (has node and el), but el no longer has parent (unmounted)\n\t\tif (isRedrawRoot && vm.node && vm.node.el && !vm.node.el.parentNode)\n\t\t\tdevNotify(\"UNMOUNTED_REDRAW\", [vm]);\n\n\t\tif (isRedrawRoot && DEVMODE.mutations && isMounted)\n\t\t\tinstr.start();\n\t}\n\n\tvar vold = vm.node, oldDiff, newDiff;\n\n\tif (vm.diff != null) {\n\t\toldDiff = vm._diff;\n\t\tvm._diff = newDiff = vm.diff(vm, vm.data);\n\n\t\tif (vold != null) {\n\t\t\tvar cmpFn = isArr(oldDiff) ? cmpArr : cmpObj;\n\t\t\tvar isSame = oldDiff === newDiff || cmpFn(oldDiff, newDiff);\n\n\t\t\tif (isSame)\n\t\t\t\treturn reParent(vm, vold, newParent, newIdx);\n\t\t}\n\t}\n\n\tisMounted && vm.hooks && fireHook(\"willRedraw\", vm, vm.data);\n\n\tvar vnew = vm.render.call(vm, vm, vm.data, oldDiff, newDiff);\n\n\tif (vnew === vold)\n\t\treturn reParent(vm, vold, newParent, newIdx);\n\n\t// todo: test result of willRedraw hooks before clearing refs\n\tvm.refs = null;\n\n\t// always assign vm key to root vnode (this is a de-opt)\n\tif (vm.key != null && vnew.key !== vm.key)\n\t\tvnew.key = vm.key;\n\n\tvm.node = vnew;\n\n\tif (newParent) {\n\t\tpreProc(vnew, newParent, newIdx, vm);\n\t\tnewParent.body[newIdx] = vnew;\n\t}\n\telse if (vold && vold.parent) {\n\t\tpreProc(vnew, vold.parent, vold.idx, vm);\n\t\tvold.parent.body[vold.idx] = vnew;\n\t}\n\telse\n\t\tpreProc(vnew, null, null, vm);\n\n\tif (withDOM !== false) {\n\t\tif (vold) {\n\t\t\t// root node replacement\n\t\t\tif (vold.tag !== vnew.tag || vold.key !== vnew.key) {\n\t\t\t\t// hack to prevent the replacement from triggering mount/unmount\n\t\t\t\tvold.vm = vnew.vm = null;\n\n\t\t\t\tvar parEl = vold.el.parentNode;\n\t\t\t\tvar refEl = nextSib(vold.el);\n\t\t\t\tremoveChild(parEl, vold.el);\n\t\t\t\tinsertBefore(parEl, hydrate(vnew), refEl);\n\n\t\t\t\t// another hack that allows any higher-level syncChildren to set\n\t\t\t\t// reconciliation bounds using a live node\n\t\t\t\tvold.el = vnew.el;\n\n\t\t\t\t// restore\n\t\t\t\tvnew.vm = vm;\n\t\t\t}\n\t\t\telse\n\t\t\t\tpatch(vnew, vold);\n\t\t}\n\t\telse\n\t\t\thydrate(vnew);\n\t}\n\n\tisMounted && vm.hooks && fireHook(\"didRedraw\", vm, vm.data);\n\n\tif (isRedrawRoot && isMounted)\n\t\tdrainDidHooks(vm);\n\n\tif (_DEVMODE) {\n\t\tif (isRedrawRoot && DEVMODE.mutations && isMounted)\n\t\t\tconsole.log(instr.end());\n\t}\n\n\treturn vm;\n}\n\n// this also doubles as moveTo\n// TODO? @withRedraw (prevent redraw from firing)\nfunction updateSync(newData, newParent, newIdx, withDOM) {\n\tvar vm = this;\n\n\tif (newData != null) {\n\t\tif (vm.data !== newData) {\n\t\t\tif (_DEVMODE) {\n\t\t\t\tdevNotify(\"DATA_REPLACED\", [vm, vm.data, newData]);\n\t\t\t}\n\t\t\tvm.hooks && fireHook(\"willUpdate\", vm, newData);\n\t\t\tvm.data = newData;\n\t\t}\n\t}\n\n\treturn vm._redraw(newParent, newIdx, withDOM);\n}","import { COMMENT } from './VTYPES';\nimport { VNode } from './VNode';\n\nexport function defineComment(body) {\n\tlet node = new VNode;\n\tnode.type = COMMENT;\n\tnode.body = body;\n\treturn node;\n}","import { VVIEW } from './VTYPES';\n\n// placeholder for declared views\nexport function VView(view, data, key, opts) {\n\tthis.view = view;\n\tthis.data = data;\n\tthis.key = key;\n\tthis.opts = opts;\n}\n\nVView.prototype = {\n\tconstructor: VView,\n\n\ttype: VVIEW,\n\tview: null,\n\tdata: null,\n\tkey: null,\n\topts: null,\n};","import { VView } from './VView';\n\nexport function defineView(view, data, key, opts) {\n\treturn new VView(view, data, key, opts);\n}","import { VMODEL } from './VTYPES';\n\n// placeholder for injected ViewModels\nexport function VModel(vm) {\n\tthis.vm = vm;\n}\n\nVModel.prototype = {\n\tconstructor: VModel,\n\n\ttype: VMODEL,\n\tvm: null,\n};","import { VModel } from './VModel';\n\n\nexport function injectView(vm) {\n//\tif (vm.node == null)\n//\t\tvm._redraw(null, null, false);\n\n//\treturn vm.node;\n\n\treturn new VModel(vm);\n}","import { ELEMENT } from './VTYPES';\nimport { VNode } from './VNode';\n\nexport function injectElement(el) {\n\tlet node = new VNode;\n\tnode.type = ELEMENT;\n\tnode.el = node.key = el;\n\treturn node;\n}","import { noop, isArr, cmpArr, cmpObj } from '../utils';\nimport { preProc } from './preProc';\n\nexport function lazyList(items, cfg) {\n\tvar len = items.length;\n\n\tvar self = {\n\t\titems: items,\n\t\tlength: len,\n\t\t// defaults to returning item identity (or position?)\n\t\tkey: function(i) {\n\t\t\treturn cfg.key(items[i], i);\n\t\t},\n\t\t// default returns 0?\n\t\tdiff: function(i, donor) {\n\t\t\tvar newVals = cfg.diff(items[i], i);\n\t\t\tif (donor == null)\n\t\t\t\treturn newVals;\n\t\t\tvar oldVals = donor._diff;\n\t\t\tvar same = newVals === oldVals || isArr(oldVals) ? cmpArr(newVals, oldVals) : cmpObj(newVals, oldVals);\n\t\t\treturn same || newVals;\n\t\t},\n\t\ttpl: function(i) {\n\t\t\treturn cfg.tpl(items[i], i);\n\t\t},\n\t\tmap: function(tpl) {\n\t\t\tcfg.tpl = tpl;\n\t\t\treturn self;\n\t\t},\n\t\tbody: function(vnode) {\n\t\t\tvar nbody = Array(len);\n\n\t\t\tfor (var i = 0; i < len; i++) {\n\t\t\t\tvar vnode2 = self.tpl(i);\n\n\t\t\t//\tif ((vnode.flags & KEYED_LIST) === KEYED_LIST && self. != null)\n\t\t\t//\t\tvnode2.key = getKey(item);\n\n\t\t\t\tvnode2._diff = self.diff(i);\t\t\t// holds oldVals for cmp\n\n\t\t\t\tnbody[i] = vnode2;\n\n\t\t\t\t// run preproc pass (should this be just preProc in above loop?) bench\n\t\t\t\tpreProc(vnode2, vnode, i);\n\t\t\t}\n\n\t\t\t// replace List with generated body\n\t\t\tvnode.body = nbody;\n\t\t}\n\t};\n\n\treturn self;\n}","import { ViewModel } from \"../view/ViewModel\";\nimport { VNode } from \"../view/VNode\";\n\nimport { createView } from \"../view/createView\";\n\nimport { defineElement } from \"../view/defineElement\";\nimport { defineSvgElement } from \"../view/defineSvgElement\";\nimport { defineText } from \"../view/defineText\";\nimport { defineComment } from \"../view/defineComment\";\nimport { defineView } from \"../view/defineView\";\n\nimport { injectView } from \"../view/injectView\";\nimport { injectElement } from \"../view/injectElement\";\n\nimport { lazyList } from '../view/lazyList';\n\nimport { FIXED_BODY, DEEP_REMOVE, KEYED_LIST, LAZY_LIST } from \"../view/initElementNode\";\n\nimport { config } from '../view/config';\n\n// prevent GCC from inlining some large funcs (which negatively affects Chrome's JIT)\nimport { syncChildren } from \"../view/syncChildren\";\nwindow.syncChildren = syncChildren;\n\nexport default {\n\tconfig,\n\n\tViewModel,\n\tVNode,\n\n\tcreateView,\n\n\tdefineElement,\n\tdefineSvgElement,\n\tdefineText,\n\tdefineComment,\n\tdefineView,\n\n\tinjectView,\n\tinjectElement,\n\n\tlazyList,\n\n\tFIXED_BODY,\n\tDEEP_REMOVE,\n\tKEYED_LIST,\n\tLAZY_LIST,\n}","import { assignObj } from '../../utils';\nimport { getVm } from '../utils';\nimport { patchAttrs } from '../patchAttrs';\nimport { preProc } from '../preProc';\nimport { patch as fullPatch } from '../patch';\nimport { drainDidHooks } from '../hooks';\n\nexport function protoPatch(n) {\n\treturn patch(this, n);\n}\n\n// newNode can be either {class: style: } or full new VNode\n// will/didPatch hooks?\nexport function patch(o, n) {\n\tif (n.type != null) {\n\t\t// no full patching of view roots, just use redraw!\n\t\tif (o.vm != null)\n\t\t\treturn;\n\n\t\tpreProc(n, o.parent, o.idx, null);\n\t\to.parent.body[o.idx] = n;\n\t\tfullPatch(n, o);\n\t\tdrainDidHooks(getVm(n));\n\t}\n\telse {\n\t\t// TODO: re-establish refs\n\n\t\t// shallow-clone target\n\t\tvar donor = Object.create(o);\n\t\t// fixate orig attrs\n\t\tdonor.attrs = assignObj({}, o.attrs);\n\t\t// assign new attrs into live targ node\n\t\tvar oattrs = assignObj(o.attrs, n);\n\t\t// prepend any fixed shorthand class\n\t\tif (o._class != null) {\n\t\t\tvar aclass = oattrs.class;\n\t\t\toattrs.class = aclass != null && aclass !== \"\" ? o._class + \" \" + aclass : o._class;\n\t\t}\n\n\t\tpatchAttrs(o, donor);\n\t}\n}","import { default as nano } from \"./pico\";\n\nimport { VNodeProto } from '../view/VNode';\nimport { protoPatch } from \"../view/addons/patch\";\nVNodeProto.patch = protoPatch;\n\n/*\nimport { h } from \"../view/addons/h\";\n\nnano.h = h;\n\nimport { defineElementSpread } from \"../view/addons/defineElementSpread\";\n\nnano.defineElementSpread = defineElementSpread;\n*/\n\nexport default nano;","import { ViewModelProto } from '../ViewModel';\nimport { isArr } from '../../utils';\n\nexport function nextSubVms(n, accum) {\n\tvar body = n.body;\n\n\tif (isArr(body)) {\n\t\tfor (var i = 0; i < body.length; i++) {\n\t\t\tvar n2 = body[i];\n\n\t\t\tif (n2.vm != null)\n\t\t\t\taccum.push(n2.vm);\n\t\t\telse\n\t\t\t\tnextSubVms(n2, accum);\n\t\t}\n\t}\n\n\treturn accum;\n}","import { isPlainObj, isArr, isVal, sliceArgs } from '../../utils';\nimport { initElementNode, LAZY_LIST } from '../initElementNode';\n\nexport function defineElementSpread(tag) {\n\tvar args = arguments;\n\tvar len = args.length;\n\tvar body, attrs;\n\n\tif (len > 1) {\n\t\tvar bodyIdx = 1;\n\n\t\tif (isPlainObj(args[1])) {\n\t\t\tattrs = args[1];\n\t\t\tbodyIdx = 2;\n\t\t}\n\n\t\tif (len === bodyIdx + 1 && (isVal(args[bodyIdx]) || isArr(args[bodyIdx]) || attrs && (attrs._flags & LAZY_LIST) === LAZY_LIST))\n\t\t\tbody = args[bodyIdx];\n\t\telse\n\t\t\tbody = sliceArgs(args, bodyIdx);\n\t}\n\n\treturn initElementNode(tag, attrs, body);\n}","import { defineElementSpread } from \"./defineElementSpread\";\nimport { SVG_NS } from \"../defineSvgElement\";\n\nexport function defineSvgElementSpread() {\n\tvar n = defineElementSpread.apply(null, arguments);\n\tn.ns = SVG_NS;\n\treturn n;\n}","import { ViewModelProto } from '../view/ViewModel';\nimport { default as micro } from \"./nano\";\n\nimport { emit } from \"../view/addons/emit\";\nViewModelProto.emit = emit;\nViewModelProto.onemit = null;\n\nimport { nextSubVms } from \"../view/addons/vmBody\";\n\nViewModelProto.body = function() {\n\treturn nextSubVms(this.node, []);\n};\n\nimport { defineElementSpread } from \"../view/addons/defineElementSpread\";\nimport { defineSvgElementSpread } from \"../view/addons/defineSvgElementSpread\";\n\nmicro.defineElementSpread = defineElementSpread;\nmicro.defineSvgElementSpread = defineSvgElementSpread;\n\nexport default micro;","import { default as mini } from \"./micro\";\n\nimport { prop } from \"../utils\";\n\nmini.prop = prop;\n\nexport default mini;","import { VVIEW, VMODEL } from '../VTYPES';\nimport { createView } from '../createView';\nimport { isArr } from '../../utils';\nimport { isStyleProp, isSplProp, isEvProp, isDynProp } from '../utils';\nimport { patchEvent } from '../patchEvent';\nimport { setAttr } from '../patchAttrs';\nimport { LAZY_LIST } from '../initElementNode';\n\nexport function protoAttach(el) {\n\tvar vm = this;\n\tif (vm.node == null)\n\t\tvm._redraw(null, null, false)\n\n\tattach(vm.node, el);\n\n\treturn vm;\n};\n\n// very similar to hydrate, TODO: dry\nfunction attach(vnode, withEl) {\n\tvnode.el = withEl;\n\twithEl._node = vnode;\n\n\tvar nattrs = vnode.attrs;\n\n\tfor (var key in nattrs) {\n\t\tvar nval = nattrs[key];\n\t\tvar isDyn = isDynProp(vnode.tag, key);\n\n\t\tif (isStyleProp(key) || isSplProp(key)) {}\n\t\telse if (isEvProp(key))\n\t\t\tpatchEvent(vnode, key, nval);\n\t\telse if (nval != null && isDyn)\n\t\t\tsetAttr(vnode, key, nval, isDyn);\n\t}\n\n\tif ((vnode.flags & LAZY_LIST) === LAZY_LIST)\n\t\tvnode.body.body(vnode);\n\n\tif (isArr(vnode.body)) {\n\t\tvar c = withEl.firstChild;\n\t\tvar i = 0;\n\t\tvar v = vnode.body[i];\n\t\tdo {\n\t\t\tif (v.type === VVIEW)\n\t\t\t\tv = createView(v.view, v.data, v.key, v.opts)._redraw(vnode, i, false).node;\n\t\t\telse if (v.type === VMODEL)\n\t\t\t\tv = v.node || v._redraw(vnode, i, false).node;\n\n\t\t\tattach(v, c);\n\t\t} while ((c = c.nextSibling) && (v = vnode.body[++i]))\n\t}\n}","import { default as client } from \"./mini\";\n\nimport { ViewModelProto } from '../view/ViewModel';\nimport { protoAttach } from \"../view/addons/attach\";\nViewModelProto.attach = protoAttach;\n\nexport default client;"],"names":["const","let","patch","fullPatch","micro","mini"],"mappings":"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"} \ No newline at end of file diff --git a/dist/client/domvm.client.min.js b/dist/client/domvm.client.min.js index 8698c6cc..b5d228d1 100644 --- a/dist/client/domvm.client.min.js +++ b/dist/client/domvm.client.min.js @@ -26,8 +26,8 @@ vm:null,key:null,ref:null,data:null,hooks:null,raw:!1,ns:null,el:null,tag:null,a borderImageWidth:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},R=[],K=z?document:null,Y={},T=D,Ia=100;z=J.prototype={constructor:J,_diff:null,init:null,view:null,key:null,data:null,state:null,api:null,opts:null,node:null,hooks:null,onevent:D,refs:null,render:null,mount:function(a,b){b?(H({el:a,flags:0}),this._redraw(null, null,!1),a.nodeName.toLowerCase()!==this.node.tag?(u(this.node),l(a.parentNode,this.node.el,a),a.parentNode.removeChild(a)):l(a.parentNode,u(this.node,a),a)):(this._redraw(null,null),a&&l(a,this.node.el));a&&G(this);return this},unmount:function(a){var b=this.node;C(b.el.parentNode,b.el);a||G(this)},config:function(a){a.init&&(this.init=a.init);a.diff&&(this.diff=a.diff);a.onevent&&(this.onevent=a.onevent);a.hooks&&(this.hooks=B(this.hooks||{},a.hooks));a.onemit&&(this.onemit=B(this.onemit||{},a.onemit))}, parent:function(){return y(this.node.parent)},root:function(){for(var a=this.node;a.parent;)a=a.parent;return a.vm},redraw:function(a){a?this._redraw():this._redrawAsync();return this},update:function(a,b){b?this._update(a):this._updateAsync(a);return this},_update:function(a,b,c,d){null!=a&&this.data!==a&&(this.hooks&&r("willUpdate",this,a),this.data=a);return this._redraw(b,c,d)},_redraw:function(a,b,c){var d=null==a,e=this.node&&this.node.el&&this.node.el.parentNode,f=this.node,h;if(null!=this.diff){var g= -this._diff;this._diff=h=this.diff(this,this.data);if(null!=f){var k=m(g)?N:ba;if(g===h||k(g,h))return wa(this,f,a,b)}}e&&this.hooks&&r("willRedraw",this,this.data);g=this.render.call(this,this,this.data,g,h);if(g===f)return wa(this,f,a,b);this.refs=null;null!=this.key&&g.key!==this.key&&(g.key=this.key);this.node=g;a?(w(g,a,b,this),a.body[b]=g):f&&f.parent?(w(g,f.parent,f.idx,this),f.parent.body[f.idx]=g):w(g,null,null,this);!1!==c&&(f?f.tag!==g.tag?(f.vm=g.vm=null,a=f.el.parentNode,b=f.el.nextSibling, -C(a,f.el),l(a,u(g),b),f.el=g.el,g.vm=this):L(g,f):u(g));e&&this.hooks&&r("didRedraw",this,this.data);d&&e&&G(this);return this},_redrawAsync:null,_updateAsync:null};W.prototype={constructor:W,type:4,view:null,data:null,key:null,opts:null};X.prototype={constructor:X,type:5,vm:null};var M={config:function(a){T=a.onevent||T;a.onemit&&B(Y,a.onemit);a.stream&&(a=a.stream,F=a.is,ia=a.val,fa=a.sub,ha=a.unsub)},ViewModel:J,VNode:x,createView:I,defineElement:pa,defineSvgElement:function(a, +this._diff;this._diff=h=this.diff(this,this.data);if(null!=f){var k=m(g)?N:ba;if(g===h||k(g,h))return wa(this,f,a,b)}}e&&this.hooks&&r("willRedraw",this,this.data);g=this.render.call(this,this,this.data,g,h);if(g===f)return wa(this,f,a,b);this.refs=null;null!=this.key&&g.key!==this.key&&(g.key=this.key);this.node=g;a?(w(g,a,b,this),a.body[b]=g):f&&f.parent?(w(g,f.parent,f.idx,this),f.parent.body[f.idx]=g):w(g,null,null,this);!1!==c&&(f?f.tag!==g.tag||f.key!==g.key?(f.vm=g.vm=null,a=f.el.parentNode, +b=f.el.nextSibling,C(a,f.el),l(a,u(g),b),f.el=g.el,g.vm=this):L(g,f):u(g));e&&this.hooks&&r("didRedraw",this,this.data);d&&e&&G(this);return this},_redrawAsync:null,_updateAsync:null};W.prototype={constructor:W,type:4,view:null,data:null,key:null,opts:null};X.prototype={constructor:X,type:5,vm:null};var M={config:function(a){T=a.onevent||T;a.onemit&&B(Y,a.onemit);a.stream&&(a=a.stream,F=a.is,ia=a.val,fa=a.sub,ha=a.unsub)},ViewModel:J,VNode:x,createView:I,defineElement:pa,defineSvgElement:function(a, b,c,d){a=pa(a,b,c,d);a.ns="http://www.w3.org/2000/svg";return a},defineText:ea,defineComment:function(a){var b=new x;b.type=3;b.body=a;return b},defineView:function(a,b,c,d){return new W(a,b,c,d)},injectView:function(a){return new X(a)},injectElement:function(a){var b=new x;b.type=1;b.el=b.key=a;return b},lazyList:function(a,b){var c=a.length,d={items:a,length:c,key:function(c){return b.key(a[c],c)},diff:function(c,d){c=b.diff(a[c],c);if(null==d)return c;d=d._diff;return(c===d||m(d)?N(c,d):ba(c,d))|| c},tpl:function(c){return b.tpl(a[c],c)},map:function(a){b.tpl=a;return d},body:function(a){for(var b=Array(c),e=0;e> 1;\n\t\t\tif (list[guess].key === item) { return guess; }\n\t\t\telse {\n\t\t\t\tif (list[guess].key < item) { min = guess + 1; }\n\t\t\t\telse { max = guess - 1; }\n\t\t\t}\n\t\t}\n\t} else {\n\t\twhile (min <= max) {\n\t\t\tguess = Math.floor((min + max) / 2);\n\t\t\tif (list[guess].key === item) { return guess; }\n\t\t\telse {\n\t\t\t\tif (list[guess].key < item) { min = guess + 1; }\n\t\t\t\telse { max = guess - 1; }\n\t\t\t}\n\t\t}\n\t}\n\n return -1;\n}","export function VNode() {}\n\nexport const VNodeProto = VNode.prototype = {\n\tconstructor: VNode,\n\n\ttype:\tnull,\n\n\tvm:\t\tnull,\n\n\t// all this stuff can just live in attrs (as defined) just have getters here for it\n\tkey:\tnull,\n\tref:\tnull,\n\tdata:\tnull,\n\thooks:\tnull,\n\traw:\tfalse,\n\tns:\t\tnull,\n\n\tel:\t\tnull,\n\n\ttag:\tnull,\n\tattrs:\tnull,\n\tbody:\tnull,\n\n\tflags:\t0,\n\n\t_class:\tnull,\n\t_diff:\tnull,\n\n\t// pending removal on promise resolution\n\t_dead:\tfalse,\n\n\tidx:\tnull,\n\tparent:\tnull,\n\n\t/*\n\t// break out into optional fluent module\n\tkey:\tfunction(val) { this.key\t= val; return this; },\n\tref:\tfunction(val) { this.ref\t= val; return this; },\t\t// deep refs\n\tdata:\tfunction(val) { this.data\t= val; return this; },\n\thooks:\tfunction(val) { this.hooks\t= val; return this; },\t\t// h(\"div\").hooks()\n\thtml:\tfunction(val) { this.html\t= true; return this.body(val); },\n\n\tbody:\tfunction(val) { this.body\t= val; return this; },\n\t*/\n};","import { TEXT } from './VTYPES';\nimport { VNode } from './VNode';\n\nexport function defineText(body) {\n\tlet node = new VNode;\n\tnode.type = TEXT;\n\tnode.body = body;\n\treturn node;\n}","import { emptyObj } from '../utils';\n\nexport function isEvProp(name) {\n\treturn name[0] === \"o\" && name[1] === \"n\";\n}\n\nexport function isSplProp(name) {\n\treturn name[0] === \"_\";\n}\n\nexport function isStyleProp(name) {\n\treturn name === \"style\";\n}\n\nexport function repaint(node) {\n\tnode && node.el && node.el.offsetHeight;\n}\n\n// tests interactive props where real val should be compared\nexport function isDynProp(tag, attr) {\n//\tswitch (tag) {\n//\t\tcase \"input\":\n//\t\tcase \"textarea\":\n//\t\tcase \"select\":\n//\t\tcase \"option\":\n\t\t\tswitch (attr) {\n\t\t\t\tcase \"value\":\n\t\t\t\tcase \"checked\":\n\t\t\t\tcase \"selected\":\n//\t\t\t\tcase \"selectedIndex\":\n\t\t\t\t\treturn true;\n\t\t\t}\n//\t}\n\n\treturn false;\n}\n\nexport function getVm(n) {\n\tn = n || emptyObj;\n\twhile (n.vm == null && n.parent)\n\t\tn = n.parent;\n\treturn n.vm;\n}","export let isStream = function() { return false };\n\nlet streamVal = null;\nlet subStream = null;\nlet unsubStream = null;\n\nexport function streamCfg(cfg) {\n\tisStream\t= cfg.is;\n\tstreamVal\t= cfg.val;\n\tsubStream\t= cfg.sub;\n\tunsubStream\t= cfg.unsub;\n}\n\n// creates a one-shot self-ending stream that redraws target vm\n// TODO: if it's already registered by any parent vm, then ignore to avoid simultaneous parent & child refresh\nexport function hookStream(s, vm) {\n\tif (FEAT_STREAM) {\n\t\tvar redrawStream = subStream(s, val => {\n\t\t\t// this \"if\" ignores the initial firing during subscription (there's no redrawable vm yet)\n\t\t\tif (redrawStream) {\n\t\t\t\t// if vm fully is formed (or mounted vm.node.el?)\n\t\t\t\tif (vm.node != null)\n\t\t\t\t\tvm.redraw();\n\t\t\t\tunsubStream(redrawStream);\n\t\t\t}\n\t\t});\n\n\t\treturn streamVal(s);\n\t}\n}","const tagCache = {};\n\nconst RE_ATTRS = /\\[(\\w+)(?:=(\\w+))?\\]/g;\n\nconst tagObj = {};\n\nexport function cssTag(raw) {\n\tif (FEAT_CSSTAG) {\n\t\tvar cached = tagCache[raw];\n\n\t\tif (cached == null) {\n\t\t\tvar tag, id, cls, attr;\n\n\t\t\ttagCache[raw] = cached = {\n\t\t\t\ttag:\t(tag\t= raw.match( /^[-\\w]+/))\t\t?\ttag[0]\t\t\t\t\t\t: \"div\",\n\t\t\t\tid:\t\t(id\t\t= raw.match( /#([-\\w]+)/))\t\t? \tid[1]\t\t\t\t\t\t: null,\n\t\t\t\tclass:\t(cls\t= raw.match(/\\.([-\\w.]+)/))\t\t?\tcls[1].replace(/\\./g, \" \")\t: null,\n\t\t\t\tattrs:\tnull,\n\t\t\t};\n\n\t\t\twhile (attr = RE_ATTRS.exec(raw)) {\n\t\t\t\tif (cached.attrs == null)\n\t\t\t\t\tcached.attrs = {};\n\t\t\t\tcached.attrs[attr[1]] = attr[2] || \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn cached;\n\t}\n\telse {\n\t\ttagObj.tag = raw;\n\t\treturn tagObj;\n\t}\n}","import { isFunc } from '../../utils';\n\nexport const DEVMODE = {\n\twarnings: true,\n\n\tverbose: true,\n\n\tmutations: true,\n\n\tDATA_REPLACED: function(vm, oldData, newData) {\n\t\tif (isFunc(vm.view) && vm.view.length > 1) {\n\t\t\tvar msg = \"A view's data was replaced. The data originally passed to the view closure during init is now stale. You may want to rely only on the data passed to render() or vm.data.\";\n\t\t\treturn [msg, vm, oldData, newData];\n\t\t}\n\t},\n\n\tUNKEYED_INPUT: function(vnode) {\n\t\treturn [\"Unkeyed detected. Consider adding a name, id, _key, or _ref attr to avoid accidental DOM recycling between different types.\", vnode];\n\t},\n\n\tUNMOUNTED_REDRAW: function(vm) {\n\t\treturn [\"Invoking redraw() of an unmounted (sub)view may result in errors.\", vm];\n\t},\n\n\tINLINE_HANDLER: function(vnode, oval, nval) {\n\t\treturn [\"Anonymous event handlers get re-bound on each redraw, consider defining them outside of templates for better reuse.\", vnode, oval, nval];\n\t},\n\n\tMISMATCHED_HANDLER: function(vnode, oval, nval) {\n\t\treturn [\"Patching of different event handler styles is not fully supported for performance reasons. Ensure that handlers are defined using the same style.\", vnode, oval, nval];\n\t},\n\n\tSVG_WRONG_FACTORY: function(vnode) {\n\t\treturn [\" defined using domvm.defineElement. Use domvm.defineSvgElement for & child nodes.\", vnode];\n\t},\n\n\tFOREIGN_ELEMENT: function(el) {\n\t\treturn [\"domvm stumbled upon an element in its DOM that it didn't create, which may be problematic. You can inject external elements into the vtree using domvm.injectElement.\", el];\n\t},\n\n\tREUSED_ATTRS: function(vnode) {\n\t\treturn [\"Attrs objects may only be reused if they are truly static, as a perf optimization. Mutating & reusing them will have no effect on the DOM due to 0 diff.\", vnode];\n\t},\n\n\tADJACENT_TEXT: function(vnode, text1, text2) {\n\t\treturn [\"Adjacent text nodes will be merged. Consider concatentating them yourself in the template for improved perf.\", vnode, text1, text2];\n\t},\n\n\tARRAY_FLATTENED: function(vnode, array) {\n\t\treturn [\"Arrays within templates will be flattened. When they are leading or trailing, it's easy and more performant to just .concat() them in the template.\", vnode, array];\n\t},\n}\n\nexport function devNotify(key, args) {\n\tif (DEVMODE.warnings && isFunc(DEVMODE[key])) {\n\t\tvar msgArgs = DEVMODE[key].apply(null, args);\n\n\t\tif (msgArgs) {\n\t\t\tmsgArgs[0] = key + \": \" + (DEVMODE.verbose ? msgArgs[0] : \"\");\n\t\t\tconsole.warn.apply(console, msgArgs);\n\t\t}\n\t}\n}","import { ELEMENT } from './VTYPES';\nimport { VNode } from './VNode';\nimport { cssTag } from './addons/cssTag';\nimport { isSet, isPlainObj } from '../utils';\nimport { devNotify } from \"./addons/devmode\";\n\n// (de)optimization flags\n\n// prevents inserting/removing/reordering of children\nexport const FIXED_BODY = 1;\n// forces slow bottom-up removeChild to fire deep willRemove/willUnmount hooks,\nexport const DEEP_REMOVE = 2;\n// enables fast keyed lookup of children via binary search, expects homogeneous keyed body\nexport const KEYED_LIST = 4;\n// indicates an vnode match/diff/recycler function for body\nexport const LAZY_LIST = 8;\n\nexport function initElementNode(tag, attrs, body, flags) {\n\tlet node = new VNode;\n\n\tnode.type = ELEMENT;\n\n\tif (isSet(flags))\n\t\tnode.flags = flags;\n\n\tnode.attrs = attrs;\n\n\tvar parsed = cssTag(tag);\n\n\tnode.tag = parsed.tag;\n\n\t// meh, weak assertion, will fail for id=0, etc.\n\tif (parsed.id || parsed.class || parsed.attrs) {\n\t\tvar p = node.attrs || {};\n\n\t\tif (parsed.id && !isSet(p.id))\n\t\t\tp.id = parsed.id;\n\n\t\tif (parsed.class) {\n\t\t\tnode._class = parsed.class;\t\t// static class\n\t\t\tp.class = parsed.class + (isSet(p.class) ? (\" \" + p.class) : \"\");\n\t\t}\n\t\tif (parsed.attrs) {\n\t\t\tfor (var key in parsed.attrs)\n\t\t\t\tif (!isSet(p[key]))\n\t\t\t\t\tp[key] = parsed.attrs[key];\n\t\t}\n\n//\t\tif (node.attrs !== p)\n\t\t\tnode.attrs = p;\n\t}\n\n\tvar mergedAttrs = node.attrs;\n\n\tif (isSet(mergedAttrs)) {\n\t\tif (isSet(mergedAttrs._key))\n\t\t\tnode.key = mergedAttrs._key;\n\n\t\tif (isSet(mergedAttrs._ref))\n\t\t\tnode.ref = mergedAttrs._ref;\n\n\t\tif (isSet(mergedAttrs._hooks))\n\t\t\tnode.hooks = mergedAttrs._hooks;\n\n\t\tif (isSet(mergedAttrs._raw))\n\t\t\tnode.raw = mergedAttrs._raw;\n\n\t\tif (isSet(mergedAttrs._data))\n\t\t\tnode.data = mergedAttrs._data;\n\n\t\tif (isSet(mergedAttrs._flags))\n\t\t\tnode.flags = mergedAttrs._flags;\n\n\t\tif (!isSet(node.key)) {\n\t\t\tif (isSet(node.ref))\n\t\t\t\tnode.key = node.ref;\n\t\t\telse if (isSet(mergedAttrs.id))\n\t\t\t\tnode.key = mergedAttrs.id;\n\t\t\telse if (isSet(mergedAttrs.name))\n\t\t\t\tnode.key = mergedAttrs.name + (mergedAttrs.type == \"radio\" ? mergedAttrs.value : \"\");\n\t\t}\n\t}\n\n\tif (body != null)\n\t\tnode.body = body;\n\n\tif (_DEVMODE) {\n\t\tif (node.tag === \"svg\") {\n\t\t\tsetTimeout(function() {\n\t\t\t\tnode.ns == null && devNotify(\"SVG_WRONG_FACTORY\", [node]);\n\t\t\t}, 16);\n\t\t}\n\t\telse if (node.tag === \"input\" && node.key == null)\n\t\t\tdevNotify(\"UNKEYED_INPUT\", [node]);\n\t}\n\n\treturn node;\n}","import { TEXT, VVIEW, VMODEL } from './VTYPES';\nimport { defineText } from './defineText';\nimport { isVal, isArr, isFunc, insertArr, deepSet } from '../utils';\nimport { getVm } from './utils';\nimport { isStream, hookStream } from './addons/stream';\nimport { DEEP_REMOVE } from './initElementNode';\nimport { devNotify } from \"./addons/devmode\";\n\nfunction setRef(vm, name, node) {\n\tvar path = [\"refs\"].concat(name.split(\".\"));\n\tdeepSet(vm, path, node);\n}\n\nfunction setDeepRemove(node) {\n\twhile (node = node.parent)\n\t\tnode.flags |= DEEP_REMOVE;\n}\n\n// vnew, vold\nexport function preProc(vnew, parent, idx, ownVm) {\n\tif (vnew.type === VMODEL || vnew.type === VVIEW)\n\t\treturn;\n\n\tvnew.parent = parent;\n\tvnew.idx = idx;\n\tvnew.vm = ownVm;\n\n\tif (vnew.ref != null)\n\t\tsetRef(getVm(vnew), vnew.ref, vnew);\n\n\tvar nh = vnew.hooks,\n\t\tvh = ownVm && ownVm.hooks;\n\n\tif (nh && (nh.willRemove || nh.didRemove) ||\n\t\tvh && (vh.willUnmount || vh.didUnmount))\n\t\tsetDeepRemove(vnew);\n\n\tif (isArr(vnew.body))\n\t\tpreProcBody(vnew);\n\telse if (isStream(vnew.body))\n\t\tvnew.body = hookStream(vnew.body, getVm(vnew));\n}\n\nexport function preProcBody(vnew) {\n\tvar body = vnew.body;\n\n\tfor (var i = 0; i < body.length; i++) {\n\t\tvar node2 = body[i];\n\n\t\t// remove false/null/undefined\n\t\tif (node2 === false || node2 == null)\n\t\t\tbody.splice(i--, 1);\n\t\t// flatten arrays\n\t\telse if (isArr(node2)) {\n\t\t\tif (_DEVMODE) {\n\t\t\t\tif (i === 0 || i === body.length - 1)\n\t\t\t\t\tdevNotify(\"ARRAY_FLATTENED\", [vnew, node2]);\n\t\t\t}\n\t\t\tinsertArr(body, node2, i--, 1);\n\t\t}\n\t\telse {\n\t\t\tif (node2.type == null)\n\t\t\t\tbody[i] = node2 = defineText(\"\"+node2);\n\n\t\t\tif (node2.type === TEXT) {\n\t\t\t\t// remove empty text nodes\n\t\t\t\tif (node2.body == null || node2.body === \"\")\n\t\t\t\t\tbody.splice(i--, 1);\n\t\t\t\t// merge with previous text node\n\t\t\t\telse if (i > 0 && body[i-1].type === TEXT) {\n\t\t\t\t\tif (_DEVMODE) {\n\t\t\t\t\t\tdevNotify(\"ADJACENT_TEXT\", [vnew, body[i-1].body, node2.body]);\n\t\t\t\t\t}\n\t\t\t\t\tbody[i-1].body += node2.body;\n\t\t\t\t\tbody.splice(i--, 1);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t\tpreProc(node2, vnew, i, null);\n\t\t\t}\n\t\t\telse\n\t\t\t\tpreProc(node2, vnew, i, null);\n\t\t}\n\t}\n}","const unitlessProps = {\n\tanimationIterationCount: true,\n\tboxFlex: true,\n\tboxFlexGroup: true,\n\tboxOrdinalGroup: true,\n\tcolumnCount: true,\n\tflex: true,\n\tflexGrow: true,\n\tflexPositive: true,\n\tflexShrink: true,\n\tflexNegative: true,\n\tflexOrder: true,\n\tgridRow: true,\n\tgridColumn: true,\n\torder: true,\n\tlineClamp: true,\n\n\tborderImageOutset: true,\n\tborderImageSlice: true,\n\tborderImageWidth: true,\n\tfontWeight: true,\n\tlineHeight: true,\n\topacity: true,\n\torphans: true,\n\ttabSize: true,\n\twidows: true,\n\tzIndex: true,\n\tzoom: true,\n\n\tfillOpacity: true,\n\tfloodOpacity: true,\n\tstopOpacity: true,\n\tstrokeDasharray: true,\n\tstrokeDashoffset: true,\n\tstrokeMiterlimit: true,\n\tstrokeOpacity: true,\n\tstrokeWidth: true\n};\n\nexport function autoPx(name, val) {\n\tif (FEAT_AUTOPX) {\n\t\t// typeof val === 'number' is faster but fails for numeric strings\n\t\treturn !isNaN(val) && !unitlessProps[name] ? (val + \"px\") : val;\n\t}\n\telse\n\t\treturn val;\n}","import { isVal, emptyObj } from '../utils';\nimport { getVm } from './utils';\nimport { autoPx } from './addons/autoPx';\nimport { isStream, hookStream } from './addons/stream';\n\n// assumes if styles exist both are objects or both are strings\nexport function patchStyle(n, o) {\n\tvar ns = (n.attrs || emptyObj).style;\n\tvar os = o ? (o.attrs || emptyObj).style : null;\n\n\t// replace or remove in full\n\tif (ns == null || isVal(ns))\n\t\tn.el.style.cssText = ns;\n\telse {\n\t\tfor (var nn in ns) {\n\t\t\tvar nv = ns[nn];\n\n\t\t\tif (isStream(nv))\n\t\t\t\tnv = hookStream(nv, getVm(n));\n\n\t\t\tif (os == null || nv != null && nv !== os[nn])\n\t\t\t\tn.el.style[nn] = autoPx(nn, nv);\n\t\t}\n\n\t\t// clean old\n\t\tif (os) {\n\t\t\tfor (var on in os) {\n\t\t\t\tif (ns[on] == null)\n\t\t\t\t\tn.el.style[on] = \"\";\n\t\t\t}\n\t\t}\n\t}\n}","import { isArr } from '../utils';\nimport { repaint } from './utils';\n\nexport const didQueue = [];\n\nexport function fireHook(name, o, n, immediate) {\n\tvar fn = o.hooks[name];\n\n\tif (fn) {\n\t\tif (name[0] === \"d\" && name[1] === \"i\" && name[2] === \"d\") {\t// did*\n\t\t\t//\tconsole.log(name + \" should queue till repaint\", o, n);\n\t\t\timmediate ? repaint(o.parent) && fn(o, n) : didQueue.push([fn, o, n]);\n\t\t}\n\t\telse {\t\t// will*\n\t\t\t//\tconsole.log(name + \" may delay by promise\", o, n);\n\t\t\treturn fn(o, n);\t\t// or pass done() resolver\n\t\t}\n\t}\n}\n\nexport function drainDidHooks(vm) {\n\tif (didQueue.length) {\n\t\trepaint(vm.node);\n\n\t\tvar item;\n\t\twhile (item = didQueue.shift())\n\t\t\titem[0](item[1], item[2]);\n\t}\n}","import { ENV_DOM, isArr, isProm, curry } from '../utils';\nimport { fireHook } from './hooks';\nimport { FIXED_BODY, DEEP_REMOVE } from './initElementNode';\n\nconst doc = ENV_DOM ? document : null;\n\nexport function closestVNode(el) {\n\twhile (el._node == null)\n\t\tel = el.parentNode;\n\treturn el._node;\n}\n\nexport function createElement(tag, ns) {\n\tif (ns != null)\n\t\treturn doc.createElementNS(ns, tag);\n\treturn doc.createElement(tag);\n}\n\nexport function createTextNode(body) {\n\treturn doc.createTextNode(body);\n}\n\nexport function createComment(body) {\n\treturn doc.createComment(body);\n}\n\n// ? removes if !recycled\nexport function nextSib(sib) {\n\treturn sib.nextSibling;\n}\n\n// ? removes if !recycled\nexport function prevSib(sib) {\n\treturn sib.previousSibling;\n}\n\n// TODO: this should collect all deep proms from all hooks and return Promise.all()\nfunction deepNotifyRemove(node) {\n\tvar hooks = node.hooks, vm = node.vm;\n\n\tvar wuRes = vm && vm.hooks && fireHook(\"willUnmount\", vm, vm.data);\n\n\tvar wrRes = hooks && fireHook(\"willRemove\", node);\n\n\tif ((node.flags & DEEP_REMOVE) === DEEP_REMOVE && isArr(node.body)) {\n\t\tfor (var i = 0; i < node.body.length; i++)\n\t\t\tdeepNotifyRemove(node.body[i]);\n\t}\n\n\treturn wuRes || wrRes;\n}\n\nfunction _removeChild(parEl, el, immediate) {\n\tvar node = el._node, hooks = node.hooks, vm = node.vm;\n\n\tif ((node.flags & DEEP_REMOVE) === DEEP_REMOVE && isArr(node.body)) {\n\t//\tvar parEl = node.el;\n\t\tfor (var i = 0; i < node.body.length; i++)\n\t\t\t_removeChild(el, node.body[i].el);\n\t}\n\n\tparEl.removeChild(el);\n\n\thooks && fireHook(\"didRemove\", node, null, immediate);\n\n\tvm && vm.hooks && fireHook(\"didUnmount\", vm, vm.data, immediate);\n}\n\n// todo: should delay parent unmount() by returning res prom?\nexport function removeChild(parEl, el) {\n\tvar node = el._node, hooks = node.hooks;\n\n\t// already marked for removal\n\tif (node._dead) return;\n\n\tvar res = deepNotifyRemove(node);\n\n\tif (res != null && isProm(res)) {\n\t\tnode._dead = true;\n\t\tres.then(curry(_removeChild, [parEl, el, true]));\n\t}\n\telse\n\t\t_removeChild(parEl, el);\n}\n\nexport function clearChildren(parent) {\n\tvar parEl = parent.el;\n\n\tif ((parent.flags & DEEP_REMOVE) === 0)\n\t\tparEl.textContent = null;\n\telse {\n\t\tvar el = parEl.firstChild;\n\n\t\tdo {\n\t\t\tvar next = nextSib(el);\n\t\t\tremoveChild(parEl, el);\n\t\t} while (el = next);\n\t}\n}\n\n// todo: hooks\nexport function insertBefore(parEl, el, refEl) {\n\tvar node = el._node, hooks = node.hooks, inDom = el.parentNode != null;\n\n\t// el === refEl is asserted as a no-op insert called to fire hooks\n\tvar vm = (el === refEl || !inDom) && node.vm;\n\n\tvm && vm.hooks && fireHook(\"willMount\", vm, vm.data);\n\n\thooks && fireHook(inDom ? \"willReinsert\" : \"willInsert\", node);\n\tparEl.insertBefore(el, refEl);\n\thooks && fireHook(inDom ? \"didReinsert\" : \"didInsert\", node);\n\n\tvm && vm.hooks && fireHook(\"didMount\", vm, vm.data);\n}\n\nexport function insertAfter(parEl, el, refEl) {\n\tinsertBefore(parEl, el, refEl ? nextSib(refEl) : null);\n}","import { isVal, sliceArgs, assignObj } from '../../utils';\n\nvar onemit = {};\n\nexport function emitCfg(cfg) {\n\tassignObj(onemit, cfg);\n}\n\nexport function emit(evName) {\n\tvar targ = this,\n\t\tsrc = targ;\n\n\tvar args = sliceArgs(arguments, 1).concat(src, src.data);\n\n\tdo {\n\t\tvar evs = targ.onemit;\n\t\tvar fn = evs ? evs[evName] : null;\n\n\t\tif (fn) {\n\t\t\tfn.apply(targ, args);\n\t\t\tbreak;\n\t\t}\n\t} while (targ = targ.parent());\n\n\tif (onemit[evName])\n\t\tonemit[evName].apply(targ, args);\n}","import { noop } from '../utils';\nimport { streamCfg } from './addons/stream';\nimport { emitCfg } from './addons/emit';\n\nexport let onevent = noop;\n\nexport function config(newCfg) {\n\tonevent = newCfg.onevent || onevent;\n\n\tif (FEAT_EMIT) {\n\t\tif (newCfg.onemit)\n\t\t\temitCfg(newCfg.onemit);\n\t}\n\n\tif (FEAT_STREAM) {\n\t\tif (newCfg.stream)\n\t\t\tstreamCfg(newCfg.stream);\n\t}\n}","import { isArr, isFunc, cmpArr } from '../utils';\nimport { closestVNode } from './dom';\nimport { getVm } from './utils';\nimport { onevent } from './config';\nimport { devNotify } from \"./addons/devmode\";\n\nfunction bindEv(el, type, fn) {\n//\tDEBUG && console.log(\"addEventListener\");\n\tel[type] = fn;\n}\n\nfunction handle(e, fn, args) {\n\tvar node = closestVNode(e.target);\n\tvar vm = getVm(node);\n\tvar out = fn.apply(null, args.concat([e, node, vm, vm.data]));\n\n\t// should these respect out === false?\n\tvm.onevent(e, node, vm, vm.data, args);\n\tonevent.call(null, e, node, vm, vm.data, args);\n\n\tif (out === false) {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t}\n}\n\nfunction wrapHandler(fn, args) {\n//\tconsole.log(\"wrapHandler\");\n\n\treturn function wrap(e) {\n\t\thandle(e, fn, args);\n\t};\n}\n\n// delagated handlers {\".moo\": [fn, a, b]}, {\".moo\": fn}\nfunction wrapHandlers(hash) {\n//\tconsole.log(\"wrapHandlers\");\n\n\treturn function wrap(e) {\n\t\tfor (var sel in hash) {\n\t\t\tif (e.target.matches(sel)) {\n\t\t\t\tvar hnd = hash[sel];\n\t\t\t\tvar isarr = isArr(hnd);\n\t\t\t\tvar fn = isarr ? hnd[0] : hnd;\n\t\t\t\tvar args = isarr ? hnd.slice(1) : [];\n\n\t\t\t\thandle(e, fn, args);\n\t\t\t}\n\t\t}\n\t}\n}\n\n// could merge with on*\n\nexport function patchEvent(node, name, nval, oval) {\n\tif (nval === oval)\n\t\treturn;\n\n\tvar el = node.el;\n\n\tif (nval._raw) {\n\t\tbindEv(el, name, nval);\n\t\treturn;\n\t}\n\n\tif (_DEVMODE) {\n\t\tif (isFunc(nval) && isFunc(oval) && oval.name == nval.name)\n\t\t\tdevNotify(\"INLINE_HANDLER\", [node, oval, nval]);\n\t}\n\n\t// param'd eg onclick: [myFn, 1, 2, 3...]\n\tif (isArr(nval)) {\n\t\tif (_DEVMODE) {\n\t\t\tif (oval != null && !isArr(oval))\n\t\t\t\tdevNotify(\"MISMATCHED_HANDLER\", [node, oval, nval]);\n\t\t}\n\t\tvar diff = oval == null || !cmpArr(nval, oval);\n\t\tdiff && bindEv(el, name, wrapHandler(nval[0], nval.slice(1)));\n\t}\n\t// basic onclick: myFn (or extracted)\n\telse if (isFunc(nval)) {\n\t\tif (_DEVMODE) {\n\t\t\tif (oval != null && !isFunc(oval))\n\t\t\t\tdevNotify(\"MISMATCHED_HANDLER\", [node, oval, nval]);\n\t\t}\n\t\tbindEv(el, name, wrapHandler(nval, []));\n\t}\n\t// delegated onclick: {\".sel\": myFn} & onclick: {\".sel\": [myFn, 1, 2, 3]}\n\telse\t\t// isPlainObj, TODO:, diff with old/clean\n\t\tbindEv(el, name, wrapHandlers(nval));\n}","import { isPlainObj } from '../utils';\nimport { initElementNode } from './initElementNode';\n\nexport function defineElement(tag, arg1, arg2, flags) {\n\tvar attrs, body;\n\n\tif (arg2 == null) {\n\t\tif (isPlainObj(arg1))\n\t\t\tattrs = arg1;\n\t\telse\n\t\t\tbody = arg1;\n\t}\n\telse {\n\t\tattrs = arg1;\n\t\tbody = arg2;\n\t}\n\n\treturn initElementNode(tag, attrs, body, flags);\n}","import { defineElement } from \"./defineElement\";\n\n//export const XML_NS = \"http://www.w3.org/2000/xmlns/\";\nexport const SVG_NS = \"http://www.w3.org/2000/svg\";\nexport const XLINK_NS = \"http://www.w3.org/1999/xlink\";\n\nexport function defineSvgElement(tag, arg1, arg2, flags) {\n\tvar n = defineElement(tag, arg1, arg2, flags);\n\tn.ns = SVG_NS;\n\treturn n;\n}","import { isStyleProp, isSplProp, isEvProp, isDynProp, getVm } from './utils';\nimport { isFunc, emptyObj } from '../utils';\nimport { patchStyle } from './patchStyle';\nimport { patchEvent } from './patchEvent';\nimport { isStream, hookStream } from './addons/stream';\nimport { devNotify } from \"./addons/devmode\";\nimport { XLINK_NS } from './defineSvgElement';\n\nconst XLINKHREF = \"xlink:href\";\n\nexport function remAttr(node, name, asProp) {\n\tif (asProp)\n\t\tnode.el[name] = \"\";\n\telse {\n\t\tif (name === XLINKHREF)\n\t\t\tnode.el.removeAttributeNS(XLINK_NS, \"href\");\n\t\telse\n\t\t\tnode.el.removeAttribute(name);\n\t}\n}\n\n// setAttr\n// diff, \".\", \"on*\", bool vals, skip _*, value/checked/selected selectedIndex\nexport function setAttr(node, name, val, asProp, initial) {\n\tvar el = node.el;\n\n\tif (val == null)\n\t\t!initial && remAttr(node, name, false);\t\t//, asProp? // will also removeAttr of style: null\n\telse if (node.ns != null) {\n\t\tif (name === XLINKHREF)\n\t\t\tel.setAttributeNS(XLINK_NS, \"href\", val);\n\t\telse\n\t\t\tel.setAttribute(name, val);\n\t}\n\telse if (name === \"class\")\n\t\tel.className = val;\n\telse if (name === \"id\" || typeof val === \"boolean\" || asProp)\n\t\tel[name] = val;\n\telse if (name[0] === \".\")\n\t\tel[name.substr(1)] = val;\n\telse\n\t\tel.setAttribute(name, val);\n}\n\nexport function patchAttrs(vnode, donor, initial) {\n\tconst nattrs = vnode.attrs || emptyObj;\n\tconst oattrs = donor.attrs || emptyObj;\n\n\tif (nattrs === oattrs) {\n\t\tif (_DEVMODE)\n\t\t\tdevNotify(\"REUSED_ATTRS\", [vnode]);\n\t}\n\telse {\n\t\tfor (var key in nattrs) {\n\t\t\tvar nval = nattrs[key];\n\t\t\tvar isDyn = isDynProp(vnode.tag, key);\n\t\t\tvar oval = isDyn ? vnode.el[key] : oattrs[key];\n\n\t\t\tif (isStream(nval))\n\t\t\t\tnattrs[key] = nval = hookStream(nval, getVm(vnode));\n\n\t\t\tif (nval === oval) {}\n\t\t\telse if (isStyleProp(key))\n\t\t\t\tpatchStyle(vnode, donor);\n\t\t\telse if (isSplProp(key)) {}\n\t\t\telse if (isEvProp(key))\n\t\t\t\tpatchEvent(vnode, key, nval, oval);\n\t\t\telse\n\t\t\t\tsetAttr(vnode, key, nval, isDyn, initial);\n\t\t}\n\n\t\t// TODO: handle key[0] === \".\"\n\t\t// should bench style.cssText = \"\" vs removeAttribute(\"style\")\n\t\tfor (var key in oattrs) {\n\t\t\t!(key in nattrs) &&\n\t\t\t!isSplProp(key) &&\n\t\t\tremAttr(vnode, key, isDynProp(vnode.tag, key) || isEvProp(key));\n\t\t}\n\t}\n}","import { ELEMENT, TEXT, COMMENT, VVIEW, VMODEL } from './VTYPES';\nimport { ViewModel } from './ViewModel';\n\nexport function createView(view, data, key, opts) {\n\tif (view.type === VVIEW) {\n\t\tdata\t= view.data;\n\t\tkey\t\t= view.key;\n\t\topts\t= view.opts;\n\t\tview\t= view.view;\n\t}\n\n\treturn new ViewModel(view, data, key, opts);\n}","import { ELEMENT, TEXT, COMMENT, VVIEW, VMODEL } from './VTYPES';\nimport { isArr, emptyObj } from '../utils';\nimport { patchAttrs } from './patchAttrs';\nimport { createView } from './createView';\nimport { LAZY_LIST } from './initElementNode';\n//import { XML_NS, XLINK_NS } from './defineSvgElement';\nimport { createElement, createTextNode, createComment, insertBefore } from './dom';\n\nexport function hydrateBody(vnode) {\n\tfor (var i = 0; i < vnode.body.length; i++) {\n\t\tvar vnode2 = vnode.body[i];\n\t\tvar type2 = vnode2.type;\n\n\t\t// ELEMENT,TEXT,COMMENT\n\t\tif (type2 <= COMMENT)\n\t\t\tinsertBefore(vnode.el, hydrate(vnode2));\t\t// vnode.el.appendChild(hydrate(vnode2))\n\t\telse if (type2 === VVIEW) {\n\t\t\tvar vm = createView(vnode2.view, vnode2.data, vnode2.key, vnode2.opts)._redraw(vnode, i, false);\t\t// todo: handle new data updates\n\t\t\ttype2 = vm.node.type;\n\t\t\tinsertBefore(vnode.el, hydrate(vm.node));\n\t\t}\n\t\telse if (type2 === VMODEL) {\n\t\t\tvar vm = vnode2.vm;\n\t\t\tvm._redraw(vnode, i);\t\t\t\t\t// , false\n\t\t\ttype2 = vm.node.type;\n\t\t\tinsertBefore(vnode.el, vm.node.el);\t\t// , hydrate(vm.node)\n\t\t}\n\t}\n}\n\n// TODO: DRY this out. reusing normal patch here negatively affects V8's JIT\nexport function hydrate(vnode, withEl) {\n\tif (vnode.el == null) {\n\t\tif (vnode.type === ELEMENT) {\n\t\t\tvnode.el = withEl || createElement(vnode.tag, vnode.ns);\n\n\t\t//\tif (vnode.tag === \"svg\")\n\t\t//\t\tvnode.el.setAttributeNS(XML_NS, 'xmlns:xlink', XLINK_NS);\n\n\t\t\tif (vnode.attrs != null)\n\t\t\t\tpatchAttrs(vnode, emptyObj, true);\n\n\t\t\tif ((vnode.flags & LAZY_LIST) === LAZY_LIST)\t// vnode.body instanceof LazyList\n\t\t\t\tvnode.body.body(vnode);\n\n\t\t\tif (isArr(vnode.body))\n\t\t\t\thydrateBody(vnode);\n\t\t\telse if (vnode.body != null && vnode.body !== \"\") {\n\t\t\t\tif (vnode.raw)\n\t\t\t\t\tvnode.el.innerHTML = vnode.body;\n\t\t\t\telse\n\t\t\t\t\tvnode.el.textContent = vnode.body;\n\t\t\t}\n\t\t}\n\t\telse if (vnode.type === TEXT)\n\t\t\tvnode.el = withEl || createTextNode(vnode.body);\n\t\telse if (vnode.type === COMMENT)\n\t\t\tvnode.el = withEl || createComment(vnode.body);\n\t}\n\n\tvnode.el._node = vnode;\n\n\treturn vnode.el;\n}","import { emptyObj } from '../utils';\nimport { hydrate } from './hydrate';\nimport { prevSib, nextSib, insertBefore, insertAfter, removeChild } from './dom';\nimport { devNotify } from \"./addons/devmode\";\n\nfunction nextNode(node, body) {\n\treturn body[node.idx + 1];\n}\n\nfunction prevNode(node, body) {\n\treturn body[node.idx - 1];\n}\n\nfunction parentNode(node) {\n\treturn node.parent;\n}\n\nfunction cmpElNodeIdx(a, b) {\n\treturn a._node.idx - b._node.idx;\n}\n\nfunction tmpEdges(fn, parEl, lftSib, rgtSib) {\n\t// get outer immute edges\n\tvar lftLft = prevSib(lftSib);\n\tvar rgtRgt = nextSib(rgtSib);\n\n\tfn(lftLft, rgtRgt);\n\n\treturn {\n\t\tlftSib: lftLft ? nextSib(lftLft) : parEl.firstChild,\n\t\trgtSib: rgtRgt ? prevSib(rgtRgt) : parEl.lastChild,\n\t};\n}\n\nfunction headTailTry(parEl, lftSib, lftNode, rgtSib, rgtNode) {\n\tvar areAdjacent\t= rgtNode.idx === lftNode.idx + 1;\n\tvar headToTail = areAdjacent ? false : lftSib._node === rgtNode;\n\tvar tailToHead = areAdjacent ? true : rgtSib._node === lftNode;\n\n\tif (headToTail || tailToHead) {\n\t\treturn tmpEdges(function(lftLft, rgtRgt) {\n\t\t\tif (tailToHead)\n\t\t\t\tinsertBefore(parEl, rgtSib, lftSib);\n\n\t\t\tif (headToTail)\n\t\t\t\tinsertBefore(parEl, lftSib, rgtRgt);\n\t\t}, parEl, lftSib, rgtSib);\n\t}\n\n\treturn null;\n}\n\n// init vm,\n\n// selection sort of DOM (cause move cost >> cmp cost)\n// todo: skip removed\nfunction sortDOM(parEl, lftSib, rgtSib, cmpFn) {\n//\tDEBUG && console.log(\"selection sort!\");\n\n\treturn tmpEdges(function(lftLft, rgtRgt) {\n\t\tvar min;\n\n\t\tfor (var i = lftSib; i !== rgtRgt; i = nextSib(i)) {\n\t\t\tlftSib = min = i;\n\n\t\t\tfor (var j = nextSib(i); j !== rgtRgt; j = nextSib(j)) {\n\t\t\t\tif (cmpFn(min, j) > 0)\n\t\t\t\t\tmin = j;\n\t\t\t}\n\n\t\t\tif (min === i)\n\t\t\t\tcontinue;\n\n\t\t\tinsertBefore(parEl, min, lftSib);\n\n\t\t\ti = min;\n\t\t}\n\t}, parEl, lftSib, rgtSib);\n}\n\nfunction cmpElNodeIdx(a, b) {\n\treturn a._node.idx - b._node.idx;\n}\n\nexport function syncChildren(node, donor) {\n\tvar parEl\t\t= node.el,\n\t\tbody\t\t= node.body,\n\t\tobody\t\t= donor.body,\n\t\tlftNode\t\t= body[0],\n\t\trgtNode\t\t= body[body.length - 1],\n\t\tlftSib\t\t= ((obody)[0] || emptyObj).el,\n\t//\tlftEnd\t\t= prevSib(lftSib),\n\t\trgtSib\t\t= (obody[obody.length - 1] || emptyObj).el,\n\t//\trgtEnd\t\t= nextSib(rgtSib),\n\t\tnewSibs,\n\t\ttmpSib,\n\t\tlsNode,\n\t\trsNode;\n\n\tconverge:\n\twhile (1) {\n//\t\tfrom_left:\n\t\twhile (1) {\n\t\t\t// remove any non-recycled sibs whose el.node has the old parent\n\t\t\tif (lftSib) {\n\t\t\t\t// skip dom elements not created by domvm\n\t\t\t\tif ((lsNode = lftSib._node) == null) {\n\t\t\t\t\tif (_DEVMODE)\n\t\t\t\t\t\tdevNotify(\"FOREIGN_ELEMENT\", [lftSib]);\n\n\t\t\t\t\tlftSib = nextSib(lftSib);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (parentNode(lsNode) !== node) {\n\t\t\t\t\ttmpSib = nextSib(lftSib);\n\t\t\t\t\tlsNode.vm != null ? lsNode.vm.unmount(true) : removeChild(parEl, lftSib);\n\t\t\t\t\tlftSib = tmpSib;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (lftNode == null)\t\t// reached end\n\t\t\t\tbreak converge;\n\t\t\telse if (lftNode.el == null) {\n\t\t\t\tinsertBefore(parEl, hydrate(lftNode), lftSib);\t\t// lftNode.vm != null ? lftNode.vm.mount(parEl, false, true, lftSib) :\n\t\t\t\tlftNode = nextNode(lftNode, body);\n\t\t\t}\n\t\t\telse if (lftNode.el === lftSib) {\n\t\t\t\tlftNode = nextNode(lftNode, body);\n\t\t\t\tlftSib = nextSib(lftSib);\n\t\t\t}\n\t\t\telse\n\t\t\t\tbreak;\n\t\t}\n\n//\t\tfrom_right:\n\t\twhile (1) {\n\t\t//\tif (rgtSib === lftEnd)\n\t\t//\t\tbreak converge;\n\n\t\t\tif (rgtSib) {\n\t\t\t\tif ((rsNode = rgtSib._node) == null) {\n\t\t\t\t\tif (_DEVMODE)\n\t\t\t\t\t\tdevNotify(\"FOREIGN_ELEMENT\", [rgtSib]);\n\n\t\t\t\t\trgtSib = prevSib(rgtSib);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (parentNode(rsNode) !== node) {\n\t\t\t\t\ttmpSib = prevSib(rgtSib);\n\t\t\t\t\trsNode.vm != null ? rsNode.vm.unmount(true) : removeChild(parEl, rgtSib);\n\t\t\t\t\trgtSib = tmpSib;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (rgtNode === lftNode)\t\t// converged\n\t\t\t\tbreak converge;\n\t\t\telse if (rgtNode.el == null) {\n\t\t\t\tinsertAfter(parEl, hydrate(rgtNode), rgtSib);\t\t// rgtNode.vm != null ? rgtNode.vm.mount(parEl, false, true, nextSib(rgtSib) :\n\t\t\t\trgtNode = prevNode(rgtNode, body);\n\t\t\t}\n\t\t\telse if (rgtNode.el === rgtSib) {\n\t\t\t\trgtNode = prevNode(rgtNode, body);\n\t\t\t\trgtSib = prevSib(rgtSib);\n\t\t\t}\n\t\t\telse\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif (newSibs = headTailTry(parEl, lftSib, lftNode, rgtSib, rgtNode)) {\n\t\t\tlftSib = newSibs.lftSib;\n\t\t\trgtSib = newSibs.rgtSib;\n\t\t\tcontinue;\n\t\t}\n\n\t\tnewSibs = sortDOM(parEl, lftSib, rgtSib, cmpElNodeIdx);\n\t\tlftSib = newSibs.lftSib;\n\t\trgtSib = newSibs.rgtSib;\n\t}\n}","import { ELEMENT, TEXT, COMMENT, VVIEW, VMODEL } from './VTYPES';\nimport { isArr, binaryKeySearch } from '../utils';\nimport { preProc } from './preProc';\nimport { hydrateBody } from './hydrate';\nimport { clearChildren } from './dom';\nimport { syncChildren } from './syncChildren';\nimport { fireHook } from './hooks';\nimport { patchAttrs } from './patchAttrs';\nimport { createView } from './createView';\nimport { FIXED_BODY, DEEP_REMOVE, KEYED_LIST, LAZY_LIST } from './initElementNode';\n\nfunction findSequential(n, obody, fromIdx, toIdx) {\t\t// pre-tested isView?\n\tfor (; fromIdx < obody.length; fromIdx++) {\n\t\tvar o = obody[fromIdx];\n\n\t\tif (n.type === VVIEW && o.vm != null) {\t\t\t// also ignore recycled/moved?\n\t\t\tvar ov = o.vm;\n\n\t\t\t// match by key & viewFn\n\t\t\tif (ov.view === n.view && ov.key === n.key)\n\t\t\t\treturn o;\n\t\t}\n\n\t\tif (o.el._node !== o || n.tag !== o.tag || n.type !== o.type || n.vm !== o.vm)\n\t\t\tcontinue;\n\n\t\t// if n.view\n\n\t\tif (n.key === o.key)\t\t// accounts for matching & both null\n\t\t\treturn o;\n\t\telse {\n\t\t\t//\n\t\t\tif (o.key == null) {\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t// n.key && o.key, ident?\n\t\t\telse {\n\t\t\t//\tconsole.log(n.key, o.key);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn null;\n}\n\nfunction findKeyedSequential(n, obody, fromIdx) {\n\tfor (; fromIdx < obody.length; fromIdx++) {\n\t\tvar o = obody[fromIdx];\n\n\t\tif (o.key === n.key)\n\t\t\treturn o;\n\t}\n\n\treturn null;\n}\n\n// list must be a sorted list of vnodes by key\nfunction findKeyedBinary(n, list) {\n\tvar idx = binaryKeySearch(list, n.key);\n\treturn idx > -1 ? list[idx] : null;\n}\n\n// have it handle initial hydrate? !donor?\n// types (and tags if ELEM) are assumed the same, and donor exists\nexport function patch(vnode, donor) {\n\tdonor.hooks && fireHook(\"willRecycle\", donor, vnode);\n\n\tvar el = vnode.el = donor.el;\n\n\tvar obody = donor.body;\n\tvar nbody = vnode.body;\n\n\tel._node = vnode;\n\n\t// \"\" => \"\"\n\tif (vnode.type === TEXT && nbody !== obody) {\n\t\tel.nodeValue = nbody;\n\t\treturn;\n\t}\n\n\tif (vnode.attrs != null || donor.attrs != null)\n\t\tpatchAttrs(vnode, donor, false);\n\n\t// patch events\n\n\tvar oldIsArr = isArr(obody);\n\tvar newIsArr = isArr(nbody);\n\tvar newIsLazy = (vnode.flags & LAZY_LIST) === LAZY_LIST;\n\n//\tvar nonEqNewBody = nbody != null && nbody !== obody;\n\n\tif (oldIsArr) {\n\t\t// [] => []\n\t\tif (newIsArr || newIsLazy) {\n\t\t//\tconsole.log('[] => []', obody, nbody);\n\t\t\t// graft children\n\t\t\tpatchChildren(vnode, donor, newIsLazy);\n\t\t}\n\t\t// [] => \"\" | null\n\t\telse if (nbody !== obody) {\n\t\t\t// needs cleanup pass?\n\t\t//\tconsole.log('[] => \"\"', obody, nbody);\n\n\t\t\tif (nbody != null) {\n\t\t\t\tif (vnode.raw)\n\t\t\t\t\tel.innerHTML = nbody;\n\t\t\t\telse\n\t\t\t\t\tel.textContent = nbody;\n\t\t\t}\n\t\t\telse\n\t\t\t\tclearChildren(donor);\n\t\t}\n\t}\n\telse {\n\t\t// \"\" | null => []\n\t\tif (newIsArr || newIsLazy) {\n\t\t//\tconsole.log('\"\" => []', obody, nbody);\t// hydrate new here?\n\t\t\tclearChildren(donor);\n\t\t\tnewIsLazy && nbody.body(vnode);\n\t\t\thydrateBody(vnode);\n\t\t}\n\t\t// \"\" | null => \"\" | null\n\t\telse if (nbody !== obody) {\n\t\t//\tconsole.log('\"\" => \"\"', donor, vnode);\n\n\t\t\tif (vnode.raw)\n\t\t\t\tel.innerHTML = nbody;\n\t\t\telse if (donor.raw)\n\t\t\t\tel.textContent = nbody;\n\t\t\telse if (el.firstChild)\n\t\t\t\tel.firstChild.nodeValue = nbody;\n\t\t\telse\n\t\t\t\tel.textContent = nbody;\n\t\t}\n\t}\n\n\tdonor.hooks && fireHook(\"didRecycle\", donor, vnode);\n}\n\nfunction sortByKey(a, b) {\n\treturn a.key > b.key ? 1 : a.key < b.key ? -1 : 0;\n}\n\n// larger qtys of KEYED_LIST children will use binary search\nconst SEQ_SEARCH_MAX = 100;\n\n// [] => []\nfunction patchChildren(vnode, donor, newIsLazy) {\n\tvar nbody\t\t= vnode.body,\n\t\tnlen\t\t= nbody.length,\n\t\tobody\t\t= donor.body,\n\t\tolen\t\t= obody.length,\n\t\toldIsFixed\t= (donor.flags & FIXED_BODY) === FIXED_BODY,\n\t\toldIsKeyed\t= (donor.flags & KEYED_LIST) === KEYED_LIST,\n\t\tdomSync\t\t= !oldIsFixed && donor.type === ELEMENT,\n\t\tfind\t\t= findSequential,\t// default\n\t\tlist\t\t= obody;\t\t\t// default\n\n\tif (domSync && nlen === 0) {\n\t\tclearChildren(donor);\n\t\tif (newIsLazy)\n\t\t\tvnode.body = []; // nbody.tpl(all);\n\t\treturn;\n\t}\n\n\t// use binary search for non-static keyed lists of large length\n\tif (oldIsKeyed) {\n\t\tif (olen > SEQ_SEARCH_MAX && !oldIsFixed) {\n\t\t\tfind = findKeyedBinary;\n\t\t\tlist = obody.slice();\n\t\t\tlist.sort(sortByKey);\n\t\t}\n\t\telse\n\t\t\tfind = findKeyedSequential;\n\t}\n\n\tvar donor2,\n\t\tnode2,\n\t\tdiffRes,\n\t\tremake,\n\t\ttype2,\n\t\tfromIdx = 0;\t\t\t\t// first unrecycled node (search head)\n\n\t// list should always be keyed, but FIXED_BODY prevents binary search sorting\n\tif (newIsLazy) {\n\t\tfind = findKeyedSequential\n\n\t\tvar fnode2 = {key: null};\n\n\t\tvar nbodyNew = Array(nlen);\n\n\t\tfor (var i = 0; i < nlen; i++) {\n\t\t\tremake = false;\n\t\t\tdiffRes = null;\n\n\t\t\tif (oldIsKeyed)\n\t\t\t\tfnode2.key = nbody.key(i);\n\n\t\t\tdonor2 = find(fnode2, list, fromIdx);\n\n\t\t\tif (donor2 != null) {\n\t\t\t\tdiffRes = nbody.diff(i, donor2);\n\n\t\t\t\t// diff returns same, so cheaply adopt vnode without patching\n\t\t\t\tif (diffRes === true) {\n\t\t\t\t\tnode2 = donor2;\n\t\t\t\t\tnode2.parent = vnode;\n\t\t\t\t\tnode2.idx = i;\n\t\t\t\t}\n\t\t\t\t// diff returns new diffVals, so generate new vnode & patch\n\t\t\t\telse\n\t\t\t\t\tremake = true;\n\t\t\t}\n\t\t\telse\n\t\t\t\tremake = true;\n\n\t\t\tif (remake) {\n\t\t\t\tnode2 = nbody.tpl(i);\n\t\t\t\tpreProc(node2, vnode, i);\n\n\t\t\t\tnode2._diff = diffRes != null ? diffRes : nbody.diff(i);\n\n\t\t\t\tif (donor2 != null)\n\t\t\t\t\tpatch(node2, donor2);\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// TODO: flag tmp FIXED_BODY on unchanged nodes?\n\n\t\t\t\t// domSync = true;\t\tif any idx changes or new nodes added/removed\n\t\t\t}\n\n\t\t\tnbodyNew[i] = node2;\n\n\t\t\t// to keep search space small, if donation is non-contig, move node fwd?\n\t\t\t// re-establish contigindex\n\t\t\tif (find !== findKeyedBinary && donor2 != null && donor2.idx === fromIdx)\n\t\t\t\tfromIdx++;\n\t\t}\n\n\t\t// replace List w/ new body\n\t\tvnode.body = nbodyNew;\n\t}\n\telse {\n\t\tfor (var i = 0; i < nlen; i++) {\n\t\t\tvar node2 = nbody[i];\n\t\t\tvar type2 = node2.type;\n\n\t\t\t// ELEMENT,TEXT,COMMENT\n\t\t\tif (type2 <= COMMENT) {\n\t\t\t\tif (donor2 = find(node2, list, fromIdx))\n\t\t\t\t\tpatch(node2, donor2);\n\t\t\t}\n\t\t\telse if (type2 === VVIEW) {\n\t\t\t\tif (donor2 = find(node2, list, fromIdx))\t\t// update/moveTo\n\t\t\t\t\tvar vm = donor2.vm._update(node2.data, vnode, i);\t\t// withDOM\n\t\t\t\telse\n\t\t\t\t\tvar vm = createView(node2.view, node2.data, node2.key, node2.opts)._redraw(vnode, i, false);\t// createView, no dom (will be handled by sync below)\n\n\t\t\t\ttype2 = vm.node.type;\n\t\t\t}\n\t\t\telse if (type2 === VMODEL) {\n\t\t\t\tvar vm = node2.vm._update(node2.data, vnode, i);\n\t\t\t\ttype2 = vm.node.type;\n\t\t\t}\n\n\t\t\t// to keep search space small, if donation is non-contig, move node fwd?\n\t\t\t// re-establish contigindex\n\t\t\tif (find !== findKeyedBinary && donor2 != null && donor2.idx === fromIdx)\n\t\t\t\tfromIdx++;\n\t\t}\n\t}\n\n\tdomSync && syncChildren(vnode, donor);\n}","export function DOMInstr(withTime) {\n\tvar isEdge = navigator.userAgent.indexOf(\"Edge\") !== -1;\n\tvar isIE = navigator.userAgent.indexOf(\"Trident/\") !== -1;\n\tvar isMS = isEdge || isIE;\n\n\tvar getDescr = Object.getOwnPropertyDescriptor;\n\tvar defProp = Object.defineProperty;\n\n\tvar nodeProto = Node.prototype;\n\tvar textContent = getDescr(nodeProto, \"textContent\");\n\tvar nodeValue = getDescr(nodeProto, \"nodeValue\");\n\n\tvar htmlProto = HTMLElement.prototype;\n\tvar innerText = getDescr(htmlProto, \"innerText\");\n\n\tvar elemProto\t= Element.prototype;\n\tvar innerHTML\t= getDescr(!isIE ? elemProto : htmlProto, \"innerHTML\");\n\tvar className\t= getDescr(!isIE ? elemProto : htmlProto, \"className\");\n\tvar id\t\t\t= getDescr(!isIE ? elemProto : htmlProto, \"id\");\n\n\tvar styleProto\t= CSSStyleDeclaration.prototype;\n\n\tvar cssText\t\t= getDescr(styleProto, \"cssText\");\n\n\tvar inpProto = HTMLInputElement.prototype;\n\tvar areaProto = HTMLTextAreaElement.prototype;\n\tvar selProto = HTMLSelectElement.prototype;\n\tvar optProto = HTMLOptionElement.prototype;\n\n\tvar inpChecked = getDescr(inpProto, \"checked\");\n\tvar inpVal = getDescr(inpProto, \"value\");\n\n\tvar areaVal = getDescr(areaProto, \"value\");\n\n\tvar selVal = getDescr(selProto, \"value\");\n\tvar selIndex = getDescr(selProto, \"selectedIndex\");\n\n\tvar optSel = getDescr(optProto, \"selected\");\n\n\t// onclick, onkey*, etc..\n\n\t// var styleProto = CSSStyleDeclaration.prototype;\n\t// var setProperty = getDescr(styleProto, \"setProperty\");\n\n\tvar origOps = {\n\t\t\"document.createElement\": null,\n\t\t\"document.createElementNS\": null,\n\t\t\"document.createTextNode\": null,\n\t\t\"document.createComment\": null,\n\t\t\"document.createDocumentFragment\": null,\n\n\t\t\"DocumentFragment.prototype.insertBefore\": null,\t\t// appendChild\n\n\t\t\"Element.prototype.appendChild\": null,\n\t\t\"Element.prototype.removeChild\": null,\n\t\t\"Element.prototype.insertBefore\": null,\n\t\t\"Element.prototype.replaceChild\": null,\n\t\t\"Element.prototype.remove\": null,\n\n\t\t\"Element.prototype.setAttribute\": null,\n\t\t\"Element.prototype.setAttributeNS\": null,\n\t\t\"Element.prototype.removeAttribute\": null,\n\t\t\"Element.prototype.removeAttributeNS\": null,\n\n\t\t// assign?\n\t\t// dataset, classlist, any props like .onchange\n\n\t\t// .style.setProperty, .style.cssText\n\t};\n\n\tvar counts = {};\n\tvar start = null;\n\n\tfunction ctxName(opName) {\n\t\tvar opPath = opName.split(\".\");\n\t\tvar o = window;\n\t\twhile (opPath.length > 1)\n\t\t\to = o[opPath.shift()];\n\n\t\treturn {ctx: o, last: opPath[0]};\n\t}\n\n\tfor (var opName in origOps) {\n\t\tvar p = ctxName(opName);\n\n\t\tif (origOps[opName] === null)\n\t\t\torigOps[opName] = p.ctx[p.last];\n\n\t\t(function(opName, opShort) {\n\t\t\tcounts[opShort] = 0;\n\t\t\tp.ctx[opShort] = function() {\n\t\t\t\tcounts[opShort]++;\n\t\t\t\treturn origOps[opName].apply(this, arguments);\n\t\t\t};\n\t\t})(opName, p.last);\n\t}\n\n\tcounts.textContent = 0;\n\tdefProp(nodeProto, \"textContent\", {\n\t\tset: function(s) {\n\t\t\tcounts.textContent++;\n\t\t\ttextContent.set.call(this, s);\n\t\t},\n\t});\n\n\tcounts.nodeValue = 0;\n\tdefProp(nodeProto, \"nodeValue\", {\n\t\tset: function(s) {\n\t\t\tcounts.nodeValue++;\n\t\t\tnodeValue.set.call(this, s);\n\t\t},\n\t});\n\n\tcounts.innerText = 0;\n\tdefProp(htmlProto, \"innerText\", {\n\t\tset: function(s) {\n\t\t\tcounts.innerText++;\n\t\t\tinnerText.set.call(this, s);\n\t\t},\n\t});\n\n\tcounts.innerHTML = 0;\n\tdefProp(!isIE ? elemProto : htmlProto, \"innerHTML\", {\n\t\tset: function(s) {\n\t\t\tcounts.innerHTML++;\n\t\t\tinnerHTML.set.call(this, s);\n\t\t},\n\t});\n\n\tcounts.className = 0;\n\tdefProp(!isIE ? elemProto : htmlProto, \"className\", {\n\t\tset: function(s) {\n\t\t\tcounts.className++;\n\t\t\tclassName.set.call(this, s);\n\t\t},\n\t});\n\n\tcounts.cssText = 0;\n\tdefProp(styleProto, \"cssText\", {\n\t\tset: function(s) {\n\t\t\tcounts.cssText++;\n\t\t\tcssText.set.call(this, s);\n\t\t},\n\t});\n\n\tcounts.id = 0;\n\tdefProp(!isIE ? elemProto : htmlProto, \"id\", {\n\t\tset: function(s) {\n\t\t\tcounts.id++;\n\t\t\tid.set.call(this, s);\n\t\t},\n\t});\n\n\tcounts.checked = 0;\n\tdefProp(inpProto, \"checked\", {\n\t\tset: function(s) {\n\t\t\tcounts.checked++;\n\t\t\tinpChecked.set.call(this, s);\n\t\t},\n\t});\n\n\tcounts.value = 0;\n\tdefProp(inpProto, \"value\", {\n\t\tset: function(s) {\n\t\t\tcounts.value++;\n\t\t\tinpVal.set.call(this, s);\n\t\t},\n\t});\n\n\tdefProp(areaProto, \"value\", {\n\t\tset: function(s) {\n\t\t\tcounts.value++;\n\t\t\tareaVal.set.call(this, s);\n\t\t},\n\t});\n\n\tdefProp(selProto, \"value\", {\n\t\tset: function(s) {\n\t\t\tcounts.value++;\n\t\t\tselVal.set.call(this, s);\n\t\t},\n\t});\n\n\tcounts.selectedIndex = 0;\n\tdefProp(selProto, \"selectedIndex\", {\n\t\tset: function(s) {\n\t\t\tcounts.selectedIndex++;\n\t\t\tselIndex.set.call(this, s);\n\t\t},\n\t});\n\n\tcounts.selected = 0;\n\tdefProp(optProto, \"selected\", {\n\t\tset: function(s) {\n\t\t\tcounts.selected++;\n\t\t\toptSel.set.call(this, s);\n\t\t},\n\t});\n\n\t/*\n\tcounts.setProperty = 0;\n\tdefProp(styleProto, \"setProperty\", {\n\t\tset: function(s) {\n\t\t\tcounts.setProperty++;\n\t\t\tsetProperty.set.call(this, s);\n\t\t},\n\t});\n\t*/\n\n\tfunction reset() {\n\t\tfor (var i in counts)\n\t\t\tcounts[i] = 0;\n\t}\n\n\tthis.start = function() {\n\t\tstart = +new Date;\n\t};\n\n\tthis.end = function() {\n\t\tvar _time = +new Date - start;\n\t\tstart = null;\n/*\n\t\tfor (var opName in origOps) {\n\t\t\tvar p = ctxName(opName);\n\t\t\tp.ctx[p.last] = origOps[opName];\n\t\t}\n\n\t\tdefProp(nodeProto, \"textContent\", textContent);\n\t\tdefProp(nodeProto, \"nodeValue\", nodeValue);\n\t\tdefProp(htmlProto, \"innerText\", innerText);\n\t\tdefProp(!isIE ? elemProto : htmlProto, \"innerHTML\", innerHTML);\n\t\tdefProp(!isIE ? elemProto : htmlProto, \"className\", className);\n\t\tdefProp(!isIE ? elemProto : htmlProto, \"id\", id);\n\t\tdefProp(inpProto, \"checked\", inpChecked);\n\t\tdefProp(inpProto, \"value\", inpVal);\n\t\tdefProp(areaProto, \"value\", areaVal);\n\t\tdefProp(selProto, \"value\", selVal);\n\t\tdefProp(selProto, \"selectedIndex\", selIndex);\n\t\tdefProp(optProto, \"selected\", optSel);\n\t//\tdefProp(styleProto, \"setProperty\", setProperty);\n\t\tdefProp(styleProto, \"cssText\", cssText);\n*/\n\t\tvar out = {};\n\n\t\tfor (var i in counts)\n\t\t\tif (counts[i] > 0)\n\t\t\t\tout[i] = counts[i];\n\n\t\treset();\n\n\t\tif (withTime)\n\t\t\tout._time = _time;\n\n\t\treturn out;\n\t};\n}","import { patch } from \"./patch\";\nimport { hydrate } from \"./hydrate\";\nimport { preProc } from \"./preProc\";\nimport { isArr, isPlainObj, isFunc, isProm, cmpArr, cmpObj, assignObj, curry, raft, noop } from \"../utils\";\nimport { repaint, getVm } from \"./utils\";\nimport { insertBefore, removeChild, nextSib, clearChildren } from \"./dom\";\nimport { drainDidHooks, fireHook } from \"./hooks\";\nimport { devNotify, DEVMODE } from \"./addons/devmode\";\nimport { DOMInstr } from \"./addons/dominstr\";\n\nvar instr = null;\n\nif (_DEVMODE) {\n\tif (DEVMODE.mutations) {\n\t\tinstr = new DOMInstr(true);\n\t}\n}\n\n// view + key serve as the vm's unique identity\nexport function ViewModel(view, data, key, opts) {\n\tvar vm = this;\n\n\tvm.view = view;\n\tvm.data = data;\n\tvm.key = key;\n\n\tif (opts) {\n\t\tvm.opts = opts;\n\t\tvm.config(opts);\n\t}\n\n\tvar out = isPlainObj(view) ? view : view.call(vm, vm, data, key, opts);\n\n\tif (isFunc(out))\n\t\tvm.render = out;\n\telse {\n\t\tvm.render = out.render;\n\t\tvm.config(out);\n\t}\n\n\t// these must be wrapped here since they're debounced per view\n\tvm._redrawAsync = raft(_ => vm._redraw());\n\tvm._updateAsync = raft(newData => vm._update(newData));\n\n\tvm.init && vm.init.call(vm, vm, vm.data, vm.key, opts);\n}\n\nexport const ViewModelProto = ViewModel.prototype = {\n\tconstructor: ViewModel,\n\n\t_diff:\tnull,\t// diff cache\n\n\tinit:\tnull,\n\tview:\tnull,\n\tkey:\tnull,\n\tdata:\tnull,\n\tstate:\tnull,\n\tapi:\tnull,\n\topts:\tnull,\n\tnode:\tnull,\n\thooks:\tnull,\n\tonevent: noop,\n\trefs:\tnull,\n\trender:\tnull,\n\n\tmount: mount,\n\tunmount: unmount,\n\tconfig: function(opts) {\n\t\tvar t = this;\n\n\t\tif (opts.init)\n\t\t\tt.init = opts.init;\n\t\tif (opts.diff)\n\t\t\tt.diff = opts.diff;\n\t\tif (opts.onevent)\n\t\t\tt.onevent = opts.onevent;\n\n\t\t// maybe invert assignment order?\n\t\tif (opts.hooks)\n\t\t\tt.hooks = assignObj(t.hooks || {}, opts.hooks);\n\n\t\tif (FEAT_EMIT) {\n\t\t\tif (opts.onemit)\n\t\t\t\tt.onemit = assignObj(t.onemit || {}, opts.onemit);\n\t\t}\n\t},\n\tparent: function() {\n\t\treturn getVm(this.node.parent);\n\t},\n\troot: function() {\n\t\tvar p = this.node;\n\n\t\twhile (p.parent)\n\t\t\tp = p.parent;\n\n\t\treturn p.vm;\n\t},\n\tredraw: function(sync) {\n\t\tvar vm = this;\n\t\tsync ? vm._redraw() : vm._redrawAsync();\n\t\treturn vm;\n\t},\n\tupdate: function(newData, sync) {\n\t\tvar vm = this;\n\t\tsync ? vm._update(newData) : vm._updateAsync(newData);\n\t\treturn vm;\n\t},\n\n\t_update: updateSync,\n\t_redraw: redrawSync,\n\t_redrawAsync: null,\n\t_updateAsync: null,\n};\n\nfunction mount(el, isRoot) {\n\tvar vm = this;\n\n\tif (_DEVMODE) {\n\t\tif (DEVMODE.mutations)\n\t\t\tinstr.start();\n\t}\n\n\tif (isRoot) {\n\t\tclearChildren({el: el, flags: 0});\n\n\t\tvm._redraw(null, null, false);\n\n\t\t// if placeholder node doesnt match root tag\n\t\tif (el.nodeName.toLowerCase() !== vm.node.tag) {\n\t\t\thydrate(vm.node);\n\t\t\tinsertBefore(el.parentNode, vm.node.el, el);\n\t\t\tel.parentNode.removeChild(el);\n\t\t}\n\t\telse\n\t\t\tinsertBefore(el.parentNode, hydrate(vm.node, el), el);\n\t}\n\telse {\n\t\tvm._redraw(null, null);\n\n\t\tif (el)\n\t\t\tinsertBefore(el, vm.node.el);\n\t}\n\n\tif (el)\n\t\tdrainDidHooks(vm);\n\n\tif (_DEVMODE) {\n\t\tif (DEVMODE.mutations)\n\t\t\tconsole.log(instr.end());\n\t}\n\n\treturn vm;\n}\n\n// asSub means this was called from a sub-routine, so don't drain did* hook queue\nfunction unmount(asSub) {\n\tvar vm = this;\n\n\tvar node = vm.node;\n\tvar parEl = node.el.parentNode;\n\n\t// edge bug: this could also be willRemove promise-delayed; should .then() or something to make sure hooks fire in order\n\tremoveChild(parEl, node.el);\n\n\tif (!asSub)\n\t\tdrainDidHooks(vm);\n}\n\nfunction reParent(vm, vold, newParent, newIdx) {\n\tif (newParent != null) {\n\t\tnewParent.body[newIdx] = vold;\n\t\tvold.idx = newIdx;\n\t\tvold.parent = newParent;\n\t}\n\treturn vm;\n}\n\nfunction redrawSync(newParent, newIdx, withDOM) {\n\tconst isRedrawRoot = newParent == null;\n\tvar vm = this;\n\tvar isMounted = vm.node && vm.node.el && vm.node.el.parentNode;\n\n\tif (_DEVMODE) {\n\t\t// was mounted (has node and el), but el no longer has parent (unmounted)\n\t\tif (isRedrawRoot && vm.node && vm.node.el && !vm.node.el.parentNode)\n\t\t\tdevNotify(\"UNMOUNTED_REDRAW\", [vm]);\n\n\t\tif (isRedrawRoot && DEVMODE.mutations && isMounted)\n\t\t\tinstr.start();\n\t}\n\n\tvar vold = vm.node, oldDiff, newDiff;\n\n\tif (vm.diff != null) {\n\t\toldDiff = vm._diff;\n\t\tvm._diff = newDiff = vm.diff(vm, vm.data);\n\n\t\tif (vold != null) {\n\t\t\tvar cmpFn = isArr(oldDiff) ? cmpArr : cmpObj;\n\t\t\tvar isSame = oldDiff === newDiff || cmpFn(oldDiff, newDiff);\n\n\t\t\tif (isSame)\n\t\t\t\treturn reParent(vm, vold, newParent, newIdx);\n\t\t}\n\t}\n\n\tisMounted && vm.hooks && fireHook(\"willRedraw\", vm, vm.data);\n\n\tvar vnew = vm.render.call(vm, vm, vm.data, oldDiff, newDiff);\n\n\tif (vnew === vold)\n\t\treturn reParent(vm, vold, newParent, newIdx);\n\n\t// todo: test result of willRedraw hooks before clearing refs\n\tvm.refs = null;\n\n\t// always assign vm key to root vnode (this is a de-opt)\n\tif (vm.key != null && vnew.key !== vm.key)\n\t\tvnew.key = vm.key;\n\n\tvm.node = vnew;\n\n\tif (newParent) {\n\t\tpreProc(vnew, newParent, newIdx, vm);\n\t\tnewParent.body[newIdx] = vnew;\n\t}\n\telse if (vold && vold.parent) {\n\t\tpreProc(vnew, vold.parent, vold.idx, vm);\n\t\tvold.parent.body[vold.idx] = vnew;\n\t}\n\telse\n\t\tpreProc(vnew, null, null, vm);\n\n\tif (withDOM !== false) {\n\t\tif (vold) {\n\t\t\t// root node replacement\n\t\t\tif (vold.tag !== vnew.tag) {\n\t\t\t\t// hack to prevent the replacement from triggering mount/unmount\n\t\t\t\tvold.vm = vnew.vm = null;\n\n\t\t\t\tvar parEl = vold.el.parentNode;\n\t\t\t\tvar refEl = nextSib(vold.el);\n\t\t\t\tremoveChild(parEl, vold.el);\n\t\t\t\tinsertBefore(parEl, hydrate(vnew), refEl);\n\n\t\t\t\t// another hack that allows any higher-level syncChildren to set\n\t\t\t\t// reconciliation bounds using a live node\n\t\t\t\tvold.el = vnew.el;\n\n\t\t\t\t// restore\n\t\t\t\tvnew.vm = vm;\n\t\t\t}\n\t\t\telse\n\t\t\t\tpatch(vnew, vold);\n\t\t}\n\t\telse\n\t\t\thydrate(vnew);\n\t}\n\n\tisMounted && vm.hooks && fireHook(\"didRedraw\", vm, vm.data);\n\n\tif (isRedrawRoot && isMounted)\n\t\tdrainDidHooks(vm);\n\n\tif (_DEVMODE) {\n\t\tif (isRedrawRoot && DEVMODE.mutations && isMounted)\n\t\t\tconsole.log(instr.end());\n\t}\n\n\treturn vm;\n}\n\n// this also doubles as moveTo\n// TODO? @withRedraw (prevent redraw from firing)\nfunction updateSync(newData, newParent, newIdx, withDOM) {\n\tvar vm = this;\n\n\tif (newData != null) {\n\t\tif (vm.data !== newData) {\n\t\t\tif (_DEVMODE) {\n\t\t\t\tdevNotify(\"DATA_REPLACED\", [vm, vm.data, newData]);\n\t\t\t}\n\t\t\tvm.hooks && fireHook(\"willUpdate\", vm, newData);\n\t\t\tvm.data = newData;\n\t\t}\n\t}\n\n\treturn vm._redraw(newParent, newIdx, withDOM);\n}","import { COMMENT } from './VTYPES';\nimport { VNode } from './VNode';\n\nexport function defineComment(body) {\n\tlet node = new VNode;\n\tnode.type = COMMENT;\n\tnode.body = body;\n\treturn node;\n}","import { VVIEW } from './VTYPES';\n\n// placeholder for declared views\nexport function VView(view, data, key, opts) {\n\tthis.view = view;\n\tthis.data = data;\n\tthis.key = key;\n\tthis.opts = opts;\n}\n\nVView.prototype = {\n\tconstructor: VView,\n\n\ttype: VVIEW,\n\tview: null,\n\tdata: null,\n\tkey: null,\n\topts: null,\n};","import { VView } from './VView';\n\nexport function defineView(view, data, key, opts) {\n\treturn new VView(view, data, key, opts);\n}","import { VMODEL } from './VTYPES';\n\n// placeholder for injected ViewModels\nexport function VModel(vm) {\n\tthis.vm = vm;\n}\n\nVModel.prototype = {\n\tconstructor: VModel,\n\n\ttype: VMODEL,\n\tvm: null,\n};","import { VModel } from './VModel';\n\n\nexport function injectView(vm) {\n//\tif (vm.node == null)\n//\t\tvm._redraw(null, null, false);\n\n//\treturn vm.node;\n\n\treturn new VModel(vm);\n}","import { ELEMENT } from './VTYPES';\nimport { VNode } from './VNode';\n\nexport function injectElement(el) {\n\tlet node = new VNode;\n\tnode.type = ELEMENT;\n\tnode.el = node.key = el;\n\treturn node;\n}","import { noop, isArr, cmpArr, cmpObj } from '../utils';\nimport { preProc } from './preProc';\n\nexport function lazyList(items, cfg) {\n\tvar len = items.length;\n\n\tvar self = {\n\t\titems: items,\n\t\tlength: len,\n\t\t// defaults to returning item identity (or position?)\n\t\tkey: function(i) {\n\t\t\treturn cfg.key(items[i], i);\n\t\t},\n\t\t// default returns 0?\n\t\tdiff: function(i, donor) {\n\t\t\tvar newVals = cfg.diff(items[i], i);\n\t\t\tif (donor == null)\n\t\t\t\treturn newVals;\n\t\t\tvar oldVals = donor._diff;\n\t\t\tvar same = newVals === oldVals || isArr(oldVals) ? cmpArr(newVals, oldVals) : cmpObj(newVals, oldVals);\n\t\t\treturn same || newVals;\n\t\t},\n\t\ttpl: function(i) {\n\t\t\treturn cfg.tpl(items[i], i);\n\t\t},\n\t\tmap: function(tpl) {\n\t\t\tcfg.tpl = tpl;\n\t\t\treturn self;\n\t\t},\n\t\tbody: function(vnode) {\n\t\t\tvar nbody = Array(len);\n\n\t\t\tfor (var i = 0; i < len; i++) {\n\t\t\t\tvar vnode2 = self.tpl(i);\n\n\t\t\t//\tif ((vnode.flags & KEYED_LIST) === KEYED_LIST && self. != null)\n\t\t\t//\t\tvnode2.key = getKey(item);\n\n\t\t\t\tvnode2._diff = self.diff(i);\t\t\t// holds oldVals for cmp\n\n\t\t\t\tnbody[i] = vnode2;\n\n\t\t\t\t// run preproc pass (should this be just preProc in above loop?) bench\n\t\t\t\tpreProc(vnode2, vnode, i);\n\t\t\t}\n\n\t\t\t// replace List with generated body\n\t\t\tvnode.body = nbody;\n\t\t}\n\t};\n\n\treturn self;\n}","import { ViewModel } from \"../view/ViewModel\";\nimport { VNode } from \"../view/VNode\";\n\nimport { createView } from \"../view/createView\";\n\nimport { defineElement } from \"../view/defineElement\";\nimport { defineSvgElement } from \"../view/defineSvgElement\";\nimport { defineText } from \"../view/defineText\";\nimport { defineComment } from \"../view/defineComment\";\nimport { defineView } from \"../view/defineView\";\n\nimport { injectView } from \"../view/injectView\";\nimport { injectElement } from \"../view/injectElement\";\n\nimport { lazyList } from '../view/lazyList';\n\nimport { FIXED_BODY, DEEP_REMOVE, KEYED_LIST, LAZY_LIST } from \"../view/initElementNode\";\n\nimport { config } from '../view/config';\n\n// prevent GCC from inlining some large funcs (which negatively affects Chrome's JIT)\nimport { syncChildren } from \"../view/syncChildren\";\nwindow.syncChildren = syncChildren;\n\nexport default {\n\tconfig,\n\n\tViewModel,\n\tVNode,\n\n\tcreateView,\n\n\tdefineElement,\n\tdefineSvgElement,\n\tdefineText,\n\tdefineComment,\n\tdefineView,\n\n\tinjectView,\n\tinjectElement,\n\n\tlazyList,\n\n\tFIXED_BODY,\n\tDEEP_REMOVE,\n\tKEYED_LIST,\n\tLAZY_LIST,\n}","import { assignObj } from '../../utils';\nimport { getVm } from '../utils';\nimport { patchAttrs } from '../patchAttrs';\nimport { preProc } from '../preProc';\nimport { patch as fullPatch } from '../patch';\nimport { drainDidHooks } from '../hooks';\n\nexport function protoPatch(n) {\n\treturn patch(this, n);\n}\n\n// newNode can be either {class: style: } or full new VNode\n// will/didPatch hooks?\nexport function patch(o, n) {\n\tif (n.type != null) {\n\t\t// no full patching of view roots, just use redraw!\n\t\tif (o.vm != null)\n\t\t\treturn;\n\n\t\tpreProc(n, o.parent, o.idx, null);\n\t\to.parent.body[o.idx] = n;\n\t\tfullPatch(n, o);\n\t\tdrainDidHooks(getVm(n));\n\t}\n\telse {\n\t\t// TODO: re-establish refs\n\n\t\t// shallow-clone target\n\t\tvar donor = Object.create(o);\n\t\t// fixate orig attrs\n\t\tdonor.attrs = assignObj({}, o.attrs);\n\t\t// assign new attrs into live targ node\n\t\tvar oattrs = assignObj(o.attrs, n);\n\t\t// prepend any fixed shorthand class\n\t\tif (o._class != null) {\n\t\t\tvar aclass = oattrs.class;\n\t\t\toattrs.class = aclass != null && aclass !== \"\" ? o._class + \" \" + aclass : o._class;\n\t\t}\n\n\t\tpatchAttrs(o, donor);\n\t}\n}","import { default as nano } from \"./pico\";\n\nimport { VNodeProto } from '../view/VNode';\nimport { protoPatch } from \"../view/addons/patch\";\nVNodeProto.patch = protoPatch;\n\n/*\nimport { h } from \"../view/addons/h\";\n\nnano.h = h;\n\nimport { defineElementSpread } from \"../view/addons/defineElementSpread\";\n\nnano.defineElementSpread = defineElementSpread;\n*/\n\nexport default nano;","import { ViewModelProto } from '../ViewModel';\nimport { isArr } from '../../utils';\n\nexport function nextSubVms(n, accum) {\n\tvar body = n.body;\n\n\tif (isArr(body)) {\n\t\tfor (var i = 0; i < body.length; i++) {\n\t\t\tvar n2 = body[i];\n\n\t\t\tif (n2.vm != null)\n\t\t\t\taccum.push(n2.vm);\n\t\t\telse\n\t\t\t\tnextSubVms(n2, accum);\n\t\t}\n\t}\n\n\treturn accum;\n}","import { isPlainObj, isArr, isVal, sliceArgs } from '../../utils';\nimport { initElementNode, LAZY_LIST } from '../initElementNode';\n\nexport function defineElementSpread(tag) {\n\tvar args = arguments;\n\tvar len = args.length;\n\tvar body, attrs;\n\n\tif (len > 1) {\n\t\tvar bodyIdx = 1;\n\n\t\tif (isPlainObj(args[1])) {\n\t\t\tattrs = args[1];\n\t\t\tbodyIdx = 2;\n\t\t}\n\n\t\tif (len === bodyIdx + 1 && (isVal(args[bodyIdx]) || isArr(args[bodyIdx]) || attrs && (attrs._flags & LAZY_LIST) === LAZY_LIST))\n\t\t\tbody = args[bodyIdx];\n\t\telse\n\t\t\tbody = sliceArgs(args, bodyIdx);\n\t}\n\n\treturn initElementNode(tag, attrs, body);\n}","import { defineElementSpread } from \"./defineElementSpread\";\nimport { SVG_NS } from \"../defineSvgElement\";\n\nexport function defineSvgElementSpread() {\n\tvar n = defineElementSpread.apply(null, arguments);\n\tn.ns = SVG_NS;\n\treturn n;\n}","import { ViewModelProto } from '../view/ViewModel';\nimport { default as micro } from \"./nano\";\n\nimport { emit } from \"../view/addons/emit\";\nViewModelProto.emit = emit;\nViewModelProto.onemit = null;\n\nimport { nextSubVms } from \"../view/addons/vmBody\";\n\nViewModelProto.body = function() {\n\treturn nextSubVms(this.node, []);\n};\n\nimport { defineElementSpread } from \"../view/addons/defineElementSpread\";\nimport { defineSvgElementSpread } from \"../view/addons/defineSvgElementSpread\";\n\nmicro.defineElementSpread = defineElementSpread;\nmicro.defineSvgElementSpread = defineSvgElementSpread;\n\nexport default micro;","import { default as mini } from \"./micro\";\n\nimport { prop } from \"../utils\";\n\nmini.prop = prop;\n\nexport default mini;","import { VVIEW, VMODEL } from '../VTYPES';\nimport { createView } from '../createView';\nimport { isArr } from '../../utils';\nimport { isStyleProp, isSplProp, isEvProp, isDynProp } from '../utils';\nimport { patchEvent } from '../patchEvent';\nimport { setAttr } from '../patchAttrs';\nimport { LAZY_LIST } from '../initElementNode';\n\nexport function protoAttach(el) {\n\tvar vm = this;\n\tif (vm.node == null)\n\t\tvm._redraw(null, null, false)\n\n\tattach(vm.node, el);\n\n\treturn vm;\n};\n\n// very similar to hydrate, TODO: dry\nfunction attach(vnode, withEl) {\n\tvnode.el = withEl;\n\twithEl._node = vnode;\n\n\tvar nattrs = vnode.attrs;\n\n\tfor (var key in nattrs) {\n\t\tvar nval = nattrs[key];\n\t\tvar isDyn = isDynProp(vnode.tag, key);\n\n\t\tif (isStyleProp(key) || isSplProp(key)) {}\n\t\telse if (isEvProp(key))\n\t\t\tpatchEvent(vnode, key, nval);\n\t\telse if (nval != null && isDyn)\n\t\t\tsetAttr(vnode, key, nval, isDyn);\n\t}\n\n\tif ((vnode.flags & LAZY_LIST) === LAZY_LIST)\n\t\tvnode.body.body(vnode);\n\n\tif (isArr(vnode.body)) {\n\t\tvar c = withEl.firstChild;\n\t\tvar i = 0;\n\t\tvar v = vnode.body[i];\n\t\tdo {\n\t\t\tif (v.type === VVIEW)\n\t\t\t\tv = createView(v.view, v.data, v.key, v.opts)._redraw(vnode, i, false).node;\n\t\t\telse if (v.type === VMODEL)\n\t\t\t\tv = v.node || v._redraw(vnode, i, false).node;\n\n\t\t\tattach(v, c);\n\t\t} while ((c = c.nextSibling) && (v = vnode.body[++i]))\n\t}\n}","import { ELEMENT, TEXT, COMMENT, VVIEW, VMODEL } from '../VTYPES';\nimport { createView } from '../createView';\nimport { isArr, isPlainObj, isVal, isFunc, ENV_DOM } from '../../utils';\nimport { isEvProp, isDynProp } from '../utils';\nimport { autoPx } from './autoPx';\nimport { LAZY_LIST } from '../initElementNode';\n\nexport function vmProtoHtml(dynProps) {\n\tvar vm = this;\n\n\tif (vm.node == null)\n\t\tvm._redraw(null, null, false);\n\n\treturn html(vm.node, dynProps);\n};\n\nexport function vProtoHtml(dynProps) {\n\treturn html(this, dynProps);\n};\n\nfunction camelDash(val) {\n\treturn val.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nfunction styleStr(css) {\n\tvar style = \"\";\n\n\tfor (var pname in css) {\n\t\tif (css[pname] != null)\n\t\t\tstyle += camelDash(pname) + \": \" + autoPx(pname, css[pname]) + '; ';\n\t}\n\n\treturn style;\n}\n\nfunction toStr(val) {\n\treturn val == null ? '' : ''+val;\n}\n\nconst voidTags = {\n area: true,\n base: true,\n br: true,\n col: true,\n command: true,\n embed: true,\n hr: true,\n img: true,\n input: true,\n keygen: true,\n link: true,\n meta: true,\n param: true,\n source: true,\n track: true,\n\twbr: true\n};\n\nfunction escHtml(s) {\n\ts = toStr(s);\n\n\tfor (var i = 0, out = ''; i < s.length; i++) {\n\t\tswitch (s[i]) {\n\t\t\tcase '&': out += '&'; break;\n\t\t\tcase '<': out += '<'; break;\n\t\t\tcase '>': out += '>'; break;\n\t\t//\tcase '\"': out += '"'; break;\n\t\t//\tcase \"'\": out += '''; break;\n\t\t//\tcase '/': out += '/'; break;\n\t\t\tdefault: out += s[i];\n\t\t}\n\t}\n\n\treturn out;\n}\n\nfunction escQuotes(s) {\n\ts = toStr(s);\n\n\tfor (var i = 0, out = ''; i < s.length; i++)\n\t\tout += s[i] === '\"' ? '"' : s[i];\t\t// also &?\n\n\treturn out;\n}\n\nfunction eachHtml(arr, dynProps) {\n\tvar buf = '';\n\tfor (var i = 0; i < arr.length; i++)\n\t\tbuf += html(arr[i], dynProps);\n\treturn buf;\n}\n\nfunction html(node, dynProps) {\n\tvar out, style;\n\n\tswitch (node.type) {\n\t\tcase VVIEW:\n\t\t\tout = createView(node.view, node.data, node.key, node.opts).html(dynProps);\n\t\t\tbreak;\n\t\tcase VMODEL:\n\t\t\tout = node.vm.html();\n\t\t\tbreak;\n\t\tcase ELEMENT:\n\t\t\tif (node.el != null && node.tag == null) {\n\t\t\t\tout = node.el.outerHTML;\t\t// pre-existing dom elements (does not currently account for any props applied to them)\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tvar buf = \"\";\n\n\t\t\tbuf += \"<\" + node.tag;\n\n\t\t\tif (node.attrs != null) {\n\t\t\t\tfor (var pname in node.attrs) {\n\t\t\t\t\tif (isEvProp(pname) || pname[0] === \".\" || pname[0] === \"_\" || dynProps === false && isDynProp(node.tag, pname))\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\tvar val = node.attrs[pname];\n\n\t\t\t\t\tif (pname === \"style\" && val != null) {\n\t\t\t\t\t\tstyle = typeof val === \"object\" ? styleStr(val) : val;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (val === true)\n\t\t\t\t\t\tbuf += \" \" + escHtml(pname) + '=\"\"';\n\t\t\t\t\telse if (val === false) {}\n\t\t\t\t\telse if (val != null)\n\t\t\t\t\t\tbuf += \" \" + escHtml(pname) + '=\"' + escQuotes(val) + '\"';\n\t\t\t\t}\n\n\t\t\t\tif (style != null)\n\t\t\t\t\tbuf += ' style=\"' + escQuotes(style.trim()) + '\"';\n\t\t\t}\n\n\t\t\t// if body-less svg node, auto-close & return\n\t\t\tif (node.body == null && node.ns != null && node.tag !== \"svg\")\n\t\t\t\treturn buf + \"/>\";\n\t\t\telse\n\t\t\t\tbuf += \">\";\n\n\t\t\tif (!voidTags[node.tag]) {\n\t\t\t\tif (isArr(node.body))\n\t\t\t\t\tbuf += eachHtml(node.body, dynProps);\n\t\t\t\telse if ((node.flags & LAZY_LIST) === LAZY_LIST) {\n\t\t\t\t\tnode.body.body(node);\n\t\t\t\t\tbuf += eachHtml(node.body, dynProps);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t\tbuf += node.raw ? node.body : escHtml(node.body);\n\n\t\t\t\tbuf += \"\";\n\t\t\t}\n\t\t\tout = buf;\n\t\t\tbreak;\n\t\tcase TEXT:\n\t\t\tout = escHtml(node.body);\n\t\t\tbreak;\n\t\tcase COMMENT:\n\t\t\tout = \"\";\n\t\t\tbreak;\n\t}\n\n\treturn out;\n};","import { default as full } from \"./mini\";\n\nimport { ViewModelProto } from '../view/ViewModel';\nimport { protoAttach } from \"../view/addons/attach\";\nViewModelProto.attach = protoAttach;\n\nimport { VNodeProto } from '../view/VNode';\nimport { vmProtoHtml, vProtoHtml } from \"../view/addons/html\";\n\nViewModelProto.html = vmProtoHtml;\nVNodeProto.html = vProtoHtml;\n\nexport default full;","import { default as dev } from \"./full\";\n\nimport { DEVMODE } from \"../view/addons/devmode\";\n\ndev.DEVMODE = DEVMODE;\n\nexport default dev;"],"names":["const","let","patch","fullPatch","micro","mini","dev"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"domvm.dev.js","sources":["../../src/view/VTYPES.js","../../src/utils.js","../../src/view/VNode.js","../../src/view/defineText.js","../../src/view/utils.js","../../src/view/addons/stream.js","../../src/view/addons/cssTag.js","../../src/view/addons/devmode.js","../../src/view/initElementNode.js","../../src/view/preProc.js","../../src/view/addons/autoPx.js","../../src/view/patchStyle.js","../../src/view/hooks.js","../../src/view/dom.js","../../src/view/addons/emit.js","../../src/view/config.js","../../src/view/patchEvent.js","../../src/view/defineElement.js","../../src/view/defineSvgElement.js","../../src/view/patchAttrs.js","../../src/view/createView.js","../../src/view/hydrate.js","../../src/view/syncChildren.js","../../src/view/patch.js","../../src/view/addons/dominstr.js","../../src/view/ViewModel.js","../../src/view/defineComment.js","../../src/view/VView.js","../../src/view/defineView.js","../../src/view/VModel.js","../../src/view/injectView.js","../../src/view/injectElement.js","../../src/view/lazyList.js","../../src/builds/pico.js","../../src/view/addons/patch.js","../../src/builds/nano.js","../../src/view/addons/vmBody.js","../../src/view/addons/defineElementSpread.js","../../src/view/addons/defineSvgElementSpread.js","../../src/builds/micro.js","../../src/builds/mini.js","../../src/view/addons/attach.js","../../src/view/addons/html.js","../../src/builds/full.js","../../src/builds/dev.js"],"sourcesContent":["// NOTE: if adding a new *VNode* type, make it < COMMENT and renumber rest.\n// There are some places that test <= COMMENT to assert if node is a VNode\n\n// VNode types\nexport const ELEMENT\t= 1;\nexport const TEXT\t\t= 2;\nexport const COMMENT\t= 3;\n\n// placeholder types\nexport const VVIEW\t\t= 4;\nexport const VMODEL\t\t= 5;","export const ENV_DOM = typeof window !== \"undefined\";\nconst win = ENV_DOM ? window : {};\nconst rAF = win.requestAnimationFrame;\n\nexport const emptyObj = {};\n\nexport function noop() {};\n\nexport const isArr = Array.isArray;\n\nexport function isSet(val) {\n\treturn val != null;\n}\n\nexport function isPlainObj(val) {\n\treturn val != null && val.constructor === Object;\t\t// && typeof val === \"object\"\n}\n\nexport function insertArr(targ, arr, pos, rem) {\n\ttarg.splice.apply(targ, [pos, rem].concat(arr));\n}\n\nexport function isVal(val) {\n\tvar t = typeof val;\n\treturn t === \"string\" || t === \"number\";\n}\n\nexport function isFunc(val) {\n\treturn typeof val === \"function\";\n}\n\nexport function isProm(val) {\n\treturn typeof val === \"object\" && isFunc(val.then);\n}\n\nexport function isElem(val) {\n\treturn ENV_DOM && val instanceof HTMLElement;\n}\n\nexport function assignObj(targ) {\n\tvar args = arguments;\n\n\tfor (var i = 1; i < args.length; i++)\n\t\tfor (var k in args[i])\n\t\t\ttarg[k] = args[i][k];\n\n\treturn targ;\n}\n\n// export const defProp = Object.defineProperty;\n\nexport function deepSet(targ, path, val) {\n\tvar seg;\n\n\twhile (seg = path.shift()) {\n\t\tif (path.length === 0)\n\t\t\ttarg[seg] = val;\n\t\telse\n\t\t\ttarg[seg] = targ = targ[seg] || {};\n\t}\n}\n\n/*\nexport function deepUnset(targ, path) {\n\tvar seg;\n\n\twhile (seg = path.shift()) {\n\t\tif (path.length === 0)\n\t\t\ttarg[seg] = val;\n\t\telse\n\t\t\ttarg[seg] = targ = targ[seg] || {};\n\t}\n}\n*/\n\nexport function sliceArgs(args, offs) {\n\tvar arr = [];\n\tfor (var i = offs; i < args.length; i++)\n\t\tarr.push(args[i]);\n\treturn arr;\n}\n\nexport function cmpObj(a, b) {\n\tfor (var i in a)\n\t\tif (a[i] !== b[i])\n\t\t\treturn false;\n\n\treturn true;\n}\n\nexport function cmpArr(a, b) {\n\tconst alen = a.length;\n\n\tif (b.length !== alen)\n\t\treturn false;\n\n\tfor (var i = 0; i < alen; i++)\n\t\tif (a[i] !== b[i])\n\t\t\treturn false;\n\n\treturn true;\n}\n\n// https://github.com/darsain/raft\n// rAF throttler, aggregates multiple repeated redraw calls within single animframe\nexport function raft(fn) {\n\tif (!rAF)\n\t\treturn fn;\n\n\tvar id, ctx, args;\n\n\tfunction call() {\n\t\tid = 0;\n\t\tfn.apply(ctx, args);\n\t}\n\n\treturn function() {\n\t\tctx = this;\n\t\targs = arguments;\n\t\tif (!id) id = rAF(call);\n\t};\n}\n\nexport function curry(fn, args, ctx) {\n\treturn function() {\n\t\treturn fn.apply(ctx, args);\n\t};\n}\n\nexport function prop(val, cb, ctx, args) {\n\treturn function(newVal, execCb) {\n\t\tif (newVal !== undefined && newVal !== val) {\n\t\t\tval = newVal;\n\t\t\texecCb !== false && isFunc(cb) && cb.apply(ctx, args);\n\t\t}\n\n\t\treturn val;\n\t};\n}\n\n// adapted from https://github.com/Olical/binary-search\nexport function binaryKeySearch(list, item) {\n var min = 0;\n var max = list.length - 1;\n var guess;\n\n\tvar bitwise = (max <= 2147483647) ? true : false;\n\tif (bitwise) {\n\t\twhile (min <= max) {\n\t\t\tguess = (min + max) >> 1;\n\t\t\tif (list[guess].key === item) { return guess; }\n\t\t\telse {\n\t\t\t\tif (list[guess].key < item) { min = guess + 1; }\n\t\t\t\telse { max = guess - 1; }\n\t\t\t}\n\t\t}\n\t} else {\n\t\twhile (min <= max) {\n\t\t\tguess = Math.floor((min + max) / 2);\n\t\t\tif (list[guess].key === item) { return guess; }\n\t\t\telse {\n\t\t\t\tif (list[guess].key < item) { min = guess + 1; }\n\t\t\t\telse { max = guess - 1; }\n\t\t\t}\n\t\t}\n\t}\n\n return -1;\n}","export function VNode() {}\n\nexport const VNodeProto = VNode.prototype = {\n\tconstructor: VNode,\n\n\ttype:\tnull,\n\n\tvm:\t\tnull,\n\n\t// all this stuff can just live in attrs (as defined) just have getters here for it\n\tkey:\tnull,\n\tref:\tnull,\n\tdata:\tnull,\n\thooks:\tnull,\n\traw:\tfalse,\n\tns:\t\tnull,\n\n\tel:\t\tnull,\n\n\ttag:\tnull,\n\tattrs:\tnull,\n\tbody:\tnull,\n\n\tflags:\t0,\n\n\t_class:\tnull,\n\t_diff:\tnull,\n\n\t// pending removal on promise resolution\n\t_dead:\tfalse,\n\n\tidx:\tnull,\n\tparent:\tnull,\n\n\t/*\n\t// break out into optional fluent module\n\tkey:\tfunction(val) { this.key\t= val; return this; },\n\tref:\tfunction(val) { this.ref\t= val; return this; },\t\t// deep refs\n\tdata:\tfunction(val) { this.data\t= val; return this; },\n\thooks:\tfunction(val) { this.hooks\t= val; return this; },\t\t// h(\"div\").hooks()\n\thtml:\tfunction(val) { this.html\t= true; return this.body(val); },\n\n\tbody:\tfunction(val) { this.body\t= val; return this; },\n\t*/\n};","import { TEXT } from './VTYPES';\nimport { VNode } from './VNode';\n\nexport function defineText(body) {\n\tlet node = new VNode;\n\tnode.type = TEXT;\n\tnode.body = body;\n\treturn node;\n}","import { emptyObj } from '../utils';\n\nexport function isEvProp(name) {\n\treturn name[0] === \"o\" && name[1] === \"n\";\n}\n\nexport function isSplProp(name) {\n\treturn name[0] === \"_\";\n}\n\nexport function isStyleProp(name) {\n\treturn name === \"style\";\n}\n\nexport function repaint(node) {\n\tnode && node.el && node.el.offsetHeight;\n}\n\n// tests interactive props where real val should be compared\nexport function isDynProp(tag, attr) {\n//\tswitch (tag) {\n//\t\tcase \"input\":\n//\t\tcase \"textarea\":\n//\t\tcase \"select\":\n//\t\tcase \"option\":\n\t\t\tswitch (attr) {\n\t\t\t\tcase \"value\":\n\t\t\t\tcase \"checked\":\n\t\t\t\tcase \"selected\":\n//\t\t\t\tcase \"selectedIndex\":\n\t\t\t\t\treturn true;\n\t\t\t}\n//\t}\n\n\treturn false;\n}\n\nexport function getVm(n) {\n\tn = n || emptyObj;\n\twhile (n.vm == null && n.parent)\n\t\tn = n.parent;\n\treturn n.vm;\n}","export let isStream = function() { return false };\n\nlet streamVal = null;\nlet subStream = null;\nlet unsubStream = null;\n\nexport function streamCfg(cfg) {\n\tisStream\t= cfg.is;\n\tstreamVal\t= cfg.val;\n\tsubStream\t= cfg.sub;\n\tunsubStream\t= cfg.unsub;\n}\n\n// creates a one-shot self-ending stream that redraws target vm\n// TODO: if it's already registered by any parent vm, then ignore to avoid simultaneous parent & child refresh\nexport function hookStream(s, vm) {\n\tif (FEAT_STREAM) {\n\t\tvar redrawStream = subStream(s, val => {\n\t\t\t// this \"if\" ignores the initial firing during subscription (there's no redrawable vm yet)\n\t\t\tif (redrawStream) {\n\t\t\t\t// if vm fully is formed (or mounted vm.node.el?)\n\t\t\t\tif (vm.node != null)\n\t\t\t\t\tvm.redraw();\n\t\t\t\tunsubStream(redrawStream);\n\t\t\t}\n\t\t});\n\n\t\treturn streamVal(s);\n\t}\n}","const tagCache = {};\n\nconst RE_ATTRS = /\\[(\\w+)(?:=(\\w+))?\\]/g;\n\nconst tagObj = {};\n\nexport function cssTag(raw) {\n\tif (FEAT_CSSTAG) {\n\t\tvar cached = tagCache[raw];\n\n\t\tif (cached == null) {\n\t\t\tvar tag, id, cls, attr;\n\n\t\t\ttagCache[raw] = cached = {\n\t\t\t\ttag:\t(tag\t= raw.match( /^[-\\w]+/))\t\t?\ttag[0]\t\t\t\t\t\t: \"div\",\n\t\t\t\tid:\t\t(id\t\t= raw.match( /#([-\\w]+)/))\t\t? \tid[1]\t\t\t\t\t\t: null,\n\t\t\t\tclass:\t(cls\t= raw.match(/\\.([-\\w.]+)/))\t\t?\tcls[1].replace(/\\./g, \" \")\t: null,\n\t\t\t\tattrs:\tnull,\n\t\t\t};\n\n\t\t\twhile (attr = RE_ATTRS.exec(raw)) {\n\t\t\t\tif (cached.attrs == null)\n\t\t\t\t\tcached.attrs = {};\n\t\t\t\tcached.attrs[attr[1]] = attr[2] || \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn cached;\n\t}\n\telse {\n\t\ttagObj.tag = raw;\n\t\treturn tagObj;\n\t}\n}","import { isFunc } from '../../utils';\n\nexport const DEVMODE = {\n\twarnings: true,\n\n\tverbose: true,\n\n\tmutations: true,\n\n\tDATA_REPLACED: function(vm, oldData, newData) {\n\t\tif (isFunc(vm.view) && vm.view.length > 1) {\n\t\t\tvar msg = \"A view's data was replaced. The data originally passed to the view closure during init is now stale. You may want to rely only on the data passed to render() or vm.data.\";\n\t\t\treturn [msg, vm, oldData, newData];\n\t\t}\n\t},\n\n\tUNKEYED_INPUT: function(vnode) {\n\t\treturn [\"Unkeyed