forked from domvm/domvm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdomvm.dev.js.map
1 lines (1 loc) · 111 KB
/
domvm.dev.js.map
1
{"version":3,"file":"domvm.dev.js","sources":["../../src/view/VTYPES.js","../../src/utils.js","../../src/view/utils.js","../../src/view/addons/autoPx.js","../../src/view/addons/cssTag.js","../../src/view/addons/streamCfg.js","../../src/view/patchStyle.js","../../src/view/hooks.js","../../src/view/VNode.js","../../src/view/addons/devmode.js","../../src/view/initElementNode.js","../../src/view/dom.js","../../src/view/config.js","../../src/view/patchEvent.js","../../src/view/patchAttrs.js","../../src/view/createView.js","../../src/view/hydrate.js","../../src/view/syncChildren.js","../../src/view/patch.js","../../src/view/defineText.js","../../src/view/preProc.js","../../src/view/ViewModel.js","../../src/view/defineElement.js","../../src/view/defineSvgElement.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/builds/pico.js","../../src/view/addons/diff.js","../../src/view/addons/patch.js","../../src/builds/nano.js","../../src/view/addons/emit.js","../../src/view/addons/vmBody.js","../../src/builds/micro.js","../../src/view/addons/streamFlyd.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\";\nexport const TRUE = true;\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}","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}","import { TRUE } from '../../utils';\n\nconst unitlessProps = {\n\tanimationIterationCount: TRUE,\n\tboxFlex: TRUE,\n\tboxFlexGroup: TRUE,\n\tcolumnCount: TRUE,\n\tcounterIncrement: TRUE,\n//\tfillOpacity: TRUE,\n\tflex: TRUE,\n\tflexGrow: TRUE,\n\tflexOrder: TRUE,\n\tflexPositive: TRUE,\n\tflexShrink: TRUE,\n\tfloat: TRUE,\n\tfontWeight: TRUE,\n\tgridColumn: TRUE,\n\tlineHeight: TRUE,\n\tlineClamp: TRUE,\n\topacity: TRUE,\n\torder: TRUE,\n\torphans: TRUE,\n//\tstopOpacity: TRUE,\n//\tstrokeDashoffset: TRUE,\n//\tstrokeOpacity: TRUE,\n//\tstrokeWidth: TRUE,\n\ttabSize: TRUE,\n\ttransform: TRUE,\n\ttransformOrigin: TRUE,\n\twidows: TRUE,\n\tzIndex: TRUE,\n\tzoom: TRUE,\n};\n\nexport function autoPx(name, val) {\n\t// typeof val === 'number' is faster but fails for numeric strings\n\treturn !isNaN(val) && !unitlessProps[name] ? (val + \"px\") : val;\n}","const tagCache = {};\n\nconst RE_ATTRS = /\\[(\\w+)(?:=(\\w+))?\\]/g;\n\n//\tfunction VTag() {}\nexport function cssTag(raw) {\n\tvar cached = tagCache[raw];\n\n\tif (cached == null) {\n\t\tvar tag, id, cls, attr;\n\n\t\ttagCache[raw] = cached = {\n\t\t\ttag:\t(tag\t= raw.match( /^[-\\w]+/))\t\t?\ttag[0]\t\t\t\t\t\t: \"div\",\n\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\tclass:\t(cls\t= raw.match(/\\.([-\\w.]+)/))\t\t?\tcls[1].replace(/\\./g, \" \")\t: null,\n\t\t\tattrs:\tnull,\n\t\t};\n\n\t\twhile (attr = RE_ATTRS.exec(raw)) {\n\t\t\tif (cached.attrs == null)\n\t\t\t\tcached.attrs = {};\n\t\t\tcached.attrs[attr[1]] = attr[2] || \"\";\n\t\t}\n\t}\n\n\treturn cached;\n}","export let isStream = function() { return false };\n\nlet streamVal = null;\nlet subStream = null;\nlet unsubStream = null;\n\n/* example flyd adapter:\n{\n\tis:\t\ts => flyd.isStream(s),\n\tval:\ts => s(),\n\tsub:\t(s,fn) => flyd.on(fn, s),\n\tunsub:\ts => s.end(),\n}\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\tvar redrawStream = subStream(s, val => {\n\t\t// this \"if\" ignores the initial firing during subscription (there's no redrawable vm yet)\n\t\tif (redrawStream) {\n\t\t\t// if vm fully is formed (or mounted vm.node.el?)\n\t\t\tif (vm.node != null)\n\t\t\t\tvm.redraw();\n\t\t\tunsubStream(redrawStream);\n\t\t}\n\t});\n\n\treturn streamVal(s);\n}","import { isVal, emptyObj } from '../utils';\nimport { getVm } from './utils';\nimport { autoPx, isStream, hookStream } from './addons/stubs';\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\nfunction fireHook(did, fn, o, n, immediate) {\n\tif (did) {\t// did*\n\t\t//\tconsole.log(name + \" should queue till repaint\", o, n);\n\t\timmediate ? repaint(o.parent) && fn(o, n) : didQueue.push([fn, o, n]);\n\t}\n\telse {\t\t// will*\n\t\t//\tconsole.log(name + \" may delay by promise\", o, n);\n\t\treturn fn(o, n);\t\t// or pass done() resolver\n\t}\n}\n\nexport function fireHooks(name, o, n, immediate) {\n\tvar hook = o.hooks[name];\n\n\tif (hook) {\n\t\tvar did = name[0] === \"d\" && name[1] === \"i\" && name[2] === \"d\";\n\n\t\tif (isArr(hook)) {\n\t\t\t// TODO: promise.all() this?\n\t\t\treturn hook.map(function(hook2) {\n\t\t\t\treturn fireHook(did, hook2, o, n);\n\t\t\t});\n\t\t}\n\t\telse\n\t\t\treturn fireHook(did, hook, o, n, immediate);\n\t}\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\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};","export const DEVMODE = {\n\tenabled: true,\n\n\tverbose: true,\n\n\tAUTOKEYED_VIEW: function(vm, model) {\n\t\tvar msg = \"A view has been auto-keyed by its model's identity. If this model is replaced between redraws,\"\n\t\t+ \" this view will unmount, its internal state and DOM will be destroyed and recreated.\"\n\t\t+ \" Consider providing a fixed key to this view to ensure its persistence & DOM recycling. See https://github.com/leeoniya/domvm#dom-recycling.\";\n\n\t\treturn [msg, vm, model];\n\t},\n\n\tUNKEYED_INPUT: function(vnode) {\n\t\treturn [\"Unkeyed <input> detected. Consider adding a name, id, _key, or _ref attr to avoid accidental DOM recycling between different <input> 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 [\"<svg> defined using domvm.defineElement. Use domvm.defineSvgElement for <svg> & 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\nexport function devNotify(key, args) {\n\tif (DEVMODE.enabled) {\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(null, msgArgs);\n\t\t}\n\t}\n}","import { ELEMENT } from './VTYPES';\nimport { VNode } from './VNode';\nimport { cssTag } from './addons/stubs';\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\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;\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 { ENV_DOM, isArr, isProm, curry } from '../utils';\nimport { fireHooks } 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\tvm && vm.hooks && fireHooks(\"willUnmount\", vm);\n\n\tvar res = hooks && fireHooks(\"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 res;\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 && fireHooks(\"didRemove\", node, null, immediate);\n\n\tvm && vm.hooks && fireHooks(\"didUnmount\", vm, null, 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\tvar res = deepNotifyRemove(node);\n\n\tif (res != null && isProm(res))\n\t\tres.then(curry(_removeChild, [parEl, el, true]));\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\twhile (parEl.firstChild)\n\t\t\tremoveChild(parEl, parEl.firstChild);\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 && fireHooks(\"willMount\", vm);\n\n\thooks && fireHooks(inDom ? \"willReinsert\" : \"willInsert\", node);\n\tparEl.insertBefore(el, refEl);\n\thooks && fireHooks(inDom ? \"didReinsert\" : \"didInsert\", node);\n\n\tvm && vm.hooks && fireHooks(\"didMount\", vm);\n}\n\nexport function insertAfter(parEl, el, refEl) {\n\tinsertBefore(parEl, el, refEl ? nextSib(refEl) : null);\n}","import { noop, assignObj } from '../utils';\n\nexport const globalCfg = {\n\tonevent: noop,\n};\n\nexport function config(newCfg) {\n\tassignObj(globalCfg, newCfg);\n}","import { isArr, isFunc, cmpArr } from '../utils';\nimport { closestVNode } from './dom';\nimport { getVm } from './utils';\nimport { globalCfg } 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));\n\tglobalCfg.onevent.apply(null, [e, node, vm].concat(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\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\tvar el = node.el;\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) && nval !== oval) {\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 { 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/stubs';\n\nexport function remAttr(node, name, asProp) {\n\tif (asProp)\n\t\tnode.el[name] = \"\";\n\telse\n\t\tnode.el.removeAttribute(name);\n}\n\n// setAttr\n// diff, \".\", \"on*\", bool vals, skip _*, value/checked/selected selectedIndex\nexport function setAttr(node, name, val, asProp) {\n\tvar el = node.el;\n\n\tif (val == null)\n\t\tremAttr(node, name);\t\t//, asProp? // will also removeAttr of style: null\n\telse if (node.ns != null)\n\t\tel.setAttribute(name, val);\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) {\n\tconst nattrs = vnode.attrs || emptyObj;\n\tconst oattrs = donor.attrs || emptyObj;\n\n\tfor (var key in nattrs) {\n\t\tvar nval = nattrs[key];\n\t\tvar isDyn = isDynProp(vnode.tag, key);\n\t\tvar oval = isDyn ? vnode.el[key] : oattrs[key];\n\n\t\tif (isStream(nval))\n\t\t\tnattrs[key] = nval = hookStream(nval, getVm(vnode));\n\n\t\tif (nval === oval) {}\n\t\telse if (isStyleProp(key))\n\t\t\tpatchStyle(vnode, donor);\n\t\telse if (isSplProp(key)) {}\n\t\telse if (isEvProp(key))\n\t\t\tpatchEvent(vnode, key, nval, oval);\n\t\telse\n\t\t\tsetAttr(vnode, key, nval, isDyn);\n\t}\n\n\t// TODO: handle key[0] === \".\"\n\t// should bench style.cssText = \"\" vs removeAttribute(\"style\")\n\tfor (var key in oattrs) {\n\t\t!(key in nattrs) &&\n\t\t!isSplProp(key) &&\n\t\tremAttr(vnode, key, isDynProp(vnode.tag, key) || isEvProp(key));\n\t}\n}","import { ELEMENT, TEXT, COMMENT, VVIEW, VMODEL } from './VTYPES';\nimport { ViewModel } from './ViewModel';\n\nexport function createView(view, model, key, opts) {\n\tif (view.type === VVIEW) {\n\t\tmodel\t= view.model;\n\t\tkey\t\t= view.key;\n\t\topts\t= view.opts;\n\t\tview\t= view.view;\n\t}\n\telse if (view.prototype._isClass)\n\t\treturn new view(model, key, opts);\n\n\treturn new ViewModel(view, model, key, opts);\n}","import { ELEMENT, TEXT, COMMENT, VVIEW, VMODEL } from './VTYPES';\nimport { isArr } from '../utils';\nimport { isStyleProp, isSplProp, isEvProp, isDynProp, getVm } from './utils';\nimport { isStream, hookStream } from './addons/stubs';\nimport { setAttr } from './patchAttrs';\nimport { patchStyle } from './patchStyle';\nimport { patchEvent } from './patchEvent';\nimport { createView } from './createView';\n//import { XML_NS, XLINK_NS } from './defineSvgElement';\nimport { createElement, createTextNode, createComment, insertBefore } from './dom';\n\n// TODO: DRY this out. reusing normal patchAttrs here negatively affects V8's JIT\nfunction patchAttrs2(vnode) {\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 (isStream(nval))\n\t\t\tnattrs[key] = nval = hookStream(nval, getVm(vnode));\n\n\t\tif (isStyleProp(key))\n\t\t\tpatchStyle(vnode);\n\t\telse if (isSplProp(key)) {}\n\t\telse if (isEvProp(key))\n\t\t\tpatchEvent(vnode, key, nval);\n\t\telse if (nval != null)\n\t\t\tsetAttr(vnode, key, nval, isDyn);\n\t}\n}\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.model, vnode2.key, vnode2.opts)._redraw(vnode, i, false);\t\t// todo: handle new model 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\tpatchAttrs2(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 { hydrateBody } from './hydrate';\nimport { clearChildren } from './dom';\nimport { syncChildren } from './syncChildren';\nimport { fireHooks } from './hooks';\nimport { patchAttrs } from './patchAttrs';\nimport { createView } from './createView';\nimport { FIXED_BODY, DEEP_REMOVE, KEYED_LIST } from './initElementNode';\n\nfunction findDonor(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\n// list must be a sorted list of vnodes by key\nfunction findListDonor(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, isRedrawRoot) {\n\tdonor.hooks && fireHooks(\"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);\n\n\t// patch events\n\n\tvar oldIsArr = isArr(obody);\n\tvar newIsArr = isArr(nbody);\n\n//\tvar nonEqNewBody = nbody != null && nbody !== obody;\n\n\tif (oldIsArr) {\n\t\t// [] => []\n\t\tif (newIsArr) {\n\t\t//\tconsole.log('[] => []', obody, nbody);\n\t\t\t// graft children\n\t\t\tpatchChildren(vnode, donor, isRedrawRoot);\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) {\n\t\t//\tconsole.log('\"\" => []', obody, nbody);\t// hydrate new here?\n\t\t\tclearChildren(donor);\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 (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 && fireHooks(\"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// [] => []\nfunction patchChildren(vnode, donor, isRedrawRoot) {\n\tvar nbody = vnode.body,\n\t\tnlen = nbody.length,\n\t\tdomSync = donor.type === ELEMENT && (donor.flags & FIXED_BODY) === 0;\n\n\tif (domSync && nlen === 0) {\n\t\tclearChildren(donor);\n\t\treturn;\n\t}\n\n\tvar isList = (donor.flags & KEYED_LIST) === KEYED_LIST;\n\n\tif (isList) {\n\t\tvar list = donor.body.slice();\n\t\tlist.sort(sortByKey);\n\t\tvar find = findListDonor;\n\t}\n\telse {\n\t\tvar list = donor.body;\n\t\tvar find = findDonor;\n\t}\n\n\tvar donor2,\n\t\tfromIdx = 0;\t\t\t\t// first unrecycled node (search head)\n\n\tfor (var i = 0; i < nlen; i++) {\n\t\tvar node2 = nbody[i];\n\t\tvar type2 = node2.type;\n\n\t\t// ELEMENT,TEXT,COMMENT\n\t\tif (type2 <= COMMENT) {\n\t\t\tif (donor2 = find(node2, list, fromIdx))\n\t\t\t\tpatch(node2, donor2);\n\t\t}\n\t\telse if (type2 === VVIEW) {\n\t\t\tif (donor2 = find(node2, list, fromIdx))\t\t// update/moveTo\n\t\t\t\tvar vm = donor2.vm._update(node2.model, vnode, i);\t\t// withDOM\n\t\t\telse\n\t\t\t\tvar vm = createView(node2.view, node2.model, node2.key, node2.opts)._redraw(vnode, i, false);\t// createView, no dom (will be handled by sync below)\n\n\t\t\ttype2 = vm.node.type;\n\t\t}\n\t\telse if (type2 === VMODEL) {\n\t\t\tvar vm = node2.vm._update(node2.model, vnode, i);\n\t\t\ttype2 = vm.node.type;\n\t\t}\n\n\t\t// to keep search space small, if donation is non-contig, move node fwd?\n\t\t// re-establish contigindex\n\t\tif (!isList && donor2 != null && donor2.idx === fromIdx)\n\t\t\tfromIdx++;\n\t}\n\n\n\tdomSync && syncChildren(vnode, donor);\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 { 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/stubs';\nimport { DEEP_REMOVE } from './initElementNode';\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\tif (vnew.hooks && vnew.hooks.willRemove || ownVm && ownVm.hooks && ownVm.hooks.willUnmount)\n\t\tsetDeepRemove(vnew);\n\n\tif (isArr(vnew.body)) {\n\t\t// declarative elems, comments, text nodes\n\t\tvar body = vnew.body;\n\n\t\tfor (var i = 0; i < body.length; i++) {\n\t\t\tvar node2 = body[i];\n\n\t\t\t// remove false/null/undefined\n\t\t\tif (node2 === false || node2 == null)\n\t\t\t\tbody.splice(i--, 1);\n\t\t\t// flatten arrays\n\t\t\telse if (isArr(node2))\n\t\t\t\tinsertArr(body, node2, i--, 1);\n\t\t\telse {\n\t\t\t\tif (node2.type == null)\n\t\t\t\t\tbody[i] = node2 = defineText(\"\"+node2);\n\n\t\t\t\tif (node2.type === TEXT) {\n\t\t\t\t\t// remove empty text nodes\n\t\t\t\t\tif (node2.body == null || node2.body === \"\")\n\t\t\t\t\t\tbody.splice(i--, 1);\n\t\t\t\t\t// merge with previous text node\n\t\t\t\t\telse if (i > 0 && body[i-1].type === TEXT) {\n\t\t\t\t\t\tbody[i-1].body += node2.body;\n\t\t\t\t\t\tbody.splice(i--, 1);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tpreProc(node2, vnew, i, null);\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}\n\t}\n\telse if (isStream(vnew.body))\n\t\tvnew.body = hookStream(vnew.body, getVm(vnew));\n}","import { patch } from \"./patch\";\nimport { hydrate } from \"./hydrate\";\nimport { preProc } from \"./preProc\";\nimport { isArr, isPlainObj, isFunc, isProm, cmpArr, cmpObj, assignObj, curry, raft } from \"../utils\";\nimport { repaint, getVm } from \"./utils\";\nimport { insertBefore, removeChild, nextSib, clearChildren } from \"./dom\";\nimport { didQueue, fireHooks } from \"./hooks\";\nimport { devNotify } from \"./addons/devmode\";\n\nexport function ViewModel(view, model, key, opts) {\t\t\t// parent, idx, parentVm\n\tvar vm = this;\n\n\tvm.view = view;\n\tvm.model = model;\n\tvm.key = key == null ? model : key;\n\n\tif (_DEVMODE) {\n\t\tif (model != null && model === key)\n\t\t\tdevNotify(\"AUTOKEYED_VIEW\", [vm, model]);\n\t}\n\n\tif (!view.prototype._isClass) {\n\t\tvar out = view.call(vm, vm, model, key, opts);\n\n\t\tif (isFunc(out))\n\t\t\tvm.render = out;\n\t\telse {\n\t\t\tif (out.diff) {\n\t\t\t\tvm.diff(out.diff);\n\t\t\t\tdelete out.diff;\n\t\t\t}\n\n\t\t\tassignObj(vm, out);\n\t\t}\n\t}\n\telse {\n\t//\thandle .diff re-definiton\n\t\tvar vdiff = vm.diff;\n\n\t\tif (vdiff != null && vdiff !== ViewModelProto.diff) {\n\t\t\tvm.diff = ViewModelProto.diff.bind(vm);\n\t\t\tvm.diff(vdiff);\n\t\t}\n\t}\n\n\t// remove this?\n\tif (opts) {\n\t\tvm.opts = opts;\n\n\t\tif (opts.hooks)\n\t\t\tvm.hook(opts.hooks);\n\t\tif (opts.diff)\n\t\t\tvm.diff(opts.diff);\n\t}\n\n\t// these must be created here since debounced per view\n\tvm._redrawAsync = raft(_ => vm._redraw());\n\tvm._updateAsync = raft(newModel => vm._update(newModel));\n\n\tvar hooks = vm.hooks;\n\n\tif (hooks && hooks.didInit)\n\t\thooks.didInit.call(vm, vm, model, key, opts);\n\n//\tthis.update(model, parent, idx, parentVm, false);\n\n\t// proc opts, evctx, watch\n\n//\tthis.update = function(model, withRedraw, parent, idx, parentVm) {};\n}\n\nexport const ViewModelProto = ViewModel.prototype = {\n\tconstructor: ViewModel,\n\n\t_isClass: false,\n\n\t// view + key serve as the vm's unique identity\n\tview: null,\n\tkey: null,\n\tmodel: null,\n\topts: null,\n\tnode: null,\n//\tdiff: null,\n//\tdiffLast: null,\t// prior array of diff values\n\thooks: null,\n\trender: null,\n\n//\t_setRef: function() {},\n\n\t// as plugins?\n\tparent: function() {\n\t\treturn getVm(this.node.parent);\n\t},\n\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\n\tapi: null,\n\trefs: null,\n\tmount: mount,\n\tunmount: unmount,\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(newModel, sync) {\n\t\tvar vm = this;\n\t\tsync ? vm._update(newModel) : vm._updateAsync(newModel);\n\t\treturn vm;\n\t},\n\n\t_update: updateSync,\n\t_redraw: redrawSync,\t// non-coalesced / synchronous\n\t_redrawAsync: null,\t\t// this is set in constructor per view\n\t_updateAsync: null,\n\n\thook: function(hooks) {\n\t\tthis.hooks = this.hooks || assignObj({}, this.hooks, hooks);\n\t},\n};\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}\n\n/*\nfunction isEmptyObj(o) {\n\tfor (var k in o)\n\t\treturn false;\n\treturn true;\n}\n*/\n\nfunction mount(el, isRoot) {\t\t// , asSub, refEl\n\tvar vm = this;\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);\t\t\t// el.appendChild(vm.node.el);\n\t}\n\n\tif (el)\n\t\tdrainDidHooks(vm);\n\n\treturn vm;\n}\n\n// asSub = true means this was called from a sub-routine, so don't drain did* hook queue\n// immediate = true means did* hook will not be queued (usually cause this is a promise resolution)\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\n// level, isRoot?\n// newParent, newIdx\n// ancest by ref, by key\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\t}\n\n\tvar vold = vm.node;\n\n\t// no diff, just re-parent old\n\t// TODO: allow returning vm.node as no-change indicator\n\tif (isMounted && vm._diff != null && vm._diff()) {\n\t\t// will doing this outside of preproc cause de-opt, add shallow opt to preproc?\n\t\tif (vold && newParent) {\n\t\t\tnewParent.body[newIdx] = vold;\n\t\t\tvold.idx = newIdx;\n\t\t\tvold.parent = newParent;\n\t\t}\n\t\treturn vm;\n\t}\n\n\tisMounted && vm.hooks && fireHooks(\"willRedraw\", vm);\n\n\t// todo: test result of willRedraw hooks before clearing refs\n\tvm.refs = null;\n\n\tvar vnew = vm.render.call(vm, vm, vm.model, vm.key);\t\t// vm.opts\n\n\t// always assign vm key to root vnode (this is a de-opt)\n\tif (vm.key !== false && vm.key != null && vnew.key !== vm.key)\n\t\tvnew.key = vm.key;\n\n//\tconsole.log(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\t// todo: bubble refs, etc?\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, isRedrawRoot);\n\t\t}\n\t\telse\n\t\t\thydrate(vnew);\n\t}\n\n\tisMounted && vm.hooks && fireHooks(\"didRedraw\", vm);\n\n\tif (isRedrawRoot && isMounted)\n\t\tdrainDidHooks(vm);\n\n\treturn vm;\n}\n\n// withRedraw?\n// this doubles as moveTo\n// will/didUpdate\nfunction updateSync(newModel, newParent, newIdx, withDOM) {\t\t\t// parentVm\n\tvar vm = this;\n\n\tif (newModel != null) {\t\t// && vm.key !== vm.model\n\t\tif (vm.model !== newModel) {\n\t\t\tvm.hooks && fireHooks(\"willUpdate\", vm, newModel);\t\t// willUpdate will be called ahead of willRedraw when model will be replaced\n\t\t\tvm.model = newModel;\n\t\t//\tvm.hooks && fireHooks(\"didUpdate\", vm, newModel);\t\t// should this fire at al?\n\t\t}\n\t}\n\n\t// TODO: prevent redraw from firing?\n\n\treturn vm._redraw(newParent, newIdx, withDOM);\n/*\n\tif (parentVm != null) {\n\t\tvm.parent = parentVm;\n\t\tparentVm.body.push(vm);\n\t}\n*/\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\";\n//export 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 { 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, model, key, opts) {\n\tthis.view = view;\n\tthis.model = model;\n\tthis.key = key == null ? model : key;\t// same logic as ViewModel\n\tthis.opts = opts;\n}\n\nVView.prototype = {\n\tconstructor: VView,\n\n\ttype: VVIEW,\n\tview: null,\n\tmodel: null,\n\tkey: null,\n\topts: null,\n};","import { VView } from './VView';\n\nexport function defineView(view, model, key, opts) {\n\treturn new VView(view, model, 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 { 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 { FIXED_BODY, DEEP_REMOVE, KEYED_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\tFIXED_BODY,\n\tDEEP_REMOVE,\n\tKEYED_LIST,\n}","import { ViewModelProto } from '../ViewModel';\nimport { isArr, isFunc, cmpArr, cmpObj } from '../../utils';\n\nViewModelProto._diff = null;\n\n// @vals should be a callback that returns an array or object of values to shallow-compare\n// if the returned values are the same on subsequent redraw calls, then redraw() is prevented\n// @then may be a callback that will run if arrays dont match and receives the old & new arrays which\n// it can then use to shallow-patch the top-level vnode if needed (like apply {display: none}) and\n// return `false` to prevent further redraw()\n// if @cfg is a function, it's assumed to be @vals\nViewModelProto.diff = function(cfg) {\n\tvar vm = this;\n\n\tif (isFunc(cfg))\n\t\tvar getVals = cfg;\n\telse {\n\t\tvar getVals = cfg.vals;\n\t\tvar thenFn = cfg.then;\n\t}\n\n\tvar oldVals = getVals.call(vm, vm, vm.model, vm.key, vm.opts);\n\tvar cmpFn = isArr(oldVals) ? cmpArr : cmpObj;\n\n\tvm._diff = function() {\n\t\tvar newVals = getVals.call(vm, vm, vm.model, vm.key, vm.opts);\n\t\tvar isSame = cmpFn(oldVals, newVals);\n\n\t\tif (!isSame) {\n\t\t\t// thenFn must return false to prevent redraw\n\t\t\tif (thenFn != null && thenFn.call(vm, vm, oldVals, newVals) === false)\n\t\t\t\tisSame = true;\n\n\t\t\toldVals = newVals;\n\t\t}\n\n\t\treturn isSame;\n\t};\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 '../ViewModel';\n\nimport { VNodeProto } from '../VNode';\n\nVNodeProto.patch = function(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\to.parent = o.el = o.body = null;\t\t// helps gc?\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}","// #destub: cssTag,autoPx\n\nimport { default as nano } from \"./pico\";\n\nimport \"../view/addons/diff\";\nimport \"../view/addons/patch\";\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 { isVal, sliceArgs } from '../../utils';\n\nViewModelProto.events = null;\nViewModelProto.emit = emit;\nViewModelProto.on = on;\n\nfunction emit(evName) {\n\tvar targ = this;\n\n\tdo {\n\t\tvar evs = targ.events;\n\t\tvar fn = evs ? evs[evName] : null;\n\n\t\tif (fn) {\n\t\t\tfn.apply(null, sliceArgs(arguments, 1));\n\t\t\tbreak;\n\t\t}\n\n\t} while (targ = targ.parent());\n}\n\nfunction on(evName, fn) {\n\tvar t = this;\n\n\tif (t.events == null)\n\t\tt.events = {};\n\n\tif (isVal(evName))\n\t\tt.events[evName] = fn;\n\telse {\n\t\tvar evs = evName;\n\t\tfor (var evName in evs)\n\t\t\tt.on(evName, evs[evName]);\n\t}\n}\n\nfunction off() {}","import { ViewModelProto } from '../ViewModel';\nimport { isArr } from '../../utils';\t\t// defProp\n\n/*\ndefProp(ViewModelProto, 'body', {\n\tget: function() {\n\t\treturn nextSubVms(this.node, []);\n\t}\n});\n*/\n\nViewModelProto.body = function() {\n\treturn nextSubVms(this.node, []);\n};\n\nfunction 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}","// #destub: cssTag,autoPx\n\nimport { default as micro } from \"./nano\";\n\nimport \"../view/addons/emit\";\nimport \"../view/addons/vmBody\";\n\nexport default micro;","import { streamCfg } from './streamCfg';\n\nif (typeof flyd !== \"undefined\") {\n\tstreamCfg({\n\t\tis:\t\ts => flyd.isStream(s),\n\t\tval:\ts => s(),\n\t\tsub:\t(s, fn) => flyd.on(fn, s),\n\t\tunsub:\ts => s.end(true),\n\t});\n}","// #destub: cssTag,autoPx,isStream,hookStream\n\nimport { default as mini } from \"./micro\";\n\nimport { streamCfg } from \"../view/addons/streamCfg\";\nimport \"../view/addons/streamFlyd.js\";\n\nmini.streamCfg = streamCfg;\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';\n\nimport { ViewModelProto } from '../ViewModel';\n\nViewModelProto.attach = function(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\nexport function 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 (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.model, 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, TRUE, ENV_DOM } from '../../utils';\nimport { isEvProp, isDynProp } from '../utils';\nimport { autoPx } from './stubs';\n\nimport { ViewModelProto } from '../ViewModel';\nimport { VNodeProto } from '../VNode';\n\nViewModelProto.html = function(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\nVNodeProto.html = function(dynProps) {\n\treturn html(this, dynProps);\n};\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\nexport function html(node, dynProps) {\n\tvar out, style;\n\n\tswitch (node.type) {\n\t\tcase VVIEW:\n\t\t\tout = createView(node.view, node.model, 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\n\t\t\t\t\tbuf += node.raw ? node.body : escHtml(node.body);\n\n\t\t\t\tbuf += \"</\" + node.tag + \">\";\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 = \"<!--\" + escHtml(node.body) + \"-->\";\n\t\t\tbreak;\n\t}\n\n\treturn out;\n};","// #destub: cssTag,autoPx,isStream,hookStream\n\nimport { default as full } from \"./mini\";\n\nimport \"../view/addons/attach\";\n\nimport \"../view/addons/html\";\n\nexport default full;","// #destub: cssTag,autoPx,isStream,hookStream\n\nimport { 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","arguments","mini","dev"],"mappings":"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"}